Sei sulla pagina 1di 43

Dependncia Funcional e Normalizao em um Banco de Dados Relacional

Este captulo mede formalmente por que um conjunto de agrupamentos de atributos em esquemas de relao melhor que outro.

Medidas informais para mensurar a qualidade 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 tuplas.

Semntica dos atributos


Atributos

de uma tabela possuem algum significado no mundo real; Diretriz 1 para os projetos de BD:

Modelar um esquema de relao de modo que seja fcil explicar seu significado; No combine os atributos de diferentes tipos entidades e relacionamentos dentro de uma nica relao.

Um esquema simplificado do BD Empresa

Violam diretrizes anteriores

Mistura atributos de entidades distintas do mundo real; EMP_DEPT mistura os atributos de empregados e departamentos; e EMP_PROJ, os atributos de empregados e projetos.

Esquema de relao mal organizado

Reduo de valores redundantes nas tuplas


Comparar

slide 06 com slide 08; No slide 08 ocorre anomalias na atualizao:


Anomalias de insero; Anomalias de excluso; Anomalias de atualizao.

Anomalias de insero
No

slide 08, qual anlise pode ser feita caso ocorra uma nova insero de um novo empregado que trabalhe no departamento 05?

Os dados de dep. 05 devem ser consistentes com os que j existem em EMP_DEP

Como

inserir um novo departamento em EMP_DEP?

10

Anomalias de excluso
Se

apagar o empregado James Borg, ter alguma conseqncia negativa para o banco?

Excluindo o James, excluir tambm o departamento de nmero 1.

11

Anomalias de atualizao
O

que deve ser feito se for resolvido alterar o gerente do departamento de nmero 5?
Dever alterar todos os registros que contm o departamento 5.

Diretriz

2:

Crie esquema de relaes sem as anomalias citadas anteriormente.

12

Reduo de valores null em tuplas

Evitar criar tabelas em que pode existir muitos atributos com valor null. O null pode ser interpretado como:

Que o atributo no se aplica tupla; O valor do atributo para a tupla desconhecido; O valor conhecido, mas ausente; Evitar uso de atributos em uma relao cujos valores freqentemente possa ser null. Se forem inevitveis, tenha certeza de que eles se aplicam somente em casos excepcionais e no na maioria das tuplas da relao.

Diretriz 3:

13

Exemplo
Tenho

que inserir o atributo NRO_ESCRITORIO na tabela empregado. Mas apenas 10% dos empregados possuem escritrios particulares. E agora, o que fazer?

Criar uma tabela a parte somente para guardar o nmero do escritrio.

14

Normalizao de relaes
Usada

para alcanar propriedades desejveis de:


Minimizao de redundncia; Minimizao de anomalias de insero, excluso e atualizao.

15

Normalizao de relaes
1FN 2FN 3FN Forma

normal de Boyce-Codd

16

Dependncia Funcional
Um

atributo B possui uma dependncia funcional do atributo A se, para cada valor do atributo A, existe exatamente um nico valor do atributo B; representada por A B; Exemplo: CPF Nome
123 111 121 Carlos Maria Pedro Ana

17

222

Dependncia Funcional
Observe

que existe um dependncia entre os valores dos conjuntos, ou seja, nome funo do CPF, se eu estiver com numero do CPF, poderei encontrar o nome da pessoa correspondente; Dependncia expressa por: CPF Nome; Leia da seguinte maneira:

18

com um nmero de CPF posso encontrar nome da pessoa, ou nome depende da funcionalidade do CPF.

Primeira Forma Normal (1FN)


Os

nicos valores de atributos permitidos pela 1FN so valores nicos; impedido a criao de atributos multivalorados, compostos e combinaes entre eles; Exemplo no prximo slide.

19

20

3 formas de alcanar a 1FN


Remover

o atributo DLOCALIZACOES e criar uma nova tabela; Ampliar a chave para dlocalizacao, conforme figura no prximo slide; Supondo que existe at 3 localizaes, criar DLOCALIZACAO1, DLOCALIZACAO2 e DLOCALIZACAO3
21

22

Segunda Forma Normal (2FN)


Baseada

no conceito de dependncia funcional total Veja prximo slide

23

Dependncia funcional total


{ssn,

pnumero} horas

Dependncia funcional total (no so assegurados SSN HORAS nem PNUMERO HORAS)

{ssn,

pnumero} enome

Dependncia funcional parcial (porque assegurado SSN ENOME)

24

Definio: um esquema de relao R est na 2FN se todo atributo no primrio A em R tem dependncia funcional total da chave primria de R.

Exemplo
A relao EMP_PROJ est na 2FN?

25

2FN
Para

passar para a 2FN, os atributos no primrios s estaro associados parte da chave primria com a qual possuem dependncia funcional total.

26

Passando para a 2FN

27

Agora est na 2FN

28

Terceira Forma Normal


Baseado no conceito de dependncia transitiva; A dependncia SSN DGERSSN transitiva para DNUMERO em EMP_DEPT, pois SSN DNUMERO e DNUMERO DGERSSN e DNUMERO no nem uma chave primria nem um subconjunto da chave de EMP_DEPT

29

Terceira Forma Normal


A

dependncia de DGERSSN para DNUMERO indesejvel, uma vez que DNUMERO no chave de EMP_DEPT; Definio: est na 3FN se satisfazer a 2FN e se nenhum atributo no primrio de R for transitivamente dependente da chave primria.
30

Passando para a 3FN


Est na 2FN? sim

31

Definio Geral da 2FN

Um esquema de relao R est na 2FN se cada atributo no primrio A de R no for parcialmente dependente de nenhuma chave de R; Exemplo: Na fig. que segue, considere as chaves candidatas NUM_ID_PROPRIEDADE e {MUNICIPIO_NOME, NUM_LOTE}. Suponha que existam as dependncias DF3 e DF4.

32

Significado: a taxa de imposto fixa para um determinado municpio

Significado: o preo de um lote determinado por sua rea, independentemente do municpio a que ele pertena

Normalizao na 2FN

33

Atributo primrio: atributo que faz parte de alguma chave candidata em R

Definio Geral da 3FN


Um

esquema de relao R est na 3FN sempre que uma dependncia funcional X A for determinada em R qualquer
(a) (b)

X uma superchave de R; ou A um atributo primrio de R

Um esquema de relao R est na 3FN se todo atributo no primrio de R apresentar ambas as seguintes condies: Ter dependncia funcional total para todas as chaves de R; No ser transitivamente dependente de nenhuma chave de R.

34

Lotes2 est na 3FN

DF4 em Lotes1 viola a 3FN porque AREA no uma superchave, e PRECO no um atributo primrio de Lotes1.

35

Passando Lotes1 para a 3FN

36

Forma Normal de Boyce-Codd (BCNF)


Foi

proposta como uma forma mais simples de 3FN; Considerada mais rgida que a 3FN; Toda relao que est na BCNF est na 3FN, porm o contrrio pode no ser verdade.

37

Forma Normal de Boyce-Codd (BCNF)


Considere a relao LOTES1A; Existem milhares de lotes dentro da relao, mas somente dois municpios: Dekalb e Fulton; reas de Dekalb: 0.5, 0.6, ..., 1.0 acres; reas de Fulton: 1.1, 1.2, ..., 2.0 acres; Isso gera a DF5: AREA MUNICIPIO_NOME; Adicionando s outras dependncias, LOTES1A ainda estaria na 3FN pois MUNICIPIO_NOME um atributo primrio.

38

DF5

39 39

Forma Normal de Boyce-Codd (BCNF)

Em uma relao separada R(AREA, MUNICIPIO_NOME), teriam 16 tuplas possveis; Isso reduziria a redundncia que ocorreria em LOTES1A; Logo a BCNF uma forma normal mais forte que desaprova LOTES1A e sugere a necessidade de decomp-la; Definio: a mesma que a 3FN, com exceo da condio (b)

40

Transformando LOTES1A para BCNF

41

Exemplo (1/2)
Est na 3FN? SIM Est na BCNF? NO

Quais so as DF?

42

{ALUNO, CURSO} INSTRUTOR INSTRUTOR CURSO

Exemplo (2/2) Transformando para BCNF

43

Potrebbero piacerti anche