Bancos de Dados Mestrado em Engenharia de Computação área de concentração Geomática UERJ © Oscar Luiz Monteiro de Farias 1 Dependências Funcionais e Normalização para Bancos de Dados Relacionais UERJ © Oscar Luiz Monteiro de Farias 2 Projeto de Banco de Dados... Objetivo: gerar um conjunto de esquemas de relações que permita: • armazenar informações sem redundâncias • recuperar informações com facilidade (queries) UERJ © Oscar Luiz Monteiro de Farias 3 Projeto de Banco de Dados... Técnicas aplicadas até o momento: • Senso comum na construção das relações (tabelas) • Mapeamento de esquemas baseados no modelo ER em esquemas do modelo relacional (também se usa o senso comum na construção do modelo ER) • Problema: Não possuímos medida formal alguma, de que um esquema de relações seja melhor que outro. Estamos completamente dependentes da intuição do projetista. UERJ © Oscar Luiz Monteiro de Farias 4 Projeto de Banco de Dados... • Há pelo menos dois níveis - conceitual e lógico - em relação aos quais pode-se avaliar a qualidade de um esquema. • O nível conceitual refere-se a como os usuários interpretam os esquemas das relações e o significado de seus atributos. • O nível lógico/físico preocupa-se com o representação das tuplas, de como elas serão armazenadas e atualizadas. Aplica-se somente às relações bases. UERJ © Oscar Luiz Monteiro de Farias 5 Projeto de Banco de Dados... • As formas normais são “ferramentas” utilizadas no projeto de um banco de dados relacional que ajudam a eliminar uma série de efeitos não desejados, fruto da escolha inadequada de determinados esquemas para as relações. • Uma relação é dita estar em forma normal se ela satisfizer a um conjunto específico de restrições. UERJ © Oscar Luiz Monteiro de Farias 6 Formas Normais Universo das Relações (normalizadas e não-normalizadas) Relações 1NF (relações normalizadas) Relações 2NF Relações 3NF Relações BCNF Relações 4NF Relações PJ/NF (5NF) UERJ © Oscar Luiz Monteiro de Farias 7 Diretrizes Informais para Projetos de BDs... 4 medidas informais de qualidade para projeto de schemas relacionais: Semântica dos atributos Redução de valores redundantes nas tuplas Redução de valores nulos nas tuplas Evitar a geração de tuplas espúrias UERJ © Oscar Luiz Monteiro de Farias 8 Semântica dos Atributos das Relações... • Uma relação pode ser interpretada como um conjunto de fatos ou declarações. • O significado ou semântica especifica como interpretar os valores dos atributos armazenados na tupla, como estes valores estão relacionados uns aos outros. • Quanto mais fácil a interpretação da semântica da relação, melhor é o projeto do esquema da relação! UERJ © Oscar Luiz Monteiro de Farias 9 Semântica dos Atributos das Relações - ex. UERJ © Oscar Luiz Monteiro de Farias 10 Projeto de Banco de Dados... Diretriz Informal no 1: • Projetar esquemas de relações cujos significados sejam facilmente explicáveis. • Não incluir atributos de diferentes tipos de entidades (objetos) em uma mesma relação. • Intuitivamente, se o esquema de uma relação corresponde a um tipo de entidade ou a um tipo de relacionamento o seu significado tende a ser claro. UERJ © Oscar Luiz Monteiro de Farias 11 Informações redundantes em tuplas e anomalias nas modificações... • Um objetivo do projeto de um esquema é minimizar o espaço de armazenamento das relações bases (arquivos). • Compare o espaço ocupado pelas duas relações bases EMPLOYEE_VS(ENAME,SSN,BDATE,ADDRESS,DNUMBER) e DEPARTMENT_VS(DNAME,DNUMBER,DMGRSSN) relativamente àquele ocupado pela relação EMP_DEPT, resultante da aplicação da operação NATURAL JOIN nas duas primeiras relações. • Outro problema que surge é o das anomalias: – inserção – exclusão – modificação UERJ © Oscar Luiz Monteiro de Farias 12 Informações redundantes em tuplas e anomalias nas modificações... UERJ © Oscar Luiz Monteiro de Farias 13 Informações redundantes em tuplas e anomalias nas modificações... UERJ © Oscar Luiz Monteiro de Farias 14 Informações redundantes em tuplas e anomalias nas modificações... Redundância: • Os valores dos atributos pertencentes a cada depto são repetidas para cada empregado que trabalha em um depto. Anomalias na inserção: • Na inserção de um novo empregado na relação, os valores dos atributos correspondentes ao depto tem que ser consistente com os valores já assinalados para as outras tuplas. • É muito difícil inserir um novo depto que ainda não possua empregados (A alternativa seria entrar com valores nulos para os outros campos da tupla, porém Ssn é um campo chave e, obrigatoriamente deve ser não nulo). UERJ © Oscar Luiz Monteiro de Farias 15 Informações redundantes em tuplas e anomalias nas modificações... Anomalias na exclusão: • Acontece quando se exclui uma tupla, correspondente a um empregado, de EMP_DEPT e esta é a última tupla de empregado trabalhando em um dado depto. Com isto as informações concernentes ao depto se perdem. Anomalias na alteração: • na relação EMP_DEPT, se alterarmos o valor de um dos atributos de um dado depto, digamos o gerente do depto de no 5, deveremos atualizar as tuplas de todos os empregados que trabalham naquele departamento, para evitar inconsistências na base de dados. UERJ © Oscar Luiz Monteiro de Farias 16 Projeto de Banco de Dados... Diretriz Informal no 2: • Projetar os esquemas das relações bases, de tal forma que anomalias na inserção, na alteração e na exclusão não possam ocorrer naquelas relações. • Se alguma anomalia estiver presente, identifique-a claramente, de modo que os programas responsáveis pela atualização do banco de dados realizem as operações corretamente (sem perder informação ou sem gerar inconsistências). UERJ © Oscar Luiz Monteiro de Farias 17 Projeto de Banco de Dados... • Eventualmente pode-se violar as diretrizes de projeto, de modo a se aumentar a performance de determinadas consultas que sejam freqüentes. • Em geral é aconselhável o uso de relações bases isentas de anomalias e a especificação de visões que incluam JOINS com a finalidade de juntar em uma mesma tupla atributos freqüentemente referenciados em consultas. UERJ © Oscar Luiz Monteiro de Farias 18 Redução de valores nulos nas tuplas... • Combater as relações (fat relations) que agregam atributos correspondentes a diversas entidades (objetos). • Vários problemas podem ocorrer: – se os atributos não se aplicam a muitas das tuplas da relação pode-se gerar muitos valores nulos; – desperdício de espaço para armazenamento; – dificuldade quanto ao significado dos atributos; – dificuldade para se especificar operações de JOIN no nível conceitual; – como considerar os nulos nas diferentes operações de agregação (COUNT, SUM, etc...) UERJ © Oscar Luiz Monteiro de Farias 19 Projeto de Banco de Dados... Diretriz Informal no 3: • Tanto quanto possível evite colocar atributos nas relações bases cujos valores possam ser nulos. • No caso dos valores nulos serem inevitáveis, tenha certeza de que eles se aplicam somente em condições excepcionais e não se aplicam à maioria das tuplas da relação. UERJ © Oscar Luiz Monteiro de Farias 20 Tuplas Espúrias... Representação alternativa para EMP_PROJ, com 2 relações bases UERJ © Oscar Luiz Monteiro de Farias 21 Tuplas Espúrias... EMP_PROJ1 * EMP_LOCS gera várias tuplas espúrias UERJ © Oscar Luiz Monteiro de Farias 22 Tuplas Espúrias... • Um projeto de esquema fundamentado nas relações bases EMP_PROJ1 e EMP_LOCS é particularmente ruim, pois não podemos recuperar a informação que originalmente estava em EMP_PROJ. • Obtemos muitas tuplas espúrias, que representam informações erradas, que não são válidas. • A decomposição de EMP_PROJ em EMP_LOCS e EMP_PROJ1 é ruim, porque quando aplicamos o NATURAL JOIN, a fim de obter a informação original, é gerada informação incorreta. • Motivo: PLOCATION é o atributo que relaciona EMP_LOCS e EMP_PROJ1, todavia PLOCATION não é uma chave primária nem uma chave estrangeira seja em EMP_LOCS ou em EMP_PROJ1. UERJ © Oscar Luiz Monteiro de Farias 23 Projeto de Banco de Dados... Diretriz Informal no 4: • Projetar esquemas de relações tal que se possa aplicar NATURAL JOIN em atributos que sejam chaves primárias ou chaves estrangeiras, de modo a garantir que tuplas espúrias não sejam geradas. • Posteriormente será apresentada uma condição formal (nonadditive or lossless join property) que garantirá que certos JOINS não produzirão tuplas espúrias. UERJ © Oscar Luiz Monteiro de Farias 24 Dependência Funcional... • Dependência Funcional (DF): é uma restrição entre dois conjuntos de atributos de um banco de dados. • Esquema de Relação Universal: R = {A1, A2, ..., An} • Definição: Uma dependência funcional, denotada por X Y, entre dois conjuntos de atributos X e Y, que são subconjuntos de R especifica uma restrição nas tuplas possíveis de formar uma relação de instância r de R. A restrição estabelece que, para quaisquer duas tuplas t1 e t2 em r, tal que t1[X] = t2[X], então deve-se ter obrigatoriamente t1[Y] = t2[Y]. UERJ © Oscar Luiz Monteiro de Farias 25 Dependência Funcional... • Esta definição de DF significa que os valores do componente Y da tupla em r dependem, ou são determinados, pelos valores do componente X. • Pode-se dizer que os valores do componente X da tupla univocamente (funcionalmente) determinam os valores do componente Y. • Y é funcionalmente dependente de X. • Se X é uma chave candidata de R, então X Y, para qualquer subconjunto de atributos Y de R. • X Y em R não implica em que Y X em R. • Uma DF é uma propriedade da semântica (significado) dos atributos. UERJ © Oscar Luiz Monteiro de Farias 26 Dependência Funcional... • As extensões da relação r(R) que satisfazem as restrições de dependência funcional são chamadas extensões válidas (legal extensions) ou estados válidos da relação (legal relation states). • O principal uso das dependências funcionais é na descrição mais aprofundada do esquema da relação R, através da especificação de restrições sobre os seus atributos e que sejam válidas por todo o tempo (i.e. em todas as extensões). • No esquema da relação EMP_PROJ tem-se as seguintes DFs: i) Ssn Ename; ii) Pnumber {Pname, Plocation}; iii) {Ssn, Pnumber} Hours. UERJ © Oscar Luiz Monteiro de Farias 27 Dependência Funcional... • X x Y, denota que Y não é funcionalmente dependente de X. No exemplo abaixo TEACHER x COURSE x UERJ COURSE e TEXT © Oscar Luiz Monteiro de Farias 28 Regras de Inferência para FDs... • Denota-se por F o conjunto das DFs que são especificadas no esquema relacional R. • Uma DF X Y é inferida (deduzida) de um conjunto de dependências funcionais F especificada em R, se X Y vale para todo estado de relação r que é uma extensão válida (legal extension) de R. • O conjunto de todas as DFs que podem ser inferidas de F, denotase por F+ e chama-se closure de F. • Regras de inferência podem ser usadas para inferir novas DFs a partir de um conjunto dado de DFs. • Usa-se a notação F |= X Y, para denotar que a DF X Y é inferida do conjunto de DFs F. UERJ © Oscar Luiz Monteiro de Farias 29 Regras de Inferência para FDs... • Suponha as seguintes regras de inferência associadas ao esquema da relação EMP_DEPT: F = {SSN {ENAME, BDATE, ADDRESS, DNUMBER}, DNUMBER {DNAME, DMGRSSN}} Pode-se daí inferir que: SSN {DNAME, DMGRSSN} SSN SSN DNUMBER DNAME UERJ © Oscar Luiz Monteiro de Farias 30 Regras de Inferência para FDs... (ri1 - Regra Reflexiva) se X Y, então X Y. (ri2 - Regra Augmentation) {X Y} |= XZ YZ. (ri3 - Regra Transitiva) {X Y, Y Z} |= X Z. (ri4 - Regra de Decomposição ou Projetiva) {X YZ} |= X Y. (ri5 - Regra Aditiva ou União) {X Y, Y Z} |= X YZ. (ri6 - Regra Pseudotransitiva) {X Y, WY Z} |= WX Z. {ri1, ri2, ri3} regras de inferência de Armstrong Exemplos: • X {A1, A2, ..., An} {X A1, X A2, ..., X An} --- ri4 • {X A1, X A2, ..., X An} {X A1, A2, ..., An} --- ri5 • • • • • • UERJ © Oscar Luiz Monteiro de Farias 31 Regras de Inferência para FDs... • Prova de ri1: Supõe-se que X Y e que duas tuplas t1 e t2 existam em alguma relação de instância r de R, tal que t1[X] = t2[X]. Então t1[Y] = t2[Y], porque X Y. Portanto X Y deve valer em r. • Prova de ri2 (por contradição): Assuma que X Y é válida na relação de instância r de R, mas que XZ YZ não é válida. Então devem existir duas tuplas t1 e t2 em r, tal que: i) t1[X] = t2[X], ii) t1[Y] = t2[Y], iii) t1[XZ] = t2[XZ] e iv) t1[YZ] t2[YZ]. Isto não é possível porque de “i” e “iii” deduz-se v) t1[Z] = t2[Z], e de “ii” e “v” deduz-se vi) t1[YZ] = t2[YZ], o que contradiz “iv”. UERJ © Oscar Luiz Monteiro de Farias 32 Regras de Inferência para FDs... • Prova de ri3: Assuma que i) X Y e ii) Y Z são ambas válidas na relação r. Então para quaisquer duas tuplas t1 e t2 em r, tal que t1[X] = t2[X], deve-se ter também iii) t1[Y] = t2[Y] (a partir da premissa “i”) e portanto deve-se ter iv) t1[Z] = t2[Z] (a partir de “iii” e “ii”). Portanto X Z deve ser válida em r. • Prova de ri4: 1. X YZ (dado) 2. YZ Y (usando ri1 e sabendo-se que YZ Y) 3. X Y (usando ri3 em “1” e “2”). UERJ © Oscar Luiz Monteiro de Farias 33 Regras de Inferência para FDs... • Prova de ri5: 1. X Y (dado) 2. X Z (dado) 3. X XY (usando-se ri2 em “1”, aumentando com X e notando que XX = X) 4. XY YZ (usando ri2 em “2”, aumentando com Y) 5. X YZ (aplicando ri3 em “3” e “4”) UERJ © Oscar Luiz Monteiro de Farias 34 Regras de Inferência para FDs... • Prova de ri6: 1. X Y (dado) 2. WY Z (dado) 3. WX WY (usando-se ri2 em “1”, aumentando com W) 4. WX Z (usando ri3 em “3” e “2”) UERJ © Oscar Luiz Monteiro de Farias 35 Regras de Inferência para FDs... • As regras de inferência ri1, ri2 e ri3 são ditas sound e complete. • Sound - significa que, dado um conjunto de DFs F, especificadas em um esquema de relação R, qualquer DF que se puder inferir de F pelo uso das regras ri1, ri2 e ri3 será válida em qualquer estado de relação r de R que satisfaça as dependências em F. • Complete - significa que, usando-se ri1, ri2 e ri3 repetidamente para inferir dfs de F, até que não se possa gerar mais dfs, resulta no conjunto completo (F+ = closure de F) de todas as possiveis dfs que podem ser inferidas a partir de F. UERJ © Oscar Luiz Monteiro de Farias 36 Regras de Inferência para FDs... • Uma forma sistemática de determinar estas dfs é primeiro determinar cada conjunto de atributos X que aparece no lado esquerdo de alguma df em F e, então, usando es regras de inferência de Armstrong, determinar o conjunto de todos os atributos que são funcionalmente dependentes de X. Este conjunto, X+, é chamado fechamento (closure) de X sob F. • Algoritmo para determinar X+, fechamento (closure) de X sob F. X+:= X; repeat old X+:= X+; for each fd Y Z in F do if Y X then X+ := X+ U Z; until (old X+:= X+); UERJ © Oscar Luiz Monteiro de Farias 37 Equivalência de Conjuntos de DFs • Um conjunto de DFs E é coberto (covered) por um conjunto de DFs F, ou alternativamente diz-se que F cobre E, se toda DF em E pode ser inferida a partir de F. • Dois conjuntos E e F de DFs são equivalentes se E+=F+. • Pode-se determinar se F cobre E, calculando-se X+ relativamente a F, para cada FD X Y em E, e então, verificando se X+ inclui os atributos em Y. Se isto acontecer para toda FD em E, então F cobre E. UERJ © Oscar Luiz Monteiro de Farias 38 Conjunto Mínimo de DFs • Um conjunto de DFs é mínimo (minimal), se satisfaz às seguintes condições: Toda dependência em F possui um único atributo em seu lado direito. Não se pode remover qualquer dependência de F e ainda se ter um conjunto de dependências que seja equivalente a F. Não se pode substituir qualquer dependência X A em F com a dependência Y A, onde Y é um subconjunto próprio de X e ainda se ter um conjunto de DFs que seja equivalente a F. • Pode-se pensar em um conjunto mínimo de dfs como sendo um conjunto de dfs em forma padrão ou canônica, em que não haja redundâncias. UERJ © Oscar Luiz Monteiro de Farias 39 Formas Normais... • Inicialmente Codd propôs três formas normais que são chamadas 1NF, 2NF e 3NF. • Posteriormente uma definição mais rigorosa de 3NF foi proposta por Boyce e Codd, resultando na forma normal de Boyce e Codd. • Todas estas formas normais (1NF, 2NF, 3NF e a FN de Boyce e Codd) são baseadas no conceito de DFs entre os atributos de uma relação. • A 4FN é baseada no conceito de dependências multi-valoradas. • A 5 NF, no conceito de dependências JOIN. UERJ © Oscar Luiz Monteiro de Farias 40 Formas Normais... • O processo de Normalização de Dados pode ser visto como a decomposição, através do particionamento de atributos, de esquemas de relação indesejáveis em esquemas de relação que possuam algumas propriedades desejadas. • Um dos objetivos do processo de normalização é evitar as anomalias de inserção, exclusão e atualização. • As formas normais, consideradas isoladamente, não garantem um bom projeto de Banco de Dados. UERJ © Oscar Luiz Monteiro de Farias 41 Formas Normais... O processo de normalização, através da decomposição deve também confirmar a existência de propriedades adicionais que os esquemas das relações, considerados em conjunto, devem possuir: • A propriedade não-aditiva ou JOIN sem perda (lossless join), que garante que tuplas espúrias não serão geradas, quando de um JOIN. • A propriedade de preservação de dependência, que assegura que todas as DFs estão representadas em alguma das relações individuais resultantes. • Recordação de conceitos: super-chave, chave, chave candidata, chave primária. UERJ © Oscar Luiz Monteiro de Farias 42 Definições • Super-chave - conjunto de um ou mais atributos que, tomados coletivamente, nos permitem identificar de maneira unívoca uma entidade em um conjunto de entidades (tipo-entidade). • Uma chave K (minimal superkey) de um esquema de relação R é uma superchave de R com a propriedade adicional de que, a remoção de qualquer atributo A de K resulta em um conjunto de atributos K´ que não é uma superchave de R. • Chave candidata - é uma das chaves de um esquema de relação R. • Chave primária - é uma chave candidata escolhida pelo projetista do BD para a identificação de entidades em um conjunto de entidades (por convenção são sublinhadas no esquema da relação). • Atributo principal (prime attribute) de um esquema de relação R é um membro de qualquer chave de R. UERJ © Oscar Luiz Monteiro de Farias 43 1a Forma Normal... • A 1a Forma Normal (1a FN) não permite relações dentro de relações, ou seja, relações como atributos de tuplas. • A 1a FN é agora considerada como parte da definição formal de uma relação, a qual não permite atributos multi-valorados e nem atributos compostos. • A 1a FN estabelece que os domínios dos atributos devem incluir apenas valores atômicos. • Ex.: EMP_PROJ (Ssn, Ename, {PROJS(Pnumber, Hours)}) UERJ © Oscar Luiz Monteiro de Farias 44 1a Forma Normal... • i) Normalização de uma “tabela” multi-valorada com redundância. 1a NF UERJ © Oscar Luiz Monteiro de Farias 45 1a Forma Normal... • ii) Normalização sem redundâncias (superior) UERJ © Oscar Luiz Monteiro de Farias 46 1a Forma Normal... i) EMP_PROJ Ssn Ename Projs Pnumber Hours ii) UERJ © Oscar Luiz Monteiro de Farias 47 1a Forma Normal... UERJ © Oscar Luiz Monteiro de Farias 48 1a Forma Normal... iii) UERJ © Oscar Luiz Monteiro de Farias 49 1a Forma Normal... • Pesquisas têm sido conduzidas no modelo relacional para permitir o uso de relações aninhadas. • EMP_PROJ(Ssn, Ename, {PROJS(Pnumber, Hours)}) • Para colocar em 1a NF relações aninhadas, primeiro remove-se os atributos aninhados para uma nova relação, propagando-se a chave primária na mesma; a chave primária desta nova relação a chave parcial (da relação aninhada) com a chave primária da relação original. UERJ © Oscar Luiz Monteiro de Farias 50 2a Forma Normal... • Baseia-se no conceito de dependência total. • Uma DF X Y é uma DF total, se a remoção de qualquer atributo A de X, implica em que a dependência não mais se verifica, isto é, (X - {A}) x Y. • Uma DF X Y é uma DF parcial, se a remoção de algum atributo A de X, implica em que a dependência ainda se verifica, isto é, para algum A X, (X - {A}) Y. • Um esquema de relação R está na 2a Forma Normal (2a FN), se todo atributo não principal A em R apresenta DF total da chave primária de R. UERJ © Oscar Luiz Monteiro de Farias 51 2a Forma Normal... df1 df2 df3 Normalização 2NF EP1 EP2 EP3 UERJ © Oscar Luiz Monteiro de Farias 52 2a Forma Normal Um esquema de relação R que não esteja na 2a FN pode ser normalizado em diversos esquemas de relação, nas quais os atributos não principais estão associados apenas com a parte da chave primária da qual apresentam dependência funcional total. UERJ © Oscar Luiz Monteiro de Farias 53 3a Forma Normal... • Uma relação R está na 3a FN se e somente se, por todo o tempo, cada tupla de R consistir de um valor de chave primária que identifique alguma entidade, juntamente com um conjunto de valores de atributos mutuamente independentes que descrevam aquela entidade de alguma forma [C. J. Date]. • Dois atributos são mutuamente independentes se nenhum for funcionalmente dependente do outro. UERJ © Oscar Luiz Monteiro de Farias 54 3a Forma Normal... • A 3a FN baseia-se no conceito de dependência transitiva. • Uma DF X Y em um esquema de relação R é uma dependência transitiva se existe um conjunto de atributos Z que não seja um subconjunto de qualquer chave de R e ambos X Z e Z Y se verificam. • Ex.: a DF Ssn Mgrssn é transitiva via Dnumber em EMP_DEPT (slide #13), porque Ssn Dnumber e Dnumber Mgrssn e Dnumber não é um subconjunto da chave de EMP_DEPT. UERJ © Oscar Luiz Monteiro de Farias 55 3a Forma Normal... • Um esquema de relação R está na 3a FN se ele está na 2a FN e nenhum atributo não principal (no prime) for transitivamente dependente da chave primária. • Ex.: Pode-se normalizar (3a FN) EMP_DEPT decompondo-o nos esquemas ED1 e ED2. • Intuitivamente observa-se que ED1 e ED2 representam fatos relacionados a diferentes entidades: EMPLOYEE e DEPARTMENT. • Um Natural JOIN (*) em ED1 e ED2 irá recuperar a relação original EMP_DEPT, sem gerar tuplas espúrias. UERJ © Oscar Luiz Monteiro de Farias 56 3a Forma Normal... Normalização 3 NF UERJ © Oscar Luiz Monteiro de Farias 57 Definições Gerais da 2a NF e 3a NF... • No processo de normalização deseja-se projetar esquemas de relações que não possuam dependências parciais e/ou transitivas. • As definições mais gerais da 2a FN e 3a FN levam em consideração todas as chaves candidatas (e não apenas as chaves primárias). • Definição Geral da 2a FN: Um esquema de relação R está na 2a FN se todo atributo não-principal (non prime attribute) A em R não for parcialmente dependente de qualquer chave de R. UERJ © Oscar Luiz Monteiro de Farias 58 Definições Gerais da 2a NF e 3a NF... fd1 fd2 fd3 fd4 Semântica: i) Chaves candidatas: PROPERTY_ID e {COUNTY_NAME, LOT#}; ii) LOT# é único dentro de cada COUNTY; iii) supor 2 dfs adicionais: df3 - COUNTY_NAME TAX_RATE; df4 - AREA PRICE LOTS viola a 2a FN porque TAX_RATE é parcialmente dependente da chave candidata {COUNTY_NAME, LOT#}. UERJ © Oscar Luiz Monteiro de Farias 59 Definições Gerais da 2a NF e 3a NF... • LOTS é normalizada na 2a FN, removendo-se o atributo que é dependente da chave parcial e colocando-o em uma nova relação juntamente com a chave parcial. fd1 fd2 fd4 fd3 UERJ © Oscar Luiz Monteiro de Farias 60 Definições Gerais da 2a NF e 3a NF... • Definição Geral da 3a FN: Um esquema de relação R está na 3a FN sempre que, se uma dependência funcional X A valer em R, ou i) X é uma super-chave de R, ou ii) A é um atributo principal (prime) de R. • LOTS2 está na 3a FN, porém a df4 em LOTS1 viola a def. de 3a FN, pois AREA não é uma super-chave de LOTS1 e PRICE não é um atributo principal (prime). • LOTS2 é normalizada removendo-se o atributo não-principal da df que viola a def. da 3a FN, juntamente com o lado esquerdo da mesma df para uma outra relação. UERJ © Oscar Luiz Monteiro de Farias 61 Definições Gerais da 2a NF e 3a NF... Normalização de LOTS1 na 3a Forma Normal fd1 fd2 fd4 UERJ © Oscar Luiz Monteiro de Farias 62 Definições Gerais da 2a NF e 3a NF... • A definição de 3a FN pode ser aplicada diretamente a um esquema de relação (não é preciso primeiro normalizar para a 2a FN). • Poder-se-ia decompor LOTS diretamente em LOTS1A, LOTS1B e LOTS2. • LOTS1 viola a 3a FN porque o atributo PRICE é transitivamente dependente de cada uma das chaves-candidatas, através do atributo não-principal AREA. UERJ © Oscar Luiz Monteiro de Farias 63 Definições Gerais da 2a NF e 3a NF... Interpretação da definição geral da 3a FN • Um esquema de relação R viola a definição geral da 3a FN se vale em R uma dependência funcional X A em que ambas as condições “i” ‘e ii” da 3a FN são violadas. • Violar “ii” implica em que A é um atributo não-principal (nonprime). • Violar “i” implica em que X não é um super-conjunto de alguma chave de R; X poderia ser não-principal ou poderia ser um subconjunto próprio de alguma chave de R; se X é não-principal tem-se tipicamente uma dependência transitiva que viola a 3a FN, enquanto que se X é um subconjunto de uma chave de R teremos uma dependência parcial que viola a 3a FN (e também a 2a FN). UERJ © Oscar Luiz Monteiro de Farias 64 Definições Gerais da 2a NF e 3a NF Tem-se portanto, a seguinte definição alternativa para a 3a FN: Um esquema de relação R está na 3a FN se todo atributo nãoprincipal de R: apresenta dependência funcional total em cada chave de R; é dependente não-transitivo de toda chave de R. UERJ © Oscar Luiz Monteiro de Farias 65 Forma Normal de Boyce-Codd (BCNF)... • BCNF é mais restritiva que a 3a FN. Uma relação em BCNF também está na 3a FN. Todavia uma relação na 3a FN não necessariamente está em BCNF. • Suponha, no ex. dado, que haja a df AREA COUNTY_NAME • LOTS1A está ainda na 3a FN, pois COUNTY_NAME é um atributo principal. • Decompondo LOTS1A em LOTS1AX(PROPERTY_ID#, AREA, LOT#) e LOTS1AY(AREA, COUNTY_NAME) evitar-se-ia a redundância de se repetir a mesma informação milhares de vezes em LOTS1A. UERJ © Oscar Luiz Monteiro de Farias 66 Forma Normal de Boyce-Codd (BCNF)... fd1 fd2 fd5 Normalização BCNF R está na 3a FN, mas não em BCNF fd1 fd2 UERJ © Oscar Luiz Monteiro de Farias 67 Forma Normal de Boyce-Codd (BCNF) • Definição da 3a BCNF [ref. Elmasri/Navathe]: Um esquema de relação R está em BCNF sempre que, ao valer uma DF X A em R, então X é uma super-chave de R. • Um atributo, possivelmente composto, de um esquema de relação R, do qual um outro atributo é funcionalmente dependente, é chamado de determinante (funcional). • Definição alternativa da 3a BCNF [(ref. C. J. Date]: Um esquema de relação R está em BCNF se e somente se cada determinante de R for uma chave candidata. • No exemplo fd5 viola a BCNF em LOTS1A, porque AREA não é uma super-chave de LOTS1A. UERJ © Oscar Luiz Monteiro de Farias 68 4a Forma Normal... “Relação” CTX0 CURSO PROFESSOR TEXTO Physics {Prof. Green, {Basic Mechanics, Prof. Brown, Principle of Optics} Prof. Black} Math {Prof. White} {Modern Algebra, Projective Geometry} Semântica: o curso X pode ser ministrado por qualquer dos professores (situados na mesma linha da tabela) e o prof. pode adotar qualquer um dos livros textos indicados (situados na mesma linha da tabela). UERJ © Oscar Luiz Monteiro de Farias 69 4a Forma Normal... • CTX0 pode ser normalizada em CTX. • CTX satisfaz à restrição: se aparecerem ambas as tuplas (c,t1, x1), (c, t2, x2) então aparecerão também as tuplas (c,t1, x2) e (c,t2, x1). UERJ © Oscar Luiz Monteiro de Farias 70 4a Forma Normal... • CTX , apesar de estar em BCNF (todos os seu atributos fazem parte da chave e não existem outras dfs), contém redundâncias evidentes, que causarão anomalias nas operações de atualização. • Ex.: para adicionar-se a informação de que o curso de física passou a usar um novo texto Advanced Mechanics, torna-se necessário criar três novas tuplas - uma para cada professor. • As dificuldades são causadas pelo fato dos atributos professor e texto não serem independentes. UERJ © Oscar Luiz Monteiro de Farias 71 4a Forma Normal... CTX pode ser decomposta nas relações CP e CX, porém esta decomposição não está baseada em dependências funcionais. Tem-se, no caso, uma dependência de múltiplos valores (DMV). Há duas DMVs na relação CTX: • CTX.CURSO CTX.PROFESSOR • CTX.CURSO CTX.TEXTO UERJ © Oscar Luiz Monteiro de Farias 72 4a Forma Normal... • Significado: cada curso possui um “conjunto bem definido de professores”, i. e., para um curso “c” e um texto “x”, o conjunto “t” de professores que corresponde ao par (c, x) em CTX depende só de “c” - não faz diferença que valor de “x” escolhamos desde que “c” e “x” apareçam juntas em alguma tupla de CTX. • Definição: Dada uma relação R com atributos A, B e C, a dependência de múltiplos valores R.A R.B vale para R, se e somente se (sss) o conjunto de valores de B que se combinam com um dado par (valores de A, valores de C) em R depender somente do valor de A e for independente do valor de C (A, B e C podem ser compostos). • Uma DMV só pode existir em relações com pelo menos 3 atributos UERJ © Oscar Luiz Monteiro de Farias 73 4a Forma Normal... • Dada a relação R(A, B, C), a DMV R.A R.B vale sss a DMV R.A R.C também valer. • Expressa-se ambas as DMVs pela notação: R.A R.B | C • A DF é uma DMV na qual o conjunto de valores dependentes consiste de um único valor. • Teorema de Fagin: Uma relação R, com atributos A, B, e C, pode ser decomposta em suas duas projeções R1(A, B) e R2(A, C) sss a DMV A B | C valer em R. UERJ © Oscar Luiz Monteiro de Farias 74 4a Forma Normal... • Definição da 4a FN [C.J. Date]: Uma relação R está na 4a FN sss, sempre que existir uma DMV em R, digamos A B, todos os atributos de R são funcionalmente dependentes de A (i.e., A X para todos os atributos X de R). • i.e., as únicas dependências (DMVs e DFs) em R são da forma K X (i.e., uma dependência funcional de uma chave candidata K em algum outro atributo X). • Uma DMV X Y em R é denominada uma DMV trivial se i) Y é um subconjunto de X ou ii) (X U Y) = R. • As relações que contêm DMVs não-triviais tendem a ser relações todas-chaves, i.e, a sua chave é composta por todos os atributos. UERJ © Oscar Luiz Monteiro de Farias 75 4a Forma Normal... Fagin comprovou dois resultados importantes, que permitem incorporar a 4a FN no procedimento global de normalização: A 4a FN é estritamente mais poderosa que a BCNF, i.e., qualquer relação na 4a FN está necessariamente na BCNF. Qualquer relação pode ser decomposta sem perdas em uma coleção equivalente de relações na 4a FN. Uma relação R(A, B, C) satisfazendo as DFs A B, B C é melhor decomposta em suas projeções sobre (A, B) e (B, C) do que sobre (A, B) e (A, C). O mesmo vale quando as DFs são substituídas pelas MVDs A B, B C UERJ © Oscar Luiz Monteiro de Farias 76 5a Forma Normal... • Existem relações que não podem ser decompostas sem perdas e em duas projeções, mas que podem ser decompostas sem perdas em três (ou mais) projeções. UERJ © Oscar Luiz Monteiro de Farias 77 5a Forma Normal... JUNÇÃO sobre P# TUPLA ESPÚRIA JUNÇÃO sobre (J#, S#) TABELA SPJ ORIGINAL UERJ © Oscar Luiz Monteiro de Farias 78 5a Forma Normal... • A afirmativa de que SPJ é igual à junção de suas três projeções SP, PJ e JS é equivalente à afirmativa: se o par (s1, p1) aparece em SP e o par (p1, j1) aparece em PJ e o par (j1, s1) aparece em JS então a tripla (s1, p1 , j1) obviamente aparece na junção de SP, PJ e JS. • Uma vez que (s1, p1) aparece em SP sss s1 e p1 aparecem juntos em SPJ,o mesmo acontecendo com (p1, j1) e (j1, s1), podemos reescrever a última afirmativa como uma restrição sobre SPJ: se (s1, p1 , j2), (s2, p1 , j1), (s1, p2 , j1) aparecem em SPJ então (s1, p1 , j1) também aparece em SPJ. UERJ © Oscar Luiz Monteiro de Farias 79 5a Forma Normal... • A restrição anterior é satisfeita sss a relação envolvida for a junção de certas projeções suas. Esta restrição é chamada de Dependência de Junção. • SPJ satisfaz a dependência de junção * (SP, PJ, JS). • Definição: Uma Dependência de Junção (DJ), denotada por DJ(R1, R2, ... Rn), especificada em um esquema de relação R, determina uma restrição nas instâncias r de R. A restrição diz que toda instância legal r de R deve ter uma decomposição de junção sem perdas (lossless join decomposition) em R1, R2, ... Rn; i.e., * (<R1>(r), <R2>(r), ...,<Rn>(r)) = r. • Note que uma DMV é um caso particular de DJ, onde n=2. UERJ © Oscar Luiz Monteiro de Farias 80 5a Forma Normal • Uma dependência de junção DJ(R1, R2, ... Rn), especificada em um esquema de relação R é uma DJ trivial se um dos esquemas de relação Ri em DJ(R1, R2, ... Rn), for igual a R. • Tal DJ é chamada trivial porque possui a propriedade de junção sem perdas (lossless join) para qualquer relação de instância r de R e, portanto, náo determina qualquer tipo de restrição sobre R. • Definição: um esquema de relação R está na 5a FN (ou forma normal project-join - PJNF) relativamente a um conjunto F de DFs, MVDs e DJs, se para toda dependência de junção DJ(R1, R2, ... Rn) não trivial em F+ (i.e., implicado por F) todo Ri é uma super-chave de R. • Descobrir DJs em BDs reais não é uma tarefa fácil... UERJ © Oscar Luiz Monteiro de Farias 81 Forma Normal Domínio-Chave • Definição: Uma relação está na Domain-Key Normal Form (DKNF) se todas as dependências e restrições que deveriam valer na relação podem ser determinadas (enforced) simplesmente pela determinação de restrições de domínio e restrições chaves especificadas na relação. • A idéia por trás da DKNF é especificar (ao menos teoricamente) a “forma normal definitiva”, que leve em consideração todos os tipos de dependências e restrições. • Utilidade prática é limitada, pois restrições complexas não parecem poder ser incluídas em relações DKNF. UERJ © Oscar Luiz Monteiro de Farias 82 Finalmente... Para complementar a formação estudar: • capítulos 13, 14 e 21 (apenas 21.1 e 21.2) do Fundamentals of Database Systems, Elmasri/Navathe • cap. 14 do Introdução a Sistemas de Bancos de Dados, C. J. Date, Editora Campus. • 2a Prova: 23/01/2001 às 07:00 horas no LABOGEO. UERJ © Oscar Luiz Monteiro de Farias 83