Шта је нормализација у бази података?
sobes.tech АИ
Одговор од АИ
Normalizacija baze podataka je proces organizacije podataka u relacijskoj bazi podataka s ciljem smanjenja redundancije (dupliranja podataka) i poboljšanja integriteta podataka. To se postiže deljenjem velikih tabela na manje uz definisanje veza između njih.
Glavni cilj normalizacije:
- Smanjenje redundancije podataka: Izbegavanje ponovnog prikaza iste informacije na različitim mestima.
- Poboljšanje integriteta podataka: Osiguravanje tačnosti i doslednosti podataka.
- Obezbeđivanje fleksibilnosti: Olakšavanje promena i proširenja strukture baze podataka.
Normalizacija se definiše skupom pravila nazvanih normalne forme. Najčešće su prve tri normalne forme:
-
Prva normalna forma (1NF):
- Svaki stupac tabele mora sadržavati atomarne (nedeljive) vrednosti.
- Nema ponovljenih grupa kolona.
- Svaki red mora biti jedinstven (kroz primarni ključ).
-
Druga normalna forma (2NF):
- Tabela je u 1NF.
- Sve neključne atribute (kolone koje nisu deo primarnog ključa) potpuno zavise od celog primarnog ključa (ako je složen). Nedostaju delimične zavisnosti.
-
Treća normalna forma (3NF):
- Tabela je u 2NF.
- Nema tranzitivnih zavisnosti. Neključni atributi ne zavise od drugih neključnih atributa.
Postoje i više normalnih formi (BCNF, 4NF, 5NF, 6NF), ali se 3NF obično smatra dovoljnim za većinu praktičnih svrha.
Primer (pojednostavljen):
Originalna nenormalizovana tabela (porudžbina klijenta):
| ID porudžbine | Ime klijenta | Adresa klijenta | Proizvodi | Količina | Cena po jedinici |
|---|---|---|---|---|---|
| 101 | Jovan | Beograd | Laptop | 1 | 50000 |
| 101 | Jovan | Beograd | Miš | 2 | 1000 |
| 102 | Marija | Novi Sad | Tastatura | 1 | 3000 |
Nakon normalizacije (npr. do 3NF):
Tabela porudžbina:
| ID porudžbine | ID klijenta | Datum porudžbine |
|---|---|---|
| 101 | 1 | 2023-10-26 |
| 102 | 2 | 2023-10-26 |
Tabela klijenata:
| ID klijenta | Ime klijenta | Adresa klijenta |
|---|---|---|
| 1 | Jovan | Beograd |
| 2 | Marija | Novi Sad |
Tabela detalja porudžbine:
| ID detalja | ID porudžbine | ID proizvoda | Količina | Cena po jedinici |
|---|---|---|---|---|
| 1 | 101 | 10 | 1 | 50000 |
| 2 | 101 | 20 | 2 | 1000 |
| 3 | 102 | 30 | 1 | 3000 |
Tabela proizvoda:
| ID proizvoda | Naziv proizvoda |
|---|---|
| 10 | Laptop |
| 20 | Miš |
| 30 | Tastatura |
De-normalizacija je obrnuti proces normalizacije, koji se ponekad koristi za poboljšanje performansi čitanja podataka povećanjem redundancije.