CATEGORII DOCUMENTE |
Normalizarea
Normalizarea are ca obiectiv:
ð sa elimine redundantele
ð sa elimine anomaliile din actualizarea bazei de date
Exemplu: Fie entitatea "CAMINE" definita sa retina modul de repartizare a studentilor in cadrul caminelor.
STUDENT |
CAMIN |
TAXA |
Popescu Ioan |
Moxa1 | |
Ionescu Adrian |
Moxa2 | |
Popa Ion |
Moxa2 | |
Andronic Dan |
Agronomie |
Redundanta are rolul sa reduca toate repetarile (nu spre exclusivitate).
Problemele privind eliminarea redundantelor si a anomaliilor manifestate in procesul actualizarii bazei de date se realizeaza prin formele normale care au fost elaborate o data cu modul relational de catre americanii Boyce-Codd. Formele de normalizare (FN) se prezinta astfel:
FN1 - Forma normala 1
Se caracterizeaza prin:
toate atributele sale sunt elementare si nerepetitive
FN2 - Forma normala 2
O entitate este in forma normala 2 daca:
respecta cerintele FN1
toate atributele nonidentificator sunt dependente de intregul identificator
In situatia in care entitatea analizata prezinta un identificator (cheie primara) care este format dintr-un singur atribut, atunci entitatea este considerata direct in FN2.
Exemplu:
|
Nr.lucrare |
Nr.ore |
Nume_anagajat |
Den_lucrarii |
Obiectiv_constr |
![]() |
|||
![]() |
|
Nr.lucrare |
Nr.ore |
![]() |
Nr.lucrare |
Den_lucrarii |
Obiectiv_constr |
![]() |
|
Nume_anagajat |
FN3 - Forma normala 3
O entitate este in FN3 daca:
respecta cerintele FN2
orice atribut nonidentificator nu are dependente tranzitive fata de identificatori
[daca XàY si YàZ atunci XàZ
Cod_clientàLocalitate si LocalitateàJudet atunci Cod_clientàJudet]
Exemplu:
Marca |
Nume |
Data_nasterii |
Adresa |
Cod_loc_munca |
Den_loc_munca |
![]() |
|||
![]() |
|
Nume |
Data_nasterii |
Adresa |
Cod_loc_munca |
![]() |
Cod_loc_munca |
Den_loc_munca |
![]() |
![]() |
FNBC - Forma normala Boyce-Codd
O entitate este in FNBC daca:
respecte cerintele FN3
nici un atribut ce compune identificatorul nu depinde functional de un alt atribut
O entitate este in FN4 daca:
respecta cerintele FNBC
nu prezinta dependente multivaloare (Sectiaà>Atelier)
Normalizarea entitatilor are drept scop eliminarea redundantelor si a anomaliilor de actualizare. Deoarece, prin cele mentionate anterior, se elimina o parte dintre cazurile de nerespectare a conditiilor de normalizare (exisntenta unui identificator, eliminarea atributelor repetitive sau compuse) este necesar sa se asigure o atentie deosebita urmatoarelor situatii:
ì existenta de dependente tranzitive intre atribute
ì existenta de dependente functionale partiale intre atributele neidentificatoare si identificatori, atunci cand acesta este compus din mai multe atribute
Exmplu:
Dependentele functionale tranzitive existente intre atributele entitatii UTILAJE conduc la descompunerea entitatii in doua tipuri (UTILAJ si CATEG_UTILAJ) si la introducerea asocierii corespunzatoare dintre cele doua entitati, denumita APARTINE.
![]() |
Analizand continutul acestei entitati vom constata urmatoarele dependente functionale:
Nr.inventaràTipul_utilajului,Valoare_de_intrare,Durata_de_functionare,Putere_nominala
Tipul_utilajului à Durata_de_functionare, Putere_nominala
Situatia este similara cu normalizarea entitatilor cu observatia ca pentru asocieri nu exista identificatori proprii. Rolul acestora este indeplinit de identificatorii entitatilor participante.
Exemplu:
Existenta entitatilor INTERVENTIE si UTILAJ presupune o asociere denumita REPARATIE care are ca atribute proprii: "Durata_normata" si "Durata_efectiva"
in aceste conditii asocierea "REPAERATIE" este identificata prin identificatorii "Nr.operatie_interventie" si "Nr.inventar" specifice celor doua entitati enuntate
atributul "Durata_normata" din cadrul asocierii REPARTITIE depinde insa functional de o parte a cheii/identificatorului "Nr.operatie_interventie" din cadrul entitatii INTERVENTIE, incalcandu-se astfel conditiile de normnalizare
Solutia corecta consta in plasarea acestui atribut ("Durata_normata") in entitatea INTERVENTIE
![]() |
Nr.operatie_interventie à Durata_normata
![]() |
Descompunerea asocierilor
Este o solutie practica ce presupune descompunerea asocierilor de grad mai mare ca 2 in mai multe asocieri de grad mai mic. Aceasta descompunere se bazeaza pe dependentele functionale si este posibila numai in anumite conditii:
p exista cel putin o dependenta functionala intre roluri
p exista un rol cu cardinalitatea 0,1 sau 1,1 (care exprima o dependenta functionala) iar toate celelalte cardinalitati fiind 0,n sau 1,n
Aceste dependente functionale pot permite descompunerea in doua asocieri dintre care:
ð una va exprima raportul dintre determinant si determinat
ð iar cea de-a doua va prelua restul asocierii initiale
Exemplu:
Pentru fabricarea unui produs se folosesc mai multe operatii efectuate de catre muncitori la mai multe echipamente. In aceste conditii exista o dependente functionala intre roluri, deoarece fiecare echipament se afla in exploatarea unui anumit muncitor.
![]() |
![]() |
|
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 1818
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2025 . All rights reserved