Kaj je normalizacija? Primer baze podatkov 1NF, 2NF, 3NF, BCNF

Kazalo:

Anonim

Kaj je normalizacija?

Normalizacija je tehnika oblikovanja zbirke podatkov, ki zmanjšuje redundanco podatkov in odpravlja neželene lastnosti, kot so nepravilnosti pri vstavljanju, posodabljanju in brisanju. Pravila normalizacije delijo večje tabele na manjše in jih povezujejo z uporabo razmerij. Namen normalizacije v SQL je odstraniti odvečne (ponavljajoče se) podatke in zagotoviti logično shranjevanje podatkov.

Izumitelj relacijskega modela Edgar Codd je predlagal teorijo normalizacije podatkov z uvedbo prve normalne oblike, nadaljeval pa je razširitev teorije z drugo in tretjo normalno obliko. Kasneje se je pridružil Raymondu F. Boycu, da bi razvil teorijo Boyce-Coddove običajne oblike.

Običajni obrazci zbirke podatkov

Tu je seznam običajnih obrazcev

  • 1NF (prvi običajni obrazec)
  • 2NF (druga običajna oblika)
  • 3NF (tretja običajna oblika)
  • BCNF (Boyce-Coddova običajna oblika)
  • 4NF (četrta običajna oblika)
  • 5NF (peta običajna oblika)
  • 6NF (šesta običajna oblika)

Teorija normalizacije podatkov v strežniku SQL se še naprej razvija. Na primer, da so razprave tudi o 6 th običajni obliki. Vendar pa je v večini praktičnih aplikacijah, normalizacija dosega svoje najboljše v 3 tretjem običajni obliki . Razvoj teorij normalizacije SQL je prikazan spodaj -

Običajni obrazci zbirke podatkov

Normalizacija zbirke podatkov s primeri

Primer normalizacije zbirke podatkov lahko enostavno razumemo s pomočjo študije primera. Predpostavimo, da videoteka hrani zbirko podatkov o oddanih filmih. Brez normalizacije baze podatkov so vsi podatki shranjeni v eni tabeli, kot je prikazano spodaj. Razumejmo normalizacijo v zbirki podatkov s primerom tabel:

Tu vidite stolpec »Izposojeni filmi« ima več vrednosti. Zdaj pa pojdimo v 1. običajne obrazce:

Pravila 1NF (prvi običajni obrazec)

  • Vsaka celica tabele mora vsebovati eno vrednost.
  • Vsak zapis mora biti unikaten.

Zgornja tabela v 1NF-

Primer 1NF

Preden nadaljujemo, razumimo nekaj stvari -

Kaj je KLJUČ?

KLJUČ je vrednost, ki se uporablja za enolično identifikacijo zapisa v tabeli. KLJUČ je lahko en stolpec ali kombinacija več stolpcev

Opomba: Stolpci v tabeli, ki se NE uporabljajo za enolično identifikacijo zapisa, se imenujejo neključni stolpci.

Kaj je primarni ključ?

Primarna je vrednost enega stolpca, ki se uporablja za enolično identifikacijo zapisa baze podatkov.

Ima naslednje lastnosti

  • Primarni ključ ne sme biti NULL
  • Vrednost primarnega ključa mora biti enolična
  • Vrednosti primarnega ključa je treba redko spreminjati
  • Primarni ključ mora imeti vrednost, ko je vstavljen nov zapis.

Kaj je sestavljeni ključ?

Sestavljeni ključ je primarni ključ, sestavljen iz več stolpcev, ki se uporabljajo za enolično identifikacijo zapisa

V naši bazi imamo dve osebi z istim imenom Robert Phil, ki pa živita v različnih krajih.

Zato zahtevamo tako polno ime kot naslov za enolično identifikacijo zapisa. To je sestavljeni ključ.

Pojdimo v drugo normalno obliko 2NF

Pravila 2NF (druga običajna oblika)

  • Pravilo 1 - Bodite v 1NF
  • Pravilo 2- Primarni ključ za en stolpec

Jasno je, da naše preproste baze podatkov v drugi obliki normalizacije ne moremo nadaljevati, razen če zgornjo tabelo razdelimo na particije.

Našo tabelo 1NF smo razdelili na dve tabeli. Tabela 1 in Tabela 2. Tabela 1 vsebuje podatke o članih. Tabela 2 vsebuje informacije o izposojenih filmih.

Uvedli smo nov stolpec z imenom Membership_id, ki je primarni ključ za tabelo 1. Zapise lahko v tabeli 1 enolično prepoznamo z ID-jem članstva

Zbirka podatkov - tuji ključ

V tabeli 2 je Membership_ID tuji ključ

Tuji ključ se sklicuje na primarni ključ druge tabele! Pomaga pri povezovanju tabel

  • Tuji ključ ima lahko drugačno ime kot njegov primarni ključ
  • Zagotavlja, da imajo vrstice v eni tabeli ustrezne vrstice v drugi
  • V nasprotju s primarnim ključem niso nujno enolični. Najpogosteje niso
  • Tuji ključi so lahko nič, čeprav primarni ključi ne morejo

Zakaj potrebujete tuji ključ?

Recimo, da novinec v tabelo B vstavi zapis, kot je

V tuji ključ boste lahko vstavili le vrednosti, ki obstajajo v unikatnem ključu v nadrejeni tabeli. To pomaga pri referenčni integriteti.

Zgornjo težavo je mogoče odpraviti z razglasitvijo id-ja članstva iz tabele2 kot tujega ključa ID-ja članstva iz tabele1

Zdaj, če nekdo poskuša v polje ID članstva vstaviti vrednost, ki ne obstaja v nadrejeni tabeli, bo prikazana napaka!

Kaj so prehodne funkcionalne odvisnosti?

Prehodna funkcionalna odvisnost je, če spremenite neključni stolpec, lahko povzroči spremembo katerega koli drugega neključnega stolpca

Upoštevajte tabelo 1. Spreminjanje neključnega stolpca Polno ime lahko spremeni pozdrav.

Pojdimo v 3NF

Pravila 3NF (tretja običajna oblika)

  • Pravilo 1- Bodite v 2NF
  • Pravilo 2 - nima prehodnih funkcionalnih odvisnosti

Če želimo svojo tabelo 2NF premakniti v 3NF, moramo spet razdeliti tabelo.

Primer 3NF

Spodaj je primer 3NF v zbirki podatkov SQL:

Ponovno smo razdelili mize in ustvarili novo tabelo, ki shranjuje Pozdrave.

Prehodnih funkcionalnih odvisnosti ni, zato je naša tabela v 3NF

V tabeli 3 je pozdravni ID primarni ključ, v tabeli 1 pa je pozdravni ID tuji primarnemu ključu v tabeli 3

Zdaj je naš mali primer na ravni, ki je ni mogoče nadalje razgraditi, da bi dosegli višje normalne oblike normalizacije. Pravzaprav je že v višjih normalizacijskih oblikah. V zapletenih zbirkah podatkov so običajno potrebna ločena prizadevanja za prehod na naslednje ravni normalizacije podatkov. Vendar bomo o naslednjih ravneh normalizacij na kratko razpravljali v nadaljevanju.

BCNF (Boyce-Coddova običajna oblika)

Tudi ko je baza podatkov v 3 rd običajni obliki, še vedno ne bi bilo nepravilnosti prišlo, če ima več kot en kandidat ključ.

Včasih se BCNF imenuje tudi 3,5 običajna oblika.

Pravila 4NF (četrta običajna oblika)

Če ne tabela zbirke podatkov primerek vsebuje dve ali več neodvisnih in multivalued podatke, ki opisujejo ustrezno osebo, potem je v 4 th običajni obliki.

Pravila 5NF (peti običajni obrazec)

Tabela je v 5 th običajni obliki le, če je to v 4NO in ga ni mogoče razčleniti na poljubno število manjših tabel brez izgube podatkov.

Predlagan 6NF (šesta običajna oblika)

6 th je normalna oblika ni standardiziran, vendar pa, da se razpravlja strokovnjaki podatkovne baze za nekaj časa. Upajmo, da imamo jasno in standardizirano definicijo 6 th običajni obliki v bližnji prihodnosti ...

To je vse za normalizacijo SQL !!!

Povzetek

  • Oblikovanje baz podatkov je ključnega pomena za uspešno izvajanje sistema za upravljanje baz podatkov, ki ustreza podatkovnim zahtevam sistema podjetja.
  • Normalizacijski postopek v DBMS pomaga pri izdelavi sistemov baz podatkov, ki so stroškovno učinkoviti in imajo boljše varnostne modele.
  • Funkcionalne odvisnosti so zelo pomemben del procesa normalizacije podatkov
  • Večina sistemov baz podatkov je normalizirana baza podatkov do tretjih običajnih oblik.
  • Primarni ključ enolično identificira, je zapis v tabeli in ne sme biti nič
  • Tuji ključ pomaga pri povezovanju tabele in sklicevanju na primarni ključ