Normalização de banco de dados relacional. Um banco de dados é basicamente formado por um conjunto de tabelas que armazenam registros na sua forma mais granular (dados ou atributos), que associados em um contexto lógico podem nos gerar uma informação. O processo de normalização de banco de dados vem com a proposta de tornar essa organização de dados mais consistente, evitando redundância dos dados, ou seja, que a mesma informação fique espalhada por várias tabelas. Não podemos afirmar que esse processo tenha a finalidade de melhorar a performance das consultas ao banco, pois em alguns casos, a desnormalização dos dados é uma ótima maneira de se conseguir reduzir o tempo de processamento de uma consulta, disponibilizando a mesma informação em vários locais distintos e de forma a reduzir ao máximo o número de relacionamento entre tabelas para interpretação dos dados. No total, existem 5 regras de normalização de tabelas, conhecidas como 5 formas normais. Elas são conhecidas pela ordem de aplicação, a exceção da quarta forma normal, que é mais popularmente conhecida como Boyce-Codd (BCNF), em homenagem aos seus desenvolvedores, Raymond F. Boyce e Edgar F. Codd. Na prática, utilizando-se somente das três primeiras regras, já temos um banco de dados considerado normalizado. A primeira etapa para normalizar um banco de dados, é garantir que nenhuma das tabelas possuam mais de um registro por tupla (cruzamento de uma linha com uma coluna). Veja o exemplo clássico abaixo, de uma tabela que está desnormalizada. O registro do cliente de código C001 contém mais de um número de telefone, porém, armazenados todos na mesma coluna. Dessa forma, uma busca por um número específico será prejudicado, pois o conjunto inteiro, ou seja, os dois números de telefones juntos é quem compões o valor único do registro.