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ță.