Diferença entre 3NF e BCNF

Autor: Laura McKinney
Data De Criação: 1 Abril 2021
Data De Atualização: 13 Poderia 2024
Anonim
Diferença entre 3NF e BCNF - Tecnologia
Diferença entre 3NF e BCNF - Tecnologia

Contente


Normalização é um método que remove redundância de uma relação, minimizando assim as anomalias de inserção, exclusão e atualização que degradam o desempenho dos bancos de dados. Neste artigo, iremos diferenciar entre duas formas normais mais altas, ou seja, 3NF e BCNF. A diferença básica entre 3NF e BCNF é que 3NF elimina a dependência transitiva de uma relação e de uma tabela no BCNF, a dependência funcional trivial X-> Y em uma relação deve se manter, apenas se X for a super chave.

Vamos discutir as diferenças entre 3NF e BCNF com a ajuda do gráfico de comparação mostrado abaixo.

  1. Gráfico de comparação
  2. Definição
  3. Principais diferenças
  4. Conclusão

Gráfico de comparação

Base para Comparação3NFBCNF
ConceitoNenhum atributo não primário deve depender transitivamente da chave Candidate.Para qualquer dependência trivial em uma relação R, diga X-> Y, X deve ser uma super chave da relação R.
Dependência3NF pode ser obtido sem sacrificar todas as dependências.Dependências não podem ser preservadas no BCNF.
DecomposiçãoA decomposição sem perdas pode ser alcançada em 3NF.A decomposição sem perdas é difícil de alcançar no BCNF.


Definição de 3NF

Uma tabela ou uma relação é considerada em Terceira forma normal somente se a tabela já estiver em 2NF e não há não primo atributo transitivamente dependente do Chave candidata de uma relação.

Portanto, antes de abordar o processo de normalização de uma tabela no 3NF, permita-me discutir a chave do candidato. UMA Chave candidata é super chave mínima ou seja, uma super chave com atributos mínimos que podem definir todos os atributos de uma relação. Portanto, no processo de normalizar sua tabela, primeiro, você reconhece a chave candidata de uma determinada relação. Os atributos que fazem parte da chave candidata são atributos principaise os atributos que não fazem parte da chave candidata são atributos não primos.


Agora, se temos uma relação R (A, B, C, D, E, F) e temos as seguintes dependências de função para a relação R.

Observando dependências funcionais, podemos concluir que AB é uma chave candidata para a relação R porque, usando a chave AB, podemos procurar o valor para todo o atributo em uma relação R. Então A, B torna-se atributos principais enquanto juntos formam a chave do candidato. Os atributos C, D, E, F torna-se não primo atributos porque nenhum deles faz parte de uma chave candidata.

A tabela está em 2NF, pois nenhum atributo não primário depende parcialmente da chave candidata

Porém, uma dependência transitiva é observada entre as dependências funcionais fornecidas, como o atributo F não depende diretamente da chave candidata AB. Em vez disso, atribua F é transitivamente depende da chave candidata AB via atributo D. Até que o atributo D tenha algum valor que possamos alcançar para atribuir o valor de F, a partir da chave candidata AB. Caso o valor do atributo D seja NULL, nunca poderemos encontrar / pesquisar o valor de F com a ajuda da chave candidata AB. Esta é a razão pela qual a 3NF exige remover a dependência transitiva das relações.

Portanto, para remover essa dependência transitiva, precisamos dividir a relação R. Ao dividir uma relação, sempre coloque a chave candidata e todos os atributos que dependem dessa chave candidata na primeira relação. Na próxima relação dividida, colocaremos o atributo que causa dependência transitiva e também os atributos que dependem dele na segunda relação.

Agora, as tabelas R1 e R2 estão em 3NF, pois não há dependências parciais e transitivas. Relação R1 (A, B, C, D, E) tem uma chave candidata AB considerando que R2 (D, E) tem D como sua chave candidata.

Definição de BCNF

O BCNF é considerado o mais forte que o 3NF. A relação R para estar no BCNF deve estar em 3NF. E sempre que um dependência funcional não trivial A -> B mantém em relação R, então UMA deve ser um superchave da relação R. Como sabemos, Super chave é uma chave que possui um único atributo ou conjunto de atributos que determina todos os atributos de uma relação.

Agora, passemos a um exemplo para entender o BCNF de uma maneira melhor. Suponhamos que tenhamos uma relação R (A, B, C, D, F), que possuem as seguintes dependências funcionais.

Observando a relação R, podemos dizer que UMA e BF são chaves candidatas da relação R, porque eles sozinhos podem procurar o valor para todos os atributos na relação R. A, B, F são as prime atributos enquanto C e D são não primo atributos. Nenhuma dependência transitiva é observada nas dependências funcionais presentes acima. Portanto, a tabela R está em 3NF.

Mas uma dependência funcional, isto é, D -> F está violando a definição de BCNF, segundo a qual, se D -> F existir, D deve ser o super chave o que não é o caso aqui. Então vamos dividir a relação R.

Agora, as tabelas R1 e R2 estão em BCNF. Relação R1 tem dois candidato chaves UMA e B, a dependência funcional trivial de R1, ou seja, A-> BCD e B -> ACD, segure para BCNF, pois A e B são as super-chaves da relação. Relação R2 tem D como seu Chave candidata e a dependência funcional D -> F também vale para BCNF, pois D é uma Super Chave.

  1. 3NF afirma que nenhum atributo não primário deve ser transitivamente dependente da chave candidata da relação. Por outro lado, o BCNF afirma que, se existir uma dependência funcional trivial X -> Y para uma relação; então X deve ser uma super chave.
  2. 3NF pode ser obtido sem sacrificar a dependência da relação. No entanto, a dependência não pode ser preservada durante a obtenção do BCNF.
  3. O 3NF pode ser alcançado sem perder nenhuma informação da tabela antiga, enquanto que, ao obter o BCNF, podemos perder algumas informações da tabela antiga.

Conclusão:

O BCNF é muito restritivo que o 3NF, o que ajuda a normalizar mais a tabela. A relação no 3NF tem redundância mínima restante, a qual é mais removida pelo BCNF.