Por que esse termo gera tanta confusão
«Normalização de dados» é um daqueles termos que significam coisas completamente diferentes dependendo de quem os pronuncia. Um engenheiro de banco de dados, um cientista de dados e um especialista em qualidade de dados, quando dizem «é preciso normalizar os dados», estão se referindo a três processos que não se parecem entre si. Antes de colocar a mão na massa, convém esclarecer de qual deles se está falando.
Os três sentidos principais:
- Normalização de bancos de dados — projetar a estrutura das tabelas de modo a eliminar a redundância e as anomalias. É a teoria clássica dos bancos de dados relacionais e das «formas normais».
- Normalização (padronização, canonização) de dados — levar os valores a um formato único: datas, telefones, endereços, maiúsculas e minúsculas, codificações. É um capítulo da limpeza de dados, ligado diretamente ao enriquecimento e ao pareamento de registros.
- Normalização de variáveis em estatística e ML — levar as variáveis numéricas a uma escala ou distribuição comum para que os algoritmos funcionem corretamente.
Vamos analisar os três, um de cada vez.
Sentido 1. A normalização de bancos de dados
Em que consiste
A normalização de bancos de dados é o processo de decompor as tabelas em outras menores e logicamente relacionadas, de modo que cada fato seja armazenado em exatamente um lugar. A teoria foi estabelecida por Edgar Codd dentro do modelo relacional. O objetivo principal: eliminar a redundância e as anomalias que a acompanham.
Que problemas resolve
Se os dados vivem em uma única tabela «plana» com duplicação, surgem três tipos de anomalia:
- Anomalia de inserção. Não dá para acrescentar um fato sem dispor dos dados que o acompanham. Por exemplo, não dá para cadastrar um funcionário novo enquanto ele não estiver alocado em um projeto, se as duas entidades dividem a mesma tabela.
- Anomalia de atualização. O mesmo fato está duplicado em várias linhas: ao alterá-lo, é preciso corrigir todas as cópias, e é fácil acabar com dados incoerentes.
- Anomalia de exclusão. Ao apagar uma linha, podem-se perder sem querer dados que só existiam nela (por exemplo, ao excluir o último projeto de um funcionário, perde-se também o próprio funcionário).
As formas normais
A normalização avança por níveis — as «formas normais». Cada uma é mais rigorosa que a anterior e engloba os requisitos dela.
Primeira forma normal (1FN). Todos os valores são atômicos: em cada célula, um único valor, sem listas nem grupos repetidos. Não se pode guardar «telefones: 111, 222, 333» em um único campo; cada telefone é um registro à parte.
Segunda forma normal (2FN). A tabela está na 1FN e, além disso, não há dependências parciais: cada atributo não chave depende da chave primária inteira, não de uma parte dela. Isso é relevante com chaves compostas. Se a chave é «(pedido, produto)» e o nome do produto depende apenas de «produto», a 2FN é violada: o nome do produto deve sair para uma tabela própria.
Terceira forma normal (3FN). A tabela está na 2FN e não há dependências transitivas: os atributos não chave dependem apenas da chave, não uns dos outros. Se na tabela de funcionários se guardam «departamento» e «responsável pelo departamento», o responsável depende do departamento, e não do funcionário diretamente — é uma dependência transitiva, e o departamento com seus atributos é separado em outra tabela.
Forma normal de Boyce--Codd (FNBC). Uma 3FN reforçada: todo determinante (aquilo de que algo depende) deve ser uma chave candidata. Resolve casos pouco frequentes que a 3FN deixa passar quando existem várias chaves sobrepostas.
Quarta (4FN) e quinta (5FN) formas normais. Eliminam as dependências multivaloradas e as dependências de junção, respectivamente. Na prática, raramente se chega até elas; para a maioria dos sistemas, a meta razoável é a 3FN ou a FNBC.
A desnormalização: quando a normalização atrapalha
A normalização é otimizada para a integridade e a escrita, mas fragmenta os dados em muitas tabelas, o que torna a leitura mais lenta pela abundância de combinações (JOIN). Por isso, nos sistemas analíticos costuma-se ir na direção contrária: desnormaliza-se, introduzindo redundância de forma consciente em troca de velocidade de leitura.
Exemplos típicos:
- Data warehouses e OLAP. Os esquemas «estrela» e «floco de neve» duplicam dados de propósito nas tabelas de dimensões.
- Leituras de alta carga. Agregados pré-calculados, views materializadas.
- NoSQL. Os bancos de documentos costumam guardar juntos os dados relacionados para lê-los com uma única consulta.
A regra é simples: normalize para os sistemas transacionais (OLTP) e desnormalize de forma consciente para os analíticos (OLAP), sempre sabendo que preço (o risco de incoerências) se paga por essa velocidade.
Sentido 2. A normalização como unificação de formatos (padronização)
Em que consiste
É o sentido que mais aparece nas tarefas de limpeza e enriquecimento de dados. Aqui, normalizar significa levar valores com o mesmo significado a um formato canônico único. O objetivo: que dados essencialmente iguais tenham a mesma aparência; caso contrário, é impossível compará-los, agrupá-los e cruzá-los.
Essa normalização é a etapa obrigatória que antecede o pareamento de registros (record matching), a deduplicação e o enriquecimento. Não há como casar com confiança «Oficinas Lopes Ltda.» com «OFICINAS LOPES LTDA» enquanto os nomes não forem levados a uma forma comum.
O que se costuma normalizar
Datas e horários. Conversão para um padrão único — normalmente ISO 8601 (2026-06-29), um único fuso horário (com frequência UTC), um único formato. «29/06/2026», «June 29, 2026» e «2026/06/29» devem acabar sendo o mesmo valor.
Números de telefone. Conversão para o formato internacional E.164 (+5511987654321): remover espaços, parênteses e hífens e acrescentar o código do país.
Campos de texto. Corte dos espaços sobrando, unificação de maiúsculas e minúsculas, remoção de caracteres invisíveis, colapso de espaços duplos.
Codificações e Unicode. Conversão para UTF-8 e para uma única forma de normalização Unicode (NFC/NFD), para que caracteres visualmente idênticos sejam armazenados com os mesmos bytes. Caso contrário, «é» como um único caractere e «é» como «e + acento combinável» são consideradas strings distintas.
Endereços. Padronização para um formato único: expansão de abreviações («Av.» → «Avenida»), ordem fixa dos componentes, normalização dos CEPs. Com frequência se apoia em serviços especializados de geocodificação.
Unidades de medida e moedas. Conversão para uma unidade-base (tudo para metros, tudo para gramas, tudo para uma mesma moeda pela taxa de câmbio da data).
Valores categóricos. Redução de sinônimos e variantes de grafia a um valor de referência: «EUA», «USA», «United States» → um único código de país. É o chamado mapeamento contra um catálogo (lookup/reference data).
Identificadores. Normalização de números de registro, domínios (minúsculas, remover www), e-mails (domínio em minúsculas).
O processo de padronização
Um pipeline típico:
- Perfilamento. Entender que formatos realmente aparecem nos dados e até que ponto eles estão «sujos».
- Definição da forma canônica. Decidir para qual formato único cada campo será levado.
- Parsing e decomposição. Separar o valor em componentes (por exemplo, o endereço em rua, número e cidade).
- Transformação. Aplicar as regras de conversão para a forma canônica.
- Mapeamento contra catálogos. Cotejar os valores com tabelas de referência (países, moedas, setores).
- Validação. Conferir a correção do resultado (o telefone tem o número certo de dígitos, a data existe).
- Registro (logging). Guardar o que foi alterado e como, para garantir a rastreabilidade.
Ferramentas
Uma parte se resolve com expressões regulares e regras; outra, com bibliotecas especializadas: para telefones existem bibliotecas de parsing de números; para endereços, geocodificadores; e para Unicode, as funções de normalização embutidas em cada linguagem. Para grandes volumes, empregam-se plataformas de ETL/ELT e ferramentas de qualidade de dados.
Sentido 3. A normalização de variáveis em estatística e machine learning
Em que consiste
Em ML, «normalização» significa levar as variáveis numéricas a uma escala ou distribuição comparáveis. O problema é que as variáveis vêm em unidades e faixas distintas: a idade (0--100) e a renda (0--10 000 000). Muitos algoritmos, nessas condições, «favorecem» as variáveis com valores grandes por pura escala, não por importância.
Métodos principais
Normalização min-max. Comprime linearmente os valores para a faixa [0, 1] com a fórmula (x − min) / (max − min). Conserva a forma da distribuição, mas é sensível aos valores discrepantes (outliers): um único máximo extremo «esmaga» todos os demais valores.
Padronização (z-score). Leva os dados a média 0 e desvio padrão 1 com a fórmula (x − μ) / σ. Não limita os valores a uma faixa fixa e funciona melhor quando os dados se aproximam de uma distribuição normal. Muitas vezes é justamente isso que se chama de «normalização», embora tecnicamente seja uma padronização.
Escalonamento robusto. Usa a mediana e o intervalo interquartil em vez da média e do desvio — resistente aos outliers.
Normalização do vetor (L2). Leva o vetor de variáveis ao comprimento unitário. Aplica-se, por exemplo, ao trabalhar com vetores de texto e com a similaridade de cosseno.
Transformação logarítmica. Não é um escalonamento em sentido estrito, mas é usada com frequência para «endireitar» distribuições muito assimétricas (renda, tamanho de empresas).
Quando é necessária e quando não
É necessária para os algoritmos sensíveis à escala e às distâncias:
- métodos baseados em distância (kNN, k-means, SVM);
- gradiente descendente (redes neurais, modelos lineares) — a normalização acelera a convergência;
- métodos com regularização;
- redução de dimensionalidade (PCA).
Não é imprescindível para os modelos de árvore (árvores de decisão, random forest, gradient boosting): eles trabalham com limiares sobre cada variável separadamente, e um escalonamento monótono não os afeta.
Uma regra prática importante
Os parâmetros de normalização (min, max, μ, σ) são calculados apenas sobre o conjunto de treinamento e depois aplicados aos dados de teste e de produção. Se forem calculados sobre todos os dados de uma vez, ocorre um «vazamento» de informação do teste para o treinamento (data leakage), e a avaliação da qualidade do modelo sai inflada.
Como não se confundir: guia rápido
| Se a conversa gira em torno de... | ...trata-se de |
|---|---|
| Tabelas, chaves, JOIN, redundância, anomalias | Formas normais (Sentido 1) |
| Formatos de datas, telefones e endereços, duplicatas, pareamento | Padronização / canonização (Sentido 2) |
| Variáveis, escala, treinamento do modelo, μ e σ | Escalonamento de variáveis (Sentido 3) |
Uma forma prática de saber do que se fala: perguntar qual é o objetivo. Integridade e eliminação de duplicidades no armazenamento — formas normais. Poder comparar e casar registros — padronização. O algoritmo funcionar corretamente — escalonamento de variáveis.
Relação com o enriquecimento de dados
A normalização no segundo sentido (padronização) é o alicerce sem o qual o enriquecimento não funciona. Para encontrar um registro em uma fonte externa por uma chave, essa chave precisa estar unificada dos dois lados: domínios em minúsculas, telefones em E.164, nomes de empresas sem variações na forma jurídica. Por isso, em um pipeline real de tratamento de dados a ordem costuma ser esta: primeiro o perfilamento, depois a normalização/padronização, em seguida o pareamento e a deduplicação, e só então o enriquecimento com dados externos.
Conclusões breves
«Normalização de dados» é um termo guarda-chuva que cobre três tarefas distintas:
- As formas normais põem ordem na estrutura de um banco de dados relacional ao eliminar a redundância e as anomalias; às vezes são violadas de propósito (desnormalização) em troca de velocidade de leitura.
- A padronização leva os valores a um formato canônico único: é a base da limpeza, do pareamento e do enriquecimento de dados.
- O escalonamento de variáveis prepara os dados numéricos para os algoritmos de machine learning sensíveis à escala.
A habilidade prática essencial consiste em deduzir pelo contexto qual normalização é necessária em cada caso — e não aplicar o método de uma área onde é preciso o de outra.