Sobes.tech
Middle

Š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.