Normaalimuoto on relaatiotietomallissa olevan suhteen ominaisuus, joka luonnehtii sitä redundanssilla, mikä voi mahdollisesti johtaa loogisesti virheellisiin tuloksiin otanta- tai muuttamisesta. Normaalimuoto määritellään joukoksi vaatimuksia, jotka suhteen on täytettävä.
Tietokantasuhteiden muuntamista normaalimuotojen mukaiseen muotoon kutsutaan normalisoinniksi . Normalisoinnin tarkoituksena on saattaa tietokannan rakenne sellaiseen muotoon, joka tarjoaa minimaalisen loogisen redundanssin, eikä sen ole tarkoitus vähentää tai lisätä suorituskykyä tai vähentää tai lisätä tietokannan fyysistä määrää [1] . Normalisoinnin perimmäisenä tavoitteena on vähentää tietokantaan tallennettujen tietojen mahdollista epäjohdonmukaisuutta. Kuten K. Date [2] totesi , normalisointiprosessin yleinen tarkoitus on seuraava:
Redundanssi eliminoidaan yleensä hajottamalla suhteita siten, että jokaiseen suhteeseen tallennetaan vain ensisijaiset tosiasiat (eli faktat, jotka eivät johdu muista tallennetuista faktoista).
Vaikka normalisointiideat ovat erittäin hyödyllisiä tietokannan suunnittelussa, ne eivät suinkaan ole universaaleja tai tyhjentäviä keinoja parantaa tietokantasuunnittelun laatua. Tämä johtuu siitä, että tietokantarakenteessa on liikaa erilaisia mahdollisia virheitä ja puutteita, joita ei voida poistaa normalisoinnilla. Näistä näkökohdista huolimatta normalisointiteoria on erittäin arvokas relaatioteorian ja -käytännön saavutus, koska se tarjoaa tieteellisesti tiukat ja kohtuulliset kriteerit tietokantaprojektin laadulle ja muodollisia menetelmiä tämän laadun parantamiseksi. Tällä tavalla normalisointiteoria erottuu jyrkästi muissa tietomalleissa tarjottavien puhtaasti empiiristen suunnittelulähestymistapojen [3] taustalla . Lisäksi voidaan väittää, että koko tietotekniikan alalla ei käytännössä ole olemassa menetelmiä arvioida ja parantaa suunnitteluratkaisuja, jotka olisivat verrattavissa relaatiotietokantojen normalisointiteoriaan muodollisen kurinalaisuuden tasolla.
Normalisointia kritisoidaan joskus sillä perusteella, että "se on vain maalaisjärkeä", ja kuka tahansa pätevä ammattilainen "luonnollisesti" suunnittelee täysin normalisoidun tietokannan ilman, että hänen tarvitsee soveltaa riippuvuusteoriaa [4] . Kuitenkin, kuten Christopher Date huomauttaa , normalisointi on juuri niitä terveen järjen periaatteita, joita kypsä suunnittelija ohjaa mielessään, eli normalisoinnin periaatteet ovat formalisoituja tervettä järkeä . Samaan aikaan terveen järjen periaatteiden tunnistaminen ja virallistaminen on erittäin vaikea tehtävä, ja onnistuminen sen ratkaisemisessa on merkittävä saavutus [4] .
Monet tiedemiehet osallistuivat normalisointiteorian luomiseen ja kehittämiseen. Kuitenkin E. Codd [4] ehdotti kolmea ensimmäistä normaalimuotoa ja toiminnallisen riippuvuuden käsitettä .
Relaatiomuuttuja on ensimmäisessä normaalimuodossa (1NF) jos ja vain jos missä tahansa kelvollisessa relaatioarvossa jokainen sen monikko sisältää täsmälleen yhden arvon kullekin attribuutille.
Relaatiomallissa relaatio on aina ensimmäisessä normaalimuodossa käsiterelaation määritelmän mukaan . Mitä tulee eri taulukoihin , ne eivät ehkä ole oikeita suhteiden esityksiä, ja näin ollen ne eivät välttämättä ole 1NF:ssä.
Relaatiomuuttuja on toisessa normaalimuodossa, jos ja vain jos se on ensimmäisessä normaalimuodossa ja jokainen ei-avainattribuutti on redusoitumattomasti (toiminnallisesti täydellinen) riippuvainen ehdokasavaimestaan. Toiminnallisesti täydellinen riippuvuus tarkoittaa, että jos ehdokasavain on yhdistelmä, attribuutti riippuu koko avaimesta eikä sen osista.
Relaatiomuuttuja on kolmannessa normaalimuodossa silloin ja vain, jos se on toisessa normaalimuodossa eikä ei-avainattribuuttien transitiivisia funktionaalisia riippuvuuksia avainattribuuteista ole.
Relaatiomuuttuja on Boyce-Codd-normaalimuodossa (toisin sanoen vahvassa kolmannessa normaalimuodossa) silloin ja vain, jos jokaisella sen ei-triviaalilla ja vasemmalle redusoitumattomalla toiminnallisella riippuvuudella on jokin potentiaalinen avain determinanttina .
Relaatiomuuttuja on neljännessä normaalimuodossa, jos se on Boyce-Coddin normaalimuodossa eikä sisällä ei-triviaaleja moniarvoisia riippuvuuksia .
Relaatiomuuttuja on viidennessä normaalimuodossa (eli projektitiivis-konnektiivisessa normaalimuodossa) silloin ja vain, jos jokainen siinä oleva ei-triviaali yhteysriippuvuus määräytyy tämän suhteen potentiaaliavaimen (-avain) perusteella.
Relaatiomuuttuja on DKNF:ssä silloin ja vain, jos jokainen sille asetettu rajoitus on looginen seuraus relaatiomuuttujalle määrätyistä toimialueen rajoituksista ja avainrajoituksista.
Relaatiomuuttuja on kuudennessa normaalimuodossa silloin ja vain, jos se täyttää kaikki ei-triviaaliset liitosriippuvuudet. Määritelmästä seuraa, että muuttuja on 6NF:ssä silloin ja vain jos se on redusoitumaton, eli sitä ei voida hajottaa edelleen ilman häviötä. Jokainen relaatiomuuttuja, joka on 6NF:ssä, on myös 5NF:ssä.
K. Date esitteli sen kirjassaan [2] kronologisen tietokannan viidennen normaalimuodon yleistyksenä .
normaaleja muotoja | |
---|---|
Tietokanta | |
---|---|
Käsitteet |
|
Objektit |
|
Avaimet | |
SQL | |
Komponentit |