A normalização de bancos de dados é uma abordagem para projetar bancos de dados que foi introduzida por Edgar F. Codd nos anos 70. Certas bases de dados, conhecidas como bases de dados relacionais, permitem que os dados sejam armazenados em grupos separados. Cada grupo é comumente chamado de tabela. Para fornecer informações úteis, estes grupos estão conectados uns aos outros. Por exemplo, os alunos podem ser armazenados em um grupo, e as aulas em outro grupo. Para mostrar que um aluno está matriculado em uma classe, um "relacionamento" é estabelecido de um grupo para o outro. Um aluno poderia ter um relacionamento com muitas classes, cada uma das quais estaria matriculada, enquanto uma classe teria um relacionamento com muitos alunos.

Uma alternativa tradicional é o "banco de dados de arquivo plano", onde todos os dados são agrupados como em uma planilha. O problema com os bancos de dados de arquivos planos é que eles podem ter muitos espaços em branco e há muita informação que tem que ser repetida para cada entrada. Isto significa que o banco de dados é maior do que tem que ser e torna mais provável que o banco de dados contenha erros. As bases de dados relacionais, ao dividir os dados em grupos, reduzem a chance de ocorrência de erros e não ocupam mais espaço do que o necessário. Mas, para que funcione, ele precisa ser bem projetado.

A normalização das bases de dados é um método para projetar boas bases de dados relacionais. Existem várias "formas normais", cada uma delas com regras que o banco de dados deve ser projetado para atender. O Codd especificou originalmente três conjuntos de critérios que diferentes bancos de dados devem atender: primeiro, segundo e terceiro formulários normais.

Se uma relação (ou "tabela de banco de dados") se encontra de certa forma normal, ela não é vulnerável a certas modificações, que afetarão a integridade dos dados. A desvantagem de satisfazer tal conjunto de critérios é que, geralmente, a consulta de certos dados do banco de dados se tornará mais difícil.