Capitolul II Structurarea bazelor de date
Capitolul II Structurarea bazelor de date
Capitolul II Structurarea bazelor de date
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
34<br />
d. Într-un tabel nu se admit grupuri <strong>de</strong> informaŃii care se repetă. În<br />
exemplul dat Editura şi Locul formează un grup care probabil se repetă<br />
pentru toate cărŃile provenind <strong>de</strong> la aceeaşi editură.<br />
2. A doua formă normală<br />
A doua formă normală se referă la tabelele care au o cheie compusă din<br />
valorile mai multor câmpuri. Astfel, în exemplul dat dacă <strong>date</strong>le editurii sunt<br />
păstrate într-un tabel separat având structura:<br />
NumeEd Oras Adresa NumeScurt Telefon<br />
atunci adăugarea unui nou sediu pentru o editură va face ca valoarea din coloana<br />
"NumeScurt" să apară repetat, <strong>de</strong>oarece ea nu <strong>de</strong>pin<strong>de</strong> <strong>de</strong> sediul editurii ci <strong>de</strong><br />
numele acesteia. Pentru a satisface cerinŃele celei <strong>de</strong>-a doua forme normale,<br />
coloanele unui tabel trebuie să <strong>de</strong>pindă direct <strong>de</strong> toate câmpurile care formează o<br />
cheie primară compusă.<br />
3. A treia formă normală<br />
A treia formă normală rezolvă anomalia care apare în cazul în care într-un<br />
tabel există una sau mai multe coloane ale căror valori nu <strong>de</strong>pind direct <strong>de</strong><br />
valoarea cheii primare. În exemplul dat, să presupunem că în tabelul în care<br />
sunt înregistrate cărŃile există o coloană care conŃine numele furnizorului (firma<br />
prin care s-a achiziŃionat cartea). Cu siguranŃă că prin acelaşi furnizor s-au<br />
achiziŃionat şi alte cărŃi, <strong>de</strong>ci numele acestuia va apărea pe mai multe linii<br />
<strong>de</strong>oarece furnizorul nu <strong>de</strong>pin<strong>de</strong> direct <strong>de</strong> carte. Coloanele unui tabel care<br />
satisface a treia formă normală conŃin informaŃii care <strong>de</strong>pind direct <strong>de</strong> cheia<br />
primară.<br />
RelaŃii între tabelele unei baze <strong>de</strong> <strong>date</strong><br />
Pentru a satisface cerinŃele impuse <strong>de</strong> cele 3 forme normale prezentate,<br />
informaŃiile sunt <strong>de</strong> regulă păstrate într-un ansamblu <strong>de</strong> tabele între care există<br />
relaŃii <strong>de</strong> diferite tipuri.<br />
1. RelaŃii 1 la mai mulŃi (1 la n, one to many)<br />
Dacă în exemplul consi<strong>de</strong>rat <strong>date</strong>le privind o editură sunt păstrate într-un<br />
fişier iar cărŃile sunt înregistrate în alt fişier, între cele două tabele se stabileşte o<br />
<strong>de</strong>pen<strong>de</strong>nŃă <strong>de</strong> tip "unul la mai mulŃi".