Ao fim desse artigo você saberá como normalizar um banco de dados uma habilidade essencial para qualquer um que deseje desenvolver softwares com persistência de dados
O que é normalização?
A normalização é um processo para organizar e estruturar um banco de dados relacional para eliminar redundâncias e anomalias.
As formas normais são 1FN: Atomicidade de dados, 2FN: Eliminação de dependências parciais, 3FN: Eliminação de dependências transitivas. Cada uma das formas normais depende da anterior ou seja é preciso está na 1FN para ir para a 2FN.
1FN: Atomicidade de dados
As colunas devem ser atômicas ou seja indivisíveis, por exemplo, se o endereço for um dado que vai ser salvo, seguindo a 1º forma normal cada parte do endereço deve ser uma coluna:
| número da casa | bairro | rua | cidade |
e não apenas
|endereço|
E também caso tenha muita um valor se repita varias vezes deve-se registrá-lo em outra tabela.
Por exemplo pode se haver tabelas para: Bairro, Rua e Cidade
Bairro
| id | nome do bairro |
Rua
| id | nome da rua |
Cidade
| id | nome da cidade |
Assim na tabela endereço as colunas só referenciam o id ao invés de repetir o valor varias vezes.
2NF: Eliminação de Dependências Parciais
Primeiro precisa-se seguir a 1NF.
Os atributos da tabela devem depender de uma chave primaria completa não de forma parcial em caso de chaves conjuntas.
Se for uma tabela pedido:
|id do pedido | id do cliente | nome do cliente | Hora da entrega|
Deve-se analisar qual é a chave primária, agora verificar se algum atributo não chave está dependendo de outra chave, se estiver deve ser movido para outra tabela, nesse caso o nome do cliente ficando assim:
Tabela pedido:
| id do pedido | id do cliente | Hora da entrega |
Tabela cliente:
| id do cliente | nome do cliente |
3NF: Remoção de Dependências Transitivas
Deve atender o 2NF.
Os atributos só podem depender do id e de nenhuma outra coluna.
Por exemplo se você uma tabela produto:
Tabela produto
| id do produto | nome do produto | categoria do produto | preço |
Como a coluna de categoria do produto depende da coluna nome do produto ele deve ser movido para outra tabela e referenciado nessa:
Tabela categorias
| id da categoria | nome da categoria |
Isso promove maior organização dos dados e ajuda a evitar anomalias na modificação, inserção e exclusão de dados.
Referências:
https://pt.wikipedia.org/wiki/Normaliza%C3%A7%C3%A3o_de_dados
https://dev.to/ikauematos/conceitos-principais-sobre-normalizacao-1hpl
Top comments (0)