Trebam li normalizirati bazu podataka?

Normalizacija u stvarnom svijetu

Normalizacija baze podataka je jedna od svetih krava razvoja aplikacija. Svaki dodiplomski programski tečaj koji ste preuzeli ili knjigu koju ste pročitali vjerojatno propovijeda važnost normalizacije baza podataka .

Vrijeme je da izazovamo taj realizam. Ponekad je u redu da denormaliziram bazu podataka!

Kada trebate normalizirati?

Normalizacija baza podataka štiti integritet vaših podataka. To je sjajna ideja u mnogim slučajevima, i trebali biste započeti bilo koji dizajn baze podataka pokušaja s normalizacijom na umu. Ako možete normalizirati bazu podataka, idi za to! U stvari, Evo nekih praktičnih savjeta o tome kako normalizirati svoju bazu podataka na ovoj stranici:

Dno crta je da biste trebali normalizirati bazu podataka, osim ako nemate stvarno dobar razlog da to ne učinite. Normalizacija je obično praksa dizajna zvuka. To smanjuje suvišne informacije, optimizira izvedbu i smanjuje vjerojatnost da ćete imati problema s integritetom podataka koji proizlaze iz istovremenih podataka koji se kriju u različitim kutovima vaše baze podataka.

Neki dobri razlozi da se ne normaliziraju

To je rekao, postoje dobri razlozi da ne normalizirate vašu bazu podataka. Pogledajmo nekoliko:

  1. Spajanja su skupe . Normaliziranje vaše baze često uključuje stvaranje puno tablica. Zapravo, lako možete završiti s onim što mislite da bi trebao biti jednostavan upit koji obuhvaća pet ili deset stolova. Ako ste ikad pokušali raditi s pet stolova, znate da to radi u načelu, ali je uznemirujuće sporo u praksi. Ako gradite web aplikaciju koja se oslanja na višestruke veze s velikim tablicama, možda biste se mogli razmišljati: "Ako se samo ova baza podataka ne normalizira!" Kada čujete tu misao u glavi, dobro je da razmotriti denormalizaciju. Ako sve podatke koje taj upit možete staviti u jednu tablicu, a da pritom ne ugrožavate integritet podataka, idite! Biti pobunjenik i denormalizirati svoju bazu podataka. Nećete se osvrnuti!
  2. Normalizirani dizajn je težak . Ako radite s složenom shemom baze podataka , vjerojatno ćete se naći kako udarate glavom prema stolu u odnosu na složenost normalizacije. Kao jednostavno pravilo, ako cijeli dan pokušavate shvatiti kako se prebaciti na četvrti normalan oblik, previše ćete preći normalizaciju. Povratak natrag i zapitajte se je li zaista vrijedno nastaviti.
  1. Brzo i prljavo bi trebalo biti brzo i prljavo . Ako samo razvijaš prototip, učinite što radite brzo. Stvarno. U redu je. Brz razvoj aplikacija ponekad je važniji od elegantnog dizajna. Ne zaboravite se vratiti i pažljivo pogledati svoj dizajn kad budete spremni za prelazak iz faze prototipova. Cijena koju plaćate za brzu i prljavu izradu baze podataka je da ćete je morati baciti i početi ispočetka kada je vrijeme za izgradnju za proizvodnju.
  2. Ako koristite NoSQL bazu podataka , tradicionalna normalizacija nije poželjna. Umjesto toga, izradite bazu podataka pomoću BASE modela koji je daleko više praštajući. To je korisno kada spremate nestrukturirane podatke kao što su e-poruke, slike ili videozapisi.

Neke riječi opreza

Normalizacija baza podataka općenito je dobra ideja. Trebali biste pokušati slijediti principe normalizacije kada se čini razumnim to učiniti. Ali ako svi pokazatelji ukazuju da je normalizacija previše složena za implementaciju, razmislite o pristupu koji će obaviti posao, a istovremeno štiti vaše podatke.

Konačno - ako odlučite odstupiti od pravila normalizacije, budite oprezniji oko toga kako provodite integritet baze podataka. Ako pohranite suvišne podatke, postavite okidače i druge kontrole kako biste bili sigurni da informacije ostaju dosljedne.