Razlika med normalizacijo in denormalizacijo

Normalizacija vs Denormalizacija

Relacijske baze podatkov so sestavljene iz odnosov (povezane tabele). Tabele so sestavljene iz stolpcev. Če sta tabeli dve veliki (tj. Preveč stolpcev v eni tabeli), lahko pride do nepravilnosti v bazi podatkov. Če sta tabeli dve majhni (tj. Podatkovna baza je sestavljena iz številnih manjših tabel), bi bilo poizvedovanje neučinkovito. Normalizacija in denormalizacija sta dva procesa, ki se uporabljata za optimizacijo učinkovitosti baze podatkov. Normalizacija zmanjša odpuščanja, ki so prisotna v podatkovnih tabelah. Denormalizacija (obratno od normalizacije) dodaja odvečne podatke ali skupinske podatke.

Kaj je normalizacija?

Normalizacija je postopek, ki se izvaja za zmanjšanje odpuščanj, ki so prisotni v podatkih v relacijskih bazah podatkov. Ta postopek bo v glavnem razdelil velike tabele na manjše tabele z manj presežki (imenovane "običajne oblike"). Te manjše tabele bodo med seboj povezane z dobro opredeljenimi odnosi. V dobro normalizirani zbirki podatkov bo vsaka sprememba ali sprememba podatkov morala spremeniti samo eno tabelo. Prvo normalno obliko (1NF), drugo normalno obliko (2NF) in tretjo normalno obliko (3NF) je uvedel Edgar F. Codd. Normalno obliko Boyce-Codd (BCNF) sta leta 1974 uvedla Codd in Raymond F. Boyce. Opredeljeni so višji normalni obrazci (4NF, 5NF in 6NF), vendar se uporabljajo redko.

Tabela, ki ustreza 1NF, zagotavlja, da dejansko predstavlja razmerje (tj. Ne vsebuje nobenih zapisov, ki se ponavljajo), in ne vsebuje atributov, ki so relacijsko ovrednoteni (tj. Vsi atributi bi morali imeti atomske vrednosti). Da je tabela skladna z 2NF, mora biti v skladu z 1NF in vsak atribut, ki ni del nobenega ključa kandidata (tj. Neprimerni atributi), bi moral biti v celoti odvisen od katerega koli od ključnih ključev v tabeli. Po Coddovi definiciji naj bi bila tabela v 3NF, če in samo če je ta tabela v drugi normalni obliki (2NF), vsak atribut v tabeli, ki ne spada v ključ kandidata, pa bi moral biti neposredno odvisen od vsakega kandidatni ključ te tabele. BCNF (znan tudi kot 3,5NF) zajame nekatere anomalije, ki jih ne obravnava 3NF.

Kaj je denormalizacija?

Denormalizacija je obratni postopek normalizacije. Denormalizacija deluje z dodajanjem odvečnih podatkov ali združevanjem podatkov za optimizacijo uspešnosti. Čeprav se dodajanje odvečnih podatkov sliši kontraproduktivno, je včasih denormalizacija zelo pomemben postopek za odpravljanje nekaterih pomanjkljivosti programske opreme relacijske baze podatkov, ki lahko povzročijo velike kazni zaradi normaliziranih baz podatkov (tudi za boljše delovanje). To je zato, ker je lahko združevanje več odnosov (ki so rezultat normalizacije) za ustvarjanje rezultata poizvedbe včasih počasno, odvisno od dejanske fizične izvedbe sistemov baz podatkov.

Kakšna je razlika med normalizacijo in denormalizacijo?

- Normalizacija in denormalizacija sta dva procesa, ki sta povsem nasprotna.

- Normalizacija je postopek delitve večjih tabel na manjše, ki zmanjšajo odvečne podatke, medtem ko je denormalizacija postopek dodajanja odvečnih podatkov za optimizacijo učinkovitosti.

- Normalizacija se izvaja za preprečitev nepravilnosti v bazah podatkov.

- Denormalizacija se običajno izvaja za izboljšanje bralne učinkovitosti baze podatkov, vendar zaradi dodatnih omejitev, ki se uporabljajo za denormalizacijo, lahko pisanje (tj. Operacije vstavljanja, posodabljanja in brisanja) postane počasnejše. Zato lahko denormalizirana baza podatkov ponudi slabšo uspešnost pisanja kot normalizirana baza podatkov.

- Pogosto je priporočljivo, da se "normalizirate, dokler ne boli, denormalizirajte, dokler ne deluje".