Tietokannan normalisointi
Jos olet työskennellyt tietokantojen kanssa jonkin aikaa, olette kuullut termin normalisoinnin. Ehkä joku kysyi sinulta "Onko tietokanta normalisoitu?" tai "Onko se BCNF: ssä ?" Normalisointia harjaantuu usein ylellisyydeksi, jonka vain tutkijoilla on aikaa. Tietäen kuitenkin, että periaatteet normalisoida ja soveltaa niitä päivittäisessä tietokannan suunnittelutehtävissä ei todellakaan ole niin monimutkaisia ja se voisi merkittävästi parantaa DBMS: n suorituskykyä.
Tässä artikkelissa esitellään normalisoinnin käsite ja tarkastellaan lyhyesti tavallisimpia tavallisia muotoja.
Mikä on normalisointi?
Normalisointi on prosessi, jolla tietokannan tietoja järjestetään tehokkaasti. Normalisointiprosessin kaksi päämäärää: eliminoimalla tarpeettomia tietoja (esimerkiksi tallentamalla samat tiedot useammalle kuin yhdelle taulukolle) ja varmistamalla, että datayhteydet ovat järkeviä (vain tallennetaan vastaavat tiedot taulukkoon). Molemmat ovat arvokkaita tavoitteita, koska ne vähentävät tietokannan tilan määrää ja varmistavat tietojen loogisen tallennuksen.
Normaalit lomakkeet
Tietokantayhteisö on kehittänyt useita suuntaviivoja tietokantojen normalisoitumisen varmistamiseksi. Näitä kutsutaan tavallisiksi muodoiksi ja ne on numeroitu yhdestä (alhaisin normalisointimuoto, jota kutsutaan ensimmäiseksi normaaliksi muodoksi tai 1 NF) viiden (viidennen normaalin muodon tai 5 NF: n) kautta. Käytännön sovelluksissa näet usein 1NF, 2NF ja 3NF sekä satunnainen 4NF. Viides normaali muoto on hyvin harvoin nähtävissä, eikä sitä käsitellä tässä artikkelissa.
Ennen kuin aloitamme keskustelun normaaleista muodoista, on tärkeää huomata, että ne ovat vain suuntaviivoja ja ohjeita. Joskus on välttämätöntä ohjata heitä vastaamaan käytännön liiketoiminnan vaatimuksiin. Kuitenkin, kun muutokset tapahtuvat, on äärimmäisen tärkeää arvioida mahdollisia haavoittuvuuksia, joita heillä voisi olla järjestelmäänne ja mahdolliset epäjohdonmukaisuudet. Sanotaan, tutkia tavallisia muotoja.
Ensimmäinen normaali muoto (1NF)
Ensimmäinen normaali muoto (1NF) asettaa hyvin perussäännöt järjestettyyn tietokantaan:
- Poista päällekkäiset sarakkeet samasta taulukosta.
- Luo erilliset taulukot kullekin liittyvän dataryhmän kohdalle ja tunnista jokainen rivi yksilöllisellä sarakkeella tai sarakkeilla ( ensisijainen avain ).
Toinen normaali muoto (2NF)
Toinen normaalimuoto (2NF) käsittelee lisäksi päällekkäisten tietojen poistamisen käsitettä:
- Täytä kaikki ensimmäisen normaalin lomakkeen vaatimukset.
- Poista taulukon useisiin riveihin sovellettavat tietoryhmät ja aseta ne erillisiin taulukoihin.
- Luo suhteita näiden uusien taulukoiden ja niiden edeltäjien välillä käyttämällä vieraita avaimia .
Kolmas normaali lomake (3NF)
Kolmas normaali muoto (3NF) menee yksi iso askel edelleen:
- Täytä kaikki toisen normaalin lomakkeen vaatimukset.
- Poista sarakkeet, jotka eivät ole riippuvaisia ensisijaisesta avaimesta.
Boyce-Codd-normaalimuoto (BCNF tai 3.5NF)
Boyce-Codd Normal Form, jota kutsutaan myös "kolmanneksi ja puoliksi (3.5) normaaliksi lomakkeeksi", lisää vielä yhden vaatimuksen:
- Täytä kaikki kolmannen normaalin lomakkeen vaatimukset.
- Jokaisen määrittäjän on oltava ehdokasvaara.
Neljäs normaali lomake (4NF)
Lopuksi neljäs normaalimuoto (4NF) on yksi lisävaatimus:
- Täytä kaikki kolmannen normaalin lomakkeen vaatimukset.
- Suhde on 4NF, jos sillä ei ole monenarvoisia riippuvuuksia .
Muista, että nämä normalisointiohjeet ovat kumulatiivisia. Jos tietokanta on 2NF, sen on ensin täytettävä kaikki 1NF-tietokannan kriteerit.
Pitäisikö minun normalisoida?
Vaikka tietokannan normalisointi on usein hyvä idea, se ei ole ehdoton edellytys. Itse asiassa on joitain tapauksia, joissa normaalistamisen sääntöjen rikkominen tahallaan on hyvää käytäntöä. Lisätietoja tästä aiheesta, lue minun pitäisi normalisoida tietokantaani?
Jos haluat varmistaa tietokannan normalisoinnin, aloita oppimalla tietokannan sijoittaminen ensimmäiseksi tavalliseksi lomakkeeksi .