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

Slides:



Advertisements
Apresentações semelhantes
T I  C Módulo 2 Base de dados
Advertisements

Base de Dados para a Gestão de Informação de Natureza Pedagógica
Normalização em BD Relacional
SISTEMAS DE INFORMAÇÃO
DESENHO de BASE de DADOS RELACIONAL
Normalização.
Modelo Relacional.
Evolução dos SGBD’s (2ª Parte).
MODELO RELACIONAL Transparências baseadas no capítulo 3 do livro de KORTH e SILBERCHATZ e capítulo 7 do livro de ELMASRI e NAVATHE Juliana Amaral e Rodrigo.
O Modelo E-R Definição: Características
Sistemas de Informação
1 Gabriel David FEUP - Rua dos Bragas, Porto Codex - PORTUGAL Tel Fax: URL:
Linguagens relacionais
Manipulação algébrica
©Silberschatz, Korth and Sudarshan (modificado)1Database System Concepts result := {R}; done := false; calcular F+; while (not done) do if (há um esquema.
1 Domínios Finitos A eficiência das programas em domínios finitos (incluindo booleanos) podem ainda ser melhoradas pelo uso de Algoritmos de Propagação.
Modelo Entidade-Relacionamento
Introdução a Bancos de Dados
Universidade Federal de Santa Catarina
Modelo Relacional parte 1
Pesquisa em Memória Primária
Pesquisa em Memória Primária
(Dependência Funcional e Normalização)
Programação e Sistemas da Informação
Modelo relacional noções básicas tradução do modelo de objectos
FORMAS DE REPRESENTAÇÃO QUE SERVEM PARA DESCREVER AS ESTRUTURAS DAS INFORMAÇÕES CONTIDAS EM UM BD. Modelos de Dados.
Banco de Dados Aplicado ao Desenvolvimento de Software
Banco de Dados Prof. MSc Wagner Siqueira Cavalcante
Normalização Disciplina: Banco de dados II.
Prof. Alfredo Parteli Gomes
SQL Server 2012 Introdução a Modelagem de Dados
Normalização de Dados. 2 SGBD + Banco de Dados Independência de dados Consistência de dados.
Banco de Dados Aplicado ao Desenvolvimento de Software - BDD
Produto cartesiano Mais parâmetros dos dados Algoritmo
Problemas de Fluxo Máximo
Tuning Lílian Simão Oliveira.
INTRODUÇÃO ÁS BASES DE DADOS
Capítulo 7: Design de Bases de Dados
Ano letivo CURSO EFA DE TÉCNICO DE INFORMÁTICA E SISTEMAS Docente: Ana Batista EDUCAÇÃO E FORMAÇÃO DE ADULTOS Curso EFA – Sec. Turma C
Análise de Sistemas de Informação
Objetivos Apresentar de forma breve a Metodologia de Modelagem Orientada a Objetos (OMT). A partir de um modelo de objetos de um sistema de informação.
Banco de Dados Aplicado ao Desenvolvimento de Software
Mestrado em Engenharia de Computação área de concentração Geomática
ANÁLISE DE SISTEMAS 1Trabalho elaborado por Alexandra.
Normalização Álvaro Vinícius de Souza Coêlho
©Silberschatz, Korth and Sudarshan (modificado)7.3.1Database System Concepts Capítulo 7: Design de Bases de Dados 1ª Forma Normal Objectivos com Design.
©Silberschatz, Korth and Sudarshan (Modificado)3.1.1Database System Concepts Capítulo 3: Modelo Relacional Estrutura das Bases de Dados Relacionais Redução.
©Silberschatz, Korth and Sudarshan (modificado)7.3.1Database System Concepts Capítulo 7: Design de Bases de Dados 1ª Forma Normal Objectivos com Design.
Optimização - 1 Optimização de perguntas 1 Processamento de selecções 2 Processamento de junções 3 Manipulação algébrica.
Sumário 1 SQL Embutida 2 Processamento de Consultas
Desenvolvimento de uma base de dados
Formas Normais Pedro Sousa 1 Dependências Funcionais e Formas Normais.
©Silberschatz, Korth and Sudarshan (modificado)7.4.1Database System Concepts Capítulo 7: Design de Bases de Dados 1ª Forma Normal Objectivos com Design.
Dependências Funcionais e Formas Normais
Modelo de objectos - 1 Modelo orientado por objectos m Sumário q limitações do modelo relacional q modelo de objectos q linguagem orientada por objectos.
©Silberschatz, Korth and Sudarshan (modificado)7.1.1Database System Concepts Capítulo 7: Design de Bases de Dados Objectivos com Design de Bases de Dados.
Objetos em Bancos de Dados Relacionais Alcides Calsavara.
Banco de Dados I Unidade 3: Projeto de BD Relacional
Modelo Relacional Marcelo Mendes Manaus – 2015.
Arnaldo Rocha1995 BANCO DE DADOS Modelo Relacional.
Algoritmo de Transportes Objecto de Aprendizagem Manuel Pina MarquesDEIG
FEATURE SELECTION. Introdução  Estudo de metodologias relacionadas a seleção de atributos  Maldição da dimensionalidade  O número de atributos do desenvolvedor.
Bases de dados relacionais
@ Rafael Machado – ACCESS Base de Dados para a Gestão de Informação de Natureza Pedagógica.
Modelo de Entidade-relacionamento
Fundamentos de Banco de Dados Prof. André Cypriano M. Costa
 O Modelo E-R (Entidade-Relação)
Modelagem de Dados Aula 3.
T ABELAS Banco de dados. Banco de dados = Conjunto de dados armazenado eletrônicamente Relação = Conjunto de elementos da mesma estrutura R ELAÇÃO.
Universidade de Passo Fundo Tecnologia em Sistemas de Informação TSI109- Fundamentos de Banco de Dados (Restrições de Integridade) Prof. Alexandre Tagliari.
Transcrição da apresentação:

1 Gabriel David FEUP - Rua Dr. Roberto Frias, Porto - PORTUGAL Tel Fax: URL: Sumário m Projecto de bases de dados relacionais m Conceitos básicos m Metodologia de normalização

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

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, PedroGalvão, AntóniaConstituição, 5-47 JaimeBreyner, 950 Encomendas nomeprodutoquant Joãofarinha5 Joãobolacha10 Antóniafarinha3 Pedrobatata8

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

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

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

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

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)

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

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

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

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

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.

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

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

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

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 +

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.

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

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

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)

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...

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.

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

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

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

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, Cedofeita, Cidade Rua Cod Porto Cedofeita, Porto Cedofeita, R1R1 R2R2 R 1  ⋈ R 2 Conclusão: Cidade Rua  Cod tem que ser verificada explicitamente

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

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.

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

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 egipto 2 feijão branco, vermelho, frade

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

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

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

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

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

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)

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)

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

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

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)

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ísticaEduarda 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

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 )

Projecto de BD NF 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 estatística estatística16-17 Centro não é 4NF

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