Uma tabela encontra-se na Segunda Forma Normal (2FN) se estiver em conformidade com a 1FN e todo atributo do
complemento de uma chave candidata é totalmente funcionalmente dependente daquela chave, ou seja, todos os atributos
não chave devem ser totalmente dependentes da chave primária (dependente de toda a chave e não apenas de parte dela).
Exemplo
NOTA {cod_nota, cod_disciplina, cod_aluno, valor_nota, nome_aluno, nome_disciplina}
identificar atributo não chaves: valor_nota, nome_aluno e nome_disciplina.
analisar para cada atributo não chave sua dependência das chaves:
atributo "valor_nota": está correto pois é o valor do cod_nota, que é de uma
disciplina (cod_disciplina) e de um aluno (cod_aluno).
atributo "nome_aluno": está incorreto pois ele é desnecessário nesta tabela tendo
em vista que dado uma nota (cod_nota) eu consigo descobrir qual é o nome do aluno
dela (cod_aluno).
atributo "nome_disciplina": está incorreto pois ele é desnecessário nesta tabela tendo em
vista que dado uma nota (cod_nota) eu consigo descobrir qual é o nome da disciplina dela
(cod_disciplina)
Correção
ALUNO {cod_aluno, nome}
DISCIPLINA {cod_disciplina, nome}
NOTA { cod_nota, cod_disciplina, cod_aluno, valor_nota}
Terceira Forma Normal - 3FN
Uma tabela está na Terceira Forma Normal 3FN se estiver em conformidade com a
1FN, 2FN e se nenhuma coluna não-chave depender de outra coluna não-chave. Na
terceira forma normal temos de eliminar aqueles campos que podem ser obtidos
pela equação de outros campos da mesma tabela.
Exemplo
NOTA {cod_nota, cod_disciplina, cod_aluno, nota1, nota2, nota3, nota4, media_notas}
Correção
os atributos que não são chaves são: "nota1", "nota2",
"nota3", "nota4" e "media_notas"
"nota1", "nota2", "nota3" e "nota4": são atributos de um aluno em uma
determinada disciplina, portanto estão corretos.
o atributo "media_notas" é um atributo transitivo, ou seja, para ele
existir ele depende diretamente da existência de "nota1", "nota2",
"nota3" e "nota4" e não do aluno e não da disciplina.
NOTA {cod_nota, cod_disciplina, cod_aluno, nota1, nota2, nota3, nota4}
Conceitos
Uma forma normal é uma regra de deve ser aplicada na construção das
tabelas do banco de dados para que estas fiquem bem estruturadas.
Esta estruturação consiste em: reduzir ao mínimo a redundância e,
como consequência, permitir aos usuários inserir, modificar e
apagar linhas (registros) em tabelas, sem erros ou inconsistências.