Gestor
A normalização de tabelas é um passo fundamental no design de um banco de dados e da arquitetura de um sistema.
O por que?
Você irá precisar de normalizar os dados em duas situações principais: quando um campo do banco será variável como um vetor, ou quando julgar necessário manter informações devidamente separadas.
Exemplo 1. Vendas e nota fiscal.
Considere a seguinte tabela que armazena as vendas de uma papelaria. tabelaVendas - desnormalizada idVenda idCliente itens 1
1
3 cadernos, 5 lápis, 1 mochila
2
3
10 lápis, 2 borrachas, 300 folhas de sulfite
3
7
2 mochilas, 4 borrachas
Como podemos ver, o campo itens armazena uma quantidade variável de informação. Vamos aplicar a normalização aí na primeira forma normal, ou 1NF. tabelaVendas - quase 1NF idVenda idCliente item 1
Qtd 1 item 2
Qtd 2 item 3
Qtd 3
1
1 caderno 3 lápis 5 mochila 1
2
3 lápis 10 borracha 2 sulfite 300
3
7 mochila 2 borracha 4
OK, separamos as colunas para ter um e apenas um tipo de dado, mas ainda assim podemos ver que o design dessa tabela ainda é bem falho. E se um consumidor quiser comprar mais de 4 itens na mesma compra? mesmo que vc crie 200 campos, certamente haverá um ou outro caso onde esse limite será um problema, sem contar nas desvantagens óbvias de tamanho da tabela, espaço ocupado (com informações nulas), e no trabalho para criar relatórios em cima de uma tabela assim. Mas esta ainda não é a versão terminada da 1NF. Podemos fazer um design um pouco melhor para obter isso. tabelaVendas - 1NF idVenda idCliente linhaDaVenda Item
Qtd
1
1
1 caderno 3
1
1
2
lápis
5
1
1
3 mochila 1
2
3
1
lápis
10
2
3
2 borracha 2
2
3
3
sulfite
300
3
7
1 mochila 2
3
7
2
borracha
4
Pronto, chegamos assim à primeira forma normal. Sem valores multiplos dentro de um campos, e sem multiplos campos para a mesma função.
Os mais atentos devem ter percebido um