1.2. Segunda forma normal
Vamos ver um exemplo bem simples para explicar melhor a segunda forma normal. Suponha que exista uma tabela de projetos de organização com a estrutura e conteúdo abaixo:
| Projeto_ID | Cliente_ID | DataInicio | Valor | Cliente |
|---|---|---|---|---|
| 1 | 7 | 12/05/2015 | 23.400 | Márcio |
| 2 | 8 | 19/09/2015 | 32.350 | André |
| 3 | 9 | 01/10/2015 | 11.500 | Pedro |
Observe que essa tabela possui duas chaves primárias, uma para projetos (Projeto_ID) e outra para cliente (Cliente_ID). Agora perceba que há dados nessa tabela que remetem ao projeto (DataInicio e Valor), e há um campo que remete ao cliente (Cliente). Dessa forma, essa tabela mescla dois conteúdos distintos, projetos e clientes, e deveria ser separada em duas tabelas, da seguinte forma:
| Projeto_ID | Cliente_ID | DataInicio | Valor |
|---|---|---|---|
| 1 | 7 | 12/05/2015 | 23.400 |
| 2 | 8 | 19/09/2015 | 32.350 |
| 3 | 9 | 01/10/2015 | 11.500 |
| Cliente_ID | Cliente |
|---|---|
| 7 | Márcio |
| 8 | André |
| 9 | Pedro |
Desta forma, com duas tabelas separadas, temos cada uma com seu identificador exclusivo e com seus dados afins. A relação entre projetos e clientes é de um para muitos.
Ao analisar nosso modelo de dados, observamos que não possuímos tabelas que necessitem desse tipo de ajuste. Portanto, nosso modelo já se encontra na segunda forma normal.