DEV Community

Cover image for Como normalizar banco de dados?
Lucas Cruz
Lucas Cruz

Posted on • Edited on

Como normalizar banco de dados?

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)