A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

1 Gabriel David FEUP - Rua Dr. Roberto Frias, 4200-465 Porto - PORTUGAL Tel. 351-225081408 - Fax: 351-225081440 URL:

Apresentações semelhantes


Apresentação em tema: "1 Gabriel David FEUP - Rua Dr. Roberto Frias, 4200-465 Porto - PORTUGAL Tel. 351-225081408 - Fax: 351-225081440 URL:"— Transcrição da apresentação:

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: http://www.fe.up.pt Sumário m Projecto de bases de dados relacionais m Conceitos básicos m Metodologia de normalização

2 Projecto de BD - 2 m Identificar os elementos de informação relevantes, os atributos m Como organizar os atributos em tabelas? m Optar entre vários esquemas alternativos q critérios de comparação m 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 Esquema da BD = esquemas das relações + regras de integridade

3 Projecto de BD - 3 BD Coop m Esquema q Sócios( nome, endereço, balanço ) q Encomendas( nome, produto, quant ) q Fornecedores( empresa, morada, produto, preço ) Sócios nomeendereçobalanço JoãoBoavista, 45530 PedroGalvão, 61200 AntóniaConstituição, 5-47 JaimeBreyner, 950 Encomendas nomeprodutoquant Joãofarinha5 Joãobolacha10 Antóniafarinha3 Pedrobatata8

4 Projecto de BD - 4 Defeitos do esquema m Redundância q mesmo facto, vários registos m anomalias de actualização q inconsistência m anomalias de inserção q valores nulos, chave? m anomalias de apagamento q dois factos, mesmo registo m Vantagem q dispensa a junção, eficiência q segurança vs. eficiência Fornecedores empresamoradaprodutopreço AgroMassarelos, 80farinha129 AgroMassarelos, 80batata 89 AgroMassarelos, 80bacalhau540 AlimentarIndustrial, 2massa70 AlimentarIndustrial, 2feijão80 AlimentarIndustrial, 2bolacha125 NutrienteLordelo, 509batata79 NutrienteLordelo, 509massa79 NutrienteLordelo, 509bacalhau570

5 Projecto de BD - 5 Esquema alternativo q Sócios( nome, endereço, balanço ) q Encomendas(nome, produto, quant) q Forn ( empresa, morada ) q Prod( empresa, produto, preço ) m sem deficiências m um facto, um registo m junção recupera Fornecedores q maior esforço computacional q conjuntos de dados menores Prod empresaprodutopreço Agrofarinha129 Agrobatata 89 Agrobacalhau540 Alimentarmassa 70 Alimentarfeijão 80 Alimentarbolacha125 Nutrientebatata 79 Nutrientemassa 79 Nutrientebacalhau570 Forn empresamorada AgroMassarelos, 80 AlimentarIndustrial, 2 NutrienteLordelo, 509

6 Projecto de BD - 6 Restrições de integridade m Relações representam classes e associações q não basta garantir que possuem a aridade correcta e a compatibilidade de certos domínios m Mais informação no modelo q restrições de semântica dos elementos do domínio validações q restrições de igualdade ou desigualdade interesse para o projecto m se BI 1 =BI 2 implica nome 1 =nome 2 q nome= f( BI )[nome depende funcionalmente de BI] q BI  nome[BI determina funcionalmente nome] BI 1 nome1 BI 2 nome 2

7 Projecto de BD - 7 Dependência funcional m R( A 1, A 2, …, A n ) m X = A X1 A X2 …A Xi, A Yi  A 1 … A n m Y = A Y1 A Y2 … m Caso contrário a BD está num estado inconsistente, por violar a dependência funcional X  Y Se X  Y então dois tuplos T a e T b em que X a =X b terão que satisfazer Y a =Y b

8 Projecto de BD - 8 No exemplo Fornecedores m Dependências no modelo declaradas pelo projectista empresa  morada empresa produto  preço q significam que uma empresa só tem uma morada e que uma empresa tem um só preço para cada produto m No 1º esquema é fácil violar a primeira dependência, por inserção ou actualização, devido à redundância m No 2º esquema só existe uma morada, pelo que não pode haver inconsistência (quando muito incorrecção se a morada estiver errada)

9 Projecto de BD - 9 De onde vêm as dependências m Chave q uma chave determina qualquer subconjunto de atributos da relação q R( A, B, C, D, E ) A B  A A B  C D A B  B D E m Associação muitos-um q R( A 1, A 2, B, C, D 1, D 2, E ) A 1 A 2  D 1 D 2 e como D 1 D 2 é chave da Entidade 2 A 1 A 2  A 1 A 2... C... E D 1 D 2  A 1 A 2 q Cabe ao projectista decidir quais as chaves que existem Entidade 1Entidade 2 Ass A1A1 A2A2 B C ED2D2 D1D1

10 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   m Dependências dadas, triviais, derivadas

11 Projecto de BD - 11 Fecho de um conjunto de dependências m Axiomas de Armstrong q Reflexividade (triviais)Y  X  U  X  Y q AumentoX  Y e Z  U  XZ  YZ q TransitividadeX  Y e Y  Z  X  Z q ReuniãoX  Y e X  Z  X  YZ q Pseudotransitividade X  Y e WY  Z  X W  Z q DecomposiçãoX  Y e Z  Y  X  Z F + (fecho de F ) é o conjunto de todas as dependências implicadas logicamente por F

12 Projecto de BD - 12 Dependência derivada m 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ço 2 (dada)F_nome  F_endereço 3 (2 + aumento)F_nome Produto  F_endereço Produto 4 (3 + decomposição) F_nome Produto  F_endereço 5 (4+1+reunião) F_nome Produto  F_endereço Preço

13 Projecto de BD - 13 Chave de uma relação  Dados uma relação R( A 1, A 2,..., A n ) e um conjunto de dependências funcionais F m X, subconjunto de A 1, A 2,..., A n é chave se 1. X  A 1, A 2,..., A n pertence a F + 2. Não se verifica Y  A 1, A 2,..., A n pertencer a F +, com Y  X. q A chave determina todos os atributos e é mínima.

14 Projecto de BD - 14 Exemplo das moradas m Morada( cidade, rua, cod )  F = { cidade rua  cod, cod  cidade } m cidade rua  cidade rua cod m 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

15 Projecto de BD - 15 Fecho de um conjunto de atributos  Problema: algoritmo de cálculo de F + (todas as dependências) é de ordem exponencial q 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 F 1. X(0) = X 2. 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

16 Projecto de BD - 16 Exemplo de cálculo de X + m R(A, B, C, D, E, F)  F = {AB  CF  ED C  ABE  C BC  FCD  BF ACF  BCE  AD } m Calcular o fecho de X = BF q X(0)= BF q X(1)= BDEF q X(2)= BCDEFB + = B q X(3)= ABCDEF = X + = UF + = DEF  U m Logo, X= BF é chave

17 Projecto de BD - 17 Conjuntos de dependências  F e G – conjuntos de dependências m dois conjuntos são equivalentes se os respectivos fechos forem iguais m Método de teste  Para cada Y  Z  F testar se Y  Z  G + Calcular Y + | G Verificar se Z  Y + q Vice-versa, para as dependências em G. F  G sse F + = G +

18 Projecto de BD - 18 Forma minimal  Conjunto de dependências F numa forma minimal 1. Membro direito das dependências tem só 1 atributo 2. Não existe X  A  F tal que F \ {X  A}  F 3. 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 q existe sempre pelo menos um que é minimal, isto é, que não se pode simplificar mais; q mas pode existir mais do que um minimal, pelo que não se define o mínimo.

19 Projecto de BD - 19 Determinação de forma minimal m Determine uma forma minimal de F (pág. 16) q Decompor as dependências com membro direito composto  F = {AB  C F  E CD  B C  A F  D CD  F BC  F BE  C CE  A ACF  B CE  D } q 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’’ )

20 Projecto de BD - 20 Duas formas minimais  F’ = {AB  C F  E C  A F  D CD  F BC  F BE  C CF  B CE  D }  F’’ = {AB  C F  E CD  B C  A F  D BC  F BE  C CE  D } q Neste caso, as duas formas minimais têm um número diferente de elementos

21 Projecto de BD - 21 Decomposição m Decomposição de R em R 1 e R 2 q R 1 e R 2 obtêm-se de R por projecção e substituem-na q todos os atributos de R se encontram em R 1 ou R 2 q Para recuperar R, faz-se a junção natural de R 1 e R 2  Fornecedores = FORN ⋈ PROD q Fornecedores ( empresa, morada, produto, preço ) q Forn ( empresa, morada ) q Prod ( empresa, produto, preço ) q (ver pág. 3 e 4) Decomposição sem perdas se R =  R1 (R) ⋈  R2 (R)

22 Projecto de BD - 22 Decomposição com perdas m Excesso de linhas m Perda de informação FornProd empresaproduto Agrofarinha Agrobatata Agrobacalhau Alimentarmassa Alimentarfeijão Alimentarbolacha Nutrientebatata Nutrientemassa Nutrientebacalhau MoraProd moradaprodutopreço Massarelos, 80farinha129 Massarelos, 80batata 89 Massarelos, 80bacalhau540 Industrial, 2massa70 Industrial, 2feijão80 Industrial, 2bolacha125 Lordelo, 509batata79 Lordelo, 509massa79 Lordelo, 509bacalhau570 FornProd ⋈ MoraProd  Fornecedores empresamoradaprodutopreço AgroMassarelos, 80farinha129 AgroMassarelos, 80batata 89 AgroLordelo, 509batata79 … Nutriente Massarelos, 80batata 89 Nutriente Lordelo, 509batata79...

23 Projecto de BD - 23 Decomposição sem perdas m Algoritmo de teste  R(A 1, …, A n ), F relação inicial, dependências q (R 1, …, R k )decomposição 1. Construir uma tabela k  n q coluna j  atributo A j q linha i  relação R i 2. x ij = a j se A j em R i x ij = b ij c.c. 3. Iterativamente, para cada X  Y em F, forçar linhas que coincidam em X a coincidir em Y q mesmo a j ou, se não houver, mesmo b ij 4. Decomposição é sem perdas se, no fim, houver uma linha só com a’s.

24 Projecto de BD - 24 Aplicação do algoritmo m 1º caso, sem perdas m 2º caso, com perdas Fornecedoresempresamoradaprodutopreço Forna 1 a 2 b 13 b 14 Proda 1 b 22 a 3 a 4 Fornecedoresempresamoradaprodutopreço Forna 1 a 2 b 13 b 14 Proda 1 a 2 a 3 a 4 Fornecedoresempresamoradaprodutopreço FornProda 1 b 12 a 3 b 14 MoraProdb 21 a 2 a 3 a 4 Passo 1 Passo 2 empresa  morada empresa produto  preço

25 Projecto de BD - 25 Vantagens da decomposição m Trabalhar com conjuntos menores m Redução das redundâncias m Redução das perdas de informação m Obriga a junções naturais q método da normalização vai indicar regras orientadoras para a decomposição

26 Projecto de BD - 26 Projecção das dependências q A decomposição de uma relação R, sujeita ao conjunto de dependências F, num conjunto de relações (R 1,..., R k ) é acompanhada da projecção de F sobre cada uma das R i 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. qSe não se preservarem as dependências, aquilo que é admitido na decomposição pode não o ser na junção (nem no modelo...)

27 Projecto de BD - 27 Falta de preservação MORADA(Cidade, Rua, Cod) F= {Cidade Rua  Cod, Cod  Cidade} decomposição: R 1 (Rua, Cod) F 1 = {} R 2 (Cidade, Cod) F 2 = {Cod  Cidade} sem perdas: CidadeRuaCod R1b 11 a2a2 a3a3 R2a1a1 b 22 a3a3 CidadeRuaCod R1a1a1 a2a2 a3a3 R2a1a1 b 22 a3a3 mas F 1 +F 2 /  F, i.e. não preserva as dependências Cidade Cod Porto 4000 Porto 4100 Rua Cod Cedofeita, 50 4000 Cedofeita, 50 4100 Cidade Rua Cod Porto Cedofeita, 50 4000 Porto Cedofeita, 50 4100 R1R1 R2R2 R 1  ⋈ R 2 Conclusão: Cidade Rua  Cod tem que ser verificada explicitamente

28 Projecto de BD - 28 qmé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-R i até não haver mais alterações simula G Teste de preservação m Algoritmo de teste da preservação das dependências q Entrada: decomposição (R 1,..., R k ) e dependências F q Saída: decisão sobre a preservação de F. q Método: para cada X  Y em F fazer Z:= X enquanto ocorrerem alterações a Z fazer para i:= 1 até k fazer Z:= Z  ((Z  R i ) +  Ri) /*operação R i, fecho relativo a F */ q se Y  Z então a dependência é preservada. exponencial

29 Projecto de BD - 29 Aplicação do algoritmo q 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 F 1 = { A  B, B  A}, F 2 = { B  C, C  B}, F 3 = { C  D, D  C} e F 1 + F 2 + F 3  D  A. q 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.

30 Projecto de BD - 30 Método da normalização m F - dependências funcionais (chave) m F + - fecho de um conjunto de dependências (axiomas) m X + - fecho de um conjunto de atributos relativamente a F (algoritmo) m equivalência de conjuntos de dependências (algoritmo) m forma minimal m decomposição sem perdas (algoritmo de verificação) m decomposição com preservação das dependências (algoritmo de verificação) m algoritmo de decomposição q sem perdas, para BCNF q sem perdas e com preservação das dependências para 3NF

31 Projecto de BD - 31 Primeira forma normal m Relação normalizada (1NF) q atributos simples ou compostos mas não relações q não normalizada: q normalizar: passar a forma tabular, só com valores simples m Atributo principal q se pertencer a alguma chave candidata da relação Nr produto data qualidade dia mês ano 1 cebola 01 05 86 egipto 2 feijão 25 06 86 branco, vermelho, frade

32 Projecto de BD - 32 Segunda forma normal Uma relação é da 2NF, relativamente a F: se X  A e A não está em X, então A é principal ou X não é um subconjunto estrito de uma chave q não há dependências em partes da chave q exemplo Fornecedores empresa  morada chave: empresa produto não é 2NF empresa produto morada preço

33 Projecto de BD - 33 Terceira forma normal q Uma 3NF é 2NF e não tem dependências transitivas q 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 X  A 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

34 Projecto de BD - 34 Relações 3NF m Evidenciam as dependências simples relativamente à chave m meio de estruturar a informação q uma relação 3NF tende a representar uma entidade- tipo/classe ou uma associação m mais simples para o utilizador q semântica = esquemas + dependências: clarifica m mais simples para o SGBD q implementada pelo conceito de chave primária q basta impedir chaves duplicadas m dispensa efeitos colaterais nas inserções e actualizações

35 Projecto de BD - 35 Forma normalizada Boyce-Codd m deixa cair a excepção de A ser principal m dependências só na chave m não há dependências inesperadas m exemplo: relação MORADA não é BCNF e é 3NF q todos os atributos são principais q não é possível memorizar um código de uma dada cidade se não se conhecer uma rua dessa área MORADA(Cidade, Rua, Cod) F= {Cidade Rua  Cod, Cod  Cidade} chaves (Cidade, Rua) ou (Cod, Rua) Uma relação é da BCNF, relativamente a F: se X  A e A não está em X, então X contém uma chave

36 Projecto de BD - 36 Decomposição para 3NF m Algoritmo q entrada: R e F (forma minimal) q saída: decomposição 3NF com preservação das dependências q método: atributos que não apareçam nas dependências formam uma relação uma associação muitos  muitos entre A e B, representa-se pela dependência artificial AB  decomposição nos esquemas (X,A) para cada X  A em F pares de relações entre cujos tuplos se possa estabelecer uma correspondência biunívoca são agrupados

37 Projecto de BD - 37 Exemplo de decomposição 3NF q 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 m Passo zero q Carro( matrícula, marca, potência, BI, nome, idade )  F’ = {matrícula  marca, matrícula  potência, BI  nome, BI  idade, BI matrícula   } m Passo um q Nome(BI, nome) q Idade(BI, idade ) q Marca( matrícula, marca) q Potência( matrícula, potência) q Proprietário( matrícula, BI)

38 Projecto de BD - 38 Decomposição 3NF (cont.) m Passo dois (recomposição) q Pessoa(BI, nome, idade ) q Carro( matrícula, marca, potência) q Proprietário( matrícula, BI) m se cada carro tiver dono e um só dono  matrícula  BI q Proprietário ( matrícula, BI) m Passo dois’ (recomposição) q Pessoa(BI, nome, idade ) q Carro( matrícula, marca, potência, BI)

39 Projecto de BD - 39 Outra decomposição 3NF m Decomposição q Carro( matrícula, marca, potência) F 1 = {matrícula  marca potência} q Bilhete( matrícula, BI) F 2 = {matrícula  BI} q Dono(matrícula, nome, idade ) F 3 = {} m 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 m SGBD terá que a suportar através de triggers

40 Projecto de BD - 40 Decomposição para BCNF m Algoritmo q entrada: R e F (forma minimal) q saída: decomposição sem perdas em que cada esquema é BCNF relativamente à projecção de F sobre esse esquema q método: condição inicial: D 0 = {R} em cada passo, decompõe-se uma relação que viole a BCNF: D i+1 = D i \ {S}  {S 1, S 2 } em que se verifica X  A  F, {X, A}  S, S  X +, A  X sendo S 1 = {X, A} e S 2 = S \ {A} q não garante a preservação das dependências

41 Projecto de BD - 41 Dependências multívocas m Origem das dependências multívocas Centro projectoprogramadorhorário interna- Manuel9-11 mentos António14-16 Isabel estatísticaEduarda11-13 Miguel16-17 Centro projectoprogramadorhorário internamentos Manuel9-11 internamentos António9-11 internamentos Isabel9-11 internamentos Manuel14-16 internamentos António14-16 internamentos Isabel14-16 estatísticaEduarda11-13 estatística Miguel11-13 estatísticaEduarda16-17 estatística Miguel16-17 não normalizada 1NF Chave trivial projecto  programador projecto  horário (indissociáveis)

42 Projecto de BD - 42 Efeito m Se existem estatísticaEduarda11-13 estatística Miguel16-17 m a dependência multívoca obriga à existência de estatística Miguel11-13 estatísticaEduarda16-17. m Originada pela normalização de relações q Manifestam-se pelo facto de a presença de alguns tuplos implicar a presença de outros q 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

43 Projecto de BD - 43 Características m Dependências multívocas generalizam dependências funcionais q X  Y  X  Y m Complementação (U – universo dos atributos) q X  Y  X  U-X-Y q uma relação só com dois atributos não pode violar a 4NF m Junção sem perdas (revisitada) q Seja D={R 1, R 2 } uma decomposição de R e F um conjunto de dependências funcionais e multívocas q Então D tem uma junção sem perdas relativamente a F se e só se R 1  R 2  R 1 - R 2 (ou R 2 -R 1 )

44 Projecto de BD - 44 4NF Uma relação é da 4NF, relativamente a F, se para todas as X  A então X contém uma chave (XY  R). Método da decomposição Se em R(X,A,B), X  A e X não contém uma chave, decompõe-se o esquema em R 1 (X,A) e R 2 (X,B). Programadores projectoprogramador internamentos Manuel internamentos António internamentos Isabel estatísticaEduarda estatística Miguel Horários projectohorário internamentos 9-11 internamentos 14-16 estatística 11-13 estatística16-17 Centro não é 4NF

45 Projecto de BD - 45 Conclusão m Uma relação que obedeça a uma das formas mais restritivas obedece também às menos restritivas m Nível de normalização é um problema de semântica e não de valores q 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 m A normalização é uma disciplina para captar a semântica da realidade. 4NF 3NF 2NF 1NF BCNF


Carregar ppt "1 Gabriel David FEUP - Rua Dr. Roberto Frias, 4200-465 Porto - PORTUGAL Tel. 351-225081408 - Fax: 351-225081440 URL:"

Apresentações semelhantes


Anúncios Google