Diferença Entre 3NF e BCNF
3NF vs BCNF
A normalização é um processo que é realizado para minimizar as redundâncias que estão presentes em dados em bancos de dados relacionais. Este processo dividirá principalmente grandes tabelas em tabelas menores com menos redundâncias. Essas tabelas menores serão relacionadas entre si através de relacionamentos bem definidos. Em um banco de dados bem normalizado, qualquer alteração ou modificação nos dados exigirá modificar 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 o 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 do banco de dados relacional. De acordo com a definição do Codd, uma tabela é dita em 3NF, se e somente se essa tabela estiver na segunda forma normal (2NF) e cada atributo na tabela que não pertence a uma chave candidata deve depender diretamente de Cada chave candidata dessa tabela. Em 1982, Carlo Zaniolo produziu uma definição diferentemente expressa para 3NF. Tabelas que cumprem com o 3NF geralmente não contêm anomalias que ocorrem ao inserir, excluir ou atualizar registros na tabela.
O que é BCNF?
BCNF (também conhecido como 3. 5NF) é outra forma normal usada na normalização do banco de dados relacional. Foi introduzido para capturar algumas das anomalias que não são abordadas pelo 3NF. Uma tabela é dita em BCNF, se e somente se, para cada uma das dependências da forma A → B que não são triviais, A é uma super-chave. A descomposição de uma tabela que não está no formulário normal BCNF não garante a produção de tabelas no formulário BCNF (preservando as dependências que estavam presentes na tabela original).
Qual a diferença entre 3NF e BCNF?
Tanto o 3NF como o BCNF são formas normais que são usadas em bancos de dados relacionais para minimizar redundâncias nas tabelas. Em uma tabela que está no formulário normal BCNF, para cada dependência funcional não trivial da forma A → B, A é uma super-chave, enquanto que uma tabela que cumpre com 3NF deve estar no 2NF e em todos os não-prime O atributo deve depender diretamente de cada chave candidata dessa tabela. BCNF é considerado como uma forma normal mais forte que o 3NF e foi desenvolvido para capturar algumas das anomalias que não puderam ser capturadas por 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 de computação. Por outro lado, as tabelas que cumprem o BCNF teriam menos redundâncias do que tabelas que apenas atendem a 3NF.Além disso, na maioria das vezes, é possível obter uma tabela que cumpra 3NF sem dificultar a preservação da dependência e a junção sem perdas. Mas isso nem sempre é possível com BCNF.