Kung nagtatrabaho ka na sa mga database nang ilang sandali, malamang na narinig mo ang normal na termino. Marahil ay may nagtanong sa iyo na "Ang database ba ay normal?" o "ba yan sa BCNF?" Ang normalization ay kadalasang sinalubong bilang isang luho na ang mga akademiko lamang ay may oras. Gayunpaman, ang pag-alam sa mga prinsipyo ng normalisasyon at paglalapat ng mga ito sa iyong pang-araw-araw na mga gawain sa disenyo ng database ay talagang hindi lahat na kumplikado at maaari itong lubos na mapabuti ang pagganap ng iyong DBMS.
Sa artikulong ito, ipakikilala natin ang konsepto ng normalisasyon at panoorin ang pinakakaraniwang normal na mga anyo.
Ano ang Normalization?
Ang normalization ay ang proseso ng mahusay na pag-aayos ng data sa isang database. Mayroong dalawang mga layunin ng proseso ng normalisasyon: pag-aalis ng mga kalabisan na data (halimbawa, pag-iimbak ng parehong data sa higit sa isang mesa) at pagtiyak ng mga dependency ng data na may katuturan (tanging nagtataglay ng mga kaugnay na data sa isang table). Pareho sa mga ito ay karapat-dapat na mga layunin habang binabawasan nila ang dami ng espasyo ng isang database na kinakain at matiyak na ang data ay lohikal na nakaimbak.
Ang Mga Normal na Form
Ang database ng komunidad ay bumuo ng isang serye ng mga alituntunin para matiyak na ang mga database ay normalized. Ang mga ito ay tinutukoy bilang normal na mga form at binibilang mula sa isa (ang pinakamababang anyo ng normalisasyon, tinukoy bilang unang normal na form o 1NF) sa pamamagitan ng limang (ikalimang normal na anyo o 5NF). Sa mga praktikal na application, madalas mong makita ang 1NF, 2NF, at 3NF kasama ang paminsan-minsang 4NF. Ang ikalimang normal na anyo ay napaka-bihirang nakikita at hindi tatalakayin sa artikulong ito.
Bago natin simulan ang aming talakayan sa mga normal na anyo, mahalagang ituro na sila ang mga alituntunin at alituntunin lamang. Paminsan-minsan, ito ay kinakailangan upang lumihis mula sa kanila upang matugunan ang mga praktikal na kinakailangan sa negosyo. Gayunpaman, kapag naganap ang mga pagkakaiba-iba, lubhang mahalaga na suriin ang anumang posibleng mga sangkap na maaaring mayroon sila sa iyong system at account para sa mga posibleng hindi pagkakapare-pareho. Na sinabi, pag-usapan natin ang mga normal na anyo.
Unang Normal na Form (1NF)
Ang unang normal na form (1NF) ay nagtatakda ng mga pangunahing panuntunan para sa organisadong database:
- Tanggalin ang mga duplicate na hanay mula sa parehong table.
- Gumawa ng hiwalay na mga talahanayan para sa bawat pangkat ng mga kaugnay na data at tukuyin ang bawat hilera gamit ang isang natatanging haligi o hanay ng mga haligi (ang pangunahing susi).
Pangalawang Normal na Form (2NF)
Ang pangalawang normal na form (2NF) ay higit na tumutukoy sa konsepto ng pag-alis ng duplicative data:
- Matugunan ang lahat ng mga kinakailangan ng unang normal na form.
- Tanggalin ang mga subset ng data na nalalapat sa maraming hanay ng isang talahanayan at ilagay ang mga ito sa magkakahiwalay na mga talahanayan.
- Lumikha ng mga ugnayan sa pagitan ng mga bagong talahanayan at ng kanilang mga predecessors sa pamamagitan ng paggamit ng mga banyagang key.
Third Normal Form (3NF)
Ang ikatlong normal na form (3NF) ay nagpapatuloy ng isang malaking hakbang:
- Matugunan ang lahat ng mga kinakailangan ng pangalawang normal na form.
- Alisin ang mga haligi na hindi nakasalalay sa pangunahing susi.
Form ng Boyce-Codd Normal (BCNF o 3.5NF)
Ang Form ng Boyce-Codd Normal, na tinutukoy din bilang "normal at kalahati (3.5) na normal na anyo", ay nagdaragdag ng isa pang kinakailangan:
- Kilalanin ang lahat ng mga kinakailangan ng ikatlong normal na form.
- Ang bawat determinant ay dapat na isang kandidato key.
Ikaapat na Normal na Form (4NF)
Sa wakas, ang ika-apat na normal na form (4NF) ay may isang karagdagang kinakailangan:
- Kilalanin ang lahat ng mga kinakailangan ng ikatlong normal na form.
- Ang relasyon ay nasa 4NF kung wala itong mga multi-valued dependency.
Tandaan, ang mga panuntunan sa normalisasyon ay pinagsama. Para sa isang database na nasa 2NF, dapat munang tuparin nito ang lahat ng pamantayan ng isang database ng 1NF.
Dapat ko bang Normalize?
Habang ang database normalisasyon ay madalas na isang magandang ideya, ito ay hindi isang ganap na kinakailangan. Sa katunayan, may ilang mga kaso kung saan sadyang lumalabag sa mga alituntunin ng normalisasyon ay isang mahusay na kasanayan. Para sa higit pa sa paksang ito, basahin ang Dapat ko bang Normalize ang Aking Database?
Kung nais mong matiyak na normalize ang iyong database, magsimula sa pag-aaral kung paano ilagay ang iyong database sa First Normal Form.