Upload
internet
View
106
Download
0
Embed Size (px)
Citation preview
UERJ - Agosto 2000
© Oscar Luiz Monteiro de Farias 1
Bancos de Dados
Mestrado em Engenharia de Computação área de concentração Geomática
UERJ - Agosto 2000
© Oscar Luiz Monteiro de Farias 2
Modelagem de Dados
O Modelo Entidade-Relacionamento (ER)
Peter P. Chen, “The Entity-Relationship Model:
Toward the unified view of data”, março de 1996.
UERJ - Agosto 2000
© Oscar Luiz Monteiro de Farias 3
• 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)
Uso de MCDs no Projeto de BDs
UERJ - Agosto 2000
© Oscar Luiz Monteiro de Farias 4
UERJ - Agosto 2000
© Oscar Luiz Monteiro de Farias 5
O Modelo ER...
• Tipos-Entidades (Classes)
• Relacionamentos
• Atributos (características dos objetos)
UERJ - Agosto 2000
© Oscar Luiz Monteiro de Farias 6
• Tpos-Entidades (Classes): Conjunto de objetos do mesmo “tipo”.– as coisas tangíveis – as funções exercidas por elementos– eventos ou ocorrências– interações– especificações
O Modelo ER...
UERJ - Agosto 2000
© Oscar Luiz Monteiro de Farias 7
• 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:– regras que as definem (e as exceções)
– exemplos ilustrativos
– correlação entre conceitos
– outras informações que facilitem o entendimento
O Modelo ER...
UERJ - Agosto 2000
© Oscar Luiz Monteiro de Farias 8
• 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?
O Modelo ER...
UERJ - Agosto 2000
© Oscar Luiz Monteiro de Farias 9
• Entidade (tipo-entidade/classe) - define um conjunto de objetos que possuem os mesmos atributos
• Cada 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 conjunto-entidade (extensão)
O Modelo ER...
UERJ - Agosto 2000
© Oscar Luiz Monteiro de Farias 10
• 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)
O Modelo ER...
UERJ - Agosto 2000
© Oscar Luiz Monteiro de Farias 11
O Modelo ER...
Nome da Entidade
Atributo 1 Atributo 2 Atributo n
Atributo 2.1 Atributo 2.2 Atributo 2.m
Atributo n-1
Atributo multi-valorado
Atributo composto
UERJ - Agosto 2000
© Oscar Luiz Monteiro de Farias 12
• O Banco de Dados (bd) da empresa armazena informações sobre os seus empregados, departamentos e projetos.
Banco de Dados da empresa X...
UERJ - Agosto 2000
© Oscar Luiz Monteiro de Farias 13
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
Banco de Dados da empresa X...
UERJ - Agosto 2000
© Oscar Luiz Monteiro de Farias 14
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
Banco de Dados da empresa X...
UERJ - Agosto 2000
© Oscar Luiz Monteiro de Farias 15
• 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
Banco de Dados da empresa X...Projeto Conceitual Inicial
UERJ - Agosto 2000
© Oscar Luiz Monteiro de Farias 16
UERJ - Agosto 2000
© Oscar Luiz Monteiro de Farias 17
• Atributos chaves de um tipo-entidade (chaves): cada tipo-entidade (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.
O Modelo ER...
UERJ - Agosto 2000
© Oscar Luiz Monteiro de Farias 18
• 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.
O Modelo ER...
UERJ - Agosto 2000
© Oscar Luiz Monteiro de Farias 19
A definição acima cobre os atributos mono-valorados e multi-valorados 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.
O Modelo ER...
UERJ - Agosto 2000
© Oscar Luiz Monteiro de Farias 20
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 “{}”.
O Modelo ER...
UERJ - Agosto 2000
© Oscar Luiz Monteiro de Farias 21
• 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 entidade-tipo (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))}
O Modelo ER...
UERJ - Agosto 2000
© Oscar Luiz Monteiro de Farias 22
• Um Relacionamento R entre entre n tipos-entidades (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.
O Modelo ER...
UERJ - Agosto 2000
© Oscar Luiz Monteiro de Farias 23
• 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)
O Modelo ER...
UERJ - Agosto 2000
© Oscar Luiz Monteiro de Farias 24
Exemplo de Relacionamento
.
.
.
.
.
.
e1
e2
e3
e4
e5
e6
e7
r1
r2
r3
r4
r5
r6
r7
...
j1
j2
j3
EMPLOYEE DEPARTMENT
WORKS_FOR
UERJ - Agosto 2000
© Oscar Luiz Monteiro de Farias 25
Relacionamento Ternário
.
.
.
.
.
.
s1
s2
r1
r2
r3
r4
r5
r6
r7
...
j1
j2
j3
SUPPLIERPROJECT
SUPPLY
.
.
.
p1
p3
p2
PART
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.
UERJ - Agosto 2000
© Oscar Luiz Monteiro de Farias 26
Relacionamentos...
• Grau de um Relacionamento: é o número de tipos-entidades (classes) que participam do relacionamento.
• Relacionamentos como atributos (R=WORK_FOR)
i) considerar um atributo department para o tipo-entidade EMPLOYEE
ii) considerar um atributo multi-valorado employees no tipo-entidade DEPARTMENT
UERJ - Agosto 2000
© Oscar Luiz Monteiro de Farias 27
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 - Agosto 2000
© Oscar Luiz Monteiro de Farias 28
Relacionamento recursivo
r1
r2
r3
r4
r5
r6
r7
...
e1
e2
e3
e4
e5
e6
e7 ...
EMPLOYEE SUPERVISIONPapéis:supervisiona - vermelhoé supervisionado - verde
UERJ - Agosto 2000
© Oscar Luiz Monteiro de Farias 29
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 - Agosto 2000
© Oscar Luiz Monteiro de Farias 30
• 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
Restrições em Relacionamentos...
UERJ - Agosto 2000
© Oscar Luiz Monteiro de Farias 31
Atributos de Relacionamentos...
• Relacionamentos podem, à semelhança dos tipos-entidades, 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 - Agosto 2000
© Oscar Luiz Monteiro de Farias 32
• 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
Atributos de Relacionamentos...
UERJ - Agosto 2000
© Oscar Luiz Monteiro de Farias 33
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 tipo-entidade (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 tipo-entidade fraco (ex.: carteira de motorista)
UERJ - Agosto 2000
© Oscar Luiz Monteiro de Farias 34
• 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.
Tipos-entidades fracos (weak entity types)
UERJ - Agosto 2000
© Oscar Luiz Monteiro de Farias 35
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 - Agosto 2000
© Oscar Luiz Monteiro de Farias 36
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.
Refinando o Modelo ER p/ a empresa X...
UERJ - Agosto 2000
© Oscar Luiz Monteiro de Farias 37
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 - Agosto 2000
© Oscar Luiz Monteiro de Farias 38
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 - Agosto 2000
© Oscar Luiz Monteiro de Farias 39
UERJ - Agosto 2000
© Oscar Luiz Monteiro de Farias 40
UERJ - Agosto 2000
© Oscar Luiz Monteiro de Farias 41
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 - Agosto 2000
© Oscar Luiz Monteiro de Farias 42
UERJ - Agosto 2000
© Oscar Luiz Monteiro de Farias 43
Relacionamento Binário x Ternário
UERJ - Agosto 2000
© Oscar Luiz Monteiro de Farias 44
Relacionamento de identidade ternário