Pokalbio metu kai kurie pašnekovai paklaus apie duomenų bazės paradigmą, aš anksčiau studijavau duomenų bazes kolegijoje, bet negirdėjau apie paradigmą, ar mokytojas ją paminėjo, o aš nekreipiau dėmesio?
Šiuo metu reliacinėse duomenų bazėse yra šešios paradigmos: pirmoji paradigma (1NF), antroji paradigma (2NF), trečioji paradigma (3NF), Bass-Cod paradigma (BCNF), ketvirtoji paradigma (4NF) ir penktoji paradigma (5NF, taip pat žinoma kaip tobula paradigma).
Paprastai mes naudojame pirmąją paradigmą (1NF), antrąją paradigmą (2NF) ir trečiąją paradigmą (3NF), kuri yra "trys paradigmos", kurios bus aptariamos šiame straipsnyje.
Pirmoji paradigma (1NF): Reikalaujama, kad kiekvienas duomenų bazės lentelės stulpelis būtų nedalomas atominių duomenų elementas.
Iliustruoti:
Aukščiau esančioje lentelėje nei stulpeliai "Informacija apie šeimą", nei "Informacija apie mokyklą" neatitinka atomiškumo reikalavimų, todėl jie neatitinka pirmosios paradigmos ir yra koreguojami taip:
Galima pastebėti, kad kiekvienas pakoreguotas stulpelis yra nedalomas, todėl jis atitinka pirmąją paradigmą (1NF);
2 paradigma (2NF): Remiantis 1NF, ne kodo požymiai turi būti visiškai priklausomi nuo kandidatinių kodų (pašalinkite dalinę nepirminių požymių priklausomybę nuo pagrindinio kodo 1NF pagrindu)
Antroji paradigma turi užtikrinti, kad kiekvienas duomenų bazės lentelės stulpelis būtų susijęs su pirminiu raktu, o ne tik pirminio rakto dalimi (daugiausia federaciniams pirminiams raktams).
Iliustruoti:
Aukščiau pateiktoje diagramoje parodytu atveju tame pačiame užsakyme gali būti skirtingi produktai, todėl pirminis raktas turi būti "užsakymo numerio" ir "produkto numerio" derinys.
Tačiau galima pastebėti, kad produkto kiekis, produkto nuolaida ir produkto kaina yra susiję su "užsakymo numeriu" ir "produkto numeriu", tačiau užsakymo suma ir užsakymo laikas yra susiję tik su "užsakymo numeriu" ir neturi nieko bendra su "produkto numeriu".
Tai neatitinka antrosios paradigmos reikalavimų ir yra pakoreguota taip, kurią reikia suskirstyti į dvi lenteles:
Trečioji paradigma (3NF): remiantis 2NF, bet kuris nepagrindinis požymis nepriklauso nuo kitų nepagrindinių požymių (pašalinant perdavimo priklausomybę remiantis 2NF)
Trečioji paradigma turi užtikrinti, kad kiekvienas duomenų lentelės duomenų stulpelis būtų tiesiogiai susijęs su pirminiu raktu, o ne netiesiogiai.
Iliustruoti:
Aukščiau pateiktoje lentelėje visi atributai visiškai priklauso nuo mokinio skaičiaus, todėl tenkinama antroji paradigma, tačiau "klasės mokytojo lytis" ir "klasės mokytojo amžius" tiesiogiai priklauso nuo "klasės mokytojo vardo".
Vietoj pagrindinio rakto "studento numeris" reikia atlikti šiuos pakeitimus:
Tokiu būdu tenkinami trečiosios paradigmos reikalavimai.
ps:如果把上表中的班主任姓名改成班主任教工号可能更确切,更符合实际情况,不过只要能理解就行。
BCNF (Bovce Codd normalios formos Bacchus paradigma)
Trečioji korekcijos paradigma yra užkirsti kelią vienam pirminio rakto stulpeliui priklausyti nuo kitų pirminio rakto stulpelių. Kai 3NF pašalina kai kurias funkcijų priklausomybes ir perdavimo funkcijų priklausomybes nuo pagrindinio atributo kodo, jis vadinamas BCNF.
Savybė:
1. Visi pagrindiniai atributai yra visiškai funkcinės priklausomybės nuo kiekvieno kodo
2. Visi pagrindiniai atributai visiškai priklauso nuo kiekvieno kodo, kuriame jo nėra
3. Nėra atributų, kurie būtų visiškai funkcionalūs ir priklausytų nuo bet kokio ne kodo savybių rinkinio
Pavyzdžiui, atsargų lentelė (sandėlio pavadinimas, administratoriaus pavadinimas, produkto pavadinimas, kiekis), pirminis raktas yra (sandėlio pavadinimas, administratoriaus pavadinimas, produkto pavadinimas), kuris atitinka ankstesnes tris paradigmas, tačiau yra priklausomybė tarp sandėlio pavadinimo ir administratoriaus vardo, todėl panaikinus sandėlį administratorius bus panaikintas, todėl BCNF nebus patenkintas.
4NF ketvirtoji paradigma
Nepirminiai atributai neturėtų turėti kelių reikšmių. Jei yra daugiareikšmė, tai pažeidžia ketvirtąją paradigmą. 4NF yra apribojimo santykinis modelis, kuris neleidžia netrivialių ir nuo funkcijų nepriklausančių daugiareikšmių priklausomybių tarp savybių.
Pavyzdžiui, vartotojo kontaktinės informacijos lentelė (vartotojo ID, fiksuotojo ryšio, mobiliojo telefono), kur vartotojo ID yra pagrindinis raktas, kuris atitinka BCNF, tačiau vartotojas gali turėti kelis fiksuotojo ryšio telefonus arba kelis mobiliuosius telefonus, tada šis dizainas yra nepagrįstas ir turėtų būti pakeistas į (vartotojo ID, kontakto tipas, telefono numeris).
Pastaba: Jei atsižvelgiama tik į funkcijų priklausomybes, paradigma su didžiausiu santykių modelių normalizavimo laipsniu yra BCNF. Jei atsižvelgiate į kelių reikšmių priklausomybes, tai yra 4NF.
5NF Penktoji paradigma
Penktoji paradigma yra galutinė paradigma, pašalinanti ryšio priklausomybę 4NF, o penktoji paradigma turi atitikti šiuos reikalavimus:
1. Turi būti laikomasi ketvirtosios paradigmos
2. Lentelės turi būti suskaidomos į mažesnes lenteles, nebent tos lentelės logiškai turi tą patį pirminį raktą kaip ir pradinė lentelė.
Apskritai praktiniame taikyme nereikia atsižvelgti į penktąją paradigmą.
Perkelta iš:Hipersaito prisijungimas matomas. Nuoroda:Hipersaito prisijungimas matomas.
|