Carvalho 2009
Email : contato@pedrofcarvalho.com.br
Normalizao de dados o processo formal passo a passo que examina os atributos de uma entidade, com o objetivo de evitar anomalias observadas na incluso, excluso e alterao de registros. Uma regra de ouro que devemos observar quando do projeto de um Banco de Dados baseado no Modelo Relacional de Dados a de "no misturar assuntos em uma mesma Tabela". Por exemplo: na Tabela Clientes devemos colocar somente campos relacionados com o assunto Clientes. No devemos misturar campos relacionados com outros assuntos, tais como Pedidos, Produtos, etc. Essa "Mistura de Assuntos" em uma mesma tabela acaba por gerar repetio desnecessria dos dados bem como inconsistncia dos dados. Normalmente aps a aplicao das regras de normalizao de dados, algumas tabelas acabam sendo divididas em duas ou mais tabelas, o que no final gera um nmero maior de tabelas do que o originalmente existente. Este processo causa a simplificao dos atributos de uma tabela, colaborando significativamente para a estabilidade do modelo de dados, reduzindo-se consideravelmente as necessidades de manuteno. Objetivos Minimizao de redundncias e inconsistncias; Facilidade de manipulaes do banco de dados; Facilidade de manuteno do sistema de Informao.
As formas normais O Processo de normalizao aplica uma srie de regras sobre as tabelas de um banco de dados, para verificar se estas esto corretamente projetadas. Embora existam cinco formas normais (ou regras de normalizao), na prtica usamos um conjunto de trs Formas Normais. Vejamos as trs primeiras formas normais do processo de normalizao de dados. Primeira Forma Normal (1FN) Segunda Forma Normal (2FN) Terceira Forma Normal (3FN)
Apesar de existir outras formas normais como a quarta forma normal e quinta forma normal, apenas as trs primeiras tem sido considerada atualmente. As formas normais so importantes instrumentos para resolver antecipadamente problemas na estrutura do banco de dados. Para aplicar a normalizao de dados necessrio considerar a sequncia das formas normais, isto , para aplicar a segunda forma normal por exemplo, necessrio que seja aplicado a primeira
forma normal. Da mesma forma, para aplicar a terceira forma normal necessrio que j tenha sido feita a normalizao na segunda forma normal.
A chave primria da nova entidade ser obtida pela concatenao da chave primria da entidade inicial e a do grupo repetitivo. Exemplo de normalizao de dados. Primeira forma normal Considere a tabela cliente abaixo: Cliente Cdigo_cliente Nome *Telefone Endereo Agora a tabela com os dados:
Todos os clientes possuem Rua, CEP e Bairro, e essas informaes esto na mesma clula da tabela, logo ela no est na primeira forma normal. Para normalizar, deveremos colocar cada informao em uma coluna diferente, como no exemplo a seguir:
Tabela ainda no est na primeira forma normal Mesmo com o ajuste acima, a tabela ainda no est na primeira forma normal, pois h clientes com mais de um telefone e os valores esto em uma mesma clula. Para normalizar ser necessrio criar uma nova tabela para armazenar os nmeros dos telefones e o campo-chave da tabela cliente. Veja o resultado a seguir:
No exempo acima foi gerado uma segundo entidade para que a primeira forma normal fosse satisfeita, contudo possvel manter a tabela original, admitindo-se valores duplos em uma mesma coluna, como exemplo o campo telefone ficaria assim: 11-3400-3563 e 19-3500-9650.
A chave primria da nova entidade ser o atributo do qual os atributos do qual os atributos removidos so funcionalmente dependentes. Exemplo de segunda forma normal Considere a tabela vendas abaixo: Vendas N_pedido Cdigo_produto Produto Quant Valor_unit Subtotal Agora a tabela com os dados:
O nome do produto depende do cdigo do produto, porm no depende de N_pedido que a chave primria da tabela, portanto no est na segunda forma normal. Isto gera problemas com a manuteno dos dados, pois se houver alterao no nome do produto teremos que alterar em todos os registros da tabela venda. Para normalizar esta tabela teremos de criar a tabela Produto que ficar com os atributos Cdigo_produto e produto e na tabela Venda manteremos somente os atributos N_pedido, cdigo_produto, quant, valor_unit e subtotal. Veja o resultado abaixo:
Conforme visto na Primeira forma normal, quando aplicamos normalizao comum gerar novas tabelas a fim de satisfazer as formas normais que esto sendo aplicadas.
a) Identificar todos os atributos que so funcionalmente dependentes de outros atributos no chave; b) Remov-los.
A chave primria da nova entidade ser o atributo do qual os atributos removidos so funcionalmente dependentes.
Tabela no est na terceira forma normal Considerando ainda a nossa tabela Venda, veremos que a mesma no est na terceira forma normal, pois o subtotal o resultado da multiplicao Quant X Valor_unit, desta forma a coluna subtotal depende de outras colunas no-chave. Para normalizar esta tabela na terceira forma normal teremos de eliminar a coluna subtotal, como no exemplo a seguir: