Kazalo:
- Opredelitev - Kaj pomeni tretja normalna oblika (3NF)?
- Tehopedija razlaga tretjo normalno obliko (3NF)
Opredelitev - Kaj pomeni tretja normalna oblika (3NF)?
Tretja normalna oblika (3NF) je tretji korak pri normalizaciji baze podatkov in temelji na prvem in drugem običajnem obrazcu, 1NF in 2NF.
3NF navaja, da je treba odstraniti vse sklice na stolpce v referenčnih podatkih, ki niso odvisni od primarnega ključa. Drug način tega je, da se za sklicevanje na drugo tabelo uporabljajo samo stolpci s tujimi ključi, v referenčni tabeli pa ne bi smeli obstajati nobeni drugi stolpci iz nadrejene tabele.
Tehopedija razlaga tretjo normalno obliko (3NF)
Razmislite o zbirki podatkov banke, ki vsebuje dve tabeli: CUSTOMER_MASTER za shranjevanje podrobnosti o strankah in ACCOUNT_MASTER za shranjevanje podrobnosti o bančnih računih, vključno s tem, katera stranka ima kateri račun. V tem primeru mora obstajati način za povezavo obeh tabel, da se račun poveže s stranko, ki je lastnica. Način za to je prek tujega ključa. To je stolpec v tabeli ACCOUNT_MASTER, ki kaže na ustrezen stolpec (imenovan primarni ključ) v nadrejeni tabeli CUSTOMER_MASTER ali se nanj sklicuje. Kličimo ta stolpec CustID.
Predpostavimo, da kupec Andrew Smith ustvari račun v tabeli CUSTOMER_MASTER s CustID 20454. Gospod Smith hrani varčevalni račun s številko S-200802-005, katere podrobnosti so shranjene v tabeli ACCOUNT_MASTER. To pomeni, da bo tabela ACCOUNT_MASTER imela stolpec z imenom CustID, ki ni izvirni podatek. Namesto tega ima tudi vrednost 20454, ki preprosto navaja enak skrbnik v tabeli CUSTOMER_MASTER.
Zdaj 3NF narekuje, da bi morali biti v naši tabeli ACCOUNT_MASTER edini podatki, ki jih imamo o stranki, GuardID (20454) kot tuji ključ, v tabeli CUSTOMER_MASTER pa se nanašajo in identificirajo kupca, ki je lastnik istega sistemaIDID (Andrew Smith ). Nobenih drugih podatkov o naši stranki (na primer ime, datum rojstva, spol in podobno) ne bi smeli shranjevati v tabeli ACCOUNT_MASTER ali v nobeni drugi tabeli, ker so vsi ti podatki o njem že shranjeni v CUSTOMER_MASTER. S tem so edini podatki o strankah, shranjeni zunaj tabele CUSTOMER_MASTER, skrbnik. To izplača čedne dividende, če zagotovite, da ni podvajanja podatkov, kar posledično omogoča, da se poizvedbe izvajajo veliko bolj učinkovito in zmanjšuje potrebno količino shranjevanja.