Haastattelun aikana jotkut haastattelijat kysyvät tietokantaparadigmasta, olen opiskellut tietokantoja yliopistossa aiemmin, mutta en ole kuullut paradigmasta, tai opettaja on maininnut sen, enkä ole kiinnittänyt siihen huomiota?
Tällä hetkellä relaatiotietokannoissa on kuusi paradigmaa: ensimmäinen paradigma (1NF), toinen paradigma (2NF), kolmas paradigma (3NF), Bass-Cod paradigma (BCNF), neljäs paradigma (4NF) ja viides paradigma (5NF, tunnetaan myös nimellä täydellinen paradigma).
Yleensä käytämme ensimmäistä paradigmaa (1NF), toista paradigmaa (2NF) ja kolmatta paradigmaa (3NF), jotka ovat "kolme paradigmaa", joista tässä artikkelissa keskustellaan.
Ensimmäinen paradigma (1NF): Vaatii, että jokainen tietokantataulukon sarake on jakamaton atominen tietoyksikkö.
Havainnollistaa:
Yllä olevassa taulukossa kumpikaan "Perhetieto" eikä "Koulutiedot" -sarakkeet täytä atomisuusvaatimuksia, joten ne eivät täytä ensimmäistä paradigmaa, ja ne säädetään seuraavasti:
On nähtävissä, että jokainen säädetty sarake on jakamaton, joten se täyttää ensimmäisen paradigman (1NF);
Paradigma 2 (2NF): 1NF:n perusteella ei-koodiattribuuttien on oltava täysin riippuvaisia ehdokaskoodeista (poista osittainen funktioriippuvuus ei-ensisijaisista attribuutteista pääkoodista 1NF-pohjalla)
Toisen paradigman on varmistettava, että jokainen sarake tietokantataulukossa liittyy ensisijaiseen avaimeen, ei vain osa ensisijaista avainta (pääasiassa liittoutuneissa ensisijaisissa avaimissa).
Havainnollistaa:
Yllä olevassa kaaviossa esitetyssä tapauksessa sama järjestys voi sisältää erilaisia tuotteita, joten ensisijaisen avaimen on oltava yhdistelmä "tilausnumerosta" ja "tuotenumerosta".
Kuitenkin voidaan havaita, että tuotteen määrä, alennus ja tuotteen hinta liittyvät kaikki "tilausnumeroon" ja "tuotenumeroon", mutta tilauksen määrä ja -aika liittyvät vain "tilausnumeroon" eivätkä liity "tuotenumeroon".
Tämä ei täytä toisen paradigman vaatimuksia, ja sitä säädetään seuraavasti, joka on jaettava kahteen taulukkoon:
Kolmas paradigma (3NF): 2NF:n perusteella mikään ei-pääattribuutti ei riipu muista ei-pääominaisuuksista (poistamalla siirtoriippuvuudet 2NF:n perusteella)
Kolmannen paradigman tulee varmistaa, että jokainen datasarake datataulukossa liittyy suoraan ensisijaiseen avaimeen, ei epäsuorasti.
Havainnollistaa:
Yllä olevassa taulukossa kaikki ominaisuudet riippuvat täysin oppilasmäärästä, joten toinen paradigma täyttyy, mutta "luokan opettajan sukupuoli" ja "luokan opettajan ikä" riippuvat suoraan "luokan opettajan nimestä".
Pääavaimen "opiskelijanumeron" sijaan on tehtävä seuraavat muutokset:
Näin kolmannen paradigman vaatimukset täyttyvät.
ps:如果把上表中的班主任姓名改成班主任教工号可能更确切,更符合实际情况,不过只要能理解就行。
BCNF (Bovce Codd Normal Form Bacchus -paradigma)
Kolmas korjausparadigma on estää yhden pääavaimen sarakkeen riippuvuuden muista pääavaimen sarakkeista. Kun 3NF poistaa joitakin funktioriippuvuuksia ja siirtää funktioriippuvuudet pääattribuuttikoodista, sitä kutsutaan BCNF:ksi.
Ominainen:
1. Kaikki pääattribuutit ovat täysin toiminnallisia riippuvuuksia kustakin koodista
2. Kaikki pääattribuutit ovat täysin funktioriippuvaisia jokaisesta koodista, joka niitä ei sisällä
3. Ei ole olemassa attribuuteja, jotka olisivat täysin toiminnallisia tai riippuvaisia mistään ei-koodimaisista ominaisuuksista.
Esimerkiksi varastotaulu (varaston nimi, ylläpitäjän nimi, tuotteen nimi, määrä), pääavain on (varaston nimi, ylläpitäjän nimi, tuotteen nimi), joka täyttää edelliset kolme paradigmaa, mutta varaston nimen ja ylläpitäjän nimen välillä on riippuvuus, joten varaston poistaminen johtaa ylläpitäjän poistamiseen, joten BCNF ei ole tyytyväinen.
4NF Neljäs paradigma
Ei-ensisijaisilla attribuuteilla ei tulisi olla useita arvoja. Jos on olemassa moniarvo, se rikkoo neljättä paradigmaa. 4NF on rajoitusrelaatiomalli, joka ei salli ei-triviaaleja ja funktioista riippumattomia moniarvoisia riippuvuuksia ominaisuuksien välillä.
Esimerkiksi käyttäjän yhteystietotaulukko (käyttäjätunnus, lankapuhelin, matkapuhelin), jossa käyttäjätunnus on pääavain ja täyttää BCNF:n, mutta käyttäjällä voi olla useita lankapuhelimia tai matkapuhelimia, tämä rakenne on kohtuuton ja se tulisi muuttaa muotoon (käyttäjätunnus, yhteystietotyyppi, puhelinnumero).
Huomautus: Jos otetaan huomioon vain funktio-riippuvuuksia, paradigma, jolla on korkein relaatiomallien normalisointiaste, on BCNF. Jos otat huomioon moniarvoiset riippuvuudet, kyseessä on 4NF.
5NF Viides Paradigma
Viides paradigma on viimeinen paradigma, joka poistaa yhteysriippuvuuden 4NF:ssä, ja viidennen paradigman tulee täyttää seuraavat vaatimukset:
1. Neljäs paradigma on täytettävä
2. Taulukot on jaettava pienempiin tauluihin, elleivät näillä tauluilla loogisesti ole sama pääavain kuin alkuperäisellä taululla.
Yleisissä käytännön sovelluksissa viidettä paradigmaa ei tarvitse ottaa huomioon.
Siirretty:Hyperlinkin kirjautuminen on näkyvissä. Viittaus:Hyperlinkin kirjautuminen on näkyvissä.
|