Šta znate o normalnim oblicima u bazama podataka?
sobes.tech АИ
Одговор од АИ
Normalne forme (NF) su skup pravila i preporuka za projektovanje strukture relacione baze podataka, usmerene na minimiziranje redundancije podataka i sprečavanje anomalija pri unosu, ažuriranju i brisanju.
Glavne normalne forme:
-
Prva normalna forma (1NF):
- Svaki atribut (kolona) mora sadržavati atomarne (nedeljive) vrednosti.
- Izbegavanje ponovljenih grupa atributa.
- Svaki red mora biti jedinstven (postoje primarni ključevi).
-
Druga normalna forma (2NF):
- U 1NF.
- Svaki neključni atribut mora biti u potpunosti zavistan od celog primarnog ključa (kod složenog ključa).
-
Treća normalna forma (3NF):
- U 2NF.
- Izbegavanje tranzitivnih zavisnosti neključnih atributa od primarnog ključa (neključni atribut ne sme zavisiti od drugog neključnog atributa).
-
Forma Bojs-Kodda (BCNF):
- Stroža verzija 3NF.
- Svaka netrivijalna zavisnost $X \to Y$ mora imati $X$ kao superključ.
-
Četvrta normalna forma (4NF):
- U BCNF.
- Izbegavanje višestrukih zavisnosti.
-
Peta normalna forma (5NF):
- U 4NF.
- Izbegavanje zavisnosti spajanja.
Ciljevi normalizacije:
- Smanjenje redundancije podataka.
- Sprečavanje anomalija (ubacivanje, ažuriranje, brisanje).
- Obezbeđivanje integriteta podataka.
- Pojednostavljenje strukture baze podataka.
Primer:
Tabela sa redundancijom (nije u 1NF):
| OrderID | Proizvod | Cena |
|---|---|---|
| 1 | Laptop, Miš | 1000, 20 |
| 2 | Tastatura | 50 |
Normalizovana tabela (u 1NF i više):
Tabela "Porudžbine":
| OrderID |
|---|
| 1 |
| 2 |
Tabela "Stavke porudžbine":
| StavkaID | OrderID | Proizvod | Cena |
|---|---|---|---|
| 1 | 1 | Laptop | 1000 |
| 2 | 1 | Miš | 20 |
| 3 | 2 | Tastatura | 50 |
Normalizacija je važan korak u projektovanju, ali prekomerna normalizacija može dovesti do povećanja broja spajanja u upitima, što može negativno uticati na performanse. Odabir optimalnog nivoa normalizacije zavisi od specifičnih zahteva i kompromisa. Ponekad se koristi denormalizacija za optimizaciju performansi u određenim scenarijima, svesno kršeći pravila normalnih formi.