Sobes.tech
Middle

Ce este normalizarea?

sobes.tech AI

Răspuns de la AI

Normalizarea datelor în contextul bazelor de date este procesul de organizare a datelor pentru reducerea redundanței și îmbunătățirea integrității datelor. Se realizează prin împărțirea tabelelor mari în tabele mai mici și legarea lor prin relații.

Obiectiv principal:

  • Eliminarea duplicării datelor.
  • Îmbunătățirea integrității datelor (prevenirea anomaliilor la inserare, actualizare și ștergere).
  • Creșterea eficienței stocării și a interogărilor (în unele cazuri).

Procesul de normalizare se bazează pe principiile formelor normale (FN). Cele mai comune sunt:

  • Prima formă normală (1FN): Atomicitatea datelor în celule, absența grupurilor repetitive de coloane.
  • A doua formă normală (2FN): Este în 1FN și fiecare atribut non-cheie depinde complet de toate cheile primare.
  • A treia formă normală (3FN): Este în 2FN și nu există dependențe funcționale tranzitive ale atributelor non-cheie de la cheia primară prin alte atribute non-cheie.

Exemplu:

Tabelul original "Comenzi_Produse":

ID Comandă Data Comandă ID Produs Nume Produs Preț Produs Cantitate Nume Client Adresă Client
1 2023-10-27 101 Telefon 500 1 Ivan Pétrov Str. Pushkina, 10
1 2023-10-27 102 Căști 100 2 Ivan Pétrov Str. Pushkina, 10
2 2023-10-27 101 Telefon 500 1 Maria Ivanova Str. Lermontova, 5

După normalizare (până la 3FN):

"Comenzi" tabel:

ID Comandă Data Comandă ID Client
1 2023-10-27 1
2 2023-10-27 2

"Linii Comandă" tabel:

ID Linie ID Comandă ID Produs Cantitate
1 1 101 1
2 1 102 2
3 2 101 1

"Produse" tabel:

ID Produs Nume Produs Preț Produs
101 Telefon 500
102 Căști 100

"Clienți" tabel:

ID Client Nume Client Adresă Client
1 Ivan Pétrov Str. Pushkina, 10
2 Maria Ivanova Str. Lermontova, 5

Totuși, o normalizare excesivă poate duce la creșterea numărului de join-uri (JOIN) în timpul interogărilor, ceea ce poate reduce performanța. Prin urmare, în proiectarea bazelor de date, se caută adesea un echilibru între gradul de normalizare și performanță. Denormalizarea este procesul de încălcare intenționată a formelor normale pentru a îmbunătăți performanța, de obicei prin adăugarea de redundanță.