Estou um pouco confuso com a definição de 3NF.
De acordo com a Wikipédia:
A terceira forma normal (3NF) é uma forma normal usada na normalização do banco de dados. A 3NF foi originalmente definida por EF Codd em 1971. A definição de Codd afirma que uma tabela está na 3NF se e somente se ambas as condições a seguir forem válidas:
- A relação R (tabela) está na segunda forma normal (2NF)
- Todo atributo não primo de R é dependente não transitivamente de toda superchave de R.
Mas, de acordo com o livro Database System Concepts 6th Edition de Abraham Silberschatz, Henry F.Korth, S.Sudarshan :
Um esquema de relação R está na terceira forma normal (3NF) em relação a um conjunto F de dependências funcionais se, para todas as dependências funcionais em F+ da forma α → β, onde α ⊆ R e β ⊆ R, pelo menos um dos seguintes retenções:
- α → β é uma dependência funcional trivial.
- α é uma superchave para R.
- Cada atributo A em β − α está contido em uma chave candidata para R.
Além disso, de acordo com o Database Systems 6th Edition de Ramez Elmasri Shamkant B. Navathe :
Um esquema de relação R está na terceira forma normal (3NF) se, sempre que uma dependência funcional não trivial X→A ocorre em R, ou (a) X é uma superchave de R, ou (b) A é um atributo primo de R.
Depois de ler as definições acima, não tenho certeza se um esquema de relação deve estar na 2NF para estar na 3NF. Além disso, um esquema de relação precisa estar na 3NF para estar na BCNF?