Sobes.tech
Junior

Ce este normalizarea într-o bază de date?

sobes.tech AI

Răspuns de la AI

Normalizarea bazei de date este procesul de organizare a datelor într-o bază de date relațională cu scopul de a reduce redundanța (duplicarea datelor) și de a îmbunătăți integritatea datelor. Acest lucru se realizează prin împărțirea tabelelor mari în tabele mai mici și definirea relațiilor dintre ele.

Scopul principal al normalizării:

  • Reducerea redundanței datelor: Evitarea repetării aceleiași informații în diferite locuri.
  • Îmbunătățirea integrității datelor: Asigurarea acurateței și coerenței datelor.
  • Oferirea de flexibilitate: Simplificarea modificărilor și extinderilor structurii bazei de date.

Normalizarea este definită printr-un set de reguli numite forme normale. Cele mai comune trei forme normale sunt:

  1. Prima formă normală (1NF):

    • Fiecare coloană a tabelului trebuie să conțină valori atomice (indivizibile).
    • Nu trebuie să existe grupuri repetitive de coloane.
    • Fiecare rând trebuie să fie unic (prin cheia primară).
  2. A doua formă normală (2NF):

    • Tabelul este în 1NF.
    • Toți atributii non-cheie depind complet de cheia primară (dacă este compusă). Nu trebuie să existe dependențe parțiale.
  3. A treia formă normală (3NF):

    • Tabelul este în 2NF.
    • Nu există dependențe tranzitive. Atributii non-cheie nu depind de alți atributii non-cheie.

Există și forme normale mai înalte (BCNF, 4NF, 5NF, 6NF), dar în general se consideră că 3NF este suficientă pentru majoritatea scopurilor practice.

Exemplu (simplificat):

Tabelul neormalizat de comenzi ale clientului:

ID Comandă Nume Client Adresă Client Produse Cantitate Preț pe unitate
101 Ivan Moscova Laptop 1 50000
101 Ivan Moscova Mouse 2 1000
102 Maria Sankt Petersburg Tastatură 1 3000

După normalizare (de exemplu, până la 3NF):

Tabelul Comenzi:

ID Comandă ID Client Data Comenzii
101 1 2023-10-26
102 2 2023-10-26

Tabelul Clienți:

ID Client Nume Client Adresă Client
1 Ivan Moscova
2 Maria Sankt Petersburg

Tabelul Detalii Comandă:

ID Detaliu Comandă ID Comandă ID Produs Cantitate Preț pe unitate
1 101 10 1 50000
2 101 20 2 1000
3 102 30 1 3000

Tabelul Produse:

ID Produs Nume Produs
10 Laptop
20 Mouse
30 Tastatură

Denormalizarea este procesul invers al normalizării, uneori utilizat pentru a optimiza performanța citirii datelor, în detrimentul creșterii redundanței.