21
Módulo II: Modelagem Entidade- Relacionamento versus Relacional (Aula 6) Clodis Boscarioli Banco de Dados I 2007

Banco de Dados I MóduloII:Modelagem Entidade ...clodis/BDI/BDI_2007_Modulo2_6.pdf · Banco de Dados I 2007. Agenda: Normalização ... de forma a eliminar a dependência transitiva:

Embed Size (px)

Citation preview

Page 1: Banco de Dados I MóduloII:Modelagem Entidade ...clodis/BDI/BDI_2007_Modulo2_6.pdf · Banco de Dados I 2007. Agenda: Normalização ... de forma a eliminar a dependência transitiva:

Módulo II: Modelagem Entidade-

Relacionamento versus Relacional

(Aula 6)

Clodis Boscarioli

Banco de Dados I

2007

Page 2: Banco de Dados I MóduloII:Modelagem Entidade ...clodis/BDI/BDI_2007_Modulo2_6.pdf · Banco de Dados I 2007. Agenda: Normalização ... de forma a eliminar a dependência transitiva:

Agenda:

� Normalização (continuação):

� BCNF (mais exemplos);

� 4NF;

� 5NF.

Page 3: Banco de Dados I MóduloII:Modelagem Entidade ...clodis/BDI/BDI_2007_Modulo2_6.pdf · Banco de Dados I 2007. Agenda: Normalização ... de forma a eliminar a dependência transitiva:

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

Page 4: Banco de Dados I MóduloII:Modelagem Entidade ...clodis/BDI/BDI_2007_Modulo2_6.pdf · Banco de Dados I 2007. Agenda: Normalização ... de forma a eliminar a dependência transitiva:

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?

Page 5: Banco de Dados I MóduloII:Modelagem Entidade ...clodis/BDI/BDI_2007_Modulo2_6.pdf · Banco de Dados I 2007. Agenda: Normalização ... de forma a eliminar a dependência transitiva:

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)

Page 6: Banco de Dados I MóduloII:Modelagem Entidade ...clodis/BDI/BDI_2007_Modulo2_6.pdf · Banco de Dados I 2007. Agenda: Normalização ... de forma a eliminar a dependência transitiva:

� 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

Page 7: Banco de Dados I MóduloII:Modelagem Entidade ...clodis/BDI/BDI_2007_Modulo2_6.pdf · Banco de Dados I 2007. Agenda: Normalização ... de forma a eliminar a dependência transitiva:

� 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

Page 8: Banco de Dados I MóduloII:Modelagem Entidade ...clodis/BDI/BDI_2007_Modulo2_6.pdf · Banco de Dados I 2007. Agenda: Normalização ... de forma a eliminar a dependência transitiva:

� 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

Page 9: Banco de Dados I MóduloII:Modelagem Entidade ...clodis/BDI/BDI_2007_Modulo2_6.pdf · Banco de Dados I 2007. Agenda: Normalização ... de forma a eliminar a dependência transitiva:

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.

Page 10: Banco de Dados I MóduloII:Modelagem Entidade ...clodis/BDI/BDI_2007_Modulo2_6.pdf · Banco de Dados I 2007. Agenda: Normalização ... de forma a eliminar a dependência transitiva:

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.

Page 11: Banco de Dados I MóduloII:Modelagem Entidade ...clodis/BDI/BDI_2007_Modulo2_6.pdf · Banco de Dados I 2007. Agenda: Normalização ... de forma a eliminar a dependência transitiva:

“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)

Page 12: Banco de Dados I MóduloII:Modelagem Entidade ...clodis/BDI/BDI_2007_Modulo2_6.pdf · Banco de Dados I 2007. Agenda: Normalização ... de forma a eliminar a dependência transitiva:

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)

Page 13: Banco de Dados I MóduloII:Modelagem Entidade ...clodis/BDI/BDI_2007_Modulo2_6.pdf · Banco de Dados I 2007. Agenda: Normalização ... de forma a eliminar a dependência transitiva:

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)

Page 14: Banco de Dados I MóduloII:Modelagem Entidade ...clodis/BDI/BDI_2007_Modulo2_6.pdf · Banco de Dados I 2007. Agenda: Normalização ... de forma a eliminar a dependência transitiva:

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

Page 15: Banco de Dados I MóduloII:Modelagem Entidade ...clodis/BDI/BDI_2007_Modulo2_6.pdf · Banco de Dados I 2007. Agenda: Normalização ... de forma a eliminar a dependência transitiva:

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.

Page 16: Banco de Dados I MóduloII:Modelagem Entidade ...clodis/BDI/BDI_2007_Modulo2_6.pdf · Banco de Dados I 2007. Agenda: Normalização ... de forma a eliminar a dependência transitiva:

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!

Page 17: Banco de Dados I MóduloII:Modelagem Entidade ...clodis/BDI/BDI_2007_Modulo2_6.pdf · Banco de Dados I 2007. Agenda: Normalização ... de forma a eliminar a dependência transitiva:

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

Page 18: Banco de Dados I MóduloII:Modelagem Entidade ...clodis/BDI/BDI_2007_Modulo2_6.pdf · Banco de Dados I 2007. Agenda: Normalização ... de forma a eliminar a dependência transitiva:

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!

Page 19: Banco de Dados I MóduloII:Modelagem Entidade ...clodis/BDI/BDI_2007_Modulo2_6.pdf · Banco de Dados I 2007. Agenda: Normalização ... de forma a eliminar a dependência transitiva:

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

Page 20: Banco de Dados I MóduloII:Modelagem Entidade ...clodis/BDI/BDI_2007_Modulo2_6.pdf · Banco de Dados I 2007. Agenda: Normalização ... de forma a eliminar a dependência transitiva:

� 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

Page 21: Banco de Dados I MóduloII:Modelagem Entidade ...clodis/BDI/BDI_2007_Modulo2_6.pdf · Banco de Dados I 2007. Agenda: Normalização ... de forma a eliminar a dependência transitiva:

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.