Normalize ang Iyong Database: Paglipat sa Ikalawang Normal na Form (2NF)

Paglalagay ng Database sa Pangalawang Normal na Form

Sa nakalipas na buwan, tumingin kami sa maraming aspeto ng pag-normalize ng database table. Una, tinalakay namin ang mga pangunahing alituntunin ng database ng normalisasyon. Huling oras, sinaliksik namin ang mga pangunahing kinakailangan na inilatag ng unang normal na form (1NF). Ngayon, ipagpatuloy natin ang ating paglalakbay at takpan ang mga prinsipyo ng ikalawang normal na form (2NF).

Alalahanin ang pangkalahatang pangangailangan ng 2NF:

Ang mga panuntunang ito ay maaaring summarized sa isang simpleng pahayag: 2NF pagtatangka upang bawasan ang halaga ng kalabisan data sa isang talahanayan sa pamamagitan ng extracting ito, paglalagay nito sa bagong table (s) at paglikha ng mga relasyon sa pagitan ng mga talahanayan.

Tingnan natin ang isang halimbawa. Isipin ang isang online na tindahan na nagpapanatili ng impormasyon ng customer sa isang database. Maaaring magkaroon sila ng isang table na tinatawag na Mga Customer na may mga sumusunod na elemento:

Ang isang maikling pagtingin sa mesa na ito ay nagpapakita ng isang maliit na halaga ng kalabisan data. Inimbak namin ang "Sea Cliff, NY 11579" at "Miami, FL 33157" na mga entry dalawang beses bawat isa. Ngayon, maaaring hindi ito tulad ng sobrang naidagdag na imbakan sa aming simpleng halimbawa, ngunit isipin ang nasayang na puwang kung mayroon kaming libu-libong hanay sa aming talahanayan. Bukod pa rito, kung babaguhin ang ZIP code para sa Sea Cliff, kailangan naming gawin ang pagbabagong iyon sa maraming lugar sa buong database.

Sa isang istraktura ng database ng 2NF, ang kalabisan na impormasyon na ito ay nakuha at naka-imbak sa isang hiwalay na talahanayan. Ang aming bagong talahanayan (let's call it ZIPs) ay maaaring magkaroon ng sumusunod na mga patlang:

Kung gusto naming maging sobrang-mahusay, maaari pa rin naming punan ang talahanayang ito nang maaga - ang post office ay nagbibigay ng isang direktoryo ng lahat ng mga wastong ZIP code at ang kanilang mga relasyon sa lungsod / estado. Tiyak, nakatagpo ka ng sitwasyon kung saan ginagamit ang ganitong uri ng database. Ang isang tao na kumuha ng isang order ay maaaring humiling sa iyo para sa iyong ZIP code at pagkatapos ay alam ang lungsod at estado na iyong tinatawagan. Ang ganitong uri ng pag-aayos ay binabawasan ang error ng operator at nagpapataas ng kahusayan.

Ngayon na inalis na namin ang dobleng data mula sa talahanayan ng Mga Customer, nasiyahan na namin ang unang panuntunan ng ikalawang normal na form. Kailangan pa rin nating gamitin ang isang dayuhang susi upang magkasama ang dalawang talahanayan. Gagamitin namin ang ZIP code (ang pangunahing susi mula sa talahanayan ng ZIPs) upang likhain ang ugnayan na iyon. Narito ang aming bagong talahanayan ng Mga Customer:

Na-minimize na namin ang dami ng kalabisan na impormasyong nakaimbak sa database at ang aming istraktura ay nasa pangalawang normal na form!

Kung nais mong matiyak na normalize ang iyong database, galugarin ang aming iba pang mga artikulo sa serye na ito: