Diferença entre 3NF e BCNF

Diferença entre 3NF e BCNF
Diferença entre 3NF e BCNF

Vídeo: Diferença entre 3NF e BCNF

Vídeo: Diferença entre 3NF e BCNF
Vídeo: RUP vs. Waterfall Comparison based on an analogy with Construction 2024, Novembro
Anonim

3NF vs BCNF

Normalização é um processo que é realizado para minimizar as redundâncias que estão presentes nos dados em 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 (3FN) foi introduzida em 1971 por Edgar F. Codd, que também é o inventor do modelo relacional e do conceito de normalização. A Forma Normal de Boyce-Codd (BCNF) foi introduzida 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 de Codd, diz-se que uma tabela está na 3FN, se e somente se, essa tabela está na segunda forma normal (2FN), 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 expressa de forma diferente para 3FN. As tabelas que atendem à 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 de banco de dados relacional. Foi introduzido para capturar algumas anomalias que não são abordadas pela 3NF. Diz-se que uma tabela está na BCNF se, e somente se, para cada uma das dependências da forma A → B que não são triviais, A é uma superchave. Decompor uma tabela que não está na forma normal BCNF não garante a produção de tabelas na forma BCNF (preservando as dependências que estavam presentes na tabela original).

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

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

Recomendado: