Você está na página 1de 47

26/06/2012

NORMALIZAO DE DADOS
Prof. Marcelo Lucas

Curso: Modelagem de Dados

Normalizao
Tpicos / Agenda
Formas Normais

Livro de Referncia
ELMASRI, R.; NAVATHE, S.B. (2011). Sistemas de Banco de Dados. 6 Ed.
Captulo sobre Normalizao e Projeto de Banco de Dados

ELMASRI, R.; NAVATHE, S.B. (2011).


Captulo Normalizao e Projeto Banco Dados

Normalizao

Normalizao
O processo de normalizao de dados representa uma srie de passos sobre uma tabela (ou relao) visando permitir que os acessos e manipulaes dos dados armazenados ocorra de forma eficiente. Esses passos consistem na anlise de tabelas a fim de reorganizalas em novas tabelas de forma que suas estruturas sejam mais simples, relacionais e estveis. Esses passos reduzem as redundncias de dados e, consequentemente, as chances de ocorrerem inconsistncias. Obs.: Lembrando que estamos tratando de bancos de dados OLTP.

Normalizao
Alocacao_em_projeto
CPF Cod_projeto nome_pessoa nome_projeto Data_alocacao

333444555-88 222444555-77 111222999-66 222444533-23 222222523-33 333333555-21

97766 889900 4433 889900 889900 889900

Joaquim Maria Jos Marci Pedro Joaquim

Proteus Solar Genesis Solar Solar Solar

10/2/2011 11/1/2012 15/6/2011 11/1/2012 11/1/2012 11/1/2012

Exemplo de anomalia de manipulao: - Atualizar o nome do Projeto Solar para Solaris. - Consultar o nome do projeto 889900

Formas Normais
1NF Atributos 2NF 3NF Dependncia Funcional Simples BCNF 4NF 5NF Dependncia F. Multivalorada Dependncia de Projeo-Juno

1NF Primeira Forma Normal


Uma tabela est na primeira forma normal quando todos seus atributos so monovalorados e atmicos.
Ou seja, no contm atributos repetidos nem compostos.
Obs.: Na definio original exigia-se que nenhum atributo poderia conter nulos, entretanto com a evoluo dos gerenciadores de bancos de dados no tratamento de atributos nulos, esta exigncia na maioria dos casos pode ser desconsiderada no modelo lgico.

1NF

1NF Primeira Forma Normal


Atributos multivalorados so transformados em tabelas. Atributos compostos so decompostos em atributos elementares.
Pessoa
cpf nome_rua num_endereco compl_endereco bairro cep cidade

Telefone
cpf telefone

1NF Primeira Forma Normal


Alternativas a discutir ....
Pessoa
cpf nome_rua num_endereco compl_endereco bairro cep cidade

Telefone
cpf telefone

Pessoa
cpf nome_rua num_endereco compl_endereco bairro cep cidade telefone1 telefone2 telefone3

Pessoa
cpf nome_rua num_endereco compl_endereco bairro cep cidade telefone_fixo telefone_movel telefone_comercial

2NF

2NF Segunda Forma Normal


Dependncia Funcional:
Em uma relao diz-se que um atributo A dependente funcional de um conjunto de atributos S, quando em cada tupla, o valor de A determinado pelo valor de S.

Representa-se por: S Vocabulrio utilizado:

Determinante (Determinante funcional) Dependente (Dependente funcional)

Dependncias Funcionais
Alocacao_em_projeto
CPF Cod_projeto nome_pessoa nome_projeto Data_alocacao

333444555-88 222444555-77 111222999-66

97766 889900 4433

Joaquim Maria Jos

Proteus Solaris Genesis

10/2/2011 11/1/2012 15/6/2011

Dependncias Funcionais: cpf nome_pessoa nome_pessoa data_alocacao nome_projeto nome_projeto {cpf, cod_projeto} {cpf, cod_projeto} Cod_projeto Nome_projeto

nome_projeto nome_projeto

{cpf, cod_projeto, nome_pessoa,data}

{cpf,cod_projeto, nome_pessoa,data, nome_projeto}

2NF Segunda Forma Normal


Dependncia F. Parcial
Ocorre quando um atributo depende de um conjunto de atributos mas tambm depende de um subconjunto desses mesmos atributos. Ou seja, h atributos suprfluos no primeiro conjunto de atributos. Se ( {a,b,c} d ) e ( {a,b} d) Ento ( {a,b,c} d ) dependncia funcional parcial.

Dependncia F. Completa
Quando depende de um conjunto de atributos sem depender de nenhum subconjunto do mesmo. Se ( {a,b} c ) e no (a c ) e no (b c) Ento ( {a,b} c ) dependncia funcional completa Obs: f g sempre ser uma dependncia funcional completa se f uma chave simples.

2NF Segunda Forma Normal


Atributo primo (prime attribute)
Atributo que pertence a uma chave candidata.

Atributo no primo (non-prime attribute)


Atributo que no pertence a uma chave candidata.

Dependncias Funcionais
Alocacao_em_projeto
CPF 333444555-88 222444555-77 111222999-66
Dependncias Funcionais: DF Parcial: {cpf, cod_projeto} DF Completa: {cpf, cod_projeto} DF Completa: cpf nome_pessoa nome_projeto nome_projeto nome_projeto nome_projeto DF Completa: Cod_projeto DF Completa: Nome_projeto nome_pessoa data_alocacao

Cod_projeto 97766 889900 4433

nome_pessoa Joaquim Maria Jos

nome_projeto Data_alocacao Proteus Solaris Genesis 10/2/2011 11/1/2012 15/6/2011

DF Parcial: {cpf, cod_projeto, nome_pessoa,data}

DF Parcial: {cpf, cod_projeto, nome_pessoa,data, nome_projeto}

2NF Segunda Forma Normal


Deve estar na 1NF. Todo atributo no primo deve possuir dependncia completa da chave primria (e candidatas).

2NF Segunda Forma Normal


Alocacao_em_projeto
CPF 333444555-88 222444555-77 111222999-66 Cod_projeto 97766 889900 4433 nome_pessoa Joaquim Maria Jos nome_projeto Data_alocacao Proteus Solaris Genesis 10/2/2011 11/1/2012 15/6/2011

DF Parcial: {cpf, cod_projeto} nome_pessoa DF Completa: cpf nome_pessoa DF Parcial: {cpf, cod_projeto} nome_pessoa DF Completa: cod_projeto nome_projeto

2NF Segunda Forma Normal


Alocacao_em_projeto
CPF 333444555-88 222444555-77 Cod_projeto 97766 889900 nome_pessoa Joaquim Maria nome_projeto Data_alocacao Proteus Solaris 10/2/2011 11/1/2012

Alocacao_em_projeto

CPF 333444555-88 222444555-77


Funcionario

Cod_projeto 97766 889900

Data_alocacao 10/2/2011 11/1/2012 Cod_projeto 97766 889900


Projetos

CPF 333444555-88 222444555-77

nome_pessoa Joaquim Maria

nome_projeto Proteus Solaris

3NF

3NF Terceira Forma Normal


Dependncia F. Transitiva
Se C possui dependncia funcional de B ( B C) Se B possui dependncia funcional de A ( A B) Ento C possui dependncia funcional transitiva de A

Dependncia Funcional Transitiva


FUNCIONARIO
CPF 333444555-88 222444555-77 111222999-66 Matricula 97766 889900 4433 nome_pessoa Joaquim Maria Jos cod_depto 56 37 56 nome_depto RH FINANCEIRO RH

DF Transitiva: {matricula} nome_depto DF No Transitiva: cod_depto nome_depto

3NF Terceira Forma Normal


Deve estar na 2NF. Todo atributo no primo NO pode ter uma dependncia transitiva da chave primria (e de chaves candidatas).

3NF Terceira Forma Normal


FUNCIONARIO
CPF 333444555-88 222444555-77 111222999-66 FUNCIONARIO CPF 333444555-88 222444555-77 111222999-66 Matricula 97766 889900 4433 nome_pessoa Joaquim Maria Jos cod_depto 56 37 56 nome_depto RH FINANCEIRO RH

Matricula 97766 889900 4433

nome_pessoa Joaquim Maria Jos

cod_depto 56 37 56 DEPARTAMENTO cod_depto nome_depto 56 37 RH FINANCEIRO

BCNF

BCNF (ou 3.5NF) Boyce-Codd Normal Form


Dependncia F. Trivial a dependncia bvia que um atributo tem de si mesmo ou de um conjunto de atributos do qual faa parte. Construes vocabulares possveis:
Dependente Funcional Trivial Determinante Funcional Trivial Dependente Funcional No-Trivial Determinante Funcional No-Trivial

Dependncias Funcionais
Alocacao_em_projeto
CPF 333444555-88 222444555-77 111222999-66 Cod_projeto 97766 889900 4433 nome_pessoa Joaquim Maria Jos nome_projeto Data_alocacao Proteus Solaris Genesis 10/2/2011 11/1/2012 15/6/2011

Dependncias Funcionais: DF: {cpf, cod_projeto} nome_pessoa DF: {cpf, cod_projeto} data_alocacao DF: cpf nome_pessoa DF: cod_projeto nome_projeto DF: {cpf, cod_projeto, nome_pessoa,data} nome_projeto DF TRIVIAL: nome_projeto nome_projeto DF TRIVIAL: {cpf, cod_projeto, nome_pessoa,data, nome_projeto}

nome_projeto

BCNF (ou 3.5NF) Boyce-Codd Normal Form


Definio formal da BCNF:
Deve estar na 1NF e toda dependncia funcional ( X respeita uma destas condies:
uma dependncia trivial, ou ( X ) uma superchave.

A)

Definio formal da 3NF:


Deve estar na 1NF e toda dependncia funcional ( X respeita uma destas condies:
uma dependncia trivial, ou ( X ) uma superchave, ou ( A ) atributo primo.

A)

BCNF (ou 3.5NF) Boyce-Codd Normal Form


Definio formal simplificada da BCNF:
Todo determinante funcional no trivial uma superchave.

Definio formal simplificada da 3NF:


Todo determinante funcional no trivial de atributos no primos uma superchave.

BCNF (ou 3.5NF) Boyce-Codd Normal Form


Definio mais simplificada da BCNF:
Todo determinante funcional no trivial completo uma chave candidata.

BCNF (ou 3.5NF) Boyce-Codd Normal Form


Deve estar na 1NF. Todo atributo, primo ou no, deve possuir dependncia completa da chave primria (e candidatas) Todo atributo, primo ou no, NO pode ter uma dependncia transitiva da chave primria.

BCNF (ou 3.5NF) Boyce-Codd Normal Form


Alocacao_em_projeto
CPF 333444555-88 222444555-77 111222999-66 Cod_projeto 97766 889900 97766 modulo_projeto Proteus Verde Solaris Amarelo Proteus Azul Data_alocacao 10/2/2011 11/1/2012 15/6/2011

Obs: DF: modulo_projeto cod_projeto

Um atributo da chave primria (cod_projeto) depende de um atributo atributo de chave candidata (modulo_projeto). Chave candidata: {cpf, modulo_projeto}

BCNF (ou 3.5NF) Boyce-Codd Normal Form


Alocacao_em_projeto
CPF 333444555-88 222444555-77 111222999-66 Cod_projeto 97766 889900 97766 modulo_projeto Proteus Verde Solaris Amarelo Proteus Azul Data_alocacao 10/2/2011 11/1/2012 15/6/2011

Alocacao_em_projeto
CPF 333444555-88 222444555-77 111222999-66 modulo_projeto Proteus Verde Solaris Amarelo Proteus Azul Data_alocacao 10/2/2011 11/1/2012 15/6/2011 Sub-Projeto Projeto

Resumo
Database Managemente Systems, 2 ed. [Rmakrishnan/Gehrke]

Proibido na 2FN

Proibido na 3FN v Proibido na BCNF

Exerccios
Normalizar at BCNF:
MD08 MD14 MD16 MD18

4NF

4NF Quarta Forma Normal


Dependncia Funcional Multivalorada
Expressa dependncia funcional considerando vrias linhas (vrias tuplas). X Y

Dependncia Multivalorada
LOCAIS_DE_ENTREGA Bairro Ipanema Ipanema Copacabana Copacabana Ipanema Ipanema Ipanema Leblon Leblon Leblon Loja Drogamais Drogamais Drogamais Drogamais Supertudo Supertudo Supertudo Supertudo Supertudo Supertudo Categoria Farmacia Cosmetico Farmacia Cosmetico Cosmetico Alimenticio Limpeza Cosmetico Alimenticio Limpeza Supertudo Ipanema Leblon Supertudo Cosmetico Alimenticio Limpeza

Loja

Categoria

Loja

Bairro

4NF Quarta Forma Normal


Definio formal da 4NF:
Deve estar na 1NF e toda dependncia funcional multivalorada X Y respeita uma destas condies:
uma dependncia trivial, ou X uma superchave.

Definio formal simplificada da 4NF:


Todo determinante funcional multivalorado no trivial uma superchave.

Definio mais simplificada da 4NF:


Todo determinante funcional multivalorado no trivial completo uma chave.

4NF Quarta Forma Normal


LOCAIS_DE_ENTREGA Bairro Ipanema Ipanema Copacabana Copacabana Ipanema Ipanema Ipanema Leblon Leblon Leblon Loja Drogamais Drogamais Drogamais Drogamais Supertudo Supertudo Supertudo Supertudo Supertudo Supertudo Categoria Farmacia Cosmetico Farmacia Cosmetico Cosmetico Alimenticio Limpeza Cosmetico Alimenticio Limpeza Loja Drogamais Drogamais Supertudo Supertudo Supertudo Categoria Farmacia Cosmetico Cosmetico Alimenticio Limpeza Bairro Ipanema Copacana Ipanema Leblon Loja Drogamais Drogamais Supertudo Supertudo

5NF

5NF Quinta Forma Normal FNPJ Forma Normal Projeo-Juno


Trata de casos particulares em relacionamentos enrios (ternrios, quaternrios, ...) Dependncia de Juno
Dada uma relao R e certas projees suas (relaes formadas por colunas de R): R1,..., Rn que no possuam nenhuma chave candidata coincidente com as de R, diz-se que h uma dependncia de juno (de R em relao a R1,..., Rn) se R pode ser reconstruda com a juno de R1,..., Rn; sem perdas de informaes.
Obs.: Projeo e Juno so operaes da lgebra relacional j vistas.

5NF Quinta Forma Normal FNPJ Forma Normal Projeo-Juno


Para estar na 5NF a relao ...
Deve estar na 4NF, e No possuir dependncia de juno
de nenhuma combinao de relaes menores
formadas por certas projees suas que no possuam as mesmas chaves candidatas

Ou seja... No possvel decompor a relao por PROJEES , eliminando redundncias, e depois obter as mesmas informaes originais por JUNO.

5NF Quinta Forma Normal FNPJ Forma Normal Projeo-Juno


VENDEDOR_FABRICANTE_VEICULO vendedor Joao Joao Joao Joao Jose Jose Jose Jose Jose Maria Maria fabricante Ford Ford BMW BMW Ford Ford BMW BMW BMW Ford Yamaha veiculo Carro Moto Carro Moto Carro Moto Carro Moto Utilitario Moto Moto vendedor Joao Joao Jose Jose Maria Maria fabricante Ford Ford BMW BMW BMW Yamaha fabricante Ford BMW Ford BMW Ford Yamaha veiculo Carro Moto Carro Moto Utilitario Moto vendedor Joao Joao Jose Jose Jose Maria veiculo Carro Moto Carro Moto Utilitario Moto

Exerccio
Extra:
MD20