Baixe o app para aproveitar ainda mais
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
Compartilhar