Sobes.tech
Middle

Ce știi despre formele normale în bazele de date?

sobes.tech AI

Răspuns de la AI

Formele normale (FN) sunt un set de reguli și recomandări pentru proiectarea structurii unei baze de date relaționale, vizând minimizarea redundanței datelor și prevenirea anomaliilor la inserare, actualizare și ștergere.

Formele normale principale:

  • Prima formă normală (1NF):

    • Fiecare atribut (coloană) trebuie să conțină valori atomice (indivizibile).
    • Lipsa grupurilor repetate de atribute.
    • Fiecare rând trebuie să fie unic (există o cheie primară).
  • A doua formă normală (2NF):

    • Este în 1NF.
    • Fiecare atribut non-cheie trebuie să depindă complet de întreaga cheie primară (dacă cheia primară este compusă).
  • A treia formă normală (3NF):

    • Este în 2NF.
    • Lipsa dependențelor tranzitive ale atributelor non-cheie de la cheia primară (un atribut non-cheie nu trebuie să depindă de alt atribut non-cheie).
  • Forma Boyce-Codd (BCNF):

    • Versiune mai strictă a 3NF.
    • Fiecare dependență $X \to Y$ non-trivială trebuie să aibă $X$ ca supercheie.
  • A patra formă normală (4NF):

    • Este în BCNF.
    • Lipsa dependențelor multivaluate.
  • A cincea formă normală (5NF):

    • Este în 4NF.
    • Lipsa dependențelor de tip join.

Obiectivele normalizării:

  • Reducerea redundanței datelor.
  • Prevenirea anomaliilor (inserare, actualizare, ștergere).
  • Asigurarea integrității datelor.
  • Simplificarea structurii bazei de date.

Exemplu:

Tabel cu redundanță (nu în 1NF):

OrderID Produs Preț
1 Laptop, Mouse 1000, 20
2 Tastatură 50

Tabel normalizat (în 1NF și superioare):

Tabelul "Comenzi":

OrderID
1
2

Tabelul "Linii de comandă":

LinieID OrderID Produs Preț
1 1 Laptop 1000
2 1 Mouse 20
3 2 Tastatură 50

Normalizarea este un pas important în proiectare, dar normalizarea excesivă poate duce la creșterea numărului de join-uri în interogări, ceea ce poate afecta negativ performanța. Alegerea nivelului optim de normalizare depinde de cerințele specifice și de compromisuri. Uneori, denormalizarea este utilizată pentru a optimiza performanța în anumite scenarii, încălcând conștient regulile formelor normale.