Bancos de Dados
Mestrado em Engenharia de Computação
área de concentração Geomática
UERJ
© Oscar Luiz Monteiro de Farias
1
Modelagem de Dados
O Modelo Entidade-Relacionamento (ER)
Peter P. Chen, “The Entity-Relationship Model:
Toward the unified view of data”, março de
XXX?
UERJ
© Oscar Luiz Monteiro de Farias
2
Uso de MCDs no Projeto de BDs
• PASSO 1: Análise e coleta de requisitos
• PASSO 2: Projeto conceitual da Base de
Dados
• PASSO 3: Mapeamento Lógico da Base de
Dados (Mapeamento do Modelo de Dados)
• PASSO 4: Projeto Físico do Banco de
Dados (MFD)
UERJ
© Oscar Luiz Monteiro de Farias
3
UERJ
© Oscar Luiz Monteiro de Farias
4
O Modelo ER...
• Tipos-Entidades (Classes)
• Relacionamentos
• Atributos (características dos objetos)
UERJ
© Oscar Luiz Monteiro de Farias
5
O Modelo ER...
• Tipos-Entidades (Classes): Conjunto de
objetos do mesmo “tipo”.
–
–
–
–
–
UERJ
as coisas tangíveis
as funções exercidas por elementos
eventos ou ocorrências
interações
especificações
© Oscar Luiz Monteiro de Farias
6
O Modelo ER...
• Os tipos-entidades (classes de objetos) modelados devem
ter o seu significado esclarecido em um Dicionário de
Dados (DD).
• Modelo algum é suficientemente claro se não for
acompanhado de uma definição formal de seus elementos
(dicionário de dados ou similar).
• Conceituar as entidades mostrando:
–
–
–
–
UERJ
regras que as definem (e as exceções)
exemplos ilustrativos
correlação entre conceitos
outras informações que facilitem o entendimento
© Oscar Luiz Monteiro de Farias
7
O Modelo ER...
• As informações sobre as entidades relacionadas
em um DD devem ajudar a responder as
perguntas:
–
–
–
–
–
–
O que é a entidade?
O que faz?
Para que serve?
O que engloba esta entidade/classe?
O que está excluído desta classe?
Quando alguém (algo) passa a ser, ou deixa de ser, um
elemento deste tipo?
– Sua permanência nesta categoria é imutável?
UERJ
© Oscar Luiz Monteiro de Farias
8
O Modelo ER...
• Tipo-entidade/classe - define um conjunto de objetos que
possuem os mesmos atributos
• Cada tipo-entidade no banco de dados é descrita por um
nome e por uma lista de atributos
• Um tipo-entidade (classe) descreve o schema ou intensão
para um conjunto de objetos que partilham a mesma
estrutura.
• Os objetos individuais de um determinado tipo-entidade
(classe) são agrupados em uma coleção ou conjuntoentidade (extensão)
UERJ
© Oscar Luiz Monteiro de Farias
9
O Modelo ER...
• Tipos de atributos
– simples x compostos (Endereço = rua + n0 + ap.
+ bairro + cidade + Estado + CEP)
– monovalorados x multi-valorados (cores de um
veículo)
– armazenados x derivados
• Valores nulos
– não aplicáveis
– desconhecidos (is missing x not known)
UERJ
© Oscar Luiz Monteiro de Farias
10
O Modelo ER...
Nome do tipo-entidade
/classe
Atributo 1
Atributo 2
Atributo n-1
Atributo n
Atributo composto
Atributo multi-valorado
Atributo 2.1
UERJ
Atributo 2.2
Atributo 2.m
© Oscar Luiz Monteiro de Farias
11
Banco de Dados da empresa X...
• O Banco de Dados (bd) da empresa
armazena informações sobre os seus
empregados, departamentos e projetos.
UERJ
© Oscar Luiz Monteiro de Farias
12
Banco de Dados da empresa X...
 A Cia é organizada em departamentos. Cada depto tem um
nome único, n0 único e um empregado especial que o
gerencia. Registra-se a data de início em que este
empregado especial começou a gerenciar o depto. Um depto
pode ter várias localizações.
 Um depto controla um dado n0 de projetos, cada um dos
quais com um nome único, n0 único e apenas uma
localização
UERJ
© Oscar Luiz Monteiro de Farias
13
Banco de Dados da empresa X...
 São armazenados para cada empregado: o seu nome, n0 de
seguridade social, endereço, salário, sexo e data de
nascimento. Um empregado é vinculado a um só depto, mas
pode trabalhar em vários projetos, os quais não são
necessariamente controlados pelo mesmo depto. São
registradas as horas por semana que um empregado trabalha
em cada projeto. Assinala-se ainda, para cada empregado, o
seu supervisor direto.
 Para fins de seguro, são registrados os dependentes de cada
empregado. São armazenados: nome, sexo, data de
nascimento e a relação com o empregado
UERJ
© Oscar Luiz Monteiro de Farias
14
Banco de Dados da empresa X...
Projeto Conceitual Inicial
• 4 tipos-entidades (classes) foram identificados:
• DEPARTMENT - atributos: Name, Number, Location
(multivalorado) , Manager e ManagerStartDate.
• PROJECT - atributos: Name, Number, Location e
Controlling Department.
• EMPLOYEE - atributos: Name, SSN, Sex, Address, Salary,
BirthDate, Department e Supervisor. Name e Address
podem ser atributos compostos (deve-se entrevistar os
usuários para ver se eles irão se referir aos componentes
individuais).
• DEPENDENT - atributos: Employee, DependentName,
Sex, BirthDate e Relationship
UERJ
© Oscar Luiz Monteiro de Farias
15
UERJ
© Oscar Luiz Monteiro de Farias
16
O Modelo ER...
• Atributos chaves de um tipo-entidade (chaves): cada tipoentidade (classe) usualmente possui um atributo cujo valor
é distinto para cada entidade (objeto) individual daquele
tipo-entidade (classe).
• O valor de uma chave é usado para identificar
unívocamente um objeto.
• Um conjunto de atributos (concatenados) que identificam
unívocamente um objeto é também uma chave.
• No diagrama do modelo ER cada atributo chave possui o
seu nome sublinhado.
• Alguns tipo-entidades (classes) possuem mais de uma
chave.
UERJ
© Oscar Luiz Monteiro de Farias
17
O Modelo ER...
• Cada atributo simples de um tipo-entidade está associado
com um domínio, o qual especifica o conjunto de valores
que podem ser assumidos pelo correspondente atributo das
entidades individuais (objetos).
• Os domínios não aparecem nos diagramas ER
• Um atributo A de um tipo-entidade (classe) E cujo domínio
é V pode ser definido como uma função de E no conjunto
potência de V:
A: E
P(V)
P(V) é o conjunto de todos os subconjuntos de V.
• A(e) = valor de um atributo de uma entidade (objeto) e.
UERJ
© Oscar Luiz Monteiro de Farias
18
O Modelo ER...
•
•
•
•
•
UERJ
A definição acima cobre os atributos mono-valorados e multivalorados bem como os NULLs.
NULL - conjunto vazio
atributos mono-valorados - A(e) é restrito a um conjunto com um único
elemento.
Atributos multi-valorados - A(e) pode ter vários elementos
Atributos compostos - o domínio V é o produto cartesiano de P(V1),
P(V2), ... P(Vn), onde
V1, V2, ..., Vn são os domínios dos componentes simples de atributos
que formam A, i. e.,
V = P(V1) x P(V2) x ... X P(Vn)
Os atributos compostos e multi-valorados podem ser aninhados em
modos arbitrários.
© Oscar Luiz Monteiro de Farias
19
O Modelo ER...
Notação:
aninhamentos arbitrários podem ser representados
grupando-se os componentes de um atributo
composto entre parênteses “( )” e separando-se os
componentes por vírgula “,”;
mostrando-se os atributos multi-valorados entre
chaves “{}”.
UERJ
© Oscar Luiz Monteiro de Farias
20
O Modelo ER...
• Exemplo: uma pessoa pode ter mais que uma
residência e cada uma dessas residências pode ter
múltiplos telefones.
O atributo Telefone_Residencial para uma entidadetipo (classe) Pessoa pode ser especificado como:
{Telefone_Residencial ({Telefone
(Código_de_Área, n0_do_telefone)}, Endereço
(Endereço_da_rua (Rua, N0, Apartamento), Cidade,
Estado, CEP))}
UERJ
© Oscar Luiz Monteiro de Farias
21
O Modelo ER...
• Um Relacionamento R entre entre n tiposentidades (classes) E1, E2, ..., En define um
conjunto de associações entre entidades (objetos)
destes tipos (classes).
• R é um conjunto de instâncias de relacionamento ri,
onde cada ri associa n entidades (e1, e2, ..., en) e
cada entidade (objeto) ej em ri é um membro do
tipo-entidade (classe) Ej, 1  j  n.
UERJ
© Oscar Luiz Monteiro de Farias
22
O Modelo ER...
• Um relacionamento R pode ser visto como uma
relação matemática em E1, E2, ..., En.
• Pode também ser pensado como um subconjunto do
produto cartesiano E1 x E2 x ... x En.
• Cada um dos tipos-entidades (classes) E1, E2, ..., En
participam no relacionamento R e cada uma das
entidades (objetos) e1, e2, ..., en participam na
instância do relacionamento ri= (e1, e2, ..., en)
UERJ
© Oscar Luiz Monteiro de Farias
23
Exemplo de Relacionamento
WORKS_FOR
EMPLOYEE
UERJ
DEPARTMENT
r2
e1
e2
e3
e4
e5
e6
e7
r1
j1
r3
j2
r4
r5
.
.
.
r6
j3
.
.
.
r7
...
© Oscar Luiz Monteiro de Farias
24
Relacionamento Ternário
SUPPLY
SUPPLIER
r1
s1
PROJECT
r2
s2
.
.
.
j1
r3
j2
r4
r5
PART
r6
j3
.
.
.
p1
p2
p3
UERJ
.
.
.
r7
...
Cada instância do relacionamento ri associa 3 entidades (objetos): um fornecedor s,
uma peça p e um projeto j, sempre que s fornece a peça p para o projeto j.
© Oscar Luiz Monteiro de Farias
25
Relacionamentos...
• Grau de um Relacionamento: é o número de tiposentidades (classes) que participam do
relacionamento.
• Relacionamentos como atributos (R=WORK_FOR)
i) considerar um atributo department para o tipoentidade EMPLOYEE
ii) considerar um atributo multi-valorado
employees no tipo-entidade DEPARTMENT
UERJ
© Oscar Luiz Monteiro de Farias
26
Relacionamentos...
• Papel (role name): o papel que cada entidade
participante (objeto) de um tipo-entidade (classe)
desempenha em uma relação de instância .
• Relacionamentos recursivos: ocorre quando o
mesmo tipo-entidade (classe) participa mais de
uma vez em um mesmo relacionamento. Neste
caso o nome dos papéis é essencial para distinguir
o significado de cada participação.
UERJ
© Oscar Luiz Monteiro de Farias
27
Relacionamento recursivo
EMPLOYEE
Papéis:
supervisiona - vermelho
é supervisionado - verde
e1
r3
e3
r4
e4
r5
e5
r6
e6
UERJ
r1
r2
e2
e7
SUPERVISION
r7
...
...
© Oscar Luiz Monteiro de Farias
28
Restrições em Relacionamentos...
• Razão de Cardinalidade (cardinality radio): especifica o n0
de instâncias em um relacionamento de que uma dada
entidade pode participar.
Ex.: O relacionamento binário WORKS_FOR
(DEPARTMENT:EMPLOYEE) possui a razão de
cardinalidade 1:N, significando que cada departamento
pode estar relacionado com vários empregados, mas que
um empregado pode estar relacionado com apenas um
departamento.
Razões de cardinalidade comuns: 1:1; 1:N e M:N
UERJ
© Oscar Luiz Monteiro de Farias
29
Restrições em Relacionamentos...
• Participação parcial - quando não necessariamente todos os
elementos de um conjunto participam de uma relação.
• Participação total (dependência existencial) - quando todos
os elementos de um conjunto participam de uma relação.
• Participação total é indicada por uma linha dupla e
participação parcial por uma linha simples
UERJ
© Oscar Luiz Monteiro de Farias
30
Atributos de Relacionamentos...
• Relacionamentos podem, à semelhança dos tiposentidades, possuir atributos.
• Exs.: i) Nos de horas por semana que um empregado trabalha
em um projeto;
ii) data na qual um gerente começou a gerenciar um
depto.
• Atributos de relacionamentos 1:1 e 1:N podem
migrar para uma das entidades participantes.
– Nos relacionamentos 1:1 para qualquer dos tipos-entidades
– Nos relacionamentos 1:N apenas para o tipo-entidade do
lado N da relação
UERJ
© Oscar Luiz Monteiro de Farias
31
Atributos de Relacionamentos...
• Para relacionamentos de grau M:N alguns
atributos só podem ser determinados pela
combinação das entidades participantes em uma
determinada instância do relacionamento e não
apenas para uma delas isoladamente. São,
obrigatoriamente, atributos do relacionamento.
• Ex.: O atributo Hours do relacionamento M:N
WORKS_ON
UERJ
© Oscar Luiz Monteiro de Farias
32
Tipos-entidades fracos (weak entity types)...
• Tratam-se de tipos-entidades (classes) que não possuem
atributos chaves
• Entidades que pertençam a tipos-entidades fracos são
identificadas por estarem relacionadas (identifying
relationship) a entidades específicas de um outro tipoentidade (identifying owner) em combinação com alguns de
seus próprios valores de atributos.
• Um tipo-entidade fraco sempre possui uma restrição de
participação total com respeito ao relacionamento de
identificação (identifying relationship).
• Nem toda dependência existencial resulta em uma tipoentidade fraco (ex.: carteira de motorista)
UERJ
© Oscar Luiz Monteiro de Farias
33
Tipos-entidades fracos (weak entity types)
• Um tipo-entidade fraco normalmente tem uma chave
parcial, que é um conjunto de atributos que podem
univocamente identificar entidades fracas
relacionadas à mesma entidade possuidora (owner).
• Nos diagramas ER uma entidade fraca é
representada por um retângulo em linhas duplas.
• Tipos-entidadades fracos às vezes podem ser
representados por atributos multi-valorados
compostos.
UERJ
© Oscar Luiz Monteiro de Farias
34
Refinando o Modelo ER p/ a empresa X...
 MANAGES - um relacionamento 1:1 entre EMPLOYEE e
DEPARTMENT.
A participação de EMPLOYEE é parcial; a de DEPARTMENT é
total.
O atributo StartDate é incluído no relacionamento.
 WORKS_FOR é um relacionamento 1:N entre DEPARTMENT e
EMPLOYEE.
Ambas as participações são totais.
 CONTROLS é um relacionamento 1:N entre DEPARTMENT e
PROJECT.
A participação de PROJECT é total, a de DEPARTMENT, parcial.
UERJ
© Oscar Luiz Monteiro de Farias
35
Refinando o Modelo ER p/ a empresa X...
 SUPERVISION é um relacionamento 1:N entre EMPLOYEE (supervisor) e
EMPLOYEE (supervisionado).
Ambas as participações são parciais, o que indica que nem todo empregado é
um supervisor e nem todo empregado possui um supervisor.
 WORKS_ON é um relacionamento M:N entre EMPLOYEE e PROJECT.
Ambas as participações são totais.
O atributo Hours indica o número de horas em que um dado empregado
trabalha em determinado projeto.
 DEPENDENTS_OF é um relacionamento 1:N entre EMPLOYEE e
DEPENDENT.
DEPENDENTS_OF é um relacionamento de identificação.
A participação de EMPLOYEE é parcial, a de DEPENDENT é total.
UERJ
© Oscar Luiz Monteiro de Farias
36
Relacionamentos: Notações no Modelo ER
 A cardinalidade do relacionamento de cada relacionamento binário
é representado anexando-se 1, M ou N na linha que conecta o
símbolo da entidade respectiva ao relacionamento.
Linha simples: participação parcial,
Linha dupla: participação total.
 Associa um par de números inteiros (min, max) com cada
participação do tipo-entidade E em um relacionamento R, onde 0 
min  max e max  1.
Para cada entidade e em E, e deve participar com no mínimo min e
no máximo max instâncias de relacionamento em R. min=0
implica participação parcial e min > 0 participação total.
UERJ
© Oscar Luiz Monteiro de Farias
37
Nomeando as construções do esquema
•
•
•
•
•
•
Usar nomes com alto conteúdo semântico
Usar nomes no singular para os tipos-entidades
Entidades e Relacionamentos em maiúsculas
Atributos iniciam-se com letra maiúscula
Nomes de papéis em minúsculas
Usar nomes que correspondam à descrição do
mini-mundo
• O diagrama ER deve ser lido da esquerda para a
direita e de cima para baixo
UERJ
© Oscar Luiz Monteiro de Farias
38
UERJ
© Oscar Luiz Monteiro de Farias
39
UERJ
© Oscar Luiz Monteiro de Farias
40
Relacionamentos de grau maior que 2
• Um relacionamento R, de grau N, terá N linhas em
um diagrama ER, cada uma conectando o
Relacionamento a um tipo-entidade.
• Em geral um relacionamento ternário representa
mais informação do que três relacionamentos
binários.
UERJ
© Oscar Luiz Monteiro de Farias
41
UERJ
© Oscar Luiz Monteiro de Farias
42
Relacionamento Binário x Ternário
UERJ
© Oscar Luiz Monteiro de Farias
43
Relacionamento de identidade ternário
UERJ
© Oscar Luiz Monteiro de Farias
44
Download

Bancos de Dados