Ero normalisoinnin ja denormalisoinnin välillä

Normalisointi vs. denormalisointi

Relaatiotietokannat koostuvat suhteista (niihin liittyvät taulukot). Pöydät koostuvat sarakkeista. Jos taulukot ovat kaksi suurta (ts. Liian monta saraketta yhdessä taulukossa), tietokannan poikkeavuuksia voi esiintyä. Jos taulukot ovat kaksi pientä (ts. Tietokanta koostuu monista pienemmistä taulukoista), se olisi tehoton kyselyihin. Normalisointi ja denormalisointi ovat kaksi prosessia, joita käytetään tietokannan suorituskyvyn optimointiin. Normalisointi minimoi datataulukoissa olevat redundaatiot. Denormalisointi (normalisoinnin käänteinen vastakohta) lisää tarpeettomia tietoja tai ryhmätietoja.

Mikä on normalisointi?

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 redundansseja (kutsutaan ”normaalimuodoiksi”). 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 normaalimuodon (1NF), toisen normaalin muodon (2NF) ja kolmannen normaalin muodon (3NF) esitteli Edgar F. Codd. Boyce-Codd-normaalimuoto (BCNF) otettiin käyttöön vuonna 1974, Codd ja Raymond F. Boyce. Korkeammat normaalimuodot (4NF, 5NF ja 6NF) on määritelty, mutta niitä käytetään harvoin.

1NF: n mukainen taulukko varmistaa, että se todella edustaa relaatiota (ts. Se ei sisällä toistuvia tietueita) eikä sisällä mitään relaatioarvoisia attribuutteja (ts. Kaikilla määritteillä tulisi olla atomiarvot). Jotta taulukko täyttäisi 2NF: n, sitä tulisi noudattaa 1NF: n ja kaikkien attribuuttien, jotka eivät kuulu mihinkään ehdokasavaimeen (ts. Ei-ensisijaisiin attribuutteihin), pitäisi täysin riippua mistä tahansa taulukon ehdokasavaimista. 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 ehdokkausavaimeen, pitäisi olla suoraan riippuvaisia ​​jokaisesta ehdokkaan avain kyseiseen taulukkoon. BCNF (tunnetaan myös nimellä 3.5NF) kaappaa joitain poikkeamia, joita 3NF ei käsittele.

Mikä on denormalisointi?

Denormalisointi on normalisointiprosessin käänteinen prosessi. Denormalisointi toimii lisäämällä redundantteja tietoja tai ryhmittelemällä tietoja suorituskyvyn optimoimiseksi. Vaikka redundanttien tietojen lisääminen kuulostaa haitallisilta, denormalisointi on joskus erittäin tärkeä prosessi, jolla korjataan joitain relaatiotietokantaohjelmiston puutteista, joista voi aiheutua suuria suoritusrankoja normalisoitujen tietokantojen kanssa (jopa viritetty korkeamman suorituskyvyn kannalta). Tämä johtuu siitä, että useiden suhteiden (jotka ovat normalisoinnin tuloksia) yhdistäminen tuloksen tuottamiseksi kyselyyn voi joskus olla hidasta riippuen tietokantajärjestelmien todellisesta fyysisestä toteutuksesta.

Mikä on ero normalisoinnin ja denormalisoinnin välillä??

- Normalisointi ja denormalisointi ovat kaksi prosessia, jotka ovat täysin päinvastaisia.

- Normalisointi on prosessi, jossa suuret taulukot jaetaan pienempiin pienentämällä redundanttia dataa, kun taas normalisointi on redundanttien tietojen lisäämisen suorituskyvyn optimoimiseksi..

- Normalisointi suoritetaan tietokantojen poikkeavuuksien estämiseksi.

- Denormalisointi suoritetaan yleensä tietokannan lukuominaisuuksien parantamiseksi, mutta denormalisointiin käytettyjen lisärajoitteiden takia kirjoitukset (ts. Lisäämis-, päivitys- ja poistooperaatiot) voivat hidastua. Siksi denormalisoitu tietokanta voi tarjota huonomman kirjoitustuloksen kuin normalisoitu tietokanta.

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