Terceira Forma Normal (3FN):
A Terceira Forma Normal (3FN) é uma forma de normalização em que cada atributo de uma tabela deve depender apenas da chave primária e não de outros atributos não chave. Em outras palavras, não deve haver dependências transitivas entre os atributos não chave.
Exemplo de tabela que está em 3FN, mas viola a FNBC:
Considere a seguinte tabela de clientes:
Cliente_ID Nome Endereço Cidade
1 João Rua A São Paulo
2 Maria Rua B Rio de Janeiro
3 Ana Rua C São Paulo
Nesta tabela, o atributo "Cidade" depende apenas da chave primária "Cliente_ID", então está em 3FN. No entanto, essa tabela viola a FNBC se houver múltiplas chaves candidatas que não sejam superconjuntos umas das outras. Se considerarmos que tanto "Cliente_ID" quanto "Nome" poderiam ser chaves candidatas, então a tabela violaria a FNBC.
Forma Normal de Boyce-Codd (FNBC):
A Forma Normal de Boyce-Codd (FNBC) é uma forma mais restrita de normalização em que cada dependência funcional não trivial de um atributo é uma dependência funcional de uma superchave candidata. Em outras palavras, em uma tabela na FNBC, todos os atributos não chave devem depender completamente de todas as chaves candidatas e não de qualquer subconjunto delas.
Chaves Candidatas:
Uma chave candidata é um conjunto mínimo de atributos que pode ser usado para identificar exclusivamente cada linha em uma tabela. Em outras palavras, é um conjunto de atributos que, quando combinados, garantem a unicidade de cada linha na tabela. Por exemplo, em uma tabela de alunos, um conjunto de atributos como {Matrícula} ou {Nome, Data de Nascimento} poderia ser uma chave candidata, desde que identifique exclusivamente cada aluno na tabela.