Diferença entre 3NF e BCNF

3NF vs BCNF

Normalização é um processo realizado para minimizar as redundâncias presentes nos dados nos bancos de dados relacionais. Esse processo dividirá principalmente tabelas grandes em tabelas menores com menos redundâncias. Essas tabelas menores serão relacionadas entre si por meio de relacionamentos bem definidos. Em um banco de dados bem normalizado, qualquer alteração ou modificação nos dados exigirá a modificação de apenas uma única tabela. A Terceira Forma Normal (3NF) foi introduzida em 1971 por Edgar F. Codd, que também é o inventor do modelo relacional e do conceito de normalização. O Formulário Normal de Boyce-Codd (BCNF) foi introduzido em 1974 por Codd e Raymond F. Boyce.

O que é 3NF?

3NF é a terceira forma normal usada na normalização de banco de dados relacional. De acordo com a definição do Codd, diz-se que uma tabela está em 3NF, se e somente se, essa tabela está na segunda forma normal (2NF), e todos os atributos na tabela que não pertencem a uma chave candidata devem depender diretamente de todas as chaves candidatas dessa tabela. Em 1982, Carlo Zaniolo produziu uma definição diferente para 3NF. As tabelas que estão em conformidade com o 3NF geralmente não contêm anomalias que ocorrem ao inserir, excluir ou atualizar registros na tabela.

O que é BCNF?

O BCNF (também conhecido como 3.5NF) é outra forma normal usada na normalização de banco de dados relacional. Foi introduzido para capturar algumas das anomalias que não são tratadas pelo 3NF. Diz-se que uma tabela está no BCNF, se e somente se, para cada uma das dependências do formulário A → B que não são triviais, A é uma super-chave. A decomposição de uma tabela que não está na forma normal do BCNF não garante a produção de tabelas na forma do BCNF (preservando as dependências presentes na tabela original).

Qual é a diferença entre 3NF e BCNF?

3NF e BCNF são formas normais usadas em bancos de dados relacionais para minimizar redundâncias nas tabelas. Em uma tabela que está na forma normal de BCNF, para todas as dependências funcionais não triviais da forma A → B, A é uma super-chave, enquanto que uma tabela que esteja em conformidade com 3NF deve estar na 2NF e todas as não-primárias O atributo deve depender diretamente de todas as chaves candidatas dessa tabela. O BCNF é considerado uma forma normal mais forte que o 3NF e foi desenvolvido para capturar algumas das anomalias que não puderam ser capturadas pelo 3NF. A obtenção de uma tabela que esteja em conformidade com o formulário BCNF exigirá a decomposição de uma tabela que esteja no 3NF. Essa decomposição resultará em operações de junção adicionais (ou produtos cartesianos) ao executar consultas. Isso aumentará o tempo computacional. Por outro lado, as tabelas que atendem ao BCNF teriam menos redundâncias do que as tabelas que atendem apenas ao 3NF. Além disso, na maioria das vezes, é possível obter uma tabela que atenda ao 3NF sem prejudicar a preservação da dependência e a união sem perdas. Mas isso nem sempre é possível com o BCNF.