Você está na página 1de 8

Disciplina: Banco de Dados I

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) Quarta Forma Normal (4FN) Primeira Forma Normal (1FN) 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. Veja ainda o post Normalizao de dados e as formas normais que mostra o uso das principais formas normais. Procedimentos:

Disciplina: Banco de Dados I


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:

Disciplina: Banco de Dados I


Tabela na primeira forma normal

Tabela na 1 forma normal No exemplo 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. Segunda Forma Normal (2FN) 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 redundncia 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:

Disciplina: Banco de Dados I

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. Terceira Forma Normal (3FN) 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.

Disciplina: Banco de Dados I


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 primeira forma normal e segunda forma normal, a normalizao torna a tabela mais otimizada e sem anomalias. Quarta Forma Normal (4FN) A Quarta Forma Normal definida pelo conceito de dependncia multivalorada. As dependncias multivaloradas (DMV) so conseqncias da primeira forma normal (atomicidade). A seguinte tabela no est na 4a forma normal. Nela temos alguns empregados que participam de alguns projetos e possuem dependentes em cada projeto. A chave definida por todas as colunas. EMP ENOME Smith Smith Smith Smith Brown Brown PNOME X Y X Y W X DNOME John Anna Anna John Jim Jim

Disciplina: Banco de Dados I


Brown Brown Brown Brown Brown Brown Brown Brown Brown Brown Y Z W X Y Z W X Y Z Jim Jim Joan Joan Joan Joan Bob Bob Bob Bob

H 16 tuplas na tabela acima. Consideremos que Brown comece a trabalhar em um novo projeto (P) deveriamos incluir trs tuplas!!! Uma para cada dependente. Se esquecremos de incluir alguma, violaramos a DMV e o projeto ficaria inconsistente. Agora raciocinem: se os dependentes esto para os empregados, e os projetos tambm esto para os empregados. Logo poderamos quebrar esta tabela em duas! EMP_Projetos ENOME Smith Smith Brown Brown Brown Brown PNOME X Y W X Y Z

EMP_ Dependentes ENOME Smith Smith Brown Brown Brown DNOME Anna John Jim Joan Bob

Vejam bem, na primeira relao eram 16 linhas na tabela! Agora com a 4FN so apenas 11. Obtivemos um ganho a. Agora de volta a questo... E se Brown participasse de um novo projeto, o projeto P? Agora que a tabela est normalizada basta acrescentarmos uma tupla na tabela EMP_Projetos e pronto! No precisamos nos preocupar com os dependentes que j esto cadastrados! 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.

Disciplina: Banco de Dados I


Exerccios de Normalizao 1. Aplicar as Formas Normais cabveis, nas questes abaixo. Voc deve transformar os esquemas abaixo em conjuntos de esquemas que estejam na 2NF, 3NF e, justificar sua normalizao de acordo com suas dependncias funcionais. a) 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). 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). 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. Inscrio (Cdigo do Aluno, Nome do Aluno, Telefone para contato, Ano de Admisso, Cdigo da Disciplina, Nome da Disciplina, Nome do Curso, Data da Matricula). Paciente (num_paciente, nome_paciente, num_quarto, descrio_quarto, num_cmodos_quarto, {cd_mdico, nome_mdico, fone_mdico}).

b)

c)

d)

e)

2. A vdeo Center of Europe Ltda., uma cadeia de locadoras de DVSs. Ela precisa manter dados sobre os DVDs que tm para locao, os filmes dos DVDs, seus clientes e locaes. Cada DVD para locao tem um nmero de srie nico. Os ttulos de filme e nmeros de cliente tambm so identificadores nicos. Suponha que cada filme tenha exatamente uma estrela. Observe a diferena no ano em que o filme foi originalmente filmado em oposio data em que um DVD o disco real foi fabricado. Alguns dos atributos e dependncias funcionais neste ambiente so os seguintes: Atributos: Nmero do DVD, Data de Fabricao, Ttulo do Filme, Estrela, Ano de Filmagem, Durao (em minutos), Nmero do Cliente, Nome do Cliente, Endereo do Cliente, Data da Locao, Data da Devoluo, Taxa Paga. Dependncias Funcionais: Nmero do DVD _ Ttulo do Filme Nmero do DVD _ Estrela Nmero do DVD _ Data de Fabricao Ttulo do Filme _ Estrela Ttulo do Filme _ Durao Ttulo do Filme _ Ano de Filmagem Nmero do Cliente _ Nome do Cliente Nmero do Cliente _ Endereo do Cliente Nmero do DVD, Nmero do Cliente, Data de Locao _ Data Devoluo, Valor Pago Para cada uma das tabelas a seguir, escreva primeiro a forma normal atual da tabela

Disciplina: Banco de Dados I


(como 1FN, 2FN, 3FN). A seguir, para aquelas tabelas que estejam atualmente na 1FNou 2FN, reconstrua-as como tabelas bem estruturadas na 3FN. Os atributos chave primria esto sublinhados. No suponha qualquer outra dependncia funcional alm das mostradas. a.) Ttulo do Filme, Estrela, Durao, Ano de Filmagem. b.) Nmero do DVD, Nmero do Cliente, Data de Locao, Nome do Cliente, Data da Devoluo, Valor Pago. c.) Nmero do DVD, Data da Fabricao, Ttulo do Filme, Estrela. d.) Ttulo do Filme, Nmero do Cliente, Estrela, Durao, Nome do Cliente, Endereo do Cliente. e.) Nmero do DVD, Nmero do Cliente, Data de Locao, Data da Devoluo, Valor Pago. O que poderia ser melhorado nesse esquema? H alguma DF que no concorda? Justifique melhorando o modelo. Inclua novas DFs no modelo, caso julgue necessrio.