Multivalued မှီခိုစတုတ္ထပုံမှန်ပုံစံချိုး
တစ်ဦး relational database ထဲတွင်တစ်ဦးမှီခိုအတူတူဒေတာဘေ့စ table ထဲမှာသိမ်းဆည်းထားသတင်းအချက်အလက်ထူးခြားအတူတူ table ထဲမှာသိုလှောင်ထားသည်အခြားသတင်းအချက်အလက်ဆုံးဖြတ်သည်သည့်အခါတွေ့ရှိနိုင်ပါသည်။ တစ်ဦးက multivalued မှီခို နေတဲ့ table ထဲမှာတစျခုသို့မဟုတ်ထိုထက်ပိုအတန်း၏ရှေ့မှောက်တွင်ပင် table ထဲမှာတစျခုသို့မဟုတ်ထိုထက်ပိုသည်အခြားအတန်း၏ရှေ့မှောက်တွင်အဓိပ္ပာယ်သက်ရောက်သည့်အခါတွေ့ရှိနိုင်ပါသည်။ အခြားသောလမ်း ထား. , စားပွဲတစ်ခုနှစ်ခု attribute တွေ (သို့မဟုတ်ကော်လံ) အချင်းချင်းလွတ်လပ်သောရှိပါတယ်, ဒါပေမယ့်နှစ်ဦးစလုံးတစ်ဦးကိုတတိယ attribute ကိုပေါ်မူတည်သည်။
တစ်ဦးက multivalued မှီခိုဟာပုံမှန်စံစတုတ္ထပုံမှန်ပုံစံ (4NF) ကာကွယ်ပေးသည်။ relational database များကိုစံချိန်ဒီဇိုင်းများအတွက်လမ်းညွှန်ချက်များကိုကိုယ်စားပြုငါးပုံမှန်ပုံစံများကိုလိုက်နာပါ။ သူတို့ဟာဒေတာအတွက် update ကိုကွဲလွဲချက်များနှင့်ရှေ့နောက်မညီတားဆီး။ တစ်ဦးအတွက်အများအပြား-to-တဦးတည်းဆက်ဆံရေးနှင့်အတူစတုတ္ထပုံမှန်ပုံစံအပေးအယူ ဒေတာဘေ့စ ။
Multivalued မှီခိုမှုအ vs. functional မှီခိုမှု
တစ်ဦး multivalued မှီခိုနားလည်ရန်, တကအလုပ်လုပ်တဲ့မှီခိုသောအရာကိုပြန်လည်လည်ပတ်နိုင်ဖို့အထောက်အကူဖြစ်စေပါသည်။
တစ်ဦး attribute က X ကိုထူးထူးခြားခြားအနေနဲ့ attribute ကို Y ကိုဆုံးဖြတ်သည်လျှင်, Y ကိုဒီက X အဖြစ်ကျမ်းစာလာသည်ကား X ပေါ်တွင် function မှီခိုဖြစ်ပါသည် -> Y. ဥပမာအားဖြင့်, အောက်ကကျောင်းသားများ table ထဲမှာ, အ Student_Name အဆိုပါဗိုလ်မှူးဆုံးဖြတ်သည်:
ကျောင်းသားအမည် | ဗိုလ်မှူး |
---|---|
Ravi | အနုပညာသမိုင်း |
ဗက် | ဓါတုဗေဒပညာ |
ဒီ function မှီခိုရေးသားနိုင်သည် Student_Name -> ဗိုလ်မှူး။ တစ်ခုချင်းစီကို Student_Name တစ်ခုအတိအကျဗိုလ်မှူးဆုံးဖြတ်သည်နှင့်မပို။
သင်ဒေတာဘေ့စကိုလည်းဤအကျောင်းသားများအတွက်ယူအားကစားကိုခြေရာခံချင်လျှင်, သင်သည်ဤလုပ်ဖို့အလွယ်ဆုံးနည်းပဲအားကစားအမည်ရအခြားကော်လံကိုထည့်သွင်းဖို့ဖြစ်ပါတယ်ထင်စေခြင်းငှါ,:
ကျောင်းသားအမည် | ဗိုလ်မှူး | အားကစား |
---|---|---|
Ravi | အနုပညာသမိုင်း | ဘောလုံးကစား |
Ravi | အနုပညာသမိုင်း | ဘောလီဘော |
Ravi | အနုပညာသမိုင်း | တင်းနစ် |
ဗက် | ဓါတုဗေဒပညာ | တင်းနစ် |
ဗက် | ဓါတုဗေဒပညာ | ဘောလုံးကစား |
ဒီမှာပြဿနာ Ravi နှင့်ဗက်နှစ်ဦးစလုံးမျိုးစုံအားကစားကစားသောကွောငျ့ဖွစျသညျ။ ဒါဟာတိုင်းအပိုဆောင်းအားကစားအသစ်တစ်ခုအတန်းကိုထည့်သွင်းဖို့လိုအပ်ပေသည်။
အဓိကနှင့်အားကစားအချင်းချင်းလွတ်လပ်သောရှိပါတယ်ဒါပေမယ့်နှစ်ဦးစလုံးကျောင်းသားအပေါ်မူတည်ဘာဖြစ်လို့လဲဆိုတော့ဒါကစားပွဲပေါ်မှာတစ် multivalued မှီခိုမိတ်ဆက်ပေးခဲ့သည်။
ဒါကရိုးရှင်းတဲ့ဥပမာများနှင့်လွယ်ကူစွာသက်သေဖြစ်ပါသည်, သို့သော် multivalue မှီခိုနေတဲ့ကြီးမားရှုပ်ထွေးသောဒေတာဘေ့စအတွက်ပြဿနာတစ်ခုဖြစ်လာနိုင်ပါတယ်။
: ဤကိစ္စတွင်> Y. -> - တစ်ဦးက multivalued မှီခို X ကိုတိကျမ်းစာ၌လာသည်ကား
Student_Name -> -> ဗိုလ်မှူး
Student_Name -> -> အားကစား
ဤ "Student_Name multidetermines ဗိုလ်မှူး" နှင့်အဖြစ်ကိုဖတ်ဖြစ်ပါတယ် "Student_Name multidetermines အားကစား။ "
ကတတိယအပေါ်မှီခိုဖြစ်ကြောင်းအနည်းဆုံးနှစ်ခု attribute တွေပါဝင်ပါသည်ဘာလို့လဲဆိုတော့တစ်ဦးက multivalued မှီခိုအမြဲအနည်းဆုံးသုံး attribute တွေလိုအပ်ပါတယ်။
Multivalued မှီခိုမှုနှင့်ပုံမှန်
ဒါကြောင့်မလိုအပ်တဲ့လေ့လာပြီးဖန်တီးများနှင့်ကိုက်ညီမှုမရှိသည့်ဒေတာကိုအထောက်အကူဖြစ်စေနိုင်ပါတယ်ကြောင့် multivalued မှီခိုနှင့်အတူတစ်ဦးကစားပွဲစတုတ္ထပုံမှန်ပုံစံ (4NK) ၏ပုံမှန်စံချိုးဖောက်။ 4NF ဤဆောင်ခဲ့ခြင်းကြောင့်ကျောက်ပြားနှစ်ပြားသို့ဤသတင်းအချက်အလက်ကိုချိုးဖျက်ဖို့လိုအပ်ပေသည်။
အောက်ဖော်ပြပါဇယားသည်ယခုအခါ Student_Name တစ်အလုပ်လုပ်တဲ့မှီခိုရှိပါတယ် -> ဗိုလ်မှူး, နှင့်မျှမ multivalued မှီခို:
ကျောင်းသားအမည် | ဗိုလ်မှူး |
---|---|
Ravi | အနုပညာသမိုင်း |
Ravi | အနုပညာသမိုင်း |
Ravi | အနုပညာသမိုင်း |
ဗက် | ဓါတုဗေဒပညာ |
ဗက် | ဓါတုဗေဒပညာ |
ဒီစားပွဲကိုလည်း Student_Name ၏တစ်ခုတည်းအလုပ်လုပ်တဲ့မှီခိုရှိပါတယ်နေချိန်မှာ -> အားကစား:
ကျောင်းသားအမည် | အားကစား |
---|---|
Ravi | ဘောလုံးကစား |
Ravi | ဘောလီဘော |
Ravi | တင်းနစ် |
ဗက် | တင်းနစ် |
ဗက် | ဘောလုံးကစား |
ဒါဟာသူတို့အစားအလွန်အကျွံလူထုကိုသတင်းအချက်အလက်ဆံ့တစ်ခုတည်းစားပွဲပေါ်မှာလုပ်ဖို့ကြိုးစားနေထက်တစ်ခုတည်းစိတ်ကူးသို့မဟုတ်ဆောင်ပုဒ်နှင့်ဆက်စပ်သောသတင်းအချက်အလက်ဆံ့နိုင်အောင်ပုံမှန်မကြာခဏရှုပ်ထွေးစားပွဲ simplifying အားဖြင့်ကိုင်တွယ်ဖြေရှင်းကြောင်းကိုရှင်းရှင်းလင်းလင်းပါပဲ။