Normalização é um processo de análise das informações que serão guardadas nas tabelas de um banco de dados. Elas facilitam muito a construção e manutenção de um sistema, pois evitam redundância, inconsistência nas informações entre outros problemas que podem ser resolvidos ou minimizados.
A normalização tem sua principal base na teoria dos conjuntos e tem como principais objetivos:
- Independência dos dados
- Minimizar redundâncias, que por sua vez minimiza os riscos de inconsistências
- Facilitar a manipulação do Banco de Dados
- Facilitar a manutenção dos sistemas de informação, sem grandes impactos.
Existem até cinco formas normais e as mais comuns são as três primeiras.
A primeira forma normal é a repetição da chave primária. Como melhor exemplo o número de identidade de uma pessoa. Esse número nunca se repete, ou o número de uma nota fiscal. Essa é a condição para a primeira norma formal.
A segunda forma normal são as chaves primárias compostas, ou seja, contém mais de uma coluna, um atributo para compor a chave principal. Para resolver temos que eliminar a dependência entre o campo e a chave principal. Voltemos ao exemplo da tabela nota fiscal: temos número da nota e código do protudo como chave, quantidade e valor. Podemos separar os campos dependenetes do campo código do produto e montar uma outra tabela sendo ele (código do produto) o campo chave, seguido de quantidade, descrição e valor. Assim, quando quisermos saber uma informação sobre determinado produto daquela nota, é só pegarmos o seu código e compararmos com o valor do campo chave da nova tabela.
A terceira forma normal pede que não exista um atributo que depende de um outro atributo que não é chave principal. Para testar, você deve perguntar: “Existe algum atributo que depende de outro que não é chave?” Se a resposta for sim, está violando a terceira forma normal e os atributos que são dependentes de atributos não chave, devem ser retirados e montados em uma nova tabela. Como exemplo, na nota fiscal temos: código do cliente, endereço do cliente e cnpj. Estes atributos não são chaves e endereço do cliente e cnpj podem ser retirados e colocados em outra tabela tendo como campo chave o código do cliente, que também deve constar na tabela nota fiscal para podermos fazer o relacionamento e buscar as informações.
Devo salientar que a 3ª forma normal depende que a outra ou outras tabelas devam estar nas 2ª e 1ª formas normais, ou seja, para passar para 2ª, devem ser cumpridos os requisitos da 1ª forma normal. E o mesmo acontece para a 3ª, onde devem ser cumpridos os requisitos da 2ª para se alcançar o objetivo da 3ª forma normal.
Bem, aqui acabo este artigo, que foi somente uma introdução à normalização. Muitos livros de banco de dados falam sobre o assunto, e na internet também se acha bastante material.
Antes de fazer a normalização faça um diagrama das tabelas que você vai ter, desenhe em uma folha de papel, somente dos dados que serão guardados, tente simplificar ao máximo a tabela, ou seja, tente eliminar campos dependentes um do outro, campos com valores repetidos. Por exemplo, temos a nota fiscal, já pensou em uma tabela com todos os dados, do cliente, produtos e etc?
Assim separe, uma tabela para cliente outra para produtos e outra a nota fiscal.
Bem, devemos tirar todas os campos com valores repetidos possíveis, cada campo deve ter um valor único, não repetido, na segunda forma normal um campo não pode depender de um outro na mesma tabela.
Procedimentos para primeira forma normal:
Procedimentos:
a) Identificar a chave primária da entidade;
b) Identificar o grupo repetitivo e removelo da entidade;
c) Criar uma nova entidade com a chave primária da entidade anterior e o grupo repetitivo.
para a segunda forma normal:
a) Identificar os atributos que não são funcionalmente dependentes de toda a chave primária.
b) Remover da entidade todos esses atributos identificados e criar uma nova entidade com eles.
A chave primária da nova entidade será o atributo do qual os atributos removidos são funcionalmente dependentes.
para a terceira forma normal:
a) Identificar todos os atributos que são funcionalmente dependentes de outros atributos não chave;
b) Remove-los e criar uma nova entidade com os mesmos.
A chave primária da nova entidade será o atributo do qual os atributos removidos são funcionalmente dependentes.
Pegue sempre o conjunto da primeira tabela, por exemplo, nota fiscal e crie subconjuntos e neste subconjunto crie uma chave que ligue a outra tabela e dê um novo nome a esta tabela, mantenha os campos importantes. Vá fazendo isso até não haver mais campos com valores repetidos.
O campo chave é sempre de valor único.
A dependência é um campo depender de outro campo ou chave, a chave pode ser simples ou composta.
Dependência parcial é quando um campo depende só de uma parte de uma chave composta.
Bem é isso, sugestões, comentário e críticas são bem vindas.