Normalisaation Ja Denormalisoinnin Ero

Normalisaation Ja Denormalisoinnin Ero
Normalisaation Ja Denormalisoinnin Ero

Video: Normalisaation Ja Denormalisoinnin Ero

Video: Normalisaation Ja Denormalisoinnin Ero
Video: Free to Play 2024, Marraskuu
Anonim

Normalisointi vs. denormalisointi

Relaatiotietokannat koostuvat suhteista (niihin liittyvät taulukot). Pöydät koostuvat sarakkeista. Jos taulukot ovat kaksi isoa (ts. Liian monta saraketta yhdessä taulukossa), tietokannan poikkeavuuksia voi esiintyä. Jos taulukot ovat kaksi pientä (ts. Tietokanta koostuu monista pienemmistä taulukoista), se olisi tehoton kyselyssä. Normalisointi ja denormalisointi ovat kaksi prosessia, joita käytetään tietokannan suorituskyvyn optimointiin. Normalisointi minimoi tietotaulukoissa esiintyvät redundanssit. Denormalisointi (normalisoinnin käänteinen) lisää turhaa tietoa tai ryhmätiedot.

Mikä on normalisointi?

Normalisointi on prosessi, joka suoritetaan minimoimaan relaatiotietokantojen tiedoissa esiintyvät redundanssit. Tämä prosessi jakaa pääasiassa suuret taulukot pienempiin taulukoihin, joissa on vähemmän irtisanomisia (ns.”Normaalilomakkeet”). Nämä pienemmät taulukot liittyvät toisiinsa hyvin määriteltyjen suhteiden avulla. Hyvin normalisoidussa tietokannassa kaikki tietojen muutokset edellyttävät vain yhden taulukon muokkaamista. Ensimmäisen normaalin muodon (1NF), toisen normaalin muodon (2NF) ja kolmannen normaalin muodon (3NF) esitteli Edgar F. Codd. Boyce-Codd Normal Form (BCNF) otettiin käyttöön vuonna 1974 Codd ja Raymond F. Boyce. Korkeammat normaalilomakkeet (4NF, 5NF ja 6NF) on määritelty, mutta niitä käytetään harvoin.

1NF: n mukainen taulukko varmistaa, että se edustaa tosiasiallisesti relaatiota (ts. Se ei sisällä toistuvia tietueita) eikä sisällä relaatioarvoisia attribuutteja (ts. Kaikilla attribuuteilla tulisi olla atomiarvot). Jotta taulukko täyttäisi 2NF: n vaatimukset, sen tulisi olla yhdenmukainen 1NF: n kanssa, ja minkä tahansa attribuutin, joka ei ole osa mitään ehdokasavainta (ts. Ei-prime-määritteitä), pitäisi olla täysin riippuvaisia taulukon ehdokkaan avaimista. Coddin määritelmän mukaan taulukon sanotaan olevan 3NF, vain ja vain, jos taulukko on toisessa normaalimuodossa (2NF), ja kaikkien taulukon attribuuttien, jotka eivät kuulu ehdokasavaimeen, pitäisi olla suoraan riippuvaisia kaikista kyseisen taulukon ehdokasavain. BCNF (tunnetaan myös nimellä 3.5NF) sieppaa joitain poikkeavuuksia, joita 3NF ei korjaa.

Mitä denormalisointi on?

Denormalisointi on normalisointiprosessin käänteinen prosessi. Denormalisointi toimii lisäämällä tarpeettomia tietoja tai ryhmittelemällä tietoja suorituskyvyn optimoimiseksi. Vaikka redundantin datan lisääminen kuulostaa haitalliselta, joskus denormalisointi on erittäin tärkeä prosessi sellaisten relaatiotietokantaohjelmistojen puutteiden poistamiseksi, joista saattaa aiheutua raskaita suoritussakkoja normalisoiduilla tietokannoilla (jopa viritettynä parempaan suorituskykyyn). Tämä johtuu siitä, että useiden relaatioiden (jotka ovat normalisoinnin tuloksia) yhdistäminen tuloksen tuottamiseksi kyselyyn voi joskus olla hidasta riippuen tietokantajärjestelmien todellisesta fyysisestä toteutuksesta.

Mitä eroa on normalisoinnilla ja denormalisoinnilla?

- Normalisointi ja denormalisointi ovat kaksi täysin vastakkaista prosessia.

- Normalisointi on prosessi, jossa suuremmat taulukot jaetaan pienempiin, mikä vähentää turhaa tietoa, kun taas denormalisointi on prosessi, jolla lisätään redundanttia dataa suorituskyvyn optimoimiseksi.

- Normalisointi suoritetaan tietokantojen poikkeavuuksien estämiseksi.

- Denormalisointi suoritetaan yleensä tietokannan lukutehon parantamiseksi, mutta denormalisointiin käytettävien lisärajoitusten vuoksi kirjoitus (esim. Lisäys-, päivitys- ja poistotoiminnot) voi hidastua. Siksi denormalisoitu tietokanta voi tarjota heikompaa kirjoitustehoa kuin normalisoitu tietokanta.

- Usein suositellaan, että "normalisoit, kunnes se sattuu, denormalisoi, kunnes se toimii".

Suositeltava: