Buscar

Aula 6 - Modelo Relacional (Mapeamento Relacional) - PARTE 2

Prévia do material em texto

Banco de Dados
Mapeamento ER, EER para o Relacional 
Projeto Lógico 
Def. o projeto lógico é a especificação detalhada da 
estrutura do banco de dados em um modelo que possa ser 
implementado por um gerenciador de banco de dados. 
Uma estratégia de projeto lógico é o mapeamento de um 
modelo conceitual para o modelo relacional. 
Modelo Conceitual = ER ou EER 
==> 
Modelo Implementável = R 
Página 2 
Mapeamento do ER e EER para Relacional 
• Mapeamento de tipos de entidade regular 
• Mapeamento de tipos de entidade fraca 
• Mapeamento de tipos de relacionamento 1:1 
• Mapeamento de tipos de relacionamento 1:N 
• Mapeamento de tipos de relacionamento M:N 
• Mapeamento de atributos multivalorados e compostos; 
• Mapeamento de tipos de relacionamento M:N 
• Mapeamento de tipos de relacionamento de grau > 2 
• Mapeamento de Generalização/Especialização 
• Mapeamento de subclasses compartilhadas ou seja, 
herança múltipla 
• Mapeamento de categorias ou seja, tipos de união 
Página 3 
ER2R- Mapeamento de tipo entidade regular 
Cada entidade regular é mapeada em uma relação 
EMPREGADO(CPF_empregado, nome_empregado) 
OBS: 
- defina a chave primária: 
PK(Empregado)=CPF_empregado; 
- mantenha informações de chave secundária, se houver 
Página 4 
ER2R- Mapeamento de tipo entidade fraca 
Cada entidade fraca é mapeada em uma relação que inclui 
em seus atributos a chave primária de sua entidade forte 
DEPENDENTE(CPF_empregado, nome_dependente, sexo_dependente) 
OBS: - defina uma chave estrangeira na relação relacionada à chave 
primária de sua entidade forte 
FKCPF_empregado (DEPENDENTE)=PK(EMPREGADO) 
- a chave primária da relação será composta de sua chave local e 
da chave primária de sua entidade forte 
PK(DEPENDENTE)=(CPF_empregado, nome_dependente) 
Página 5 
ER2R-Relacionamentos 1:1 com chaves iguais e 
relacionamento total em E1 e E2 
Agrupa-se todos os atributos em uma relação 
ClienteCarregamento(Codigo_Cliente, Nome, Endereço) 
Página 6 
ER2R-Relacionamentos 1:1 com chaves 
diferentes e relacionamento total/parcial 
Cria-se duas relações e agrupa-se os atributos da entidade com 
participação total com a chave da entidade com participação 
parcial 
Cliente(Nome, Codigo Cliente) 
Cartao_Credito(Nro Cartao, Limite, Codigo Cliente) 
FKCodigo_Cliente (Cartao_Credito)=PK(Cliente) 
OBS: opcionalmente pode-se omitir o Codigo_Cliente em 
Cartao_Credito e criar uma terceira relação com a duas chaves, 
principalmente quando não houver participação total. 
Página 7 
ER2R-Relacionamentos 1:1 com chaves diferentes e 
relacionamento parcial/parcial 
Sem participação total, agrupa-se os atributos do 
relacionamento com as chaves das entidades em uma 
terceira relação 
HOMEM(CPF HOMEM, NOME_HOMEM) 
MULHER(CPF MULHER, NOME_MULHER) 
CASAMENTO(CPF HOMEM, CPF MULHER, DATA) 
FKCPF_HOMEM (CASAMENTO)=PK(HOMEM) 
FKCPF_MULHER (CASAMENTO)=PK(MULHER) 
Página 8 
ER2R-Relacionamentos 1:N 
Agrupa-se a chave da entidade com cardinalidade 1 aos 
atributos da entidade com cardinalidade N 
ESTADO(SIGLA, NOME) 
CIDADE(CODIGO, NOME, POPULAÇÃO, SIGLA_ESTADO) 
FKSIGLA_ESTADO (CIDADE)=PK(ESTADO) 
Página 9 
ER2R-Relacionamentos M:N 
Agrupa-se os atributos do relacionamento com as chaves das 
entidades participantes 
ALUNO(MATRICULA, NOME) 
DISCIPLINA(CODIGO, NOME) 
CURRICULO(MATRICULA, CODIGO_DISCIPLINA, ANO, SEMESTRE, 
NOTA) 
FKMATRICULA (CURRICULO)=PK(ALUNO) 
FKCODIGO_DISCIPLINA (CURRICULO)=PK(DISCIPLINA) 
Página 10 
ER2R - Atributos multivalorados e entidades 
Cria-se uma nova relação com o atributo multivalorado e a 
chave da entidade original 
DEPARTAMENTO(NUMERO, NOME) 
LOCALIZAÇÕES(NUMERO_DEPTO, LOCALIZACAO) 
FK NUMERO_DEPTO (LOCALIZAÇÕES)=PK(DEPARTAMENTO) 
Página 11 
ER2R - Eliminação de atributos compostos 
Duas alternativas com perda mostradas abaixo ou uma 
terceira, criando uma nova relação “pessoa_endereco” 
Observe a mudança de notação no ER em relação aos slides 
anteriores 
Página 12 
ER2R-Relacionamentos de grau maior que 2 
Agrupa-se a os atributos do relacionamento com as chaves 
das entidades participantes 
Página 13 
ER2R-Autorelacionamentos 
Se for M:N cria-se uma nova relação, caso contrário agrupa-
se mais uma chave da relação 
Página 14 
EER2R-Generalização/Especialização:Opções 
Especialização de uma superclasse C={k, a1 , a2 , ..., an} com m 
subclasses {S1 , S2 , ..., Sm } pode ser mapeada de quatro 
formas, aqui chamadas de: 
• Opção A: uma tabela para cada entidade, inclusive C 
• Opção B: uma tabela para cada entidade Si fundida com C 
• Opção C: fusão de todas as entidades com um atributo tipo 
• Opção D: fusão de todas as entidades com m atributos 
tipo 
Página 15 
EER2R-Generalização/Especialização:Opção A 
Opção A: uma tabela para cada entidade, inclusive C 
À partir de C={k,a 1 , a 2 , ..., a n } e {S 1 , S 2 , ..., S m } gerar as 
seguintes relações 
L ={k, a1 , a2 , ..., an} e 
Li ={k} U {atributos específicos de Si} | 1 ≤ i ≤ m 
OBS: aplicável a qualquer tipo de especialização (total ou 
parcial, disjunto ou sobreposta) 
Página 16 
EER2R-Generalização/Especialização: Ex. opção A 
Página 17 
EER2R-Generalização/Especialização:Opção B 
Opção B: uma tabela para cada entidade Si fundida com C 
À partir de C={k, a1 , a2 , ..., an} e {S1 , S2 , ..., Sm } gerar as 
seguintes relações 
Li ={k, a1 , a2 , ..., an} 
U {atributos específicos de Si} | 1 ≤ i ≤ m
OBS: aplicável para especializações totais e disjuntas 
Página 18 
EER2R-Generalização/Especialização: Ex. opção B 
Tonnage 
Página 19 
EER2R-Generalização/Especialização:Opção C 
Opção C: fusão de todas as entidades com um atributo tipo 
À partir de C={k, a1 , a2 , ..., an} e {S1 , S2 , ..., Sm } gerar a 
seguinte relação 
L ={k, a1 , a2 , ..., an} U {atributos específicos de S1 } 
U {atributos específicos de S2 } 
U ... 
U {atributos específicos de Sm } U {t} 
OBS: t é chamado atributo discriminador e é utilizado para 
especializações disjuntas 
Página 20 
EER2R-Generalização/Especialização:Ex. Opção C 
EngType 
Página 21 
EER2R-Generalização/Especialização:Opção D 
Opção D: fusão de todas as entidades com m atributos tipo 
À partir de C={k,a 1 , a 2 , ..., a n } e {S 1 , S 2 , ..., S m } gerar a 
seguinte relação 
L ={k, a1 , a2 , ..., an} U {atributos específicos de S1 } 
U {atributos específicos de S2 } 
U ... 
U {atributos específicos de S m } 
U {t1 , t2 , ..., tn } onde, 
ti é um valor booleano correspondente a cada subclasse 
Página 22 
EER2R-Generalização/Especialização:Ex. Opção D 
Página 23 
EER2R - Herança Múltipla – Exemplo de EER 
Página 24 
EER2R - Herança Múltipla – Relações Geradas 
Manter o mesmo atributo chave em todas as relações, usando 
qualquer opção de mapeamento para especializações 
Course 
Major 
Página 25 
EER2R – União - Diagrama 
Página 26 
EER2R–Cateroria (Tipo União) - Relações Geradas 
Quando as superclasses têm chaves diferentes, criar uma chave 
substituta e inserí-la em cada entidade: Ownerid 
Ownerid 
CYear 
Página 27

Continue navegando