Projeto de Banco de Dados
Introdução
•
Alguns aspectos podem ser expressos
melhor com extensões do modelo E-R
básico;
•
Para essa finalidade foi criado o modelo
entidade-relacionamento estendido
(modelo EER).
Relacionamento é-um
•
Toda entidade do tipo GERENTE é
também uma entidade do tipo
EMPREGADO, com todos os atributos de
EMPREGADO.
Subclasses e Superclasse
•
Uma classe é um conjunto de entidades;
•
Uma subclasse é uma classe cujas
entidades devem pertencer também a outra
classe (a superclasse);
•
Exemplo:
– SECRETÁRIA EMPREGADO.EMPREGADO SECRETÁRIA TÉCNICO
Subclasses e Superclasse
•
Razões para o uso de subclasses:
–
Alguns atributos só se aplicam a algumas
entidades (da subclasse);
–
Alguns relacionamentos só permitem
participação de entidades que são membros
da subclasse;
–
Selecionar um conjunto de entidades com
uma propriedade comum.
Subclasses e Superclasse
•
Herança de atributos:
–
Uma subclasse herda todos os atributos e
relacionamentos da superclasse;
–
Os atributos da superclasse não precisam ser
definidos na subclasse. Isto torna os
esquemas mais claros.
Especialização e Generalização
•
Uma especialização Z = {S
1, ..., S
n} é um
conjunto de subclasses que têm a mesma
superclasse G; i. e., S
i G para i = 1, ...,n;
•
Temos que G é chamada de uma
Especialização e Generalização
•
Exemplo:
–
Seja Z = {SECRETÁRIA, TÉCNICO} e
G = EMPREGADO:
– Z é especialização de G; – G é generalização de Z. EMPREGADO SECRETÁRIA TÉCNICO É-UM É-UMEspecialização e Generalização
•
Exemplo de representação no DER:
CLIENTE (0,N) código FILIAL (1,1) código nome nome PESSOA FÍSICA PESSOA JURÍDICA tipo de organização CNPJ sexo CPF
Especialização e Generalização
•
Enfoques para a modelagem conceitual:
–
Refinamento conceitual top-down (por
especialização);
–
Síntese conceitual bottom-up (por
generalização).
Especialização e Generalização
•
Especialização disjunta:
–
Nenhuma entidade da superclasse pode
pertencer a mais de uma das subclasses de
mesmo nível;
–
Exemplo:
CLIENTE PESSOA FÍSICA PESSOA JURÍDICA
Especialização e Generalização
• Especialização com sobreposição:
– Entidades da superclasse podem pertencer a mais de uma das subclasses de mesmo nível;
– Exemplo:
– Não recomendada por alguns autores porque não é possível usar o identificador da superclasse na subclasse. (DESCONSIDERADO)
PESSOA
Especialização e Generalização
•
Especialização com sobreposição (cont.):
–
Possível modificação para o exemplo dado:
PESSOA
Especialização e Generalização
•
Especialização total:
–
Toda entidade da superclasse pertence a
alguma subclasse;
–
Exemplo:
CLIENTE PESSOA FÍSICA PESSOA JURÍDICA t
indica que todo cliente é ou pessoa física ou pessoa jurídica
Especialização e Generalização
•
Especialização parcial:
–
Entidades da superclasse podem não possuir
uma subclasse correspondente;
–
Exemplo:
FUNCIONÁRIO
SECRETÁRIO MOTORISTA p
indica que podem existir funcionários
que não são motoristas nem secretários
Agregação
•
Abstração que representa tipos de relacionamento
como tipos de entidade;
•
Exemplo:
– Considere o seguinte DER:
– Como modificá-lo de forma que seja possível saber quais
medicamentos existem e que medicamentos foram prescritos em cada consulta?
Agregação
•
Exemplo (continuação):
–
Uma possível solução:
MÉDICO (0,N) CONSULTA (0,N) PACIENTE
PRESCRIÇÃO
MEDICAMENTO (0,N)
Projeto de Banco de Dados
Considerações sobre
o Modelo ER
Comentários sobre o Modelo ER
• Possui limitações e, por isso, foi proposto o modelo EER;
• Recomenda-se que os profissionais de BD projetem o
esquema usando o modelo de ER, que servirá de base se criar o esquema no modelo relacional;
• É muito importante projetar um “bom” esquema porque o esquema pode ser determinante para um bom desempenho da aplicação;
• Não existe um enfoque cientifico para projetar um bom esquema. Ciência oferece algumas dicas, e o resto é arte.
Projetando um Bom Esquema
•
Aprenda sobre a aplicação:
– Que problemas a aplicação resolve?
– Que perguntas sobre os dados a aplicação precisa responder?
– Quão comum é cada tipo de pergunta?
– Quão rápido precisa cada tipo de pergunta ser respondida?
– Que dados precisa a aplicação para responder estas perguntas?
Projetando um Bom Esquema
•
Projete um esquema preliminar:
– Avalie o desempenho que uma base de dados teria se baseada no esquema preliminar por meio das
suposições sobre a aplicação;
– Também, considere o futuro: quais são as probabilidades de futuras modificações.
•
Melhore o esquema:
– Eliminação de redundância e ganho em desempenho são dois aspectos importantes nesse processo;
– Por isso é desejável que se conheça o
Projeto de Banco de Dados
Mapeamento de Esquema ER
em Esquema Relacional
O Processo de Projeto de
Banco de Dados
MODELAGEM CONCEITUAL MODELAGEM CONCEITUAL PROJETO LÓGICO PROJETO LÓGICO PROJETO FÍSICO PROJETO FÍSICO Requisitos de dados Esquema conceitual Esquema lógico Esquema físico Mapeamento de esquema ER em esquema RelacionalMapeando Esquemas ER em
Esquemas Relacionais
•
Passo 1 – Mapeamento de tipos de entidades
(não fracas):
– Para cada tipo de entidade (não fraca) E, crie uma relação que tenha todos os atributos simples de E. Escolha a chave primária de E.
– Exemplo: CLIENTE CPF nome data de nascimento endereço rua número bairro
Mapeando Esquemas ER em
Esquemas Relacionais
•
Passo 2 – Mapeamento de entidade fraca:
– Para cada entidade fraca F dependente da entidade E, crie uma relação R com todos os atributos simples de F.
– Inclua a chave primária de E como chave estrangeira em F.
– A chave primária de R será a chave parcial de F mais a chave primária de E;
– Exemplo:
EMPREGADO (0,N) (1,1) DEPENDENTE
CPF nome grau de
Mapeando Esquemas ER em
Esquemas Relacionais
• Passo 3 – Mapeamento de Relacionamento Binário 1:1:
– Para cada relacionamento R, binário 1:1, entre as entidades S e T, pode-se escolher:
– (a) Incluir a chave primária de T como chave estrangeira em S, e todos os atributos simples de R tornam-se
atributos de S, ou
– (b) Incluir a chave primária de S como chave estrangeira em T, e todos os atributos simples de R tornam-se
atributos de T.
– Dica: É melhor escolher uma entidade com participação
Mapeando Esquemas ER em
Esquemas Relacionais
•
Passo 3 (continuação):
– Exemplo:EMPREGADO (0,1) GERENCIA (1,1) DEPARTAMENTO data de
início
Mapeando Esquemas ER em
Esquemas Relacionais
•
Passo 3 (continuação):
– No mapeamento de relacionamentos 1:1 é possível juntar as dois tipos de entidade e o tipo de
relacionamento em um único tipo de entidade.
– Isto pode ser apropriado quando ambos os tipos entidade têm participação total e não participam de outros relacionamentos.
Mapeando Esquemas ER em
Esquemas Relacionais
• Passo 4 – Mapeamento de relacionamento binário 1:N:
– Para cada relacionamento R, binário 1:N, entre as entidades S e T,
– Inclui-se a chave primária de S como chave estrangeira em T;
– Todos os atributos simples de R tornam-se atributos de T.
Mapeando Esquemas ER em
Esquemas Relacionais
• Passo 4 (continuação):
– Exemplo:
EMPREGADO (1,1) LOTAÇÃO (0,N) DEPARTAMENTO data de
início
Mapeando Esquemas ER em
Esquemas Relacionais
• Passo 5 – Mapeamento de relacionamento binário N:N:
– Para cada relacionamento R, binário N:N, entre as entidades S e T,
– Cria-se uma nova relação TR para representar o tipo de relacionamento;
– Inclui-se as chaves primárias de S e T como chaves estrangeiras em TR;
– Esses atributos comporão a chave primária de TR;
– Atributos de relacionamentos devem ser incluídos na tabela TR.
• Passo 5 (continuação):
– Exemplo:
Mapeando Esquemas ER em
Esquemas Relacionais
EMPREGADO (0,N) TRABALHA (0,N) PROJETO horas
Mapeando Esquemas ER em
Esquemas Relacionais
•
Passo 6 – Mapeamento de atributo multivalorado:
– Para cada atributo multivalorado A, cria-se uma novarelação R que inclui um atributo correspondente a A e a chave primária K da relação que representa entidade ou relacionamento que tem A como atributo;
– A chave de R é a combinação de A com K;
– Se o atributo multivalorado é composto inclui-se seus componentes simples.
•
Passo 6 (continuação):
– Exemplo:Mapeando Esquemas ER em
Esquemas Relacionais
CLIENTE código nome telefone (0,N)Mapeando Esquemas ER em
Esquemas Relacionais
• Passo 7 – Mapeamento de relacionamento n-ário, onde n 2:
– Para cada relacionamento n-ário R, n 2, entre os tipos de entidade E1, ..., En,
– Cria-se uma nova relação V para representar R;
– Inclui-se as chaves primárias de E1, ..., En como chaves estrangeiras em V, e todos os atributos simples de R tornam-se atributos de V;
– Os atributos que pertencem aos tipos de entidade, cuja cardinalidade indicada ao lado seja no máximo N
(considerando que a cardinalidade utilizada é a que mostra somente o máximo), comporão a chave primária de V.
– Quando o tipo de entidade possui cardinalidade máxima 1, deve-se analisar se seu atributo comporá a chave.
• Passo 7 (continuação): – Exemplo 1:
Mapeando Esquemas ER em
Esquemas Relacionais
quantidade códigoFORNECEDOR N FORNECE N PEÇA
PROJETO N
código
• Passo 7 (continuação):
– Exemplo 2:
Mapeando Esquemas ER em
Esquemas Relacionais
código
PROFESSOR 1 MINISTRA N TURMA
PERÍODO N
código