1. Projeto de Banco de
Dados – Aula 5
Prof. Rônney machado de Moraes, M.Sc.
ronney.moraes@pitagoras.com.br
rmmoraes@ig.com.br
1
2. Objetivos
Considerando o modelo relacional (como modelo a ser implementado):
Caracterizar modelos conceituais e lógicos
Mostrar a relação entre os dois níveis de modelagem
Obter o modelo conceitual a partir do modelo lógico
2
4. Passos do projeto lógico
Um modelo ER pode gerar
diversos modelos lógicos
contendo as informações
especificadas, implicando:
Diferentes performances
Maior facilidade ou
dificuldade no
desenvolvimento e
manutenção do sistema
construído sobre o BD. MODELO RELACIONAL INICIAL!
4
5. Transformação ER para relacional
As regras a seguir são baseadas na experiência acumulada (consenso)
por muitos autores no projeto de muitas bases de dados diferentes, e tem
os seguintes objetivos:
Obter um banco de dados que permita boa performance de instruções
de consulta e alteração do banco de dados (diminuindo o acesso a disco)
Obter um banco de dados que simplifique o desenvolvimento e a
manutenção de aplicações.
Além destes, as regras de transformação procuram obter um banco de
dados que ocupe pouco espaço em disco.
5
6. Regras a serem seguidas
Evitar junções - ter os dados necessários a uma consulta
em uma única linha.
Diminuir o número de chaves primárias.
Evitar campos opcionais (null em SQL). Principalmente
quando a obrigatoriedade ou não no preenchimento do campo
depende de outros campos.
6
7. Regras a serem seguidas
Estas regras usam como entrada, além do próprio
modelo ER, também alguns conhecimentos sobre
volumes de dados e volumes de transações.
Esses conhecimentos permitem escolher uma
alternativa de implementação, quando diversas
alternativas podem ser usadas para implementar um
conceito da abordagem ER.
7
8. Implementação inicial de entidades
Esse passo é razoavelmente óbvio: cada entidade é
traduzida para uma tabela. Neste processo, cada atributo da
entidade define uma coluna desta tabela. Os atributos
identificadores da entidade correspondem às colunas que
compõem a chave primária da tabela.
Chave Primária (pk)
8
9. Nomes de atributos e colunas
Data de nascimento dataNasc
Data de admissão dataAdmissao
Sufixar ou prefixar o coluna que será chave primária porque
esta pode aparecer como chave estrangeira em outra tabela:
Código Pessoa codPessoa
Padronizar
(cod, num, no, dat, dt)
O nome da tabela pode ser utilizado como qualificador para o nome da
coluna!
9
12. Implementação de relacionamentos
O fator determinante para a tradução a adotar no
caso de relacionamentos é a cardinalidade mínima e
máxima das entidades que participam do
relacionamento.
12
17. Relacionamentos 1:1
Ambas as entidades tem participação opcional
Maximiza junções
Minimiza junções
Colunas Opcionais
17
18. Relacionamentos 1:1
Uma entidade tem participação opcional e a outra obrigatória
Fusão das tabelas
Adição de coluna na
entidade com
participação opcional
18
19. Relacionamentos 1:n
A entidade com cardinalidade “n” é opcional
Adição de colunas
Tabela própria
19
21. Implementação de generalização/especialização
1) uso de uma única tabela para toda hierarquia de generalização/especialização
Chave primária correspondente ao identificador da entidade mais genérico
Caso não exista, uma coluna Tipo, que identifica que tipo de entidade
especializada está sendo representada por cada linha da tabela
Uma coluna para cada atributo da entidade genérica
Colunas referentes aos relacionamentos dos quais participa a entidade genérica
e que sejam implementados através da alternativa de adicionar colunas à tabela da
entidade genérica
Uma coluna para cada atributo de cada entidade especializada (estas colunas
devem ser definidas como opcionais, já que somente terão valores quando a linha
for referente à entidade especializada em questão)
Colunas referentes aos relacionamentos dos quais participa cada entidade
especializada e que sejam implementados através da alternativa de adicionar
colunas à tabela da entidade (estas colunas devem ser definidas como opcionais,
já que somente terão valores quando a linha for referente à entidade especializada
em questão)
21
24. Vantagens entre as abordagens
Implementação com tabela única
Todos os dados referentes a uma ocorrência de entidade genérica, bem como
os dados referentes a ocorrências de sua especialização, estão em uma única
linha.
A chave primária é armazenada uma única vez, ao contrário da alternativa com
múltiplas tabelas.
Implementação com uma tabela por entidade especializada
As colunas opcionais que aparecem são apenas aquelas referentes a atributos
que podem ser vazios do ponto de vista da aplicação.
O controle das colunas opcionais pode ficar mais a cargo no SGDB e não da
aplicação.
24
25. Refinamento do Modelo
Em todo processo de engenharia, está envolvido um
compromisso entre o ideal e o realizável dentro das
restrições de recursos impostas pelas prática.
Relacionamentos mutuamente exclusivos
Simulação de atributos multi-valorados
Informações redundantes
25