Buscar

APOSTILA - Fundamentos_Banco_Dados

Prévia do material em texto

Direitos: Esta obra foi disponibilizada sob uma Licença Creative Commons Atribuição Uso não-comercial 
3.0 Brasil. 
Direitos de distribuição e publicação: CAPES/MEC, conforme Parágrafo Único, do Artigo 5º, da 
Resolução CD/FNDE nº 24 de 04 de Junho de 2008. 
 
 
 
Universidade Federal de Juiz de Fora 
Reitor: Henrique Duque de Miranda Chaves Filho 
 
Instituto de Ciências Exatas 
Diretor: Rubens de Oliveira 
 
Departamento de Ciência da Computação 
Chefe: Guilherme Albuquerque Pinto 
 
Curso de Licenciatura em Computação 
Coordenação: Fernanda Claudia Alves Campos 
 
 
Organização 
Regina Maria Maciel Braga 
 
Comissão Editorial 
Eduardo Barrére 
Fernanda Claudia Alves Campos 
 
Revisão Gramatical 
Hortência Cezar Pinto 
 
Editoração Eletrônica 
Eduardo Barrére 
 
 
 
Braga, Regina M. M.. 
Fundamentos de Banco de Dados / Regina Braga – 2013. 
 66 f. : il. 
Material Didático — Curso de Licenciatura em Computação 
da Universidade Federal de Juiz de Fora, Juiz de Fora, 2012. 
 
1. Educação à Distância. 2. Banco de Dados. 3. MER 4. 
SQL. I. Título. 
 
 
 
 
 
Apresentação 
Oi pessoal! 
 
Meu nome é Regina Braga. Sou professora da Universidade Federal de Juiz 
de Fora (UFJF) desde 1997. Sou graduada em Matemática, bacharelado em 
informática (1991) pela UFJF, mestre em Engenharia de Sistemas e 
Computação, com ênfase em Banco de Dados (1995), e doutora em 
Engenharia de Sistemas e Computação, com ênfase em Engenharia de 
Software e Banco de dados, pela COPPE/UFRJ. Portanto, minhas áreas de 
interesse são Banco de Dados e Engenharia de Software. 
 
Nesta disciplina vocês conhecerão conceitos de modelagem e de bancos de 
dados. Os Bancos de Dados permitem o armazenamento dos dados da 
maioria dos sistemas de informação existentes no mercado, incluindo ai o 
Moodle que vocês utilizam tanto. 
 
Este material tem como objetivo orientá-lo no estudo da disciplina Banco de 
Dados, por meio de dicas, sugestões e exercícios, com destaque aos pontos 
mais importantes. Aqui você encontrará conceitos com os quais irão trabalhar 
ao longo do Curso. 
 
Os conceitos aqui apresentados devem ser bem assimilados, pois servirão 
de base para disciplinas mais avançadas da área, e para sua vida 
profissional. 
 
Sucesso e bom aprendizado!!! 
 
Profa. Regina Maria Maciel Braga. 
 
Iconografia 
Conheça os diversos ícones utilizados nos materiais didáticos desenvolvidos pelos 
professores e tutores do curso de Licenciatura em Computação – DCC/UFJF: 
 
 
Pesquise. 
 
Exercícios. 
 
 
 
 
 
 
 
 
Material complementar 
(texto, vídeo, etc.) 
disponível na Internet. 
 
Leitura Complementar. 
 
 
 
 
 
 
 
 
Comentário do Autor. 
 
Tome nota. 
 
 
 
 
 
 
 
 
Conclusão ou síntese 
de conteúdo. 
 
Fique atento. 
 
 
Sumário 
CAPÍTULO 1 - CONCEITOS BÁSICOS .............................................................................................................. 8 
1.1. O que é um banco de dados? ............................................................................................................ 8 
1.2 Uso e abrangência .............................................................................................................................. 9 
1.3 Processamento de Dados sem Banco de Dados .............................................................................. 10 
1.4 Sistema de Gerenciamento de Banco de Dados (SGBD) .................................................................. 12 
1.6 Instâncias e Esquemas ...................................................................................................................... 14 
1.7 Visões do Banco de Dados ................................................................................................................ 15 
1.8 - Independência de Dados ................................................................................................................ 16 
1.9 - Modelo de Dados ........................................................................................................................... 17 
1.9.1 - Modelo Relacional ................................................................................................................... 17 
1.9.2. Modelo de Redes ...................................................................................................................... 18 
1.9.3. Modelo Hierárquico ................................................................................................................. 18 
1.9.4. Modelo Orientado a Objetos .................................................................................................... 19 
1.9.5. Modelo Objeto Relacional ........................................................................................................ 19 
1.10 - Linguagem de Definição de Dados ............................................................................................... 20 
1.11 - Linguagem de Manipulação de Dados ......................................................................................... 20 
1.12 - Principais Componentes de um SGBD .......................................................................................... 21 
1.12 - Arquitetura de um SGBD .............................................................................................................. 22 
1.13 - Usuários de um SGBD ................................................................................................................... 23 
CAPÍTULO 2 - MODELAGEM DE DADOS ..................................................................................................... 25 
2.1. Projeto de um Banco de Dados ....................................................................................................... 25 
2.2. Modelo Entidade Relacionamento (MER) ....................................................................................... 26 
2.3. MER - Entidades .............................................................................................................................. 26 
2.3.1. Atributos ................................................................................................................................... 27 
2.3.2. Tipos de atributos ..................................................................................................................... 28 
2.4. MER - Relacionamentos .................................................................................................................. 30 
2.4.1. Autorrelacionamento ............................................................................................................... 32 
 
2.4.2. Cardinalidade de Relacionamentos .......................................................................................... 33 
2.4.3. Relacionamentos enésimos ...................................................................................................... 37 
2.5. MER - Generalização/Especialização ............................................................................................... 37 
2.5.1. Tipos de Generalização/Especialização ................................................................................... 39 
2.6. Entidade Associativa ........................................................................................................................ 40 
2.7. Entidade Fraca ................................................................................................................................. 41 
2.8. Restrições ........................................................................................................................................ 42 
2.9. Técnicas de Projeto ......................................................................................................................... 43 
CAPÍTULO 3 - MODELO RELACIONAL.......................................................................................................... 493.1 Introdução ........................................................................................................................................ 49 
3.2 Características das Tabelas ............................................................................................................... 49 
3.3 Chaves .............................................................................................................................................. 50 
3.4 Esquema de um Banco Relacional .................................................................................................... 51 
3.5 Transformação do MER para o Modelo Relacional .......................................................................... 52 
3.6 Normalização .................................................................................................................................... 59 
3.6.1 Dependências Funcionais .......................................................................................................... 59 
3.6.2 Exemplo de aplicação de técnicas de normalização ................................................................. 60 
3.6.3 Primeira Fórmula Normal (1FN) ................................................................................................ 62 
3.6.4 Segunda Fórmula Normal (2FN) ................................................................................................ 62 
3.6.5 Terceira Fórmula Normal (2FN) ................................................................................................. 63 
CAPÍTULO 4 - LINGUAGEM DE CONSULTA - SQL ........................................................................................ 66 
4.1 Introdução ........................................................................................................................................ 66 
4.2 Definição do Esquema do Banco de Dados em SQL (DDL - Data Definition Language) ................... 67 
4.2.1 Criação e Deleção de Tabelas .................................................................................................... 67 
4.2.2 Declaração de Chaves Primária ................................................................................................. 68 
4.2.3 Chave Estrangeira ...................................................................................................................... 69 
4.2.4 Restrições em Atributos de uma tabela .................................................................................... 69 
4.2.4 Restrições de Integridade em SQL............................................................................................. 70 
 
4.3. Exemplo Prático de Criação de Banco de Dados ............................................................................. 72 
4.4. Resumo dos Principais Comandos da DDL ...................................................................................... 74 
4.4.1. Criação de tabelas e índices ..................................................................................................... 74 
4.4.2. Deleção de tabelas e índices .................................................................................................... 75 
4.4.3. Modificação de tabelas ............................................................................................................ 76 
4.5 Atualização de Informações no Banco de Dados (DML - Data Manipulation Language) ................ 76 
4.5.1 Inserção de Dados ..................................................................................................................... 76 
4.5.2 Deleção de Dados ...................................................................................................................... 77 
4.5.3 Exemplos de Inserção e Deleção de Dados ............................................................................... 77 
4.5.4 Atualização de Dados ................................................................................................................ 78 
4.6 Consulta a Informações no Banco de Dados (DML - Data Manipulation Language) ....................... 79 
4.6.1. Consultas Simples ..................................................................................................................... 79 
4.6.2. Consultas com operadores lógicos ........................................................................................... 80 
4.6.3. Ordenação de Consultas .......................................................................................................... 82 
4.6.4. Consultas em mais de uma Tabela ........................................................................................... 82 
4.6.5. Subconsultas ............................................................................................................................. 83 
4.6.6. União, Interseção e Diferença .................................................................................................. 85 
4.6.7. Agregações ............................................................................................................................... 85 
4.6.8. Eliminação de Duplicatas .......................................................................................................... 86 
4.6.9. Agrupamentos .......................................................................................................................... 86 
4.6.10. Inserção a partir de consultas ................................................................................................ 87 
4.8 Visões ............................................................................................................................................... 87 
Referências Bibliográficas .......................................................................................................................... 93 
 
EADDCC030 – Fundamentos de Banco de Dados 
8 
 
 
CAPÍTULO 1 - CONCEITOS BÁSICOS 
 
 
Neste capítulo iremos estudar conceitos importantes 
relacionados a banco de dados e que serão importantes 
para o entendimento dos demais capítulos! 
 
 
1.1. O que é um banco de dados? 
Um banco de dados ou base de dados nada mais é do que uma coleção de 
dados inter-relacionados, com algum significado inerente, isto é, informações de 
interesse de uma ou mais organizações. Ele é projetado, construído e preenchido com 
dados para um propósito específico de uma ou mais organizações e destinado à 
utilização por grupo de usuários, diretamente ou por meio de aplicações pré-
concebidas. 
 
Podemos também ver um banco de dados como um conjunto de arquivos 
estruturados de forma a facilitar o acesso aos conjuntos de dados armazenados. Esses 
arquivos encontram-se, de alguma forma, relacionados. Por exemplo, em um banco de 
dados escolar podemos encontrar alguns arquivos, tais como: dados dos alunos 
(nome, endereço, CPF, sexo), dos cursos propriamente ditos (título, ano de 
lançamento, formato, etc.) e dados sobre as disciplinas (nome, ementa, código, etc.). 
Para obter informações sobre uma dada disciplina e os alunos que participam dela, 
como nome da disciplina e nome dos alunos, será necessário consultar os dois 
EADDCC030 – Fundamentos de Banco de Dados 
9 
 
primeiros arquivos, que devem estar relacionados. Desta forma, o relacionamento entre 
os arquivos é uma das condições para que tenhamos um banco de dados, pois 
somente através destes relacionamentos, teremos a informação propriamente dita. 
No entanto, somente com os arquivos relacionados fica ainda difícil de se 
acessar estas informações. Com o crescimento do volume e dos tipos de dados nas 
organizações, e preciso utilizar softwares especiais para gerenciar os dados, os 
chamados SGBDs (Sistemas Gerenciadores de Banco de Dados). 
 
Um SGBD é um software de caráter geral para a manipulação eficiente de 
grandes coleções de informações estruturadas e armazenadas de uma forma 
consistente e integrada. Tais sistemasincluem módulos para consulta, atualização e as 
interfaces entre o sistema e o usuário. Podemos afirmar, então, que um SGBD e 
constituído por um conjunto de dados associados a um conjunto de programas para 
acesso a eles [SILBERSCHATZ, 2006]. 
1.2 Uso e abrangência 
Nas atividades diárias necessitamos de aplicações que envolvem bancos de 
dados: 
 Controle Escolar: Precisamos armazenar informações sobre os alunos, os cursos 
da escola, as turmas abertas, a alocação dos alunos nas turmas, professores, 
alocação dos professores nas turmas, etc. 
 Bancos: o sistema financeiro necessita de armazenar as informações sobre seus 
clientes, contas, transações financeiras (débitos e créditos nas contas), entre 
outras. 
EADDCC030 – Fundamentos de Banco de Dados 
10 
 
 Reservas em hotéis ou companhias aéreas: Este tipo de sistema precisa 
armazenar informações sobre os assentos disponíveis no avião, os que já foram 
vendidos, os reservados, os dados dos clientes, as datas de embarque, etc. Os 
sistemas de reservas em hotéis precisam armazenar os dados dos hóspedes, as 
datas de hospedagem, os consumos no frigobar, entre outros. 
 Catálogo informatizado em bibliotecas: Precisamos armazenar as informações 
sobre os livros, os exemplares que a biblioteca dispõe, os empréstimos, os atrasos, 
as multas, a localização dos exemplares, etc. 
 Compras em supermercados: Um sistema para gerenciar compras de 
supermercado precisa armazenar os dados dos produtos, preço de compra e de 
venda, gerenciar o estoque dos produtos, dentre outras necessidades. 
1.3 Processamento de Dados sem Banco de Dados 
O que aconteceria se não tivéssemos um Banco de Dados para o 
armazenamento dos dados das aplicações? Os dados poderiam ficar armazenados em 
vários conjuntos de arquivos, um conjunto pra cada aplicação, sem ligação entre si, ou 
seja, os dados de uma aplicação não estariam integrados com os dados de outra 
aplicação, poderia haver redundância, dados inconsistentes, ou seja, tem um valor em 
um arquivo e pode ter valor diferente em outro. Ou seja, os dados não estariam 
integrados. O que teríamos seria algo como na figura abaixo. 
 
O que pode acontecer???? [SILBERSCHATZ, 2006] 
 Redundância e inconsistência de dados. Considerando que diferentes 
programadores tem a possibilidade de criar arquivos com estruturas diferentes e 
aplicações para acessa-los, a possibilidade de se redundar dados por esses 
arquivos e muito grande. Alem disso, em função dessa redundância, poderão 
ocorrer as inconsistências, pois os dados podem ser atualizados em alguns 
arquivos e em outros não. Imaginem se um aluno resolve trancar matrícula em uma 
Arquivos Alunos Arquivos Professores Arquivos Turmas 
Aplicação Controle 
Alunos 
Aplicação 
Professores 
Aplicação Turmas 
EADDCC030 – Fundamentos de Banco de Dados 
11 
 
turma e sair do colégio. Quais arquivos deveriam ser atualizados?? No mínimo os 
arquivos relacionados ao controle de alunos e os arquivos relacionados ao controle 
de turmas. E se forem atualizados somente os arquivos relacionados ao controle de 
turmas?? DESATUALIZAÇÃO. 
 Dificuldade no acesso aos dados. Diferentemente dos SGBDs, os sistemas de 
arquivos não possuem um ambiente para recuperação dos dados armazenados. 
Com isso, para cada informação a ser gerada, é necessário construir uma aplicação 
ou então teremos que "escovar bits" para acessar os dados. 
 Isolamento de dados. Considerando a diversidade de formatos existentes dos 
arquivos e, conseqüentemente, dos dados armazenados neles, torna-se uma tarefa 
difícil a construção de aplicações para a recuperação desses dados pois cada um 
terá um formato. 
 Problemas de atomicidade. Em banco de dados, este conceito quer dizer que algo é 
indivisível, ou é totalmente feito ou é totalmente desfeito. Um exemplo clássico de 
atomicidade seria uma transferência de dinheiro entre duas contas. Se desejarmos 
transferir, por exemplo, R$ 100,00 da conta do professor " João" para a conta da 
sua filha "Maria", ou os R$ 100,00 será transferido integralmente ou não ocorrerá a 
transferência. Não pode acontecer do dinheiro sair da conta do "João" e não entrar 
na conta da "Maria"! 
 Anomalias de acesso concorrente. Considerando o acesso simultâneo aos arquivos, 
por diferentes aplicações ou por diferentes usuários de uma mesma aplicação, 
pode-se gerar inconsistências nesses arquivos, devido a esses acessos. Tomemos 
como exemplo que uma conta conjunta A de fundo de formatura- com saldo igual a 
R$ 1000,00 - foi acessada de forma simultânea pelos alunos Carolina e Pedro. 
Carolina sacou R$100,00 para pagar os convites e Pedro, R$200,00 para comprar 
refrigerantes. Pergunta-se: qual o saldo da conta após os saques? Se ambos leram 
o valor do saldo igual a R$1000,00, podemos ter como possíveis valores : 
R$900,00, R$800,00, levando-se em conta qual valor foi escrito por ultimo. Nesse 
caso, nenhum dos dois valores seria valido. O correto seria ter um saldo igual a 
R$700,00 e o banco de dados garante isso, mas arquivos isolados podem não 
garantir. 
 Problemas de segurança. Nem todos os usuários possuem perfil para acessar a 
todos os dados disponíveis em um arquivo. Tomemos como exemplo um arquivo de 
EADDCC030 – Fundamentos de Banco de Dados 
12 
 
professores, que possui, entre outros dados, o valor do salário do professor. 
Embora tenhamos a curiosidade de saber o salário dos nossos colegas, 
principalmente do nosso chefe, não é politicamente correto que desrespeitemos seu 
direito a privacidade. No entanto, não é possível definir, para um arquivo, que 
algumas informações poderão ser visíveis por um usuário e por outros não, o que 
gera vulnerabilidade nesses sistemas; 
 Problemas de integridade. Imaginem o seguinte problema, estamos cadastrando 
todos os alunos de uma dada turma e, alguns alunos não tem CPF próprio e usam o 
CPF da mãe. Imaginem agora que temos dois alunos gêmeos e eles vão ser 
cadastrados usando o mesmo CPF e estamos utilizando o CPF para identificação 
dos alunos. O que teríamos neste caso: INCONSISTÊNCIA, uma vez que dois 
alunos tem o mesmo CPF. Em um sistema de arquivos, isso poderia passar 
desapercebido mas em um banco de dados, existe o controle de integridade de 
chave primária que não deixa isso acontecer. No entanto, não se preocupem por 
enquanto. Depois vamos ver isso em detalhes! 
1.4 Sistema de Gerenciamento de Banco de Dados (SGBD) 
Um Sistema de Gerenciamento de Banco de Dados (SGBD) é um conjunto de 
software para gerenciar um banco de dados. Veja na figura a seguir. 
 
EADDCC030 – Fundamentos de Banco de Dados 
13 
 
O Banco de Dados propriamente dito diz respeito aos dados que serão 
armazenados nos arquivos relacionados ao SGBD e também ao esquema que será 
montado pelo SGBD para armazenar estes dados, o chamado esquema de dados, que 
veremos mais adiante. 
Um SGBD provê armazenamento e acesso multiusuário eficiente a uma grande 
quantidade de dados armazenados, além de garantir a integridade e segurança dos 
dados, ou seja, tudo que não se tinha utilizando conjuntos de arquivos separados! 
 
• Observe na figura acima, que o SGBD aparece como uma parte pequena do 
esquema apresentado. No entanto, como poderemos mais a frente, na 
verdade um SGBD é um sistema complexo, que envolve vários módulos!!!! 
 
• Veja também que o SGBD faz a ponte das aplicações com os arquivos da 
base de dados, ou seja, as aplicações não acessam a base de dados 
diretamente. O acesso é sempre pelo SGBD. 
 
A partir das aplicações, o processamento de dados com uso de SGBD fica 
simplificado, pois os dados são integrados no banco e o SGBD controla qualquer 
problema de inconsistência e redundância, ficando transparente para o usuário. 
 
Aplicação Controle 
Turmas 
Aplicação Notas Aplicação Professores 
Dados integrados 
da escola 
SGBD 
Esquema da 
base 
Base de 
Dados 
S 
G
B
D 
Aplicação 
Aplicação 
AplicaçãoEADDCC030 – Fundamentos de Banco de Dados 
14 
 
 
 
1.6 Instâncias e Esquemas 
Um conceito importante em Banco de Dados é o de Instância X Esquema. Uma 
Instância do Banco de Dados é o conjunto de informações contidas nos arquivos do 
Banco de Dados em um dado momento. 
Já o Esquema do banco de dados é o projeto geral, ou seja, é a descrição de 
como os dados serão armazenados no banco de dados. Veja a figura a seguir. Nela 
fica mais claro a diferença entre instância e esquema. 
Estado Consistente do Banco de Dados: estado do BD satisfazendo aos critérios 
de correção definidos no esquema. O SGBD garante que os dados ficarão organizados 
e relacionados de acordo com as definições contidas no esquema definido. 
EADDCC030 – Fundamentos de Banco de Dados 
15 
 
 
1.7 Visões do Banco de Dados 
Considerando que o nível de conhecimento dos usuários de bancos de dados é 
muito variável, oscilando entre aqueles que conhecem muito e outros que são leigos, 
os Sistemas de Bancos de Dados devem prover mecanismos que administrem essa 
complexidade, simplificando as interações dos usuários com o sistema. Para isso, três 
níveis de abstração são considerados: 
 
 
 Nível físico (interno) 
mais baixo nível de abstração; como os dados estão de fato armazenados, estrutura de 
armazenamento e recuperação, incluindo índices. 
Nível lógico (conceitual) 
nível médio de abstração; visão da comunidade de usuários; estruturas, 
operações e restrições do modelo que se está usando. 
 Nível de visão (externo) 
mais alto nível de abstração; visão de cada usuário; descreve 
apenas parte do banco de dados. 
Esquema 
Instância 
EADDCC030 – Fundamentos de Banco de Dados 
16 
 
Para que possamos entender melhor estes três níveis de abstração, vamos 
considerar um exemplo bem prático, usando a base de dados para registro escolar 
apresentada acima. O BD pode ter diversos destes tipos de informação (registro), 
incluindo Aluno, com os campos nome, número, turma, curso_hab: 
 No nível físico um registro de Aluno pode ser descrito como um bloco consecutivo 
de memória (por exemplo, palavra ou bytes). O compilador esconde este nível de 
detalhes dos programadores. 
 No nível lógico, cada registro é descrito por um tipo definido, como acima, assim 
como é definida a inter-relação entre estes tipos de registros. 
 No nível de visão, os usuários do computador vêem um conjunto de programas de 
aplicação que escondem os detalhes dos tipos de dados. Ex: uma aplicação que só 
lida com os dados cadastrais dos alunos não saberá sequer que o banco de dados 
tem informações tb. sobre cursos e turmas! 
 
1.8 - Independência de Dados 
É a capacidade de modificar a definição dos esquemas em determinado nível, 
sem afetar o esquema do nível superior. 
 Independência de dados física: modifica o esquema físico sem que, com isso, 
qualquer programa aplicativo precise ser reescrito (ocasionais para aumento de 
desempenho). Como exemplo prático seria modificarmos a estrutura de dados 
utilizada para o armazenamento dos dados sem afetar os demais níveis. O que 
vocês acham disso? É claro que não vai afetar em nada os níveis acima pois a 
estrutura lógica ficará a mesma! 
 Independência de dados lógica: modifica o esquema lógico sem que, com isso, 
qualquer programa aplicativo precise ser reescrito (sempre que uma estrutura lógica 
do BD é alterada). Um exemplo concreto seria: Vamos considerar os alunos do 
curso. Vamos supor que além das informações como nome, numero, turma e curso, 
teríamos também que agora armazenar os endereço dos alunos, ou seja, teríamos 
que modificar a tabela alunos para incluir este novo campo! Qual o impacto disso! 
Com certeza um pouco maior que a mudança no nível físico, pois pelo menos na 
aplicação onde é feito o cadastramento dos alunos, teríamos que fazer mudanças!!! 
EADDCC030 – Fundamentos de Banco de Dados 
17 
 
1.9 - Modelo de Dados 
Um modelo de Dados descreve a estrutura conceitual dos dados armazenados no 
banco de dados, detalhando a organização dos dados internamente no banco. 
Suponham que tivéssemos que criar um banco de dados para um sistema 
escolar. O modelo de dados a ser criado deverá descrever o que este banco de dados 
deve armazenar: 
 alunos (o que precisamos armazenar a respeito dos alunos: matricula, nome, 
endereço, etc), 
 notas (turma, matricula do aluno, nota)...... 
A forma como estes dados são organizados no banco também varia. Desta forma, 
um banco de dados pode ser classificado quanto ao seu modelo nos seguintes tipos: 
relacional, objeto-relacional, orientado a objetos, em redes e hierárquico. 
1.9.1 - Modelo Relacional 
O modelo relacional é o modelo mais utilizado atualmente pelos SGBDs. Tem 
como características marcantes a simplicidade e uniformidade do modelo, o formalismo 
matemático e o suo de uma linguagem padronizada para consulta (SQL - Structured 
Query Language). 
O modelo relacional usa um conjunto de tabelas para representar tanto os dados 
quanto a relação entre eles. As ligações entre as tabelas e feita por meio dos valores 
dos atributos ou colunas, conforme descrito posteriormente. 
Cada tabela possui múltiplas colunas, conforme o exemplo abaixo. 
nome rua cidade Nro-conta 
Mário Av. São Carlos SP 1234 
Rui Rua XV São Carlos 1333 
Rui Rua XV São Carlos 5512 
Silvia Av. Dom Pedro Itu 5512 
Silvia Av. Dom Pedro Itu 7556 
 
EADDCC030 – Fundamentos de Banco de Dados 
18 
 
1.9.2. Modelo de Redes 
Um banco de dados em rede consiste em uma coleção de registros que são 
concatenados uns aos outros por meio de ligações. Este modelo de dados não é mais 
utilizado pelos bancos de dados atuais, sendo mais ligado a forma de se acessar o 
dado fisicamente, ao contrário do modelo relacional, que permite uma visão mais lógica 
do banco de dados1. Estes registros são organizados no BD por um conjunto arbitrário 
de grafos como no exemplo a seguir. 
 
 
1.9.3. Modelo Hierárquico 
Um banco de dados hierárquico é similar ao modelo em rede uma vez que os 
dados e suas relações são representadas por registros e links (ligações). A principal 
diferença é que no modelo hierárquico os registros estão organizados em árvores ao 
invés de gráficos arbitrários como é o caso do modelo de redes. 
Este modelo também não é mais utilizado como modelo dos banco de dados 
atuais apesar de se ter como grande vantagem o desempenho das consultas por conta 
da estrutura em árvore 2. 
 
1
 Quer pesquisar mais sobre isso: veja nos livros clássicos de BD ou na web!! 
2
 Você conhece a estrutura de dados em árvore? Muito importante em banco de dados no nível físico!!!! 
1234 55,00 
1333
 600,00 
5512
 350,00 
7556
 3.000,00 
Mário Av. S.Carlos S.P. 
Rui Rua XV S.Carlos 
Silvia Av.D.Pedro Itu 
EADDCC030 – Fundamentos de Banco de Dados 
19 
 
 
 
1.9.4. Modelo Orientado a Objetos 
O modelo orientado a objetos surgiu para cobrir uma lacuna no armazenamento 
de dados providos a partir das linguagens de programação OO. 
Considerando que nas aplicações trabalhamos a partir de objetos (como em 
Java), porque armazenar os dados dos objetos em tabelas e não em objetos? Esta foi 
a idéia que norteou o desenvolvimento de bancos de dados orientados a objetos, onde 
conceitos como classes, herança, métodos, associações entre classes foram 
incorporados nos banco de dados. No entanto, apesar de toda a flexibilidade do 
modelo, este tipo de banco de dados não foi bem aceito no mercado. 
 
Pense na frente: pesquise em livros e na web para qual 
tipo de aplicação os bancos de dados OO seriam mais 
adequados!!! 
 
 
1.9.5. Modelo Objeto Relacional 
O modelo objeto-relacional, também conhecido como relacional estendido, é um 
modelo intermediário entre o relacional e o orientado a objetos. Na verdade, os bancos 
de dados que se enquadram nesse modelo caracterizam-se por usar a estruturabásica 
1234 55,00 
1333 600,00 
5512 350,00 
7556 3.000,00 
 
7556 3.000,00 
Mário Av. S.Carlos S.P. 
Rui Rua XV S.Carlos 
Silvia Av.D.Pedro Itu 
EADDCC030 – Fundamentos de Banco de Dados 
20 
 
do modelo relacional, incorporando algumas características dos bancos de dados 
orientados a objetos. Características estas que incluem: herança de tipos e tabelas e 
definição de novos tipos complexos, que seriam semelhantes ao conceito de classes. 
Lembrem-se da disciplina de Modelagem!!!! 
Atualmente, os grandes SGBDs existentes no mercado adotam o modelo objeto 
relacional. No entanto, o uso da parte objeto-relacional é muito restrita e algumas vezes 
com problemas de desempenho, sendo o forte mesmo a parte que adota o modelo 
relacional. Isso se dá por conta destes SGBDs criarem uma camada de objetos em 
cima do modelo relacional, o que acaba afetando seu desempenho! 
 
1.10 - Linguagem de Definição de Dados 
Para expressar formalmente o esquema de dados em um banco de dados, ou 
seja, criação de tabelas, índices, etc., utilizamos a Linguagem de Definição de Dados 
(LDL) (Data-Definition Language (DDL)). Alguns exemplos de comandos LDL: CREATE 
TABLE (para criar um tabela); ALTER TABLE (alteração de tabelas); DROP TABLE 
(apagar uma tabela); CREATE INDEX (criação de índices); ALTER INDEX (alteração 
de índices) ; DROP INDEX (apagar um índice); 
O resultado da compilação dos parâmetros LDL é armazenado em tabelas que 
constituem o dicionário de dados ou diretório de dados. Relembrando, dicionário de 
dados: é na verdade um arquivo de metadados (dados a respeito de dados) que fica 
armazenado no SGBD. Esse diretório é consultado para verificar a estrutura do 
esquema de dados sempre antes que um dado real seja modificado. 
1.11 - Linguagem de Manipulação de Dados 
A Linguagem de Manipulação de Dados (LMD) (Data Manipulation Language 
(DML)) é a linguagem que permite a manipulação de dados. Podemos realizar as 
seguintes operações a partir da LMD: 
 recuperação das informações armazenadas no BD 
 inserção de novas informações no BD 
 remoção de informações do BD 
 modificação das informações do BD 
EADDCC030 – Fundamentos de Banco de Dados 
21 
 
A DML viabiliza o acesso (manipulação) dos dados de forma compatível ao 
modelo de dados apropriado. Tanto a LMD quanto a LDD fazem parte da linguagem 
SQL (Structured Query Language), que veremos mais adiante. 
 
1.12 - Principais Componentes de um SGBD 
O sistema de banco de dados é dividido em módulos específicos, de modo a 
atender a todas as suas funções, algumas delas fornecidas pelo sistema operacional. 
Esses módulos podem ser organizados em dois grandes grupos: o de processamentos 
de consultas e o de administração do armazenamento de dados. 
 
 Processamento de Consultas: Composto principalmente pelo otimizador e 
processador de consultas. Tem como principal objetivo receber uma requisição 
do usuário especificada em SQL e melhorar esta requisição em termos de 
desempenho (fazer com que a consulta seja executada o menor tempo possível) 
e acessar o e disponibilizar s dados requisitados pelo usuário; 
 Administração do armazenamento de dados: é o responsável por garantir o 
estado consistente do banco de dados, não permitindo acesso não autorizado 
aos dados e nem o acesso simultâneo aos dados. Além disso, gerencia a 
alocação de espaço em disco e as estruturas de dados utilizadas para 
armazenar as informações. Outro componente importante é o gerenciamento 
das trocas de dados entre o disco e a memória, o que é feito pelo gerente de 
memória. 
EADDCC030 – Fundamentos de Banco de Dados 
22 
 
1.12 - Arquitetura de um SGBD 
A arquitetura de um SGBD diz respeito a forma como os componentes do mesmo 
são organizados considerando o hardware e o sistema operacional onde o SGBD será 
executado. Atualmente, os tipos mais utilizados são: 
 Arquitetura Centralizada: O SGBD é executado e armazenado em uma máquina, 
podendo ser consultado através de outros computadores com acesso a este 
computador denominado servidor de SGBD. O acesso pode ser multiusuário, mas 
o SGBD está centralizado é uma máquina (o servidor). 
 
 Arquitetura Distribuída: O SGBD é dividido em múltiplas máquinas e/ou sites, 
sendo que o processamento de qualquer requisição é gerenciada de forma a 
acessar as "partes" onde estão armazenadas as informações relevantes. 
 
 WIS - (Sistemas Integrados de Informação na Web): são sistemas para tratar 
dados extraídos de sites da Web. Estes sistemas funcionam como um grande 
banco de dados. Os WIS devem lidar com um grande número de sites da web, 
considerando que estes sites tem autonomia (podem sair do ar e voltar a qualquer 
momento sem aviso prévio) e que os dados constantes destes sites podem não ter 
estrutura nenhuma (bem diferente dos SGBDs convencionais). 
EADDCC030 – Fundamentos de Banco de Dados 
23 
 
1.13 - Usuários de um SGBD 
Basicamente são quatro os tipos de usuários de um SGBD: 
 Usuários leigos: interagem com o banco de dados por meio das interfaces de 
aplicativos que acessam o banco de dados; 
 Usuários avançados: interagem com os bancos de dados por meio de interfaces 
específicas disponíveis no SGBD. Escrevem consultas SQL e submetem a 
execução sem a necessidade de escrever uma aplicação para esse fim; 
 Programadores aplicações: usuários com formação em computação e que se 
propõem a construir aplicações, por meio de ferramentas (compiladores) 
destinadas para esse fim. Utilizando essas ferramentas, constroem interfaces para 
as aplicações, incluindo formulários e relatórios que acessam o bancos de dados; 
 Administrador de Banco de Dados (DBA - DataBase Administrator): usuário 
mais especializado. Cabe a ele a administração dessas bases, definição da melhor 
estrutura de armazenamento desses dados, definição de aspectos de segurança, 
programação de copias de segurança (backup’s), dentre outros. 
 
 
Exercícios de Fixação: 
 
1) Defina as principais categorias de modelos de dados? 
 
2) Dê uma vantagem e uma desvantagem de se usar um 
SGBD em um sistema. 
 
 
 
Exercícios Propostos: 
 
1) Cite quatro sistemas que você tenha usado recentemente e 
que provavelmente tenha um SGBD para realizar a 
persistência dos dados. 
2) Detalhe quais são as principais funções de um administrador 
de um banco de dados 
3) Descreva pelos menos três tabelas que você acredita que 
precisariam ser usadas para armazenar informações em um 
sistema de redes sociais como o Facebook. 
4) Liste os primeiros passos que você seguiria para a criação de 
um banco de dados para uma empresa. 
 
 
EADDCC030 – Fundamentos de Banco de Dados 
24 
 
Respostas dos Exercícios de Fixação: 
1. Defina as principais categorias de modelos de dados? 
As principais categorias são: 
 Modelo físico para representar o esquema interno. 
 Modelo conceitual para representar os esquemas conceitual e externo, é mais próximo dos 
usuários finais, (exemplo MER) 
 Modelo lógico é um nível intermediário, possui conceitos que podem ser entendidos por usuários 
finais, mas que não são tão distantes da forma como os dados são armazenados. (exemplos 
Modelo em rede, hierárquico, orientado a objeto, relacional, etc.) 
 
2. Dê uma vantagem e uma desvantagem de se usar um SGBD em um sistema. 
Exemplos de Vantagem: 
Persistência 
 Armazenamento dos objetos do banco de dados, que vão sofrendo modificações com o tempo 
Recuperação de dados: 
 Garantir que falhas durante o processamento de transações não sejam propagadas aos objetos 
persistentes. 
Controle de concorrência: 
 Garantir que transações concorrentes serão executadas sem conflitos em seus procedimentos. 
Gerência de memória e de arquivos: 
 Gerenciar a alocação de espaço no armazenamento em disco e as estruturas de dados usadas 
para representar estas informações armazenadas em disco, 
 Responsável pela intermediação de dados do disco para a memória principale pela decisão de 
quais dados colocar em memória cache 
Restrições de Integridade 
 Mantém o BD em estado consistente, satisfazendo algumas condições, chamadas de restrições 
de integridade. 
Segurança 
 Implementa mecanismos de segurança de acesso para consulta, remoção, atualização e 
inserção de dados 
Facilidades para: 
 Carregar e descarregar o banco de dados ou parte deles 
 Fazer cópia de segurança = backup 
 Restaurar o banco de dados a partir do backup 
 
Exemplos de Desvantagem: 
O uso de SGBDs em aplicativos que não necessitam de armazenamento persistente dos dados em disco 
não é vantajoso, pois tornará a aplicação mais lenta e provavelmente mais complexa, gastará recursos 
da máquina para processamento do SGBD sem necessidade, etc.. 
 
 
 
 
 
EADDCC030 – Fundamentos de Banco de Dados 
25 
 
 
CAPÍTULO 2 - MODELAGEM DE DADOS 
 
Neste capitulo estudaremos conceitos de modelagem 
conceitual de dados. Um modelo conceitual modela os 
requisitos de negocio, segundo a visão do usuário, ou 
seja, independentemente de tecnologia. Nosso foco será o 
Modelo de Entidade e Relacionamentos (ER). 
 
2.1. Projeto de um Banco de Dados 
O processo de projetar um banco de dados inclui três fases distintas: 
1. Caracterização de todos os dados necessários na perspectiva do usuário, tendo 
como resultado a especificação das necessidades do usuário (levantamento de 
requisitos). 
2. Transcrição das necessidades especificadas para um esquema conceitual de BD. 
Resultado: projeto-conceitual que será especificado através de um modelo 
conceitual. 
3. Transporte do modelo de dados abstrato para sua implementação: 
projeto lógico: o esquema conceitual de alto nível mapeado para modelo de 
implementação de dados do SGBD que será usado. 
projeto físico: dependente dos recursos do SGBD, cuida das formas de organização 
de arquivos e estruturas internas de armazenamento. 
Neste capítulo iremos focar no projeto conceitual, através da especificação de um 
modelo conceitual que é utilizado para descrição de dados no nível conceitual, de 
forma independente do SGBD escolhido. 
O objetivo é registrar as estruturas dos dados que irão aparecer no banco de 
dados. Os modelos conceituais proporcionam grande capacidade de estruturação e 
permitem a especificação de restrições nos dados de forma explícita. Exemplos: 
 Modelo Entidade-Relacionamento (M.E.R.) 
 Modelo de Semântica de dados 
 Modelos Orientados a Objetos (OO) 
Aqui iremos utilizar o Modelo Entidade-Relacionamento! 
EADDCC030 – Fundamentos de Banco de Dados 
26 
 
2.2. Modelo Entidade Relacionamento (MER) 
Também conhecido como Diagrama Entidade Relacionamento. O modelo foi 
criado em 1976 por Peter Chen e é baseado na percepção de que o mundo real é 
formado por um conjunto de objetos chamados entidades e pelo conjunto dos 
relacionamentos entre estes objetos. É o padrão para modelagem conceitual. Ao longo 
dos anos sofreu diversas extensões, similares a conceitos adotados na orientação a 
objetos. Iremos estudar em detalhes cada um destes conceitos. 
DICA: O MER é um importante elemento de modelagem em banco de 
dados. Se especificarmos um bom MER, todas as demais etapas da 
modelagem serão também bem especificadas, sem necessidades de 
ajustes nas demais etapas. No entanto, se especificarmos um MER 
ruim, teremos que fazer diversos ajustes nas etapas posteriores. 
Veremos isso nos próximos capítulos!! 
 
O objetivo principal do MER é definir um modelo de alto nível independente de 
implementação. Para isso, o modelo é formado por três elementos básicos: 
 entidades, 
 relacionamentos e 
 atributos. 
O Modelo Entidade-Relacionamento (MER) utiliza uma notação gráfica para 
representação dos modelos. 
 
 
 
2.3. MER - Entidades 
Entidades são conjuntos de objetos da realidade modelada sobre os quais se 
deseja manter informações no Banco de Dados. Um conjunto de entidades pode 
representar objetos concretos (pessoas, automóveis) da realidade quanto objetos 
abstratos (departamentos, disciplinas). Para se referir a uma entidade em particular é 
também usado o termo instância (ou ocorrência, ou objeto). Exemplos: 
 existência concreta 
Conjunto de Professores 
Conjunto de Alunos 
AlunoAluno TurmaTurmamatriculamatricula
(1,N)(1,N) (1,N)(1,N)
EADDCC030 – Fundamentos de Banco de Dados 
27 
 
 existência conceitual 
Conjunto de Disciplinas 
Conjunto de Turmas 
 notação gráfica de entidade 
 
 
 
 
Uma Entidade é formada por um conjunto de instâncias/objetos de mesmo tipo 
que compartilham as mesmas propriedades: os atributos. O conceito de Entidade é 
similar ao conceito de classe na orientação a objetos. 
 
 
 
 
 
2.3.1. Atributos 
Atributos são as propriedades descritivas de cada instância/objeto de uma 
entidade. 
A designação de um atributo para uma entidade expressa que o BD mantém 
informações similares de cada uma das instâncias da entidade; entretanto, cada 
instância pode ter seu próprio valor em cada atributo. 
 
 
 
Aluno
Disciplina
Professor
Aluno
cpf nome
endereço sexo
Entidade Aluno
Atributos
Disciplina
Código Nome
AABDDCC090
Banco de DadosDCC077
NomeCódigo
AABDDCC090
Banco de DadosDCC077
NomeCódigo
EADDCC030 – Fundamentos de Banco de Dados 
28 
 
Atributos da entidade Disciplina: código e nome. Para cada atributo, existe um 
conjunto de valores possíveis, chamado domínio, ou conjunto de valores. 
O domínio do atributo nome pode ser o conjunto de todos os textos string de um 
certo tamanho. 
O domínio do atributo código pode ser o conjunto de strings que começam com as 
letras "DCC" e mais uma sequencia de três dígitos. 
 
2.3.2. Tipos de atributos 
Os valores dos atributos que descrevem as entidades constituem uma porção 
significativa dos dados que serão armazenados no banco de dados. 
Um atributo pode ser caracterizado pelos seguintes tipos: 
 simples ou compostos 
 monovalorados ou multivalorados 
 nulos 
 derivados 
 
Atributo simples ou composto 
Um atributo simples é aquele que não é dividido em partes. Já um atributo 
composto pode ser dividido em partes (isto é, em outros atributos). 
Ex: O atributo nome pode ser estruturado em primeiroNome e sobrenome. 
Suponha que queiramos substituir os atributos rua_aluno e cidade_aluno do 
conjunto de entidades Aluno para endereço_aluno, atributo composto por rua, cidade, 
estado e CEP. 
Os atributos compostos ajudam-nos a agrupar atributos correlacionados, tornando 
o modelo mais claro. Note que os atributos compostos podem estar hierarquizados. 
Retomando o exemplo do atributo composto endereço_Aluno, seu atributo rua pode vir 
a ser subdividido posteriormente em numero_rua, nome-rua e apt_numero. 
 
EADDCC030 – Fundamentos de Banco de Dados 
29 
 
 
DICA: O uso de atributos compostos em um esquema de dados é uma 
boa escolha quando o usuário desejar se referir ao atributo como um 
todo em certas ocasiões e somente a parte dele em outras. 
 
Atributo mono ou multivalorados 
São atributos que aceitam somente um valor (mono), ou múltiplos 
(multi) valores para dada instância da entidade. O atributo nome de uma 
entidade específica de Aluno refere-se apenas ao nome do Aluno e é 
monovalorado. 
Para instâncias onde um atributo possui um conjunto de valores este 
atributo é chamado multivalorado. Considere que a entidade Aluno tenha 
agora um novo atributo telefone. O aluno pode ter dois telefones um 
residencial e um celular; assim, uma mesma instância da entidade Aluno 
pode ter dois valores para o atributo telefone. Este atributo portanto é 
chamado multivalorado. 
 
 
 
 
 
Atributo Nulo 
O atributo nulo é usado quando uma entidade não possui valor para determinado 
atributo. 
Ex: se um AlunoEspecial em particular não quer fornecer sua data de nascimento, 
o valor do atributo data_nascimento para este aluno deverá ser nulo, e isto significa 
que este atributo“não é aplicável”. O uso do atributo nulo também pode significar que o 
valor do atributo é desconhecido. 
{32112030, 91023456}
{32150140, 88871245}
telefone
90887654321Pedro Manuel
12345678909João da Silva
CPFnome
{32112030, 91023456}
{32150140, 88871245}
telefone
90887654321Pedro Manuel
12345678909João da Silva
CPFnome
multivaloradomultivalorado
EADDCC030 – Fundamentos de Banco de Dados 
30 
 
 
 
 
 
 
 
Atributo Derivado 
O valor deste tipo de atributo pode ser derivado de outros atributos ou entidades a 
ele relacionados. 
Ex: A entidade AlunoEspecial possui o atributo idade que representa a idade do 
aluno naquele momento. Podemos derivar o valor deste atributo subtraindo a data 
corrente pela data de nascimento do aluno. 
AlunoEspecial
Nome Data_nascimento
endereco idade
 
 
2.4. MER - Relacionamentos 
É toda associação entre duas ou mais entidades, sobre a qual se deseja manter 
informações no Banco de Dados. 
Os relacionamentos representam fatos ou situações da realidade, onde as 
entidades interagem de alguma forma. Um dado por si só não faz uma informação, pois 
não tem sentido próprio; é necessário que haja uma associação de dados para que a 
informação seja obtida. O relacionamento faz o papel desta associação. 
AlunoEspecial
Nome Data_nascimento
endereço idade
EADDCC030 – Fundamentos de Banco de Dados 
31 
 
No MER, um relacionamento é representado por um losango. 
 
Exemplos: 
 matricula: entre as entidades Aluno e Turma. 
 oferece: entre as entidades Disciplina e Turma. 
 pertence: entre as entidades Professor e Escola. 
Representação no MER: 
 
 
Importante: 
 O valor corrente de uma entidade é o conjunto de instâncias 
que pertence a ele. Exemplo: Conjunto de Disciplina = {Banco 
de Dados, Engenharia de Software, Orientação a Objetos....} 
 O valor de um relacionamento é o conjunto de pares de 
instâncias que se relacionam, de acordo com o mesmo. 
2012_2OOOO
2013_1ESEng. De Software
2013_1BDBanco de Dados
TurmaDisciplina
2012_2OOOO
2013_1ESEng. De Software
2013_1BDBanco de Dados
TurmaDisciplina
Disciplina Turmaoferece
 
 
Como faríamos a seguinte modelagem utilizando entidades e os relacionamentos 
entre as mesmas: Bares vendem cervejas e são freqüentados por apreciadores de 
cerveja. Como faço esta modelagem? 
 
aluna turmamatricula
EADDCC030 – Fundamentos de Banco de Dados 
32 
 
CERVEJA BARVENDE
BEBEDOR
FREQÜENTA
GOSTA
 
 
Um relacionamento também pode ter atributos descritivos 
Professor EscolatrabalhaProfessor Escolatrabalha
salário
 
O atributo salário não pertence nem a entidade Professor e nem a entidade 
Escola isoladamente mas pertence sim ao relacionamento entre o professor e a escola. 
Um professor em uma escola diferente pode ter outro salário e um outro professor da 
mesma escola pode ter salário diferente. 
O número de entidades que participam em um relacionamento é também o grau 
deste relacionamento. Um conjunto de relacionamento binário é de grau dois (duas 
entidades participantes); um relacionamento ternário é de grau três (três entidades 
participantes). 
2.4.1. Autorrelacionamento 
A função que uma entidade desempenha em um relacionamento é chamada de 
papel. Antes de falarmos sobre Auto-relacionamentos, devemos primeiro entender o 
conceito de papel. 
EADDCC030 – Fundamentos de Banco de Dados 
33 
 
Um autorrelacionamento é o relacionamento entre ocorrências da mesma 
entidade. Para que fique claro a qual papel uma dada instância da entidade esta 
desempenhando no relacionamento, devemos nomear os lados do relacionamento. 
Professor
ÉTutor
Subordinado 
Tutor
Orientador
 A entidade Professor tem um 
 papel em cada lado do relacionamento! 
 
2.4.2. Cardinalidade de Relacionamentos 
A cardinalidade de uma entidade em um relacionamento expressa o número de 
instâncias da entidade que podem ser associadas a uma determinada instância da 
entidade relacionada. 
Devem ser consideradas duas cardinalidades: 
 Cardinalidade máxima 
 Cardinalidade mínima 
Cardinalidade Máxima de uma Entidade: é o número máximo de instâncias 
da entidade associada que devem se relacionar com uma instância da entidade 
em questão. 
Disciplina Turmaoferece
1 n
Expressa que uma 
instância de Turma
pode estar associada 
a no máximo a uma 
instância de 
Disciplina
Expressa que uma 
instância de 
Disciplina pode estar 
associada 
a várias instâncias de 
Turma
 
EADDCC030 – Fundamentos de Banco de Dados 
34 
 
 Tipos de Cardinalidade Máxima 
o Um para Um (1:1): Uma entidade em A está associada no máximo com 
uma entidade em B, e uma entidade em B está associada com no 
máximo uma entidade em A. 
 
 
 
 
 
Turma Professorpossui
1 1
Pessoa
Casamento
Marido Mulher
11
 
o Um para Muitos (1:N): Uma entidade em A está associada com várias 
entidades em B. Uma entidade em B, entretanto, deve estar associada 
no máximo a uma entidade em A. 
a1
a2
a3
b1
b2
b3
b4
a1
a2
a3
b1
b2
b3
b4
 
a1
a2
a3
a4
b1
b2
b3
b4
a1
a2
a3
a4
b1
b2
b3
b4
EADDCC030 – Fundamentos de Banco de Dados 
35 
 
 
o Muitos para um: Uma entidade em A está associada a no máximo uma 
entidade em B. Uma entidade em B, entretanto, pode estar associada a 
um número qualquer de entidades em A. 
a1
a2
a3
a4
b1
b2
a1
a2
a3
a4
b1
b2
 
o Muitos para Muitos: Uma entidade em A está associada a qualquer 
número de entidades em B, e uma entidade em B está associada a um 
número qualquer de entidades em A. 
a1
a2
a3
a4
b1
b2
b3
b4
a1
a2
a3
a4
b1
b2
b3
b4
 
 
EADDCC030 – Fundamentos de Banco de Dados 
36 
 
Aluno TurmaMatricula
n n
Professor Turmaleciona
n n
 
 
Cardinalidade mínima de uma entidade: é o número mínimo de instâncias da 
entidade associada que devem se relacionar com uma instância da entidade em 
questão. A cardinalidade mínima é usada para indicar o tipo de participação da 
entidade em um relacionamento. 
Esta participação pode ser: 
 Parcial ou Opcional: Uma ocorrência da entidade pode ou não participar de 
determinado relacionamento. É indicado pela cardinalidade mínima = 0 (zero). 
Departamento Professoralocação
(1,1) (0,N)
 
o Um Departamento pode ter no mínimo nenhum professor (0) e no máximo, 
vários professores. 
o Indica que podem existir departamentos que não tem nenhum professor 
relacionado a ele. 
 
 Total ou Obrigatória: Quando todas as ocorrências de uma entidade devem 
participar de determinado relacionamento. É indicado pela cardinalidade mínima > 0 
(zero) .... geralmente 1. 
Departamento Professoralocação
(0,1) (1,N)
 
o Todos os departamentos devem possuir pelo menos (no mínimo) um 
professor alocado. Observem a bolinha vermelha que indica o 1 do lado do 
professor. 
EADDCC030 – Fundamentos de Banco de Dados 
37 
 
o Indica que não poderá existir no banco um departamento que não tenha 
nenhum professor. 
Departamento Professoralocação
(1,1) (10,n)
 
o Parcialidade mínima: para um departamento ser criado, devem existem pelo 
menos 10 professores alocados. 
 
2.4.3. Relacionamentos enésimos 
Algumas vezes pode ser necessário expressar relacionamentos envolvendo mais 
de duas entidades. 
 Relacionamentos ternários ou maiores são raros mas as vezes necessários para se 
refletir a verdadeira semântica 
 O exemplo abaixo mostra o relacionamento contrato, que envolve escola, professor 
e turma. Este relacionamento representa que uma escola tem contrato com 
professores em particular para atuarem em turmas. 
Disciplina Professorcontrato
Escola
(1,N)
(1,N)
(1,1)
Dada uma disciplina e um 
professor, os mesmos
só podem ser relacionados a uma 
escola. Por outro lado, uma 
escola
pode contratar vários professores 
para uma disciplina e
Um professor pode ser 
contratado por uma escola para 
várias disciplinas. 
 
2.5.MER - Generalização/Especialização 
Generalização: Processo de abstração em que vários tipos de entidade são 
agrupados em uma única entidade genérica, que mantém as propriedades comuns. 
Especialização: Processo inverso, ou seja, novas entidades especializadas são 
criadas, com atributos que acrescentam detalhes à entidade genérica existente: 
 
EADDCC030 – Fundamentos de Banco de Dados 
38 
 
 Entidade genérica é denominada superclasse 
 Entidade especializadas são subclasses. As subclasses possuem, além de 
seus próprios atributos, os atributos da superclasse correspondente (herança). Usada 
quando é necessário caracterizar entidades com atributos próprios ou participação em 
relacionamentos específicos. 
Dito em outras palavras, a superclasse armazena os dados gerais de uma 
entidade e as subclasses armazenam os dados particulares. 
Superclasse e subclasses são conectadas por um relacionamento ISA (É UM), 
que é representado geralmente por um triângulo. Todo relacionamento ISA é um para 
um e portanto não precisamos representar a cardinalidade. 
Filme
Desenho Suspense
tamanho
ano
título
arma
dubla
Estrela
 
 
Exemplos: 
 Um filme típico, que não é suspense e nem desenho, só terá instância na entidade 
Filme e terá os três atributos desta entidade. 
 Um filme que é desenho terá valores para os 3 atributos de filme e terá ainda o 
relacionamento dubla que só vale para filmes-desenho. 
EADDCC030 – Fundamentos de Banco de Dados 
39 
 
 Um filme de suspense terá os três atributos de filme mais o atributo arma . 
 Um filme como Roger Rabbit que é desenho e suspense ao mesmo tempo tem 
instâncias nas 3 entidades. 
 
2.5.1. Tipos de Generalização/Especialização 
No MER estendido, podemos ainda classificar os tipos de relacionamentos ISA: 
 Total: indica que toda instância tem que pertencer a uma das especializações. 
(Todo cliente tem obrigatoriamente que ser ou pessoa física ou jurídica) 
Cliente
Jurídica Física
T
 
 Parcial: indica que podemos ter instância na superclasse que não pertencem as 
subclasses. 
Funcionário
Secretária Motorista
P
 
 Em cada relacionamento ISA, as instâncias nas subclasses são mutuamente 
exclusivas 
 Seguindo este princípio, no exemplo a seguir não podemos ter uma instância que 
seja Jurídica e Física ao mesmo tempo (ambas as entidades estão conectadas pelo 
mesmo ISA) 
Cliente
Jurídica Física
T
 
EADDCC030 – Fundamentos de Banco de Dados 
40 
 
 No exemplo a seguir podemos ter um filme que seja ao mesmo tempo desenho e 
suspense. 
Filme
Desenho Suspense
 
 
Importante: 
O relacionamento de Gen/ESP no MER lembra muito o 
conceito de herança e hierarquia de classes do modelo OO.No 
entanto, existe uma diferença fundamental entre a visão ISA 
do MER e a visão OO: 
 
 Uma instância pode ter representantes em mais de um conjunto de 
entidades no MER e no modelo OO uma instância só está relacionada a 
uma classe. 
 Ex: O filme Roger Rabbit tem representante nas entidades, 
suspense, desenho e filme no MER. No modelo OO isto não é 
possível – lançaríamos mão do conceito de herança 
múltipla..... 
 
2.6. Entidade Associativa 
É a entidade criada a partir de um relacionamento. 
No exemplo a seguir, a entidade associativa foi utilizada para adicionar a 
informação que a cada consulta feita pelo paciente são prescritos um ou mais 
medicamentos. 
Médico Pacienteconsulta
Medicamento
prescreve
 
EADDCC030 – Fundamentos de Banco de Dados 
41 
 
2.7. Entidade Fraca 
Para melhor definirmos o conceito de Entidade Fraca, detalharemos o conceito de 
dependência existencial. 
Se a existência da entidade x depende da existência da entidade y, então x é dito 
ser dependente da existência de y. Operacionalmente, se y for excluído, o mesmo 
deve acontecer com x. 
 A entidade y é chamada entidade dominante e a x é chamada entidade 
subordinada. 
A entidade subordinada é mais conhecida no MER como ENTIDADE FRACA 
A entidade dominante é conhecida como ENTIDADE FORTE. 
 
Importante: 
A participação total está estreitamente relacionada a 
existência de dependência. 
 
 
No geral, Existem duas causas principais (não únicas) para se utilizar entidade 
fraca: 
1. Quando uma dada entidade pode ser considerada como uma subunidade de 
uma outra, algumas vezes a subunidade pode não ter identificadores únicos 
Staff EstúdioÉ unidade
(0,N) (1,1)
 
Um estúdio tem um conjunto de pessoas que trabalham em filmes. Estes são designados por 
staff 1, staff2. Estes nomes são utilizados por vários estúdios. Assim, sem o nome do estúdio 
não podemos identificar unicamente um staff. Precisamos da entidade Estúdio. 
especies GêneroPertence a
(0,N) (1,1)
 
 
EADDCC030 – Fundamentos de Banco de Dados 
42 
 
Um espécie é designada pelo seu gênero e o nome da espécie. Por exemplo, os homens são 
da espécie Homo Sapiens. Homo é o nome do gênero e sapiens o nome da espécie. Em 
geral, um gênero consiste de várias espécies. As espécies não são únicas e precisam do 
gênero para sua identificação única. 
2. Uso de uma entidade de conexão usada para eliminar relacionamentos 
ternários ou maiores.. Estas entidades não vão ter atributos seus. Vão sempre 
usar os atributos das entidades fortes. 
Filme
Estrela
Filme_de
Estúdio
1
1
contrato
N
Estrela_de
N
Estúdio_de
1
N
 
 
Requisitos para uso de entidades fracas: 
 A relação entre entidade fraca e forte deve ser binária, muitos para um da entidade 
fraca para a forte. 
 Da lado da entidade forte, a cardinalidade mínima deve ser total, ou seja, para toda 
entidade fraca E, deve existir no banco uma entidade forte F. 
 Os atributos que serão utilizadas como chave de E por parte de F devem ser os 
atributos chave de F. 
 
2.8. Restrições 
Atributo Chave: uma chave é um atributo ou conjunto de atributos de uma 
entidade de forma que duas instâncias quaisquer dessa entidade não tenham valores 
iguais para estes atributos. Devemos designar uma chave para todo conjunto de 
entidade. Representamos atributos chave no MER pelo grifo em baixo de seu nome. 
 
EADDCC030 – Fundamentos de Banco de Dados 
43 
 
Aluno
Infantil Fundamental
nome
endereço
matricula
atividade
extra
 
Valores únicos para atributos: Todo atributo chave deve ser monovalorado. 
Sempre que possível, tentar descrever atributos monovalorados - isso não é uma regra 
para atributos não chave uma vez que podemos ter atributos multivalorados. 
Integridade Referencial: Quando temos cardinalidade mínima 1 (total), como no 
caso de Filial no exemplo abaixo, significa que devemos reforçar algumas restrições na 
manipulação do nosso BD. Não podemos apagar uma filial do nosso BD até que não se 
tenha nenhum cliente relacionado a ela. Se for necessário apagar uma filial, todos os 
clientes relacionados a ela também devem ser apagados, chamamos isso de deleção 
em cascata. 
Filial Clientepertence
(1,1) (0,n)
 
 
2.9. Técnicas de Projeto 
1. Evitar a redundância: As informações devem aparecer no modelo apenas uma vez. 
Informações replicadas dão margem a inconsistências. 
 
Filme
título
Ano tamanho
tipoFilme
Estúdio
Nome
endereco
comanda
 
EADDCC030 – Fundamentos de Banco de Dados 
44 
 
A modelagem anterior é boa uma vez que endereço do estúdio aparece apenas uma vez. Já 
o modelo a seguir não é tão bom, pois cria a informação sobre estúdio duas vezes, na 
entidade estúdio e no filme. 
Filme
título
Ano tamanho
tipoFilme
Estúdio
Nome
endereco
comanda
estúdio
 
 
O modelo abaixo é pior ainda, pois repete o nome e endereço do estúdio para todos os 
filmes de um dado estúdio. Pior ainda, se um estúdio é novo e ainda não tem filme, não 
aparecerá no banco. 
Filme
título
Ano
tamanho
tipoFilme
estúdioNome
enderecoEstudio
 
2. O que usar: Entidade ou Atributo? Dois requisitos devem ser atendidos para ser 
entidade: 
 Algo merece ser entidade se tiver mais do que um atributo. Se tiver apenas 
um atributo,não merece ser entidade e sim atributo de alguma outra 
entidade. 
 Se este algo for o lado muitos em um relacionamento muitos para um ou 
muitos para muitos. 
empregado
nome_emp
nro-fone
empregado
nome_empnome_emp
nro-fonenro-fone nro-fone não 
merece ser entidade 
uma vez que possui 
apenas um atributo 
 
EADDCC030 – Fundamentos de Banco de Dados 
45 
 
MAS, se o telefone for, no modelo, uma entidade sujeita a seus próprios atributos como 
nro_fone e localização, então: 
 conjunto de entidades empregado (atributo nome_emp) 
 conjunto de entidades telefone (atributos nro_fone e localização) 
 conjunto de relacionamentos emp_telefone, denotando a associação entre os 
empregados e os telefones que podem ter. 
empregado
nome_emp
telefone
localização
nro-fone
emp_
telefoneempregado
nome_empnome_emp
telefone
localização
nro-fone
emp_
telefone
 
Diferenças entre as duas modelagens acima: 
 No 1. caso, a definição implica que todo o empregado possui precisamente um 
número de telefone a ele associado. 
 No 2. caso, entretanto, a definição estabelece que o empregado pode ter vários 
números de telefones (incluindo zero) a ele associados. 
 a 2a. definição é mais geral que a 1a. e pode refletir com maior precisão as 
situações reais. 
Linha mestra para escolha entre criar uma entidade ou atributo: 
recorrer ao conjunto de relacionamentos para descrever uma ação que 
ocorre entre entidades. Esta abordagem pode ser útil também para 
decidir se certos atributos podem ser expressos de maneira mais 
apropriada como relacionamentos. 
 
3. Quando usar entidades fracas? 
Procure por uma chave para as entidades (não chaves imaginárias... mas chaves 
consistentes). Caso não ache e considere que para identificar unicamente uma 
instância necessitamos na instância de uma outra, então, esta será entidade fraca. 
 Tenha em mente: não existe uma autoridade global para designar chaves. 
o Ex: é muito pouco provável que se designe uma chave global para se 
identificar cada jogador unicamente entre os times de futebol. 
EADDCC030 – Fundamentos de Banco de Dados 
46 
 
 
4. Como tratar atributos opcionais?? 
Empregado
CRM
tipoEmpregado código
nome
CREA
 
 
Ver se existe a possibilidade de se criar uma GEN/ESP. 
Empregado
Médico Engenheiro
nomecódigo
CRM CREA
 
 
5. Como tratar atributos multivalorados? 
Geralmente criamos uma entidade e um relacionamento para a entidade original. 
Empregado
código
nome
dependentes 
dependente
Data nasc
Empregado
código
nome
possui
nome
 
 
 
EADDCC030 – Fundamentos de Banco de Dados 
47 
 
6. Como tratar atributos que mudam de valor ao longo do tempo? 
Geralmente criamos uma entidade e um relacionamento para a entidade original. 
Empregado
código
nome
salário
salário
data
Empregado
código
nome
possui
valor
 
7. Como tratar relacionamentos que mudam ao longo do tempo? 
Geralmente criamos um relacionamento com um atributo específico para isso. 
sala
localizacao
Empregado
código
nome
alocado
numero
sala
localizacao
Empregado
código
nome
alocado
numero
data
 
Exercícios de Fixação: 
a) Suponha que um grande estúdio de cinema tenha nos chamado para modelar 
um banco de dados para controle de seus filmes. Devemos controlar os filmes 
lançados, guardando informações sobre seus títulos, ano de lançamento, tamanho e 
tipo (colorido ou preto e branco). Devemos também saber quem foram as estrelas 
(atores ou atrizes) usados no filme. Destas estrelas devemos saber inicialmente seu 
nome, endereço, data nascimento e idade (sabemos que algumas estrelas não dizem por nada a 
data de nascimento....). Atualmente os estúdios só produzem filmes que sejam realmente feitos por 
outros estúdios menores. Desta forma, devemos também guardar informações acerca destes 
estúdios, guardando inicialmente seu nome e endereço. 
EADDCC030 – Fundamentos de Banco de Dados 
48 
 
Exercícios Propostos: 
a) Fazer um MER para uma companhia de projetos. A Companhia é 
organizada em departamentos. Cada departamento possui nome único, um 
no único, e um funcionário que o dirige. Um departamento controla um no 
de projetos, cada um dos quais possui um nome e um no único, e uma 
localização. Para cada funcionário é mantido o seu nome, sua RG que é 
única, e uma matrícula também única. Um funcionário pertence a um e somente um 
departamento, porém pode trabalhar em mais de um projeto. Controla-se o no de horas 
semanais que cada funcionário trabalha em cada projeto. Controla-se também quem é o 
supervisor direto de cada funcionário. É mantida a informação de quando o funcionário 
começou a dirigir o departamento. 
b) Nossa empresa de projetos cresceu e alguns novos requisitos são necessários: Foi criado 
um projeto especial, chamado multimídia, que é o único que tem alocado uma série de 
recursos para seu funcionamento. Consideramos recursos material tais como software de 
autoria, scanner, etc. Agora, de tempos em tempos, os departamentos ganham uma 
verba extra para se manterem. No entanto, a qualquer momento a sede da empresa pode 
requisitar um relatório com a quantidade de verbas enviadas para cada departamento e 
quando foram os aportes. Agora cada departamento possui um gerente, que é um 
empregado. No entanto, gerentes possuem maior qualificação e por conta disso, devemos 
guardar a informação de seu grau de instrução. Devemos ainda guardar informações 
sobre cursos extras que os funcionários fizerem ao longo dos anos que trabalham na 
empresa. E para cada funcionário, devemos saber ao certo a idade que o mesmo realizou 
o curso. 
 
Resposta do Exercício de Fixação: 
a) Suponha que um grande estúdio de cinema tenha nos chamado para modelar um banco de 
dados para controle de seus filmes. Devemos controlar os filmes lançados, guardando 
informações sobre seus títulos, ano de lançamento, tamanho e tipo (colorido ou preto e 
branco). Devemos também saber quem foram as estrelas (atores ou atrizes) usados no filme. 
Destas estrelas devemos saber inicialmente seu nome, endereço, data nascimento e idade 
(sabemos que algumas estrelas não dizem por nada a data de nascimento....). Atualmente os 
estúdios só produzem filmes que sejam realmente feitos por outros estúdios menores. Desta 
forma, devemos também guardar informações acerca destes estúdios, guardando inicialmente 
seu nome e endereço. 
Estrela
Nome
Data_nascimento
endereco
idadeFilme
título
Ano tamanho
tipoFilme
Estúdio
Nome
endereco
 
 
 
 
 
EADDCC030 – Fundamentos de Banco de Dados 
49 
 
 
CAPÍTULO 3 - MODELO RELACIONAL 
 
Neste capitulo você estudará conceitos relacionados ao projeto 
lógico de banco de dados, através do modelo relacional. Um 
modelo lógico faz uma adequação do modelo conceitual, incluindo 
restrições relacionadas ao modelo de banco de dados escolhido, 
que no nosso caso é o modelo relacional. Trata-se de um modelo 
com maior nível de detalhe do que o conceitual. 
 
3.1 Introdução 
Quando construímos um modelo conceitual, focamos apenas no que o usuário 
deseja, abstraindo da plataforma em que este será implementado. No que se refere 
aos projetos de Banco de Dados, a preocupação e centrada em estabelecer de que 
forma os dados serão armazenados no sistema. Introduzido pelo pesquisador da IBM 
Edward F. Codd em 1970. Possui duas características marcantes, razões de sucesso: 
sua estrutura de dados simples e uniforme e uma fundamentação teórica sólida oriunda 
da matemática. Opera com os dados organizados como um conjunto de tabelas. O 
conceito de tabela é o mais forte no modelo relacional. 
 
3.2 Características das Tabelas 
Tabela Fornecimento 
1209782001
5678702002
1200701501
QuantidadeProjetoPecaFornecedor
1209782001
5678702002
1200701501
QuantidadeProjetoPecaFornecedor
 
Algumas características marcantes do modelo são detalhadas a seguir: 
 Cada Tabela tem um nome único através do qual ela é referenciada. 
 Cada Tabela contém um número fixo de colunas (grauda tabela). 
 Não existem linhas iguais (por conta da unicidade da chave primária). 
EADDCC030 – Fundamentos de Banco de Dados 
50 
 
 A ordem das linhas é irrelevante (identificação não é feita pela localização, mas sim 
pelo valor da chave primária). Cada coluna tem um nome único (diferente das 
demais colunas). 
 A ordem das colunas é irrelevante (a coluna é identificada pelo seu nome). obs: 
Para algumas cláusulas SQL (inserção) esta ordem é relevante (dependendo da 
sintaxe da inserção). 
 Cada coluna contém valores atômicos (não são permitidos grupos de valores) 
 Cada valor de coluna é extraído de um determinado DOMÍNIO (conjunto de valores 
possíveis) 
 Duas ou mais colunas podem ser definidas sobre um mesmo Domínio 
 Conexões entre tabelas somente serão expressas através de valores das colunas 
(Chave Estrangeira) 
Considere a tabela FORNECIMENTO. Ela possui quatro colunas: Fornecedor, 
Peça, Projeto, Quantidade. Seguindo a terminologia do modelo relacional, tratamos os 
nomes dessas colunas como atributos. Para cada atributo há um conjunto de valores 
permitidos, chamado domínio da coluna em questão. Para o atributo Fornecedor, por 
exemplo, o domínio é o conjunto de todos os números de fornecedores. Suponha que 
D1 denote esse conjunto, D2 o conjunto de números de peças, D3 o conjunto de 
números de todos os projetos e D4, o conjunto de todos os inteiros. Qualquer linha da 
tabela FORNECIMENTO consiste necessariamente de uma tupla (v1, v2, v3, v4), em 
que v1 é o número do fornecedor, (isto é, v1 está no domínio D1), v2 é um número de 
peça e assim por diante. Em geral, uma linha da tabela fornecimento é um conjunto de 
D1 x D2 x D3 x D4. 
Matematicamente, define-se uma relação como um subconjunto de um produto 
cartesiano de uma lista de domínios. Essa definição corresponde quase exatamente a 
definição de uma tabela. A única diferença é que designamos nomes aos atributos, ao 
passo que matematicamente se usam apenas “nomes” numéricos. Como as tabelas 
em essência são relações, podemos usar os termos matemáticos relação e tupla no 
lugar de tabela e linhas, respectivamente. 
3.3 Chaves 
Chave primária (primary key): É um atributo (coluna) ou uma combinação de 
atributos cujos valores distinguem uma linha das demais, dentro de uma tabela. 
EADDCC030 – Fundamentos de Banco de Dados 
51 
 
1209782001
5678702002
1200701501
QuantidadeProjetoPecaFornecedor
1209782001
5678702002
1200701501
QuantidadeProjetoPecaFornecedor
 
7Maria02
7José01
NumDEPTONomeNumFUNC
7Maria02
7José01
NumDEPTONomeNumFUNC
DCC7
DescricaoNumDEPTO
DCC7
DescricaoNumDEPTO
Chave Estrangeira
Chave Primária
 
Chave estrangeira (foreign key): É um atributo ou uma combinação de atributos, 
cujos valores aparecem necessariamente na chave primária de uma tabela. A chave 
estrangeira é o mecanismo que permite a implementação de relacionamentos 
(navegabilidade). 
Chave candidata ou alternativa: Em alguns casos, mais de um atributo ou 
combinações de atributos podem servir para distinguir uma linha das demais. Um dos 
atributos (ou combinação de atributos) é escolhido como chave primária e os demais 
atributos (ou combinações) são denominados chaves candidatas. 
Chave 
candidata
CPFFunc
Chave 
estrangeira
Chave 
primária
NumDEPTONomeNumFUNC
Chave 
candidata
CPFFunc
Chave 
estrangeira
Chave 
primária
NumDEPTONomeNumFUNC
 
 
3.4 Esquema de um Banco Relacional 
O esquema de uma relação é constituído pelo nome da relação e seus atributos, 
em ordem. 
Filme(#nro, título, tamanho, tipoFilme) ou 
Pode conter o detalhamento relativo ao tipo de atributo. 
EADDCC030 – Fundamentos de Banco de Dados 
52 
 
Filme(#nro:inteiro, tamanho: float, tipoFilme:string) 
Desta forma, um Banco de Dados pode ser definido como sendo uma coleção de 
relações e um Esquema do Banco de Dados é definido como um conjunto de 
esquemas das relações. 
Já o Catálogo é um Banco de Dados do sistema contendo informações sobre as 
tabelas básicas, além de visões, direitos da acesso, etc. São também chamados de 
metadados. Este catálogo ou metadados pode ser consultado com SQL. 
 
3.5 Transformação do MER para o Modelo Relacional 
Apresentamos a seguir um passo a passo para a elaboração do projeto lógico de 
bancos de dados relacionais a partir do Modelo Entidade e Relacionamento (MER). 
Esta apostila tem foco apenas o projeto de banco de dados relacional, mas outras 
estratégias, não apresentadas aqui, podem ser utilizadas para a passagem do MER 
para o modelo hierárquico, em redes ou orientado a objetos. 
 
Passo 1: Análise das Entidades 
 Entidades se tornam tabelas 
o Escolher uma chave para ser a chave primária 
Engenheiro
Código Nome endereco
Engenheiro
#Codigo nome endereco
 
 Cada atributo da entidade se torna um atributo da tabela ou relação. 
 
Passo 1.1: Atributos Compostos 
Exemplo: se o atributo endereço fosse composto, isto é: endereço (rua, numero, 
bairro, cidade, estado) -> colocar os atributos que compõem endereço na tabela. 
Engenheiro
#Codigo nome rua numero bairro cidade estado
 
EADDCC030 – Fundamentos de Banco de Dados 
53 
 
Passo 1.2: Atributos Multivalorados 
 Criar outra tabela com o atributo multivalorado e a chave da tabela principal. 
 
 
 
 
 
Passo 2: Análise dos Relacionamentos 
 Análise de Relacionamento 
o As ligações entre as tabelas no modelo relacional representam os 
relacionamentos do modelo conceitual. 
 Regra Geral 
o Toda vez que um relacionamento tiver atributo, este relacionamento vai ser 
representado por uma tabela. 
Observe: isso é uma regra geral. Temos que analisar caso a caso. 
Pode ser que em uma relação 1:N que tenha atributo valha mais a 
pena colocar este atributo junto com a chave estrangeira do lado 1 na 
tabela do lado N (ganho: otimização de consultas). A mesma coisa no 
rel 1:1. Na verdade, em um projeto real, usamos estas diretivas. 
 
 Representação do Relacionamento 
o Relacionamento vira Tabela. 
o Relacionamento vai ser representado por uma Chave Estrangeira. 
 
Passo 2.1: Mapeamento Relacionamento 1:1 
 Pelo menos uma das entidades possui participação total no relacionamento 
 Ex: O atributo num-emp foi transposto para a relação departamento, com o objetivo 
de representar a restrição de que todo departamento possui um gerente que é 
empregado da empresa. 
Engenheiro
#Codigo Nome telefones
Engenheiro
#Codigo Nome
Telefones
#Codigo #telefone
Opcionalmente, se soubermos a cardinalidade 
da multivaloração (2, 3, 4), podemos criar 
campos na própria tabela. Somente quando 
tivermos certeza disso.
EADDCC030 – Fundamentos de Banco de Dados 
54 
 
 O diagrama mostra a restrição que não podemos ter um departamento sem chefe e 
devemos representar isso no modelo relacional. 
Departamento Empregadochefia
Departamento
#Código Nome Num_Ger
Empregado
Num_func Nome
 
 Mapeamento Relacionamento 1:1 (casos específicos) 
o Ambas entidades possuem participação parcial no relacionamento. 
o Escolhe-se um dos lados para se colocar a chave estrangeira. 
Homem Mulhercasamento
Homem
#CPF_H Nome_H CPF_M 
Mulher
#CPF_M Nome_M
 
Passo 2.2: Mapeamento Relacionamento 1:N 
 A entidade do lado um possui participação total no relacionamento. 
 A chave primária da relação do lado "um" é parte integrante da relação do lado 
muitos. 
Cliente Pedidochefia
CLIENTE
#COD_CLI NOME
PEDIDO
#NRO_PED DATA COD_CLI
 
 Mapeamento Relacionamento 1:N (casos específicos) 
o A entidade do lado um possui participação parcial no relacionamento. 
o Define-se uma terceira relação correspondendo ao relacionamento. 
EADDCC030 – Fundamentos de Banco de Dados 
55 
 
o Na prática, dificilmente fazemos isso mas se quisermos evitar valores nulos 
para a chave estrangeira, esta é a melhor política. No entanto, para fazer 
consultas precisamos juntar mais tabelas. 
Homem
CPF_H Nome_H

Continue navegando