Upload
phungliem
View
215
Download
0
Embed Size (px)
Citation preview
Módulo II: Modelagem Entidade-
Relacionamento versus Relacional
(Aula 6)
Clodis Boscarioli
Banco de Dados I
2007
Agenda:
� Normalização (continuação):
� BCNF (mais exemplos);
� 4NF;
� 5NF.
BCNF - Exemplos
� Relembrando: Uma relação R está na BCNF sse R está na3NF e nenhum atributo possua dependência transitiva emrelação à chave primária.
Exemplo:
Relação CURSA
ALUNO DISCIPLINA TUTOR
Nagiza Banco de Dados I Korth
Silvio Banco de Dados I Navathe
Silvio Banco de Dados II Setzer
Silvio Data Mining Duhran
William Banco de Dados I Korth
William Banco de Dados II Elmasri
Zélia Banco de Dados I Date
Camila Banco de Dados I Navathe
BCNF - Exemplo
Primeiro, têm-se que identificar as DF envolvendo atributos que pertençam a chave primária.
Tutor � Disciplina
Aluno, Disciplina � Tutor Há dependência transitiva da chave primária!
Relação CURSA
ALUNO DISCIPLINA TUTOR
� A relação acima está na 3NF e na BCNF?
BCNF - Exemplo
A relação está na 3NF pois possui somente atributos atômicos, não apresenta dependência parcial da chave primária e não existem DFs de um atributo não pertencente a chave primária em relação a atributos não pertencentes àchave primária. Porém, não está na BCNF pois possui dependência transitiva de um atributo chave com relação àchave primária.
A solução seria separar a relação em duas ou mais relações, de forma a eliminar a dependência transitiva:
Tutoria (Tutor, Disciplina)
Cursa(Tutor, Aluno)
� Considere a relação orientador abaixo. Suponha que
as exigências básicas dessa relação sejam: Um
aluno (IDAL) pode ter mais que uma especialização,
uma especialização pode ter vários membros do
corpo docente (Fnome) como orientadores e um
professor orienta somente em uma área de
especialização.
BCNF – Outro Exemplo
� DF:Fnome � Especialização
Relação Orientador
IDAL Especialização Fnome
100 Matemática Caughy
150 Psicologia Jung
200 Matemática Riemann
250 Matemática Caughy
300 Psicologia Perls
300 Matemática Riemann
BCNF – Outro Exemplo
� Há nessa relação uma anomalia de eliminação (por
exemplo, se o aluno 300 sair da escola e se seus
registros forem apagados, perde-se o fato de que
Perls orienta em psicologia) e existe também uma
anomalia de inserção (Não se pode armazenar um
orientador em uma área, a não ser que um aluno se
especialize na cadeira).
BCNF – Outro Exemplo
BCNF – Outro Exemplo
Riemann300
Perls300
Caughy250
Riemann200
Jung150
Caughy100
FnomeIDAL
Relação Al_Orient
PsicologiaPerls
MatemáticaRiemann
PsicologiaJung
MatemáticaCaughy
EspecializaçãoFnome
Relação Orient_Discip
Agora sim, está na BCNF.
Dependência Multivalorada
“Dada uma relação qualquer com três atributos x, y e z, diz-
se que y depende de forma multivalorada de x sse
sempre que existirem duas tuplas (x1,y1,z1) e (x1,y2,z2)
existirão também duas tuplas (x1,y1,z2) e (x1,y2,z1)”.
� Refere-se à combinação de valores de atributos
multivalorados disjuntos (y e z).
� x na verdade, relaciona-se com y e com z de forma
independente.
“Uma tabela está na 4FN sse estiver na 3FN e não existirem dependências multivaloradas”.
� Exemplo: Dados sobre livrosRelação não normalizada: Livros(nrol, (autor), título, (assunto),
editora, cid_edit, ano_public)1FN: Livros(nrol, autor, assunto, título, editora, cid_edit,
ano_public)2FN: Livros(nrol,título, editora, cid-edit, ano_public)
AutAssLiv(nrol, autor, assunto)3FN: Livros(nrol, título, editora, ano_public)
Editoras(editora, cid-edit)AutAssLiv(nrol, autor, assunto)
4ª Forma Normal (4NF)
Nrol Autor Assunto
1 aut1 ass1
1 aut1 ass2
1 aut2 ass1
1 aut2 ass2
2 aut1 ass3
2 aut1 ass4
2 aut1 ass1
2 aut3 ass3
2 aut3 ass4
2 aut3 ass1
� Redundância para representar todas as informações;� Evitar todas as combinações: representação não-uniforme (repete alguns elementos ou posições nulas).
4ª Forma Normal (4NF)
Passagem à 4FN
� Geração de novas tabelas, eliminando Dependências
Multivaloradas
� Análise de Dependências Multivaloradas entre atributos:
autor, assunto� � Dependência multivalorada de nrol
Resultado:
4FN: Livros(nrol, título, editora, ano_public)
Editoras(editora, cid-edit)
AutLiv(nrol, autor)
AssLiv(nrol, assunto)
4ª Forma Normal – Outro Exemplo
JoggingMatemática150
TênisContabilidade100
TênisMúsica100
NataçãoContabilidade100
NataçãoMúsica100
AtividadeEspecializaçãoIDAL
Relação Aluno
DF múltiplas:IDAL � � EspecializaçãoIDAL � � Atividade
4ª Forma Normal – Outro Exemplo
EsquiMúsica100
JoggingMatemática150
TênisContabilidade100
TênisMúsica100
NataçãoContabilidade100
NataçãoMúsica100
AtividadeEspecializaçã
o
IDAL
Relação Aluno
EsquiContabilidade100
EsquiMúsica100
JoggingMatemática150
TênisContabilidade100
TênisMúsica100
NataçãoContabilidade100
NataçãoMúsica100
AtividadeEspecializaçã
o
IDAL
Relação Aluno
Ao inserir nova atividade ao aluno 100 com a especialização música, deve-se inserir também outra tupla, o que mostra uma anomalia de atualização.
4ª Forma Normal – Outro Exemplo
Matemática150
Contabilidade100
Música100
EspecializaçãoIDAL
Relação Al_Espec
Jogging150
Tênis100
Natação100
Esqui100
AtividadeIDAL
Relação Al_Ativ
Agora sim, está na BCNF, sem dependências multivaloradas!
5ª Forma Normal (5NF)
“Uma tabela está na 5FN sse estiver na 4FN e um relacionamento triplo não puder ser decomposto em relacionamentos binários sem geração de informação incorreta”.
Caso especial: Relacionamento envolvendo Chaves primárias de 3 tabelas, que nem sempre é possível decomposição correta.
Exemplo: relacionamento Agente-Companhia-Produto
Agente Companhia Produto
João Ford Carro
João GM Caminhão
5ª Forma Normal
� Formato necessário quando existem apenas algumas
combinações entre os 3 atributos (tabela c/ tripla).
� Situação: Se um agente vende um certo produto e ele
representa uma companhia, então ele vende um produto
fabricado por esta companhia � Todos os pares se
combinam!
Neste caso, é possível decompor uma tripla em três relações binárias com eliminação de certas redundâncias.
CarroFordCarlos
CaminhãoGMJoão
CarroGMJoão
CaminhãoFordJoão
CarroFordJoão
ProdutoCompanhiaAgente
5ª Forma Normal
� Eliminação de certas redundâncias:- Apenas uma vez está dito que Ford produz carros;
- Apenas uma vez está dito que João é agente da GM.� Apesar do aumento no número de tabelas, o número total de
tuplas na forma normalizada é menor.
FordCarlos
GMJoão
FordJoão
CompanhiaAgente
CarroCarlos
CaminhãoJoão
CarroJoão
ProdutoAgente
CaminhãoGM
CarroGM
CaminhãoFord
CarroFord
ProdutoCompanhia
As três relações abaixo estão na 5FN:
5ª Forma Normal
Bibliografia Utilizada:
� Introdução a Sistemas de Banco de Dados. (Cap. 11 e 12).
C. J. Date, 7ª Edição. Editora Campus, 2000.
� Banco de Dados: Fundamentos, Projeto e Implementação.
(Cap. 5). David M. Kroenke, 6ª Edição. Editora LTC, 1999.