Upload
arimateia-gomes
View
221
Download
0
Embed Size (px)
Citation preview
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