Ang mga database ay nakasalalay sa mga susi upang mag-imbak, mag-uri-uriin at ihambing o lumikha ng mga relasyon sa pagitan ng mga talaan. Kung ikaw ay nasa paligid ng mga database nang ilang sandali, malamang na naririnig mo ang tungkol sa iba't ibang uri ng mga susi: pangunahing mga susi, kandidato na susi, at mga banyagang key. Kapag lumikha ka ng isang bagong talahanayan ng database, hiniling mong pumili ng isang pangunahing susi na kakaiba makilala ang bawat rekord na nakaimbak sa mesa na iyon.
Bakit Mahalaga ang Isang Pangunahing Utos
Ang pagpili ng isang pangunahing susi ay isa sa mga pinaka-kritikal na desisyon na iyong gagawin sa disenyo ng isang bagong database. Ang pinakamahalagang pagpigil ay dapat mong tiyakin na ang napiling key ay natatangi. Kung posible na ang dalawang talaan - nakaraan, kasalukuyan, o hinaharap - ay maaaring magbahagi ng parehong halaga para sa isang katangian, ito ay isang hindi magandang pagpili para sa isang pangunahing susi.
Ang isa pang mahalagang aspeto ng isang pangunahing susi ay ang paggamit nito sa pamamagitan ng iba pang mga talahanayan na nag-uugnay dito sa isang pamanggit na database. Sa ganitong aspeto, ang isang pangunahing pangunahing gawain tulad ng target ng isang pointer. Dahil sa mga interdependencies na ito, kailangang may umiiral na pangunahing susi kapag ang rekord ay nilikha, at hindi ito maaaring baguhin.
Mahina Mga Pagpipilian para sa mga Pangunahing Susi
Ano ang maaaring isaalang-alang ng ilang mga tao ng isang malinaw na pagpipilian para sa isang pangunahing susi ay maaaring maging isang hindi magandang pagpipilian sa halip. Narito ang ilang halimbawa:
- ZIP code huwag gumawa ng mga pangunahing pangunahing susi para sa isang lamesa ng mga bayan. Kung ikaw ay gumagawa ng isang simpleng lookup table ng mga lungsod, ang ZIP code ay tila isang lohikal na pangunahing susi. Gayunpaman, sa karagdagang pagsisiyasat, maaari mong mapagtanto na higit sa isang bayan ang namamahagi ng ZIP code. Halimbawa, ang lahat ng mga lungsod ng New Jersey ng Neptune, Neptune City, Tinton Falls, at Wall Township ay nakikibahagi sa 07753 ZIP code.
- Mga numero ng Social Security huwag gumawa ng mga pangunahing pangunahing susi para sa maraming mga kadahilanan. Pinagtutuunan ng karamihan ng mga tao ang kanilang SSN upang maging pribado at ayaw nila itong makita ng mga gumagamit ng database. Ang ilang mga tao ay hindi may mga SSN - mga dayuhan o imigrante na hindi pa nakatanggap ng kard ng Social Security. Ang mga SSN ay maaari ding magamit pagkatapos ng kamatayan ng isang indibidwal. Ang isang indibidwal ay maaaring magkaroon ng higit sa isang SSN sa isang panghabang buhay kapag ang Social Security Administration ay naglalabas ng isang bagong numero sa mga kaso ng pandaraya o pagnanakaw ng pagkakakilanlan.
- Mga email address ay isang mahinang pagpili para sa isang pangunahing susi. Bagaman sila ay natatangi, maaari silang magbago sa paglipas ng panahon. Bukod dito, hindi lahat ay may email address.
Pagpili ng isang Epektibong Pangunahing Key
Kaya, kung bakit ang isang mahusay na pangunahing susi? Sa karamihan ng mga kaso, lumiko sa iyong database system para sa suporta.
Ang isang pinakamahusay na kasanayan sa disenyo ng database ay ang paggamit ng isang pangunahing nakabuo ng pangunahing susi. Ang iyong sistema ng pamamahala ng database ay maaaring normal na bumuo ng isang natatanging identifier na walang kahulugan sa labas ng sistema ng database. Halimbawa, maaari mong gamitin ang uri ng data ng Microsoft Access AutoNumber upang lumikha ng field na tinatawag na RecordID. Awtomatikong binabawasan ng uri ng data ng AutoNumber ang patlang sa bawat oras na lumikha ka ng isang tala. Habang ang bilang mismo ay walang kabuluhan, nagbibigay ito ng maaasahang paraan upang isangguni ang isang indibidwal na rekord sa mga tanong.
Ang isang mahusay na pangunahing susi ay kadalasang maikli, gumagamit ng mga numero, at nag-iwas sa mga espesyal na character o isang halo ng malalaki at maliliit na character upang mapabilis ang mabilis na paghahanap ng database at mga paghahambing.