Quando normalizar?

Queria alguma(s) dica(s) de quando devo realizar a normalização.

Agradeço desde já.

Olá tudo bem?

Devemos normalizar nossa base de dados afim de reduzir redundâncias e informações multi-valoradas em nossas tabelas.

Como um exemplo rápido de tabela desnormalizada: uma tabela de contato com mais de um número no campo de telefone.

Recomendo a leitura do link abaixo:

E por que vc deseja reduzir as redundâncias e informações multi-valoradas?

vamos la

as vezes as tabelas porem representar uma entidade real como um Cliente, uma Mercadoria, etc.

nesse caso os dados se agrupam de uma maneira natural e vc força relacionamentos através de chave-primaria/estrangeira e tabelas xref.

entretanto um banco de dados ocupa espaço. redundancia de informação pode te trazer desvantagens. nesse sentido normalizar faz sentido pq vc quer, por exemplo, salvar menos bytes. ou trafegar menos bytes.

imagine um cliente que tem endereços: vc pode socar tudo em um documento só, mas cada vez que vc precisar desse objeto vc vai ter coisas que não precisa ( vc quer o nome, e vem 99 endereços ou mesmo um historico do mesmo ).

por outro lado, denormalização tb pode fazer sentido, especialmente em bancos NoSQL - ainda mais se consistencia eventual pode ser tolerada

O analista não é capaz de antecipar, na hora da modelagem, quantos bytes vai usar, ou todos os possíveis fluxos de consulta para clientes e endereços que vc vai precisar no futuro. Por isso sistemas monolíticos precisam de um DBA de tiracolo, e pra criar aquelas queries magicas né.