Normalização
O conceito de normalização foi introduzido por E. F. Codd em 1970. Essa técnica é um processo matemático formal, que tem seus fundamentos na teoria dos conjuntos. Através desse processo pode-se, gradativamente, substituir um conjunto de entidades e relacionamentos por um outro, o qual se apresenta “purificado” em relação às anomalias de atualização (inclusão, alteração e exclusão). Essas anomalias podem causar certos problemas, tais como: grupos de dados repetitivos (atributos multivalorados), dependências parciais em relação a uma chave composta, redundância de dados desnecessárias, perdas acidentais de informação, dificuldade na representação de fatos da realidade observada e dependências transitivas entre atributos.
É utilizada em duas abordagens principais:
Top-Down (de cima para baixo): Após a definição de um modelo de dados, aplica-se a normalização para se obter uma síntese dos dados, bem como uma decomposição das entidades e relacionamentos em elementos mais estáveis, tendo em vista sua implementação física em um banco de dados.
Bottom-Up (de baixo para cima): Permite obter um modelo relacional a partir de documentos, arquivos ou um banco de dados não-relacional. Também é utilizada para realização de engenharia reversa.
A normalização baseia-se no conceito de “forma normal”. Uma forma normal é uma regra que deve ser obedecida por uma tabela para que esta seja considerada “bem projetada”. Existem diversas formas normais, sendo que neste documento serão vistas as seguintes: primeira forma normal (1FN); segunda forma normal (2FN); terceira forma normal (3FN) e quarta forma normal (4FN).
Para se entender o processo de normalização, alguns conceitos são necessários:
Tabela aninhada: é uma coluna que ao invés de conter valores atômicos, contém tabelas aninhadas. Também é chamada por alguns autores de ”grupo repetido”, “grupo repetitivo”, ”coluna multi-valorada” ou ”coluna não atômica” [HEU 2000 pg.129]. Vide Fig. 1.