Fundamentos de Bancos de
Dados
Modelo Entidade –
Relacionamento
2/62
Modelo ER
• Objetivo
– Estudar o modelo Entidade-Relacionamento; um modelo
conceitual amplamente difundido e utilizado pelos projetistas de bancos de dados.
• Principais tópicos
– Introdução ao Modelo Entidade-Relacionamento – Conceitos:
• Entidades e Atributos
• Atributos Compostos
• Atributos Multivalorados
• Atributos Derivados
• Valores Nulos de Atributos
• Tipos de Entidades
3/62
Modelo ER
• Principais tópicos (continuação)
• Relacionamentos e Tipos de Relacionamentos
• Graus de um Tipo de Relacionamento
• Relacionamento como um Atributo
• Papéis e Relacionamentos Recursivos
• Restrições sobre Tipos de Relacionamentos
– Razão de Cardinalidade
– Restrição de Participação
– Restrição Estrutural
• Atributo de Relacionamento
• Tipo de Entidade-Fraca
– Notação do DER
• O DER do Sistema Companhia
Introdução ao Modelo ER
• O Modelo Entidade-Relacionamento (MER):
– é um modelo de dados de alto-nível criado com o objetivo de representar a semântica associada aos dados do minimundo.
– utilizado na fase de projeto conceitual, onde o esquema conceitual do banco de dados da aplicação é concebido.
5/62
Introdução ao Modelo ER
• O esquema conceitual criado usando-se o MER é chamado Diagrama Entidade-Relacionamento (DER).
MER: Conjunto de conceitos e elementos de modelagem que o projetista de banco de dados precisa conhecer.
DER: Resultado do processo de modelagem
6/62
Entidades e Atributos
• O objeto mais elementar que o MER representa é a
entidade.
• Uma entidade é algo do mundo real que possui uma
existência independente.
– Objetos, pessoas, empregado, entes, conceitos, "coisas", etc.
- do mundo real são representados como Entidades.
– Cada Entidade tem propriedades particulares que são
7/62
Exemplo de uma Entidade
• Uma entidade EMPREGADO pode ser descrita pelo
seu nome,idade, endereço, salário, etc.
• Uma entidade em particular terá um valor para cada
um de seus atributos.
e1
Nome=João da Silva Código = 2222
RG= 12345678
CPF= 09876543210
Endereço=Rua Goiás 711São Paulo, SP, 1301100 Idade=55
8/62
Atributos Compostos
• Alguns atributos podem ser divididos em sub-partes
com significados independentes.
Endereç o
Endereç o
Endereço da Rua
Endereço da
Rua Cidade Cidade Estado Estado
CEP CEP
Nome da Rua
Nome da
Rua Númer
o
Númer o
Apartament o
9/62
Atributos Multivalorados
• Muitos atributos têm apenas um valor
(uni-valorados). Porém existem atributos que podem ter um conjunto de valores (Multivalorados)
e1 Nome = Marco Aurélio
10/62
Atributos Derivados
• São atributos cujos valores devem ser obtidos após
algum processamento utilizando informações obtidas do próprio banco de dados:
– Idade = Data_Atual - Data_Nascimento
11/62
Valores Nulos de Atributos
• Algumas vezes pode acontecer de um atributo não
possuir valor. Nesses casos, atribui-se um valor nulo (null) para esse atributo.
– Apartamento = null para aqueles empregados que não residam em um prédio. (não aplicável)
• O valor null pode ser aplicado também para denotar
12/62
Tipos de Entidades
• Entidades que têm a mesma "estrutura" e a mesma
semântica, são representadas como Tipo de Entidade.
Extensão
FUNCIONÁRIO FILME
Nome, Idade, Salário Título, Quantidade
Esquema (Intenção)
a1
a2
a3
(João da Silva, 55, 800)
(Roberto Carlos, 40, 300)
(Camélia Colina, 25, 200)
● ● ●
b1
b2
(CPMI do Mensalão, 10)
(Eu, o Robô, 5)
13/62
Atributo-Chave
• Uma restrição importante sobre entidades de um tipo
de entidade é a restrição de atributo-chave.
– Todo Tipo de Entidade deve ter um atributo-chave, seja ele
um atributo simples ou composto.
– Os valores de um atributo-chave devem ser distintos. Esta
Questões
1. Discuta o papel de um modelo de dados de alto-nível no projeto de banco de dados.
2. Cite alguns possíveis casos onde o valor nulo (null) pode ser aplicado.
3. Defina os seguintes termos: entidade, atributo, valor de atributo, instância de relacionamento, atributo composto, atributo univalorado, atributo multivalorado, atributo derivado e atributo-chave. 4. Defina tipo de entidade. Descreva as diferenças
17/62
Relacionamentos e Tipos de Relacionamentos
• Um relacionamento é uma associação entre uma ou
18/62
Grau de um Tipo de Relacionamento
• O Grau de um Tipo de Relacionamento = número de
Tipos de Entidades Envolvidas
FORNECEDOR
FORNECE
PEÇA
b1
b3 b2
r1
r6
r7 r2
r3
r4
r5
c1
c3 c2 PROJETO a1
19/62
Relacionamento como Atributo
• O Tipo de Relacionamento
– EMPREGADO TRABALHA_PARA DEPARTAMENTO
• Pode ser pensado como:
– EMPREGADO possuindo um atributo DEPARTAMENTO ou
20/62
Papéis
• Cada tipo de entidade que participa de um tipo de
relacionamento possui um papel específico.
• No caso de:
– EMPREGADO TRABALHA_PARA DEPARTAMENTO,
• O papel de EMPREGADO é empregado ou trabalhador
e do DEPARTAMENTO é empregador.
21/62
Papéis em Relacionamentos Recursivos
• Existem casos em que a indicação do papel é
OBRIGATÓRIA.
• Por exemplo:
– Em Tipos de Relacionamentos Recursivos
1
1
1 2
2
2
SUPERVISIONA
r1
r2
r3 a1
a2
a3
a4
22/62
Papéis em Relacionamentos com Ambiguidade Semântica
• Em Tipos de Relacionamentos cuja semântica não
fique clara ou seja ambígua:
– EMPRESA CONTRATA DEPARTAMENTO – EMPRESA INVESTE PESSOA
23/62
Restrições sobre Tipos de Relacionamentos
• Razão de Cardinalidade:
– especifica a quantidade de instâncias de relacionamentos
em que uma entidade pode participar (1:1, 1:N, N:N)
• Participação:
– especifica se a existência de uma entidade depende dela estar relacionada com outra entidade através de um relacionamento.
• Total (Dependência existencial)
• Parcial
• Restrição Estrutural:
– Define o mínimo e máximo em que uma entidade pode
24/62
Razão de Cardinalidade
•
1:N
– EMPREGADO TRABALHA_PARA DEPARTAMENTO
25/62
Razão de Cardinalidade
• 1:1:
– EMPREGADO GERENCIA DEPARTAMENTO
e1 e2 e3 e4 e5 e6 e7
n
r1
n
r2
n
r3
d1 d2
d3
26/62
Razão de Cardinalidade
• N:N
– EMPREGADO TRABALHA_EM PROJETO
r1 a1
a3 a2
r2
r3
b1
b3 b2
b4
b5 r4
r5
r6
27/62
Restrição de Participação
– EMPREGADO TRABALHA_PARA DEPARTAMENTO
e1 e2 e3 e4 e5 e6 e7 n r1 n r2 n r3 n r4 n r5 n r7 n r6 d1 d2 d3 N 1 Total Parcial Empregado existe somente se estiver
relacionado com algum departamento
(Total)
Empregado existe somente se estiver
relacionado com algum departamento
(Total)
Departamento pode existir mesmo não
tendo nenhum empregado (Parcial)
Departamento pode existir mesmo não
tendo nenhum empregado (Parcial)
28/62 Restrição Estrutural Restrição Estrutural Restrição Estrutural
• A restrição estrutural de:
– EMPREGADO é (1,1), pois participa em
• No mínimo em 1 e no máximo em 1 relacionamento – DEPARTAMENTO é (0, N), pois participa em
• No mínimo 0 e no máximo N relacionamentos
EMPREGADO TRABALHA-PARA DEPARTAMENTO
e1 e2 e3 e4 e5 e6 e7 n r1 n r2 n r3 n r4 n r5 n r7 n r6 d1 d2 d3 Total Parcial N 1
EMPREGADO TRABALHA-PARA DEPARTAMENTO
e1 e2 e3 e4 e5 e6 e7 n r1 n r2 n r3 n r4 n r5 n r7 n r6 d1 d2 d3
29/62
Atributo de Relacionamento
• Os Tipos de Relacionamentos também podem ter
Atributos.
• Exemplos:
– Quantidade de horas trabalhadas por um empregado em um dado projeto (Horas)
• Pode ser representado como um atributo do relacionamento TRABALHA_EM
– Data em que um gerente começou a gerenciar um departamento (DataInício)
• Pode ser representado como um atributo do
30/62
Atributo de Relacionamento
• Atributos de Tipos de Relacionamentos 1:1 podem
ser colocados em um dos Tipos de Entidades participantes
– DataInício em
• EMPREGADO GERENCIA DEPARTAMENTO
e1 e2 e3 e4 e5 e6 e7
n
r1
n
r2
n
r3
d1 d2
d3
31/62
Atributo de Relacionamento
• Atributos de TR 1:N podem ser colocados no TE que
está no lado N do relacionamento
– DataInício em
• EMPREGADO TRABALHA_PARA DEPARTAMENTO
32/62
Tipo de Entidade-Fraca
• São Tipos de Entidades que não têm
atributos-chaves. Entidades só podem ser identificadas através da associação com uma outra Entidade.
DEPENDENTE POSSUI
d1 = { Maria, F, 01/01/1970, Esposa }
d3 = { Ana, F, 03/03/2003, Filha } d2 = { João, M,02/02/2002, Filho } *
d4 = { João, M,02/02/2002, Filho } *
d6 = { José, M,02/02/1971, Marido } d5 = { Vítor, M,02/02/2002, Filho }
d7 = { Sônia, F, 01/01/1970, Esposa }
r1 r7 r3 r4 r2 r5 r6
Tipo de entidade-fraca Tipo de entidade
proprietário da identificação
Tipo de relacionamento de identificação do Tipo de entidade-fraca
CLIENTE
33/62
Tipo de Entidade-Fraca
• Um tipo de entidade-fraca sempre tem restrição de
participação total (dependência existencial) com respeito ao seu tipo de relacionamento de identificação, uma vez que não é possível identificar uma entidade-fraca sem o correspondente tipo de entidade proprietária.
• Um tipo de entidade-fraca pode ter uma chave-parcial, que é um conjunto de atributos que pode
univocamente identificar entidades-fracas
34
NOTAÇÃO DO DER
Notação do DER
Tipo de Entidade
Tipo de Entidade-Fraca
Tipo de Relacionamento
Tipo de Relacionamento de Identificação
Atributo
Atributo-Chave
Atributo Multivalorado
Atributo Composto
Atributo Derivado
Participação Total de E2 em R
Razão de Cardinalidade 1:N para E1 R E2
Restrição Estrutural (min, max) na participação de E em R Chave-Parcial
....
E1 E2
E1 1 N E2
E
(min, max)
R
R
36/62
O DER do Sistema Companhia
TRABALHA-PARA GERENCIA Nome Nss DataNasc Endereço Salário Nome Número Localização NúmeroDeEmpregados DataInício PROJETO Horas DEPENDENTE
Nome Sexo DataNasc TipoRelação
38/62
Questões
5. Defina tipo de relacionamento. Descreva as
diferenças entre relacionamento e tipo de
relacionamento.
6. Quando é necessário indicar papéis num DER?
7. Descreva as formas alternativas de especificar restrições sobre tipos de relacionamentos. Quais são as vantagens e desvantagens de cada uma?
8. Sobre quais condições um tipo de relacionamento pode se tornar um atributo de um tipo de entidade? 9. Qual o significado de um tipo de relacionamento
39/62
Questões
5. Defina tipo de relacionamento. Descreva as
diferenças entre relacionamento e tipo de
relacionamento.
6. Quando é necessário indicar papéis num DER?
7. Descreva as formas alternativas de especificar restrições sobre tipos de relacionamentos. Quais são as vantagens e desvantagens de cada uma?
8. Sobre quais condições um tipo de relacionamento pode se tornar um atributo de um tipo de entidade? 9. Qual o significado de um tipo de relacionamento
40
DIAGRAMA DE CLASSES
DA UML
Diagrama de Classe
Tipo de Entidade-Fraca
Tipo de Relacionamento
Tipo de Relacionamento de Identificação
Atributo
Atributo-Chave
Atributo Multivalorado
Atributo Composto
Atributo Derivado
Participação Total de E2 em R
Razão de Cardinalidade 1:N para E1 R E2
Pedido
- id: key
Item
- nro: partial key
Produto
- id: key
Tipo Produto
- id: key
Cliente
- cpf: key
Nome da classe
Indique inicialmente todos os atributos que são chaves. - codigo: key
43/62
Pedido
- id: key
Item
- nro: partial key
Produto
- id: key
Tipo Produto
- id: key
contém
p
o
ss
u
i
contém
p e rte n ce Cliente
- cpf: key - codigo: key
Nomeie as associações
e indique o sentido da leitura
Associação Tipo de Relacionamento
44/62
Pedido
- id: key
Item
- nro: partial key
Produto
- id: key
Tipo Produto
- id: key
Cliente
- cpf: key
contém 1..10 1 p o ss u i 0..* 0..*
contém 1 1 p e rte n ce 0..* 1 Multiplicid ade Significado
0..1 Zero ou um
1 Somente um
0..* Zero ou mais
1..* Um ou mais
n Somente n (n
> 1)
0..n Zero a n (n > 1)
1..n Um a n (n > 1)
- codigo: key
Multiplicidade Restrições de Cardinalidade e de Participação
45/62
Funcionário Projeto
gerencia
- data início
1 gerencia 0..*
Note que esta classe não possui atributo chave
(classe associativa)
- id: key - id: key
Classe Associativa Tipo de Relacionamento que possui Atributos
• Classes Associativas servem apenas para vincular
46/62 Peça
Fornecedor Projeto
Fornece
Fornece
- data
1..*
1 1
- id: key
- id: key - id: key
Note que esta classe não possui atributo chave (classe associativa)
Associação N-ária Tipo de Relacionamento com Grau acima de 2
47/62
Papéis Papéis
• A indicação de papéis somente é obrigatória em
associações cuja semântica é ambígua ou não clara.
Funcionário Projeto
gerencia
- data início
1 gerencia 0..*
Papéis
Papéis Papéis
Empregado
- nss: key - data nasc - pnome - mnome - snome - sexo - endereçco - salario
+supervisionado 0..* supervisiona
+supervisor 1
49/62
Associações Evoluem
• Especialização
• Composição
• Agregação
50/62
Subclasses
Superclass e
Secretário Gerente Engenheiro Técnico
Funcionário
- id: key
Abstração de Especialização
Abstração de Especialização
Disjuntos
Emprego
- cpf: key
Engenheiro
- tipo
Secretária
- toques
Técnico
- grau
Gerente Assalariado
- salário
Horista
- valorHora
Projeto
- id: key
Gerencia
- dataInício
Sindicato
- sigla: key
52/62
Abstração de Especialização
• Herança Múltipla: Subclasses podem ter mais de uma
classe base.
Herança Múltipla
Atributos de EMPREGADO são herdados apenas uma vez
EMPREGADO
SECRETÁRIA TÉCNICO
ENGENHEIRO
TipoTrabalho {Parcial}
GERENTE
GERENTE-ENGENHARIA
Recomendação:
53/62
Entidade-Fraca
• Relacionamento de posse (tem, possui, é parte de)
Pessoa
«chave»
- cpf
Nariz Braço Veículo
«chave»
- chassis
1
lado
1 0..*
Entidades-Fracas
Não tem
Atributo Qualificador pois uma pessoa tem
apenas UM nariz!
Tem Atributo Qualificador (
chave parcial) pois uma pessoa
tem DOIS narizes!
Não deve ter
Atributo Qualificador pois
Veículo não é uma
entidade-fraca!
Proprietário da Identificação de Nariz e Braço
A multiplicidade seria 2, mas como foi colocado o atributo
54/62
Entidade-Fraca Tipo de Entidade-Fraca
• Entidade-fraca com dois Proprietários da
Identificação
Candidato
- nome key
Empresa
- nome: key
Entrevista realiza
Emprego data
0..*
1 1
0..1 gera
0..1 - nro: key
Identificador da Entidade-Fraca
Entidade-Fraca
55/62
Entidade-Fraca
• Outras formas de representação :
– DER-X – DER Nome Nome REALIZA Data EMPREGO ENTREVISTA RESULTA
CANDIDATO N N EMPRESA
Nro
56/62
Exemplo de um Esquema Conceitual
Empregado
- nss: key - data nasc - pnome - mnome - snome - sexo - endereçco - salario
Departamento
- numero: key - nome: key
-/ numeroempregados
Projeto
- nome: key - numero: key
Gerencia
- datainic
Localização
- local
Trabalha-em
- horas
Dependente
- sexo - data nasc - tipo relacao
1 0..* 1 C o n tr o la 0..* nome 0..* 1..* 1..* +gerente 1 +gerenciado 0..1 +supervisionado 0..* supervisiona +supervisor 1 4..* trabalha-para 1
57/62
Passos para realizar a modelagem conceitual
• Descubra os potenciais tipos de entidades.
– Possuem mais de uma entidade com a mesma estrutura e semântica.
– Representam as dados que o sistema precisa guardar para depois recuperar.
• Crie os tipos de relacionamentos de generalização.
– Nem sempre eles existem.
• Defina todos os atributos.
– Indique aqueles que forem compostos, multivalorados, derivados e chaves.
• Defina os tipos de entidade-fraca.
– São os tipos de entidade que não possuem atributos-chaves.
– Estabeleça o tipo de relacionamento de identificação com o tipo de entidade
proprietárias da identificação.
– Se necessário, defina a chave-parcial.
• Defina os tipos de relacionamentos necessários para recuperar os
dados desejados.
– Indique as restrições: razões de cardinalidade e de participação.
– Indique, quando necessário, a restrição estrutural.
– Indique os atributos dos tipos de relacionamentos.
58/62
Como encontrar as Classes
• Uma federação de futebol pretende desenvolver um sistema
59/62
Modelo ER
Referências Bibliográficas
1. Batini, C.; Ceri, S.; Navathe, S. Conceptual Database Design: An Entity-Relationship Approach. Benjamin/Cummings, Redwood City, Calif., 1992.
2. Date, C.J., Introdução a Sistemas de Banco de Dados, tradução da 8 edição americana, Campus, 2004.
3. Elmasri, R.; Navathe, S.B. Fundamentals of Database Systems, 4th ed. Addison-Wesley, Reading, Mass., 2003.
Modelo ER
Referências Bibliográficas
5. Heuser, C.A., Projeto de Banco de Dados., Sagra - Luzzatto, 1 edição, 1998.
6. Korth, H.; Silberschatz, A. Sistemas de Bancos de Dados. 3a. Edição, Makron Books, 1998.
7. Ramakrishnan, R.; Gehrke, J., Database Management Systems, 2 nd ed., McGraw-Hill, 2000.
8. Teorey, T.; Lightstone, S.; Nadeau, T. Projeto e modelagem de bancos de dados. Editora Campus, 2007.
Referências Web
1. Takai, O.K; Italiano, I.C.; Ferreira, J.E. Introdução a Banco de Dados. Apostila disponível no site: