Você está na página 1de 53

Aula 05

Normalizao
Modelagem de Dados e Projeto de Banco
de Dados
Curso Superior de Tecnologia em ADS
2
Normalizao

Objetivo

Apresentar uma abordagem de projeto de banco de dados,


denominada de Normalizao, a qual permite analisar a
qualidade das relaes, bem como elevar a sua qualidade.

Principais tpicos

Anomalias

Abordagens de Projeto de Banco de Dados

Dependncias Funcionais

Regras de nferncia para DFs


3
Abordagens de Projeto de BD

op!do"n

niciar com o agrupamento dos atributos obtidos a partir do


projeto conceitual de mapeamento

sso chamado de projeto por anlise

Bottom!#p

Considerar os relacionamentos entre atributos

Construir as relaes

sso chamado projeto pela sntese

Abordagem

Utilizar a abordagem Top-down para obter as relaes

Utilizar a abordagem Bottom-up para melhorar a qualidade das


relaes obtidas anteriormente
$
Anomalias

%#idado com red#nd&ncia de in'ormao

Anomalias de nsero:

Como inserir novo departamento sem que exista empregados?

nserir empregados difcil quando informaes de departamento


devem ser inseridas corretamente.

Anomalias de Remoo:

O que acontece quando removemos CC? Perdemos o


departamento 6!

Anomalias de Alterao:

Se mudarmos o gerente do departamento 5, devemos mud-lo


em todas as tuplas com DNUMERO = 5.
NSS NOME DTANV DNUMERO DNOME GERENTE
21 AA - 5 CV 91
22 BB - 5 CV 91
23 CC - 6 TS 93
24 DD - 7 OS 94
25 EE - 7 OS 94
(MP)D(P
*
Depend+ncias ,#ncionais

As D,s e c-aves so #sadas para de'inir 'ormas


normais de rela.es

As D,s so restri.es /#e so derivadas do


signi'icado dos atrib#tos e do se#s inter!
relacionamentos

0m conj#nto de atrib#tos 1 determina


'#ncionalmente #m conj#nto de atrib#tos 2 se o
valor de 1 determinar #m 3nico valor 2

X Y
4
Depend+ncias ,#ncionais

12

Se duas tuplas tiverem o mesmo valor para X, elas devem ter


o mesmo valor para Y. Ou seja:
Se XY ento, para quaisquer tuplas t
1 e t2 de r(R):
Se t1[X] = t2[X], ento t1[Y] = t2[Y]

5e 6 7 #ma c-ave de 89 ento 6 determina '#ncionalmente todos os atrib#tos de 8

sso porque, nunca teremos duas tuplas distintas com t1[K]=t2[K]

:mportante

As DFs so derivadas das restries do mundo real e no de uma extenso especfica da relao R
;
(<emplos de 8estri.es de D,

O n3mero do seg#ro social determina o nome do


empregado

NSS ENOME

O n3mero do projeto determina o nome do projeto e


a s#a localizao

PNUMERO { PNOME, PLOCALZACAO }

O nss de empregado e o n3mero do projeto


determinam as -oras semanais /#e o empregado
trabal-a no projeto

{ NSS, PNUMERO } HORAS


=
8egras de :n'er+ncia para D,s

8egras de in'er+ncia de Armstrong>

R1. (Reflexiva) Se Y X ( subconjunto de), ento XY


(sso tambm vlido quando X=Y)

R2. (Aumentativa) Se XY, ento XZYZ


(Notao: XZ significa X U Z)

R3. (Transitiva) Se XY e YZ, ento XZ

Alg#mas regras de in'er+ncia 3teis>

(Decomposio) Se XYZ, ento XY e XZ

(Aditiva) Se XY e XZ, ento XYZ

(Pseudotransitiva) Se XY e WYZ, ento WXZ


?
,ormas Normais com base em
%-aves Prim@rias

Normalizao de 8ela.es

0so pr@tico de ,ormas Normais

De'ini.es de %-aves e de Atrib#tos /#e participam


de %-aves

Primeira ,orma Normal

5eg#nda ,orma Normal

erceira ,orma Normal


AB
Normalizao de 8ela.es

Normalizao

Processo de decompor relaes "ruins dividindo seus


atributos em relaes menores e "melhores

,orma Normal

ndica o nvel de qualidade de uma relao

A,N

Definio de relao. Atributos atmicos (indivisveis).

2,N9 3,N9 B%N,

Baseiam-se em chaves e DFs de uma relao esquema

$,N e *,N

Baseiam-se em chaves e dependncias multivaloradas


AA
0so Pr@tico das ,ormas Normais

Na pr@tica9 a normalizao 7 realizada para obter


projetos de alta /#alidade

Os projetistas de bancos de dados no precisam


normalizar na maior 'orma normal possCvelD

Desnormalizao

Processo de armazenar junes de relaes de forma normal


superior como uma relao base que est numa forma normal
inferior
A2
De'inio de %-aves e Atrib#tos
/#e Participam de %-aves

8eviso

Uma superchave, S, de uma relao esquema

R = {A1, A2, ...., An}

um conjunto de atributos, subconjunto de R, com a


propriedade de que t
1[S] = t2[S] para qualquer extenso r(R)

Se uma relao esquema tiver mais de uma chave, cada chave ser chamada de chave-candidata. Uma das
chaves-candidatas arbitrariamente escolhida para ser a chave-primria e as outras so chamadas de
chaves-secundrias
A3
De'inio de %-aves e Atrib#tos
/#e Participam de %-aves

0m atrib#to primo Eo# prim@rioF 7 membro de


alg#ma c-ave!candidata

0m atrib#to no!primo 7 #m atrib#to /#e no 7


primo G isto 79 no 7 membro de /#al/#er c-ave!
candidata
NSS PNRO HORAS
8ABAHIA)(M
Primo Primo No-Primo
A$
Primeira ,orma Normal

ProCbe /#e rela.es ten-am

Atributos compostos

Atributos multivalorados

Relaes aninhadas
Ou seja

Permite apenas atributos que sejam atmicos


A*
ENOME NSS
Telefones
Joaquim 305 555-444
Katarina 381 555-333
Katarina 381 555-101
Dav 422
Carlos 489 555-376
Carlos 489 555-222
Carlos 489 555-376
Brbara 533 555-101
Normalizao na A ,N
EMPREGADO
ENOME NSS
Joaquim 305
Katarina 381
Dav 422
Carlos 489
Brbara 533
EMPREGADO
NSS NMERO
305 555-444
381 555-333
489 555-376
533 555-101
381 555-101
489 555-222
489 555-376
TELEFONE
A4
Normalizao de rela.es
Anin-adas para a A ,N
A;
Normalizao de rela.es
Anin-adas para a A ,N
ENOME NSS
PROJETOS
PNUMERO HORAS
Joaquim 305 1 32
Joaquim 305 2 8
Dav 422 3 40
Carlos 489 1 20
Carlos 489 3 20
EMPREGADO_PROJETO
ENOME NSS
Joaquim 305
Dav 422
Carlos 489
NSS PNUMERO HORAS
305 1 32
305 2 8
422 3 40
489 1 20
489 3 20
EMPREGADO
PROJETO
A=
Normalizao de rela.es
Anin-adas para a A ,N
A?
Normalizao de atrib#tos
atJmicos para a A ,N
ENOME
ENDERECO
Joaquim Rua A nr 10
Katarina Rua B nr 20
Dav Avenida x nr 10
Carlos Rua C nr 30
Brbara Rua E nr 50
ENOME
Tipo Endereco Endereo Numero
Joaquim Rua A 10
Katarina Rua B 20
Dav Avenida x 10
Carlos Rua C 30
Brbara Rua E 50
2B
Normalizao de atrib#tos
atJmicos para a A ,N
2A
5eg#nda ,orma Normal

Para entender a 2,N precisamos entender>

Dependncia Funcional

Chave-primria

Atributo No-Primo

Depend+ncia '#ncional total

Uma DF, YZ, onde a remoo de qualquer atributo de Y


invalida a DF. Exemplos:

{ NSS, PNUMERO } HORAS dependente totalmente de


{ NSS, PNUMERO }, uma vez que
NSS no determina HORAS e nem PNUMERO determina HORAS

{ NSS, PNUMERO } ENOME no dependente totalmente de


{ NSS, PNUMERO }; ENOME dependente parcialmente de
{ NSS, PNUMERO }, pois NSS ENOME
22
5eg#nda ,orma Normal

0ma relao es/#ema 8 est@ na 2,N se estiver na


A,N e todos os atrib#tos no!primos A de 8 'orem
totalmente dependentes da c-ave!prim@ria

8 pode ser decomposto em rela.es /#e estejam


na 2 ,N atrav7s do processo de normalizao
23
Normalizao para a 2,N
NSS PNUMERO HORAS ENOME PNOME
EMPREGADO_PROJETO
DF1
DF2
DF3
NSS PNUMERO HORAS NSS ENOME PNUMERO PNOME
EMPREGADO_PROJETO EMPREGADO PROJETO
No-Primo
Depende totalmente
da c-ave!prim@ria
O mesmo ocorre com as outras relaes
2$
Normalizao de rela.es
Anin-adas para a 2 ,N
ENOME NSS
PROJETOS
PNUMERO HORAS PNOME
Joaquim 305 1 32 PJ A
Joaquim 305 2 8 PJ B
Dav 422 3 40 PJ C
Carlos 489 1 20 PJ A
Carlos 489 3 20 PJ C
EMPREGADO_PROJETO
ENOME NSS
Joaquim 305
Dav 422
Carlos 489
NSS PNUMERO HORAS
305 1 32
305 2 8
422 3 40
489 1 20
489 3 20
EMPREGADO
PROJETO_EMPREGADO
PNUMERO PNOME
1 PJ A
2 PJ B
3 PJ C
PROJETO
2*
Normalizao de rela.es para a
2 ,N
24
erceira ,orma Normal

Para entender a 3,N precisamos entender>

2FN

Atributo No-Primo

Dependncia funcional transitiva

Se XY e YZ ento XZ
2;
erceira ,orma Normal

0ma relao es/#ema 8 est@ na 3,N se ela estiver na


2,N e nen-#m atrib#to no!primo9 A9 'or transitivamente
dependente da c-ave!prim@ria

8 pode ser decomposto em rela.es /#e estejam na


3,N via o processo de normalizao

NOA>

Em XY e YZ, sendo X a chave-primria, pode ser considerado


um problema se, e somente se, Y no for uma chave-candidata.
Quando Y uma chave-candidata, no existe problema com a
dependncia transitiva
2=
Normalizao para a 3,N
NSS PNUMERO HORAS TOTAL HR ENOME PNOME
EMPREGADO_PROJETO
DF1
DF2
DF3
NSS PNUMERO HORAS
EMPREGADO_PROJETO
No-Primo
Depende totalmente
da c-ave!prim@ria
TOTAL HR
No-Primo
No Depende totalmente
da c-ave!prim@ria
2?
Normalizao de rela.es para a
3 ,N
ENOME NSS
PROJETOS
PNUMERO HORAS OAH I8 PNOME
Joaquim 305 1 32 52 PJ A
Joaquim 305 2 8 8 PJ B
Dav 422 3 40 60 PJ C
Carlos 489 1 20 52 PJ A
Carlos 489 3 20 60 PJ C
EMPREGADO_PROJETO
ENOME NSS
Joaquim 305
Dav 422
Carlos 489
NSS PNUMERO HORAS
305 1 32
305 2 8
422 3 40
489 1 20
489 3 20
EMPREGADO
PROJETO_EMPREGADO
PNUMERO PNOME
1 PJ A
2 PJ B
3 PJ C
PROJETO
3B
Normalizao de rela.es para a
3 ,N
3A
Normalizao de atrib#tos para a
3 ,N
ENOME
Data de Nascimento dade
Joaquim 12/04/1980 33
Katarina 01/03/1990 23
Dav 15/01/2008 5
Carlos 01/02/2010 3
Brbara 21/02/2012 1
ENOME
Data de Nascimento
Joaquim 12/04/1980
Katarina 01/03/1990
Dav 15/01/2008
Carlos 01/02/2010
Brbara 21/02/2012
32
Normalizao de atrib#tos para a
3 ,N
33
De'inio Keral de ,ormas Normais

As de'ini.es anteriores consideravam somente a


c-ave!prim@ria

As pr<imas de'ini.es levaro em considerao as


v@rias c-aves candidatas
3$
De'inio Keral de ,ormas Normais

8ede'inio da 2,N>

Uma relao esquema R est na 2FN se todos os atributos


no-primos, A, forem totalmente dependentes de todas as
chaves de R

este>

Verifique que EMP_PROJ no est na 2FN

EMP_PROJ (nss, pnmero, horas, enome, pnome, plocalizacao)


3*
De'inio Keral de ,ormas Normais

8ede'inio de 3,N>

Uma relao esquema R est na 3FN se, sempre que houver


uma DF XA, ento uma das duas condies so vlidas:

X uma superchave de R, ou

A um atributo primo de R

NOA> A Forma normal de Boyce-Codd no admite a segunda


condio

este>

Verifique que est na 2FN mas no na 3FN


EMP_DEPT(enome, nss, datanasc, endereco, dnumero, dnome, dgernss)
No
superchave
No
Primo
34
B%N, EBoLce!%odd Normal ,ormF

De'inio de B%N,>

Uma relao esquema R est na BCNF se, sempre que


houver uma DF XA em R, ento X uma superchave de R

%ada ,N engloba a ,N anterior>

Toda relao em 2FN est na 1FN

Toda relao em 3FN est na 2FN

Toda relao em BCNF est na 3FN

(<istem rela.es /#e esto na 3,N mas no em B%N,

A meta 7 alcanar a B%N, o# 3,N em todas as rela.es


3;
BoLce!%odd normal 'orm
ESTUDANDE CURSO NSTRUTOR
Nair Banco de dados Marcos
Silas Banco de dados Nico
Silas Sistemas Operacionais Altair
Silas Teoria Saulo
Wilson Banco de Dados Marcos
Wilson Sistemas Operacionais lvaro
Wellington Banco de Dados Carlos
Zenaide Banco de Dados Nico
df1 df2
Relao em 3FN mas no em BCNF
Uma relao esquema R est
na B%N, se, sempre que
houver uma DF XA, ento:
X uma superchave de R
Uma relao esquema R est
na B%N, se, sempre que
houver uma DF XA, ento:
X uma superchave de R
Uma relao esquema R est
na 3,N se, sempre que
houver uma DF XA, ento:
X uma superchave de R
o#
A atributo primo de R.
Uma relao esquema R est
na 3,N se, sempre que
houver uma DF XA, ento:
X uma superchave de R
o#
A atributo primo de R.
8
3=
Alcanando a B%,N pela
Decomposio

(<istem d#as D, em relao>

df1: { estudante, curso } instrutor

df2: instrutor curso

Se a relao tivesse apenas df1, a relao estaria na


BCNF.

Mas em df2, instrutor no uma superchave, e, portanto,


viola a BCNF, mas no a 3FN, pois curso primo.

0ma relao /#e no esteja na B%N, deve ser


decomposta para atender a esta propriedade9
mas abdica da preservao das depend+ncias
'#ncionais nas rela.es decompostas
3?
Alcanando a B%,N pela
Decomposio

r+s possCveis decomposi.es para relao>

R1(estudante, instrutor) e R2(estudante, curso)

R1(curso, instrutor) e R2(curso, estudante)

R1(instrutor, curso) e R2(instrutor, estudante)

odas as tr+s decomposi.es perdem a d'AD

Temos que conviver com este sacrifcio, mas no


podemos sacrificar a propriedade no-aditiva aps a
decomposio.

Das tr+s9 apenas a terceira decomposio no


gera t#plas esp3rias aps a j#no EjoinF9 e9
assim9 mant7m a propriedade no!aditivaD
$B
Alcanando a B%,N pela
Decomposio
NSTRUTOR CURSO
Marcos Banco de dados
Nico Banco de dados
Altair Sistemas Operacionais
Saulo Teoria
lvaro Sistemas Operacionais
Carlos Banco de Dados
NSTRUTOR ESTUDANDE
Marcos Nair
Nico Silas
Altair Silas
Saulo Silas
Marcos Wilson
lvaro Wilson
Carlos Wellington
Nico Zenaide
ESTUDANDE CURSO NSTRUTOR
Nair Banco de dados Marcos
Silas Banco de dados Nico
Silas Sistemas Operacionais Altair
Silas Teoria Saulo
Wilson Banco de Dados Marcos
Wilson Sistemas Operacionais lvaro
Wellington Banco de Dados Carlos
Zenaide Banco de Dados Nico
8A
82
1
EMO:NF
Relao original: R
Note que para as
outras possveis
decomposies,
isso no acontece.
Note que para as
outras possveis
decomposies,
isso no acontece.
$A
Decomposio sem perdas

A decomposio de 8 em 1 e 2 7 sem perdas se e


somente se9 pelo menos #ma das d#as D, 'or v@lida

X Y X ou

X Y Y

%aso especial

Se U V, ento a decomposio de R em UV e R V sem


perdas.
Verifique que a decomposio
de R satisfaz esta condio!
Verifique que a decomposio
de R satisfaz esta condio!
$2
Algoritmo de Decomposio
B%N,

%onsidere #ma relao 8 e s#as D,s associadasD

Se X Y violar a FNBC, decomponha R em XY e R ~ Y.

Aplicando esta id7ia repetidamente9 obteremos #ma


decomposio sem perdas de 8 em #ma coleo de
rela.es na B%N,D

(m geral9 mais de #ma D, pode violar a B%N,D


Dependendo da ordem em /#e as depend+ncias
so tratadas9 podemos obter decomposi.es
di'erentes Ee mesmo assim corretasFD
$3
MND e $,N

As depend+ncias m#ltivaloradas so conse/O+ncia


da A,N9 a /#al no aceita atrib#tos m#ltivaloradosD

Considere, por exemplo, a relao ACERVO abaixo:

Relao Normalizada para BCNF (note que no h DFs)


SBN AUTOR CPAS
85-7323-169-6 Dantas 1, 2
0-13031-995-3 Molina, Ulman, Widom 1, 2
SBN AUTOR CPAS
85-7323-169-6 Dantas 1
85-7323-169-6 Dantas 2
0-13031-995-3 Molina 1
0-13031-995-3 Molina 2
0-13031-995-3 Ulman 1
0-13031-995-3 Ulman 2
0-13031-995-3 Widom 1
0-13031-995-3 Widom 2
Porque existem dependncias
multivaloradas!
SBN AUTOR
SBN CPAS
Porque existem dependncias
multivaloradas!
SBN AUTOR
SBN CPAS
Mas ainda temos
redundncias por que?
Mas ainda temos
redundncias por que?
$$
MND e $,N

5empre /#e 1 2 ocorrer9 dizemos /#e 1


m#ltidetermina 2D

Devido a semetria da de'inio9 sempre /#e 1


2 ocorrer em 89 tamb7m ocorre 1 PD

Por isso9 1 2 implica 1 PQ por isso9 Rs


vezes 7 escrito como 12 S PD

(nto9 na relao A%(8NO do e<emplo anterior>

SBN AUTOR | CPAS


$*
MND e $,N

(limina red#nd&ncias provocadas pelas


depend+ncias m#ltivaloradas EMNDFD

0ma relao est@ na $,N se no contiver mais de


#ma MNDD

Mas porque to ruim ter uma tabela com mltiplas


dependncias multivaloradas?

Em ACERVO

Para inserir mais uma cpia do SBN 0-13031-995-3, ser


necessrio inserir 3 tuplas, uma para cada autor.
SBN AUTOR CPAS
85-7323-169-6 Dantas 1
85-7323-169-6 Dantas 2
0-13031-995-3 Molina 1
0-13031-995-3 Molina 2
0-13031-995-3 Ulman 1
0-13031-995-3 Ulman 2
0-13031-995-3 Widom 1
0-13031-995-3 Widom 2
Alteraes e
Remoes carecem
com mesmo problema
Alteraes e
Remoes carecem
com mesmo problema
$4
MND e $,N

A sol#o 7 decompor a relao A%(8NO em d#as

A MND desej@vel 7 a/#ele c#jo determinante 7


s#perc-ave da relao
SBN AUTOR
85-7323-169-6 Dantas
0-13031-995-3 Molina
0-13031-995-3 Ulman
0-13031-995-3 Widom
SBN CPAS
85-7323-169-6 1
85-7323-169-6 2
0-13031-995-3 1
0-13031-995-3 2
De acordo com as MVD
SBN AUTOR
SBN CPAS
De acordo com as MVD
SBN AUTOR
SBN CPAS
Caso especial
Se R tiver as seguintes MVD
A B e B C
Neste caso, R estar na 4FN se, e
somente se, B e C so dependentes um do
outro.
Caso especial
Se R tiver as seguintes MVD
A B e B C
Neste caso, R estar na 4FN se, e
somente se, B e C so dependentes um do
outro.
$;
*,N e Depend+ncia de M#no

Alg#mas vezes #ma relao no pode ser


decomposta sem perdas em d#as rela.es9 mas
pode ser decomposta em tr+s o# maisD

A *,N capta a id7ia de /#e #ma relao es/#ema


deve ter alg#ma decomposio sem perda
Edepend+ncia de j#noFD

(ncontrar casos reais da *,N 7 di'CcilD


$=
*,N e Depend+ncia de M#no

0m pe/#eno e<emplo
AGENTE EMPRESA PRODUTO
Smith Ford Carro
Smith Ford Caminho
Smith GM Carro
Smith GM Caminho
Jones Ford Carro
AGENTES representam EMPRESAS
EMPRESAS fazem PRODUTOS
AGENTES vendem PRODUTOS
Regra:
Se um AGENTE vende um certo
PRODUTO e este AGENTE
representa uma EMPRESA que faz
este PRODUTO
ento
O AGENTE deve vender o
PRODUTO para a EMPRESA.
AEP
$?
*,N e Depend+ncia de M#no

0m pe/#eno e<emplo
AGENTE EMPRESA
Smith Ford
Smith GM
Jones Ford
AGENTE PRODUTO
Smith Carro
Smith Caminho
Jones Carro
EMPRESA PRODUTO
Ford Carro
Ford Caminho
GM Carro
GM Caminho
AGENTE EMPRESA PRODUTO
Smith Ford Carro
Smith Ford Caminho
Smith GM Carro
Smith GM Caminho
Jones Ford Carro
AEP
AE EP AP
AEP= AE * EP * AP
*B
*,N e Depend+ncia de M#no

Depend+ncia de M#no

Uma relao R satisfaz a dependncia de juno


JD (R
1, R2, ..., Rn) se

R = R1* R2 * ...* Rn

onde R1, R2, ..., Rn so subconjuntos dos atributos de R.

Note que uma dependncia multivalorada um caso especial de dependncia de juno (n=2).
*A
*,N e Depend+ncia de M#no

0ma relao 8 est@ na *,N se9 e somente se9 ela


estiver na $,N e todas as s#as depend+ncias de
j#no 'orem determinadas pelas c-aves
candidatasD

A descoberta de DMs em bancos de dados reais


com centenas de atrib#tos 7 praticamente
impossCvelD :sso poder@ ser 'eito apenas contando
com #m grande gra# de int#io sobre os dados
por parte do projetistaD Por isso9 a pr@tica at#al de
projeto de banco de dados d@ po#ca ateno a elas
E(lmasri T Navat-e $UD (dioFD
*2
O#tras N,s

(<istem o#tras 'ormas normais9 por7m elas esto


'ora do escopo desta disciplina9 pois so 'ormas
po#co #tilizadas em projetos de banco de dados
devido a s#a di'ic#ldade de aplicao pr@ticaD
*3
Normalizao

8e'er+ncias Bibliogr@'icas
1. Elmasri, R.; Navathe, S. B. [Trad.]. Sistemas de bancos de dados.
Traduzido do original: FUNDAMENTALS OF DATABASE
SYSTEMS. So Paulo: Pearson(Addison Wesley), 2005. 724 p.
SBN: 85-88639-17-3.
2. Korth, H.; Silberschatz, A. Sistemas de Bancos de Dados. 3a.
Edio, Makron Books, 1998.
3. Raghu Ramakrishnan e Johannes Gehrke, Database Management
Systems, Second Edition, McGraw-Hill, 2000.
4. Teorey, T.; Lightstone, S.; Nadeau, T. Projeto e modelagem de
bancos de dados. Editora Campus, 2007.

8e'er+ncias Veb
1. Takai, O.K; taliano, .C.; Ferreira, J.E. ntroduo a Banco de
Dados. Apostila disponvel no site:
http://www.ime.usp.br/~jef/apostila.pdf. (07/07/2005).

Você também pode gostar