Sunteți pe pagina 1din 41

ACADEMIA DE STUDII ECONOMICE BUCUREŞTI

FACULTATEA DE CIBERNETICĂ, STATISTICĂ ŞI INFORMATICĂ ECONOMICĂ

B A Z E D E DAT E
RELAŢIONALE.
TEHNICA NORMALIZĂRII

BUCUREŞTI
2021-2022
PROIECTAREA STRUCTURII BAZEI
DE DATE

• Constă din următoarele activităţi:


a. proiectarea schemei conceptuale;

b. proiectarea schemei externe (logice);

c. proiectarea schemei interne (fizice, de memorare).

2
PROIECTAREA STRUCTURII BAZEI
DE DATE

a. Proiectarea schemei conceptuale a BDR presupune:


stabilirea colecţiilor de date (tabelelor) şi definirea
detaliată a conţinutului acestora;
determinarea legăturilor dintre colecţiile de date şi a
modului de reprezentare a acestora în cadrul schemei
conceptuale;
testarea schemei obţinute şi revizuirea acesteia, dacă este
cazul.

3
PROIECTAREA STRUCTURII BAZEI
DE DATE

b. Proiectarea schemei externe a BDR presupune:


realizarea tabelelor virtuale (views);
folosirea mecanismelor de acordare a drepturilor de acces
la BDR.

c. Proiectarea schemei interne a BDR presupune:


stabilirea modului de organizare fizică a datelor;
stabilirea căilor de acces la acestea;
realizarea de indecşi şi clustere.

4
PROIECTAREA SCHEMEI
CONCEPTUALE INIŢIALE A BDR

Schema conceptuală iniţială a BDR se poate obţine în două


moduri:
A. se realizează maparea entităţilor şi a asocierilor în relaţii.
Este o variantă top-down de utilizare a tehnicii de
normalizare a relaţiilor;
B. se constituie o relaţie unică, aşa numita relaţie universală,
din atributele tuturor entităţilor şi asocierilor - varianta
bottom-up.

5
TEHNICA NORMALIZĂRII
OPTIMIZAREA SCHEMEI CONCEPTUALE A BDR

 Optimizarea schemei conceptuale a unei BDR se realizează


printr-o evaluare din aproape în aproape a fiecărei relaţii, pe
baza unor criterii de evaluare.

 Au fost identificate cinci criterii de evaluare, cărora le


corespund cinci forme normale, notate FN1 ÷ FN5

 Trecerea succesivă a relaţiilor unei BDR prin formele normale


cunoscute, până la aducerea lor în forma normală stabilită ca
fiind optimă în contextul analizat – tehnica normalizării.

6
TEHNICA NORMALIZĂRII
OPTIMIZAREA SCHEMEI CONCEPTUALE A BDR

 Obiectivul normalizării îl constituie optimizarea structurii


BDR prin:

 Eliminarea anomaliilor de actualizare a datelor;

 Înlăturarea redundanţei datelor.

 Trecerea unei relaţii dintr-o formă normală în alta presupune


eliminarea unui anumit tip de dependenţe (dependenţe
funcţionale parţiale, tranzitive, multivaloare sau joncţiune),
dependenţe care determină apariţia anomaliilor de actualizare.
 Transformarea dependenţelor se realizează, de regulă, prin
descompunerea relaţiei în două sau mai multe relaţii.

7
TEHNICA NORMALIZĂRII
OPTIMIZAREA SCHEMEI CONCEPTUALE A BDR

 Fie relaţia Aprovizionare (Id_furnizor, Denumire_fz,


Localitate_fz, Id_produs, Denumire_produs, Pret)
Id_furnizo Denumire_f Localitate_ Id_produ Denumire_prod Pret
r z fz s us
100 SC ALFA Bucureşti 1 Portocale 6
SA
100 SC ALFA Bucureşti 2 Banane 4
SA
110 SC BETA Ploieşti 3 Mango 6
SRL
 120AnalizândSCaceastă
DELTArelaţie se observă
Braşov 1 o redundanţă a datelor pentru
Portocale 5
aprovizionările
SRL realizate cu acelaşi furnizor. Altfel spus valorile
...asociate atributelor
... Denumire_fz
... şi...Localitate_fz
... se repetă la fiecare
...
produs livrat de acel furnizor.
8
TEHNICA NORMALIZĂRII
ANOMALIILE DE ACTUALIZARE

 Anomalia de ştergere = stergând un tuplu dintr-o tabelă,


pe lângă informaţiile şterse, se pierd şi informaţiile utile
existente în tuplul respectiv;
 Anomaliile de adăugare = nu pot fi incluse noi informaţii
necesare într-o tabelă deoarece nu se cunosc şi alte
informaţii utile;

 Anomalia de modificare = este dificil de modificat o


valoare a unui atribut atunci când ea apare în mai multe
tupluri.
TEHNICA NORMALIZĂRII
FORMA NORMALĂ UNU (FN1)

 BDR se află în FN1 dacă toate relaţiile componente


sunt în FN1.

 O relaţie este în FN1 dacă valorile asociate atributelor


se află la nivel elementar (atomic) şi dacă nu există
atribute generatoare de valori repetitive.

10
TEHNICA NORMALIZĂRII
ADUCEREA RELAŢIILOR ÎN FN1

Presupune eliminarea atributelor compuse şi a celor repetitive, astfel:


a) se trec în relaţie în locul atributelor compuse componentele acestora, ca
atribute simple;

b) se plasează grupurile de atribute repetitive, fiecare în câte o nouă relaţie;

c) se introduce în schema fiecărei noi relaţii create la pasul b) cheia primară a


relaţiei din care a fost extras grupul repetitiv respectiv;

d) se stabileşte cheia primară a fiecărei relaţii create în pasul b). Aceasta va fi


compusă din atributele adăugate la relaţie în pasul c), precum şi din unul
sau mai multe atribute proprii relaţiei respective.

11
TEHNICA NORMALIZĂRII
ADUCEREA RELAŢIILOR ÎN FN1

R
Marca Nume_angajat Adresa Prenume_copil Datanaştere_copil

Relaţia R are un atribut


P C
compus, denumit Adresa
(având componentele strada, Marca Nume_ Strada Loc Cod Prenume Datanastere_ Marca
localitate, cod) şi un grup de angajat _copil copil
atribute repetitive, format din
atributele Prenume_copil şi
Datanaştere_copil

12
TEHNICA NORMALIZĂRII
FORMA NORMALĂ DOI (FN2)

 BDR se află în FN2 dacă toate relaţiile componente sunt


în FN2.

 O relaţie este în FN2 dacă este în FN1 şi oricare dintre


atributele non-cheie este dependent funcţional complet de
atributele care formează cheia primară a relaţiei.

 FN2 interzice manifestarea unor dependenţe funcţionale


parţiale între atributele non-cheie şi cele care formează
cheia primară a relaţiei.

13
TEHNICA NORMALIZĂRII
ADUCEREA RELAŢIILOR ÎN FN2

• Presupune eliminarea dependenţelor funcţionale parţiale, din


cadrul relaţiilor aflate în FN1, astfel:
a) pentru fiecare dependenţă funcţională parţială din cadrul relaţiei se
creează o nouă relaţie, cu schema constituită din determinantul şi
determinatul acestei dependenţe, eliminându-se totodată, din cadrul
relaţiei iniţiale atributul/atributele care formează determinatul
dependenţei;
b) se determină cheia primară a fiecărei noi relaţii creată în pasul a), ca
fiind formată din atributul/atributele care reprezintă determinantul
dependenţei funcţionale parţiale, care a stat la baza constituirii
relaţiei;
c) se analizează relaţiile rezultate la pasul a). Dacă aceste relaţii conţin
dependenţe funcţionale parţiale se reia procesul de aducere în FN2.
Dacă relaţiile nu conţin dependenţe funcţionale parţiale, procesul de
aducere în FN2 a luat sfârşit.
14
TEHNICA NORMALIZĂRII
ADUCEREA RELAŢIILOR ÎN FN2

R
NrComanda CodProdus DenProdus UM Cantitate

În relaţia R se manifestă R1
următoarele dependenţe NrComanda CodProdus Cantitate
funcţionale parţiale:
CodProdus → DenProdus
CodProdus → UM
R2
CodProdus DenProdus UM

15
TEHNICA NORMALIZĂRII
FORMA NORMALĂ TREI (FN3)

 BDR se află în FN3 dacă toate relaţiile componente sunt


în FN3.

 O relaţie este în FN3 dacă este în FN2 şi atributele non-


cheie nu sunt dependente tranzitiv de cheia primară a
relaţiei.

 FN3 interzice manifestarea dependenţelor funcţionale


tranzitive în cadrul relaţiei.

16
TEHNICA NORMALIZĂRII
ADUCEREA RELAŢIILOR ÎN FN3

• Se realizează prin eliminarea dependenţelor funcţionale tranzitive care


se manifestă în cadrul relaţiilor aflate în FN2, astfel:
a) pentru fiecare dependenţă funcţională tranzitivă din cadrul relaţiei
considerate se transferă atributele implicate în dependenţa tranzitivă într-o
nouă relaţie;
b) se determină cheia primară a fiecărei noi relaţii creată în pasul a);
c) se introduc în relaţia iniţială cheile primare determinate în pasul b), în locul
atributelor transferate;
d) se analizează relaţia iniţială. Dacă în cadrul ei se manifestă noi dependenţe
funcţionale tranzitive se reia procesul de aducere în FN3. Dacă nu, procesul
a luat sfârşit.

17
TEHNICA NORMALIZĂRII
ADUCEREA RELAŢIILOR ÎN FN3

R
Marca NumeAng DataAng Salariu CodDep DenDep CodFunctie DenFunctie SalMin SalMax

R1
În cadrul relaţiei R se manifestă
dependenţele funcţionale Marca NumeAng DataAng Salariu CodDep CodFunctie
tranzitive:
CodDep → DenDep
CodFunctie → DenFunctie R2
CodFunctie → SalMin CodDep DenDep
CodFunctie → SalMax

R3
CodFunctie DenFunctie SalMin SalMax

18
TEHNICA NORMALIZĂRII
FORMA NORMALĂ BOYCE-CODD (BCNF)

 BDR se află în BCNF dacă toate relaţiile componente sunt


în BCNF.

 O relaţie este în BCNF dacă dependenţele funcţionale care


se manifestă în cadrul relaţiei conţin în partea stângă (ca
determinant) o cheie candidată.

 BCNF interzice manifestarea dependenţelor ale căror


determinanţi nu sunt candidaţi cheie (dependenţe non-
cheie).

19
TEHNICA NORMALIZĂRII
ADUCEREA RELAŢIILOR ÎN BCNF

 Există trei categorii de dependenţe non-cheie şi anume:


1) dependenţe funcţionale parţiale;
2) dependenţe funcţionale tranzitive;
3) dependenţe non-cheie, altele decât cele din categoriile 1 şi 2.
 Într-o relaţie aflată în FN3 se manifestă numai dependenţele non-cheie
din categoria 3 (cele din categoriile 1 şi 2 au fost eliminate în procesul
aducerii relaţiei în FN3).
 Într-o relaţie aflată în FN2 se pot manifesta dependenţe non-cheie din
categoriile 2 şi 3.
 Într-o relaţie aflată în FN1 pot exista dependenţe non-cheie din toate cele
3 categorii.
 A aduce o relaţie în BCNF înseamnă a elimina toate tipurile de
dependenţe non-cheie care se manifestă în cadrul ei.
20
TEHNICA NORMALIZĂRII
ADUCEREA RELAŢIILOR ÎN BCNF

Procesul de aducere a unei relaţii din FN3 în BCNF se desfăşoară astfel:


a) se analizează relaţia, pentru a se identifica dependenţele non-cheie. Astfel, dacă
relaţia conţine unul sau cel mult două atribute nu pot exista dependenţe non-
cheie, deci relaţia este în BCNF şi procesul a luat sfârşit. Dacă relaţia conţine
mai mult de două atribute, în cadrul ei pot exista dependenţe non-cheie şi se
trece la identificarea lor. Dacă nu există astfel de dependenţe, relaţia este în
BCNF şi procesul a luat sfârşit. Dacă există dependenţe non-cheie se trece la
pasul b);
b) pentru fiecare dependenţă non-cheie X→Y se creează două relaţii, una cu
schema formată din atributele reprezentate prin X şi Y şi cealaltă cu schema
constituită din toate atributele relaţiei iniţiale, mai puţin atributele reprezentate
prin Y. Aceste două relaţii reprezintă descompunerea relaţiei iniţiale în procesul
aducerii ei în BCNF;
c) se reia procesul de aducere în BCNF, pe cele două relaţii obţinute în pasul b).
21
TEHNICA NORMALIZĂRII
ADUCEREA RELAŢIILOR ÎN BCNF

R
IdClient IdTranzactie Valoare ComisionStandard Piata Discount

Presupunem că în cadrul relaţiei R (aflată în FN3) se manifestă următoarea


dependenţă:
Piata → Discount, dependenţă non-cheie (Piata nu este o cheie candidată)
Prin aplicarea procedurii de aducere în BCNF se obţin relaţiile:

R1
IdClient IdTranzactie Valoare ComisionStandard Piata

R2
Piata TipClient Discount

22
TEHNICA NORMALIZĂRII
FORMA NORMALĂ PATRU (FN4)

 BDR se află în FN4 dacă toate relaţiile componente sunt


în FN4.

 O relaţie este în FN4 dacă în această relaţie nu se


manifestă mai mult de o dependenţă multivaloare.

23
TEHNICA NORMALIZĂRII
ADUCEREA RELAŢIILOR ÎN FN4

• Presupune eliminarea dependenţelor multivaloare, atunci când


sunt mai mult de una în cadrul unei relaţii:

a) se identifică dependenţele multivaloare X → → Y din cadrul relaţiei


considerate;

b) se izolează fiecare atribut multivaloare Y, împreună cu atributele


care depind funcţional de acesta într-o relaţie separată.

24
TEHNICA NORMALIZĂRII
ADUCEREA RELAŢIILOR ÎN FN4

R
Curs Profesor ReferintaBibliografica

R1
Curs Profesor
În cadrul relaţiei R se manifestă
următoarele dependenţe
multivaloare:
Curs →→ Profesor R2
Curs →→ ReferintaBibliografica Curs ReferintaBibliografica

25
TEHNICA NORMALIZĂRII
FORMA NORMALĂ CINCI (FN5)

 BDR se află în FN5 dacă toate relaţiile componente


sunt în FN5.

 O relaţie este în FN5 dacă fiecare dependenţă joncţiune


este generată printr-un candidat cheie al relaţiei.

26
TEHNICA NORMALIZĂRII
OPTIMIZAREA SCHEMEI CONCEPTUALE A BDR

Etapele procesului de optimizare


27
a schemei conceptuale a BDR
• 
• Data depends on the key, the whole key and nothing but the key...
• So help me Codd!

FN1
FN2 FN3

28
TEHNICA NORMALIZĂRII
DETERMINAREA FORMEI NORMALE LA CARE TREBUIE ADUSE
RELAŢIILE DIN BDR

• În determinarea formei normale la care trebuie aduse relaţiile


din BDR se vor avea în vedere:

 ponderea operaţiilor de interogare şi a celor de actualizare


în lucrul cu baze de date relaţionale;

 exigenţele de performanţă şi flexibilitatea impuse de


utilizatorii finali la interogarea, respectiv la actualizarea
bazei de date relaţionale.

29
STUDIU DE CAZ

• O societate comercială doreşte să-şi informatizeze activitatea de aprovizionare cu mărfuri de la


furnizori.
• Furnizorii societăţii, se identifică printr-un cod unic, nume, adresa, telefon şi cont bancar.
• Aprovizionarea cu mărfuri se realizează în baza facturilor primite de la furnizori, fiecare Factură
identificându-se printr-un număr unic, dată factură, data scadenţei, codul, denumirea, contul
bancar al furnizorului, codul, denumirea, unitatea de măsură, cantitatea şi preţul mărfurilor
facturate, valoarea acestora şi valoarea totală a facturii.
• Nomenclatorul mărfurilor include cod marfă, denumire marfă, unitatea de măsură şi
caracteristici tehnice.
• Plata facturii se realizează printr-o Chitanţă, conform facturii emise, în care se precizează
numărul chitanţei, data chitanţei, suma plătită,, denumirea şi contul furnizorului. Societatea
plăteşte cu un astfel de document o singură factură.

30
STUDIU DE CAZ
• Schema iniţială a relaţiei Aprovizionare
• (CodFz, NumeFz, Adresa, ContBancar, Telefon, NrFact, DataFact, DataScad, Cantitate,
Pret, CodMarfa, DenMarfa, UM, Caracteristici, NrChit, DataChit, SumaPlata)

• FN1?

• Atribute compuse
• Adresa: CodPostal, Strada, Localitate
• Caracteristici: Culoare, Material, Dimensiuni

• Schema Aprovizionare devine:


• (CodFz, NumeFz, CodPostal, Strada, Localitate, ContBancar, Telefon, NrFact, DataFact,
DataScad, Cantitate, Pret, CodMarfa, DenMarfa, UM, Culoare, Material, Dimensiuni,
NrChit, DataChit, SumaPlata)

31
STUDIU DE CAZ
• Schema Aprovizionare devine:
• (CodFz, NumeFz, CodPostal, Strada, Localitate, ContBancar, Telefon, NrFact, DataFact, DataScad,
Cantitate, Pret, CodMarfa, DenMarfa, UM, Culoare, Material, Dimensiuni, NrChit, DataChit,
SumaPlata)

• FN1?

• Atribute repetitive
• Un furnizor încheie mai multe facturi => Grup repetitiv (NrFact, DataFact, DataScad, Cantitate, Pret,
CodMarfa, DenMarfa, UM, Culoare, Material, Dimensiuni, NrChit, DataChit, SumaPlata)

• Obţinem BD în FN1:
• Furnizori (CodFz, NumeFz, CodPostal, Strada, Localitate, ContBancar, Telefon)
• Facturi (NrFact, CodFz, DataFact, DataScad, Cantitate, Pret, CodMarfa, DenMarfa, UM, Culoare,
Material, Dimensiuni, NrChit, DataChit, SumaPlata)

32
STUDIU DE CAZ
• Furnizori (CodFz, NumeFz, CodPostal, Strada, Localitate, ContBancar, Telefon)
• Facturi (NrFact, CodFz, DataFact, DataScad, Cantitate, Pret, CodMarfa, DenMarfa,
UM, Culoare, Material, Dimensiuni, NrChit, DataChit, SumaPlata)

• FN2?
CodFz  NumeFz
CodFz  CodPostal
CodFz  Strada
CodFz  Localitate
CodFz  ContBancar
CodFz  Telefon

=> Tabela Furnizori este în FN2

33
STUDIU DE CAZ
• Furnizori (CodFz, NumeFz, CodPostal, Strada, Localitate, ContBancar, Telefon)
• Facturi (NrFact, CodFz, DataFact, DataScad, Cantitate, Pret, CodMarfa, DenMarfa, UM, Culoare,
Material, Dimensiuni, NrChit, DataChit, SumaPlata)

• FN2?

• Cheie primară Facturi: (NrFact, CodMarfa)

(NrFact, CodMarfa) Cantitate CodMarfa DenMarfa


(NrFact, CodMarfa) Pret CodMarfa  UM
CodMarfa  Culoare
NrFact DataFact CodMarfa  Material
NrFact  DataScad CodMarfa  Dimensiuni
NrFact  CodFz
NrFact  NrChit
34
STUDIU DE CAZ
• Obţinem BD în FN2:
• Furnizori (CodFz, NumeFz, CodPostal, Strada, Localitate, ContBancar, Telefon)
• Facturi (NrFact, CodFz, DataFact, DataScad, NrChit, DataChit, SumaPlata)
• Mărfuri (CodMarfa, DenMarfa, UM, Culoare, Material, Dimensiuni)
• DetaliiAprovizionare (NrFact, CodMarfa, Cantitate, Pret)

• FN3?

Tabelele Furnizori, Mărfuri, DetaliiAprovizionare sunt în FN3


În tabela Facturi se manifestă dependenţele tranzitive:

NrChit DataChit
NrChit SumaPlata

35
STUDIU DE CAZ

• Obţinem BD în FN3:

• Furnizori (CodFz, NumeFz, CodPostal, Strada, Localitate, ContBancar, Telefon)


• Facturi (NrFact, CodFz, DataFact, DataScad)
• Chitanţe (NrChit, DataChit, SumaPlata, NrFact)
• Mărfuri (CodMarfa, DenMarfa, UM, Culoare, Material, Dimensiuni)
• DetaliiAprovizionare (NrFact, CodMarfa, Cantitate, Pret)

36
CURSUL 7...

• Limbaje relaţionale pentru definirea şi manipularea


datelor. Limbajul SQL.
GRILA 1

• Normalizarea relaţiilor din cadrul bazelor de date relaţionale oferă


posibilitatea:

a) eliminării anomaliilor de adăugare de noi tupluri

b) sporirii timpului de răspuns la cererile utilizatorilor

c) eliminării protecţiei datelor

d) regăsirii tuplurilor după mai multe chei secundare

e) eliminării anomaliilor de actualizare a valorilor asociate atributelor tuplurilor


GRILA 2

• O tabelă este în FN4 dacă :

a) este în FN3 şi nu conţine două sau mai multe dependenţe multivaloare

b) este în FN3 şi fiecare atribut noncheie depinde în mod netranzitiv de


cheia tabelei

c) fiecare atribut noncheie al tabelei este independent complet de cheie

d) este în FN3 şi fiecare dependenţă joncţiune este generată printr-un


candidat cheie al tabelei

e) toate atributele sale sunt în FN4


GRILA 3

• O tabelă este în FN2 dacă şi numai dacă este în FN1 şi:


a) fiecare atribut non-cheie al tabelei depinde în mod netranzitiv de cheia primară

b) fiecare atribut non-cheie al tabelei este dependent funcţional complet de cheia


primară

c) nu conţine două sau mai multe dependenţe multi-valoare

d) fiecare dependenţă joncţiune este generată printr-un candidat cheie al tabelei

e) fiecare atribut non-cheie al tabelei este dependent funcţional parţial de cheia


primară
GRILA 4

• Etapa de proiectare a structurii bazei de date presupune:

a) analiza bazei de date

b) proiectarea schemelor conceptuală, internă şi externă ale bazei


de date

c) proiectarea schemei conceptuale şi încărcarea datelor

d) alegerea SGBD şi exploatarea bazei de date

e) încărcarea datelor şi mentenanţa

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