normalização - erinaldosn.files.wordpress.com · forma normal de boyce-codd (fnbc) •cada...
TRANSCRIPT
Normalização
Anomalias
Dependência e determinantes
Normalização
FACULDADE ANGLO AMERICANO – FOZ DO IGUAÇU Curso de Ciência da Computação – 5º Periodo Disciplina: Banco de Dados I Prof. Erinaldo Sanches Nascimento
Definição
• Formas normais
• Remove a duplicação e minimiza redundância de dados.
• Resultado em uma melhor organização e uma utilização mais eficaz do espaço físico.
2 http://erinaldosn.wordpress.com
O Conceito de Anomalias
• A intenção da teoria de banco de dados relacional é eliminar a ocorrência de anomalias numa base de dados.
• Anomalias podem, eventualmente, ocorrer durante alterações a uma base de dados, pois os dados podem tornar-se logicamente corrompido.
http://erinaldosn.wordpress.com 3
Redundância
A informação pode estar repetida desnecessariamente em várias tuplas.
http://erinaldosn.wordpress.com 4
Anomalia de Inserção
Causado quando um registro é adicionado a uma tabela de detalhes, sem nenhum registro relacionado existente em uma tabela mestre.
http://erinaldosn.wordpress.com 5
Anomalia de Exclusão
• Causado quando um registro é excluído de uma tabela mestre, sem primeiro excluir todos os registros de irmãos, em uma tabela detalhe.
• A exceção é a deleção em cascata, ocorrendo quando a exclusão de um registro mestre automaticamente exclui todos os registros de filhos em todas as tabelas de detalhes relacionadas, antes de excluir o registro pai da tabela mestre.
http://erinaldosn.wordpress.com 7
Anomalia de Atualização
• Esta anomalia é semelhante à deleção em que ambos os registros mestre e detalhe devem ser atualizados para evitar registros de detalhe órfãos.
• Quando em cascata, garante que todas as atualizações de chave primária são propagadas para as chaves estrangeiras da tabela filha relacionada.
http://erinaldosn.wordpress.com 9
Dependência Funcional
Y é funcionalmente dependente X se o valor de Y é determinado por X.
Em outras palavras, se Y = X 1, o valor de X irá determinar o valor resultante de Y. Assim, Y é dependente X como uma função do o valor de X.
http://erinaldosn.wordpress.com 10
Determinante
O determinante na descrição da dependência funcional no ponto anterior é X porque X determina o valor Y, pelo menos parcialmente porque 1 é adicionado a X também.
Um fator determinante é a inversão ou o oposto da dependência funcional.
http://erinaldosn.wordpress.com 11
Dependência Transitiva
• Z é transitivamente dependente de X quando X determina Y e Y determina Z.
• Dependência transitiva descreve assim que Z é indiretamente dependente de X através de sua relação com Y.
http://erinaldosn.wordpress.com 13
Chave Candidata
Uma chave candidata (chave potencial ou admissível) é um campo ou combinação de campos que podem agir como um campo de chave primária para uma tabela, assim identificando exclusivamente cada registro na tabela.
http://erinaldosn.wordpress.com 14
Dependência Funcional Total
• Esta situação ocorre em que X determina Y, mas X combinados com Z não determina Y. Em outras palavras, Y depende X e X sozinho.
• Se Y depende de X com qualquer outra coisa, não há dependência funcional total.
• Essencialmente X, o determinante, não pode ser uma chave composta.
• Uma chave composto contém mais do que um campo (o equivalente de X com Z).
http://erinaldosn.wordpress.com 16
Dependência Multivalorada
• Uma dependência com vários valores. • Um exemplo de uma dependência de valores múltiplos
é um campo contendo uma lista separada por vírgulas ou coleção de algum tipo. – Uma colecção poderia ser uma matriz de valores do
mesmo tipo. – Esses valores múltiplos são dependentes como um todo na
chave primária, como um todo significa toda a coleção na lista delimitada por vírgulas.
• Uma dependência multivalorada trivial ocorre entre dois campos quando eles são os únicos dois campos na tabela. Um deles é a chave primária e outro a lista do multivalorado.
http://erinaldosn.wordpress.com 18
Dependência Cíclica
• Significa que X é dependente de Y, que por sua vez também é dependente X, direta ou indiretamente.
• Dependência cíclica indica um padrão logicamente circular de interdependência.
• Dependência cíclica geralmente ocorre com tabelas contendo uma chave primária composta de três ou mais campos. – onde três campos estão relacionados em pares uns para os
outros.
• Em outras palavras, X refere-se a Y, Y refere-se a Z, e X relaciona-se com Z. Em última análise Z relaciona de volta com X.
http://erinaldosn.wordpress.com 20
Formas Normais
• 1ª Forma Normal (1FN)
• 2ªForma Normal (2FN)
• 3ª Forma Normal (3FN)
• Forma Normal de Boyce-Codd (FNBC)
• 4ª Forma Normal (4FN)
• 5ª Forma Normal (5FN)
• Forma Normal de Chave-Domínio (FNCD)
http://erinaldosn.wordpress.com 21
1ª Forma Normal (1FN)
• Elimina grupos de repetição de tal forma que todos os registros em todas as tabelas podem ser identificados exclusivamente por uma chave primária em cada tabela.
• Todos os outros campos do que a chave primária deve depender da chave primária.
1. Remove campos de repetição 2. Cria uma nova tabela onde a tabela original e novo estão
ligados entre si com um mestre-detalhe, um-para-muitos. 3. Cria chaves primárias em ambas as tabelas onde a tabela
de detalhes terá uma chave primária composta contendo o campo de chave primária da tabela mestre como o campo prefixo da sua chave primária. Esse campo prefixo é também uma volta de chave estrangeira para a tabela mestre.
http://erinaldosn.wordpress.com 22
1FN faz o seguinte
• Elimina a grupos de repetição. • Define as chaves primárias. • Todos os registros devem ser identificados unicamente
com uma chave primária. Uma chave primária é único e, portanto, não são permitidos valores duplicados.
• Todos os outros campos do que a chave primária deve depender da chave primária, direta ou indiretamente.
• Todos os campos devem conter um único valor. • Todos os valores em cada campo deve ser do mesmo
tipo de dados. • Criar uma nova tabela para mover os grupos de
repetição da tabela original.
http://erinaldosn.wordpress.com 23
2ªForma Normal (2FN)
• Todos os valores não-chave devem ser totalmente funcionalmente dependente da chave primária.
• Não são permitidas dependências parciais.
– Uma dependência parcial ocorre quando um campo é totalmente dependente de uma parte de uma chave primária composta.
1. Cria uma tabela em que os valores de repetição são removidos para uma nova tabela. O resultado é um relacionamento muitos-para-um em vez de uma relação um-para-muitos, criado entre o original e as novas tabelas.
2. A nova tabela obtém uma chave primária consistindo de um único campo.
3. A tabela mestre contém uma chave estrangeira apontando para a chave primária da nova tabela. Essa chave estrangeira não é parte da chave primária da tabela original.
http://erinaldosn.wordpress.com 26
2FN faz o seguinte
• A tabela deve estar na 1FN. • Todos os valores não-chave devem ser totalmente
dependente funcional da chave primária. – Não são permitidos campos não-chave não completamente e
individualmente dependente da chave primária.
• Dependências parciais deve ser removido. – Uma dependência parcial é um tipo especial de dependência
funcional que se verifica quando um campo é totalmente dependente de uma parte de uma chave primária composta.
Indicando os últimos dois pontos de uma forma diferente, remova os campos que são independentes da chave primária. • Criar uma nova tabela para separar a parte parcialmente
dependente da chave primária e os seus campos dependentes.
http://erinaldosn.wordpress.com 27
3ª Forma Normal (3FN)
• Elimina dependências transitivas – Significa que um campo é indiretamente
determinado pela chave primária.
– Isto é porque o campo é funcionalmente dependente de outro campo, enquanto que o outro campo é dependente da chave primária.
• Eliminação de uma dependência transitiva implica a criação de uma nova tabela para algo indiretamente dependente da chave primária em uma tabela existente.
http://erinaldosn.wordpress.com 31
A 3FN faz o seguinte
• A tabela deve estar na 2NF.
• Elimina as dependências transitivas.
– Uma dependência transitiva é onde um campo é determinado indiretamente pela chave primária, porque esse campo é funcionalmente dependente de um segundo campo, onde o segundo campo é dependente da chave primária.
• Cria uma nova tabela para conter todos os campos separados.
http://erinaldosn.wordpress.com 32
Além da 3ª Forma Normal (3FN)
• Muitos modelos modernos bancos de dados relacionais não se estendem além 3FN.
• Os maiores problemas com ir além 3FN são questões de complexidade e desempenho.
• Formas extremas de redução não são um benefício para o modelo de banco de dados relacional.
• Níveis extremos de granularidade na modelagem de banco de dados relacional são uma forma de perfeição matemática.
http://erinaldosn.wordpress.com 37
Forma Normal de Boyce-Codd (FNBC)
• Cada determinante em uma tabela é uma chave candidata.
• Se houver apenas uma chave candidata, 3FN e BCNF são uma e a mesma coisa.
http://erinaldosn.wordpress.com 41
FNBC faz o seguinte
• A tabela deve estar na 3FN.
• Uma tabela pode ter apenas uma chave candidato.
Uma chave candidata tem potencial para ser
chave primária de uma tabela.
http://erinaldosn.wordpress.com 42
http://erinaldosn.wordpress.com 43
Usando FNBC para separar todas as chaves candidatas em tabelas separadas.
http://erinaldosn.wordpress.com 45
Os dados para o tipo comum de transformação FNBC exemplificado na figura anterior.
4ª Forma Normal (4FN)
Elimina vários conjuntos de dependências multivaloradas.
http://erinaldosn.wordpress.com 46
A 4ª FN faz o seguinte
1. A tabela deve estar na 3FN ou FNBC com 3FN.
2. Dependências multivalorados devem ser transformados em dependências funcionais. Isto implica que um valor e não vários valores são dependentes de uma chave primária.
3. Elimina vários conjuntos de dependências múltivaloradas ou vários valores, por vezes descrita como dependências multivaloradas não-triviais.
http://erinaldosn.wordpress.com 47
5ª Forma Normal (5FN)
• Elimina dependências cíclicas.
• A 5FN também é conhecida como Forma Normal de Projeção-Junção (NFPJ).
http://erinaldosn.wordpress.com 50
A 5ªFN faz o seguinte
1. A tabela deve estar em 4NF.
2. Dependências cíclicas devem ser eliminadas.
http://erinaldosn.wordpress.com 51
Forma Normal de Chave-Domínio (FNCD)
NFCD é a aplicação final de normalização e é mais uma medição do estado conceitual, em oposição a um processo de transformação em si mesmo.
Descreve como um modelo de banco de dados totalmente normalizado deve aparecer.
http://erinaldosn.wordpress.com 55
Banco de dados totalmente normalizado
• Não pode haver inserção, alteração ou remoção de anomalias de dados.
• Cada registro em cada tabela deve ser unicamente identificável e diretamente relacionado com a chave primária na sua tabela.
• Todos validação dos dados é feita dentro do modelo de banco de dados.
http://erinaldosn.wordpress.com 56