Buscar

Banco_Dados

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 98 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 98 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 98 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

1
Linguagem de Programação
PROF. VANDERSON JOSÉ ILDEFONSO SILVA
BANCO DE DADOS
COLATINA 
2010
PROMOÇÃO
Governo de Sergipe
Marcelo Deda Chagas
Secretaria de Estado da Educação
Belivaldo Chagas Filho
Departamento de Educação
Maria Izabel Ladeira
Coordenação Estadual do E-Tec
Rivânia Andrade
Coordenação de Curso
Marcus Vinícius Andrade Côrtes
2
Técnico em Informática
Governo Federal
Ministério da Educação
Secretaria de Educação a Distância
Professor - Autor
Vanderson José Ildefonso Silva
Equipe Técnica
Alessandro Poleto Oliveira
Revisão
Maria Isolina de Castro Soares
Projeto Gráfico
Equipe CEAD
Diagramação
Duo Translation
Crédito de Imagens (Capa e Interior)
Fonte: site sxc.hu
Ilustrador(es)
Equipe CEAD
S586b Silva, Vanderson José Ildefonso
Banco de dados. / Vanderson José Ildefonso Silva. – Colatina:
 Ifes, 2009.
167p. : il.
 1. Banco de dados. 2. Arquivo de Dados. 3. Educação a 
Distância. I. Instituto Federal do Espírito Santo. II. Título. 
 
 
 CDD 005.74
3
Linguagem de Programação
É um prazer tê-lo(a) conosco.
 
O Ifes oferece a você, em parceria com as Prefeituras e com o Governo Fede-
ral, o Curso Técnico em Informática, na modalidade a distância. Apesar de 
este curso ser ofertado a distância, esperamos que haja proximidade entre 
nós, pois, hoje, graças aos recursos da tecnologia da informação (e-mail, 
chat, videoconferência,etc.), podemos manter uma comunicação efetiva.
É importante que você conheça toda a equipe envolvida neste curso: coor-
denadores, professores especialistas, tutores a distância e tutores presenciais, 
porque, quando precisar de algum tipo de ajuda, saberá a quem recorrer.
Na EaD - Educação a Distância, você é o grande responsável pelo sucesso 
a aprendizagem. Por isso, é necessário que você se organize para os estudos 
e para a realização de todas as atividades, nos prazos estabelecidos, con-
forme orientação dos Professores Especialistas e Tutores. Fique atento às 
orientações de estudo que se encontram no Manual do Aluno.
A EaD, pela sua característica de amplitude e pelo uso de tecnologias 
modernas,representa uma nova forma de aprender, respeitando, sempre, 
o seu tempo.
Desejamos-lhe sucesso e dedicação!
Equipe do Ifes
Fala do Professor
Conceitos importantes. Fique atento!
Atividades que devem ser elaboradas por você, 
após a leitura dos textos.
Indicação de leituras complemtares, referentes 
ao conteúdo estudado.
Destaque de algo importante, referente ao 
conteúdo apresentado. Atenção!
Reflexão/questionamento sobre algo impor-
tante referente ao conteúdo apresentado.
Espaço reservado para as anotações que você 
julgar necessárias.
ICONOGRAFIA
Veja, abaixo, alguns símbolos utilizados neste material para guiá-lo em seus estudos
BANCO DE DADOS
Cap. 1 - CONCEITOS DE BANCOS DE DADOS 9
1.1 Definição 9
1.2 Objetivos 14
1.3 Usuários de banco de dados 15
1.4 Modelos de bancos de dados 17
1.4.1 Modelo em Rede 17
1.4.2 Modelo Hierárquico 18
1.4.3 Modelo Relacional 20
1.4.4 Modelo Objeto-Relacional 26
1.4.5 Modelo Orientado a Objetos 27
Cap. 2 - MODELAGEM DE DADOS 29
2.1 Modelo entidade-relacionamento 30
2.1.1 A cardinalidade de relacionamentos 32
2.1.2 Exemplos do modelo entidade-relacionamento 37
2.1.3. Generalização / especialização de entidades 43
2.1.4 Entidades fracas 45
2.2 Modelo relacional normalizado 45
2.2.1 Chave primária 46
2.2.2 Chave estrangeira 51
2.2.3 Exemplos de diagrama do mrn 55
2.2.4 As formas normais 58
2.3 Ferramentas case 64
Cap. 3 - A CRIAÇÃO DE UM BANCO DE DADOS 67
3.1 A linguagem sql 67
3.2 MYSQL 69
3.3 A criação de um banco de dados 71
3.4 A criação de tabelas 74
3.5 A inserção de registros em tabelas 87
3.6 A alteração de registros em tabelas 92
3.7 A exclusão de registros em tabelas 95
Cap. 4 - CONSULTAS SQL 99
4.1 Consultas básicas 99
4.2 Consultas com cláusula order by 101
4.3 Consultas com cláusula where 105
4.4 Consultas com funções de agrupamento 109
4.5 Consultas com mais de uma tabela 115
4.6 Outras consultas 121
Cap. 5 - SEGURANÇA DA INFORMAÇÃO 123
5.1 Preparando o terreno 123
5.2 Alterando a senha do administrador do banco de dados. 124
5.3 Criando novas contas de usuário e definindo seus privilégios 
de segurança. 126
5.4 Criando visões 132
Cap. 6 - PROCEDIMENTOS ARMAZENADOS E 
GATILHOS 137
6.1 A importância de rotinas armazenadas 137
6.2 Procedimentos armazenados 139
6.3 Gatilhos 147
Cap. 7 - CRIAÇÃO DE ÍNDICES 153
7.1 Índices 153
7.2 Criando um índice durante a criação da tabela 156
7.3 Criando um índice para tabela preexistente 157
Cap. 8 - TRANSAÇÕES EM BANCO DE DADOS 159
8.1 O conceito de transação 159
8.2 Transações no mysql 164
REFERÊNCIAS BIBLIOGRÁFICAS 167
Olá Aluno!
Meu nome é Vanderson José Ildefonso Silva, responsável pela discipli-
na Banco de Dados. Atuo como professor do IFES, antigo CEFETES e 
ETFES, há treze anos, lecionando nos cursos Técnico em Informática e 
Superior em Redes de computadores. Já trabalhei como programador 
de computadores e analista de sistemas, além de lecionar ininterrup-
tamente para o ensino superior desde 1992. Também venho para a pós-
graduação desde 2003.
Sou graduado em Ciências Econômicas (1992), tenho especialização 
em Análise de Sistemas (1994) e mestrado em Informática pela UFES 
(2002). Minhas áreas de interesse são Banco de Dados, Programação, 
Engenharia de Software, Inteligência Artificial, Sistemas Distribuídos 
e Informática na Educação.
Nesta disciplina você será apresentado aos conceitos básicos de Bancos 
de dados e aprenderá a empregá-los como uma importante ferramenta 
para a manutenção de dados em sistemas de informação (persistência de 
dados). Com a crescente utilização da Tecnologia da Informação pelas 
organizações e pessoas físicas, os Bancos de Dados converteram-se em 
uma importante tecnologia, imprescindível para grande parcela dos pro-
fissionais da área de informática. 
Este material tem como objetivo orientá-lo no estudo da disciplina Banco 
de Dados, por meio de dicas e sugestões, com destaque para os aspectos 
mais importantes. Aqui você encontrará conceitos com os quais trabalha-
remos ao longo do Curso, o que não dispensa, é claro, a utilização do livro-
texto – referência para a confecção deste trabalho, que traz diversos exem-
plos adicionais e aprofundamento maior em vários aspectos. É importante 
esclarecer que, além do livro-texto, outros livros foram consultados para 
complementar alguns conceitos, a fim de facilitar o seu entendimento. Es-
ses livros constam nas referências bibliográficas deste material.
Boa Sorte!!!
Prof. Vanderson José Ildefonso Silva
APRESENTAÇÃO
9
Linguagem de Programação
CONCEITOS DE BANCO DE 
DADOS
Olá,
Neste capítulo você terá um primeiro contato com conceitos funda-
mentais da tecnologia de Banco de Dados. São conceitos importan-
tes que servirão de base para o restante do curso.
Bom estudo!
Prof . Vanderson
1.1 Definição
Desde antes do surgimento da primeira civilização, a humanidade de-
dicava-se à produção de signos. Um signo ou símbolo corresponde a 
qualquer coisa que represente algo, de alguma forma, para alguém. Da 
mesma forma que um mapa representa um dado terreno, um brasão 
pode representar o time de futebol para o qual se torce. Uma canção 
pode fazê-lo lembrar uma fase específica de sua vida ou uma paixão. 
Tudo isso e muitos outros são signos. Nesse sentido, o que para você 
nada significa pode representar algo para outros. Portanto, todo signo é 
subjetivo e pode ser de difícil interpretação.
Até hoje, pesquisadores debruçam-se sobre pinturas feitas em cavernas 
há pelo menos 15.000 anos e debatem sobre seus significados. Alguém 
as pintou para representarem algo, mas hoje, 150 séculos depois, não 
sabemos precisar qual o seu significado na época. Elas parecem repre-
sentar animais ou cenas de caçadas na pré-história. Porém, escapa-nos 
sua motivação. Faziam parte de algum ritual religioso, o registro de 
uma importante atividade socialou apenas a expressão da subjetivida-
de de seu pintor?
A chamada oralidade primária precede a invenção da escrita e se carac-
teriza pelo uso da palavra falada como a única forma de gerir a memória 
social das comunidades. A cultura narrativa valorizava as parábolas, fá-
bulas e mitos como veículos naturais do conhecimento que se pretendia 
preservar de uma geração para outra. Histórias e imagens eram associa-
das a algum fato que se buscava memorizar.
10
Técnico em Informática
O mito codifica, sob forma de narrativa, algumas das representações 
que parecem essenciais aos membros de uma sociedade. Dado o funcio-
namento da memória humana, e na ausência de técnicas de fixação da 
informação como a escrita (...), as representações que têm mais chances 
de sobreviver em um ambiente composto quase que unicamente por 
memórias humanas são aquelas que estão codificadas em narrativas dra-
máticas, agradáveis de serem ouvidas, trazendo uma forte carga emotiva 
e acompanhadas de músicas e rituais diversos. (LÉVY, 1993, p. 82).
Ao desenvolverem a escrita, as primeiras civilizações melhoraram a uti-
lidade dos símbolos. Afinal, o surgimento do Estado trouxe consigo a 
inevitável cobrança de impostos. Com a escrita, a contabilidade veio a 
possuir meios objetivos para registrar tributos devidos e valores pagos. 
Desde então, o monarca passou a contar com registros precisos de seu 
tesouro e dos súditos devedores.
Com o capitalismo e o consequente progresso técnico, a administra-
ção das organizações e do Estado tornou-se mais complexa. As em-
presas, por exemplo, demandavam maior controle da atividade pro-
dutiva, envolvendo o gerenciamento de estoques, recursos humanos 
e financeiros. O grande volume de informações registradas em papel 
dificultava consideravelmente seu gerenciamento e atualização. Então, 
com os primeiros computadores migraram-se essas informações para 
dispositivos eletrônicos.
De início, essa migração para meios eletrônicos de armazenamento foi 
implementada de maneira pouco organizada, fazendo uso de sistemas 
de arquivos tradicionais. Cada aplicação do sistema de informações 
era tratada isoladamente pela equipe de desenvolvedores. Em conse-
quência, cada aplicação tinha seus próprios arquivos e a redundância 
de informações era mais do que normal. Uma aplicação para o con-
trole da frequência dos funcionários, por exemplo, tinha seu próprio 
arquivo com dados dos empregados em atividade. Esse arquivo podia 
não ser compartilhado com a aplicação de controle das férias desses 
mesmos empregados.
Por isso, dados como nome, número de matrícula e departamento de 
trabalho podiam facilmente estar duplicados nos diferentes arquivos. 
Com a multiplicação de aplicações e assim de arquivos com redundân-
cia de dados, o risco de inconsistências de dados entre eles crescia expo-
nencialmente. Considere, por exemplo, uma funcionária que se casou e 
mudou de nome. Uma eventual falha humana podia levar a uma situa-
ção em que seu nome fosse alterado apenas em alguns destes arquivos, 
mas não em todos eles.
Capítulo 1 
11
Linguagem de Programação
Os primeiros bancos de dados surgiram no mercado como uma res-
posta a problemas como esse. Um sistema de gerenciamento de banco 
de dados (SGBD) consiste em um conjunto de arquivos estruturados 
e de programas que respondem pelo acesso e manipulação de tais ar-
quivos. Diferente dos sistemas de arquivos tradicionais, o banco de 
dados (BD) favorece o inter-relacionamento dos arquivos, portanto, 
podem ser definidos como “uma coleção de dados inter-relacionados e 
um conjunto de programas para acessá-los” (KORTH, SILBERSCHATZ 
e SUDARSHAN, 2006, p. 1).
Um banco de dados (BD) é um conjunto de dados integrados 
reunidos com o intuito de suportar o funcionamento de siste-
mas de informação.
Um sistema gerenciador de banco de dados (SGBD) é um sof-
tware de caráter geral para a manipulação eficiente de grandes co-
leções de informações estruturadas e armazenadas de uma forma 
consistente e integrada.
Em termos mais simples, podemos definir um SGBD como um software 
desenvolvido especificamente para o gerenciamento de grandes volumes 
de informações. Seu objetivo principal reside na superação de problemas 
comuns aos sistemas de arquivos tradicionais. Tais problemas ou des-
vantagens (KORTH, SILBERSCHATZ e SUDARSHAN, 2006) são:
Redundância e inconsistência de dados.1. Equipes diversas de desen-
volvedores tendem a criar diferentes aplicações ou sistemas ao longo 
do tempo. De maneira análoga, em uma mesma organização, diferen-
tes linguagens de programação, por exemplo, podem ser usadas no 
desenvolvimento de diversos sistemas de informações. Sob tais cir-
cunstâncias, conforme visto, dados distintos podem ser duplicados em 
arquivos diferentes. Essa redundância conduz a altos custos de arma-
zenamento e crescente dificuldade de atualização das informações.
Dificuldade no acesso aos dados. 2. Os dados espalhados em dife-
rentes arquivos isolados não apresentam as facilidades de acesso e 
processamento das informações dos bancos de dados. Há pouca fle-
xibilidade em relação a demandas que não tenham sido antecipadas 
quando o sistema foi projetado. Por exemplo, uma vez que o sistema 
esteja desenvolvido, caso haja a necessidade de se gerar relatórios 
com os nomes de todos os empregados do sexo masculino e com 
idade igual ou superior a 40 anos, a ausência de uma aplicação es-
Conceitos de Banco de Dados 
12
Técnico em Informática
pecífica para esse objetivo traz sérios inconvenientes. Isso porque 
quando os usuários do sistema solicitarem o desenvolvimento desse 
novo aplicativo, sua implementação demandará tempo e recursos 
da parte dos programadores para a geração de um relatório muito 
específico que raramente será usado. Outra solução seria conseguir 
a impressão de uma listagem com todos os empregados existentes 
para posterior extração da informação desejada por meios manuais. 
Essa solução também não é satisfatória, pois o processamento ma-
nual sempre está sujeito a erros humanos.
Isolamento de Dados.3. A existência de dados espalhados em diferentes 
arquivos, que podem apresentar diferentes formatos, dificulta a criação 
de novos programas aplicativos para a recuperação desses dados.
Anomalias de acesso concorrente.4. Inúmeros sistemas de informação 
permitem que múltiplos usuários acessem e atualizem dados simul-
taneamente. A inexistência de sofisticados mecanismos de gerencia-
mento de atualizações concorrentes pode resultar em dados incon-
sistentes. Considere o exemplo de uma conta bancária conjunta com 
saldo de R$ 600,00. Caso dois clientes saquem dinheiro dessa mesma 
conta simultaneamente, o saldo atualizado dessa conta pode ficar in-
consistente. Suponha que o cliente A saque R$ 50,00 ao mesmo tempo 
em que o cliente B saca R$ 100,00. Para que esses saques ocorram, o 
programa aplicativo lê o saldo da conta a partir de um arquivo especí-
fico. Em seguida, o valor do saque é diminuído do saldo lido, gerando 
assim o saldo atualizado. Então, para o aplicativo de A, temos 600 – 50 
= 550, enquanto para o aplicativo de B, temos 600 – 100 = 500. Supon-
do que o aplicativo de A atualize o arquivo antes do aplicativo de B, o 
saldo da conta registrará R$ 500,00. Afinal, no arquivo, os dados do 
aplicativo de B (Saldo atualizado = R$ 500,00) serão sobrepostos aos 
dados do aplicativo de A (Saldo atualizado = R$ 550,00). Repare que 
essa informação está errada – inconsistente – pois havia R$ 600,00 e 
foram retirados R$ 150,00. Portanto, o saldo após essas retiradas, de-
veria ser de R$ 450,00 e não R$ 500,00.
Problemas de segurança.5. O acesso a determinados dados deve ser 
restringido para alguns usuários do sistema de informações. Os da-
dos relativos ao contracheque dos empregados não podem ser dis-
ponibilizados a todos os usuários indistintamente, mas apenas aos 
usuários responsáveis pela folha de pagamento. Entretanto, quando 
programas aplicativos são instalados de maneira arbitrária, ou seja, 
sem acompanhamentoe controle necessários, não há como assegu-
rar tais restrições de segurança.
Capítulo 1 
13
Linguagem de Programação
Problemas de integridade.6. Geralmente restrições de consistência são 
impostas aos dados armazenados. Alguns as chamam simplesmente 
de regras de negócio. O saldo de uma conta bancária, por exemplo, 
não deve cair abaixo de um valor predeterminado. Restrições de con-
sistência como essa nos sistemas de arquivos tradicionais são incor-
poradas aos códigos dos programas aplicativos. Um problema grave 
ocorre quando a adição de novas restrições implica a necessidade de 
alteração de vários programas aplicativos. Sempre há o risco de es-
quecimento de algum desses programas. Em consequência, o risco de 
inconsistências dos dados ameaça a integridade dos mesmos.
Essas seis dificuldades listadas levaram ao desenvolvimento dos siste-
mas gerenciadores de banco de dados (SGBD). Ao longo deste curso 
veremos algumas das estratégias criativamente engendradas para a solu-
ção dessas desvantagens dos sistemas de arquivos tradicionais.
A tecnologia de banco de dados trouxe maior produtividade para 
o desenvolvimento de sistemas de informação. Afinal, nos sistemas 
tradicionais de arquivos, quando implementadas, as característi-
cas que somente seriam inauguradas com o surgimento dos bancos 
de dados eram incorporadas às aplicações isoladamente. Com isso, 
a complexidade do desenvolvimento de sistemas de informação au-
mentava consideravelmente, resultando em:
(1) prazos maiores para a conclusão dos sistemas de informa-
ção e, consequentemente, elevação dos custos envolvidos no 
desenvolvimento;
(2) obrigação de as equipes de desenvolvimento (analistas e progra-
madores) dedicarem muito tempo a programas que não tratavam 
diretamente do sistema de informação em questão, mas sim de fun-
cionalidades que forneceriam suporte a esse mesmo sistema;
(3) ocorrência de problemas não-previstos, favorecidos pela ausên-
cia de padronização das funcionalidades de suporte. 
Os sistemas de bancos de dados atualmente existentes no mercado ali-
viam as equipes desenvolvedoras dessas preocupações com aquilo que 
não seja diretamente relacionado aos seus objetivos, permitindo assim 
a codificação de sistemas de informação mais robustos e confiáveis.
Conceitos de Banco de Dados 
14
Técnico em Informática
Atividade 01
Crie outros possíveis exemplos (pelo menos 2) para as desvan-
tagens ou problemas trazidos pelo uso de Sistemas Tradicio-
nais de Arquivos.
1.2 Objetivos
Sistemas Gerenciadores de Bancos de Dados (SGBDs) têm o objetivo 
de prover mecanismos adequados ao armazenamento e ao acesso segu-
ro e eficiente de dados em Sistemas de Informação (SI). Mais detalha-
damente, os bancos de dados (BD) têm por objetivo:
Fornecer interfaces amigáveis e padronizadas para o armazenamen-•	
to e acesso aos dados. Assim, os usuários são poupados de conhecer 
detalhes da implementação interna, como organização dos arquivos 
e estruturas de armazenamento;
Assegurar a privacidade dos dados por meio de medidas de segu-•	
rança como a atribuição de permissões diferenciadas de acesso aos 
usuários, a criação de visões particularizadas de tais dados e o forne-
cimento de senhas de acesso. Assim, evita-se que dados importantes 
sejam acessados por pessoas não-autorizadas;
Administrar acessos concorrentes aos dados, permitindo que diferentes •	
usuários compartilhem simultaneamente a mesma coleção de dados;
Prover mecanismos para a recuperação de dados em decorrência de •	
eventuais paradas e falhas do sistema. As possíveis causas de paradas 
ou falhas podem ocorrer devido a erros de software, interrupção no 
suprimento de energia, defeito de hardware, queda na comunicação 
com o servidor, etc. Qualquer falha dessas pode resultar na perda 
de dados processados pelo SGBD no momento da parada. A perda 
desses dados pode levar o banco de dados a uma condição de in-
consistência que, se não evitada, torna a tecnologia pouco confiável 
para sistemas de aplicações críticas. Portanto, caso um produto seja 
vendido, seu estoque deve ser atualizado e, se uma falha ocorre após 
o registro da venda, mas antes da atualização do estoque, o banco de 
dados ficará inconsistente. Afinal, a quantidade em estoque não será 
real para o produto em questão.
Capítulo 1 
15
Linguagem de Programação
Atividade 02
Um Sistema Gerenciador de Banco de Dados (SGBD) foi definido 
como “uma coleção de dados inter-relacionados e um conjunto 
de programas para acessá-los” (KORTH, SILBERSCHATZ e SU-
DARSHAN, 2006, p. 1). Entretanto, os Sistemas Tradicionais de 
Arquivo, que precederam a tecnologia de Banco de Dados, falha-
vam exatamente nestes dois aspectos: (I) manter dados inter-re-
lacionados e (II) fornecer um conjunto de programas voltados à 
manutenção desses mesmos dados.
[A] Comente as vantagens que a existência de dados inter-rela-
cionados traz aos sistemas de informação.
[B] Uma das principais funcionalidades de um banco de dados 
é a chamada restrição de consistências. Explique os riscos que 
a ausência dessa funcionalidade trazia aos Sistemas Tradicio-
nais de Arquivos.
1.3 Usuários de banco de dados
Basicamente são quatro os tipos de usuários de sistemas de bancos de 
dados:
Usuários leigos: São profissionais de outras áreas cujos conhecimentos 
de informática se restringem ao básico e que interagem com o banco 
de dados por meio de aplicações escritas pelos programadores de apli-
cações. As aplicações fazem a intermediação entre esses usuários e o 
banco de dados, pois é através de suas telas ou páginas que o usuário 
leigo acessa seus dados;
Usuários avançados: usuários com maior nível de independência em 
relação aos programadores de aplicações. Geralmente interagem com 
os bancos de dados por meio de interfaces disponíveis no ambiente. Es-
crevem consultas em linguagem específica para gerarem relatórios com 
certa facili-dade, sem a necessidade de um programador escrever uma 
nova aplicação;
Analistas de Sistemas: profissionais responsáveis por traduzir as necessi-
dades dos usuários leigos e avançados em uma especificação racional de 
um sistema de informação. O projeto do sistema de informação especifica 
as aplicações e a estrutura do banco de dados. Os programadores de aplica-
ções seguem rigorosamente as especificações dos analistas de sistemas, de-
senvolvendo programas de computadores que acessem o banco de dados.
Conceitos de Banco de Dados 
16
Técnico em Informática
Programadores de aplicações: profissionais com formação em compu-
tação que se propõem a construir aplicações ou programas de computa-
dor com interfaces intuitivas e amigáveis para os usuários leigos. Tais in-
terfaces incluem formulários e relatórios que acessam bancos de dados;
Administrador de Banco de Dados (Data Base Administrator - DBA): 
usuário mais especializado de um banco de dados responsável pela ad-
ministração das bases de dados, ocupando-se com:
a atribuição de permissões de acesso adequadas a cada usuário,1. 
a geração de cópias de segurança dos dados (2. backups) como contin-
gência a possíveis falhas,
o monitoramento do ambiente como forma de assegurar a disponi-3. 
bilidade do banco de dados pelo maior tempo possível,
a otimização de recursos de infraestrutura (disco, memória, processa-4. 
dor) para assegurar o desempenho satisfatório do banco de dados,
o suporte à equipe de desenvolvimento (analistas de sistemas e pro-5. 
gramadores de aplicação).
Em resumo, o DBA deve ser o profissional que zela pela implemen-
tação adequada do banco de dados, assegurando um funcionamento 
eficiente que prime pelo desempenho, escalabilidade, flexibilidade e 
confiabilidade.
Algumas organizações preferem manter um profissional que acu-
mule as funções do analista de sistemas e do programador de 
aplicações. Isso lhes permite reduzir custos trabalhistas e evitar “ru-
ídos de comunicação” que comprometam a eficiência dos sistemas 
de informações.
Afinal, sempre há a possibilidade de que o analista de sistemas não 
entendaperfeitamente as demandas do usuário ou que não seja 
plenamente entendido pelo programador de aplicações. Assim, o 
usuário teria em suas mãos um sistema de informação muito dife-
rente do que requisitara inicialmente.
Assim, as aplicações teriam de ser reescritas, tornando o processo 
mais caro e menos eficiente do que seria.
Capítulo 1 
17
Linguagem de Programação
1.4 Modelos de bancos de dados
Os modelos de bancos de dados definem a forma como os dados estão 
organizados internamente. Em ordem cronológica, os modelos de ban-
co de dados classificam-se em redes, hierárquicos, relacionais, objeto-
relacionais e orientados a objetos. Segue-se uma descrição sobre cada 
um desses modelos para melhor entendermos suas características, di-
ferenças e usos.
1.4.1 Modelo em Rede
Um banco de dados em rede consiste em uma coleção de registros con-
catenados uns aos outros por meio de ligações. Semelhantes ao concei-
to de ponteiros, essas ligações podem ser entendidas como endereços 
de memória que indicam ou “apontam” a localização de um registro 
associado.
Na Figura 1 há um exemplo de Modelo em Rede com dois diferentes 
tipos de registros: cliente e conta. O registro de cliente apresenta três 
atributos ou subdivisões: nome, cidade e sexo. Por sua vez, o registro de 
conta possui apenas dois atributos: número e saldo.
Figura 1 - Exemplo de Banco de Dados – Modelo em Rede.
Ligações associam registros de clientes a registros de contas. Então, sa-
bemos que o cliente Reinaldo Antunes tem uma conta de número 1045 
e saldo de R$ 945,60; e os clientes Marcela Souto e André Marques 
possuem uma conta conjunta no banco de número 1447 e saldo de R$ 
93,41. Porém, Marcela tem ainda outra conta de número 1358 e saldo 
R$ 107,00; e André Marques também tem outra de número 1500 com 
R$ 1.266,00 depositados.
Um conjunto de diferentes tipos de registros relacionados entre si por 
meio de um emaranhado de ligações forma uma estrutura de dados 
muito semelhante a uma rede.
Nome
Reinaldo antunes
Nome
Marcela Souto
Nome
André Marques
Cidade
Vitória
Sexo
M
Sexo
M
Sexo
F
Cidade
Colatina
Cidade
Colatina
Número
1045
Número
1385
Número
1447
Número
1500
Saldo
945,60
Saldo
107,00
Saldo
93,41
Saldo
1.266,00
Conceitos de Banco de Dados 
18
Técnico em Informática
Atividade 03
Seguindo o modelo da Figura 1 acima, elabore um exemplo de 
banco de dados no Modelo Rede envolvendo a seguinte coleção 
de dados: Funcionário {matrícula, nome, salário, função} e Filial 
{Cidade, Bairro, Telefone}. O objetivo desta coleção de dados é 
armazenar informações sobre todos os funcionários de um super-
mercado e de suas filiais espalhadas em diversas localidades no 
país. Por meio dessa coleção deve ser possível determinar as filiais 
em que cada funcionário está lotado.
Esse exemplo deverá apresentar pelo menos duas filiais com um 
mínimo de cinco funcionários por elas distribuído. Use sua criativi-
dade para dar nomes aos funcionários, bem como o preenchimento 
dos outros dados sobre eles e as filiais nas tabelas. Lembre-se de que 
um funcionário somente poderá estar lotado em uma filial.
1.4.2 Modelo Hierárquico
Uma evolução do Modelo em Rede, os bancos de dados hierárquicos 
são uma coleção de registros relacionados uns aos outros por meio de 
ligações também semelhantes a ponteiros. Porém, o Modelo Hierárqui-
co se diferencia de seu antecessor na forma de organizar seus registros. 
Enquanto no Modelo em Rede os registros são distribuídos conforme a 
lógica de grafos arbitrários, no Hierárquico esses mesmos registros são 
dispostos como uma coleção de árvores.
Árvores Binárias é um dos temas tratados na disciplina referente 
a programação em Estrutura de Dados.
A Figura 2 traduz para o Modelo Hierárquico o exemplo anterior do 
banco com registros de clientes e contas.
Capítulo 1 
19
Linguagem de Programação
Figura 2 - Exemplo de Banco de Dados – Modelo Hierárquico.
Um registro isolado no topo da Figura 2 encontra-se associado a todos 
os registros de Clientes. Esse é o registro do tipo “raiz”, o ponto de parti-
da da árvore de registros. Ele está no nível mais elevado da estrutura de 
dados e pode ser ligado a nenhum, um ou vários registros no nível in-
ferior. Em nosso exemplo, os registros conectados ao registro “raiz” são 
sempre registros de Clientes que, por sua vez, estão sempre interligados 
a registros de Contas no nível imediatamente abaixo.
Generalizando, existem camadas, níveis ou hierarquias em uma árvo-
re. Os registros de um dado nível sempre se associam aos registros do 
nível imediatamente inferior e nunca com registros do mesmo nível. 
No primeiro nível da árvore há sempre um único registro, denomina-
do “Raiz”, que representa o ponto de partida de onde é possível acessar 
os demais registros.
Cada nível da árvore comporta um tipo de registro diferente. No exem-
plo, o nível imediatamente abaixo da raiz comporta apenas registros do 
tipo Cliente; e o nível seguinte apresenta apenas registros do tipo Conta. 
Ainda poderiam existir outros níveis, desde que houvesse registros de 
outros tipos.
Na árvore, um registro de nível K pode estar associado a, no máxi-
mo, um registro do nível imediatamente acima (K – 1). Contudo, um 
registro de nível superior pode estar associado a mais de um registro 
do nível imediatamente abaixo. Note que o registro da cliente Marcela 
Souto liga-se a dois outros registros de conta, mas a conta de número 
1447 teve de ser duplicada para que a regra fosse preservada, repli-
cando o registro para que André Marques compartilhasse essa conta 
com Marcela Souto já que um registro de conta não pode se associar 
simultaneamente a dois de clientes.
Nome
Reinaldo antunes
Nome
Marcela Souto
Nome
André Marques
Cidade
Vitória
Sexo
M
Sexo
M
Sexo
F
Cidade
Colatina
Cidade
Colatina
Número
1500
Número
1045
Saldo
945,60
Número
1385
Saldo
107,00
Número
1447
Saldo
93,41
Número
1447
Saldo
93,41
Saldo
1.266,00
Conceitos de Banco de Dados 
20
Técnico em Informática
A estrutura hierárquica desse banco de dados define o caminho de aces-
so aos registros. Qualquer busca a um registro específico sempre come-
ça pela raiz até o nível correspondente ao tipo procurado.
É comum encontrar na literatura as denominações PAI e FILHO 
para distinguir a relação existente entre registros de diferentes ca-
madas da árvore.
Registros de uma camada K geralmente são designados Filhos dos 
registros de uma camada K – 1. Em contrapartida, os registros dessa 
camada K – 1 são considerados Pais dos registros da camada K que 
a eles estiverem conectados. Portanto, em nosso exemplo da Figura 
3, os registros de Conta são Filhos dos registros de Clientes.
Atividade 04
Converta o exemplo de banco de dados no Modelo Rede da Ativi-
dade 03 em um exemplo equivalente no Modelo Hierárquico.
1.4.3 Modelo Relacional
A partir dos anos 1970, o modelo relacional de banco de dados estabe-
leceu-se como modelo preferencial para aplicações de banco de dados 
comerciais. Na década seguinte já havia se tornado o padrão de banco 
de dados utilizado pelo mercado corporativo.
Em 1970, foi Edgar Frank Codd, um pesquisador da IBM, quem 
originalmente propôs o modelo relacional de banco de dados 
tratado nesta seção. Esse novo modelo trouxe uma importante 
contribuição ao dissociar a estrutura lógica do banco de dados 
dos métodos de armazenamento físico dos dados – algo impos-
sível para os modelos em rede e hierárquico. Ao fazê-lo, tornou os 
SGBDs mais “amigáveis” (fáceis de utilizar).
Capítulo 1 
21
Linguagem de Programação
Em um modelo relacional, os registros são organizados em tabelas onde 
cada linha representa uma relação entre os valores armazenados em di-
ferentes colunas. Assim, em uma tabela de clientes, como no exemplo 
desenvolvido até aqui, temos cada registro subdividido em 3 colunas: 
nome, cidade e sexo. Toda linha existente na tabela de Clientes repre-
senta um conjunto de valores inter-relacionados. Em outras palavras, 
cada linha da tabela armazena os dadosde um cliente em particular 
organizados em diferentes colunas.
Assim, sabemos que o cliente “Reinaldo Antunes” mora em “Vitória” e 
é do sexo masculino (“M”), pois esses dados estão em uma mesma linha 
da tabela. Também sabemos que os clientes “Marcela Souto” e “André 
Marques” residem na cidade de “Colatina” e são, respectivamente, do 
sexo feminino e masculino.
O modelo relacional de banco de dados apresenta esse nome em razão 
não apenas da relação existente entre as colunas de uma mesma tabe-
la, mas também da possibilidade de estabelecer relacionamentos entre 
diferentes tabelas. Para que nosso exemplo de clientes e contas fique 
completo, precisamos relacionar registros de uma tabela com registros 
de outra. Caso contrário, não teríamos como saber com precisão a quais 
clientes cada conta pertence. Porém, ao contrário dos modelos em rede 
e hierárquico, as associações entre diferentes registros em um modelo 
relacional não são implementadas mediante o recurso de “ponteiros”. Na 
verdade, o modelo relacional emprega a duplicação de uma ou mais co-
lunas em uma tabela distinta daquela a que pertencem originalmente.
Ponteiros é um dos temas tratados na disciplina referente a pro-
gramação em Estrutura de Dados.
Sexo
M
F
M
Cliente
Nome Cidade
Reinaldo Antunes Vitória
Marcela Souto Colatina
André Marques Colatina
Conceitos de Banco de Dados 
22
Técnico em Informática
No diagrama acima, temos duas tabelas – Filme e Gênero – que estão 
relacionadas entre si através da coluna Cod_Genero. Essa coluna é ori-
ginal da tabela Gênero, mas foi duplicada na tabela Filme para estabele-
cer uma associação lógica entre os registros das diferentes tabelas. Dessa 
maneira, sabemos que o filme “Star Trek” é classificado como uma “fic-
ção-científica”, pois apresenta o valor “FIC” em sua coluna Cod_Genero 
e o mesmo valor na coluna correspondente da tabela Gênero encontra-
se associada à descrição “Ficção-Científica”.
Há quem não compreenda a necessidade de duas tabelas em situações 
como essa de Filme e Gênero. Afirmam ser uma solução de complica-
ção despropositada e perguntam-se: A coluna descrição não poderia 
simplesmente existir apenas na tabela Filme de modo a não haver a ne-
cessidade da tabela Gênero e nem das colunas duplicadas de Cod_Ge-
nero? A princípio essa parece ser uma solução mais simples e, portanto, 
melhor, mas a tabela abaixo procura exemplificar essa solução mais sim-
ples demonstrando também sua vulnerabilidade.
Filme
Numero Titulo Ano Cod_Genero
1099 El Cid 1961 DRA
1100 Star Wars 1977 FIC
1101 Star Trek 2009 FIC
1102 UP- Altas Aventuras 2009 DES
1103 Transformers 2 2009 FIC
1104 Wolverine Origens 2009 AVE
Gênero
Cod_Genero Descricao
AVE Aventura
DES Desenho
DRA Drama
FIC Ficção-Científica
MUS Musical
COM Comédia
Filme
Numero Titulo Ano Descricao_Genero
1099 El Cid 1961 Drama
1100 Star Wars 1977 Ficção-Científica
1101 Star Trek 2009 Ficção
1102 UP – Altas Aventuras 2009 Desenho
1103 Transformers 2 2009 Ficção-Científica
1104 Wolverine- Origens 2009 Aventura
Capítulo 1 
23
Linguagem de Programação
Os valores da coluna Descricao_Genero podem se repetir em diferen-
tes registros (linhas). Na tabela acima há três filmes do gênero ficção 
científica. Contudo, cada filme apresenta valores diferenciados para essa 
coluna. No filme “Transformers 2” não há hífen, mas em “Star Wars” 
esse caractere está presente. Já no filme “Star Trek”, não somente houve a 
omissão do hífen como também a supressão da palavra “Científica”. Algo 
assim é perfeitamente possível de acontecer. Usuários diferentes podem 
ter cadastrado cada um desses filmes, ou ainda um mesmo usuário em 
diferentes ocasiões pode ter cadastrado os três filmes. Acontece que, em 
um dado momento, esse usuário encontrava-se com uma disposição um 
tanto preguiçosa para escrever “ficção científica” e registrou apenas “fic-
ção”. Mais tarde, por um erro de digitação, passou a usar o hífen.
A possibilidade de ocorrer a situação descrita acima demonstra a vul-
nerabilidade de uma solução baseada em uma única tabela. Caso um 
relatório ou simples consulta seja efetuada, o resultado alcançado pode 
diferir sensivelmente da realidade que a base de dados deveria espe-
lhar. Suponha que um usuário submeta uma consulta ao banco de dados 
usando como critério de busca a coluna Descricao_Genero com o valor 
“Ficção Científica”. Infelizmente, o resultado de sua consulta não inclui-
rá os registros de “Star Trek” e “Star Wars” e ele terá a impressão de que 
existe apenas um filme desse gênero: “Transformers 2”.
Como veremos quando tratarmos do conceito de integridade refe-
rencial, a solução inicial envolvendo duas tabelas (Filme e Gênero) é a 
mais indicada para se evitar tais problemas. Ocorre que a tecnologia de 
bancos de dados relacionais possui recursos suficientes para assegurar 
que a coluna Cod_Genero da tabela Filme apresente somente valores 
já existentes na coluna Cod_Genero da tabela Gênero. Dessa maneira, 
nenhum usuário poderá cadastrar um novo filme ou alterar um velho 
filme com um código inexistente na tabela de origem (Gênero). O Sis-
tema Gerenciador de Banco de Dados (SGBD) Relacional simples-
mente não permitirá essa operação. No máximo, um usuário descui-
dado poderia lançar um código errado para um filme. Porém, ele não 
conseguiria criar um novo código de gênero para um Filme sem antes 
criá-lo na tabela de Gênero.
Retomando o exemplo do banco de dados para clientes e contas bancárias, 
a Figura 3 apresenta a configuração ideal para o modelo relacional.
Conceitos de Banco de Dados 
24
Técnico em Informática
Figura 3: Exemplo de Banco de Dados – Modelo Relacional.
Aqui, uma terceira tabela (Contas_Cliente) precisou ser criada para esta-
belecer o relacionamento entre as tabelas de Cliente e Conta. No exemplo 
anterior sobre Filme e Gênero, não houve essa necessidade, bastou repli-
car a coluna Cod_Genero na tabela Filme. Porém, a duplicação da coluna 
Id_Cliente na tabela Conta ou a duplicação da coluna Numero_Conta 
na tabela Cliente não seria uma solução eficiente para estabelecer o rela-
cionamento entre as tabelas. Por isso, criamos uma nova tabela apresen-
tando apenas duas colunas e nenhuma delas é originária dessa nova tabela 
(Contas_Cliente). As colunas Id_Cliente e Numero_Conta são replica-
das respectivamente nas tabelas Cliente e Conta.
Caso duplicássemos Id_Cliente na tabela Conta, enfrentaríamos um 
grave problema ao cadastrar a Conta de número 1447. Esta conta per-
tence a dois clientes, é uma conta conjunta: André (Id_Cliente = 37) e 
Marcela (Id_Cliente = 15). Como a coluna Id_Cliente na tabela Conta 
comporta apenas um valor por linha, teríamos de cadastrar duas linhas 
para a Conta de número 1447. Se assim procedêssemos, a tabela Conta 
teria dois registros diferentes entre si apenas no valor de uma de suas 
três colunas, Figura 4.
Figura 4: O Problema em Duplicar Id_Cliente na Tabela Conta.
Cliente
Id_Cliente Nome Cidade Sexo
10 Reinaldo Antunes Vitória M
15 Marcela Souto Colatina F
37 André Marques Colatina M
Contas_Cliente Conta
Numero_Conta Id_Cliente Numero_Conta Saldo
1045 10 1045 945,60
1385 15 1385 107,00
1447 15 1447 93,41
1447 37 1500 1.266,00
1500 37
Conta
Numero_Conta Saldo Id_Cliente
1045 945,60 10
1385 107,00 15
1447 93,41 15
1447 93,41 37
1500 1.266,00 37
Redundância de 
dados (ineficiência)
Capítulo 1 
25
Linguagem de Programação
Por outro lado, se optássemos por duplicar Numero_Conta na tabela 
Cliente, teríamos outro problema grave com a tentativa de registrar as 
duas contas de “Marcela Souto” – números 1385 e 1447, pois teríamos de 
cadastrar duas linhas exatamente iguais para Marcela na tabela Cliente, 
exceto pelo conteúdo da coluna duplicada de Numero_Conta, Figura 5.
Figura 5: O Problema em Duplicar Numero_Conta na Tabela Cliente.
As consequências mais sérias para essas tentativas equivocadas de rela-
cionamento das tabelas Cliente e Conta seriam:
Uso ineficiente dos recursos de armazenamento: redundância de dados 1. 
consumiria desnecessariamenteo espaço disponível no disco rígido;
Maior complexidade para a manutenção das informações: a atuali-2. 
zação do saldo em uma conta (Figura 4) ou a mudança de cidade 
para um cliente (Figura 5) poderia implicar a alteração de mais de 
um registro simultaneamente.
Por mais que a nova tabela Contas_Cliente (Figura 3) também seja 
uma redundância de dados, quando comparada às outras situações (Fi-
guras 4 e 5), a mesma representa uma replicação controlada e, portanto, 
mais eficiente.
Na Figura 5, por exemplo, a duplicação de dados abrange quatro colu-
nas (Id_Cliente, Nome, Cidade e Sexo), enquanto na Figura 3 a duplica-
ção envolve somente duas colunas (Id_Cliente e Numero_Conta).
Embora a Figura 4 igualmente apresente a duplicação de apenas duas 
colunas (Numero_Conta e Saldo), ela também implica a replicação de li-
nhas. O mesmo não ocorre com a situação ilustrada pela Figura 3, onde 
nenhuma linha aparece replicada. Ainda que as colunas Numero_Con-
ta e Id_Cliente apresentem valores duplicados em diferentes linhas, ne-
nhuma combinação das mesmas se repete na tabela Contas_Cliente.
Como a duplicação de dados é inerente ao modelo relacional – o que é 
inevitável – a situação representada pela Figura 3 mostra-se plenamente 
aceitável e preferível às demais situações representadas pelas Figuras 4 e 5.
Redundância de 
dados (ineficiência)
Redundância de 
dados (ineficiência)
Cliente
Id_
Cliente
Nome Cidade Sexo Numero
_Conta
10 Reinaldo Antunes Vitória M 1045
15 Marcela Souto Colatina F 1385
15 Marcela Souto Colatina F 1447
37 André Marques Colatina M 1447
7 André Marques Colatina M 1500
Conceitos de Banco de Dados 
26
Técnico em Informática
A maneira de definir quais colunas e em quais tabelas as mesmas 
deverão ser replicadas será tratada mais adiante ao nos aprofun-
darmos no Modelo Relacional, quando abordaremos conceitos como 
Chaves Primárias, Chaves Estrangeiras e Integridade Referencial.
Também veremos com detalhes a linguagem de consulta e mani-
pulação de banco de dados relacionais conhecida como Structured 
Query Language (SQL), que tornou-se importante padrão para 
Bancos de Dados desde a década de 1980.
Atividade 05
Converta o exemplo de banco de dados das Atividades 03 e 04 em 
um exemplo equivalente no Modelo Relacional.
1.4.4 Modelo objeto-relacional
Sistemas Gerenciadores de banco de dados (SGBDs) que adotam o 
modelo objeto-relacional aproveitam a estrutura básica do modelo re-
lacional acrescida de algumas características próprias da orientação a 
objetos. Porém, esse modelo híbrido não deve ser confundido com o 
Modelo Orientado a Objetos. Dentre as características da orientação a 
objetos incorporadas pelo modelo objeto-relacional merecem destaque: 
a herança de tipos e tabelas e a definição de novos tipos complexos.
O modelo objeto-relacional (OR) é uma extensão do modelo rela-
cional conhecido como modelo relacional estendido. Sua linguagem 
de consulta foi adaptada para abranger objetos, atributos multiva-
lorados, tipos abstratos de dados, além de métodos e funções como 
predicados de busca.
O padrão ANSI SQL-99 ou SQL-3, muitas vezes caracterizado como a 
SQL orientada a objetos, trouxe inúmeras inovações em relação à SQL-
92. Ela é a base de inúmeros SGBDs OR, como o Oracle 11g, o IBM DB2 
Universal Database e o Informix Universal server.
Capítulo 1 
27
Linguagem de Programação
1.4.5 Modelo orientado a objetos
Os modelos em rede, hierárquico e relacional trouxeram importantes 
contribuições para a tecnologia de banco de dados, principalmente os 
comerciais. Qualquer um desses modelos foi um avanço em relação 
aos Sistemas Tradicionais de Arquivos. Dentre os três modelos acima, 
o relacional merece destaque, pois, desde a década de 1980, tornou-
se padrão de mercado no desenvolvimento de aplicações comerciais, 
como controle de estoques, contas a pagar e a receber, frente de loja, 
recursos humanos etc.
Contudo, a complexidade de novas demandas tecnológicas como os 
sistemas de informações geográficas e multimídias evidenciaram as 
limitações desses modelos de bancos de dados. As novas aplicações 
precisavam suportar estruturas complexas de dados para objetos, as-
sim como o armazenamento de imagens digitalizadas e textos muito 
longos (NAVATE, 2005).
Outro fator que pressionou positivamente o desenvolvimento de um mo-
delo orientado a objeto (OO) para banco de dados é a predominância de 
linguagens de programação orientadas a objeto. Logo, programadores 
de aplicações convivem com os dois paradigmas de desenvolvimento: 
modelo relacional para bancos de dados e orientação a objetos para os 
programas que trabalham com esses mesmos bancos. Tudo seria mais 
simples se aplicações e bancos que dão suporte à persistência de seus da-
dos fossem igualmente orientados a objetos, não sendo mais necessário 
o mapeamento objeto-relacional para combinar as duas tecnologias.
Infelizmente, bancos de dados orientados a objetos ainda não foram 
bem aceitos pelo mercado. Em parte, essa rejeição é explicada pela sim-
plicidade e popularidade de que o modelo relacional ainda goza jun-
to aos profissionais de informática. Portanto, muitos desenvolvedores 
optam por uma solução híbrida como o já comentado modelo objeto-
relacional também conhecido como modelo relacional estendido.
Modelo Orientado a Objetos é abordado na disciplina referente 
a Análise e Projeto de Sistemas.
Conceitos de Banco de Dados 
28
Técnico em Informática
Capítulo 1 
Atividade 06
Liste em ordem cronológica os modelos de bancos de dados.
Atividade 07
Cite as causas que levaram ao surgimento do Modelo Orientado a 
Objetos de Banco de Dados.
Atividade 08
Por que bancos de dados orientados a objetos não se tornaram po-
pular no mercado? Poderíamos afirmar que a tecnologia de ban-
co de dados estagnou no modelo relacional incorporando poucas 
inovações desde o início da década de 1970?
Atividade 09
As tabelas abaixo correspondem ao modelo relacional de banco 
de dados. Converta esses dados para:
a) o modelo redes, e
b) o modelo hierárquico (lembre de começar dos dados mais ge-
rais para os mais específicos dentro da árvore)
Matricula
Funcionário:
Cargos:
Nome CPF Cargo
01 Ana 123 02
02 Maria 234 01
03 José 245 03
04 Pedro 125 01
Código Nome Cargo
01 Programador
02 Topógrafo
03 Engenheiro
29
Linguagem de Programação
MODELAGEM DE DADOS
Olá!
Imagino que esteja ansioso por “colocar a mão na massa” – imple-
mentar um banco de dados na prática. Isso é bom, mas ainda deve-
mos conter nossa ansiedade.
Antes de sair criando tabelas, relacionamentos e consultas, devemos 
aprender a projetar um banco de dados que atenda satisfatoriamen-
te aos objetivos de nossos usuários.
Um banco de dados bem modelado demandará pouca ou nenhuma 
manutenção corretiva num futuro próximo. Por isso, é conveniente des-
pender parte de seu tempo inicial de trabalho projetando ou modelan-
do o banco de dados propriamente dito. Uma vez concluída essa etapa, 
pode-se finalmente dedicar tempo à criação do banco de dados com 
suas tabelas, relacionamentos, consultas, visões, procedimentos etc.
Na modelagem de um banco de dados, nos concentramos nos 
objetivos que pretendemos atender com essa tecnologia. Se pre-
tendemos criar um banco de dados para um sistema de controle 
acadêmico que permita armazenar dados sobre alunos, turmas, 
disciplinas, notas e frequências, quais serão as tabelas necessárias 
e seus respectivos atributos?
E se o sistema objetivar gerenciar o atendimento de consultas médicas 
em uma clínica? Certamente serão outras as tabelas e atributos neces-
sários. Mas, quais serão essas tabelas e como se relacionarão entre si?
Neste capítulo abordaremos a modelagem conceitual de dados. Um 
modelo conceitual objetiva projetar os requisitos de negócio segundo 
a perspectiva do usuário-final. Tendo em vista apenas o modelo re-
lacional de banco de dados, não precisamos ainda determinar qual 
SGBD utilizaremos para implementar nosso banco de dados, não 
importando se o SGBD será o Oracle,o Microsoft SQL-Server, o 
Sybase, o PostgreeSQL, o Firebird ou o MySQL. O que modelaremos 
pode ser implementado em qualquer SGBD relacional.
Trabalharemos, com especial destaque, com o Modelo de Entidade e 
Relacionamentos (ER).
Bom estudo!
Prof. Vanderson José Ildefonso Silva
30
Técnico em Informática
2.1 Modelo entidade-relacionamento
O Modelo Entidade-Relacionamento (MER) é uma técnica criada em 
1976 por Peter Chen (CHEN, 1990) que expressa graficamente a estru-
tura lógica de um banco de dados. A aplicação dessa técnica resulta na 
elaboração de um diagrama composto dos seguintes elementos:
Entidades:1. representadas graficamente por um retângulo, as entida-
des são “coisas” ou “objetos” que deverão ser armazenados em um 
banco de dados. Médico e paciente, por exemplo, são claramente 
entidades em um banco de dados projetado para suportar um sis-
tema de agendamento de consultas (Figura 6). Afinal, tal sistema 
seria impossível de implementar sem o armazenamento de dados 
relativos aos médicos que atendem na clínica e aos pacientes que 
agendam consultas com esses profissionais.
 Figura 6 – Representação Gráfica das Entidades Médico e Paciente
Atributos: 2. são características ou propriedades relevantes de uma 
entidade. Por “relevantes” pretendemos destacar que nem todas as 
informações sobre uma entidade são pertinentes para o modelo: sa-
ber qual a cor do cabelo do paciente ou o time de futebol para o qual 
um médico torce em nada contribui para a marcação de uma con-
sulta. Por outro lado, o nome do paciente, sua data de nascimento 
(forma de manter atualizada sua idade), um telefone para contato, o 
endereço e o sexo a que pertence (“feminino” ou “masculino”) são 
informações que podem ser classificadas como relevantes para o 
contexto (Figura 7).
 Figura 7 – Entidades e seus respectivos atributos
Médico Paciente
Médico
Nr_CRM
Nome
Celular
Paciente
Matricula
Nome
Endereço
Telefone
Celular
Genero
Capítulo 2 
31
Linguagem de Programação
Relacionamentos: 3. são vínculos ou associações lógicas entre duas 
ou mais entidades. Em alguns casos particulares, um relacionamen-
to pode ser estabelecido entre uma entidade e ela mesma (autor-
relacionamento). Porém, a forma mais comum de relacionamento 
é entre duas entidades. As Figuras 8, 09 e 10 apresentam variados 
exemplos de relacionamentos. Eles são representados por uma linha 
com um losango sobreposto e um verbo que o identifica. No inte-
rior desse losango há geralmente uma seta indicando o sentido da 
leitura do verbo. Na Figura 8, por exemplo, podemos ler que “mé-
dico atende paciente”. Por sua vez, a Figura 09 demonstra um rela-
cionamento entre três entidades simultaneamente (relacionamento 
ternário). Nesse caso não usamos o verbo e nem a seta, apenas o 
losango na junção das linhas. A vantagem desse relacionamento em 
relação ao da Figura 08 é que se torna possível saber qual o plano 
de saúde utilizado pelo paciente em uma determinada consulta com 
um dado médico. A Figura 10 exemplifica um relacionamento entre 
uma entidade e ela mesma (o autorrelacionamento). Nesse caso, um 
funcionário pode coordenar os trabalhos de outros funcionários. 
Esse relacionamento nos permite identificar quais funcionários são 
coordenados por outros funcionários.
Figura 8 – Relacionamento entre duas entidades
Figura 09– Relacionamento entre três entidades (ternário)
Figura 10 – Relacionamento de uma entidade consigo mesma(autorrelacionamento)
Médico Paciente
atende
Médico
Plano de Saúde
Paciente
coordena
Funcionário
Modelagem de Dados
32
Técnico em Informática
Atividade 10
Faça um diagrama que demonstre relacionamentos coerentes en-
tre as seguintes entidades de um Restaurante: Mesa, Prato, Gar-
çon e Comanda (pedidos feitos pelos ocupantes da mesa). Indique 
para cada entidade um conjunto de atributos adequados.
2.1.1 A Cardinalidade de relacionamentos
A cardinalidade é uma característica de todo relacionamento no Mo-
delo Entidade-Relacionamento (MER). Indica com quantas ocor-
rências de uma entidade as ocorrências de uma outra entidade po-
dem se relacionar.
A Figura 11 mostra um autorrelacionamento ainda sem a indicação 
da cardinalidade. A novidade do exemplo está na utilização dos cha-
mados indicadores de papéis (“Marido” e “Esposa”). Ele pode ser 
lido como “pessoa casa com pessoa”. A indicação dos papéis apenas 
torna claro que, no casamento, algumas pessoas têm o papel de ma-
rido e outras, o de esposa.
Figura 11– Autorrelacionamento com indicação de Papéis.
A ausência de cardinalidade nos impossibilita uma melhor compreen-
são das regras envolvidas nesse casamento entre pessoas. Em algumas 
sociedades é permitido que um homem se case com várias mulheres. 
Caso nosso banco de dados precise refletir esse costume, devemos im-
por um relacionamento de cardinalidade um-para-muitos (1:N), como 
mostrado na Figura 12.
casa com
Pessoa
Marido Esposa
Capítulo 2 
33
Linguagem de Programação
Figura 12 – Cardinalidade Um-para-Muitos (1:N)
O relacionamento da Figura 12 exemplifica as regras de uma sociedade 
poligâmica, na qual um homem pode ter várias esposas. Então lemos 
que “uma (1) pessoa (Marido) pode casar-se com muitas (N) pesso-
as (Esposas)”. Define, também, que “uma pessoa (Esposa) somente 
pode casar-se com uma pessoa (Marido)”. Portanto, os direitos não 
são iguais nessa sociedade e a cardinalidade define isso com clareza. Um 
homem pode ter várias mulheres, mas uma mulher pode ter apenas um 
homem como marido.
Os atributos da entidade Pessoa evidenciados na figura acima são:
Identificador:1. código que possibilite distinguir uma pessoa de ou-
tra sem que haja confusões.
Nome:2. nome completo da pessoa. Não serviria para identificar com 
precisão uma pessoa, dada a possibilidade da ocorrência de homô-
nimos (pessoas com o mesmo nome. Ex: José da Silva).
Sexo:3. classificação das pessoas conforme seu sexo: “F” para femini-
no e “M” para masculino.
IdentificadorMarido: 4. atributo que será utilizado apenas pelas pessoas 
do sexo feminino. Geralmente, sociedades poligâmicas não demons-
tram tolerância com casamentos de pessoas do mesmo sexo. Esse atri-
buto ou terá valor nulo (para homens e mulheres solteiras) ou conterá 
o identificador de uma pessoa do sexo masculino (o marido).
A Figura 13 apresenta uma tabela em banco de dados relacional que 
corresponderia a uma implementação do diagrama da figura anterior, 
no qual um homem poderia ter várias esposas, mas, uma mulher, so-
mente um marido.
casa com
Pessoa
Identificador
Nome
Sexo
IdentificadorMarido
Marido Esposa
1 N
Modelagem de Dados
34
Técnico em Informática
Figura 13 – Tabela Pessoa correspondente a Entidade Pessoa
Observamos que, pelos dados da tabela Pessoa, Altair Ramos tem três 
esposas (Martha, Sueli e Ângela). Essas mulheres possuem o seu número 
identificador na coluna (atributo) IdentificadorMarido. Por outro lado, 
Karla apresenta esse atributo sem a indicação de qualquer número (va-
lor nulo). Significa que Karla é solteira. Rita de Cássia (pessoa de identi-
ficador = 6) é casada com Ricardo Souza (pessoa de identificador = 5).
Devemos destacar que a cardinalidade indicada não implica a obriga-
toriedade de cada homem ter mais de uma esposa. No exemplo, Ricardo 
tem apenas uma esposa, e poderiam ainda existir homens solteiros.
Suponhamos agora que uma verdadeira revolução de costumes tenha 
acontecido nessa sociedade poligâmica. A partir de agora, os homens 
somente poderão se casar com uma mulher, mas uma mulher poderá 
casar-se com muitos homens (poliandria). Nosso MER sofreria uma 
alteração em sua cardinalidade, deixando de apresentar um relaciona-
mento um-para-muitos (1:N) para assumir um relacionamento mui-
tos-para-um (N:1).
A Figura 14 mostra o resultado dessa mudança para uma sociedade 
poliândrica. Curiosamente, essa figura quase não difere da Figura 12. 
As únicas alterações perceptíveis são a troca de posições entre “N” e 
“1” na indicação da cardinalidade, além da substituição doatributo 
IdentificadorMarido pelo IdentificadorEsposa. Portanto, a ordem 
dos fatores influi sobre o resultado final. O relacionamento agora indi-
ca que “uma pessoa (Marido) pode casar-se com apenas uma pessoa 
(Esposa)” e que “uma pessoa (Esposa) pode casar-se com muitas 
pessoas (Maridos)”.
Pessoa
Identificador Nome Sexo IdentificadorMarido
1 Altair Ramos M
2 Karla Ramalho F
3 Martha Ramos F 1
4 Sueli Cantagalo F 1
5 Ricardo Souza M
6 Rita de Cássia F 5
7 Ângela Paneton F 1
Capítulo 2 
35
Linguagem de Programação
 Figura 14 – Cardinalidade Muitos-para-Um
Essa estranha sociedade foi de um extremo (poligamia) a outro (polian-
dria). Agora consideremos que homens e mulheres negociaram uma sa-
ída mais equilibrada, tornando essa sociedade monogâmica. Essa nova 
situação é representada na Figura 15.
 Figura 15– Cardinalidade Um-para-Um
Mais uma vez deparamos com pequenas mudanças: o atributo Identi-
ficadorConjuge substitui o atributo IdentificadorEsposa ou Identifi-
cadorMarido; e a cardinalidade do relacionamento agora é Um-para-
Um (1:1). Não temos mais o indicador “N” (que simboliza “muitos” 
ou “vários”). Dessa forma, agora um homem pode casar-se com ape-
nas uma mulher simultaneamente e uma mulher, com somente um 
homem por vez.
Esgotamos todas as possibilidades de cardinalidade para esse relacio-
namento? Certamente que não. Ainda há a possibilidade de que um ho-
mem possa casar-se com muitas mulheres e que também uma mulher 
possa casar-se com muitos homens. Esse seria um relacionamento de 
cardinalidade Muitos-para-Muitos (N:N).
casa com
Pessoa
Identificador
Nome
Sexo
IdentificadorEsposa
Marido Esposa
1N
casa com
Pessoa
Identificador
Nome
Sexo
IdentificadorConjuge
Marido Esposa
11
Modelagem de Dados
36
Técnico em Informática
A Figura 16 exemplifica essa situação de Muitos-para-Muitos. Nes-
se caso as mudanças são substanciais e merecem uma explicação 
mais detalhada.
 Figura 16 – Cardinalidade Muitos-para-Muitos
Olhando para a Figura 16, percebemos que um retângulo tracejado 
apareceu sobre o losango do relacionamento. Essa é uma consequên-
cia direta de qualquer relacionamento de cardinalidade Muitos-para-
Muitos. Esse retângulo tracejado corresponde a uma relação e, como 
tal, possui nome (Casamento) e atributos (IdentificadorMarido e 
IdentificadorEsposa).
Transpondo essa situação para um banco de dados relacional, encontra-
mos duas tabelas: Pessoa e Casamento, exemplificado na Figura 17.
casa com
Pessoa
Identificador
Nome
Sexo
Casamento
IdentificadorMarido
IdentificadorEsposa
N N
Capítulo 2 
37
Linguagem de Programação
Figura 17 – Banco de Dados equivalente ao Modelo ER da Figura 16
Conforme os dados apresentados na Figura 17, Eduardo Licoli (Iden-
tificador = 1) possui duas ocorrências na tabela Casamento. Uma vez 
que é do sexo masculino, seu Identificador aparece na coluna (atributo) 
IdentificadorMarido. Significa que Eduardo é casado com duas mulhe-
res: Ana Paula Souza (Identificador = 2) e Cecília Castro (Identificador 
= 6). Como essas pessoas são do sexo feminino, seus identificadores são 
reproduzidos na coluna IdentificadorEsposa da tabela Casamento. Por 
analogia, Ronaldo Silvestre é casado com três mulheres: Ana Paula Sou-
za, Cibele Tornado e Cecília Castro. Sérgio Couto continua solteiro, pois 
não tem ocorrências na tabela Casamento.
Atividade 11
Acrescente a cardinalidade aos relacionamentos da Atividade 10.
2.1.2 Exemplos do modelo entidade-relacionamento
Considere um banco de dados que objetive manter informações atua-
lizadas sobre os projetos desenvolvidos por uma empresa e as equipes 
responsáveis por esses mesmos projetos. Todos os integrantes das equi-
pes são funcionários da empresa. Cada projeto é gerenciado por um 
funcionário e as equipes podem ser formadas por um número indeter-
Pessoa
Identificador Nome Sexo
1 Eduardo Lincoli M
2 Ana Paula Souza F
3 Ronaldo Silvestre M
4 Cibele Tornado F
5 Anabela Couto F
6 Cecília Castro F
7 Sérgio Souto M
Casamento
IdentificadorMarido IdentificadorEsposa
1 2
1 6
3 2
3 4
3 6
Modelagem de Dados
38
Técnico em Informática
minado de funcionários. Independentemente dos projetos, cada funcio-
nário possui uma função específica na empresa (administrador, analista 
de sistemas, contador, engenheiro, etc.).
De cada projeto importa armazenar seu número identificador, nome, data 
de início, data prevista de conclusão e data efetiva de conclusão. Em relação a 
cada funcionário é importante guardar sua matrícula, nome, sexo e função.
A Figura 18 apresenta um diagrama ER que modela o banco de dados 
proposto. Nela há três relacionamentos, três entidades e uma relação.
Observe que conforme modelado, um funcionário pode gerenciar muitos 
projetos, mas um projeto pode ser gerenciado apenas por um funcioná-
rio. Por outro lado, um funcionário pode trabalhar em muitos projetos 
(simultaneamente ou ao longo do tempo), e cada projeto pode ter muitos 
funcionários nele trabalhando. Também é verdade que um funcionário 
possui apenas uma função, mas uma função pode pertencer a muitos fun-
cionários. Portanto, um funcionário não pode ser contador e programador 
de computadores ao mesmo tempo, mas a empresa pode, por exemplo, ter 
mais de um programador de computadores dentre seus funcionários.
Como indicam os atributos do modelo, um projeto ainda em andamen-
to apresentaria a Data_Final_Efetiva com valor nulo. A existência de 
uma Data_Final_Prevista e de uma Data_Final_Efetiva permite ava-
liar o atraso de um projeto em andamento ou já concluído.
Figura 18 – Exemplo de Diagrama ER
Funcionário
Matricula
Nome
Sexo
Função
Possui
trabalha em
Id_Função
Descrição
Projeto
Equipe
1
1 N
N
N
N
Matricula
Numero
Numero
Nome
Data_Inicio
Data_Final_Prevista
Data_Final_Efetiva
Capítulo 2 
39
Linguagem de Programação
Consideremos agora a modelagem de um banco de dados desenvolvido 
para o gerenciamento de uma biblioteca. Para efeito de simplificação, 
essa biblioteca empresta apenas livros. Não há revistas ou dvds em seu 
acervo. Também é vetado ao usuário dessa biblioteca reservar um livro 
indisponível no momento como em algumas bibliotecas em que o usuá-
rio pode entrar em uma fila de reservas, de modo que, ao ser devolvido 
um exemplar do livro reservado, os usuários que fizeram a reserva po-
dem, conforme a ordem que ocupam na fila, requisitar o empréstimo do 
livro. Como dito, nossa biblioteca não dispõe desse serviço. Por outro 
lado, o banco de dados modelado deve prover os seguintes requisitos:
(1) Manter dados sobre as obras do acervo, como nome dos autores, 
data da aquisição, editora, edição e título.
(2) Manter registro de todos os livros de uma mesma obra.
(3) Efetuar o empréstimo e a devolução de livros, mantendo registros 
detalhados dos mesmos ao longo do tempo.
(4) Consultar livros por código de identificação, título da obra, nome de 
autores e gênero da obra (autoajuda, dicionário, literatura, etc.).
(5) Manter dados sobre os usuários da biblioteca: matrícula, nome, sexo, 
data de nascimento, endereço e telefone.
A Figura 19 mostra o diagrama ER para o sistema de informação dessa 
biblioteca. Não se assuste com o tamanho; embora seja maior que o an-
terior, ainda é bem menor que a média em uma situação real.
Repare que foram usadas duas entidades – Obra e Livro – em vez de 
uma com todos os seus atributos. Você deve estar se perguntando o 
porquê dessa decisão. Embora, a princípio, pareça correto utilizar 
uma entidade com todos esses atributos, na verdade eles pertencem 
a entidades diferentes.
A entidade Livro, por exemplo, refere-se a uma edição em particular de 
uma obra. Considere uma obra do século XIX, como Helena, de Ma-
chado de Assis, um clássico da literatura brasileira em sua fase român-
tica, que já foi publicada por diferentes editoras ao longo de mais de 
um século de existência. Portanto, a entidade Editora não poderia estar 
relacionada à entidade Obra, mas sim à entidade Livro, como demons-
trado na Figura 19. Se fossediferente, essa obra somente poderia ser 
publicada por uma editora.
Modelagem de Dados
40
Técnico em Informática
Figura 19 – Diagrama ER do Sistema de Gerenciamento de Biblioteca
Por analogia, o atributo Edição não pode estar na entidade Obra, mas na 
entidade Livro. Afinal, somente livros publicados de uma mesma obra 
podem ter edições diferentes. Nessa biblioteca, por exemplo, podem 
existir 30 livros da obra Helena. Desses, 10 foram publicados pela edi-
tora Guanabara em 1981 e são da quinta edição e 4 desses livros adqui-
ridos mais recentemente foram publicados pela editora Martin Claret.
A entidade Autor se relaciona à entidade Obra, pois se estivesse relaciona-
da a Livro implicaria o relacionamento pouco justificável de seus autores 
a cada livro adquirido pela biblioteca. Nesse caso, se 50 livros da obra de 
Alexandre Dumas, Os Três Mosqueteiros, fossem doados para a bibliote-
publica
referencia
classifica
escreve
movimenta
Movimentação
Autoria
1
1
1
NN
N
N
N
N
N Usuário
Matrícula
Nome
Sexo
Data_Nascimento
Telefone
Celular
E_Mail
Endereço
Matrícula
Nr_Livro
Data_Emprestimo
Data_Prevista
Data_Devolução
Autor
Id_Autor
Nome
Obra
Nr_Obra
Título
Nr_Obra
Id_Autor
Livro
Nr_Livro
Data_Aquisição
Edição
Editora
Id_Editora
Nome_Fantasia
Gênero
Id_Gênero
Descrição
Capítulo 2 
41
Linguagem de Programação
ca, um funcionário deveria relacionar sua ocorrência a 50 ocorrências de 
Livros. Contudo, o relacionamento de Autor com Obra evita esse traba-
lho. O autor Alexandre Dumas seria relacionado a uma única obra e esta, 
por sua vez, aos 50 livros dessa mesma obra. O funcionário da biblioteca 
agradece seu empenho em tornar sua tarefa menos árdua.
Olhando o diagrama ER da Figura 19, notamos que um gênero pode 
classificar várias obras, mas que uma obra pode ser classificada por um 
gênero. Assim, Helena e Os Três Mosqueteiros podem ser classificadas 
como Literatura. Porém, nenhuma dessas obras pode ser classificada em 
mais de um gênero simultaneamente.
Um autor pode escrever muitas obras e uma obra pode ser escrita por 
muitos autores. Em razão da cardinalidade N:N surgiu a relação Au-
toria (o retângulo tracejado), cobrindo a possibilidade de obras com 
mais de um autor, comum em livros didáticos ou em uma coleção de 
artigos científicos.
Um livro pode referenciar apenas uma obra, mas uma obra pode ser 
referenciada por muitos livros.
Uma editora pode publicar muitos livros, mas um livro pode ser publi-
cado apenas por uma editora.
Um usuário pode movimentar vários livros e um mesmo livro pode ser 
movimentado por vários usuários ao longo do tempo. Mais uma vez a 
cardinalidade N:N faz emergir a relação Movimentação. Essa relação ar-
mazena os empréstimos e devoluções de livros efetuados na biblioteca.
Quando a biblioteca empresta um livro para um usuário, uma ocorrên-
cia de movimentação é gerada com o atributo Data_Devolução nulo e 
Data_Empréstimo com a data atual do sistema. Na devolução do livro 
essa movimentação é atualizada com a alteração do atributo Data_De-
volução para a data corrente do sistema.
Um terceiro e último exemplo de um diagrama ER está na Figura 20.
Modelagem de Dados
42
Técnico em Informática
Figura 20 – Diagrama ER para Marcação de Consultas Médicas
Nesse caso temos um banco de dados modelado para suportar um sis-
tema de gerenciamento da marcação de consultas médicas. Na verda-
de, deve estar lembrado, já fizemos algumas considerações acerca desse 
contexto (Figuras 7 a 10), mas ainda não havíamos apresentado seu 
diagrama completo.
O referido diagrama foi modelado a partir dos seguintes requisitos:
armazenar dados de médico: número de registro no Conselho Re-1. 
gional de Medicina (CRM), nome completo, sexo, telefone fixo, ce-
lular e e-mail para contato.
armazenar informações de paciente: número identificador, nome 2. 
completo, sexo, telefone fixo e celular.
identificar as especialidades de cada médico (um mesmo médico 3. 
pode atuar, por exemplo, como clínico geral e dermatologista).
agendar consultas para um paciente, especificando o plano de saúde 4. 
e o médico.
possui
N N
N
N
N
Médico
CRM
Nome
Sexo
Telefone
Celular
E-Mail
Paciente
Consulta
Especialista
Id_Paciente
Nome
Sexo
Telefone
Celular
Especialidade
Cod_Especialidade
Descrição
Plano_Saude
Id_Plano
Nome_Fantasia
CRM
Cod_Especialidade
CRM
Data
Hora
Id_Plano
Id_Paciente
Capítulo 2 
43
Linguagem de Programação
como simplificação do modelo não será necessário armazenar os 5. 
horários de atendimento semanal para cada médico. Considerare-
mos apenas que todos os médicos atendem todos os dias úteis da 
semana em um horário fixo e igual para todos.
Note que Consulta é uma relação gerada a partir de um relacionamento 
ternário entre as entidades Médico, Paciente e Plano_Saúde.
2.1.3. Generalização / especialização de entidades
Existem situações em que diferentes entidades apresentam algumas ca-
racterísticas em comum, divergindo apenas em algumas outras poucas 
características. Na Figura 21, por exemplo, temos duas entidades nessa 
condição de semelhança: Médico e Paciente.
 Figura 21 – Entidades com Atributos em Comum
Essas entidades foram extraídas do exemplo de diagrama ER da Figura 
21. Repare que ambas apresentam 4 atributos em comum: nome, sexo, 
telefone e celular. Médico ainda possui dois atributos exclusivos: CRM 
e e-mail. Por sua vez, a entidade Paciente apresenta um único atributo 
somente seu: Id_Paciente.
Nesse e em casos semelhantes podemos lançar mão de um recurso pre-
visto na modelagem de dados, conhecido como generalização. Então, 
uma nova entidade, mais genérica – ou se preferir, menos especializada 
– deve ser criada para agregar os atributos comuns.
Na Figura 22 temos uma entidade de nome Pessoa que assume esse papel de 
entidade menos especializada. Essa nova entidade chama para si os atribu-
tos comuns das entidades mais especializadas: Médico e Paciente. O símbolo 
triangular que interliga essas entidades indica que os atributos de Pessoa são 
compartilhados por Médico e Paciente, ou seja, Médico e Paciente herdam os 
atributos de Pessoa. Entretanto, o atributo de Id_Paciente pertence somente a 
Paciente; e CRM e E_Mail são atributos exclusivos de Médico.
Médico
CRM
Nome
Sexo
Telefone
Celular
E_Mail
Paciente
Id_Paciente
Nome
Sexo
Telefone
Celular
Modelagem de Dados
44
Técnico em Informática
Figura 22 – Exemplo de Generalização / Especialização
Generalização: entidades de um nível mais baixo de abstração, 
com características comuns; são agrupadas, dando origem a uma 
entidade de nível mais alto.
Especialização: uma entidade de nível mais alto de abstração é 
desmembrada em várias entidades de nível mais baixo, com ca-
racterísticas parcialmente distintas.
Atividade 12
Construa um diagrama ER completo para um sistema de super-
mercado que permita as seguintes funcionalidades:
(1) Manter informações sobre produtos (código, nome, preço uni-
tário, quantidade em estoque e estoque mínimo);
(2) Registrar vendas de produtos nos caixas;
(3) Registrar recebimentos – discriminando o tipo: em dinheiro, 
cheque, cartão de débito, ou cartão de crédito.
Pessoa
Nome
Sexo
Telefone
Celular
Paciente
Id_Paciente
Médico
CRM
E_Mail
Capítulo 2 
45
Linguagem de Programação
2.1.4 Entidades fracas
Uma entidade fraca é qualquer entidade cuja existência no modelo ER 
não se justiça por si mesma. Essa entidade surge apenas em razão do 
relacionamento desta com uma outra entidade, considerada forte. A 
chamada entidade fraca deve apresentar identificadores compostos 
(formados pelo menos por dois atributos). Um desses atributos deve 
ser originário da entidade forte. Ele é replicado na entidade fraca para 
estabelecer uma ligação entre ocorrências das duas entidades.
Um exemplo clássico de entidade fraca é demonstrado na Figura 23. 
Dependente é a entidade fraca, pois a identificação de um dependente 
é impossível sem a identificação do sócio. Na verdade, os dependentes 
não existiriam se não houvesseos sócios.
Figura 23 – Exemplo de Entidade Fraca (Dependente)
2.2 Modelo relacional normalizado
O Modelo Entidade-Relacionamento (MER) constitui apenas a pri-
meira etapa da chamada modelagem de dados para a implementação 
de um banco de dados que poderá ser parte de um sistema de banco de 
dados. Desenvolvido pelo analista de sistemas, o MER é considerado 
um modelo conceitual do banco de dados em implementação. Como 
afirmado anteriormente, o MER pode ser elaborado antes mesmo da 
definição do Sistema Gerenciador de Banco de Dados (SGBD) em que 
a solução será implementada. A única restrição imposta pelo modelo 
ER é a escolha de um SGBD também relacional.
Uma vez concluída esta etapa, a equipe de analistas de sistemas deve ocu-
par-se do projeto lógico do banco de dados, também conhecido como 
1 N
Sócio
Id_Sócio
Nome
Sexo
Endereço
Telefone
CPF
RG
Data_Nascimento
Id_Sócio
Id_Dependente
Nome
Sexo
Data_Nascimento
Dependente
Modelagem de Dados
46
Técnico em Informática
o Modelo Relacional Normalizado (MRN). Nessa fase o projetista deixa 
de ocupar-se exclusivamente com os requisitos levantados junto ao usuá-
rio demandante do banco de dados. Não que esteja autorizado a ignorar 
as necessidades e desejos do usuário e possa, a partir de agora, impor di-
tatorialmente a sua própria vontade. Em momento algum os requisitos do 
usuário-final devem ser ignorados. Ao ocupar-se com o MRN, o analista 
de sistemas deve também preocupar-se com a forma de armazenamento 
das informações em um banco de dados relacional.
Na elaboração do modelo conceitual do banco de dados (o modelo ER), 
ignoramos alguns importantes conceitos que, agora, durante o modelo 
lógico, não podemos mais deixar de considerar. O mais básico desses con-
ceitos e nosso ponto de partida nesta etapa é a chamada chave primária.
2.2.1 Chave primária
Em bancos de dados relacionais as informações são armazenadas em ta-
belas, sendo essencialmente organizadas em linhas e colunas. Cada linha 
de uma tabela corresponde a uma ocorrência da informação. Assim, em 
uma tabela de alunos (Figura 24), cada linha (ou registro) corresponde ao 
conjunto de informações inter-relacionadas de um aluno em particular. 
As colunas (ou campos) correspondem a subdivisões lógicas ou compar-
timentos para diferentes informações contidas em uma mesma linha.
Na tabela Aluno da Figura 24, cada linha foi subdividida em 5 colunas 
(Matrícula, Nome, Sexo, Nascimento e Curso). No exemplo apresenta-
do existem 6 linhas armazenando as informações de 6 diferentes alunos 
de uma instituição de ensino. Os dados armazenados nas colunas de 
uma mesma linha são relativos a um mesmo aluno. Assim, podemos 
afirmar que o aluno de nome Rodrigo Bívar tem matrícula 1099, é do 
sexo masculino, nasceu em 25 de dezembro de 1992 e cursa informática. 
Também podemos confirmar que a aluna Karina Gonçalves encontra-se 
matriculada no curso de Biologia com a matrícula 1203.
Figura 24 – Tabela Aluno
Aluno
Matrícula Nome Sexo Nascimento Curso
1099 Rodrigo Bívar M 25/12/1992 Informática
1100 Ximene Lascasas F 13/09/1996 Informática
1203 Karina Gonçalves F 03/11/1998 Biologia
1399 José da Silva M 27/02/1995 Matemática
1500 Cesário Antunes M 16/12/1999 Farmácia
1701 José da Silva M 03/10/1991 Informática
Capítulo 2 
47
Linguagem de Programação
Uma tabela como essa pode armazenar centenas ou milhares de linhas (re-
gistros). Imaginar a complexidade da tarefa de localizar um registro espe-
cífico em meio a milhares de outros na mesma tabela é algo que não exige 
muito esforço. Uma ou mais colunas podem servir para identificar uma li-
nha em específico, distinguindo-a de todas as demais linhas existentes.
Supondo que desejamos acessar os dados de um aluno em específico, a 
busca pela linha que armazena esses dados deve ser parametrizada pelo 
valor de uma ou mais colunas, mas não de qualquer coluna. Afinal, di-
ferentes alunos podem, por exemplo, ter o mesmo nome. Na Figura 24, 
essa situação encontra-se exemplificada nas linhas 4 e 6 da tabela, onde 
estão registrados dois alunos de nome José da Silva. A possibilidade de 
ocorrência de alunos homônimos desqualifica a coluna nome como uma 
coluna adequada para a identificação de um registro em particular.
A Figura 25 mostra o resultado de uma busca na tabela Aluno com o 
critério de pesquisa Nome = “José da Silva”. O fato dessa busca/con-
sulta resultar na apresentação de mais de uma linha evidencia a inade-
quação da coluna Nome na identificação de uma linha em particular. 
Embora com mesmo nome, os alunos são pessoas diferentes, com datas 
de nascimento distintas.
Figura 25 – Resultado da Busca por Aluno de Nome = “José da Silva”
Por outro lado, a utilização da coluna Matrícula como critério de pes-
quisa mostra-se perfeitamente adequada para a identificação de uma 
única linha. Afinal, não podem existir dois alunos com um mesmo nú-
mero de matrícula. A Figura 26 exemplifica o resultado de uma busca 
utilizando a coluna Matrícula como critério de pesquisa.
Figura 26 – Resultado da Busca por Aluno de Matrícula = 1701
 
Matrícula Nome Sexo Nascimento Curso
1399 José da Silva M 27/02/1995 Matemática
1701 José da Silva M 03/10/1991 Informática
 
Matrícula Nome Sexo Nascimento Curso
M1701 José da Silva 03/10/1991 Informática
Modelagem de Dados
48
Técnico em Informática
Ao conjunto de um ou mais atributos que permite identificar 
com precisão uma única linha de uma tabela dá-se o nome de 
superchave.
Na Figura 27 é apresentada a entidade Funcionário dotada de 12 atri-
butos. Destes, podemos selecionar algumas superchaves: Carteira_
Identidade é certamente uma superchave, pois não deve existir mais 
de um funcionário com o mesmo número da carteira de identidade. 
Entretanto, essa não é a única superchave. CPF também pode ser 
considerado uma superchave, assim como a combinação de atributos 
{Nome e Carteira_Identidade}, ou {Nome e CPF}, ou ainda {Nome, 
Carteira_Identidade e CPF}.
Figura 27 – Atributos da Entidade Funcionário
Como destacado anteriormente, o atributo Nome isoladamente não 
pode ser considerado uma superchave. Porém, sua combinação com 
outros atributos pode formar superchaves. É o caso da combinação 
{Nome, Logradouro}.
Nome
Sexo
Data_Nascimento
Carteira_Identidade
CPF
Logradouro
Complemento
Bairro
Cidade
UF
CEP
Telefone
Funcionário
Capítulo 2 
49
Linguagem de Programação
Chaves candidatas são um subconjunto específico das chamadas 
superchaves. Somente podem ser chaves candidatas as chamadas 
superchaves mínimas.
Ou seja, uma superchave formada pela combinação de mais de 
um atributo pode ser classificada como uma chave candidata 
apenas se essa combinação não possuir qualquer subconjunto 
próprio que seja ele mesmo uma superchave. Veja o exemplo do 
CPF a seguir.
Portanto, a combinação de atributos {Nome, CPF}, apesar de ser super-
chave, não pode ser uma chave candidata, pois {CPF} também é super-
chave e subconjunto da combinação. O mesmo vale para a combinação 
{Carteira_Identidade, CPF, Nome}, que não é chave candidata, pois 
existem inúmeros subconjuntos que são superchaves.
A entidade Funcionário possui várias chaves candidatas: {CPF}, {Car-
teira_Identidade} e {Nome, Logradouro}.
Chave primária é uma chave candidata escolhida pelo projetista 
de banco de dados. Ela é o principal meio de identificação unívoca 
de uma linha em uma entidade.
Toda chave primária obedece às seguintes regras:
(1) Não pode conter valor nulo (a chave primária é de preenchi-
mento obrigatório. Não pode ser omitida);
(2) Não pode conter valores duplicados (não pode existir na enti-
dade mais de uma linha com o mesmo valor de chave primária).
A Figura 28 mostra as entidades e relações do sistema de marca-
ção de consultas com suas respectivas chaves primárias. Observe 
que a distinção na representação gráfica entre entidades e relações 
desapareceu. De fato, no Modelo Relacional Normalizado (MRN) 
as relações deixam de ser representadas por linhas tracejadas e são 
tratadas como as entidades.
Modelagem

Outros materiais

Materiais relacionados

Perguntas relacionadas

Perguntas Recentes