Dapat ko bang I-normalize ang Aking Database?

Normalization sa Real World

Ang normalisasyon sa database ay isa sa mga banal na cows ng pag-develop ng application. Ang bawat kurso sa undergraduate programming na iyong kinuha o libro na nabasa mo ay malamang na nangangaral ng kahalagahan ng pag- normalize ng mga database .

Panahon na upang hamunin ang katotohanan. Minsan ito ay OK upang denormalize ang iyong database!

Kailan Ka Dapat Normalize?

Pinoprotektahan ng database normalisasyon ang integridad ng iyong data. Ito ay isang mahusay na ideya sa maraming mga kaso, at dapat mong simulan ang anumang disenyo ng database pagsikapan sa normalisasyon sa isip. Kung maaari mong gawing normal ang iyong database, pumunta para dito! Sa katunayan, Narito ang ilang praktikal na payo kung paano mag-normalize ang iyong database sa site na ito:

Ang ilalim na linya ay dapat mong gawing normal ang iyong database maliban kung mayroon kang isang talagang magandang dahilan na huwag gawin ito. Normalizing ay karaniwang tunog na kasanayan disenyo. Binabawasan nito ang kalabisan na impormasyon, na-optimize ang pagganap at binabawasan ang posibilidad na magkakaroon ka ng mga isyu sa integridad ng data na nagreresulta mula sa pagkakaroon ng parehong data na naitatag sa iba't ibang sulok ng iyong database.

Ang ilang mga mabuting dahilan ay hindi upang gawing normal

Iyon ay sinabi, may ilang mga magandang dahilan upang hindi normalize ang iyong database. Tingnan natin ang ilan:

  1. Ang mga pagsali ay mahal . Karaniwang nagsasangkot ang pagbubuo ng iyong database sa paglikha ng maraming mga talahanayan. Sa katunayan, madali mong masisira ang iyong iniisip ay isang simpleng tanong na sumasaklaw sa lima o 10 mga talahanayan. Kung sakaling sinubukan mo ang paggawa ng isang limang talahanayan sumali, alam mo na ito ay gumagana sa prinsipyo, ngunit ang painstakingly mabagal sa pagsasanay. Kung ikaw ay nagtatayo ng isang web application na umaasa sa maramihang-sumali sa mga tanong laban sa malalaking mga talahanayan, maaari mong makita ang iyong sarili na iniisip, "Kung lamang ang database na ito ay hindi normalized!" Kapag naririnig mo ang naisip sa iyong ulo, ito ay isang magandang panahon upang isaalang-alang ang denormalizing. Kung maaari mong ilagay ang lahat ng data na ginamit ng query na iyon sa isang solong mesa na walang talagang nakasisira sa iyong data integridad, pumunta para dito! Maging isang maghimagsik at tukuyin ang iyong database. Hindi ka lalingon!
  2. Normalized na disenyo ay mahirap . Kung nagtatrabaho ka sa isang komplikadong database schema , malamang na masusumpungan mo ang iyong sarili banging iyong ulo laban sa talahanayan sa ibabaw ng pagiging kumplikado ng normalisasyon. Bilang isang simpleng tuntunin ng hinlalaki, kung gumagastos ka sa lahat ng araw na sinusubukan upang malaman kung paano lumipat sa ika-apat na normal na form, maaari kang kumuha ng normalization masyadong malayo. Bumalik ka at tanungin ang iyong sarili kung talagang sulit itong magpatuloy.
  1. Ang mabilis at marumi ay dapat na mabilis at marumi . Kung ikaw ay bumubuo lamang ng isang prototype, gawin lamang ang anumang gumagana nang mabilis. Talaga. OK lang. Mabilis na pag-unlad ng application ay minsan mas mahalaga kaysa sa eleganteng disenyo. Tandaan lamang na bumalik at maingat na pagtingin sa iyong disenyo kapag handa ka na upang lumipat sa kabila ng prototyping phase. Ang presyo na binabayaran mo para sa isang mabilis at marumi na disenyo ng database ay maaaring kailangan mong itapon ito at magsimulang muli kapag oras na upang magtayo para sa produksyon.
  2. Kung gumagamit ka ng isang database ng NoSQL , ang tradisyunal na normalisasyon ay hindi kanais-nais. Sa halip, disenyo ng iyong database gamit ang BASE modelo na kung saan ay malayo mas mapagpatawad. Ito ay kapaki-pakinabang kapag ikaw ay nagtatabi ng hindi natukoy na data tulad ng mga email, mga imahe o mga video.

Ang ilang mga salita ng babala

Karaniwang ideya ang database normalisasyon. Dapat mong subukang sundin ang mga prinsipyo ng normalisasyon kapag tila makatwirang gawin ito. Ngunit kung ang lahat ng mga tagapagpahiwatig ay tumutukoy sa pagiging normalisasyon na masyadong kumplikado upang ipatupad, isaalang-alang ang isang diskarte na makakakuha ng trabaho tapos na habang pinoprotektahan ang iyong data.

Panghuli - kung pipiliin mong lumihis mula sa mga panuntunan ng normalisasyon, maging mas mapagbantay tungkol sa kung paano mo ipapatupad ang integridad ng database. Kung nag-iimbak ka ng kalabisan na impormasyon, ilagay ang mga nag-trigger at iba pang mga kontrol sa lugar upang matiyak na ang impormasyon ay mananatiling pare-pareho.