Você está na página 1de 7

FASAM Faculdade Sul-Americana Sistemas de Informao

Banco de Dado I

Aluno: Daniel Almeida Fagundes 05.0343/2008-1 Professor: Andr

Poderamos dizer que normalizao um conjunto de regras que o banco deve seguir. Indo mais a fundo, a normalizao um processo de organizar os dados de um banco de forma eficiente. Os objetivos da normalizao so: eliminar dados redundantes (como um mesmo dado em mais de uma tabela) e garantir que as dependncias dos dados faam sentido (apenas dados relacionados devem ser guardados na tabela). Esses dois objetivos so importantes para reduzir o espao consumido por um banco de dados e garantir que seus dados sejam guardados de uma forma lgica.

Formas Normais
O processo de normalizao exige a aplicao de uma srie de regras sobre as tabelas de um banco de dados. Essas regras so chamadas de Formas Normais. Na prtica so usadas 3 dessas formas normais, apesar de existirem mais (Aqui sero passadas resumidamente as 3 primeiras formas normais).

1FN
Para um banco estar na primeira forma normal, os atributos de sua relao devem ser atmicos (nico valor), ou seja, no devem existir repeties ou campos com mais de um valor. Uma soluo para colocar um banco na primeira forma normal usar Entidade Fraca. Vamos pegar como exemplo um banco onde temos cliente e telefone. Um cliente pode ter mais de um telefone. Se telefone um campo na tabela clientes, ento o banco no est na primeira forma normal. Uma forma de normalizar para a 1FN seria criando outra tabela, que tenha relao com a tabela de clientes, para inserir os telefones. Nesse caso a tabela telefones teria como chave estrangeira a chave primaria da tabela clientes.
Uma relao estar na Primeira forma normal 1FN, se e somente se todos os domnios bsicos contiverem somente valores atmicos (no contiver grupos repetitivos). Em outras palavras podemos definir que a primeira forma normal no admite repeties ou campos que tenha mais que um valor. Procedimentos: a) Identificar a chave primria da entidade; b) Identificar o grupo repetitivo e remov-lo da entidade; c) Criar uma nova entidade com a chave primria da entidade anterior e o grupo repetitivo. 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:

Tabela desnormalizada, ou seja, no est na 1 forma normal Analisando teremos: 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:

Tabela na primeira forma normal

Tabela na 1 forma normal

No exempo acima foi gerado uma segunda 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. Neste caso a tabela ficaria desnormalizada, mas muitos acabam preferindo assim, principalmente quando h poucos casos de repetio.

2FN
Para uma tabela estar na segunda forma normal ela deve estar na 1FN e seus atributos que no fazem parte da chave primria composta devem ter dependncia funcional total com a chave.

Podemos resumidamente dizer que conseguimos alcanar a segunda forma normal deixando uma tabela na 1FN, criando tabelas separadas com os dados que dariam mais de uma linha na tabela e relacionando essa nova tabela com a antiga por meio de chave estrangeira.

Uma tabela est na Segunda Forma Normal 2FN se ela estiver na 1FN e todos os atributos no chave forem totalmente dependentes da chave primria (dependente de toda a chave e no apenas de parte dela). Se o nome do produto j existe na tabela produtos, ento no necessrio que ele exista na tabela de produtos. A segunda forma normal trata destas anomalias e evita que valores fiquem em redundcia no banco de dados. Procedimentos: a) Identificar os atributos que no so funcionalmente dependentes de toda a chave primria; b) Remover da entidade todos esses atributos identificados e criar uma nova entidade com eles. 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:

Tabela no est na segunda forma normal Analisando teremos: 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:

Tabela na segunda forma normal

Tabela na 2 forma normal

Conforme visto na Primeira forma normal, quando aplicamos normalizao comum gerar novas tabelas a fim de satisfazer as formas normais que esto sendo aplicadas.

3FN
Para estar na terceira forma normal, a tabela precisa primeira estar na 2FN (o que significa que obviamente tambm est na 1FN) e ter os atributos de suas relaes com dependncias funcionais apenas da chave. No deve existir dependncia funcional com nenhum outro atributo que no seja a chave.
Uma tabela est na Terceira Forma Normal 3FN se ela estiver na 2FN e se nenhuma coluna no-chave depender de outra coluna no-chave. Na terceira forma normal temos de eliminar aqueles campos que podem ser obtidos pela equao de outros campos da mesma tabela. Procedimentos: 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.

Exemplo de normalizao na terceira forma normal


Considere a tabela abaixo:

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:

Tabela na terceira forma normal Conforme visto nos post primeira forma normal e segunda forma normal, a normalizao torna a tabela mais otimizada e sem anomalias. Veja tambm o post Normalizao de dados e as formas normais.

Você também pode gostar