Pangunahing key vs Natatanging key
Ang isang column o isang hanay ng mga column, na maaaring gamitin upang tukuyin o i-access ang isang row o isang set ng mga row sa isang database ay tinatawag na key. Ang isang natatanging susi ay isang susi na maaaring natatanging makilala ang isang hilera sa isang talahanayan sa konteksto ng mga relational na database. Ang isang natatanging key ay binubuo ng isang column o isang hanay ng mga column. Ang pangunahing key ay isang kumbinasyon din ng mga column sa isang talahanayan na natatanging tumutukoy sa isang row. Ngunit ito ay itinuturing na isang espesyal na kaso ng natatanging susi.
Ano ang Natatanging Susi?
Tulad ng nabanggit kanina, ang natatanging key ay isang column o hanay ng mga column na maaaring natatanging tukuyin ang isang row sa isang table. Kaya, ang isang natatanging susi ay pinipigilan upang walang dalawang halaga nito ang magkapantay. Ang isang mahalagang pag-aari ay ang mga natatanging key ay hindi nagpapatupad ng NOT NULL constraint. Dahil ang NULL ay kumakatawan sa kakulangan ng isang halaga, kung ang dalawang hilera ay may NULL sa isang haligi, hindi ito nangangahulugan na ang mga halaga ay pantay. Ang column na tinukoy bilang isang natatanging key ay nagbibigay-daan lamang sa isang solong NULL na halaga sa column na iyon. Pagkatapos ay magagamit iyon upang makilala ang partikular na row na iyon nang kakaiba. Halimbawa, sa isang talahanayan na naglalaman ng impormasyon ng mag-aaral, maaaring tukuyin ang ID ng mag-aaral bilang isang natatanging susi. Dahil walang dalawang mag-aaral ang maaaring magkaroon ng parehong ID, natatangi nitong kinikilala ang isang mag-aaral. Kaya natutugunan ng column ng student ID ang lahat ng katangian ng isang natatanging key. Depende sa disenyo ng isang database, ang isang talahanayan ay maaaring magkaroon ng higit sa isang natatanging key.
Ano ang Pangunahing Susi?
Ang Primary key ay isa ring column o kumbinasyon ng mga column na natatanging tumutukoy sa isang row sa isang table ng relational database. Ang isang talahanayan ay maaaring magkaroon ng hindi hihigit sa isang pangunahing key. Ang pangunahing key ay nagpapatupad ng implicit NOT NULL constraint. Kaya, ang isang column na tinukoy bilang pangunahing key ay hindi maaaring magkaroon ng NULL na mga halaga dito. Ang pangunahing key ay maaaring isang normal na katangian sa talahanayan na garantisadong natatangi gaya ng numero ng social security o maaaring ito ay isang natatanging halaga na nabuo ng database management system gaya ng isang Globally Unique Identifier (GUID) sa Microsoft SQL Server. Ang mga pangunahing key ay tinukoy sa pamamagitan ng PRIMARY KEY constraint sa ANSI SQL Standard. Ang pangunahing key ay maaari ding tukuyin kapag lumilikha ng talahanayan. Binibigyang-daan ng SQL ang primary key na binubuo ng isa o higit pang column at ang bawat column na kasama sa primary key ay tuwirang tinukoy na HINDI NULL. Ngunit ang ilang mga sistema ng pamamahala ng database ay nangangailangan ng paggawa ng mga pangunahing hanay ng pangunahing key na tahasang HINDI NULL.
Pagkakaiba sa pagitan ng Primary key at Natatanging key
Kahit na ang pangunahing key at natatanging key ay isa o higit pang mga column na maaaring natatanging makilala ang isang row sa isang talahanayan, mayroon silang ilang mahahalagang pagkakaiba. Pinakamahalaga, ang isang talahanayan ay maaari lamang magkaroon ng isang pangunahing susi habang maaari itong magkaroon ng higit sa isang natatanging susi. Maaaring ituring ang pangunahing susi bilang isang espesyal na kaso ng natatanging susi. Ang isa pang pagkakaiba ay ang mga pangunahing susi ay may implicit na NOT NULL constraint habang ang natatanging key ay walang ganoong constraint. Samakatuwid, ang mga natatanging key column ay maaaring o hindi naglalaman ng NULL values ngunit ang primary key column ay hindi maaaring maglaman ng NULL values.