BCNF vs. 3NF
A forma normal de Boyce Codd (também conhecida como BCNF) é uma forma normal - que é uma forma que fornece critérios para determinar o grau de vulnerabilidade de uma tabela a inconsistências e anomalias lógicas. Este formulário normal é usado na normalização do banco de dados. É um pouco mais forte que seu antecessor, a terceira forma normal (também conhecida como 3NF). Pensa-se que uma tabela esteja no BCNF se, e somente se, para cada um, se suas dependências funcionais não triviais - que é um limite definido entre dois conjuntos de atributos em uma relação retirada de um banco de dados - é uma superchave (um conjunto de atributos de uma variável relacional que postula que em todas as relações atribuídas a essa variável específica não há duas linhas distintas contendo o mesmo valor para os atributos nesse conjunto específico). O BCNF postula que qualquer tabela que não atenda aos critérios a serem atribuídos como um BNCF é vulnerável a inconsistências lógicas.
3NF é uma forma normal que também é usada na normalização de banco de dados. Pensa-se que uma tabela esteja em 3NF se e somente se 1) a tabela estiver na segunda forma normal (ou 2NF, que é o primeiro código normal, ou 1NF, que atendeu aos critérios para se tornar um 2NF) e 2) todo atributo não primário da tabela depende não transitivamente de todas as chaves da tabela (o que significa que não depende diretamente de todas as chaves). Existe outra postulação do 3NF que também é usada para definir as diferenças entre o 3NF e o BCNF.
Este teorema foi concebido por Carlo Zaniolo em 1982. Ele afirma que uma tabela está em 3NF se, e somente se, para cada dependência funcional em que X † 'A, pelo menos uma das três condições deve ser mantida: X †' A, X é uma superchave ou A é um atributo primo (o que significa que A está contido em uma chave candidata - ou uma superchave mínima para essa relação). Essa definição mais recente difere do teorema de um BCNF, pois o último modelo simplesmente eliminaria a última condição. Mesmo atuando como uma versão mais recente do teorema de 3NF, há uma derivação do teorema de Zaniolo. Ele afirma que X † 'A não é trivial. Se isso for verdade, seja A um atributo de chave do meio-dia e também seja Y uma chave de R. Se isso for válido, Y † 'X. Isso significa que A não depende transitivamente de Y se, e somente se, X † 'Y (ou se X for uma superchave.
Resumo:
1. BCNF é uma forma normal em que, para cada uma das dependências funcionais não triviais de uma tabela, é uma superchave; 3NF é a forma normal em que a tabela está em 2NF e todos os atributos não primos dependem não transitivamente de todas as chaves da tabela.