1NF vs 2NF vs 3NF
Normalisointi on prosessi, joka suoritetaan minimoimaan relaatiotietokantojen tiedoissa olevat redundanssit. Tämä prosessi jakaa pääasiassa suuret taulukot pienempiin taulukoihin, joissa on vähemmän irtisanomisia. Nämä pienemmät taulukot liittyvät toisiinsa tarkoin määriteltyjen suhteiden kautta. Hyvin normalisoidussa tietokannassa kaikki tietojen muuttamiset vaativat vain yhden taulukon muokkaamisen. Ensimmäisen normaalin muodon (1NF), toisen normaalin muodon (2NF) ja kolmannen normaalin muodon (3NF) esitteli Edgar F. Codd, joka on myös relaatiomallin ja normalisoinnin käsitteen keksijä..
Mikä on 1NF?
1NF on ensimmäinen normaali muoto, joka tarjoaa vähimmäisvaatimukset relaatiotietokannan normalisoimiseksi. 1NF: n mukainen taulukko varmistaa, että se todella edustaa relaatiota (ts. Se ei sisällä toistuvia tietueita), mutta 1NF: lle ei ole yleisesti hyväksyttyä määritelmää. Yksi tärkeä ominaisuus on, että 1NF: n mukainen taulukko ei voinut sisältää mitään relaatioarvoisia attribuutteja (ts. Kaikilla määritteillä tulisi olla atomiarvot).
Mikä on 2NF?
2NF on toinen normaalimuoto, jota käytetään relaatiotietokannoissa. Jotta taulukko täyttäisi 2NF: n, sitä tulisi noudattaa 1NF: n ja kaikkien attribuuttien, jotka eivät kuulu mihinkään ehdokasavaimeen (ts. Ei-prime-attribuutteihin), pitäisi täysin riippua mistä tahansa taulukon ehdokasavaimista..
Mikä on 3NF?
3NF on kolmas normaalimuoto, jota käytetään relaatiotietokannan normalisointiin. Coddin määritelmän mukaan taulukon sanotaan olevan 3NF: ssä, vain ja vain jos kyseinen taulukko on toisessa normaalimuodossa (2NF), ja kaikkien taulukon attribuuttien, jotka eivät kuulu ehdokasavaimeen, pitäisi olla suoraan riippuvaisia jokaisen taulukon jokaisessa ehdokkaassa. Carlo Zaniolo tuotti vuonna 1982 erilaisen määritelmän 3NF: lle. 3NF: n mukaiset taulukot eivät yleensä sisällä poikkeamia, joita esiintyy lisäämällä, poistamalla tai päivitettäessä tietueita taulukkoon.
Mikä on ero 1NF: n ja 2NF: n ja 3NF: n välillä??
1NF, 2NF ja 3NF ovat normaaleja muotoja, joita käytetään relaatiotietokannoissa redundanssien minimoimiseksi taulukoissa. 3NF: ää pidetään vahvempana normaalimuodona kuin 2NF: ää, ja sitä pidetään vahvempana normaalimuodona kuin 1NF. Siksi yleensä 3NF-muodon mukaisen taulukon saaminen edellyttää 2NF: n taulukon purkamista. Samoin 2NF: n mukaisen taulukon saaminen vaatii 1NF: n taulukon purkamisen. Jos kuitenkin 1NF: n mukainen taulukko sisältää ehdokasavaimet, jotka koostuvat vain yhdestä määritteestä (ts. Ei-yhdistelmäehdokkaat avaimet), tällainen taulukko vastaa automaattisesti 2NF: ää. Taulukoiden hajoaminen johtaa ylimääräisiin liittymisoperaatioihin (tai Cartesian-tuotteisiin) kyselyitä suoritettaessa. Tämä pidentää laskennallista aikaa. Toisaalta taulukoissa, jotka vastaavat vahvempia normaalimuotoja, olisi vähemmän redundansseja kuin taulukoissa, jotka vain vastaavat heikompia normaalimuotoja.