Da li treba normalizovati svoju bazu podataka?

Normalizacija u stvarnom svetu

Normalizacija baze podataka je jedna od svetih krava razvoja aplikacija. Svaki dodiplomski program koji ste vodili ili ste pročitali vjerovatno propagira važnost normalizacije baza podataka .

Vreme je da se ospori taj truizam. Ponekad je u redu da deformirate svoju bazu podataka!

Kada biste trebali normalizovati?

Normalizacija baze podataka štiti integritet vaših podataka. To je sjajna ideja u mnogim slučajevima, i trebali biste započeti bilo koji poduhvat dizajna baze podataka s normalizacijom u vidu. Ako možete normalizovati svoju bazu podataka, idite po njega! Zapravo, Evo nekih praktičnih saveta kako normalizovati svoju bazu podataka na ovoj web lokaciji:

Donja linija je da trebate normalizirati svoju bazu podataka, osim ako imate stvarno dobar razlog da to ne učinite. Normalno je obično zvučna praksa dizajna. Smanjuje se redundantne informacije, optimizuje performanse i smanjuje vjerovatnoću da ćete imati problema sa integritetom podataka koji proizilaze iz toga što su isti podaci srušeni u različitim dijelovima vaše baze podataka.

Neki dobri razlozi da se ne normalizuju

Ipak, postoje neki dobri razlozi da se vaša baza podataka ne normalizuje. Pogledajmo nekoliko:

  1. Pridruživanje je skupo . Normiranje vaše baze podataka često podrazumeva stvaranje puno tabela. U stvari, lako možete da završite sa onim što mislite da bi trebalo da bude jednostavan upit koji obuhvata pet ili 10 tabela. Ako ste ikada pokušali da učestvujete u petom stolu, znate da to funkcioniše u principu, ali da je u praksi teško sporo. Ako kreirate web aplikaciju koja se oslanja na pitanja višestrukih udruživanja protiv velikih tabela, možda ćete znati da razmišljate: "Ako samo ova baza podataka nije normirana!" Kada čujete tu misao u glavi, dobro je vrijeme razmotrite denormalizaciju. Ako možete da zadržite sve podatke koje je taj upit koristio u jednoj tablici bez stvarnog ugrožavanja integriteta vaših podataka, idite na to! Budi pobunjenik i denormalizuj svoju bazu podataka. Nećete se vratiti!
  2. Normalizovani dizajn je težak . Ako radite sa složenom šemom baze podataka , verovatno ćete se nadati udaranju glavom prema stolu zbog složenosti normalizacije. Kao jednostavno pravilo, ako provodite ceo dan pokušavajući da shvatite kako da pređete na četvrtu normalnu formu, možda ćete preduzimati normalizaciju. Odmaknite se i pitajte se da li je stvarno vredno nastaviti.
  1. Brzo i prljavo treba brzo i prljavo . Ako samo razvijate prototip, uradite sve što brzo radi. Stvarno. Uredu je. Brzi razvoj aplikacija je ponekad važniji od elegantnog dizajna. Samo zapamtite da se vratite nazad i pažljivo pogledajte svoj dizajn kada ste spremni da se krećete izvan faze izrade prototipa. Cena koju plaćate za brzi i prljavi dizajn baze podataka jeste da ćete možda morati da ga izbacite i počnete kada je vrijeme za izgradnju za proizvodnju.
  2. Ako koristite NoSQL bazu podataka , tradicionalna normalizacija nije poželjna. Umesto toga, dizajnirajte svoju bazu koristeći BASE model koji je daleko više opraštajući. Ovo je korisno kada memorišete nestruktuirane podatke kao što su e-pošte, slike ili video zapisi.

Neke reči opreza

Normiranje baze podataka je, uopšteno, dobra ideja. Trebali biste pokušati da pratite principe normalizacije kada je to razumno. Ali ako svi indikatori ukazuju na normalizaciju koji je suviše složen da bi se primenio, razmotrite pristup koji će obaviti posao dok još uvek štiti vaše podatke.

Konačno - ako odlučite da odustanete od pravila normalizacije, budite pažljivi u pogledu načina na koji provjerite integritet baze podataka. Ukoliko čuvate redundantne informacije, stavite okidače i druge kontrole kako biste bili sigurni da informacije ostanu dosledne.