Professional Documents
Culture Documents
O bază de date bine proiectată nu permite ca datele să fie redundante, adică aceeaşi
informaţie să se găsească în locuri diferite. De asemenea nu se memorează informaţii care
se pot deduce din alte informaţii retinute în baza de date.
In 1970 – 1971 Edgar Codd a definit primele trei forme normale 1NF, 2NF şi 3NF.
Ulterior s-au mai definit formele normale 4NF, 5NF, 6NF care însă sunt rar folosite în
proiectarea bazelor de date.
adresa este de forma "str. Florilor, bl. 45, sc. A, ap. 28, etaj 3, Braşov, cod 123123", formă
care de fapt conţine mai multe informaţii elementare. Aşadar, în mod normal acest atribut
ar trebui "spart" în mai multe atribute ca în fig din dreapta.
Exemple:
1) Clădirea şcolii( # cod, * nume, * adresa, o sala de clasa) => entitatea Sala_de_clasa
(#numar, *etaj, *suprafata)
2) Client (# codc, * nume, * prenume, o evenimet) => entitatea Eveniment
(#id_eveniment, *nume)
Conceptul de BDR
Proiectarea de BDR
Algebra si calculul relational
Conceptul de BDR
BDR implementeaza modelul de date relational. Au aparut odata cu cele 12 reguli ale lui
CODD, in 1970.
Domeniul – toate datele din BDR au precizate un domeniu de valori care se poate defini
explicit sau implicit.
Ex: D1*D2*D3*….*Dn
Atributul reprezinta coloana unei tabele caracterizata printr-un nume. Unui atribut i se
asociaza un domeniu de valori.
Schema unei relatii – se reprezinta colectia de date fie precizand atributele si domeniile
asociate sub forma:
R(A1:D1;A2:D2;…..)
Operatorii modelului sunt bazati pe operatori din algebra relationala si calcul relational
(vezi curs viitor).
Structurale
De comportament
Proiectarea de BDR
Tehnica normalizarii s-a impus ca principala modalitate de proiectare a unei BDR si se
utilizeaza in principal pentru a elimina o serie de situatii (anomalii) in care datele sunt
preluate necorespunzator. Aceste anomalii pot fi:
De adaugare
De modificare
De stergere
Anomaliile de adaugare apar atunci cand nu se pot adauga valori noi in tabele pentru ca
nu se cunosc toate informatiile utile pentru legatura cu alte tabele
Anomaliile de modificare apar cand datele au o redundanta foarte mare si apar in mai
multe tupluri sau chiar in mai multe tabele.
Anomaliile de stergere apar cand se sterg si alte informatii pe langa cele dorite.
DEF1: o tabela este intr-o forma normala i (FNi) daca este in forma normala i-1 (FNi-
1) si respecta cerintele formei normale i.
DEF2: o baza de date este in forma normala i (FNi) (i=1,2,3,4,5) daca toate tabelele
sale sunt in Fni.
Exista 5 FN, plus o forma normala modificata, numita BCNF(Boyce – Codd – Normal –
Form)
FN1
O tabela este in FN1 daca toate atributele sale contin valori elementare si fiecare tuplu nu
are date la nivel de grup sau valori repetitive.
O tabela in FN1 are inc ao serie de anomalii de actualizare, datorita unor dependente
functionale incomplete.
Ex:
cod client,
denumire,
adresa (localitate, strada, cod postal),
tip,
identificator.
cantitate,
pret.
cod produs/serviciu,
tip,
categorie,
denumire produs,
um(unitate de masura)
FN2 - o tabela este in forma normala 2 daca este in FN1 si fiecare atribut non-cheie
depinde functional complet de cheia primara.
Avem atributele:
FN3 – o tabela este in forma normala 3 daca este in FN2 si fiecare atribut non-cheie
depinde in mod netranzitiv de cheie.
Tipc cant
Id pret
Codp
Cant si pret depind inca de codp à tabela comenzi nu este in FN3 si se vor crea 2 tabele
(detalii_comanda si comenzi)
BCNF: O tabela e in BCNF daca fiecare atribut determinant este un candidat cheie.
Un atribut determinant este un atribut fata de care celelalte atribute sunt complet
dependente functional.
FN4: o tabela este in FN4 daca este in FN3 si nu exista 2 sau mai multe dependente
multi-valoar.
Intr-o tabela sunt 3 atribute (A,B,C). Exista dependenta multi-valoare daca unui atribut A
ii corespunde o valoare a lui B si mai multe valori ale lui C.
FN5: o tabela este in FN5 daca este in FN4 si fiecare dependenta jonctiune este generata
printr-un candidat cheie al tabelei.
O depedenta jonctiune apare in cazul in care intre atributele (A,B) si (A,C) se mentine o
dependenta multi-valoare.
Top-down
Bottom-up
Algebra relationala
Algebra relationala ofera o serie de operatori care se pot utiliza in interogarea datelor
De baza
Derivati
Reuniunea este operatia care se realizeaza intre 2 multimi prin care se iau inregistrarile
comune si necomune din ambele multimi
From angajati
Union
From clienti
Order by 1;
1=numarul coloanei dupa care dorim sa se faca ordonarea, pentru ca numele coloanelor
sunt diferite in cele 2 tabele.
Union
Union all
Diferenta
Se considera ingeristrarile din relatia R1, care nu sunt si in R2. Operatorul implementat
este MINUS (-).
Ex: Sa se afiseze toate produsele care nu au fost comandate.
Select denumire_produs
From produse
Minus
Select p.denumire_produs
Where p.id_produs=r.id_produs;