Dependência Funcional e Normalização Em Um Banco De

download Dependência Funcional e Normalização Em Um Banco De

of 33

Transcript of Dependência Funcional e Normalização Em Um Banco De

  • 7/25/2019 Dependncia Funcional e Normalizao Em Um Banco De

    1/33

    Dependncia Funcional eNormalizao em um Banco de

    Dados Relacional

  • 7/25/2019 Dependncia Funcional e Normalizao Em Um Banco De

    2/33

    Definies para Projetos Informais

    de Esquemas Relacionais

  • 7/25/2019 Dependncia Funcional e Normalizao Em Um Banco De

    3/33

    Introduo

    Como avaliar se um esquema de relaes bomou ruim?

    Existem quatro medidas informaispara mensurar aqualidade de um projeto de esquema de relao: Semntica dos Atributos Reduo de valores redundantes nas tuplas Reduo de valores null nas tuplas Impedimento para a gerao de valores ilegtimos nas

    tuplasCada uma dessas medidas possui uma diretriz quegarante sua execuo

  • 7/25/2019 Dependncia Funcional e Normalizao Em Um Banco De

    4/33

    Semntica dos Atributos da Relao

    Um modelo conceitual bem feito resulta emum modelo relacional claro.

    Quanto mais fcil explicar a semntica darelao, melhor ser o modelo de esquema darelao.

    SemnticaSignificado dos dados no mundo real, que especificacomo interpretar os valores dos atributos armazenados em uma

    tupla da relao.

  • 7/25/2019 Dependncia Funcional e Normalizao Em Um Banco De

    5/33

    Semntica dos Atributos da Relao

    No combinar atributos de diferentes tipos

    entidades e relacionamentos dentro de umanica relao.

    Do contrrio, torna-se difcil explicar o

    significado da relao

    ENOME SSN DATANASC ENDERECO DNUMERO DNOME DGERSSN

    EMP_DEPT

    Diretriz 1Modelar um esquema de relao de forma queseja fcil explicar seu significado.

  • 7/25/2019 Dependncia Funcional e Normalizao Em Um Banco De

    6/33

    Informaes Redundantes em Tuplas eAnomalias de Atualizaes

    Deve-se minimizar o espao de armazenamentousado pelas relaes bsicas

    Agrupar os atributos em esquemas derelaes tem efeito no espao dearmazenamento.

    Controle de redundncia necessrio paraevitar anomalias de insero, excluso eatualizao

  • 7/25/2019 Dependncia Funcional e Normalizao Em Um Banco De

    7/33

    ENOME SSN DATANASC DNUM DNOME DGERSSN

    Joo 11111 01/01/ 1911 5 Diretoria 22222

    Jos 22222 02/02/1922 5 Diretoria 22222

    Pedro 33333 03/03/1933 4 Administrao 33333

    Maria 44444 04/04/1944 4 Administrao 33333

    Joaquim 55555 05/05/1955 1 Pesquisa 55555

    Hector 66666 06/06/1966 1 Pesquisa 55555

    EMP_DEPT

    Anomalias de Insero

    Como so cadastrados empregados sem

    departamento? E departamentos sem empregado? Como garantir a consistncia dos dados do

    departamento do empregado inserido com a dosdemais empregados em tuplas j cadastradas?

  • 7/25/2019 Dependncia Funcional e Normalizao Em Um Banco De

    8/33

    Informaes Redundantes em Tuplas eAnomalias de Atualizaes

    Anomalias de excluso

    O que acontece com os dados de umdepartamento o qual todos os empregados

    tenham sido excluidos?

    Anomalias de atualizao

    Como atualizar os dados de um departamento?

  • 7/25/2019 Dependncia Funcional e Normalizao Em Um Banco De

    9/33

    ENOME SSN DATANASC DNUM

    Joo 11111 01/01/ 1911 5

    Jos 22222 02/02/1922 5

    Pedro 33333 03/03/1933 4

    Maria 44444 04/04/1944 4

    Joaquim 55555 05/05/1955 1

    Hector 66666 06/06/1966 1

    EMPREGADO

    DNOME DNUM DGERSSN

    Pesquisa 1 55555

    Administrao 4 33333

    Diretoria 5 22222

    DEPARTAMENTO

  • 7/25/2019 Dependncia Funcional e Normalizao Em Um Banco De

    10/33

    Informaes Redundantes em Tuplas eAnomalias de Atualizaes

    Obs.: s vezes essas diretrizes precisam servioladas para melhorar o desempenho de certas

    consultas. Quando isso ocorrer, as anomaliasdevem ser consideradas nos momentos em que obanco for atualizado.

    Diretriz 2Modelar esquemas de relaes bsicas de formaque nenhuma anomalia de insero, excluso ou atualizaopossa ocorrer. Se houver possibilidade de ocorrer anomalia,

    registre-a claramente para que os programas que atualizaro obanco operem corretamente.

  • 7/25/2019 Dependncia Funcional e Normalizao Em Um Banco De

    11/33

    Valores Nulls(nulos) em tuplas

    Excesso de valores nullsem tuplas podem gerardesperdcio de espao e problemas de entendimentodo significado dos dados.

    Geram tambm problemas em JOINS e funes

    agregadas, como SUM e COUNT

    Ex.: Se s 10% dos empregados possuem escritrios, aoinvs de colocar um atributo ESCRITORIO_NRO narelao empregado, melhor criar uma nova relaoEMP_ESCRITORIOS(SSN, ESCRITORIO_NRO)

    Diretriz 3Evite colocar atributos cujos valoresfrequentemente possam ser nulos. Se os nullsforem

    inevitveis, tenha certeza de que eles se aplicam somente em

    casos excepcionais e no na maioria das tuplas da relao.

  • 7/25/2019 Dependncia Funcional e Normalizao Em Um Banco De

    12/33

    Gerao de tuplas ilegtimas

    Evite as relaes que contenham orelacionamento entre os atributos que no

    sejam combinaes (chave estrangeira, chaveprimria), porque junes sobre essesatributos podem produzir tuplas ilegtimas.

    Diretriz 4Projete os esquemas de relaes de forma quepossam ser unidos (join) com igualdade de condies sobre osatributos que sejam chaves primrias ou chaves estrangeiras,de modo a garantir que nenhuma tupla ilegtima seja gerada.

  • 7/25/2019 Dependncia Funcional e Normalizao Em Um Banco De

    13/33

    Dependncias Funcionais

  • 7/25/2019 Dependncia Funcional e Normalizao Em Um Banco De

    14/33

    Definio

    uma propriedade da semnticados atributos. Uma restrio nos estados de R, que implica no haver mais de

    uma tupla com um dado valorXem qualquer instncia darelao r(R) (isto ,X uma chave candidata de R) implicaX Ypara qualquer subconjunto de atributos Yde R.(restrio dechave)

    SeX Y, isso no implica necessariamente que Y X em R

    Uma dependncia funcional, denotada porX Yentre doisconjuntos de atributosXe Y, que so subconjuntos de R, especificamuma restrio nas possveis tuplas que formem um estado da relaorde R. A restrio que, para quaisquer duas tuplas t

    1e t

    2em rque

    tenhamt1[X

    ] =t2[X

    ], elas tambm tem que tert1[Y

    ] =t2[Y

    ].

  • 7/25/2019 Dependncia Funcional e Normalizao Em Um Banco De

    15/33

    Dependncia total X Parcial

    Dependncia funcional totalocorre quandoa remoo de qualquer atributo A de X implicaque a dependncia no mais ser assegurada.

    Do contrrio, a dependncia ser parcial.

  • 7/25/2019 Dependncia Funcional e Normalizao Em Um Banco De

    16/33

    VENDEDOR

    PEDIDOCLIENTE

    ITEM_DO_PEDIDO

    realiza

    solicita

    possui

    CodVendedor NomeVendedor

    NumPedido

    Prazo

    VlrTotal

    CodCliente Nome

    EnderecoCPF

    NumPedido

    CodProd

    UnidProdQtdProd VlrUnitProd

    VlrTotProd

    Dependncia total

    Dependncia Parcial

  • 7/25/2019 Dependncia Funcional e Normalizao Em Um Banco De

    17/33

    Dependncia Transitiva

    Ocorre quando existe um atributo que no chave nem faz parte da chave, mas queidentifica outros atributos. (Existe um atributo

    no-chave que depende de outro atributono-chave)

  • 7/25/2019 Dependncia Funcional e Normalizao Em Um Banco De

    18/33

    Exemplos

    ENOME SSN DATANASC ENDERECO DNUMERO DNOME DGERSSN

    EMP_DEPT

    SSN PNUMERO HORAS ENOME PNOME PLOCALIZACAO

    EMP_PROJ

    Dependncias parciais da chave composta SSN, PNUMERO

    Dependncia transitiva

  • 7/25/2019 Dependncia Funcional e Normalizao Em Um Banco De

    19/33

    Normalizao

  • 7/25/2019 Dependncia Funcional e Normalizao Em Um Banco De

    20/33

    Conceito

    Processo top-down. Foram criadas a priori trs formas normais (1FN,

    2FN e 3FN), sendo que a terceira possui um

    incremento, a forma normal de Boyce Codd(FNBC). Existem tambm uma quarta e umaquinta forma normal (4FN e 5FN).

    NormalizaoProcesso de anlise de determinadosesquemas de relaes com base em suas DFs e chavesprimrias para alcanar as propriedades desejveis de (1)minimizao de redundncia e (2) minimizao de anomaliasde insero, excluso e atualizao.

  • 7/25/2019 Dependncia Funcional e Normalizao Em Um Banco De

    21/33

    Conceito

    O procedimento de normalizao proporciona: Uma estrutura formal para anlise de esquemas de

    relao, com base em suas chaves e nas dependnciasfuncionais entre seus atributos

    Uma srie de testes de formas normais deve ser feita, emcada um dos esquemas de relao, de forma que o bancode dados relacional possa ser normalizado no graudesejado.

    A forma normal de uma relao refere-se condio

    da mais alta forma normal alcanada, e indica o grauno qual foi normalizada. Os esquemas de relaes que no alcanam determinada

    forma normal so decompostos em esquemas menoresque passam nos testes.

  • 7/25/2019 Dependncia Funcional e Normalizao Em Um Banco De

    22/33

    Primeira Forma Normal (1FN)

    Evita relaes dentro de relaes. Para deixar uma relao na 1FN devemos:

    Decompor atributos compostos em atributos simples Para cada atributo multivalorado ser criada uma relao

    contendo o atributo multivalorado mais a chave primria

    da tabela inicial, que passa como chave estrangeira. Achave primria da nova relao ser composta. Para cada grupo repetido de atributos ser criada uma

    relao que conter os atributos do grupo repetido mais achave primria da tabela principal, que passa como chave

    estrangeira e ir ajudar a compor a chave primria.

    O domnio de cada atributo s deve incluir valores atmicos(simples, indivisveis), e que o valor de qualquer atributo emuma tupla deve ter um nico valor no domnio daquele

    atributo (monovalorados).

  • 7/25/2019 Dependncia Funcional e Normalizao Em Um Banco De

    23/33

    Primeira Forma Normal (1FN)

    Relao no normalizada

    Relaes na 1FN

    Pedido (codigo_pedido, valor_total, data, {telefone_contato},{itens (codigo_produto, nome_produto, preco_unitario, qtd,valor_pago)})

    Pedido (codigo_pedido, valor_total, data)

    telContPedido (codigo_pedido, telefone_contato)

    ItensPedido (codigo_pedido, codigo_produto, nome_produto,preco_unitario, qtd, valor_pago)

  • 7/25/2019 Dependncia Funcional e Normalizao Em Um Banco De

    24/33

    Segunda Forma Normal (2FN)

    Se um esquema de relao no estiver na 2FN,poder ser normalizado na segunda forma pormeio da criao de vrias relaes na 2FN nas

    quais os atributos no-primrios s estaroassociados parte da chave primria com aqual possuirem dependncia funcional total

    Um esquema de relao Rest na 2FN se todo atributo noprimrio (no membro de chaves candidatas)Aem Rtem

    dependncia funcional total da chave primria de R

  • 7/25/2019 Dependncia Funcional e Normalizao Em Um Banco De

    25/33

    Segunda Forma Normal (2FN)

    Relaes na 1FN

    Relaes na 2FN

    Pedido (codigo_pedido, valor_total, data)

    TelContPedido (codigo_pedido, telefone_contato)

    ItensPedido (codigo_pedido, codigo_produto, nome_produto,preco_unitario, qtd, valor_pago)

    Pedido (codigo_pedido, valor_total, data)

    telContPedido (codigo_pedido, telefone_contato)

    ItensPedido (codigo_pedido, codigo_produto, qtd, valor_pago)

    Produto (codigo_produto, nome_produto, preco_unitario)

  • 7/25/2019 Dependncia Funcional e Normalizao Em Um Banco De

    26/33

    Terceira Forma Normal (3FN)

    Caso a relao no esteja na 3FN, poder ser

    normalizada at esse grau decompondo emontando uma relao que contenha o(s)atributo(s) no-chave(s) que determina(m)funcionalmente o(s) outro(s) atributo(s).

    Um esquema de relao Rest na 3FN se estiver na 2FN e nopossuir dependncias transitivas

  • 7/25/2019 Dependncia Funcional e Normalizao Em Um Banco De

    27/33

    Terceira Forma Normal (3FN)

    Relao na 2FN

    Relaes na 3FN

    Departamento (codigo_depto, nome_depto, codigo_gerente,nome_gerente)

    Departamento (codigo_depto, nome_depto, codigo_gerente)

    Gerente (codigo_gerente, nome_gerente)

  • 7/25/2019 Dependncia Funcional e Normalizao Em Um Banco De

    28/33

    Forma Normal de Boyce Codd (FNBC)

    Ex.: Imagine que na relao a seguir a rea deum lote determine o municpio ao qual elepertence:

    Lotes de Picosde 0,5 a 1,0 acres Lotes de Sussuaparade 1,1 a 2,0 acres

    Um esquema de relao Rest na FNBC quando est na 3FN enenhum de seus atributos primrios (membro de algumachave candidata) depende de algum conjunto de atributos X

    que no seja uma superchave

  • 7/25/2019 Dependncia Funcional e Normalizao Em Um Banco De

    29/33

    Relao na 3FN

    Relao na FNBC

    NUM_PROPRIEDADE MUNICIPIO_NOME NUM_LOTE AREA

    Chave Candidata

    NUM_PROPRIEDADE NUM_LOTE AREA

    AREA MUNICIPIO_NOME

  • 7/25/2019 Dependncia Funcional e Normalizao Em Um Banco De

    30/33

    Dependncia Multivalorada

    Ocorre quando um determinado atributo determina umconjunto de valores de outro atributo

    MATRICULA ->> PROFISSAO (->> l-se multidetermina)

    MATRICULA ->> ESPORTE

    MATRICULA PROFISSAO ESPORTE

    35 ANALISTA TNIS

    35 ANALISTA FUTEBOL

    35 ENGENHEIRO TNIS

    49 MDICO NATAO

    49 MDICO BASQUETE

    49 PSICLOGO NATAO49 PSICLOGO BASQUETE

  • 7/25/2019 Dependncia Funcional e Normalizao Em Um Banco De

    31/33

    Quarta Forma Normal (4FN)

    Esquema anterior na 4FN (decomposio de Rem R1= (X U Y) e R2= (RY)

    Um esquema de relao Rest na 4FN quando est na FNBC e oconjunto Ximplicado de uma dependncia multivaloradaX->>

    Y uma superchave

    MATRICULA PROFISSAO

    35 ANALISTA

    35 ENGENHEIRO

    49 MDICO

    49 PSICLOGO

    MATRICULA ESPORTE

    35 TNIS

    35 FUTEBOL

    49 NATAO

    49 BASQUETE

  • 7/25/2019 Dependncia Funcional e Normalizao Em Um Banco De

    32/33

    Dependncia de Juno e 5FN

    O contedo de Rpode ser reconstrudo (semperda de informao) a partir das diversasrelaes menores.

    Dependncia de Juno - Ocorre quando a juno natural dasrelaes R1, R2, ..., Rn, frutos da decomposio de uma relao

    R, no igual ao estado rde R.

    Uma relao est na 5FN se e somente se estiver na 4FN e orelacionamento entre os atributos puder ser decomposto emrelacionamentos binrios sem gerao de informao incorreta.

    FORNECE

  • 7/25/2019 Dependncia Funcional e Normalizao Em Um Banco De

    33/33

    FNOME NOMEPECA NOMEPROJ

    Smith Parafuso ProjX

    Smith Porca ProjY

    Adamsky Prego ProjY

    Walton Porca ProjZ

    Adamsky Prego ProjX

    Adamsky Parafuso ProjX

    Smith Parafuso ProjY

    FORNECE

    FNOME NOMEPECA

    Smith Parafuso

    Smith Porca

    Adamsky Prego

    Walton Porca

    Adamsky Parafuso

    R1FNOME NOMEPROJ

    Smith ProjX

    Smith ProjY

    Adamsky ProjY

    Walton ProjZ

    Adamsky ProjX

    R2NOMEPECA NOMEPROJ

    Parafuso ProjX

    Porca ProjY

    Prego ProjY

    Porca ProjZ

    Prego ProjX

    Parafuso ProjY

    R3