Click here to load reader

(4 - Normalização)

  • View
    15

  • Download
    0

Embed Size (px)

Text of (4 - Normalização)

  • Banco de Dados IBanco de Dados I

    4 4 NormalizaoNormalizao

    GrinaldoGrinaldo Lopes de Oliveira (Lopes de Oliveira ([email protected]@gmailgmail.com).com)Curso Superior de Tecnologia em Curso Superior de Tecnologia em

    Anlise e Desenvolvimento de SistemasAnlise e Desenvolvimento de Sistemas

    * Material com crditos de colaborao dos professores Mrcio Soussa, Leandro Coelho e Pablo Florentino

  • Agenda

    Aprendendo Normalizao

  • Normalizao

  • Processo muito importante para um projeto de banco de dados.

    Consiste em analisar o modelo e atravs de regras formais, reestruturar possveis tabelas e atributos, reduzindo assim redundncias e permitindo o crescimento do BD com o mnimo de efeito colateral.

    Consiste em diminuir redundncia e anomalias de insero, atualizao e deleo.

    Projeto Lgico - Normalizao

  • Consiste em analisar relaes para satisfazer requisitos cada vez mais rigorosos acarretando agrupamentos cada vez melhores, mais estveis e seguros.

    Realiza-se uma srie de testes para certificar se a relao est ou no em uma determinada forma normal. O processo consiste em certificar e decompor.

    Fundamentado no conceito de Dependncia Funcional.

    Projeto Lgico - Normalizao

  • Dividem-se em 6 formas normais: 1 FN (1o Forma Normal) 2 FN (2o Forma Normal) 3 FN (3o Forma Normal) * Diz-se normalizado 4 FN (4o Forma Normal) FNBC (Forma Normal de Boyce e Codd)_______Estudaremos at aqui ______________ 5 FN (5o Forma Normal)

    Projeto Lgico Formas Normais

  • Dependncia Funcional Corresponde a um restrio entre conjuntos de atributos em uma relao Se X identifica Y, ento XY e diz-se que h uma dependncia funcional entre eles.

    X determina Y, Y funcionalmente dependente de X

    Projeto Lgico Fundamento das FNs

  • Projeto Lgico - Normalizao

    Dependncias Funcionaiscod_livro titulo_livrocod_livro cod_editoracod_livro nome_editoracod_livro peso_livrocod_livro qtd_paginascod_livro qtd_capitulos

    titulo_livro cod_livtitulo_livro cod_edtitulo_livro nome_edtitulo_livro peso_livtitulo_livro qtpaginas_livtitulo_livro qtcapitulos_livcod_editora nome_editora nome_editora cod_editora

    LIVROLIVROcod_livrotitulo_livrocod_editoranome_editorapeso_livroqtd_paginasqtd_capitulos

  • Projeto Lgico - Normalizao

    Dependncias Funcionais

    cod_livro

    titulo_livro

    cod_editora

    nome_editora

    peso_livro

    qtd_paginas

    qtd_capitulos

    titulo_livro

    cod_livro

    cod_editora

    nome_editora

    peso_livro

    qtd_paginas

    qtd_capitulos

    cod_livro e titulo_livro so chaves candidatas. Todos os atributos de uma relao devem ser funcionalmente dependentes das chaves candidatas e, consequentemente, da chave primria.

  • Debate em Sala de Aula

    Identifique as dependncias funcionais na relao abaixo:Matricula, nome, sexo e data de nascimento do aluno, cdigo,

    nome e carga horria de disciplina e a data da inscrio do aluno na disciplina

  • Cod

    Fornecedor (PK)

    Nome Fornecedor

    Tel 1 Tel 2 Endereo Cd. Pea (PK)

    Nome Pea

    Preo Unitrio

    Qtde

    Pedida

    F1 Fornecedor 1

    2431011 4350445 Av. Teste s/n 40256-000

    Salvador, BA

    P1 Pea 1 R$ 5,00 50

    F1 Fornecedor 1

    2431011 4350445 Av. Teste s/n 40256-000

    Salvador, BA

    P2 Pea 2 R$ 7,50 30

    F1 Fornecedor 1

    2431011 4350445 Av. Teste s/n 40256-000

    Salvador, BA

    P3 Pea 3 R$ 10,00 40

    F2 Fornecedor 2

    4560989 3361234 Rua. XX 40470-090

    Itabuna, BA

    P1 Pea 1 R$ 5,00 30

    F2 Fornecedor 2

    4560989 3361234 Rua. XX 40470-090

    Itabuna, BA

    P2 Pea 2 R$ 7,50 15

    Projeto Lgico Modelo no normalizado

  • Problemas de Insero S possvel inserir um novo fornecedor quando o mesmo solicitar peas; S possvel inserir uma nova pea quando a mesma for solicitada por um fornecedor;

    Problemas de Atualizao Para atualizar o endereo do fornecedor, todos os registros desse fornecedor devero ser atualizados. Para atualizar o preo da pea, todos os registros dessa pea devero ser atualizados.

    Problemas de Excluso Caso sejam deletadas todas as solicitaes de um fornecedor, seus dados cadastrais tambm sero apagados.

    Projeto Lgico Anomalias do Modelo

  • Debate em Sala de Aula

    Existe alguma vantagem em manter tabelas desnormalizadas?

  • Projeto Lgico - Normalizao

    1a Forma Normal (1FN ou 1NF) Uma relao est 1FN se e somente se todos os

    seus domnios s contm valores atmicos; O modelo relacional exige que as relaes

    estejam pelo menos na 1FN; Caractersticas:

    Estrutura tabular; Princpio da atomicidade; Proibio de campos multivalorados.

  • Projeto Lgico - Normalizao

    1a Forma Normal (1FN ou 1NF)FUNCIONARIO

    D240 D241Ted Smith1107

    Liz Moore1053

    D213Bob Jones1052

    cod_dependnomematricula

    D241Ted Smith1107

    FUNCIONARIO

    D240Ted Smith1107

    Liz Moore1053

    D213Bob Jones1052

    cod_dependnomematricula

    No est na 1FNNo est na 1FN

    Est na 1FNEst na 1FN

  • Projeto Lgico - Normalizao

    2a Forma Normal (2FN ou 2NF) Uma relao est na 2 FN se e somente se est

    na 1FN e todos os atributos no chave so totalmente dependentes da chave primria;

    Diz respeito s chaves primrias compostas; Se a chave primria de uma relao no

    composta e a relao est na 1FN, ela est tambm na 2FN;

    Uma relao que est na 1 FN pode no estar na 2FN se sua chave for composta.

  • Projeto Lgico - Normalizao

    2a Forma Normal (2FN ou 2NF) Decomposio funcional

    p# nome_peca p# cod_cor p# cor p# peso (f#,p#) quantidade

    FORNECEDOR_PECAFORNECEDOR_PECAf#p#nome_pecacod_corcorpesoquantidadeA nica dependncia total de A nica dependncia total de

    quantidade.quantidade.

  • Projeto Lgico - Normalizao

    2a Forma Normal (2FN ou 2NF) Dependcias parciais

    Problemas de atualizao (insert, update, delete);

    FORNECEDOR_PECA

    20025cinzac1jantep5f4

    40023pretoc2rodap4f2

    65010azulc3chavep3f2

    75013cinzac1pregop1f2

    20015pretoc2porcaP2f1

    30013cinzac1pregop1f1

    quantidad

    e

    pesocorcod_co

    r

    nome_pec

    a

    s#f#

  • Projeto Lgico - Normalizao

    2a Forma Normal (2FN ou 2NF) Dependcias parciais

    Soluo: decomposio de projeo sem perda de dados (non-loss projection decomposition);

    FORNECEDOR_PECAFORNECEDOR_PECAf#p#quantidade

    PECAPECAp#nome_pecacod_corcorpesoquantidade

  • Projeto Lgico - Normalizao

    3 Forma Normal (3FN ou 3NF) Uma relao est na 3 FN se e somente se ela est na 2

    FN e seus atributos no chave so mutuamente independentes;

    Os atributos so considerados mutuamente independentes quando nenhum atributo funcionalmente dependente de nenhuma combinao dos outros, exceto da chave primria;

    A ttulo de simplificao a terceira forma normal considera que a relao ter somente uma chave candidata, ou seja, a chave primria.

  • Projeto Lgico - Normalizao

    3 Forma Normal (3FN ou 3NF) Os atributos cod_cor e cor so dependentes

    funcionalmente um do outro; Dependncia indesejada durante as atualizaes

    de dados; No est na 3FN. PECAPECA

    cod_pecanome_pecacod_corcorpeso

  • Projeto Lgico - Normalizao

    3 Forma Normal (3FN ou 3NF) Opes para normalizao da relao:

    Eliminar o atributo cod_cor; (Opo 1) Criar uma relao distinta para as informaes sobre

    cor. (Opo 2)

    PECAPECAcod_pecanome_pecacod_corpeso

    CORCORcod_corcor

    Opo 2

    PECAPECAcod_pecanome_pecacorpeso

    Opo 1

  • Projeto Lgico - Normalizao

    4a Forma Normal (4FN)Uma tabela est na 4FN se ela estiver na 3FN e

    no possuir DFs multivaloradas tabelas com DFs multivaloradas devem ser

    desmembradas em tabelas que no possuam tais DFsTabelas que possuem CP composta por um ou

    dois atributos, ou que possuem atributos no-chave esto automaticamente na 4FN

  • 4FN - Aplicao

    3FN: Estantes (nmero, capacidade)Livros (ISBN, ttulo, ano)Autores (codAutor, nome, nacionalidade)

    DistribuioLivrosAutor(nmero, ISBN, codAutor)DF Multivalorada: ISBN codAutor

    4FN: Estantes (nmero, capacidade)Livros (ISBN, ttulo, ano)Autores (codAutor, nome, nacionalidade)DistribuioLivros(nmero, ISBN)Autoria(ISBN, codAutor)

  • Projeto Lgico - Normalizao

    Boyce and Codd Normal Form (BCNF) Uma relao est na BCNF se e somente se todo

    determinante chave candidata; Um determinante qualquer atributo do qual algum outro

    atributo funcionalmente dependente; As anomalias resolvidas pela BCNF aparecem em

    relaes com as seguintes caractersticas: Mltiplas chaves candidatas; Chaves candidatas so compostas; Chaves candidatas possuem ao menos um atributo em

    comum.

  • Projeto Lgico - Normalizao

    Boyce and Codd Normal Form (BCNF) Exemplo: Relao de Monitores de Disciplinas:

    Cada disciplina pode ter vrios monitores; Um monitor s monitora uma disciplina.

    MONITORMONITORalunodisciplinamonitor

    MrioFsica IIJoo

    PaulaFsica IICarlos

    AnaPesquisaAline

    MarcosLgicaAline

    MrioFsica IIAline

    monitordisciplinaaluno

  • Projeto Lgico - Normalizao

    Boyce and Codd Normal Form (BCNF) Dependncias funcionais

    monitor disciplina {aluno, disciplina} monitor {aluno, monitor} disciplina

    monitoraluno

    disciplinaEst na 3FN, mas no est na BCNF.

  • Projeto Lgico - Normalizao

    Boyce and Codd Normal Form (BCNF) Soluo (decomposio sem perdas):

    ALUNO_MONITOR

    MrioJoo

    PaulaCarlos

    AnaAline

    MarcosAline

    MrioAline

Search related