Skip to main content

Duomenų bazės normalizavimo pagrindai

Anonim

Jei kurį laiką dirbote su duomenų bazėmis, greičiausiai girdėjote terminą "normalizavimas". Galbūt kažkas jums paklausė: "Ar ši bazė normalizuota?" arba "Ar tai BCNF?" Normalizavimas dažnai yra pašalinamas kaip prabanga, kurią turi tik mokslininkai. Tačiau nežinant, kaip normalizuoti ir pritaikyti jas kasdienioms duomenų bazių projektavimo užduotims, dar ne viskas yra sudėtinga, o tai gali žymiai pagerinti jūsų DBVS našumą.

Šiame straipsnyje pristatysime normalizavimo sampratą ir trumpai apžvelgsime įprastas formas.

Kas yra normalizavimas?

Normalizavimas - veiksmingas duomenų bazėje tvarkymo procesas. Yra du normavimo proceso tikslai: panaikinti nereikalingus duomenis (pvz., Saugoti tuos pačius duomenis daugiau nei vienoje lentelėje) ir užtikrinti, kad duomenų priklausomybės būtų prasmingos (tik išsaugoti susijusius duomenis lentelėje). Abu šie yra vertingi tikslai, nes jie sumažina vietos duomenų bazės sunaudojimą ir užtikrina, kad duomenys būtų logiškai saugomi.

Normalios formos

Duomenų bazės bendruomenė sukūrė kelias gaires, užtikrinančias, kad duomenų bazės būtų normalizuotos. Jie vadinami įprastinėmis formomis ir yra sunumeruoti iš vienos (žemiausios normalizavimo formos, vadinamos "pirmoji įprasta forma" arba "1NF"), per penkis (penktoji normalioji forma arba 5NF). Praktinėse programose dažnai matysite 1NF, 2NF ir 3NF kartu su kartais 4NF. Penktoji normalioji forma yra labai retai matoma ir šiame straipsnyje nebus aptariama.

Prieš pradedant diskutuoti apie įprastas formas, svarbu atkreipti dėmesį į tai, kad jos yra tik gairės ir gairės. Kartais tampa būtina nukrypti nuo jų, kad atitiktų praktinius verslo reikalavimus. Tačiau, kai vyksta įvairūs veiksmai, labai svarbu įvertinti bet kokius galimus padarinius jūsų sistemoje ir apsvarstyti galimus neatitikimus. Tai sakiau, pažvelkime į įprastas formas.

Pirmoji normalioji forma (1NF)

Pirmoji normalioji forma (1NF) nustato labai pagrindines organizuotos duomenų bazės taisykles:

  • Pašalinkite pasikartojančius stulpelius iš tos pačios lentelės.
  • Sukurkite atskiras lenteles kiekvienai susijusių duomenų grupei ir kiekvieną eilutę nurodykite su unikalia stulpeliu arba stulpelių rinkiniu (pirminiu raktu).

Antroji įprastinė forma (2NF)

Antroji įprastinė forma (2NF) taip pat apima dvigubų duomenų pašalinimo koncepciją:

  • Atitikti visus pirmosios įprastos formos reikalavimus.
  • Pašalinkite daugialypių lentelių eilučių duomenų pogrupius ir įtraukite juos į atskiras lenteles.
  • Sukurti santykius tarp šių naujų stalų ir jų pirmtakų naudojant užsienio raktus.

Trečioji įprastinė forma (3NF)

Trečioji įprastinė forma (3NF) yra dar viena didelė žingsnis:

  • Atitikti visus antrosios įprastos formos reikalavimus.
  • Pašalinti stulpelius, kurie nepriklauso nuo pirminio rakto.

Boyce-Codd normalioji forma (BCNF arba 3.5NF)

"Boyce-Codd" įprastinė forma, dar vadinama "trečia ir pusė (3,5) įprasta forma", papildo dar vieną reikalavimą:

  • Atitikti visus trečiosios įprastos formos reikalavimus.
  • Kiekvienas determinantas turi būti kandidato raktas.

Ketvirta normalioji forma (4NF)

Galiausiai, ketvirtoji įprastinė forma (4NF) turi vieną papildomą reikalavimą:

  • Atitikti visus trečiosios įprastos formos reikalavimus.
  • Santykis yra 4NF, jei jis neturi daugialypių priklausomybių.

Atminkite, kad šios normavimo gairės yra kaupiamosios. Kad duomenų bazė būtų 2NF, ji pirmiausia turi atitikti visus 1NF duomenų bazės kriterijus.

Ar turėčiau normalizuoti?

Nors duomenų bazių normalizavimas dažnai yra gera idėja, tai nėra absoliutus reikalavimas. Iš tikrųjų yra keletas atvejų, kai sąmoningai pažeidžiamos normavimo taisyklės yra gera praktika. Norėdami sužinoti daugiau apie šią temą, perskaitykite Ar turėčiau normalizuoti savo duomenų bazę?

Jei norėtumėte užtikrinti, kad jūsų duomenų bazė būtų normalizuota, pradėkite nuo mokymosi, kaip įdėti savo duomenų bazę į pirmąją įprastinę formą.