You are on page 1of 26

Normalizao

O processo de normalizao pode ser visto como um processo pelo qual um esquema de tabelas (relaes) insatisfatrio quebrado de forma que seus atributos formem relaes menores que sejam mais adequadas. O objetivo evitar que as anomalias de atualizao ocorram.

Normalizao

A normalizao serve para analisar tabelas e organiz-las de forma que a sua estrutura seja simples, relacional e estvel, para que o gerenciamento possa ser tambm simples, eficiente e seguro. Os objetivos so evitar a perda e a repetio da informao e atingir uma forma de representao adequada para o que se deseja armazenar. Oferece mecanismos para analisar o projeto do BD e a identificao de erros. Oferece mtodos para corrigir problemas.

Normalizao
A normalizao a explicao formal para coisas que so bvias ao se projetar um BD A intuio do projetista o leva a dividir um esquema de BD em vrias tabelas, mas a normalizao explica porque as coisas so assim.

Normalizao
Um bom projeto de um esquema de entidades, e sua conseqente converso para um esquema relacional, segundo as regras vistas, praticamente deixa o esquema relacional normalizado Assim, utiliza-se a normalizao somente para validar um projeto relacional A normalizao necessria (embora no suficiente) a um bom projeto relacional

Normalizao
Principais formas normais existentes
1FN 2FN 3FN Forma normal de Boyce/Codd (FNBC) ou Nova 3FN 4FN 5FN Estudaremos apenas at a 3FN

Normalizao
Erros encontrados em projetos de BD: repetio de informao; perda de informaes; inabilidade de representar certas informaes.

Normalizao
Nro_ped 1000 1010 1020 1030 1040 1050 1060 Data 10/02/2010 10/02/2010 12/02/2010 12/02/2010 18/02/2010 18/02/2010 20/02/2010 Nro_Peca AX12 BT04 CD09 EF12 BT04 CD09 BT04 Descrio Bicicleta TV DVD Qt_comprada 2 3 4 Preo 1000 5000 600 800 7000 8000 4000

Aparelho de som 3 TV Home Theater TV 4 5 2

Normalizao
Problemas apresentados (anomalias) inconsistncia: no h nada no projeto impedindo que a pea CD09 tenha duas ou mais descries diferentes no BD Redundncia de dados: A descrio de um mesmo produto encontra-se em diversas linhas. Anomalia de modificao: uma mudana na descrio da pea BT04 requer vrias mudanas Anomalia de incluso : no se pode inserir um novo produto sem que esteja associado a um pedido. Anomalia de excluso: Se for necessrio excluir um pedido as informaes do produto que estiver associado somente a esse pedido sero perdidas

Normalizao
Solicitao de Material
Nmero da Solicitao: Codigo Funcionario Cod.Prod. Descrio Data da Solicitao Nome Quantidade

Normalizao
Tabela no normalizada
Nmero da Solicitao, Data da Solicitao, Cdigo do Funcionrio, Nome do Funcionrio, (Cd. produto, Descrio, Quantidade).

Normalizao
Primeira Forma Normal (1 FN)
Uma relao est na 1 FN se, e apenas se, todos os domnios contiverem apenas valores atmicos. Uma tabela na 1FN no permite atributos multivalorados ou atributos compostos

Normalizao
Para tornar uma relao no-normalizada em uma relao normalizada existem duas alternativas:
1. 2. Construir uma nica tabela com redundncia de dados Para cada tabela aninhada criar uma nova tabela. Esta nova tabela ir conter os atributos da tabela aninhada e o(s) atributo(s) que compe a chave primria da(s) tabela(s) na(s) qual(is) a tabela est aninhada.

Tabela com redundncia de dados


Nmero da Solicitao, Data da Solicitao, Cdigo do Funcionrio, Nome do Funcionrio, Cd. produto, Descrio, Quantidade

Normalizao
Com tabelas aninhadas
Tabela Solicitao Nmero da Solicitao, Data da Solicitao, Cdigo do Funcionrio,Nome do Funcionrio Tabela Item Nmero da Solicitao, Cd. produto, Descrio, Quantidade

Normalizao
Dependncias Funcionais
Existe uma dependncia funcional entre atributos de uma relao, quando a um valor de um atributo X est sempre associado um mesmo valor para um atributo Y. Assim, se um valor Vx ocorrer em linhas diferentes da relao R, o valor Vy ser o mesmo em todas as linhas onde Vx ocorrer.

Normalizao
Pode-se ento afirmar que: XY X determina Y ou Y dependente funcional de X ou ainda X o determinante de Y Exemplo: Cd. Produto Descrio Alguns atributos podem depender funcionalmente de um conjunto de atributos e no apenas de um nico. Exemplo: (Nmero da Solicitao , Cd. produto) Quantidade

Normalizao
Segunda Forma Normal ( 2 FN)
Uma relao est na segunda forma normal se e apenas se, estiver na 1FN, e cada atributo no-chave for totalmente dependente da chave primria.

Normalizao
Para chegar a 2FN deve-se: 1. Verificar se existem colunas no-chave parcialmente dependentes de algum dos atributos da chave. Esta verificao feita apenas em tabelas que tem a sua chave primria composta por mais de um atributo 2. Se existir um atributo que dependa apenas parcialmente da chave primria:
i. ii. Criar tabela (se no existe ainda) cuja chave primria ser a parte da chave primria que determinante do atributo analisado Mover da tabela original para a tabela criada o atributo dependente parcialmente da chave (Mover diferente de copiar...)

Normalizao
Assim, considerando cada uma das duas formas utilizadas para gerar as tabelas na 1 FN: 1 - Construir uma nica tabela com redundncia de dados 1 FN Nmero da Solicitao, Data da Solicitao, Cdigo do Funcionrio,Nome do Funcionrio, Cd. produto, Descrio, Quantidade 2FN Nmero da Solicitao, Data da Solicitao, Cdigo do Funcionrio, Nome do Funcionrio Nmero da Solicitao, Cd. produto, Quantidade Cd. produto, Descrio

Normalizao
2 Com tabelas aninhadas
1FN Nmero da Solicitao, Data da Solicitao, Cdigo do Funcionrio,Nome do Funcionrio Nmero da Solicitao, Cd. produto, Descrio, Quantidade 2FN Nmero da Solicitao, Data da Solicitao, Cdigo do Funcionrio, Nome do Funcionrio Nmero da Solicitao, Cd. produto, Quantidade Cd. produto, Descrio

Normalizao
Terceira Forma Normal (3FN) Uma relao est na terceira forma normal se e apenas se, estiver na 2FN, e no tiver dependncias transitivas

Normalizao
Dependncia transitiva: ocorre quando um atributo no-chave, alm de depender da chave primria da tabela, depende funcionalmente de outro atributo ou combinao de atributos no-chave. Assim, em uma tabela na 3FN no existem atributos no-chave que tenham dependncia de outros atributos no chave.

Normalizao
Para chegar a 3FN deve-se: 1. Verificar se existem colunas no-chave dependentes de algum outro atributo ou conjunto de atributos no-chave. Esta verificao feita apenas em tabelas que possurem pelo menos 2 atributos no-chave. Se existir um atributo que dependa de outro atributo (ou conjunto de atributos) no-chave:
i. Criar tabela (se no existe ainda) cuja chave primria ser o atributo ou conjunto de atributos que determinam o valor do atributo nochave Mover da tabela original para a tabela criada o atributo dependente

2.

ii.

Normalizao
2FN Nmero da Solicitao, Data da Solicitao, Cdigo do Funcionrio, Nome do Funcionrio Nmero da Solicitao, Cd. produto, Quantidade Cd. produto, Descrio 3FN Nmero da Solicitao, Data da Solicitao, Cdigo do Funcionrio Cdigo do Funcionrio, Nome do Funcionrio Nmero da Solicitao, Cd. produto, Quantidade Cd. produto, Descrio

Exerccios
Aplicar as Formas Normais cabveis, nas questes abaixo. Voc deve transformar os esquemas abaixo em conjuntos de esquemas e justificar sua normalizao de acordo com as regras de normalizao. 1) Empregado (Nmero Empregado, Nome do Empregado, Nmero do Departamento, Nome do Departamento, Nmero do Gerente, Nome do Gerente, Nmero do Projeto, Nome do Projeto, Dia de Incio do Projeto, Nmero de horas trabalhadas no projeto).

Exerccios
2) Ordem_Compra (cd_ordem_compra, dt_emisso, cd_fornecedor, nm_fornecedor, endereo_fornecedor, cd_material (n vezes), descrio_material (n vezes), qt_comprada (nvezes), vl_unitrio (n vezes), vl_total_item (n vezes), vl_total_ordem). 3) Tabela de Notas Fiscais (Num_NF, Srie, Data emisso, Cod. Cliente, Nome cliente, Endereo cliente, CGC cliente, Cdigo Mercadoria, Descrio Mercadoria, Quantidade vendida,Preo de venda, Total da venda da Mercadoria e Total Geral da Nota).Cada nota pode ter mais do que uma mercadoria.

You might also like