Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
NORMALIZAO DE DADOS
Prof. Marcelo Lucas
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
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
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
Telefone
cpf telefone
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
Dependncias Funcionais
Alocacao_em_projeto
CPF Cod_projeto nome_pessoa nome_projeto Data_alocacao
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
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.
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
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
Alocacao_em_projeto
3NF
BCNF
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
A)
A)
Um atributo da chave primria (cod_projeto) depende de um atributo atributo de chave candidata (modulo_projeto). Chave candidata: {cpf, modulo_projeto}
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
Exerccios
Normalizar at BCNF:
MD08 MD14 MD16 MD18
4NF
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
5NF
Ou seja... No possvel decompor a relao por PROJEES , eliminando redundncias, e depois obter as mesmas informaes originais por JUNO.
Exerccio
Extra:
MD20