August 1, 2013

Relation

ကျွှန်တော်တို့ နေထိုင်ရာ လက်တွေ့ လောကကြီးတွင် ဖြစ်ပျက်မှု့ တစ်ခုနှင့် တစ်ခု အကြား၌ ပတ်သက်မှု့ဆိုသည်မှာ ရှိကြမြဲပင် ဖြစ်၏။ ဤကဲ့သို့ အချင်းခြင်း အပြန်အလှန် ပတ်သက်မှု့အား Data Model ဘာသာရပ်၌ Entity များ၏ Relationship ဟု ခေါ်ဆို၏။ Relationship သည် Entity များ၏ အပြန်အလှန်ပတ်သက်မှု့၏ သတ်မှတ်ချက်များကို ရှင်းလင်းစွာ ဖော်ပြပေးနိုင်ပါသည်။ ဤအခန်းဖြင့် Entity များအကြားတွင် အပြန်အလှန် ပတ်သက်မှု့များရှိကြရာတွင် Entity တစ်ခုအား ပြုပြင်ပြောင်းလည်းမှု့ တစ်ခု ဖြစ်ပေါ်ရာ၌ အခြားသော Entity အား မည်သို့ အကျိုးသက်ရောက်မှု့ ရောက်ရှိစေသည်ကို လေ့လာသွားမည် ဖြစ်ပါသည်။

ဥပမာအားဖြင့် အောက်ပါ Entity များအကြား၌ရှိသော ပတ်သက်မှု့ကို စဉ်းစားကြည့်ပါမည်။
  • ဆိုင်ခွဲ နှင့် ဝန်ထမ်း အကြားတွင် အလုပ်လုပ်နေကြသည်ဟူသော ပတ်သက်မှု့ ရှိပါသည်။
  • ထုတ်လုပ်ရေးကုမ္ပဏီနှင့် ကုန်ပစ္စည်း တို့အကြားတွင် ကုန်ထုတ်လုပ်သည် ဟူသော ပတ်သက်မှု့ရှိပါသည်။
ပတ်သက်မှု့အား ဖော်ပြရာတွင် Entity များ၏ တန်ဖိုး အရေအတွက်ကိုလည်း ဖော်ပြရန်လိုအပ်ပါသည်။ ၎င်းအား cardinality ဟု ခေါ်ဆိုပါသည်။ ဥပမာအားဖြင့် ဆိုင်ခွဲတစ်ဆိုင်တွင် ဝန်ထမ်း ၁၀ဦး အလုပ်လုပ်နေကြသည်ဟု စဉ်းစားကြည့်ကြပါ။ ဆိုင်ခွဲတစ်ဆိုင်တွင် ဝန်ထမ်း တစ်ယောက်ထက်မက အလုပ်လုပ်နေသည်ဟု ဖော်ပြနိုင်ပါသည်။ Data Modelling ဘာသာရပ်၌ အဆိုပါ ပတ်သက်မှု့အား 1:n ဟု ဖော်ပြလေ့ရှိ၏။ ဘယ်ဘက်တွင်တည်ရှိသော ဆိုင်ခွဲက 1 ဖြစ်ပြီး ညာဘက်တွင်ရှိသော ဝန်ထမ်းက n ဖြစ်သည်ဟု ဖော်ပြနေခြင်း ဖြစ်ပါသည်။

တဖန် 1 : n >= 0 ဟု ရေးသားထားပါက၊ ဘယ်ဘက်က ၁ ဖြစ်ပြီး ညာဘက်ခြမ်းရှိ Entity က ၀ သို့မဟုတ် အများဟု ဖော်ပြနေပါသည်။ 1 : n >= 1 ဟု ရေးသားထားရာတွင် ညာဘက်ခြမ်းသည် 1 သို့မဟုတ် အများဟု ဖော်ပြနေပါသည်။ ဤအခြေအနေမျိုးအား Data Model တွင် 1 : n ဟု လည်း ဖော်ပြလေ့ရှိ၏။

ဆိုင်ခွဲနှင့် ဝန်ထမ်းအား လက်တွေ့အနေအထားဖြင့် ပြန်လည်စဉ်းစားကြည့်ပါမည်။ ဘယ်ဘက်ချမ်းတွင် ဆိုင်ခွဲ ရှိပြီးညာဘက်ချမ်းတွင် ဝန်ထမ်းဆိုသော Entityတို့ ရှိကြ၏။ ၎င်းတို့ကြားတွင် အလုပ်လုပ်နေသည် ဟုဆိုသော Relationship ရှိပြီး ပတ်သက်ပုံမှာ 1:n ဖြစ်သည်။
ဆိုပါ အနေအထားမျိုးသည် ဆိုင်ခွဲအတွင်းတွင် အလုပ်သမား တစ်ဦးလည်းရှိနိုင်သည်။ တစ်ဦးထက် မကလည်း ရှိနိုင်သည် ဟု ဖော်ပြနေပါသည်။
အထက်ပါ အနေအထားမျိုးသည် ဆိုင်တစ်ဆိုင်တွင် အလုပ်သမားလည်း ရှိချင်ရှိမည်။ မရှိချင်လည်း မရှိမည် ဟု ဖော်ပြနေပါသည်။ တဖန် လက်တွေ့ဘဝတွင် အောက်ပါအနေအထားမျိုးလည်း ရှိတတ်ပါသေးသည်။
Many to Many ပတ်သက်မှု့မျိုးဖြစ်ပါသည်။ နှစ်ဘက်စလုံးသည် အများဖြစ်နိုင်သည့်အခါမျိုး ဖြစ်ပါသည်။ ဝန်ထမ်းတစ်ဦးသည် ဆိုင်တစ်ဆိုင်ထက်မက တာဝန်ယူနေတတ်ပြီး၊ ဆိုင်တစ်ဆိုင်တွင်လည်း ဝန်ထမ်းတစ်ဦးထက်မက အလုပ်လုပ်နေသည့်အခါမျိုး ဖြစ်ပါသည်။ ထိုအခါမျိုးတွင် ကြားခံ Entity တစ်ခုကို တည်ဆောက်ပြီး အသုံးပြုလေ့ရှိပါသည်။
အထက်ပါအတိုင်း ဆိုင်ခွဲနှင့် ဝန်ထမ်းတို့အား တာဝန်နှင့် အသီးသီး One to Many ပတ်သက်သည် ဟု ပြောင်းလည်းဖော်ပြလေ့ ရှိပါသည်။

Relation အမျိုးအစား


Entity တစ်ခုနှင့် တစ်ခုတို့၏ ပတ်သက်မှု့တို့ကို Relationဖြင့် ဖော်ပြရာတွင် အမျိုးအစား ၃မျိုးခွဲခြား ထားပါသည်။
  1. General Relationship
  2. Composed Of Relationship
  3. Generalization


General Relationship



General Relationship ဆိုသည်မှာ Entity တစ်ခုနှင့် တစ်ခုအကြားတွင် အထွေအထူးအကြောင်း အရာ သတ်မှတ်ချက်များ မရှိသော ပတ်သက်မှု့ကိုဆိုလိုပါသည်။ ဥပမာအားဖြင့် အောက်ပါအတိုင်း ဖြစ်ပါသည်။
  • [ဆိုင်ခွဲ] နှင့် [အလုပ်သများ] အကြားတွင် [အလုပ်လုပ်သည်] ဟူသော ပတ်သက်မှု့ရှိ၏။
  • [ကုန်ထုတ်လုပ်ငန်း]နှင့် [ထုတ်ကုန်] အကြားတွင် [ထုတ်လုပ်သည်]ဟူသော ပတ်သက်မှု့ရှိ၏။



Composed of Relationship


Composed of Relationship ဆိုသည်မှာ Entity တစ်ခုသည် အခြားသော Entity ၏ တစ်စိတ်တစ်ဒေသ ဖြစ်သော အခါမျိုးတွင် ဖော်ပြလေ့ရှိသော ပတ်သက်မှု့ တစ်ခုဖြစ်ပါသည်။ ထို့ကြောင့် Composed of Relationship အား Has A - ၊ Part of - ဒါမှမဟုတ် Aggregation ဟုလည်း ခေါ်ဆိုပါသည်။ အောက်ပါ ဖွဲ့စည်းပုံမျိုးကို Composed of Relationship ဟု ခေါ်ဆိုပါသည်။

  • [ကား]သည်[ကားဘီး]လေးလုံး[အင်ဂျင်]တစ်လုံး[လက်ကိုင်]တစ်ခု အစရှိသည်ဖြင့် ဖွဲ့စည်းထား၏။
  • [ကား]တစ်စီးတွင်[ကားဘီး]လေးလုံး[အင်ဂျင်]တစ်လုံး[လက်ကိုင်]တစ်ခု အစရှိသည်ဖြင့် ပါဝင်ကြပါသည်။
  • [ကားဘီး]သည် [ကား] ၏ အစိတ်အပိုင်းတစ်ခု ဖြစ်သည်။

Generalization


Generalization နှင့် ပတ်သက်၍ ကျွှန်တော်သည် English လိုရှင်းလင်းချက်များကို ဖက်ကြည့်၍လည်း နားလည်ပါသည်။ ဂျပန်လိုလည်း ဖတ်ကြည့်၍လည်း နားလည်ပါသည်။ သို့ရာတွင်မြန်မာလို မည်ကဲ့သို့ ရှင်းပြရမည်ကို မသိပါ။ အဓိကမှာ Abstraction ကို မည်သို့ရှင်းပြရမည် မသိပါ။ ဒါနဲ့ ကျွှန်တော် လေးစားရသော Java ဆရာကြီး ကိုကျော်လွင်ကို မေးကြည့်ပါသည်။

Abstraction ကို မြန်မာလို ပြောရမည်ဆိုလျှင် သဘောတရား ဖြစ်သည်ဟုဆိုသည်။ လူတစ်ယောက်ကို လူတစ်ယောက် မှန် သိအောင် အနည်းဆုံး ပိုင်ဆိုင်ရန်လိုအပ်သော အချက်အလက်များအား လူတစ်ယောက်၏ သဘောတရား ဖြစ်သည်။

တဖန် Generalization ဆိုသည်မှာ ရေဘုံယဖွဲ့ခြင်း ဖြစ်သည်။ Entity တစ်ခုအား ရေဘုံယ အကျဆုံး သဘောတရား အဖြစ် သတ်မှတ်ခြင်းသည် Generalization ဖြစ်ပါသည်။ Generalization လုပ်ခြင်း အားဖြင့် ပတ်သက်သော Relation အား Is a Relation ဟုလည်း ခေါ်ဆိုပါသည်။
  • [ကား]သည် [ကုန်ကား] နှင့် [ပြိုင်ကား] တို့အား Generalization လုပ်ထားခြင်း ဖြစ်သည်။
  • [ကုန်ကား] နှင့် [ပြိုင်ကား] တို့သည် [ကား] ဖြစ်ပါသည်။
ဒီတစ်ခေါက်ဖြင့် Entity များအကြား ပတ်သက်မှု့ကို ဖော်ပြနိုင်သော Relationများအကြောင်းကို ဖော်ပြခဲ့၏။ နောက်ရက်များတွင် Data Modeling တွင် မရှိမဖြစ်လိုအပ်သော Metadata အကြောင်းကို ဆက်လက် ဖော်ပြသွားပါဦးမည်။

လေးစားစွာဖြင့်
မင်းလွင်

No comments:

Post a Comment