Normalizarea relațiilor într-o bază de date

Previzualizare ghid de studiu:

Extras din ghid de studiu:

4 NORMALIZAREA RELATIILOR

4.1 Scopul normalizarii

La proiectarea unei BD relationale, principalul obiectiv in realizarea unui model logic este crearea unei reprezentari corecte a datelor, relatiilor dintre ele si a constrangerilor. Pentru atingerea acestui obiectiv, trebuie identificat un set adecvat de relatii. Normalizarea reprezinta o tratare de jos in sus a proiectarii bazelor de date, care incepe prin examinarea relatiilor dintre atribute. Totusi, de multe ori metodologia de proiectare abordeaza o tratare de sus in jos a BD (care incepe prin identificarea principalelor entitati si relatii), caz in care normalizarea este folosita ca tehnica de validare.

Unul din principalele scopuri urmarite la proiectarea BD relationale, este gruparea atributelor in relatii in asa fel incat sa se minimizeze redundanta datelor si prin aceasta sa se reduca spatiul de stocare necesar relatiilor de baza implementate. Problemele asociate redundantei datelor le vom ilustra printr-un exemplu.

Procesul de normalizare este o metoda formala, care identifica relatiile bazandu-se pe cheile primare ale acestora si pe dependentele functionale dintre atributele lor. Normalizarea ajuta proiectantii de BD, prin prezentarea unei serii de teste care pot fi aplicate relatiilor individuale, pentru a preveni aparitia anomaliilor de reactualizare.

Exemplu: sa analizam urmatoarele alternative de relatii:

Personal (PersID, NumeP, AdresaP, Functie, Salariu, FilialaID)

si

Filiala (FilialaID, AdresaF, TelF)

fata de

PersonalFiliala (PersID, NumeP, AdresaP, Functie, Salariu, FilialaID, AdresaF, TelF)

In relatia PersonalFiliala exista date redundante: detaliile referitoare la filiala sunt repetate pentru fiecare membru al personalului aflat la filiala respectiva. Relatiile care contin date redundante pot crea probleme, denumite anomalii de reactualizare.

Anomaliile de reactualizare se clasifica in:

o anomalii de inserare care pot fi de doua tipuri:

- anomalii privind identitatea datelor redundante: de ex, pentru inserarea noilor membri ai personalului, trebuie incluse detalii despre filiala la care vor lucra, detalii care trebuie sa coincida cu valorile aflate pe celelalte randuri ale relatiei, altfel provocam o incoerenta a BD.

- anomalii privind necesitatea introducerii de randuri cu null pentru cheia primara: de ex, pentru a insera o noua filiala, care nu are nici un personal, este necesara introducerea de null-uri pentru atributele personalului; dar PersID este cheie primara si nu e permis null-ul (deoarece se violeaza integritatea entitatilor)

o anomalii de stergere: stergerea anumitor inregistrari duce la pierderea unor detalii care nu sunt stocate in alta parte: daca se sterge ultimul membru al personalului de la o filiala, se pierd detaliile despre filiala

o anomalii de modificare: necesiatatea modificarii unei date redundante, presupune modificarea ei in toate inregistrarile in care ea apare: daca trebuie modificat unul din atributele unei filiale, este necesara reactualizarea randurilor corespunzatoare pentru toti membrii personalului de la filiala respectiva, altfel BD devine incoerenta.

Aceasta analiza arata ca relatiile Personal si Filiala au o structura mai buna decat PersonalFiliala. Procesul de normalizare furnizeaza o tehnica de proiectare a unor relatii mai bine structurate.

4.2 Dependente functionale

Dependentele functionale sunt concepte fundamentale in procesul de normalizare.

Cand exista o dependenta functionala, ea este specificata ca o constrangere intre atribute. Atributul din stanga sagetii se numeste determinant.

Dependenta functionala descrie legaturile dintre atributele unei relatii: fie A si B doua atribute ale relatiei R; atributul B este dependent functional de A (notat A->B) daca fiecarei valori a atributului A ii corespunde o singura valoare a atributului B. A si B pot fi simple sau compuse.

Exemplu: sa consideram atributele PersID si Salariu din relatia Personal

Personal (PersID, NumeP, AdresaP, Functie, Salariu, FilialaID)

PersID -> Salariu deci un membru al personalului are un singur salariu

Salariu x-> PersID un salariu nu determina un singur membru al personalului

Exemplu: Sa identificam dependentele functionale din relatia PersonalFiliala

PersonalFiliala (PersID, NumeP, AdresaP, Functie, Salariu, FilialaID, AdresaF, TelF)

PersID -> NumeP

PersID -> AdresaP

PersID -> Functie

PersID -> Salariu

PersID -> FilialaID

PersID -> AdresaF

PersID -> TelF

FilialaID-> AdresaF

FilialaID-> TelF

AdresaF-> FilialaID

AdresaF-> TelF

TelF-> FilialaID

TelF-> AdresaF

In aceasta relatie sunt 13 dependente functionale cu PersID, FilialaID, AdresaF si TelF ca determinanti. Un format alternativ de afisare a acestor dependente este:

PersID -> NumeP, AdresaP, Functie, Salariu, FilialaID, AdresaF, TelF

FilialaID -> AdresaF, TelF

AdresaF -> FilialaID, TelF

TelF -> FilialaID, AdresaF

Descarcă ghid de studiu

Pentru a descărca acest document,
trebuie să te autentifici in contul tău.

Structură de fișiere:
  • Normalizarea relatiilor intr-o baza de date.pdf
Alte informații:
Tipuri fișiere:
pdf
Diacritice:
Da
Nota:
7/10 (1 voturi)
Nr fișiere:
1 fisier
Pagini (total):
11 pagini
Imagini extrase:
11 imagini
Nr cuvinte:
3 963 cuvinte
Nr caractere:
22 819 caractere
Marime:
314.45KB (arhivat)
Publicat de:
Narcis Bogdan
Nivel studiu:
Facultate
Tip document:
Ghid de studiu
Domeniu:
Limbi Străine
Tag-uri:
baza de date, relatie, nominalizare
Predat:
Facultatea de Administrarea Afacerilor , Academia de Studii Economice din Bucuresti
Specializare:
Administrarea afacerilor - cu predare in limbi straine
Materie:
Limbi Străine
An de studiu:
I
Sus!