Normalizacija vs Denormalizacija
Relacijske baze podataka sastoje se od odnosa (povezane tablice). Tablice su sastavljene od stupaca. Ako su tablice dva velika (tj. Previše stupaca u jednoj tablici), tada se mogu pojaviti anomalije baze podataka. Ako su tablice dvije male (tj. Baza podataka sastoji se od mnogo manjih tablica), bila bi neučinkovita za postavljanje upita. Normalizacija i Denormalizacija dva su procesa koja se koriste za optimizaciju performansi baze podataka. Normalizacijom se minimiziraju viškovi koji su prisutni u tablicama podataka. Denormalizacija (obrnuto od normalizacije) dodaje suvišne podatke ili grupne podatke.
Što je normalizacija?
Normalizacija je proces koji se provodi kako bi se smanjila redukcija prisutna u podacima u relacijskim bazama podataka. Ovaj će postupak uglavnom podijeliti velike tablice u manje tablice s manjim zalihama (koji se nazivaju "normalni oblici"). Ove će se manje tablice međusobno povezati kroz dobro definirane odnose. U dobro normaliziranoj bazi podataka svaka izmjena ili promjena podataka zahtijevat će izmjenu samo jedne tablice. Prvi normalan oblik (1NF), drugi normalan oblik (2NF) i Treći normalan oblik (3NF) uveo je Edgar F. Codd. Normalan oblik Boyce-Codd (BCNF) uveli su 1974. godine Codd i Raymond F. Boyce. Definirani su viši normalni oblici (4NF, 5NF i 6NF), ali se oni rijetko koriste.
Tablica koja je u skladu s 1NF uvjerava da zapravo predstavlja odnos (tj. Da ne sadrži zapise koji se ponavljaju) i ne sadrži atribute koji su relacijski vrijednosti (tj. Svi atributi trebaju imati atomske vrijednosti). Da bi tablica bila u skladu s 2NF, ona bi trebala biti u skladu s 1NF, a svaki atribut koji nije dio nijednog kandidatskog ključa (tj. Ne-primarni atributi) trebao bi u potpunosti ovisiti o bilo kojem od ključeva kandidata u tablici. Prema Coddovoj definiciji, za tablicu se kaže da ima 3NF, ako i samo ako je ta tablica u drugom normalnom obliku (2NF), a svaki atribut u tablici koji ne pripada kandidatskom ključu treba izravno ovisiti o svakom kandidatski ključ te tablice. BCNF (poznat i kao 3.5NF) bilježi neke anomalije koje 3NF ne rješava.
Što je Denormalizacija?
Denormalizacija je obrnuti proces normalizacije. Denormalizacija funkcionira dodavanjem suvišnih podataka ili grupiranjem podataka kako bi se optimizirala izvedba. Iako dodavanje suvišnih podataka zvuči kontraproduktivno, ponekad je denormalizacija vrlo važan proces za prevladavanje nekih nedostataka u softveru relacijske baze podataka koji mogu rezultirati velikim kaznama performansi s normaliziranim bazama podataka (čak i podešenim za veće performanse). To je zato što spajanje nekoliko odnosa (koji su rezultati normalizacije) radi dobivanja rezultata na upitu ponekad može biti sporo, ovisno o stvarnoj fizičkoj implementaciji sustava baza podataka.
Koja je razlika između normalizacije i denormalizacije? - Normalizacija i denormalizacija dva su procesa koja su potpuno suprotna. - Normalizacija je proces dijeljenja većih tablica na manje koji smanjuju suvišne podatke, dok je denormalizacija proces dodavanja suvišnih podataka radi optimizacije performansi.. - Normalizacija se provodi kako bi se spriječile anomalije baza podataka. - Denormalizacija se obično provodi radi poboljšanja performansi čitanja baze podataka, ali zbog dodatnih ograničenja koja se koriste za denormalizaciju, pisanje (tj. Operacije umetanja, ažuriranja i brisanja) mogu postati sporije. Prema tome, denormalizirana baza podataka može ponuditi lošije performanse pisanja od normalizirane baze podataka. - Često se preporučuje da se "normalizirate dok ne boli, denormalizirajte dok ne djeluje".
|