Documente Academic
Documente Profesional
Documente Cultură
CURSURILE 2-3
NORMALIZAREA BAZELOR DE DATE
Maini
EXEMPLU DE
DESCOMPUNERE
ERONAT
Masina
Constructor
Numar
Model
12 B113
r4
13 B666
2cv
11B999
r4
13B777
ds
Model
Marca
Culoare
r4
Renault
alb
2cv
Citroen
verde
r4
Renault
negru
ds
Citroen
alb
COMPUNERE natural
dac pe campul Model
Numr
Culoare
Model
Marca
12 B113
alb
r4
Renault
13 B666
verde
2cv
Citroen
11B999
negru
r4
Renault
13B777
alb
ds
Citroen
numar
Culoare
Model
marca
12 B113
alb
r4
Renault
12 B113
negru
r4
Renault
13B666
verde
2cv
Citroen
11B999
alb
r4
Renault
11B999
negru
r4
Renault
13B777
alb
ds
Citroen
Maini
VEHICUL
Constructor
Numr
Culoare
Model
Marca
12 B113
alb
r4
Renault
Numr
Culoare
Model
13 B666
verde
2cv
Citroen
12 B113
alb
r4
11B999
negru
r4
Renault
13 B666
verde
2cv
13B777
alb
ds
Citroen
11B999
negru
r4
13B777
alb
ds
Model
Marca
r4
Renault
2cv
Citroen
ds
Citroen
Descompunere corect
Numr
Culoare
Model
Marca
12 B113
alb
r4
Renault
13 B666
verde
2cv
Citroen
11B999
negru
r4
Renault
13B777
alb
ds
Citroen
5
Serie factur
Numar
factura
Data factur
Cod furnizor
Denumire furnizor
Adres furnizor
A01
01/01/2008
111
Bucureti
A02
12/05/2008
112
Braov
A03
15/05/2008
112
Braov
Tabela Furnizori-Facturi
CodFurnizor DenumireFurnizor
CodMaterial DenumireMaterial
Unei realizri a cmpului CodFurnizor i corespunde o singur realizare a
cmpului DenumireFurnizor. De asemenea, unei realizri a cmpului
CodMaterial, i corespunde o singur realizare a cmpului
DenumireMaterial
Dependene multivaloare
10
NumarInventarMijlocFix,
MarcaAngajat}exist dependene
multivaloare (ntr-o secie lucreaz mai
muli muncitori, la mai multe mijloace fixe).
Dac fiecare muncitor lucreaz la toate
mijlocele fixe, atunci exist urmtoarele
dependene multivaloare:
CodSectieNumarInventarMijlocFix
CodSectieMarcaAngajat
11
O dependenta tranzitiva poate fi stabilita pe baza dependentelor
functionale dintre 3 atribute :A,B,C.
AB
A----- > C
B C.
Dependena multipl: exist o dependen multipl de la A la B (A
B) atunci cnd o realizare a lui A determin mai multe realizri
ale lui B;
Exemple: NrFactur CodProdus; DataFactur NrFactur
Trebuie observat faptul, c dac ntre dou atribute A i B exist o
dependen multivaloare (A B), atunci ntre A i B exist i o
dependen multipl (A B). Dac ntre A i B exist o
dependen multipl, asta nu nseamn c ntre cele dou atribute
exist i o dependen multivaloare, deoarece n cazul
dependenelor multivaloare sunt necesare trei atribute.
Formele normale
12
Formele normale sunt reguli, restricii care trebuie respectate pentru eliminarea
13
Relatia PERSOANA
Cod
Denumire
Domiciliu
01
Ionescu
02
Popescu
Relatia Comanda
Numarcomanda
Data
Material1
11
01/01/2008
Ciment
12
02/01/2008
Ciment
13
02/01/2008
Var
Material2
Var
Nisip
14
15
Forma normal 2 (FN2)
O relaie se afl in FN2 dac respect FN1 i dac orice
atribut noncheie se afl n dependen funcional
complet fa de cheia primar a relaiei.
FN2 interzice existena dependenelor funcionale pariale
ntre atributele cu rol de cheie primar i celelalte atribute.
EX:Relaia PieseComandate{NumrComand, CodPies,
Cantitate, PreUnitar, DenumirePies} nu se afl n FN2
pentru c ntre (NumrComand, CodPies) i
DenumirePies exist o dependen parial:
(NumrComand, CodPies) DenumirePies
CodPies DenumirePies
16
NumrComand
CodPies
Cantitate
PretUnitar
DenumirePies
01
100
20
Saiba
02
150
25
Rotor
01
200
20
Saiba
Relaia MaterialeComandate
Relaia MaterialeComandate prezint urmtoarele anomalii:
Redundan pentru cmpurile care depind parial de cheia
primar. Realizrile cmpului DenumirePies, se repet inutil.
Anomalii la adugare: nu se pot aduga piese dac nu s-au fcut
comenzi pentru acestea;
Anomalii la modificare: dac se modific denumirea unei piese,
atunci trebuie modificate toate nregistrrile care conin
denumirea piesei respective;
Anomalii la tergere: tergerea unei comenzi poate conduce la
tergerea definitiv a unor piese.
17
18
19
CodClient
DenumireClient
NumrComand -------DenumireClient
Pentru aducerea unei relaii din FN2 n FN3, se parcurg
urmtoarele etape:
Se identific eventualele dependene funcionale tranzitive;
Determinantul noncheie mpreun cu atributul sau atributele
determinate funcional de ctre acesta, vor forma o nou relaie;
Determinantul noncheie devine cheie primar n relaia nou
format i cheie extern n relaia iniial.
20
21
22
23
24
25
Identificator
Explicatie
1.
CodFurnizor
Cod Furnizor
2.
DenumireFurnizor
Denumirea furnizorului
3.
AdresaFurnizor
Adresa Furnizorului
4.
NrFactura
Numar Factura
5.
DataFacturii
Data Factura
26
Nrfactura
Data facturii
27
Matricea dependentelor
functionale
Cod furnizor
Cod
furnizor
Denumire
furnizor
Adresa
furnizor
Denumire
furnizor
Adresa
furnizor
Numar
factura
1T
Data facturii
Numar
factura
Data facturii
1T
28 pot
4. Pentru atributele rmase izolate se vor cuta grupuri de cmpuri ce
constitui determinani ai acestora. Toate atributele (grupuri de atribute)
determinante devin chei candidate. Cheile candidate ce vor aparine aceluiai
tabel sunt caracterizate prin dependene funcionale reciproce.
(CodFurnizor<->DenumireFunizor, CodFurnizor<->Adresa)
5. Se stabilesc cheile primare dintre atributele candidate.
Exemplu:CodFurnizor,NumrFactur
6. Cu fiecare cheie primar i atributele determinate direct (netranzitiv) de
aceasta se va forma o relaie (un tabel).
Exemplu:
Furnizor(CodFurnizor, DenumireFurnizor, AdresaFurnizor)
Factur(NumrFactur, Data, CodFurnizor)
7. Se stabilesc cheile externe (cmpuri ce sunt chei primare n alte tabele)
Exemplu:
Furnizor(CodFurnizor, DenumireFurnizor, AdresaFurnizor)
Factur(NumrFactur, Data, CodFurnizor)
29
30
31
32