GBC043 - Sistemas de Banco de Dados Mapeamento ER, EER para o Relacional Ilmério Reis da Silva ilmerio@facom.ufu.br www.facom.ufu.br/~ilmerio/sbd /BCC
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) FKNUMERO_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 agrupase 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,a1, a2,..., an} e {S1, S2,..., Sm} 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,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 {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
Uma introdução ao Projeto Físico-PF Def. o projeto físico é a especificação da estrutura interna de armazenamento dos dados do banco, considerando aspectos de desempenho e alocação de espaço em disco. Página 28
PF Principais tarefas Escolher SGBD Definir índices Definir tamanhos de bloco (páginas) Definir localização física de arquivos e índices Página 29
PF Principais critérios Espaço disponível Frequência de execução de consultas Frequência de transações de atualização do BD Pico de transações correntes Restrições de integridade de atributos Página 30
EER2R e Projeto Físico : Exercício em sala Mapeamento do EER do SEE para o modelo relacional Definição dos principais índices Implementação no SGBD PostgreSQL (laboratório) Página 31
EER - SEE EER2R e Projeto Físico : Exercício em sala Página 32
Bibliografia/Exercícios Projeto Lógico [EN] Capítulo 9 [RG] Capítulo 3 [SK] Capítulo 7 Página 33
FIM EER2R FIM EER2R Página 34