Normalizacija vs Denormalizacija
Relacijske baze podataka čine relacije (povezane tablice). Tablice se sastoje od stupaca. Ako su tablice dvije velike (tj. Previše stupaca u jednoj tablici), tada mogu nastati anomalije baze podataka. Ako su tablice dvije male (tj. Bazu podataka čini mnogo manjih tablica), to bi bilo neučinkovito za postavljanje upita. Normalizacija i denormalizacija dva su procesa koja se koriste za optimizaciju performansi baze podataka. Normalizacija minimalizira redundancije prisutne u tablicama podataka. Denormalizacija (obrnuto od normalizacije) dodaje suvišne podatke ili podatke grupe.
Što je normalizacija?
Normalizacija je postupak koji se provodi kako bi se smanjili redundancije prisutne u podacima u relacijskim bazama podataka. Ovaj će postupak uglavnom podijeliti velike tablice na manje tablice s manje viška (nazvane "Normalni obrasci"). Te će se manje tablice međusobno povezati kroz dobro definirane odnose. U dobro normaliziranoj bazi podataka, svaka promjena ili izmjena podataka zahtijeva izmjenu samo jedne tablice. Prvi normalni obrazac (1NF), drugi normalni oblik (2NF) i Treći normalni oblik (3NF) uveo je Edgar F. Codd. Uobičajeni oblik Boyce-Codda (BCNF) uveli su 1974. godine Codd i Raymond F. Boyce. Definirani su viši normalni oblici (4NF, 5NF i 6NF), ali oni se rijetko koriste.
Tablica koja je u skladu s 1NF osigurava da zapravo predstavlja relaciju (tj. Ne sadrži zapise koji se ponavljaju) i ne sadrži nikakve atribute koji se relacijski vrednuju (tj. Svi atributi trebaju imati atomske vrijednosti). Da bi tablica bila u skladu s 2NF, ona bi trebala biti usklađena s 1NF, a svaki atribut koji nije dio bilo kojeg ključa kandidata (tj. Neprimjerni atributi) trebao bi u potpunosti ovisiti o bilo kojem ključu kandidata u tablici. Prema Coddovoj definiciji, za tablicu se kaže da je u 3NF, ako i samo ako je ta tablica u drugom normalnom obliku (2NF) i svaki atribut u tablici koji ne pripada ključu kandidata trebao bi izravno ovisiti o svakom ključ kandidata te tablice. BCNF (poznat i kao 3.5NF) bilježi neke anomalije koje 3NF ne rješava.
Što je denormalizacija?
Denormalizacija je obrnuti proces procesa normalizacije. Denormalizacija djeluje dodavanjem suvišnih podataka ili grupiranjem podataka radi optimizacije izvedbe. Iako dodavanje suvišnih podataka zvuči kontraproduktivno, ponekad je denormalizacija vrlo važan proces za prevladavanje nekih nedostataka u softveru relacionih baza podataka koji mogu nanijeti velike kazne performansi s normaliziranim bazama podataka (čak podešenim za veće performanse). To je zato što spajanje nekoliko relacija (koje su rezultati normalizacije) radi stvaranja rezultata u 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 postupak podjele većih tablica na manje smanjujući suvišne podatke, dok je denormalizacija postupak dodavanja suvišnih podataka radi optimizacije izvedbe. - Normalizacija se provodi kako bi se spriječile anomalije u bazama podataka. - Denormalizacija se obično provodi radi poboljšanja performansi čitanja baze podataka, ali zbog dodatnih ograničenja koja se koriste za denormalizaciju, upisi (tj. Operacije umetanja, ažuriranja i brisanja) mogu postati sporije. Stoga denormalizirana baza podataka može ponuditi lošije performanse upisa od normalizirane baze podataka. - Često se preporučuje da biste trebali "normalizirati dok ne zaboli, denormalizirati dok ne uspije". |