Skip to content
GitHub

Candidate Key

Candidate Key ဆိုတာ ဘာလဲ?

Section titled “Candidate Key ဆိုတာ ဘာလဲ?”

Candidate Key ဆိုတာ Table ထဲက Record တစ်ခုချင်းစီကို တိတိကျကျ ခွဲခြားသတ်မှတ်ပေးနိုင်တဲ့ Field ဒါမှမဟုတ် Field အစုအဝေး တစ်ခု ဖြစ်ပါတယ်။

“Candidate” (ကိုယ်စားလှယ်လောင်း) လို့ နာမည်ပေးထားတဲ့အတိုင်းပဲ၊ ဒီ Key တွေဟာ Primary Key အဖြစ် အရွေးခံရဖို့ အရည်အချင်းပြည့်မီတဲ့ Key တွေ ဖြစ်ပါတယ်။ Table တစ်ခုမှာ Candidate Key တစ်ခုထက်မက ရှိနိုင်ပါတယ်။

StudentIDNRC_NumberNameEmail
112/LMN(N)123456Mg Mgmgmg@gmail.com
212/LMN(N)654321Aung Aungaungaung@gmail.com

ဒီ Table မှာဆိုရင် -

  • StudentID (ကျောင်းသားနံပါတ်) ကလည်း လူတစ်ယောက်ချင်းစီအတွက် မတူနိုင်ပါဘူး။
  • NRC_Number (မှတ်ပုံတင်နံပါတ်) ကလည်း မတူနိုင်ပါဘူး。
  • Email (အီးမေးလ်) ကလည်း မတူနိုင်ပါဘူး။

ဒါကြောင့် StudentID, NRC_Number, နဲ့ Email သုံးခုစလုံးဟာ Primary Key ဖြစ်ဖို့ အရည်အချင်းပြည့်မီတဲ့ Candidate Keys တွေ ဖြစ်ကြပါတယ်။ ဒီ ၃ ခုထဲကမှ အသင့်တော်ဆုံး တစ်ခု (ဥပမာ - StudentID) ကို Primary Key အဖြစ် ရွေးချယ်ရမှာပါ။

Candidate Key ရဲ့ စည်းမျဉ်းများ

Section titled “Candidate Key ရဲ့ စည်းမျဉ်းများ”

Field တစ်ခုဟာ Candidate Key ဖြစ်ဖို့ဆိုရင် အောက်ပါ စည်းမျဉ်း (Rules) တွေနဲ့ ကိုက်ညီရပါမယ်:

  1. Unique ဖြစ်ရမည်: Candidate Key ရဲ့ တန်ဖိုးဟာ တခြား ဘယ် Record နဲ့မှ မထပ်ရပါဘူး။
  2. NULL မဖြစ်ရ: တန်ဖိုး မရှိတာမျိုး (Null Value) လုံးဝ ခွင့်မပြုပါဘူး။
  3. ပြုပြင်ပြောင်းလဲရန် မလွယ်ကူရ: Candidate Key ရဲ့ တန်ဖိုးဟာ အချိန်နဲ့အမျှ ခဏခဏ ပြောင်းလဲနေတဲ့ အရာမျိုး မဖြစ်သင့်ပါဘူး။ (ဥပမာ - ဖုန်းနံပါတ်ဟာ ပြောင်းလဲနိုင်တဲ့အတွက် Candidate Key အဖြစ် မသင့်တော်ပါဘူး။)

တစ်ခါတလေမှာ Table ထဲက ဘယ် Field မှ (Unique မဖြစ်လို့) Candidate Key အဖြစ် သုံးလို့မရတာမျိုး ကြုံရတတ်ပါတယ်။

ဥပမာ - Cars Table မှာ ကားအမျိုးအစား၊ အရောင် တွေလောက်ပဲ ပါတယ်ဆိုရင် တူညီတဲ့ ကားတွေ အများကြီး ရှိနိုင်ပါတယ်။

ဒီလို အခြေအနေမျိုးမှာ Data တွေထဲကနေ မဟုတ်ဘဲ၊ System ကနေ အလိုအလျောက် ဂဏန်းစဉ်ပေးမယ့် (Auto-increment) ID လိုမျိုး Field အသစ်တစ်ခုကို ဖန်တီးပြီး Candidate/Primary Key အဖြစ် အသုံးပြုကြပါတယ်။ ဒါကို Artificial Candidate Key (သို့မဟုတ် Surrogate Key) လို့ ခေါ်ပါတယ်။