Intervjueerimise ajal küsivad mõned intervjueerijad andmebaasi paradigma kohta, olen varem kolledžis andmebaase uurinud, aga pole sellest kuulnud või õpetaja on seda maininud ja ma pole sellele tähelepanu pööranud?
Praegu on relatsioonilistes andmebaasides kuus paradigmat: esimene paradigma (1NF), teine paradigma (2NF), kolmas paradigma (3NF), Bass-Cod paradigma (BCNF), neljas paradigma (4NF) ja viies paradigma (5NF, tuntud ka kui täiuslik paradigma).
Tavaliselt kasutame esimest paradigmat (1NF), teist paradigmat (2NF) ja kolmandat paradigmat (3NF), mis on "kolm paradigmat", mida selles artiklis käsitletakse.
Esimene paradigma (1NF): Nõuab, et iga andmebaasitabeli veerg oleks jagamatu aatomandmeüksus.
Illustreerida:
Ülaltoodud tabelis ei vasta ei "Pereinformatsioon" ega "Kooliinfo" veerg aatomilisuse nõuetele, seega ei vasta need esimesele paradigmale ning neid kohandatakse järgmiselt:
On näha, et iga korrigeeritud veerg on jagamatu, seega rahuldab see esimese paradigma (1NF);
Paradigma 2 (2NF): 1NF alusel peavad mitte-koodilised atribuudid olema täielikult sõltuvad kandidaatkoodidest (kaotada mitte-primaarsete atribuutide osaline funktsioonisõltuvus põhikoodist 1NF alusel)
Teine paradigma peab tagama, et iga veerg andmebaasitabelis on seotud esmase võtmega, mitte ainult osa põhivõtmest (peamiselt föderaalsete primaarvõtmete puhul).
Illustreerida:
Ülaltoodud diagrammil näidatud juhul võib sama järjekord sisaldada erinevaid tooteid, seega peab peamine võti olema kombinatsioon "tellimuse number" ja "toote number".
Siiski võib leida, et toote kogus, allahindlus ja hind on kõik seotud "tellimuse numbri" ja "toote numbriga", kuid tellimuse kogus ja tellimuse aeg on seotud ainult "tellimuse numbriga" ega ole seotud "toote numbriga".
See ei vasta teise paradigma nõuetele ja seda kohandatakse järgmiselt, mida tuleb jagada kaheks tabeliks:
Kolmas paradigma (3NF): 2NF alusel ei sõltu ükski mitte-peamine atribuut teistest mitte-peamistest atribuutidest (edastussõltuvuste kaotamine 2NF alusel)
Kolmas paradigma peab tagama, et iga andmetabeli andmeveerg on otseselt seotud primaarvõtmega, mitte kaudselt.
Illustreerida:
Ülaltoodud tabelis sõltuvad kõik atribuudid täielikult õpilase arvust, seega on täidetud teine paradigma, kuid "klassiõpetaja sugu" ja "klassiõpetaja vanus" sõltuvad otseselt "klassiõpetaja nimest".
Peamise võtme "õpilase number" asemel tuleb teha järgmised kohandused:
Nii täidetakse kolmanda paradigma nõuded.
ps:如果把上表中的班主任姓名改成班主任教工号可能更确切,更符合实际情况,不过只要能理解就行。
BCNF (Bovce Coddi normaalvormi Bacchus paradigma)
Kolmas paradigma paradigma on takistada ühe primaarvõtme veeru sõltumist teistest põhivõtme veergudest. Kui 3NF kõrvaldab osa funktsioonisõltuvustest ja ülekandefunktsioonide sõltuvustest peamise atribuudi koodist, nimetatakse seda BCNF-iks.
Tunnus:
1. Kõik peamised atribuudid on täielikult funktsionaalsed sõltuvused igast koodist
2. Kõik peamised atribuudid sõltuvad täielikult funktsioonist iga koodi suhtes, mis neid ei sisalda
3. Puuduvad atribuudid, mis oleksid täielikult funktsionaalsed ja sõltuvad mistahes mitte-koodi omaduste komplektist
Näiteks laotabelis (laonimi, administraatori nimi, toote nimi, kogus) on peamine võti (lao nimi, administraatori nimi, toote nimi), mis rahuldab eelnevad kolm paradigmat, kuid lao ja administraatori nimede vahel on sõltuvus, seega lao kustutamine põhjustab administraatori kustutamise, mistõttu BCNF ei ole rahul.
4NF neljas paradigma
Mitte-primaarsed atribuutid ei tohiks omada mitut väärtust. Kui on olemas mitmeväärtus, rikub see neljandat paradigmat. 4NF on piiratud relatsioonimuster, mis ei luba mitte-triviaalseid ega funktsioonist sõltuvaid mitmeväärtuslikke sõltuvusi omaduste vahel.
Näiteks kasutaja kontaktandmete tabel (kasutaja ID, lauatelefon, mobiiltelefon), kus kasutaja ID on peamine võti, mis rahuldab BCNF-i, kuid kasutajal võib olla mitu lauatelefoni või mitu mobiiltelefoni, siis see disain on ebamõistlik ja tuleks muuta (kasutaja ID, kontakti tüüp, telefoninumber).
Märkus: Kui arvestada ainult funktsioonisõltuvusi, on paradigma, millel on kõrgeim relatsiooniliste mustrite normaliseerimise aste, BCNF. Kui arvestada mitme väärtuse sõltuvusi, siis on see 4NF.
5NF Viies Paradigma
Viies paradigma on lõplik paradigma, mis kõrvaldab 4NF-is ühenduse sõltuvuse, ning viies paradigma peab vastama järgmistele nõuetele:
1. Neljas paradigma tuleb täita
2. Tabelid peavad olema dekomponeeritavad väiksemateks tabeliteks, välja arvatud juhul, kui need tabelid loogiliselt omavad sama primaarvõtit nagu algne tabel.
Üldistes praktilistes rakendustes ei pea arvestama viiendat paradigmat.
Üleviidud:Hüperlingi sisselogimine on nähtav. Viide:Hüperlingi sisselogimine on nähtav.
|