InfoBook.ro ← Harta anului
Modul 03 · Forme normale — FN1, FN2, FN3
Modul 03 · Conținut 2.1 · strategii

Tabelul bolnav, vindecat în 3 pași

Un tabel prost proiectat repetă datele și creează contradicții. Normalizarea îl împarte în tabele mici, curate, în trei etape (FN1 → FN2 → FN3), fiecare eliminând un tip de problemă.

🎯 Obiectiv 1Recunoști anomaliile de inserare, ștergere, actualizare.
🎯 Obiectiv 2Aplici FN1 (atomicitate), FN2 (toată cheia), FN3 (fără tranzitive).
🎯 Obiectiv 3Descompui un tabel de gestiune în tabele sănătoase.
1

De ce normalizăm — cele trei anomalii

Când toate datele stau într-un singur tabel gras, aceleași informații se repetă. De aici, trei feluri de necazuri.

🔴 Actualizare

Orașul Anei apare pe 20 de rânduri. Se mută în alt oraș → trebuie schimbat în toate; ratezi unul → date contradictorii.

🟠 Inserare

Vrei să adaugi un produs nou care n-a fost încă comandat — dar nu poți, fiindcă n-ai id_comanda. Datele „se blochează".

🟡 Ștergere

Ștergi ultima comandă a unui client și, fără să vrei, pierzi și adresa lui — era ținută doar acolo.

Soluția: fiecare fapt se stochează O SINGURĂ DATĂ, într-un singur loc. Normalizarea e procedura care ajunge acolo — pas cu pas.
2

Normalizatorul pas-cu-pas

Pornim de la un tabel de comenzi „nenormalizat" și îl aducem, pe rând, la FN1, FN2, FN3. Apasă butoanele și urmărește cum se sparge.

3

Cele trei reguli, pe scurt

Fiecare formă normală o presupune pe cea dinainte.

FN1 · atomicitate

Valori atomice

Fiecare celulă conține o SINGURĂ valoare — fără liste, fără grupuri care se repetă. Un rând per produs, nu mai multe produse într-o celulă.

FN2 · toată cheia

Dependență de TOATĂ cheia

Se aplică la chei compuse: fiecare atribut non-cheie trebuie să depindă de cheia ÎNTREAGĂ, nu doar de o parte a ei. (prețul depinde de produs, nu de comandă.)

FN3 · fără tranzitive

Fără dependențe tranzitive

Niciun atribut non-cheie nu depinde de alt atribut non-cheie. (orașul depinde de client, nu de id_comanda → se mută.)

Mnemonica de BAC: „cheia, toată cheia și nimic în afară de cheie". FN1 = valori atomice · FN2 = toată cheia · FN3 = nimic în afară de cheie (fără intermediari non-cheie).
4

Verificare rapidă

Șase întrebări despre normalizare.

5

Fișa de sinteză

Formele normale, condensat.

De ce: eliminăm redundanța → dispar anomaliile de inserare, ștergere, actualizare.
FN1: valori atomice, fără grupuri repetate — un rând per valoare.
FN2: (la cheie compusă) fiecare non-cheie depinde de TOATĂ cheia, nu de o parte.
FN3: niciun non-cheie nu depinde de alt non-cheie (fără dependențe tranzitive).
Rezultat: mai multe tabele mici, legate prin chei externe (Modul 04).
Mnemonică: „cheia, toată cheia și nimic în afară de cheie".
← anteriorModul 02 · Relații & ERD urmează →Modul 04 · Model fizic & mapare