Baixe o app para aproveitar ainda mais
Prévia do material em texto
BANCO DE DADOS I - GCC114 Normalização 1 Prof. Dr.-Ing. Leonardo Andrade Ribeiro DCC-UFLA, Lavras Versão dos Slides: 0.71 Prof. Dr.-Ing. Leonardo Andrade Ribeiro Projeto de Banco de Dados 2 Projeto Conceitual Projeto Lógico Projeto Físico Prof. Dr.-Ing. Leonardo Andrade Ribeiro Projeto Conceitual Principal ferramenta: Modelor E/R Dúvidas frequentes • Representar um determinado objeto do minimundo como atributos ou entidade? • Representar determinados atributos em entidades ou relacionamentos ? • Qual o grau adequado para um relacinamento? • Qual nível de abstração: especializar, generalizar, ou agregar? Princípios de projeto • Fidelidade ao minimundo • Representação de entidades e relacionamentos com semântica clara • Concisão Critérios de avaliação informais e muitas vezes subjetivos 3 Prof. Dr.-Ing. Leonardo Andrade Ribeiro Projeto Lógico 4 Projeto Conceitual Projeto Lógico Mapeamento do modelo E/R para o relacional Representação formal de objetos Definição formal de operadores ou regras de inferência Definição formal de regras de integridade Nível de abstração inferior ao modelo E/R Modelo relacional Prof. Dr.-Ing. Leonardo Andrade Ribeiro Princípios de Projeto Lógico 5 Conceitual Lógico Evitar: • Informação redundante em tuplas • Valores NULL em tuplas; • Relacionamentos que não envolvam chaves Problemas: • Maior consumo de espaço de armazenamento • Anomalias em operações − Overhead − Inconsistência − Dificuldade de interpretação de resultados − Geração de tuplas espúrias Prof. Dr.-Ing. Leonardo Andrade Ribeiro Informação Redundante em Tuplas 6 Dep_Nome Pesquisa Vendas Diretoria Dnum 1 4 5 Ger_CPF 111111111 122222222 555555555 809333333 Nome José Silva João Rocha Alan Ribeiro Maria Santos Márcia Silva CPF 111111111 122222222 444444444 555555555 D_Nasc 07/09/1969 23/12/1969 13/10/1971 14/05/1973 18/11/1970 Endereço Av. Brasil, 16 Rua 9, 232 Av. D, 150 Av. C126, 98 Rua 3, 25 Dnum 1 4 4 4 5 Funcionário Departamento Prof. Dr.-Ing. Leonardo Andrade Ribeiro Informação Redundante em Tuplas 7 Dep_Nome Pesquisa Vendas Diretoria Dnum 1 4 5 Ger_CPF 111111111 122222222 555555555 809333333 Nome José Silva João Rocha Alan Ribeiro Maria Santos Márcia Silva CPF 111111111 122222222 444444444 555555555 D_Nasc 07/09/1969 23/12/1969 13/10/1971 14/05/1973 18/11/1970 Endereço Av. Brasil, 16 Rua 9, 232 Av. D, 150 Av. C126, 98 Rua 3, 25 Dnum 1 4 4 4 5 Funcionário Departamento NATURAL JOIN Prof. Dr.-Ing. Leonardo Andrade Ribeiro Informação Redundante em Tuplas 8 809333333 Nome José Silva João Rocha Alan Ribeiro Maria Santos Márcia Silva CPF 111111111 122222222 444444444 555555555 D_Nasc 07/09/1969 23/12/1969 13/10/1971 14/05/1973 18/11/1970 Endereço Av. Brasil, 16 Rua 9, 232 Av. D, 150 Av. C126, 98 Rua 3, 25 Dnum 1 4 4 4 5 Dep_Nome Pesquisa Vendas Vendas Ger_CPF 111111111 122222222 122222222 Vendas Diretoria 122222222 555555555 Func_Depto Prof. Dr.-Ing. Leonardo Andrade Ribeiro Redundância 9 809333333 Nome José Silva João Rocha Alan Ribeiro Maria Santos Márcia Silva CPF 111111111 122222222 444444444 555555555 D_Nasc 07/09/1969 23/12/1969 13/10/1971 14/05/1973 18/11/1970 Endereço Av. Brasil, 16 Rua 9, 232 Av. D, 150 Av. C126, 98 Rua 3, 25 Dnum 1 4 4 4 5 Dep_Nome Pesquisa Vendas Vendas Ger_CPF 111111111 122222222 122222222 Vendas Diretoria 122222222 555555555 Func_Depto Desperdício de espaço de armazenamento Func_Depto não possui semântica clara Obs.: Operação de junção entre as relações originais Funcionário e Departamento é evitada: pode ser justificável por questões de performance Prof. Dr.-Ing. Leonardo Andrade Ribeiro Anomalias de Atualização: Inserção Inserção de um novo funcionário • Funcionário não está lotado em nenhum departamento ainda 10 Jair Cruz 111122233 23/12/1975 Rua 4, 250 NULL NULL NULL Nome José Silva CPF 111111111 D_Nasc 07/09/1969 Endereço Av. Brasil, 16 Dnum 1 Dep_Nome Pesquisa Ger_CPF 111111111 Func_Depto Prof. Dr.-Ing. Leonardo Andrade Ribeiro Anomalias de Atualização: Inserção Inserção de um novo funcionário • Funcionário não está lotado em nenhum departamento ainda • Inconsistência após sucessivas inserções 11 Jair Cruz 111122233 23/12/1975 Rua 4, 250 NULL NULL NULL 234234234 Luís Alves 11/10/1975 Av. L, 42 1 Research 555555555 Nome José Silva CPF 111111111 D_Nasc 07/09/1969 Endereço Av. Brasil, 16 Dnum 1 Dep_Nome Pesquisa Ger_CPF 111111111 Func_Depto Prof. Dr.-Ing. Leonardo Andrade Ribeiro Anomalias de Atualização: Inserção Inserção de um novo funcionário • Funcionário não está lotado em nenhum departamento ainda • Inconsistência Inserção de um novo departamento • Departamento não possui nenhum funcionário 12 Jair Cruz 111122233 23/12/1975 Rua 4, 250 NULL NULL NULL 234234234 Luís Alves 11/10/1975 Av. L, 42 1 Research 555555555 NULL NULL NULL NULL 4 Vendas 122222222 Nome José Silva CPF 111111111 D_Nasc 07/09/1969 Endereço Av. Brasil, 16 Dnum 1 Dep_Nome Pesquisa Ger_CPF 111111111 Func_Depto Prof. Dr.-Ing. Leonardo Andrade Ribeiro Anomalias de Atualização: Inserção Inserção de um novo funcionário • Funcionário não está lotado em nenhum departamento ainda • Inconsistência Inserção de um novo departamento • Departamento não possui nenhum departamento • Depois que o primeiro funcionário é inserido a tupla inserida inicialmente torna-se desnecessária 13 Jair Cruz 111122233 23/12/1975 Rua 4, 250 NULL NULL NULL 234234234 Luís Alves 11/10/1975 Av. L, 42 1 Research 555555555 NULL NULL NULL NULL 4 Vendas 122222222 Alan Ribeiro 809333333 13/10/1971 Av. D, 150 4 Vendas 122222222 Nome José Silva CPF 111111111 D_Nasc 07/09/1969 Endereço Av. Brasil, 16 Dnum 1 Dep_Nome Pesquisa Ger_CPF 111111111 Func_Depto Prof. Dr.-Ing. Leonardo Andrade Ribeiro Anomalias de Atualização: Deleção Deleção do último funcionário de um departamento exclui toda informação sobre este departamento do banco de dados 14 809333333 Nome João Rocha Alan Ribeiro Maria Santos Márcia Silva CPF 122222222 444444444 555555555 D_Nasc 23/12/1969 13/10/1971 14/05/1973 18/11/1970 Endereço Rua 9, 232 Av. D, 150 Av. C126, 98 Rua 3, 25 Dnum 4 4 4 5 Dep_Nome Vendas Vendas Ger_CPF José Silva 111111111 07/09/1969 Av. Brasil, 16 1 Pesquisa 111111111 122222222 122222222 Vendas Diretoria 122222222 555555555 Func_Depto Prof. Dr.-Ing. Leonardo Andrade Ribeiro Anomalias de Atualização: Modificação Modificação de um atributo de um departamento requer a modificação de todas tuplas contendo informação deste departamento15 809333333 Nome João Rocha Alan Ribeiro Maria Santos Márcia Silva CPF 122222222 444444444 555555555 D_Nasc 23/12/1969 13/10/1971 14/05/1973 18/11/1970 Endereço Rua 9, 232 Av. D, 150 Av. C126, 98 Rua 3, 25 Dnum 4 4 4 5 Dep_Nome Vendas Vendas Ger_CPF José Silva 111111111 07/09/1969 Av. Brasil, 16 1 Pesquisa 111111111 122222222 122222222 Vendas Diretoria 122222222 555555555 Func_Depto Prof. Dr.-Ing. Leonardo Andrade Ribeiro Anomalias de Atualização: Modificação Modificação de um atributo de um departamento requer a modificação de todas tuplas contendo informação deste departamento 16 809333333 Nome João Rocha Alan Ribeiro Maria Santos Márcia Silva CPF 122222222 444444444 555555555 D_Nasc 23/12/1969 13/10/1971 14/05/1973 18/11/1970 Endereço Rua 9, 232 Av. D, 150 Av. C126, 98 Rua 3, 25 Dnum 4 4 4 5 Dep_Nome Vendas Vendas Ger_CPF José Silva 111111111 07/09/1969 Av. Brasil, 16 1 Pesquisa 111111111 122222222 Vendas Diretoria 122222222 555555555 Func_Depto 809333333 Prof. Dr.-Ing. Leonardo Andrade Ribeiro Anomalias de Atualização: Modificação Modificação de um atributo de um departamento requer a modificação de todas tuplas contendo informação deste departamento 17 809333333 Nome João Rocha Alan Ribeiro Maria Santos Márcia Silva CPF 122222222 444444444 555555555 D_Nasc 23/12/1969 13/10/1971 14/05/1973 18/11/1970 Endereço Rua 9, 232 Av. D, 150 Av. C126, 98 Rua 3, 25 Dnum 4 4 4 5 Dep_Nome Vendas Vendas Ger_CPF José Silva 111111111 07/09/1969 Av. Brasil, 16 1 Pesquisa 111111111 Vendas Diretoria 555555555 Func_Depto 809333333 809333333 809333333 Prof. Dr.-Ing. Leonardo Andrade Ribeiro Valore NULL em Tuplas Desperdício de espaço de armazenamento Diferentes interpretações: não aplicável, desconhecido, ausente Diferentes semânticas (resultados) para operações envolvendo comparações como junções internas e externas, agregações e agrupamentos 18 Funcionário 809333333 Nome José Silva João Rocha Alan Ribeiro Maria Santos Márcia Silva CPF 111111111 122222222 444444444 555555555 D_Nasc 07/09/1969 23/12/1969 13/10/1971 14/05/1973 18/11/1970 Endereço Av. Brasil, 16 Rua 9, 232 Av. D, 150 Av. C126, 98 Rua 3, 25 Dnum 1 4 4 4 5 Nr_Vaga_Est NULL NULL NULL Sala_Nr 13 NULL NULL NULL 33 NULL 42 Prof. Dr.-Ing. Leonardo Andrade Ribeiro Geração de Tuplas Espúrias 19 Func_Nome José Silva Maria Santos José Silva Maria Santos 111111111 CPF 111111111 444444444 444444444 Pno 1 2 3 4 Proj_Nome ProdutoA ProdutoB ProdutoC ProdutoD Horas 4 2 4 6 Proj_Local São Paulo São Paulo Belo Horizonte Belo Horizonte Func_Proj Prof. Dr.-Ing. Leonardo Andrade Ribeiro Geração de Tuplas Espúrias 20 Func_Nome José Silva Maria Santos José Silva Maria Santos 111111111 CPF 111111111 444444444 444444444 Pno 1 2 3 4 Proj_Nome ProdutoA ProdutoB ProdutoC ProdutoD Horas 4 2 4 6 Proj_Local São Paulo São Paulo Belo Horizonte Belo Horizonte Func_Proj Func_Local Proj_Local São Paulo São Paulo Belo Horizonte Belo Horizonte Func_Nome José Silva Maria Santos José Silva Maria Santos Func_Proj1 111111111 CPF 111111111 444444444 444444444 Proj_Nome ProdutoA ProdutoB ProdutoC ProdutoD Horas 4 2 4 6 Proj_Local São Paulo São Paulo Belo Horizonte Belo Horizonte Pno 1 2 3 4 Prof. Dr.-Ing. Leonardo Andrade Ribeiro Geração de Tuplas Espúrias 21 Func_Local Proj_Local São Paulo São Paulo Belo Horizonte Belo Horizonte Func_Nome José Silva Maria Santos José Silva Maria Santos Func_Proj1 111111111 CPF 111111111 444444444 444444444 Proj_Nome ProdutoA ProdutoB ProdutoC ProdutoD Horas 4 2 4 6 Proj_Local São Paulo São Paulo Belo Horizonte Belo Horizonte Pno 1 2 3 4 NATURAL JOIN Prof. Dr.-Ing. Leonardo Andrade Ribeiro Func_Nome José Silva José Silva Maria Santos Maria Santos 111111111 CPF 111111111 444444444 444444444 Pno 1 2 1 2 Proj_Nome ProdutoA ProdutoB ProdutoA ProdutoB Horas 4 2 4 2 Proj_Local São Paulo São Paulo São Paulo São Paulo José Silva José Silva Maria Santos Maria Santos 111111111 111111111 444444444 444444444 3 4 3 4 ProdutoC ProdutoD ProdutoC ProdutoD 4 6 4 6 Belo Horizonte Belo Horizonte Belo Horizonte Belo Horizonte Geração de Tuplas Espúrias 22 Prof. Dr.-Ing. Leonardo Andrade Ribeiro Princípios de Projeto Lógico 23 Representação formal de objetos Definição formal de operadores ou regras de inferência Definição formal de regras de integridade Modelo relacional Evitar informação redundante Evitar valores NULL Evitar relacionamentos que não envolvam chaves Princípios de Projeto Necessidade de critérios de avaliação formais Prof. Dr.-Ing. Leonardo Andrade Ribeiro Normalização (Intuição) 24 Forma Normal: Conceito definido por uma ou mais condições (ou restrições) envolvendo aspectos semânticos de atributos A B C E D A B C E D C D E D Redundância Anomalias Está na forma normal? X X Decomposição Redundância Anomalias Processo de Normalização Principal Ferramenta: Dependência Funcional Prof. Dr.-Ing. Leonardo Andrade Ribeiro Dependência Funcional (DF) 25 Definição: Uma dependência funcional, denotada por X→ Y, entre dois conjuntos de atributos X e Y de um esquema de relação R especifica uma restrição sobre as possíveis tuplas de uma relação r(R). Esta restrição determina que para quaisquer tuplas t1 e t2 em r, sempre que t1[X]=t2[X], teremos t1[Y]=t2[Y] Prof. Dr.-Ing. Leonardo Andrade Ribeiro Dependência Funcional 26 t1 t2 X→ Y X Y Prof. Dr.-Ing. Leonardo Andrade Ribeiro Dependência Funcional 27 t1 t2 X→ Y X Y Se os valores de t1 e t2 são iguais aqui, Prof. Dr.-Ing. Leonardo Andrade Ribeiro Dependência Funcional Dizemos que X unicamente (ou funcionalmente) determina Y e que Y é funcionamente dependente de X Note que X→ Y não implica que Y→ X • É possível ter o mesmo valor de Y para diferentes valores de X 28 t1 t2 X→ Y X Y Se os valores de t1 e t2 são iguais aqui, então eles devem também ser iguais aqui. Prof. Dr.-Ing. Leonardo Andrade Ribeiro Dependência Funcional Uma dependência funcional é uma propriedade semântica de um esquema de relação 𝑅 e deve ser válida para qualquer relação 𝑟(𝑅) Exemplos • DF1: CPF → {Nome, D_Nasc, Endereço} • DF2: Dno → {D_Nome, Ger_CPF} • DF3: {CPF, PNum} → Horas • DF4: Proj_ID → Proj_Local DFs são determinadas pela interpretação do mininundo. • Por exemplo, secrianças usando o CPF do pai ou da mãe podem ser registradas na relação, então DF1 não é válida; se um mesmo projeto pode estar relacionado com dois locais diferentes, então DF4 não é válida, etc 29 Prof. Dr.-Ing. Leonardo Andrade Ribeiro Dependência Funcional Dizemos que uma DF X → Y é: • Trivial: se Y ⊆ X • Não trivial: se Y – X ≠ ∅ • Totalmente não trivial: se X ∩ Y = ∅ • Completa: se ∄ 𝑋′ → 𝑌 tal que 𝑋′ ⊂ 𝑋 • Parcial: se ∃ 𝑋′ → 𝑌 tal que 𝑋′ ⊂ 𝑋 30 Prof. Dr.-Ing. Leonardo Andrade Ribeiro Regras de Inferência (RI) Permite inferir novas FDs a partir um conjunto de FDs. Notação: X→ Y X’→ Y’ • Sempre que uma relação r satisfaz X→ Y, então r também satisfaz X’→ Y’ • Simplificação: {X,Z} → {Y,Z} XZ → YZ Definição: Dado um conjunto de DFs F, o conjunto de todas DFs em F assim como todas DFs que podem ser inferidas de F é chamado encerramento (closure) de F e denotado por F+ 31 Prof. Dr.-Ing. Leonardo Andrade Ribeiro Regras de Inferência de Armstrong1 1. Reflexividade (RI 1): Se X Y, então X→ Y 2. Aumento (RI 2): {X → Y} ⊨ XZ → YZ 3. Transitividade (RI 3): {X → Y, Y→ Z} ⊨ X → Z As RIs de Armstrong são consistentes (sound) e completas. Dado um um conjunto de DFs F, a aplicação sistemática das RIs de Armstrong produz um conjunto F+ em que: • Todas DF em F+ são válidas (consistência) • Toda DF que podem ser inferida de F está em F+ (completude) 32 1. William Ward Armstrong: Dependency Structures of Data Base Relationships. IFIP Congress 1974: 580-583 Prof. Dr.-Ing. Leonardo Andrade Ribeiro Derivando Novas RIs Decomposição (RI4): {X → YZ} ⊨ { X → Y, X → Z} 1. X → YZ; 2. YZ → Y (RI1); 3. X → Y (RI 3 em 1 e 2) União (RI 5): {X → Y, X → Z} ⊨ { X → YZ} 1. X → Y 2. X → Z; 3. X → XY (RI2 em 1, aumento X; note que XX = X) 4. XY → YZ (RI2 em 2, aumento Y) 5. X → YZ (RI3 em 3 e 4) 33 Prof. Dr.-Ing. Leonardo Andrade Ribeiro Exercício Mostre que a seguinte RI é válida: • Composição (RI6): {X → A, Y → B} ⊨ { XY → AB} 34 Prof. Dr.-Ing. Leonardo Andrade Ribeiro Exercício: Solução Composição (RI6): {X → A, Y → B} ⊨{ XY → AB} 1. X → A 2. Y → B 3. XY → AY (RI2 em 1, aumento Y) 4. AY → BA (RI2 em 2, aumento A) 5. XY → BA (RI3 em 3 e 4) 35 Prof. Dr.-Ing. Leonardo Andrade Ribeiro Normalização de Relações O processo de normalização de uma relação consiste em analisar uma dado esquema de relação baseado-se nas FDs e chaves correspondentes para obter propriedades desejáveis, em particular: • Minimização da redundância • Minimização das anomalias de inserção, deleção, modificação Podemos dizer que o processo de normalização emprega uma metodologia top-down para projeto de BDs, também chamada de projeto relacional baseado em análise 36 Prof. Dr.-Ing. Leonardo Andrade Ribeiro Testes de Forma Normal e Decomposições Esquemas de relações que não satisfazem certas condições ---chamadas testes de forma normal --- são decompostos em esquemas de relação menores que satisfazem estas condições e, portanto, possuem as propriedades desejáveis mencionadas anteriormente 37 Prof. Dr.-Ing. Leonardo Andrade Ribeiro Processo de Normalização Em resumo, o processo de normalização possui dois componentes conceituais principais: • Um framework formal para análise do esquema de relações baseando-se em suas chaves e dependências funcionais entre seus atributos • Uma conjunto de testes de forma normal que pode ser aplicado sobre relações até que, possivelmente após uma série de decomposições de relãções, o BD relacional possa ser normalizado até o nível desejado 38 Prof. Dr.-Ing. Leonardo Andrade Ribeiro Forma Normal A forma normal de uma relação é determinada pelo teste de forma normal mais estrito que uma relação satisfaz • Indica o nível de normalização da relação 39 Prof. Dr.-Ing. Leonardo Andrade Ribeiro Normalização vs. Performance Note que relações decompostas durante o processo de normalização são, frequentemente, recompostas através de junções para atender consultas ao banco de dados • Necessidade de recompor a informação original • Exemplo: Relação 𝐹𝑢𝑛𝑐_𝐷𝑒𝑝𝑡𝑜 do exemplo anterior é decomposta no processo de normalização; entretanto, aplicações precisam da informação em 𝐹𝑢𝑛𝑐𝑖𝑜𝑛á𝑟𝑖𝑜 ⋈ 𝐷𝑒𝑝𝑎𝑟𝑡𝑎𝑚𝑒𝑛𝑡𝑜 Relações não-normalizadas evitam a necessidade da realização de junções • Maior performance em operações de consultas • Em contrapartida, como visto, operações de atualização são prejudicadas Qual tipo de operação é mais importante ou frequente? • Decisão de projeto físico 40 Prof. Dr.-Ing. Leonardo Andrade Ribeiro Definição: Atributos Primos Um atributo de um esquema de relação 𝑅 é chamado atributo primo se o mesmo faz parte de alguma chave de 𝑅 41 Prof. Dr.-Ing. Leonardo Andrade Ribeiro Notação Gráfica 42 CPF Pnum Horas Func_Nome Proj_Nome Proj_Local DF3 DF2 DF1 Chave Conjunto de FDs: • DF1 = {CPF, Pnum} → {Horas} • DF2 = {CPF} → {Func_Nome} • DF3 = {Pnum} → {Proj_Nome,Proj_Local} Prof. Dr.-Ing. Leonardo Andrade Ribeiro Forma Normal de Boyce-Codd Uma esquema relação 𝑅 está na forma normal de Boyce-Codd (FNBC) se e somente se: sempre que existir uma DF não trivial 𝑋1𝑋2 … 𝑋𝑛 → 𝑌 para 𝑅, temos que 𝑋1, 𝑋2, … , 𝑋𝑛 é uma superchave para 𝑅 43 Prof. Dr.-Ing. Leonardo Andrade Ribeiro Exemplo 1 44 CPF Pnum Horas Func_Nome Proj_Nome Proj_Local DF3 DF2 DF1 Func_Proj Temos que DF2 e DF3 violam a FNBC • DF2 não é trivial e CPF não é superchave de Func_Proj • DF3 não é trivial e Pnum não superchave de Func_Proj Prof. Dr.-Ing. Leonardo Andrade Ribeiro Exemplo 2 45 Nome CPF D_Nasc Endereço Dnum Dep_Nome Ger_CPF Func_Depto DF1 DF2 Temos que DF2 viola a FNBC • DF2 não é trivial e Dnum não é superchave de Func_Depto • Note que neste caso temos uma dependência transitiva entre CPF e Dep_Nome e Ger_CPF Prof. Dr.-Ing. Leonardo Andrade Ribeiro Decomposição de Relações 46 𝑋 𝑌 𝑍 Dada uma relação 𝑅 definida por um conjunto de atributos 𝐴, considere uma DF 𝑋 → 𝑌 violando FNBC onde 𝑋 ⊆ 𝐴 e Y ⊆ 𝐴 Seja 𝑍 = 𝑋 + 𝐴 − 𝑌 , isto é, 𝑍 corresponde a todos de A com exeção dos elementos de 𝑌 que estãm em 𝑋; note que 𝐴 = 𝑍 + 𝑌 Uma decomposição de R para evitar a violação da FNBC causada por 𝑋 → 𝑌 é dada por 𝑅1 = 𝑍 + 𝑋 e 𝑅2 = 𝑋 + 𝑌 R1 R2 Decomposição FNBC: Exemplo 1 47 CPF Pnum Horas Func_Nome Proj_Nome Proj_Local DF3 DF2 DF1 Func_Proj CPF Pnum Horas Proj_Nome Proj_Local CPF Func_Nome Func_Proj1 Func_Proj2 DF3 Eliminando a violação da FNBC causada por DF2 Decomposição FNBC: Exemplo 1 48 CPF Pnum Horas Proj_Nome Proj_Local Func_Proj2 DF3 Eliminando a violação da FNBC causada por DF3 CPF Pnum Func_Proj3 Horas Pnum Proj_Nome Proj_Local Func_Proj4 Decomposição FNBC: Exemplo 2 49 Nome CPF D_Nasc Endereço Dnum Dep_Nome Ger_CPF Func_Depto DF1 DF2 Eliminando a violação da FNBC causada por DF2 Dnum Dep_Nome Ger_CPF Nome CPF D_Nasc Endereço Dnum Func_Depto1 Func_Depto2 Prof. Dr.-Ing. Leonardo Andrade Ribeiro Problemas com FNBC Apesar de garantir que as anomalias discutidas anteriormente serão evitadas, decomposição baseada na FNBC pode resultar em perda de informação • Algumas FDs podem ser perdidas Considere o exemplo a seguir 50 Prof. Dr.-Ing. Leonardo Andrade Ribeiro Decomposição FNBC: Exemplo 3 51 Titulo Cidade Cinema Reserva_Cinema A relação Reserva_Cinema armazena informações sobre reservas de tickets em cinema DF1 captura a restrição de que não é possível reservar um filme em dois cinemas localizados mesma cidade DF2 captura a restrição de que um cinema pode existir em apenas uma cidade Temos duas chaves candidatas: {Titulo, Cidade} e {Cinema, Titulo} são chaves Temos portanto que a DF2 representa um violação da FNBC DF1 DF2 Prof. Dr.-Ing. Leonardo Andrade Ribeiro Decomposição FNBC: Exemplo 3 52 Titulo Cidade Cinema DF1 DF2 Eliminando a violação da FNBC causada por DF2 Cidade Cinema Titulo Cinema Após a decomposição, temos que DF1 é perdida! Reserva_Cinema Reserva_Cinema1 Reserva_Cinema2 Prof. Dr.-Ing. Leonardo Andrade Ribeiro Decomposição FNBC: Exemplo 3 53 Titulo Cinema Matrix Shopping Matrix Centro Cidade Cinema Lavras Shopping Lavras Centro Reserva_Cinema1 Reserva_Cinema2 Titulo Cidade Cinema Matrix Lavras Shopping Matrix Lavras Centro ⋈ Prof. Dr.-Ing. Leonardo Andrade Ribeiro Terceira Forma Normal (3FN) Um esquema de relação 𝑅 está em 3FN se e somente se: sempre que existir uma DF não trivial 𝑋1𝑋2 … 𝑋𝑛 → 𝑌 para 𝑅, temos que 𝑋1, 𝑋2, … , 𝑋𝑛 é uma superchave para 𝑅 ou Y é um atributo primo 54 Prof. Dr.-Ing. Leonardo Andrade Ribeiro Terceira Forma Normal (3FN) Temos que tanto DF1 quanto DF2 não violam a 3FN e portanto Reserva_Cinema não precisa ser decomposta (de acordo com o teste baseado em 3FN) 55 Titulo Cidade Cinema DF1 DF2 Reserva_Cinema Prof. Dr.-Ing. Leonardo Andrade Ribeiro Outras Formas Normais Se temos a Terceira Forma Normal, onde estão as duas primeiras formas normas? Estas formas normais possuem pouco uso uso prático nos dias atuais Pelo interesse histórico, iremos descrevê-las a seguir 56 Prof. Dr.-Ing. Leonardo Andrade Ribeiro Primeira Forma Normal (1FN) Um esquema de relação 𝑅 está em 1FN se todos valores de atributos são atômicos • Atributos compostos e multivalorados não são permitidos • Relações aninhadas, isto é, uma relação aparecendo como valor do atributo de outra relação não é permitido 1FN é considerada como parte da definição de um esquema de relação 57 Prof. Dr.-Ing. Leonardo Andrade Ribeiro Segunda Forma Normal (2FN) Um esquema de relação está em 2NF se todo atributo não-primo de 𝑅 é completamente dependente de todas chaves de 𝑅 • Nocaso de uma chave composta por um conjunto de atributos, um atributo não-primo não pode ser dependente de parte dos atributos de uma chave • Em outras palavras, não existe uma dependência parcial entre atributos não-primos e chaves Esta forma normal é menos restritiva que 3FN 58 Prof. Dr.-Ing. Leonardo Andrade Ribeiro 2FN: Exemplo Temos que DF2 e DF3 violam 2NF • A chave (primária) de Func_Proj é composta pelos atributos CPF e Pnum • Func_Nome é um atributo não-primo e é funcionalmente dependente de CPF (DF2) • Proj_Nome e Proj_Local são atributos não-primos e funcionalmente dependentes de Pnum (DF3) 59 CPF Pnum Horas Func_Nome Proj_Nome Proj_Local DF3 DF2 DF1 Func_Proj 3FN: Definição Alternativa Um esquema de relação está em 3NF Normal se a mesma está em 2NF nenhum atributo não-primo de 𝑅 é transitivamente dependente de uma chave de 𝑅 • Relembrando, uma DF 𝑋 → 𝑍 é dita transitiva se a mesma é derivada das DFs 𝑋 → 𝑌 e 𝑌 → 𝑍 • No exemplo abaixo, DF2 viola 3FN porque Dep_Nome e Ger_CPF são atributos não primos dependem transitivamente da chave CPF 60 Nome CPF D_Nasc Endereço Dnum Dep_Nome Ger_CPF Func_Depto DF1 DF2
Compartilhar