Sunteți pe pagina 1din 13

Normalizarea bazelor de date

Aplicare. Exerciţii

Liana ANICA-POPA
liana.anica@cig.ase.ro
Normalizare BD. Exerciţii

 Recapitulare: definiții și cadru teoretic al derulării


normalizării

 Discuții de clarificare

 Aplicare. Învățare prin exerciții

Liana ANICA-POPA
liana.anica@cig.ase.ro
Normalizare BD. Exerciţiul Flori1
Gestiunea activității într-un complex de ferme horticole
Dicţionar de date (DD):
CodSera, DenSera, SuprafSera, IdSera, CodFerma, DenFerma,
LocalitateFerma, CodPoştal, CodFloare, DenFloare, Culoare,
DurataCrestere, SuprafFloareInSera, DataPlantare, CNPAngajat,
NumeA, SalariuA, AdresaA, TelA, SuprafTotFloare,
NrFloriCultivate
Reguli de gestiune (RG)
1) Într-o
seră pot fi plantate mai multe flori, fiecare pe o
anumită suprafață si la o anumită dată.
2) O seră aparține uneia dintre fermele complexului horticol.
3) Un angajat lucreaza la o singură fermă.

Liana ANICA-POPA
liana.anica@cig.ase.ro
Exerciţiu Flori1 : Forma normală 1 (FN1)

 Atribute eliminate
 IdSera, sinonim cu CodSera
 SuprafTotFloare, NrFloriCultivate – atribute calculate
SuprafTotFloare = Sum([SuprafFloareInSera]);
NrFloriCultivate = Count([CodFloare])

Nu există în DD omonime, atribute deductibile, repetitive, decompozabile.

DDFN1 = {CodSera, DenSera, SuprafSera, CodFerma, DenFerma,


AdresaFerma, LocalitateFerma, CodPoştal, CodFloare,
DenFloare, Culoare, DurataCrestere, SuprafFloareInSera,

DataPlantare, CNPAngajat, NumeA, SalariuA, AdresaA, TelA }


Liana ANICA-POPA
liana.anica@cig.ase.ro
Exerciţiu Flori1 : Forma normală 2 (FN2)

Ferma (CodFerma, DenFerma, AdresaFerma, LocalitateFerma, CodPoştal)


Sera (CodSera, DenSera, SuprafSera, #CodFerma)
(Cheie externă creată pe baza RG2)
Floare (CodFloare, DenFloare, Culoare, DurataCrestere)
Flori_in_Sere (#CodSera, #CodFloare, SuprafFloareInSera, DataPlantare)
(tabelă nouă, creată pe baza RG1)
Angajat (CNPAngajat, NumeA, SalariuA, AdresaA, TelA, #CodFerma )
(Cheie externă creată pe baza RG3)

Liana ANICA-POPA
liana.anica@cig.ase.ro
Exerciţiu Flori1: Forma normală 3 (FN3)

Dependență funcțională tranzitivă identificată în tabela Ferma:

CodFerma -------> CodPostal


CodPostal ---------> LocalitateFerma
---------------------------------------------------------------------------

Cod Ferma ----------DFT--------> LocalitateFerma

Celelalte tabele nu au dependențe funcționale tranzitive (DFT) între atributele lor;

prin urmare, structurile lor nu suferă modificări în etapa FN3.

Liana ANICA-POPA
liana.anica@cig.ase.ro
Exerciţiu Flori1: Forma normală 3 (FN3)

LocalitatiFerme (CodPoştal, LocalitateFerma)

Ferma (CodFerma, DenFerma, AdresaFerma, #CodPoştal)

Sera (CodSera, DenSera, SuprafSera, #CodFerma)


(Cheie externă creată pe baza RG2)

Floare (CodFloare, DenFloare, Culoare, DurataCrestere)

Flori_in_Sere (#CodSera, #CodFloare, SuprafFloareInSera, DataPlantare)


(tabelă nouă, creată pe baza RG1)

Angajat (CNPAngajat, NumeA, SalariuA, AdresaA, TelA, #CodFerma )


(Cheie externă creată pe baza RG3)
De lucru singuri:

Liana ANICA-POPA
liana.anica@cig.ase.ro
Normalizare BD. Exerciţiu Rep2
 Gestiunea reparaţiilor utilajelor agricole
Dicţionar de date (DD): Cod utilaj reparat, Denumire utilaj
reparat, Număr bon reparaţie, Dată bon reparaţie, Marcă
salariat, Nume salariat, Cod piesă, Denumire piesă, Unitate de
măsură, Cantitate, Preţ, Valoare, Cod categorie piesă,
Denumire categorie piesă.
Reguli de gestiune (RG)
1) Un bon de reparaţii este întocmit de un salariat.
2) Un bon de reparaţii este întocmit pentru un utilaj
3) Pe un bon de reparaţie pot fi specificate mai multe piese, cu
cantitatea consumată și costul său unitar; o piesă poate
figura, într-o cantitate și cu un cost unitar specificate, pe
mai multe bonuri de reparație.
4) O piesă aparţine unei singure categorii.
Liana ANICA-POPA
liana.anica@cig.ase.ro
Normalizare BD. Exerciţiu StocCer3
Proiectaţi, prin normalizare, structura unei baze de date pentru gestiunea
stocurilor de cereale, cunoscând următoarele:
 o fermă dispune de mai multe depozite, pentru care se reţin în sistem:
cod depozit, capacitate depozit, adresă depozit;
 la depozit se recepţionează mărfurile aprovizionate, completându-se o
notă de recepţie cu: număr notă de recepţie, data recepţiei, cod depozit,
cod produs recepţionat, cantitate recepţionată, cantitate totală
recepţionată pe fiecare marfă;
 notele de recepție se întocmesc corespunzător facturilor de
aprovizionare;
 pentru o factură de aprovizionare se reţin: numărul facturii, data facturii,
data scadenţei, cod furnizor.
Reguli de gestiune:
1) o notă de recepţie este întocmită la un singur depozit; la un depozit se
emit mai multe note de recepție;
2) o notă de recepţie poate conţine mai multe mărfuri; o marfă se poate
recepţiona pe mai multe note de recepţie, într-o anumită cantitate;
3) fiecare notă de recepţie este aferentă unei singure facturi de
aprovizionare.
Liana ANICA-POPA
liana.anica@cig.ase.ro
Normalizare BD. Exerciţii diverse
1. Se dă tabela:
Student
NrMatricol Nume CodFacultate LimbiStrăine Localitate
12323445 Radu Ionel EAM engleza, franceza, germana Comarnic
23434567 Pop Eliza FABBV franceza, italiana, rusa Govora

In ce formă normală se află? Justificați răspunsul.

2. Se dă tabela:
Student (NrMatricol, Nume, CodFacultate, Localitate)
Formulați regula de gestiune care a condus la obținerea cheii externe CodFacultate.

3. Se dă tabela:
PrezențăCurs (#NrMatricol, #CodCurs, DataPrezență)
Formulați regula de gestiune care a condus la crearea tabelei PrezențăCurs.
Liana ANICA-POPA
liana.anica@cig.ase.ro
Normalizare BD. Exerciţii diverse
4. Se dă tabela:
FoaieMatricola
NrMatricol CodCurs DenCurs Nota
12323445 Obli01 Baze de date 10 In ce formă normală se află?
23434567 Opt07 Actuariat 7 Justificați răspunsul.
77888990 Obli01 Baze de date 9
23434567 Obli01 Baze de date 6

5. Se dă tabela:
Curs (CodCurs, DenCurs, CodDomeniu)
Formulați regula de gestiune care a condus la obținerea cheii externe CodDomeniu.

6. Se dă tabela:
Examene (#NrMatricol, #CodCurs, #CNPProfesor, Data, Nota)
Formulați regula de gestiune care a condus la crearea tabelei Examene.
Liana ANICA-POPA
liana.anica@cig.ase.ro
 Sănătate!

 Spor la învățat!

Liana ANICA-POPA
liana.anica@cig.ase.ro

S-ar putea să vă placă și