Druga normalna oblika (2NF): definicija in pravila normalizacije baze podatkov

Razložena 2NF: definicija, pravila in primeri normalizacije baz podatkov — kako odpraviti parcialne odvisnosti, zaščititi integriteto in izboljšati strukturo tabel.

Avtor: Leandro Alegsa

Druga normalna oblika (2NF) je lastnost relacijskega modela, zlasti tabel, ki je merilo za normalizacijo podatkovne zbirke. Namen 2NF je odpraviti delne odvisnosti, ki povzročajo podvajanje podatkov in anomalije pri vstavljanju, posodabljanju ali brisanju podatkov.

Osnovna zahteva za dosego 2NF je, da je tabela že v prvi normalni obliki (1NF): vsi stolpci morajo vsebovati atomske vrednosti in tabela ne sme imeti ponavljajočih se skupin. Poleg tega 2NF zahteva, da noben neključni (t.j. neprimarni) stolpec ni delno odvisen od dela sestavljenega primarnega ključa.

Kaj pomeni "delna odvisnost"?

Delna odvisnost pomeni, da je en ali več neključnih atributov odvisnih le od dela sestavljenega primarnega ključa, ne pa od celotnega ključa. Če je primarni ključ sestavljen iz več stolpcev (npr. A + B), potem mora vsak neključni stolpec biti odvisen od obeh — A in B — ne le od enega.

Pomembne točke

  • 2NF zahteva 1NF: brez 1NF ne moremo govoriti o 2NF.
  • Enostavni (enostolpčni) primarni ključ: če je primarni ključ en stolpec, je tabela avtomatično v 2NF (ni možnosti delnih odvisnosti).
  • Sestavljeni ključ: 2NF je relevantna predvsem, kadar je primarni ključ sestavljen iz več stolpcev.

Primer (poenostavljen)

Predpostavimo tabelo Vpis z atributi: ŠtudentID + PredmetID (skupaj primarni ključ), ŠtudentIme, PredmetIme, Ocena.

  • Ocena je odvisna od celotnega ključa (ŠtudentID + PredmetID) — to je pravilno.
  • ŠtudentIme je odvisno le od ŠtudentID (delna odvisnost).
  • PredmetIme je odvisno le od PredmetID (delna odvisnost).

Takšna tabela ni v 2NF zaradi delnih odvisnosti. Rešitev je razdelitev na ločene tabele:

  • Tabela Študent(ŠtudentID, ŠtudentIme, ...)
  • Tabela Predmet(PredmetID, PredmetIme, ...)
  • Tabela Vpis(ŠtudentID, PredmetID, Ocena) — relacija med študentom in predmetom

Koraki za preoblikovanje tabele v 2NF

  • Identificirajte primarni ključ in preverite, ali je sestavljen iz več stolpcev.
  • Poiščite neključne stolpce, ki so odvisni le od dela sestavljenega ključa (delne odvisnosti).
  • Te stolpce prestavite v nove tabele, kjer bo njihov ključ tisti del, od katerega so odvisni (npr. Študent, Predmet).
  • V izvorno tabelo ohranite le atribute, ki so odvisni od celotnega ključa (npr. Ocena).
  • Vzpostavite ustrezne tuje ključe (foreign keys) med tabelami za ohranitev referenčne integritete.

Razlike do drugih normalnih oblik

  • 2NF odpravi delne odvisnosti. Vendar pa še vedno lahko ostanejo tranzitivne odvisnosti (npr. A → B in B → C), ki jih rešuje tretja normalna oblika (3NF).
  • Za strožjo zahtevo glede ključev in odvisnosti obstaja tudi Boyce–Codd normalna oblika (BCNF), ki v nekaterih primerih zahteva dodatne razdelitve kot 3NF.

Prednosti in slabosti normalizacije do 2NF

  • Prednosti: manj redundanc, manj napak pri posodobitvah, boljša organizacija podatkov ter lažja vzdržljivost integritete.
  • Slabosti: več tabel pomeni več join operacij pri poizvedbah, kar lahko upočasni izvajanje v primerih z velikimi obremenitvami; v OLAP scenarijih se včasih zavestno uporablja denormalizacija za hitrejše branje podatkov.

Preverjalni seznam za 2NF

  • Je tabela v 1NF (atomske vrednosti, brez ponavljajočih se skupin)?
  • Je primarni ključ sestavljen iz več stolpcev? Če ne, je tabela v 2NF.
  • Ali obstajajo neključni stolpci, odvisni le od dela sestavljenega ključa? Če da — razdelajte tabelo.
  • Po razdelitvi preverite, da so nove tabele normalizirane in da ni več delnih odvisnosti.

Druga normalna oblika je torej pomemben korak pri načrtovanju relacijskih baz podatkov: zmanjšuje redundanco in napake, hkrati pa zahteva premišljeno uravnoteženje med normalizacijo in zmogljivostjo sistema.



Iskati
AlegsaOnline.com - 2020 / 2025 - License CC3