Upload
nicu-manea
View
215
Download
0
Embed Size (px)
Citation preview
8/17/2019 06_Normalizare_3
1/30
METODOLOGIEGRAFICĂ
DE NORMALIZAREPRIN SINTEZĂ
F/BC F
8/17/2019 06_Normalizare_3
2/30
Ingrediente
• Atomizarea selectivă a atributelor-grup(neatomice)
• Dependenţe funcţionale
• Eliminarea DF simetrice• Cei surogat (identificare! alte artificii)
• Dep" de incluziune (este un/o (Is-A))• #raful DF
8/17/2019 06_Normalizare_3
3/30
Atomicitate
• Atomicitatea este relativă (la specificulaplicaţiei! interesul $i intenţia
proiectantului %D) & ' E"* Adresă (+tr"! ,r"! %loc! +cara! Ap"! """)• entru o librarie on-line! Adresă este atribut
atomic
• entru ./01E2EC/0! C/,E2! D3+1.3#A4n &
8/17/2019 06_Normalizare_3
4/30
Atomicitate (cont.)
• E"5* C6.73 83+%,! 1itlu! Editura!AnApar! Autori! +ubiecte9
' Atori ' S!iecte
atomice sau nu :
8/17/2019 06_Normalizare_3
5/30
Atomicitate (cont.)
• .egulă*
Atunci c;nd o componentă a unui atribut
non-atomic (colecţie) - e" Autori!CuvinteCeie ' apare! singură! casursă =n caz contrar! poate fi folosită formarepetitivă
8/17/2019 06_Normalizare_3
6/30
Dependenţe funcţionale simetrice
0atricol C,! dar $i C, 0atricolDe aceea!
' 0atricol ,ume+tudent ' 0atricol Adresa
dar $i
' C, ,ume+tudent ' C, Adresa
8/17/2019 06_Normalizare_3
7/30
DF simetrice în graf
Matricol
NumeStudent Adresa
CNP
Matricol
NumeStudent AdresaCNP
8/17/2019 06_Normalizare_3
8/30
Eliminare DFsimetrice/redundante (1)
.egulă*
entru orice entitate
8/17/2019 06_Normalizare_3
9/30
Eliminare DFsimetrice/redundante (2)
C=nd atributele nu sunt cei candidat! se ia =ncalcul precedenţa celor două DF
E" ' pentru un otelIdCa"are IdRe"er#are
deoarece rezervarea precede cazarea
8/17/2019 06_Normalizare_3
10/30
Atribute cei surogat (!")
• Atribute ?artificiale@! introduse din raţiunide identificare mai u$oară a unei entităţi!
proces! tranzacţie etc"• E" CodClient! 3dEaminare!3dEmatriculare etc"
• /puse ?ceilor inteligente@ (e"C,)
8/17/2019 06_Normalizare_3
11/30
!urog#ri (1)
TipDocumentPlatăSerieDocumentPlată
NrDocumentPlatăDataDocumentPlat
ă
SumaPlătită
NrFactPlătită
TipDocumentPlată
SerieDocumentPlată
NrDocumentPlat
ă DataDocumentPlat
SumaPlătită
NrFactPlătit
ă
IdPlată
Fără cheie surogat
Cu cheie surogat
8/17/2019 06_Normalizare_3
12/30
!" $ identificare asociaţii
/ entitate este asociată uneia sau mau multorentităţi specifice
• / persoană (IDPersoana → NumePers! IDPersoana → DataNasterii)are unul sau maimulţi copii*IDPersoana —/→ NumeCopil
• n furnizor poate livra numai anumite produse
• / carte are unul sau mai mulţi autori• n student urmează anumite cursuri
• etc"
8/17/2019 06_Normalizare_3
13/30
!" $ identificare asociaţii (cont.)
+olutie* introducerea unui atribut +B care săeprime relaţia
8/17/2019 06_Normalizare_3
14/30
!" $ identificare asociaţii (cont.)
IDPaternitate
IDPersoana
NumePers
DataNasterii
NumeCopil
IDFurnizareProdus
IDFurnizor
Adresa
NumeFurnCodIdentifFiscala
CodProdus
DenProdus
UM
8/17/2019 06_Normalizare_3
15/30
%roduse comandate $ f #r # !"
IDComanda
DataComenzii
CodProdus
IDFurnizorDenProdus
NumeFurn
./D+E 8Codrodus! Denrodus! retnitar! +tocCurent9F.,34/.3 83DFurnizor! ,umeFurn! Adresa! 2ocalitate9C/0E,43 83DComanda! DataComenzii! 3DFurnizor9./DC/0A,DA1E 83DComanda! Codrodus! CantComandata9
PretUnitar
StocCurent
Adresa Localitate
CantComandată
8/17/2019 06_Normalizare_3
16/30
%roduse comandate $ cu !"
./D+E 8Codrodus! Denrodus! retnitar! +tocCurent9F.,34/.3 83DFurnizor! ,umeFurn! Adresa! 2ocalitate9C/0E,43 83DComanda! DataComenzii! 3DFurnizor9./D+EC/0A,DA1E 83DrodusComandat! 3DComanda!Codrodus! CantComandata9
IDProdusComandat
IDComanda
DataComenzii IDFurnizor
NumeFurnAdresa
Localitate
CodProdus
DenProdus
PretUnitar
StocCurent
CantComandată
8/17/2019 06_Normalizare_3
17/30
Dependenţe de inclu&iune (DI)
• Eprimă o relaţie de tip este un / este o =ntre două atribute"E" n 0anager (3d0anager) este un angaat (3dAngaat)
• 3ndică o specializare
8/17/2019 06_Normalizare_3
18/30
'raf cu DI
DataAngajarii
IdProiect
DescriereNumeProiect
DataStartDurata
MarcaSecretara MarcaAngajat
NumeAngajatCompartiment
MarcaSef IDCopiator
DataAcitionariiModel
!itezaTenored"#perientaConducere
A,#AA13 80arcaAngaat!,umeAngaat! Compartiment!
DataAngaarii90A,A#E.3 80arca+ef! EperientaConducere9./3EC1E 83droiect! ,umeroiect! Descriere! Data+tart! Durata!0arca+ef9C/3A1/A.E 83DCopiator! 0odel! DataAcizitionarii9
+EC.E1A.E 80arca+ecretara! iteza1enoredactare! 3dCopiator9
8/17/2019 06_Normalizare_3
19/30
$CNF %&'
IDStudent
NrPuncteAcumulate
DenMaster
Tutore
IDStudent
NrPuncteAcumulate
DenMaster
Tutore
8/17/2019 06_Normalizare_3
20/30
$CNF %('
A
$ C
A
$ C
A$
CD
A$
CD
8/17/2019 06_Normalizare_3
21/30
IDComanda
DataCmd
NrFactIDFurnizor
!alFactDataFact
• o comand# $ mai multe facturi (acelai furni&or)• o factur# onorea&a o singur# comand#• numerele de facturi se repet# (din cau&a m.m.furni&ori)
DataCmd
NrFact
!alFactDataFact
DataCmdNrFact !alFact
DataFact
IDFacturare
*+F
*u ,surogare-
IDComanda
IDComanda
IDFurnizor
IDFurnizor
8/17/2019 06_Normalizare_3
22/30
DF )condi*ionată +
ID%ezer&are
NumeClCamera%ezer&
IDClient
AdresaCl
IDCazare
DataIncep%ez
DataSf%ez
DataCazare
Camera
DataDecazare
Data%ezer&
8/17/2019 06_Normalizare_3
23/30
Re"o,#are DF )condi*ionată+
ID%ezer&are
Data%ezer&
NumeCl
Camera%ez
IDClient
AdresaCl
IDCazare
DataIncep%ez
DataSf%ez
DataCazare
Camera
DataDecazare
ID'Caz'(azată 'pe'%ezer&
ID'Caz'f ăr ă'%ezer&
8/17/2019 06_Normalizare_3
24/30
DM - De.enden*e M,ti-a,oare %&'
• GHH -.onald Fagin
• (D0) =ntre I $i J dacă $i numai dacă*
' (a) la fiecare apariţie (valoare) a lui I poate fiasociată una sau mai multe apariţii (valori) alelui J>
' (b) această asociaţie nu depinde de apariţiilelui 4"
• I K J L 4
8/17/2019 06_Normalizare_3
25/30
DM %('
Elmasri $i ,avate*Dacă =n . eistă două tupluri t $i t5 pentru
care tMIN O t5MIN! atunci eistă =n . altedouă tupluri! tP $i tQ (4 toate celelalte(dec;t I $i J) atribute din .! adică (. - (I J)))*
• tPMIN O tQMIN O tMIN O t5MIN• tPMJN O tMJN $i tQMJN O t5MJN• tPM4N O t5M4N $i tQM4N O tM4N
8/17/2019 06_Normalizare_3
26/30
DM %/'
C"" Date* Eistă o dependenţă multi-valoare =ntre I $i J =n următoarea
situaţie*dacă (x,y,z) şi (x,y',z') sunt două tuplete
ale relaţiei R,
atunci (x,y',z) şi (x,y,z') aparţin, de
asemenea, lui R0
8/17/2019 06_Normalizare_3
27/30
DM %1'
." Dollinger*
/ valoare dată a lui I se găse$te =n . =n
combinaţie (formează tupluri) cu fiecare perece de valori (R!z) din produsulcartezian al mulţimilor J (valorile lui Rcare apar =n combinaţie cu un dat) $i 4"Aceasta =nseamnă ca mulţimile J $i 4sunt independente =ntre ele"
8/17/2019 06_Normalizare_3
28/30
DM %2'
8/17/2019 06_Normalizare_3
29/30
Trans3ormarea DM 4n DF
Su(iectIDAutor
IS$N
A5TORI 6IDAtor7 NmeAtor7 Adresa7 EMai,8CĂR9I 6IS$N7 Tit,7 Editra7 AnP!,ic8CĂR9I:A5T 6IS$N7 NrOrdineAtor7 IDAtor8CĂR9I:S5$IECTE 6IS$N7 S!iect7 Re,e#an*ă8
Titlu"ditura
AnPu(lic
NumeAutor
"mailAdresa
Su(iect
IDAutor IS$N
Titlu"ditura
AnPu(lic
Nume
"mailAdresa Nr)rdineAutor
%ele&an*ă
8/17/2019 06_Normalizare_3
30/30
Atri!te i"o,ate
NrFact
Datafact
Client
DI!*+0I FA*0I *AEA DE 'AD3 (0IA4)
!aloareFact
!alMinimă
!alMa#imă+Discount
IDDoctor
Data)ra,ncep-ar
dă
NumeDoctor...
Data)raSf-ardă
Data)raSosirii
IDPacient
NumePacient...
Simptome