1 gabriel david feup - rua dr. roberto frias, 4200-465 porto - portugal tel. 351-225081408 - fax:...

45
1 Gabriel David FEUP - Rua Dr. Roberto Frias, 4200-465 Porto - PORTUGAL Tel. 351-225081408 - Fax: 351-225081440 Email: [email protected] URL: http://www.fe.up.pt Sumário Projecto de bases de dados relacionais Conceitos básicos Metodologia de normalização

Upload: carolina-aquino-palmeira

Post on 07-Apr-2016

218 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: 1 Gabriel David FEUP - Rua Dr. Roberto Frias, 4200-465 Porto - PORTUGAL Tel. 351-225081408 - Fax: 351-225081440 Email: gtd@fe.up.pt URL:

1

Gabriel DavidFEUP - Rua Dr. Roberto Frias, 4200-465 Porto - PORTUGALTel. 351-225081408 - Fax: 351-225081440

Email: [email protected]: http://www.fe.up.pt

Sumário Projecto de bases de dados relacionais Conceitos básicos Metodologia de normalização

Page 2: 1 Gabriel David FEUP - Rua Dr. Roberto Frias, 4200-465 Porto - PORTUGAL Tel. 351-225081408 - Fax: 351-225081440 Email: gtd@fe.up.pt URL:

Projecto de BD - 2

Identificar os elementos de informação relevantes, os atributos

Como organizar os atributos em tabelas? Optar entre vários esquemas alternativos

critérios de comparação Noções úteis também para BDOO e grandes

aplicações tradicionais

Projecto de BD relacionais

Esquema da BD = esquemas das relações + regras de integridade

Page 3: 1 Gabriel David FEUP - Rua Dr. Roberto Frias, 4200-465 Porto - PORTUGAL Tel. 351-225081408 - Fax: 351-225081440 Email: gtd@fe.up.pt URL:

Projecto de BD - 3

BD Coop

Esquema Sócios( nome, endereço, balanço ) Encomendas( nome, produto, quant ) Fornecedores( empresa, morada, produto, preço )

Sóciosnome endereço balançoJoão Boavista, 45 530Pedro Galvão, 61 200Antónia Constituição, 5 -47Jaime Breyner, 95 0

Encomendasnome produto quantJoão farinha 5João bolacha 10Antónia farinha 3Pedro batata 8

Page 4: 1 Gabriel David FEUP - Rua Dr. Roberto Frias, 4200-465 Porto - PORTUGAL Tel. 351-225081408 - Fax: 351-225081440 Email: gtd@fe.up.pt URL:

Projecto de BD - 4

Defeitos do esquema

Redundância mesmo facto, vários registos

anomalias de actualização inconsistência

anomalias de inserção valores nulos, chave?

anomalias de apagamento dois factos, mesmo registo

Vantagem dispensa a junção, eficiência segurança vs. eficiência

Fornecedoresempresa morada produto preçoAgro Massarelos, 80 farinha 129Agro Massarelos, 80 batata 89Agro Massarelos, 80 bacalhau 540Alimentar Industrial, 2 massa 70Alimentar Industrial, 2 feijão 80Alimentar Industrial, 2 bolacha 125Nutriente Lordelo, 509 batata 79Nutriente Lordelo, 509 massa 79Nutriente Lordelo, 509 bacalhau 570

Page 5: 1 Gabriel David FEUP - Rua Dr. Roberto Frias, 4200-465 Porto - PORTUGAL Tel. 351-225081408 - Fax: 351-225081440 Email: gtd@fe.up.pt URL:

Projecto de BD - 5

Esquema alternativo

Sócios( nome, endereço, balanço ) Encomendas(nome, produto, quant) Forn ( empresa, morada ) Prod( empresa, produto, preço )

sem deficiências um facto, um registo

junção recupera Fornecedores maior esforço computacional conjuntos de dados menores

Prodempresa produto preçoAgro farinha 129Agro batata 89Agro bacalhau 540Alimentar massa 70Alimentar feijão 80Alimentar bolacha 125Nutriente batata 79Nutriente massa 79Nutriente bacalhau 570

Fornempresa moradaAgro Massarelos, 80Alimentar Industrial, 2Nutriente Lordelo, 509

Page 6: 1 Gabriel David FEUP - Rua Dr. Roberto Frias, 4200-465 Porto - PORTUGAL Tel. 351-225081408 - Fax: 351-225081440 Email: gtd@fe.up.pt URL:

Projecto de BD - 6

Restrições de integridade

Relações representam classes e associações não basta garantir que possuem a aridade correcta e a

compatibilidade de certos domínios Mais informação no modelo

restrições de semântica dos elementos do domínio• validações

restrições de igualdade ou desigualdade• interesse para o projecto

se BI1=BI2 implica nome1=nome2

nome= f( BI ) [nome depende funcionalmente de BI] BI nome [BI determina funcionalmente nome]

BI1 nome1

BI2 nome2

Page 7: 1 Gabriel David FEUP - Rua Dr. Roberto Frias, 4200-465 Porto - PORTUGAL Tel. 351-225081408 - Fax: 351-225081440 Email: gtd@fe.up.pt URL:

Projecto de BD - 7

Dependência funcional

R( A1, A2, …, An ) X = AX1 AX2 … AXi, AYi A1 … An

Y = AY1 AY2 …

Caso contrário a BD está num estado inconsistente, por violar a dependência funcional X Y

Se X Y então dois tuplos Ta e Tb em que Xa=Xb terão que satisfazer Ya=Yb

Page 8: 1 Gabriel David FEUP - Rua Dr. Roberto Frias, 4200-465 Porto - PORTUGAL Tel. 351-225081408 - Fax: 351-225081440 Email: gtd@fe.up.pt URL:

Projecto de BD - 8

No exemplo Fornecedores Dependências no modelo declaradas pelo

projectistaempresa moradaempresa produto preço

significam que uma empresa só tem uma morada e que uma empresa tem um só preço para cada produto

No 1º esquema é fácil violar a primeira dependência, por inserção ou actualização, devido à redundância

No 2º esquema só existe uma morada, pelo que não pode haver inconsistência (quando muito incorrecção se a morada estiver errada)

Page 9: 1 Gabriel David FEUP - Rua Dr. Roberto Frias, 4200-465 Porto - PORTUGAL Tel. 351-225081408 - Fax: 351-225081440 Email: gtd@fe.up.pt URL:

Projecto de BD - 9

De onde vêm as dependências

Chave uma chave determina qualquer subconjunto de atributos da

relação R( A, B, C, D, E )

• A B A• A B C D• A B B D E

Associação muitos-um R( A1, A2, B, C, D1, D2, E )

• A1 A2 D1 D2 e como D1 D2 é chave da Entidade 2• A1 A2 A1 A2 ... C ... E• D1 D2 A1 A2

Cabe ao projectista decidir quais as chaves que existem

Entidade 1 Entidade 2Ass

A1 A2 B

C

ED2D1

Page 10: 1 Gabriel David FEUP - Rua Dr. Roberto Frias, 4200-465 Porto - PORTUGAL Tel. 351-225081408 - Fax: 351-225081440 Email: gtd@fe.up.pt URL:

Projecto de BD - 10

Dependências implícitas

R( A, B, C ) (F: dependências sobre a relação R) F= {A B, B C} implica A C

F+= {A A, A B A, A C A, A B C A,A B, A B B, A C B, A B C B,A B, A B C, A C C, A B C C,A A B, A B A B, A C A B, A B C A B,A A C, A B A C, A C A C, A B C A C,A B C, A B B C, A C B C, A B C B C,A A B C, A B A B C, A C A B C, A B C A B C,A , A B , A C , A B C ,B B, B C B, B C, B C C,B B C, B C B C, B , B C ,C , B C

Dependências dadas, triviais, derivadas

Page 11: 1 Gabriel David FEUP - Rua Dr. Roberto Frias, 4200-465 Porto - PORTUGAL Tel. 351-225081408 - Fax: 351-225081440 Email: gtd@fe.up.pt URL:

Projecto de BD - 11

Fecho de um conjunto de dependências

Axiomas de Armstrong Reflexividade (triviais) Y X U X Y Aumento X Y e Z U XZ YZ Transitividade X Y e Y Z X Z Reunião X Y e X Z X YZ Pseudotransitividade X Y e WY Z X W Z Decomposição X Y e Z Y X Z

F+ (fecho de F) é o conjunto de todas as dependências implicadas logicamente por F

Page 12: 1 Gabriel David FEUP - Rua Dr. Roberto Frias, 4200-465 Porto - PORTUGAL Tel. 351-225081408 - Fax: 351-225081440 Email: gtd@fe.up.pt URL:

Projecto de BD - 12

Dependência derivada

Cálculo de uma dependência derivada, a partir das dependências dadas e das regras de cálculo

1 (dada) F_nome Produto Preço2 (dada) F_nome F_endereço3 (2 + aumento) F_nome Produto F_endereço Produto4 (3 + decomposição) F_nome Produto F_endereço5 (4+1+reunião) F_nome Produto F_endereço Preço

Page 13: 1 Gabriel David FEUP - Rua Dr. Roberto Frias, 4200-465 Porto - PORTUGAL Tel. 351-225081408 - Fax: 351-225081440 Email: gtd@fe.up.pt URL:

Projecto de BD - 13

Chave de uma relação

Dados uma relação R( A1, A2, ..., An ) e um conjunto de dependências funcionais F

X, subconjunto de A1, A2, ..., An é chave se1. X A1, A2, ..., An pertence a F+

2. Não se verifica Y A1, A2, ..., An pertencer a F+, com Y X.

A chave determina todos os atributos e é mínima.

Page 14: 1 Gabriel David FEUP - Rua Dr. Roberto Frias, 4200-465 Porto - PORTUGAL Tel. 351-225081408 - Fax: 351-225081440 Email: gtd@fe.up.pt URL:

Projecto de BD - 14

Exemplo das moradas

Morada( cidade, rua, cod ) F = { cidade rua cod, cod cidade }

cidade rua cidade rua cod rua cod cidade rua cod

Só rua, só cod ou só cidade não determinam todos os atributos e portanto não são chaves

{cidade rua} e {rua cod} são chaves alternativas, uma das quais pode ser escolhida para chave primária

Page 15: 1 Gabriel David FEUP - Rua Dr. Roberto Frias, 4200-465 Porto - PORTUGAL Tel. 351-225081408 - Fax: 351-225081440 Email: gtd@fe.up.pt URL:

Projecto de BD - 15

Fecho de um conjunto de atributos

Problema: algoritmo de cálculo de F+ (todas as dependências) é de ordem exponencial não praticável para casos de dimensão realista (X: conjunto de atributos)

Solução: X Y pertence a F+ sse Y X+

Algoritmo de cálculo de X+, relativamente a F1. X(0) = X2. X(i+1) = X(i) {A | Y Z F, Y X(i), A Z}3. X+ = X(i), se X(i+1) = X(i)

X+ (fecho de X) é o conjunto de todos os atributos funcionalmente dependentes de X

Page 16: 1 Gabriel David FEUP - Rua Dr. Roberto Frias, 4200-465 Porto - PORTUGAL Tel. 351-225081408 - Fax: 351-225081440 Email: gtd@fe.up.pt URL:

Projecto de BD - 16

Exemplo de cálculo de X+

R(A, B, C, D, E, F) F= {AB C F ED

C A BE CBC F CD BFACF B CE AD }

Calcular o fecho de X = BF X(0)= BF X(1)= BDEF X(2)= BCDEF B+= B X(3)= ABCDEF = X+ = U F+= DEF U

Logo, X= BF é chave

Page 17: 1 Gabriel David FEUP - Rua Dr. Roberto Frias, 4200-465 Porto - PORTUGAL Tel. 351-225081408 - Fax: 351-225081440 Email: gtd@fe.up.pt URL:

Projecto de BD - 17

Conjuntos de dependências

F e G – conjuntos de dependências dois conjuntos são equivalentes se os respectivos

fechos forem iguais

Método de teste Para cada Y Z F testar se Y Z G+

• Calcular Y+|G• Verificar se Z Y+

Vice-versa, para as dependências em G.

F G sse F+ = G+

Page 18: 1 Gabriel David FEUP - Rua Dr. Roberto Frias, 4200-465 Porto - PORTUGAL Tel. 351-225081408 - Fax: 351-225081440 Email: gtd@fe.up.pt URL:

Projecto de BD - 18

Forma minimal

Conjunto de dependências F numa forma minimal1. Membro direito das dependências tem só 1 atributo2. Não existe X A F tal que F \ {X A} F3. Não existe X A F e Z X

tal que F \ {X A} {Z A} F• (2) impede redundância nas dependências• (3) impede redundância nos atributos de uma dependência

Entre os conjuntos de dependências equivalentes a F existe sempre pelo menos um que é minimal, isto é, que

não se pode simplificar mais; mas pode existir mais do que um minimal, pelo que não se

define o mínimo.

Page 19: 1 Gabriel David FEUP - Rua Dr. Roberto Frias, 4200-465 Porto - PORTUGAL Tel. 351-225081408 - Fax: 351-225081440 Email: gtd@fe.up.pt URL:

Projecto de BD - 19

Determinação de forma minimal

Determine uma forma minimal de F (pág. 16) Decompor as dependências com membro direito composto F= { AB C F E CD B

C A F D CD FBC F BE C CE AACF B CE D }

Eliminar CE A (implicada por C A) Eliminar A em ACF B (porque B CF+|F) a) eliminar CD B (porque B CD+|F’) ou

b) eliminar CF B (porque B CF+|F’’) e CD F (F CD+|F’’)

Page 20: 1 Gabriel David FEUP - Rua Dr. Roberto Frias, 4200-465 Porto - PORTUGAL Tel. 351-225081408 - Fax: 351-225081440 Email: gtd@fe.up.pt URL:

Projecto de BD - 20

Duas formas minimais F’= { AB C F E

C A F D CD FBC F BE C CF B CE D }

F’’= { AB C F E CD BC A F D BC F BE C CE D }

Neste caso, as duas formas minimais têm um número diferente de elementos

Page 21: 1 Gabriel David FEUP - Rua Dr. Roberto Frias, 4200-465 Porto - PORTUGAL Tel. 351-225081408 - Fax: 351-225081440 Email: gtd@fe.up.pt URL:

Projecto de BD - 21

Decomposição

Decomposição de R em R1 e R2 R1 e R2 obtêm-se de R por projecção e substituem-na todos os atributos de R se encontram em R1 ou R2 Para recuperar R, faz-se a junção natural de R1 e R2

Fornecedores = FORN ⋈ PROD Fornecedores ( empresa, morada, produto, preço ) Forn ( empresa, morada ) Prod ( empresa, produto, preço ) (ver pág. 3 e 4)

Decomposição sem perdas seR = R1(R) ⋈ R2(R)

Page 22: 1 Gabriel David FEUP - Rua Dr. Roberto Frias, 4200-465 Porto - PORTUGAL Tel. 351-225081408 - Fax: 351-225081440 Email: gtd@fe.up.pt URL:

Projecto de BD - 22

Decomposição com perdas

Excesso de linhas

Perda de informação

FornProdempresa produtoAgro farinhaAgro batataAgro bacalhauAlimentar massaAlimentar feijãoAlimentar bolachaNutriente batataNutriente massaNutriente bacalhau

MoraProdmorada produto preçoMassarelos, 80 farinha 129Massarelos, 80 batata 89Massarelos, 80 bacalhau 540Industrial, 2 massa 70Industrial, 2 feijão 80Industrial, 2 bolacha 125Lordelo, 509 batata 79Lordelo, 509 massa 79Lordelo, 509 bacalhau 570

FornProd ⋈ MoraProd Fornecedoresempresa morada produto preçoAgro Massarelos, 80 farinha 129Agro Massarelos, 80 batata 89Agro Lordelo, 509 batata 79

Nutriente Massarelos, 80 batata 89Nutriente Lordelo, 509 batata 79

...

Page 23: 1 Gabriel David FEUP - Rua Dr. Roberto Frias, 4200-465 Porto - PORTUGAL Tel. 351-225081408 - Fax: 351-225081440 Email: gtd@fe.up.pt URL:

Projecto de BD - 23

Decomposição sem perdas

Algoritmo de teste R(A1, …, An), F relação inicial, dependências (R1, …, Rk) decomposição

1. Construir uma tabela k n coluna j atributo Aj linha i relação Ri

2. xij = aj se Aj em Ri

xij = bij c.c.3. Iterativamente, para cada XY em F, forçar linhas

que coincidam em X a coincidir em Y mesmo aj ou, se não houver, mesmo bij

4. Decomposição é sem perdas se, no fim, houver uma linha só com a’s.

Page 24: 1 Gabriel David FEUP - Rua Dr. Roberto Frias, 4200-465 Porto - PORTUGAL Tel. 351-225081408 - Fax: 351-225081440 Email: gtd@fe.up.pt URL:

Projecto de BD - 24

Aplicação do algoritmo 1º caso, sem perdas

2º caso, com perdas

Fornecedores empresa morada produto preço

Forn a1 a2 b13 b14

Prod a1 b22 a3 a4

Fornecedores empresa morada produto preço

Forn a1 a2 b13 b14

Prod a1 a2 a3 a4

Fornecedores empresa morada produto preço

FornProd a1 b12 a3 b14

MoraProd b21 a2 a3 a4

Passo 1

Passo 2

empresa moradaempresa produto preço

Page 25: 1 Gabriel David FEUP - Rua Dr. Roberto Frias, 4200-465 Porto - PORTUGAL Tel. 351-225081408 - Fax: 351-225081440 Email: gtd@fe.up.pt URL:

Projecto de BD - 25

Vantagens da decomposição

Trabalhar com conjuntos menores Redução das redundâncias Redução das perdas de informação

Obriga a junções naturais

método da normalização vai indicar regras orientadoras para a decomposição

Page 26: 1 Gabriel David FEUP - Rua Dr. Roberto Frias, 4200-465 Porto - PORTUGAL Tel. 351-225081408 - Fax: 351-225081440 Email: gtd@fe.up.pt URL:

Projecto de BD - 26

Projecção das dependências A decomposição de uma relação R, sujeita ao conjunto de dependências F, num conjunto de relações (R1, ..., Rk) é acompanhada da projecção de F sobre cada uma das Ri

Projecção de F sobre os atributos Z — conjunto de dependências X Y no fecho de F tal que XY Z

X Y não precisa de estar em F, basta que esteja no fecho de F.

Decomposição que preserva o conjunto de dependências F — quando a reunião das projecções de F sobre cada uma das relações da decomposição implica logicamente F.

Se não se preservarem as dependências, aquilo que é admitido na decomposição pode não o ser na junção (nem no modelo...)

Page 27: 1 Gabriel David FEUP - Rua Dr. Roberto Frias, 4200-465 Porto - PORTUGAL Tel. 351-225081408 - Fax: 351-225081440 Email: gtd@fe.up.pt URL:

Projecto de BD - 27

Falta de preservaçãoMORADA(Cidade, Rua, Cod) F= {Cidade Rua Cod, Cod Cidade}

decomposição:

R1(Rua, Cod) F1= {}

R2(Cidade, Cod) F2= {Cod Cidade}

sem perdas: Cidade Rua CodR1 b11 a2 a3

R2 a1 b22 a3

Cidade Rua CodR1 a1 a2 a3

R2 a1 b22 a3

mas F1+F2 / F, i.e. não preserva as dependências

Cidade Cod Porto 4000Porto 4100

Rua Cod Cedofeita, 50 4000Cedofeita, 50 4100

Cidade Rua Cod Porto Cedofeita, 50 4000Porto Cedofeita, 50 4100

R1 R2

R1⋈ R2

Conclusão: Cidade Rua Cod tem que ser verificada explicitamente

Page 28: 1 Gabriel David FEUP - Rua Dr. Roberto Frias, 4200-465 Porto - PORTUGAL Tel. 351-225081408 - Fax: 351-225081440 Email: gtd@fe.up.pt URL:

Projecto de BD - 28

método inviável: calcular o fecho do conjunto de dependências F, projectá-lo sobre as relações da decomposição, fazer a respectiva união e verificar se este conjunto é equivalente a F.

Para saber se X Y em F está no fecho de G (a reunião das projecções)• calcular o fecho de X relativamente a G [G não é calculado]• truque: aplicar a operação-Ri até não haver mais alterações simula G

Teste de preservação

Algoritmo de teste da preservação das dependências Entrada: decomposição (R1,..., Rk) e dependências F Saída: decisão sobre a preservação de F. Método: para cada X Y em F fazer

Z:= Xenquanto ocorrerem alterações a Z fazer

para i:= 1 até k fazerZ:= Z ((Z Ri)+ Ri) /*operação Ri, fecho relativo a F */

se Y Z então a dependência é preservada.

exponencial

Page 29: 1 Gabriel David FEUP - Rua Dr. Roberto Frias, 4200-465 Porto - PORTUGAL Tel. 351-225081408 - Fax: 351-225081440 Email: gtd@fe.up.pt URL:

Projecto de BD - 29

Aplicação do algoritmo

Considerar R= { A B C D } decomposto em { AB, BC, CD } com as dependências

F = { A B, B C, C D, D A }.

À primeira vista, a projecção de F sobre AB, BC, CD parece não suportar D A.Acontece que, de facto, se projecta o fecho de F e portanto

B C, C D, D A B A

pelo que F1= { A B, B A}, F2= { B C, C B}, F3= { C D, D C}

e F1 + F2 + F3 D A. Verificação deste resultado pelo algoritmo:

• começa-se com Z= {D}, mas {D} [({D} {A, B})+ {A, B}]= {D}• idem para a operação-BC; relativamente à operação-CD temos

Z= {D} [({D} {C, D})+ {C, D}]= {D} ({D}+ {C, D})=

{D} ({A, B, C, D} {C, D})= {C, D}• na passagem seguinte obtém-se Z = {B, C, D} na operação-BC e a seguir Z=

{A, B, C, D}, que contém A e logo D A está no fecho das dependências projectadas.

Page 30: 1 Gabriel David FEUP - Rua Dr. Roberto Frias, 4200-465 Porto - PORTUGAL Tel. 351-225081408 - Fax: 351-225081440 Email: gtd@fe.up.pt URL:

Projecto de BD - 30

Método da normalização F - dependências funcionais (chave) F+ - fecho de um conjunto de dependências (axiomas) X+ - fecho de um conjunto de atributos relativamente a F

(algoritmo) equivalência de conjuntos de dependências (algoritmo) forma minimal decomposição sem perdas (algoritmo de verificação) decomposição com preservação das dependências

(algoritmo de verificação) algoritmo de decomposição

sem perdas, para BCNF sem perdas e com preservação das dependências para 3NF

Page 31: 1 Gabriel David FEUP - Rua Dr. Roberto Frias, 4200-465 Porto - PORTUGAL Tel. 351-225081408 - Fax: 351-225081440 Email: gtd@fe.up.pt URL:

Projecto de BD - 31

Primeira forma normal

Relação normalizada (1NF) atributos simples ou compostos mas não relações não normalizada:

normalizar: passar a forma tabular, só com valores simples Atributo principal

se pertencer a alguma chave candidata da relação

Nr produto data qualidade dia mês ano1 cebola 01 05 86 egipto2 feijão 25 06 86 branco, vermelho, frade

Page 32: 1 Gabriel David FEUP - Rua Dr. Roberto Frias, 4200-465 Porto - PORTUGAL Tel. 351-225081408 - Fax: 351-225081440 Email: gtd@fe.up.pt URL:

Projecto de BD - 32

Segunda forma normal

Uma relação é da 2NF, relativamente a F: se XA e A não está em X, então A é principal ou X não é um subconjunto estrito de uma chave

não há dependências em partes da chave exemplo Fornecedores

• empresa morada• chave: empresa produto• não é 2NF

empresa

produto

morada

preço

Page 33: 1 Gabriel David FEUP - Rua Dr. Roberto Frias, 4200-465 Porto - PORTUGAL Tel. 351-225081408 - Fax: 351-225081440 Email: gtd@fe.up.pt URL:

Projecto de BD - 33

Terceira forma normal

Uma 3NF é 2NF e não tem dependências transitivas Exemplo Carros

• Carro( matrícula, marca, potência, BI, nome, idade )• F = {matrícula marca potência,

BI nome idade, matrícula BI}

• C+=?• Carro não é 3NF

Uma relação é da 3NF, relativamente a F: se XA e A não está em X, então A é principal ou X contém uma chave

matrícula

marca, potência

BI

nome, idade

Page 34: 1 Gabriel David FEUP - Rua Dr. Roberto Frias, 4200-465 Porto - PORTUGAL Tel. 351-225081408 - Fax: 351-225081440 Email: gtd@fe.up.pt URL:

Projecto de BD - 34

Relações 3NF Evidenciam as dependências simples relativamente à

chave meio de estruturar a informação

uma relação 3NF tende a representar uma entidade-tipo/classe ou uma associação

mais simples para o utilizador semântica = esquemas + dependências: clarifica

mais simples para o SGBD implementada pelo conceito de chave primária basta impedir chaves duplicadas

dispensa efeitos colaterais nas inserções e actualizações

Page 35: 1 Gabriel David FEUP - Rua Dr. Roberto Frias, 4200-465 Porto - PORTUGAL Tel. 351-225081408 - Fax: 351-225081440 Email: gtd@fe.up.pt URL:

Projecto de BD - 35

Forma normalizada Boyce-Codd

deixa cair a excepção de A ser principal dependências só na chave não há dependências inesperadas exemplo: relação MORADA não é BCNF e é 3NF

todos os atributos são principais não é possível memorizar um código de uma dada cidade se não se

conhecer uma rua dessa áreaMORADA(Cidade, Rua, Cod)

F= {Cidade Rua Cod, Cod Cidade}chaves (Cidade, Rua) ou (Cod, Rua)

Uma relação é da BCNF, relativamente a F: se XA e A não está em X, então X contém uma chave

Page 36: 1 Gabriel David FEUP - Rua Dr. Roberto Frias, 4200-465 Porto - PORTUGAL Tel. 351-225081408 - Fax: 351-225081440 Email: gtd@fe.up.pt URL:

Projecto de BD - 36

Decomposição para 3NF

Algoritmo entrada: R e F (forma minimal) saída: decomposição 3NF com preservação das

dependências método:

• atributos que não apareçam nas dependências formam uma relação

• uma associação muitosmuitos entre A e B, representa-se pela dependência artificial AB

• decomposição nos esquemas (X,A) para cada XA em F• pares de relações entre cujos tuplos se possa estabelecer uma

correspondência biunívoca são agrupados

Page 37: 1 Gabriel David FEUP - Rua Dr. Roberto Frias, 4200-465 Porto - PORTUGAL Tel. 351-225081408 - Fax: 351-225081440 Email: gtd@fe.up.pt URL:

Projecto de BD - 37

Exemplo de decomposição 3NF Carro( matrícula, marca, potência, BI, nome, idade ) F = {matrícula marca potência,

BI nome idade}associação muitos para muitos entre carros e pessoas

Passo zero Carro( matrícula, marca, potência, BI, nome, idade ) F’ = {matrícula marca, matrícula potência,

BI nome, BI idade, BI matrícula } Passo um

Nome(BI, nome) Idade(BI, idade ) Marca( matrícula, marca) Potência( matrícula, potência) Proprietário( matrícula, BI)

Page 38: 1 Gabriel David FEUP - Rua Dr. Roberto Frias, 4200-465 Porto - PORTUGAL Tel. 351-225081408 - Fax: 351-225081440 Email: gtd@fe.up.pt URL:

Projecto de BD - 38

Decomposição 3NF (cont.)

Passo dois (recomposição) Pessoa(BI, nome, idade ) Carro( matrícula, marca, potência) Proprietário( matrícula, BI)

se cada carro tiver dono e um só dono matrícula BI Proprietário ( matrícula, BI)

Passo dois’ (recomposição) Pessoa(BI, nome, idade ) Carro( matrícula, marca, potência, BI)

Page 39: 1 Gabriel David FEUP - Rua Dr. Roberto Frias, 4200-465 Porto - PORTUGAL Tel. 351-225081408 - Fax: 351-225081440 Email: gtd@fe.up.pt URL:

Projecto de BD - 39

Outra decomposição 3NF

Decomposição Carro( matrícula, marca, potência)

• F1 = {matrícula marca potência} Bilhete( matrícula, BI)

• F2 = {matrícula BI} Dono(matrícula, nome, idade )

• F3 = {}

sem preservação das dependências restrição BI nome idade passa a ser inter-

relações, não sendo suportada pelo método da normalização

SGBD terá que a suportar através de triggers

Page 40: 1 Gabriel David FEUP - Rua Dr. Roberto Frias, 4200-465 Porto - PORTUGAL Tel. 351-225081408 - Fax: 351-225081440 Email: gtd@fe.up.pt URL:

Projecto de BD - 40

Decomposição para BCNF

Algoritmo entrada: R e F (forma minimal) saída: decomposição sem perdas em que cada esquema é

BCNF relativamente à projecção de F sobre esse esquema método:

• condição inicial: D0 = {R}• em cada passo, decompõe-se uma relação que viole a BCNF:• Di+1 = Di \ {S} {S1, S2}• em que se verifica XA F, {X, A} S, S X+, A X• sendo S1 = {X, A} e S2 = S \ {A}

não garante a preservação das dependências

Page 41: 1 Gabriel David FEUP - Rua Dr. Roberto Frias, 4200-465 Porto - PORTUGAL Tel. 351-225081408 - Fax: 351-225081440 Email: gtd@fe.up.pt URL:

Projecto de BD - 41

Dependências multívocas

Origem das dependências multívocasCentroprojecto programador horáriointerna- Manuel 9-11mentos António 14-16

Isabelestatística Eduarda 11-13

Miguel 16-17

Centroprojecto programador horáriointernamentos Manuel 9-11internamentos António 9-11internamentos Isabel 9-11internamentos Manuel 14-16internamentos António 14-16internamentos Isabel 14-16estatística Eduarda 11-13estatística Miguel 11-13estatística Eduarda 16-17estatística Miguel 16-17

não normalizada

1NFChave trivial

projecto programador

projecto horário

(indissociáveis)

Page 42: 1 Gabriel David FEUP - Rua Dr. Roberto Frias, 4200-465 Porto - PORTUGAL Tel. 351-225081408 - Fax: 351-225081440 Email: gtd@fe.up.pt URL:

Projecto de BD - 42

Efeito Se existem

estatística Eduarda 11-13estatística Miguel 16-17

a dependência multívoca obriga à existência deestatística Miguel 11-13estatística Eduarda 16-17.

Originada pela normalização de relações Manifestam-se pelo facto de a presença de alguns tuplos

implicar a presença de outros

Isto é, é o mesmo conjunto qualquer que seja C

Dependência multívoca

A B em R(A,B,C) se e só se o conjunto de valores de B associados a um par (A,C) depender só de A e não de C

Page 43: 1 Gabriel David FEUP - Rua Dr. Roberto Frias, 4200-465 Porto - PORTUGAL Tel. 351-225081408 - Fax: 351-225081440 Email: gtd@fe.up.pt URL:

Projecto de BD - 43

Características

Dependências multívocas generalizam dependências funcionais X Y X Y

Complementação (U – universo dos atributos) X Y X U-X-Y uma relação só com dois atributos não pode violar a 4NF

Junção sem perdas (revisitada) Seja D={R1, R2} uma decomposição de R e F um

conjunto de dependências funcionais e multívocas Então D tem uma junção sem perdas relativamente a F

se e só se R1 R2 R1 - R2 (ou R2-R1)

Page 44: 1 Gabriel David FEUP - Rua Dr. Roberto Frias, 4200-465 Porto - PORTUGAL Tel. 351-225081408 - Fax: 351-225081440 Email: gtd@fe.up.pt URL:

Projecto de BD - 44

4NF

Uma relação é da 4NF, relativamente a F, se para todas as XA então X contém uma chave (XYR).

Método da decomposiçãoSe em R(X,A,B), XA e X não contém uma chave, decompõe-se o esquema em R1(X,A) e R2(X,B).

Programadoresprojecto programadorinternamentos Manuelinternamentos Antóniointernamentos Isabelestatística Eduardaestatística Miguel

Horáriosprojecto horáriointernamentos 9-11internamentos 14-16estatística 11-13estatística 16-17

Centro não é 4NF

Page 45: 1 Gabriel David FEUP - Rua Dr. Roberto Frias, 4200-465 Porto - PORTUGAL Tel. 351-225081408 - Fax: 351-225081440 Email: gtd@fe.up.pt URL:

Projecto de BD - 45

Conclusão Uma relação que obedeça a uma das formas mais

restritivas obedece também às menos restritivas

Nível de normalização é um problema de semântica e não de valores Não basta olhar para o conteúdo das várias relações para

dizer se são 3NF, é preciso saber o significado dos dados e as dependências existentes

A normalização é uma disciplina para captar a semântica da realidade.

4NF

3NF2NF

1NF

BCNF