Middle
Šta je normalizacija i denormalizacija u kontekstu rada sa bazama podataka?
sobes.tech АИ
Одговор од АИ
Normalizacija je proces organizacije podataka u bazi podataka radi smanjenja redundancije i poboljšanja integriteta podataka. Denormalizacija je proces dodavanja redundantnih podataka u bazu podataka radi poboljšanja performansi upita.
Normalizacija:
- Principi: Uklanjanje ponavljajućih grupa, zavisnosti između nepovezanih atributa.
- Obrasci normalizacije (glavni):
- 1NF (Prvi normalni oblik): Atomske vrednosti u kolonama, odsustvo ponavljajućih grupa.
- 2NF (Drugi normalni oblik): U 1NF + odsustvo delimičnih zavisnosti.
- 3NF (Treći normalni oblik): U 2NF + odsustvo tranzitivnih zavisnosti.
- Boyce-Codd normalni oblik (BCNF): Stroža verzija 3NF.
- Prednosti:
- Smanjenje redundancije podataka (ušteda prostora).
- Poboljšanje konzistentnosti podataka.
- Pojednostavljenje modifikacije podataka (ubacivanje, ažuriranje, brisanje).
- Nedostaci:
- Povećanje broja tabela.
- Potreba za spajanjem tabela za dobijanje potpunih informacija (JOIN-ovi), što može smanjiti performanse upita.
Denormalizacija:
- Principi: Svesno kršenje pravila normalizacije radi ubrzanja čitanja podataka.
- Tipične tehnike:
- Dupliranje podataka (npr. čuvanje naziva proizvoda u tabeli porudžbina).
- Spajanje tabela.
- Prethodno računanje agregatnih vrednosti.
- Prednosti:
- Povećava performanse upita (posebno SELECT).
- Smanjuje broj JOIN-ova.
- Može biti korisno za izveštaje i OLAP sisteme.
- Nedostaci:
- Povećanje redundancije podataka (gubitak prostora).
- Rizik od nekonzistentnosti podataka.
- Komplikovanje modifikacija podataka (potreba za ažuriranjem podataka na više mesta).
Izbor između normalizacije i denormalizacije zavisi od specifičnosti aplikacije, prioriteta (integritet podataka ili performanse) i prirode upita. Obično se primenjuje normalizacija za OLTP sisteme (online transakcije), a denormalizacija za OLAP sisteme (analitička obrada) ili u kritičnim oblastima sa visokim performansama OLTP.