Você está na página 1de 56

Dependncias Funcionais e

Normalizao
MC536/MC526
Profs. Anderson Rocha e Andr Santanch


Slides preparados por Flvia Cristina Bernardini e previamente baseados em outros trabalhos e
materais de Eduardo R. Hruschka, Cristina D. A. Ciferri e Elaine Parros Machado
Qualloaoe oo Projeto Loglco Qualloaoe oo Projeto Loglco
! Como avallar a qualloaoe oo esquema oa
relao?
! Semntlca
! |mplementao/oesempenbo
! Anallse lntormal:
! !"#$%&'#() para um bom projeto
! Anallse tormal:
! Depenoncla tunclonal
! Normallzao
Qualloaoe oo Projeto Loglco ... Qualloaoe oo Projeto Loglco ...
! Anallse |ntormal (prlnclplos):
! Semntlca oe atrlbutos
! Reouo oe reounoncla em tuplas:
" preveno oe anomallas oe lnsero
" preveno oe anomallas oe remoo
" preveno oe anomallas oe alterao
! Reouo oe valores nulos
! Preveno oe gerao oe tuplas espurlas
(llegltlmas)
Lemplo: Lemplo:
! Emp_Dept={Nome, CPF, DataNasc, End,
Dnum, Dnome, DGerCPF}
! Comblna lntormaes oe tlpos olterentes oe
entloaoes
" Problema semntlco
! Reounoncla em relao as lntormaes
armazenaoas
" Daoos oo oepartamento (Dnome e DGerCPF)
! |nsero
" Para lnserlr um empregaoo, necessarlo caoastrar
lntormaes sobre o oepartamento (ou $+,,))
" Tals lntormaes pooem gerar oaoos lnconslstentes
sobre o oepartamento
{cont}...
Lemplo... Lemplo...
! Emp_Dept={Nome, CPF, DataNasc, End, Dnum,
Dnome, DGerCPF}
! Lcluso:
" Apagar um empregaoo pooe slgnltlcar apagar as lntormaes
oo oepartamento
! Atuallzao:
" Muoar o valor oe um atrlbuto oe uma tupla oe Emp_Dept
pooe lmpllcar em ter oe alterar outros valores
corresponoentes
" L.: muoar -$+.
! valores $+,,:
" Se multos atrlbutos no se apllcarem a multas tuplas oa
relao, pooeremos oesperolar espao oe armazenamento.
L:
" |nclulr no escrltorlo na relao empregaoos, senoo que somente 10
oestes possuem oe tato um escrltorlo
Qualloaoe oo Projeto Loglco ... Qualloaoe oo Projeto Loglco ...
! Anallse Formal:
! Dependncias Funcionais:
" Restrles entre atrlbutos:
" Avallao oa qualloaoe oos esquemas oe relao
" Garantla oe conslstncla oa base oe oaoos
Depenoncla Funclonal (DF) Depenoncla Funclonal (DF)
! L uma restrlo entre ools subconjuntos oe
atrlbutos (A e B) oe ! , senoo oenotaoa por A
B
! Lspecltlca uma restrlo nas posslvels tuplas oe
R(!):
! Se t
#
[A] = t
/
[A] ento t
#
[B] = t
/
[B] para qualsquer #0 /
! Neste caso olz-se que A oetermlna
tunclonalmente B (ou alternatlvamente que B
oepenoe tunclonalmente oe A)
! Alguns eemplos:
! {#UFF} {Nome, |oaoe, Curso}
! {Slgla, Sala, Hora} {CoolgoTurma, Protessor}
! {Slgla} {NomeDlsclpllna, NCroltos}
Notao Dlagramatlca para DF Notao Dlagramatlca para DF
nro_cllente nome enoereo
nro_peoloo nro_peca qtoe_compraoa preo_cotaoo
nro_cllente nome enoereo coo_veno nome_veno
Depenoncla Funclonal (DF) ... Depenoncla Funclonal (DF) ...
! Proprleoaoe semntlca, loentltlcaoa pelo
projetlsta oa(o) 8Ds
! Pooe ser verltlcaoa na lnstncla oo 8Ds mas
no oetlnloa a partlr oela
! Lemplo: Seja a relao AIunos = {Nome, Curso,
|oaoe} e um oe seus posslvels estaoos:
{ <Marlo, Comp., 21>,
<Paulo, Lng. Proo. 22>,
<Almlr, Lnt., 22>,
<Marta, Comp., 21>,
<vnla, Lletr., 22> }
Depenoncla Funclonal ... Depenoncla Funclonal ...
! A relao AIunos atenoe as segulntes
DFs?
! Nome Curso
! Nome |oaoe
! Curso |oaoe
! |oaoe Curso
Alunos:
<Mario, Comp., 21>,
<Paulo, Eng. Prod. 22>,
<Almir, Enf., 22>,
<Marta, Comp., 21>,
<Vnia, Eletr., 22>
Lerclclos Lerclclos
! Daoa a relao Cllente (n_cllente, nome,
enoereo), as segulntes oepenonclas so
corretas?
! n_cllente nome,
! n_cllente enoereo,
! nome enoereo,
! enoereo nome.
! Daoa a segulnte relao, oeseja-se saber
se as oepenonclas llstaoas so
veroaoelras:
! nro_peoloo qtloaoe_compraoa,
! nro_pea qtloaoe_compraoa,
! nro_peoloo preo_cotaoo,
! nro_pea preo_cotaoo,
! {nro_peoloo, nro_pea} qtloaoe_compraoa,
! {nro_peoloo, nro_pea} preo_cotaoo,
! {nro_peoloo, nro_pea} {qtloaoe_compraoa, preo_cotaoo}.
nro_pedido nro_pea qtidade_
conprada
preo_cotado
101 P01 3 30,00
101 P02 4 70,00
102 P01 8 80,00
102 P02 3 20,00
Depenoncla Funclonal ... Depenoncla Funclonal ...
! Controle oe conslstncla:
! Necessarlo conbecer tooas as oepenonclas
tunclonals
" lntormao semntlca tornecloa pelo projetlsta
! Algumas oepenonclas tunclonals (DFs)
pooem ser lnterloas a partlr oe DFs
elstentes !regras oe lnterncla
Depenoncla Funclonal ... Depenoncla Funclonal ...
! Regras oe |nterncla oe DFs:
! Retlelva: se 8 A !A 8 (DF triviaI)
! Aumentatlva: se A 8 !AC 8C
! Decomposlo: se A 8C !A 8, A C
! Aoltlva: se A 8, A C !A 8C
! Transltlva: se A 8, 8 C !A C
! Pseuoo-Transltlva: se A 8, 8C D !AC D
Observao: A8 representa {A,B}.
Controlanoo a conslstncla Controlanoo a conslstncla
! Na construo oe um SG8D baseaoo no
mooelo relaclonal:
! Detlnlo oas relaes baseaoa na anallse oe
DFs,
! Formas normals,
! Uma relao esta em uma oetermlnaoa 1(".2
$(".2, quanoo satlstaz certas proprleoaoes
baseaoas nas DFs,
! Colocar uma relao em uma torma normal
! NornaIizao.
Normallzao Normallzao
! Normallzao oe Relaes:
! 8aseaoa nas DFs,
! Garante conslstncla na construo oo slstema:
" reouo oe anomallas.
" reouo oe reounoncla,
! Formas Normals (FNs) baseaoas em DFs:
" baseaoas em cbave prlmarla: 2a FN, 3a FN,
" baseaoas em cbaves canoloatas: FN oe 8oyce-Cooo
(FN8C ou, em |ngls, 8CNF).
! FN baseaoa em oepenonclas multlvaloraoas:
" 4a FN.
Detlnles lnlclals Detlnles lnlclals
! Daoos os conjuntos oe atrlbutos X eY, e um
atrlbuto A X :
! X Y oepenoncla tunclonal parclal se (X - {A}) Y
! X Y oepenoncla tunclonal total se (X - {A}) Y
! X Y oepenoncla tunclonal trlvlal se Y X
! X Y oepenoncla tunclonal transltlva se elste
X Z e Z Y, e Z no parte oa cbave prlmarla
! Atrlbuto prlmarlo: atrlbuto que taz parte oe alguma
cbave canoloata em !
1 Forma Normal (1FN) 1 Forma Normal (1FN)
! ! esta na 1FN se:
! tooo valor em ! tor atmlco
" ! no contm grupos oe repetlo
! Consloeraes:
! geralmente consloeraoa parte oa oetlnlo oe
!
! no permlte atrlbutos multlvaloraoos,
compostos ou suas comblnaes
Atrlbutos Multlvaloraoos e Atrlbutos Multlvaloraoos e
Compostos (lembrete) Compostos (lembrete)
! Atrlbutos multlvaloraoos:
! cor oo carro
! tltulo acaomlco, etc
! Atrlbutos compostos:
! enoereo {rua, numero, ap.}, etc
! 1FN no permlte tals atrlbutos, nem suas
comblnaes
1FN... 1FN...
! Lemplo
! cliente (nro_cli, nome, {end_entrega})
nro_cIi none end_entrega
124 [oo oos Santos Rua 10, 1024
Rua 24, 1356
311 [os Ferrelra Neves Rua 46, 1344
Rua 98, 4456
Mtooos para corrlglr o problema Mtooos para corrlglr o problema
! Mtooo 1:
! gerar uma nova relao contenoo o grupo oe
repetlo e a cbave prlmarla oa relao
orlglnal
! oetermlnar a cbave prlmarla oa nova relao:
" {cbave prlmarla oa relao orlglnal, cbave para o
grupo oe repetlo},
! aboroagem mals genrlca e que no causa
reounoncla
Mtooos para corrlglr o problema... Mtooos para corrlglr o problema...
! Mtooo 2:
! remover o grupo oe repetlo
! epanolr a cbave prlmarla
! aboroagem que causa reounoncla
! Mtooo 3:
! substltulr o grupo oe repetlo pelo numero
malmo oe valores estabelecloo para o grupo
! aboroagem menos genrlca e que pooe
lntroouzlr multos valores $+,,
Mtooos para corrlglr o problema... Mtooos para corrlglr o problema...
! voltanoo ao caso em estuoo:
! cllente (nro_cll, nome, {eno_entrega})
! 3(""#4#$5( ( '"(6,7.2 888
! Soluo 1:
" cllente_nome (nro_cll, nome),
" cllente_entrega (nro_cll, rua, numero).
! Soluo 2:
" cllente (nro_cll, nome, rua, numero).
! Soluo 3:
" cllente (nro_cll, nome, rua1, numero1, rua2, numero2).
Outros eemplos Outros eemplos
! Aluno = {Nome, |oaoe, DataNasc., DataMatrlcula}
! Aluno = {Nome, |oaoe, DlaN, MesN, AnoN,
DlaM, MesM, AnoM}
! Aluno = {NUFF, |oaoe, Dlsclpllnas}
Aluno = {NUFF, Idade}
Disciplinas = {NUFF, Disciplina}
Lerclclo Lerclclo
! Consloere a relao emp_proj (nro_emp, nome_emp, {
projeto ( nro_proj, nome_proj ) }).
Como normallza-la para a 1FN?
! { } lnolca que o atrlbuto projeto multlvaloraoo,
! {projeto ( )} lnolca os atrlbutos componentes oo atrlbuto
multlvaloraoo projeto.
2 Forma Normal (2FN) 2 Forma Normal (2FN)
! Definio: O esquema oe relao ! esta na 2FN se
tooo atrlbuto no prlmarlo* A em ! tem oepenoncla
tunclonal total oa cbave prlmarla oe !
! 1FN,
! X A oepenoncla tunclonal total se {X - {B}}
tunclonalmente A para qualquer atrlbuto B X.
! Teste para 2FN: verltlcar se atrlbutos oo laoo esqueroo
oas DFs tazem parte oa cbave prlmarla. Lemplos:
! Peoloo (nro-peoloo, oata, nro-pea, oescrlo,
qtoaoe_compraoa, preo_cotaoo)
" nro-peoloo oata
" nro-pea oescrlo
" {nro-peoloo, nro-pea} {qtoaoe_compraoa, preo_cotaoo}
! Obs: Caso XY e X torem cbaves canoloatas, Y pooe
oetermlnar ...
* Atributo dito primrio se membro de uma chave candidata
2FN ... 2FN ...
! Para corrlglr o problema:
! Para caoa sub-conjunto oe atrlbutos oa cbave prlmarla,
gerar uma relao com esse sub-conjunto como sua cbave
prlmarla,
! |nclulr os atrlbutos oa relao orlglnal na relao
corresponoente a cbave prlmarla aproprlaoa:
" colocar caoa atrlbuto junto com a coleo mlnlma oa qual ele
oepenoe, atrlbulnoo um nome a caoa relao.
! Levanoo em conta nosso eemplo anterlor:
! Peoloo (nro-peoloo, oata, nro-pea, oescrlo,
qtoaoe_compraoa, preo_cotaoo)
" peoloo (nro-peoloo, oata)
" pea (nro_pea, oescrlo)
" peoloo_pea (nro_peoloo, nro_pea, qtoaoe_compraoa,
preo_cotaoo)
2FN ... 2FN ...
! Outro eemplo:
! DFs loentltlcaoas pelo oesenvolveoor:
" {Protessor, Slgla} LlvroTeto,
" {NumeroT, Slgla} Sala,
" Slgla No.Horas,
" LlvroTeto LlvroLerc.
! Mlnlstra={Protessor, Slgla, LlvroTeto, LlvroLerc}
" Lsta na 2FN, mesmo que LlvroTeto LlvroLerc.
! Turma={NumeroT, Slgla, Sala, No.Horas}
" vlola a 2FN, pols Slgla No. Horas.
2FN ... 2FN ...
! Corrlglnoo o problema para atenoer a 2FN:
! Turma={NumeroT, Slgla, Sala, No.Horas},
" {NumeroT, Slgla} Sala,
" Slgla No.Horas,
! Lnto:
" Turma = {NumeroT, Slgla, Sala},
" Dlsclpllna = {Slgla, No.Horas}.
! 2FN evlta:
! |nconslstncla e anomallas causaoas por reounoncla oe
lntormao,
! Peroa oe lntormao em operaes oe remoo/alterao na
relao.
3 Forma Normal (3FN) 3 Forma Normal (3FN)
! Definio. ! esta na 3FN se:
l. Lsta na 2FN,
ll. Nenbum atrlbuto no prlmarlo oe R tor
transltlvamente oepenoente oa cbave
prlmarla.
! Depenoncla transltlva:
! Depenoncla transltlva X Y em ! acontece
se:
l. X Z e Z Y e,
ll. Z no tor cbave canoloata nem subconjunto oe
qualquer cbave oe !
3FN ... 3FN ...
! Lm outras palavras, tooos os atrlbutos
no prlmarlos oevem possulr oepenoncla
total, no transltlva, oa cbave prlmarla.
! Se X Y no transltlva, ento no
pooe baver no conjunto oe DFs: X Z
e Z Y.
! Lemplo:
! cllente (nro-cllente, nome-cllente, eno-cllente,
nro- nrovenoeoor, nome-venoeoor)
" nro-venoeoor nome_venoeoor.
3FN ... 3FN ...
! Corrlglnoo o problema:
! Para caoa oetermlnante que no uma cbave
canoloata, remover oa relao os atrlbutos que
oepenoem oesse oetermlnante
! Crlar uma nova relao contenoo tooos os atrlbutos
oa relao orlglnal que oepenoem oesse oetermlnante
! Tornar o oetermlnante a cbave prlmarla oa nova
relao
! Levanoo em conta nosso eemplo anterlor:
" cllente (nro-cllente, nome-cllente, eno-cllente, nro-venoeoor,
nomevenoeoor):
" cllente (nro-cllente, nome-cllente, eno-cllente, nro-venoeoor),
" venoeoor (nro-venoeoor, nome-venoeoor).
Chave
estrangeira
3FN ... 3FN ...
! Asslm como a 2FN, a 3FN evlta:
! |nconslstncla e anomallas causaoas por
reounoncla oe lntormaes,
! Peroa oe lntormao em operaes oe
remoo/alteraes na relao.
Detlnles Gerals oe 2FN e 3FN Detlnles Gerals oe 2FN e 3FN
! Detlnlo oe 1FN no olretamente
oepenoente o conceltos oe cbaves e oe
DFs,
! 2FN e 3FN olscutloas at agora
oesaprovam somente oepenonclas
parclals e transltlvas em relao a cbave
prlmarla,
! Detlnles gerals levam em conta tooas
as cbaves canoloatas oe uma relao.
Detlnlo geral oe 2FN Detlnlo geral oe 2FN
! ! esta na 2FN se caoa atrlbuto no
prlmarlo oe ! no tor parclalmente
oepenoente oe nenbuma cbave em ! .
! Alternatlvamente: ! esta na 2FN se tooo
atrlbuto no prlmarlo A oe ! possulr
oepenoncla tunclonal total oe caoa cbave
oo esquema !.
Detlnlo geral oe 3FN Detlnlo geral oe 3FN
! Um esquema oe relao R esta na 3FN se para caoa
oepenoncla tunclonal X A, X uma supercbave
oe R ou A um atrlbuto prlmarlo oe R.
! Alternatlvamente, um esquema oe relao R esta na
3FN se tooo atrlbuto no prlmarlo apresentar ambas
as segulntes conoles:
! Ter oepenoncla tunclonal total para tooas as cbaves
(2FN),
! No ser transltlvamente oepenoente oe nenbuma cbave.
! |lustranoo as oetlnles gerals oe 2FN e 3FN:
Lerclclos Lerclclos
! Nos eerclclos segulntes, normallze as
relaes oe torma que tooas as relaes
resultantes estejam na torma normal mals
restrlta. Consloere a 1FN, a 2FN e a 3FN.
Para caoa FN:
! Se necessarlo, loentltlque quals as oepenonclas
tunclonals que se apllcam sobre R,
! |oentltlque e justltlque se R encontra-se ou no
na torma normal em questo, e
! Caso R senoo anallsaoa no se encontre na torma
normal em questo, normallze-a, especltlcanoo as
relaes orlglnaoas.
Lerclclo 1 Lerclclo 1
! venoeoor ( nro_veno, nome_veno,
{cllente (nro_cll, nome_cll)} )
! As segulntes oepenonclas tunclonals oevem
ser garantloas na normallzao:
" nro_veno nome_veno,
" nro_cll nome_cll.
! Observao: consloere que um venoeoor
pooe atenoer olversos cllentes, e um cllente
pooe ser atenoloo por olversos venoeoores.
Lerclclo 2 Lerclclo 2
! aluno ( nro_aluno, coo_oepto, nome_oepto,
slgla_oepto, coo_orlent, nome_orlent,
tone_orlent, coo_curso )
! As segulntes oepenonclas tunclonals oevem ser
garantloas na normallzao:
" coo_oepto {nome_oepto, slgla_oepto},
" coo_orlent {nome_orlent, tone_orlent},
" nro_aluno {coo_oepto, coo_orlent, coo_curso},
! Observaes aolclonals:
" um aluno somente pooe estar assoclaoo a um oepartamento,
" um aluno cursa apenas um unlco curso,
" um aluno somente pooe ser orlentaoo por um unlco
orlentaoor.
Lerclclo 3 Lerclclo 3
! aluno ( nro_aluno, nome_aluno, {curso
(nro_curso, oescrlo_curso, ano_lngresso,
nro_oepto, nome_oepto)})
! As segulntes oepenonclas tunclonals oevem ser
garantloas na normallzao:
" nro_aluno nome_aluno,
" nro_curso oescrlo_curso,
" nro_oepto nome_oepto,
" {nro_aluno, nro_curso} ano_lngresso,
" nro_curso nro_oepto.
! Observaes aolclonals:
" um aluno pooe cursar mals oo que um curso,
" um curso somente pooe ser oterecloo por um unlco
oepartamento.
Forma Normal oe Forma Normal oe 8oyce 8oyce- -Cooo Cooo
(FN8C) (FN8C)
! Definio. ! esta na FN8C se para caoa
oepenoncla tunclonal X A, X uma
supercbave oe !
! Dlterena entre FN8C e 3FN:
! 3FN permlte A prlmarlo no se apllca a FN8C
! Se ! esta na FN8C ! esta na 3FN
! Se ! esta na 3FN, no necessarlamente ! esta na
FN8C.
! Na pratlca, a malorla oos esquemas oe
relao que esta na 3FN tambm esta na
FN8C.
Re Re- -vlsltanoo eemplo anterlor vlsltanoo eemplo anterlor
(lotes): (lotes):
! Lotes1A{num_id_propriedade, municpio_nome, num_lote, area}
! Lotes1B{area, preo}
! Supor baver mllbares oe lotes oe 2 munlclplos (9 e :)
" 9: area [0,1] e :; area (1,2]
! Atenoe 3FN, mesmo com a nova DF:
" area munlclplo_nome. /* munlclplo_nome prlmarlo */
! Nova tabela com areas e numero oo munlclplo
economlzarla espao
" FN8C
Normallzanoo pela FN8C ... Normallzanoo pela FN8C ...
! Lotes1AX{num_id_propriedade, rea, num_lote}
! Lotes1AY{rea, municpio_nome}
! Lotes1B{rea, preo}
! Decompor relaes
! Reunlr Lotes1AY e Lotes18 causarla um oesperolclo
oe espao oe armazenamento, pols a malorla oas
tuplas oesta relao possulrla somente ools valores
para munlclplo_nome, a saber: 9 e :
Outro eemplo oe FN8C ... Outro eemplo oe FN8C ...
! ! (aluno, curso, lnstrutor)
! DFs:
! {aluno, curso} lnstrutor,
! lnstrutor curso.
" essa oepenoncla, que representa que caoa lnstrutor
mlnlstra um curso, uma restrlo partlcular oa
apllcao
" lnstrutor no supercbave. Logo essa DF vlola FN8C
nro_cllente nome enoereo
FN8C ... FN8C ...
! Soluo 1:
! aluno_lnstrutor (aluno, lnstrutor)
! aluno_curso (aluno, curso)
! Soluo 2:
! lnstrutor_curso (lnstrutor, curso)
! aluno_curso (aluno, curso)
! Soluo 3:
! lnstrutor_curso (lnstrutor, curso)
! aluno_lnstrutor (aluno, lnstrutor)
Melbor soluo:
no gera tuplas
llegltlmas
Consloeraes sobre Consloeraes sobre DFs DFs e e
Normallzao... Normallzao...
! Normallzao:
! uma relao por vez,
! FN oe uma relao
" torma normal mals restrlta atenoloa,
! Decompor relaes, crlanoo outras relaes,
! Proprleoaoes oesejavels:
! oecomposlo sem peroa oe juno (sem gerao
oe tuplas llegltlmas),
! oecomposlo com preservao oe
oepenonclas.
! aumenta conslstncla, mas reouz oesempenbo
(junes).
Depenoncla Multlvaloraoa e Depenoncla Multlvaloraoa e
Normallzao Normallzao
! DF: mecanlsmo tormal para oetlnlo oe
restrles e garantla oe conslstncla em
bases oe oaoos relaclonals
! Lntretanto, algumas restrles no pooem
ser especltlcaoas com DFs
! Lemplo: lntormao sobre empregaoos oe uma
empresa
{nome oo empregaoo, projetos, oepenoentes}
! Semantlcamente:
" um conjunto oe valores oe projeto oetermlnaoo por
um valor oe nome, e somente por nome
" projeto e oepenoente no tm relao alguma
Depenoncla Multlvaloraoa ... Depenoncla Multlvaloraoa ...
! Depenoncla Multlvaloraoa (DM): restrlo entre
ools conjuntos oe atrlbutos
! A multloetermlna B (ou B multloepenoente oe
A)
! conjunto oe valores oe B oetermlnaoo pelo valor
oe A, e somente pelo valor oe A
! Lemplo para Lmpregaoo={Nome, Projeto,
Depenoente}:
" Carlos trabalba no projeto Museu vlrtual e tem ools
oepenoentes: Marlo e [oana
" Ana trabalba nos projetos Museu vlrtual e Cloaoanla, e tem
ools oepenoentes: Paulo e Snla
" Como armazenar os oaoos na relao Lmpregaoo oe manelra
a manter a semntlca?
Depenoncla Multlvaloraoa ... Depenoncla Multlvaloraoa ...
! Ocorrem quanoo atrlbutos multlvaloraoos
so oesmembraoos em multlplas ocorrnclas
oe tuplas por causa oa 1FN
! |oentltlcaoas pelo projetlsta oa base oe
oaoos
! Problemas:
! Reounoncla nas tuplas,
! Como garantlr conslstncla?
! Lemplo:
" Lmpregaoo={Nome, Projeto, Depenoente}
" Lsta na FN8C, mas alnoa vulneravel a lnconslstnclas....
4 Forma Normal (4FN) 4 Forma Normal (4FN)
! Um esquema oe relao esta na 4FN se:
! tooas as DMs so trlvlals ou,
! para caoa DM no-trlvlal A - B, A uma
supercbave em !
! Lemplos:
" Lmpregaoo={Nome, Projeto}
" Nome - Projeto (trlvlal)
" Lmpregaoo={Nome, Projeto, Depenoente}
" Nome - Projeto
" Nome - Depenoente
4a Forma Normal (4FN) ... 4a Forma Normal (4FN) ...
! Colocanoo a relao na 4FN....
4a Forma Normal (4FN) ... 4a Forma Normal (4FN) ...
! Outro exenpIo:
Professor = {Nome, Programa, Orientado}
Nome - Programa
Nome - Orientado
Programa = {Nome, Programa}
Orientao = {Nome, Orientado}
4a Forma Normal (4FN) ... 4a Forma Normal (4FN) ...
! Lvlta reounoncla nas tuplas
! evlta lnconslstnclas causaoas por
lncluso/remoo/alterao oe tuplas,
! Normallzao lmportante quanoo
atrlbutos multlvaloraoos lnoepenoentes
so mlsturaoos na mesma relao:
! Reouz espao oe armazenamento,
! Mals restrlta que FN8C,
! Proprleoaoe oesejaoa: oecomposlo sem
peroa oe juno
Consloeraes Flnals Consloeraes Flnals - -
Normallzao Normallzao
! FN, 2FN, 3FN, 8CNF e 4FN so
consloeraoas para caoa relao:
! 8D consloeraoa normallzaoa para uma
oetermlnaoa FN quanoo tooas as suas
relaes estlverem nessa FN
! Normallzao: oecomposlo oe relaes:
! aumenta conslstncla,
! reouz oesempenbo !operaes oe juno.

Você também pode gostar