May 24, 2013

Data Definations

Data Definition ၏ အခြေခံ သဘောတရား

လက်တွေ့ သဘာဝအတွင်းရှိ အချက်အလက်များအား Database အနေဖြင့် ပြန်လည် ဖော်ပြလိုသောအခါ၊ အသုံးပြုသော Data Model အပေါ်မှုတည်၍ ဦးစွာ သဘာဝအတွင်းရှိ အကြောင်းအရာများအား လူကသိမြင် နားလည်နိုင်သော အချက်အလက်များ အဖြစ် ပြောင်းလည်းပြီး၊ ၎င်းအချက်အလက်များအား ကွန်ပျူတာဖြင့် အသုံးပြုနိုင်သော Data အဖြစ် ပြောင်းလည်း ယူရန် လိုအပ်ပါသည်။ မည်ကဲ့သို့ လက်တွေ့ဘဝထဲမှ အချက်အလက်များအား ကွန်ပျူတာမှနားလည်သော အချက်အလက်များ အနေနှင့် ပြောင်းလည်းယူမည်နည်း။ ဤသင်ခန်းစာဖြင့် Data အဖြစ်ပြောင်းလည်းယူရာတွင် လိုအပ်သည့် အစိတ်အပိုင်းများနှင့် အခြေခံ သဘောတရား အကြောင်းကို လေ့လာဖော်ပြသွားပါမည်။ အသုံးပြုလိုသော Data Model အပေါ်မှုတည်၍ ဝေါဟာရနှင့် ယူဆပုံတို့မှာ အနည်းငယ်ကွဲပြားမည် ဖြစ်သော်လည်း၊ ဤနေရာတွင် အခြေခံသဘောတရားအား Entity, Attributes, Relation အစရှိသော အခြေခံ ဝေါဟာရအား အသုံးပြု၍ ရှင်းလင်းသွားပါမည်။ ဤကဲ့သို့ ဖော်ပြရာတွင်လည်း Data Independence တွင်ဖော်ပြခဲ့သော အဆင့်သုံးဆင့်၏ သဘောတရား အဆင့် ဖြင့် ဖော်ပြသွားမှာဖြစ်ပြီး အတွင်းပိုင်း အဆင့်ဖြင့် ဖော်ပြသွားမည် မဟုတ်ပေ။

အခြေခံသဘောတရားအား လေ့လာရာတွင် နမှုနာအနေနှင့်၊ လက်ရှိသဘာဝအတွင်းရှိ လုပ်ငန်းအချက်အလက် အနေအထားများအား အောက်ပါအတိုင်း ဖော်ပြထားပြီး၊ ၎င်းအနေအထားအား ကွန်ပျူတာပေါ်တွင် အသုံးပြုနိုင်သည့် Database အဖြစ် ပြောင်းလည်းသွားပုံကို ဖော်ပြသွားပါမည်။


Software Development ကုမ္ပဏီ A သည် Software ရေးသားခြင်းနှင့် ရောင်းဝယ်ခြင်း လုပ်ငန်းများအား လုပ်ကိုင်ပါသည်။ ပြည်တွင်းတွင် ရန်ကုန်ရုံးခွဲကို အစပြု၍ ရုံးခွဲပေါင်း ၁၀ခုကို အခြေပြု၍ Software အမျိုးအစား ၁၀၀ကို ရေးသား ရောင်းချနေ၏။ အထူးသဖြင့် ရန်ကုန်ရုံးချုပ်သည် DBMS ကို၎င်း၊ ပဲခူးရုံးခွဲသည် Internet Café Management System ကို အဓိကထား ရောင်းချနေပါသည်။ ရန်ကုန်ရုံးချုပ်တွင် B မံနေဂျာအား ဦးစီးစေ၍ Software Developer ၂၀ဖြင့်၎င်း၊ ပဲခူးရုံးခွဲတွင် C မံနေဂျာအား အမှူးပြု၍ Software Developer ၁၅ဦးဖြင့် လုပ်ငန်းကို လုပ်ဆောင်လျှက်ရှိ၏။


ဤကဲ့သို့သော လက်တွေ့ဘဝအတွင်းရှိ လုပ်ငန်းအနေအထားအား Data Model ၏ အခြေခံ သဘောတရားများ ဖြစ်သော Entity, Attribute နှင့် Relation များကို အသုံးပြု၍ ဆက်လက်ရှင်းလင်းသွားပါမည်။

Entity ၏ ပုံစံ (Type) နှင့် တန်ဖိုး (Value)

Data Model တွင် သဘာဝအတွင်းရှိ လူတစ်ဦးမှ ကြည့်မြင်သိရှိနိုင်သော အကြောင်းအရာတစ်ခုအား Entity အဖြစ် ဖော်ပြလေ့ရှိ၏။ အဆိုပါ Entity သည် Database တစ်ခုတွင် အသုံးပြုရန် အခြေခံလိုအပ်ချက် တစ်ခုလည်း ဖြစ်၏။ ဤကဲ့သို့ Entity အား စဉ်းစားရာတွင် လက်တွေ့ဘဝတွင် တကယ်တည်ရှိသော အကြောင်းအရာတစ်ခုလည်း ဖြစ်ချင်ဖြစ်မည်၊ အကဲ၍ မတည်ရှိခဲ့ပါလည်း သဘောတရားအရ တည်ရှိသော အရာဖြစ်လျှင်လည်း ကိစ္စမရှိပါ။ သဘောတရားအရ အချက်အလက်များအား ကိုယ်စားပြုပြီး Entity အနေနှင့်လည်း အသုံးပြုနိုင်မည် ဖြစ်ပါသည်။
အထက်ဖော်ပြပါ နမှုနာမှ လက်တွေ့ အချက်အလက်များမှ Entity အဖြစ်အသုံးပြုနိုင်သော အချက်အလက်များအား စဉ်းစားရာတွင် အောက်ပါအတိုင်း တွေ့ရှိရမည်ဖြစ်သည်။

  • ကုမ္ပဏီ A၊ ရုံးခွဲ၊ ရန်ကုန်ရုံးခွဲ၊ ပဲခူးရုံးခွဲ၊ ရုံးခွဲပေါင်း ၁၀ခု အစရှိသဖြင့်
  • Software၊ DBMS၊ Internet Café Management System၊ အမျိုးအစားပေါင်း ၁၀၀
  • ဝန်ထမ်း၊ B မံနေဂျာ၊ C မံနေဂျာ၊ DBMS Software Developer ၂၀ဦး၊ ပဲခူးရုံးခွဲရှိ Developer ၁၅ဦး၊ အခြား ရုံးခွဲမှ Developer များ

Data Model ဘာသာရပ်တွင် အထက်ပါ လက်ရှိ အချက်အလက်များအား Model အဖြစ် ပြောင်းလည်းရာတွင် အမျိုးအစားတူများအား စုစည်း၍ ၎င်းအား Type အဖြစ် Modeling လုပ်မည် ဖြစ်သည်။ အဆိုပါ အချက်အလက် ပုံစံ(Type)အား Entity Type ဟု ခေါ်ဆို၏။ ထို Entity Type များတွင်ပါဝင်သော အုပ်စုတူ အချက်အလက်များအား Entity Type ၏ တန်ဖိုး၊ Occurrence ဒါမှမဟုတ် Instance ဟု ခေါ်ဆို၏။ အထက်ပါ အချက်အလက်များအား Entity Type နှင့် တန်ဖိုးအဖြစ် ခွဲခြားကြည့်သောအခါ အောက်ပါအတိုင်း တွေ့ရှိရမည် ဖြစ်ပါသည်။

  • Entity Type : ရုံးခွဲ၊ Software၊ ဝန်ထမ်း၊ ကုမ္ပဏီ
  • Entity Type ရုံးခွဲ ၏ တန်ဖိုး (Instance) : ရန်ကုန်ရုံးခွဲ၊ ပဲခူးရုံးခွဲ၊ အခြားသော ရုံးခွဲ ၈ခု
  • Entity Type ဆော့ဖ်ဝဲ ၏ တန်ဖိုး (Instance) : DBMS၊ Internet Café Management System၊ အခြားသော ဆော့ဖ်ဝဲပေါင်း ၁၀၀မျိုးတစ်ခုစီ
  • Entity Type ဝန်ထမ်း ၏ တန်ဖိုး (Instance) : B မံနေဂျာ၊ C မံနေဂျာ၊ DBMS Software Developer ၂၀ဦး၊ ပဲခူးရုံးခွဲရှိ Developer ၁၅ဦး၊ အခြား ရုံးခွဲမှ Developer များတစ်ဦးချင်းစီ
  • Entity Type ကုမ္ပဏီ၏ တန်ဖိုး (Instance) : ကုမ္ပဏီ A၊ အခြားသော ကုမ္ပဏီများ

ဤကဲ့သို့ Entity Type အား အသုံးပြု၍ Model အဖြစ်ပြောင်းလည်းခြင်း အားဖြင့် အသုံးပြုနေသော Database တစ်ခုအတွက် အသုံးချနိုင်သော အချက်အလက်များအား သိသာထင်ရှားစေပါသည်။ လူတို့သည် နေ့တဓူဝ အကြောင်းအရာများအား ပြောကြားနေကြရာတွင် Entity Type နှင့် သူ၏ တန်ဖိုးဖြစ်သော Instance အား အထွေအထူး ခွဲခြားခြင်းမရှိပဲ ပြောကြားနေလေ့ရှိ၏။ စကားများအကြားမှ မည်သည့်အရာသည် Type ဖြစ်ပြီး မည်သည့်အရာသည် တန်ဖိုးဖြစ်ကြောင်း စဉ်းစားစရာမလိုပဲ အလိုလို နားလည်နိုင်၏။ သို့ရာတွင် Database တစ်ခုအား  ဒီဇိုင်းရေးသားသူ တစ်ယောက်အနေဖြင့် အသုံးပြုသူများအကြားတွင် နားလည်မှု့အား ကွဲခြားမှု့ မရှိစေရန် Entity Type အား အတိအကျ သတ်မှတ်ထားပြီး အသီးသီးသော တန်ဖိုး (Instance) များအား အသုံးချနိုင်စေရန် စီမံထားသင့်ပေသည်။ ဤအချက်သည် Data Modeling ၏ အခြေခံ အချက် တစ်ခုပင် ဖြစ်၏။

Data Modeling ဘက်မှ စဉ်းစားမည် ဆိုလျှင် Instance တစ်ခုအား Modeling အဖြစ် ပြောင်းလည်းမည့် လက်တွေ့ အနေအထားတစ်ခု အတွင်းတွင် Entity Type တစ်ခုအနေဖြင့် သတ်မှတ်ထား လေ့ရှိ၏။ ဥပမာအားဖြင့် အထက်ပါ နမှုနာအတွင်းတွင် အလုပ်တာဝန်ဘက်မှ ကြည့်သော ဝန်ထမ်းနှင့် ကုမ္ပဏီ၏ ဘဏ္ဍာရေးဘက်မှ ကြည့်၍ လစာပေးရန်လိုအပ်သော ဝန်ထမ်းသည်လည်း အုပ်စုတူပင် ဖြစ်၏။ သို့ရာတွင် လက်တွေ့ဘဝမှာမှု ထိုသို့မဟုတ်။ Instance တစ်ခုအား အမျိုးမျိုးသော Entity Type များအနေနှင့် သတ်မှတ်နိုင်မည် ဖြစ်သည်။
ဥပမာအားဖြင့် မံနေဂျာ B သည် A ကုမ္ပဏီမှကြည့်ပါက ဝန်ထမ်းအမျိုးအစား ဖြစ်သော်လည်း၊ သူ၏ သားဖြစ်သူ တက်သော ကျောင်းမှကြည့်မည်ဆိုသော် ကျောင်းသားမိဘဖြစ်ပြန်၏။ တဖန်သူအသုံးပြုသော ဘဏ်မှ ကြည့်မည် ဆိုပါက Customer ဖြစ်ပြန်သည်။ ထို့ကြောင့် Database တစ်ခုအား ဒီဇိုင်းရေးသားရာတွင် မည်သည့် ရည်ရွယ်ချက်ဖြင့် ရေးသားသည်ကို တိကျစွာသတ်မှတ်ထားရန်လိုအပ်ပြီး လက်တွေ့ဘဝနှင့် မည်ကဲ့သို့ ဆက်စပ်သည်ကို ခွဲခြားသိမြင် ထားရန် လိုအပ်ပါသည်။

တဖန် Concept Level ၌ လုပ်ငန်းတာဝန်ခွဲဝေမှု့ အဆင့်မှကြည့်သော ဝန်ထမ်းနှင့် ဘဏ္ဍာရေးဘက်မှ ကြည့်မြင်သော ဝန်ထမ်းမှာ အတူတူဖြစ်သော်လည်း၊ External Level ၌မှု ကွဲပြားခြားနား ပေသည်။ ထို့ကြောင့် Concept Level ၌ External Level အသီးသီးတွင် ဘုံအဖြစ်အသုံးပြုနိုင်သော Entity ဖြစ်ကြောင်းကို သိရှိထားရန် လိုအပ်ပါသည်။


Attribute

Entity Type သည် Entity များအား အုပ်စုဖွဲ့ထားသော အမျိုးအစားဖြစ်သာဖြစ်ပြီး၊ Entity တစ်ခုလုံး၏ ထူးခြားချက်များအား ဖော်ပြနိုင်ခြင်း မရှိပေ။ အဆိုပါ ထူးခြားချက်များအား ဖော်ပြနိုင်ရန်အတွက် Attribute ကို အသုံးပြု ပါသည်။ အထက်ပါ နမှုနာရှိ Entity Type များ၏ Attribute အား စဉ်းစားရာတွင် အောက်ပါအတိုင်း ဖော်ပြ နိုင်မည် ဖြစ်သည်။

  • Entity Type ဆိုင်ခွဲ၏ Attribute : ဆိုင်အမည်၊ လိပ်စာ၊ Telephone Number အစရှိသဖြင့်
  • Entity Type ဆော့ဖ်ဝဲ၏ Attribute : အမည်၊ Maker ၊ ဗားရှင်း၊ စတင်ထုတ်လုပ်သည့် ရက်စွဲ၊ အစရှိသဖြင့်
  • Entity Type ဝန်ထမ်း၏ Attribute : ID နံပါတ်၊ အမည်၊ ရာထူး၊ ဆိုင်ခွဲ၊ အလုပ်ဝင်နေ့စွဲ အစရှိသဖြင့်
  • Entity Type ကုမ္ပဏီ၏ Attribute : အမည်၊ လိပ်စာ၊ တာဝန်ရှိသူ အစရှိသဖြင့်

Data Model အမျိုးအစား အပေါ်မှုတည်၍ Attribute အား Entity တစ်ခု၏ အရည်အသွေး၊ ပိုင်ဆိုင်မှု့ဟု မြင်သော အမြင်နှင့် Attribute ကိုယ်တိုင်က၊ Entity တစ်ခု အနေဖြင့် ကြည့်မြင်သော အမြင်တို့ ရှိကြ၏။ Object Oriented Data Modelling တွင် Attribute ကိုယ်တိုင်အား Object တစ်ခု အဖြစ် ကြည့်မြင်လေ့ရှိပါသည်။


Domain

Attribute များ၏ တန်ဖိုးအစု (Set) များအား Domain ဟု ခေါ်ဆိုပါသည်။ အောက်ပါ ပုံကိုကြည့်ပါ။ ကုန်ပစ္စည်း၏ ထုတ်လုပ်သည့်နေ့နှင့် ဝန်ထမ်း၏ အလုပ်ဝင်သည့်နေ့တို့သည် ရက်စွဲပုံစံအား အသုံးပြုနေပြီး ၎င်းသည် Domain ဖြစ်၏။ တဖန် ကုန်ပစ္စည်း၏ မှုရင်းကုမ္ပဏီနှင့် မှုရင်းကုမ္ပဏီများ၏ အမည်တို့သည်လည်း တူညီသော Domain များ ဖြစ်ကြပါသည်။ ဤကဲ့သို့ Domain များအား အသုံးပြုခြင်းအားဖြင့် Database အတွင်းရှိ Data များ၏ ပုံစံစစ်မှန်တူညီမှု့ကို ထိမ်းသိမ်းပေးနိုင်ပါသည်။
ဆက်ပါဦးမည်။ လေးစားစွာဖြင့်။
မင်းလွင်

14 comments:

  1. A fascinating discussion is worth comment. I do think that you need
    to write more about this subject matter, it may not be a taboo matter but typically people
    do not speak about such topics. To the next! Cheers!!

    ReplyDelete
  2. Undeniably imagine that that you said. Your favorite justification appeared to
    be on the web the easiest factor to remember of.
    I say to you, I certainly get annoyed at the same time as people consider issues that they
    just don't recognize about. You controlled to hit the nail upon the top and
    outlined out the whole thing with no need side-effects ,
    other people could take a signal. Will probably be again to get more.
    Thank you

    ReplyDelete
  3. Hmm it looks like your blog ate my first comment (it was extremely
    long) so I guess I'll just sum it up what I had written and say, I'm
    thoroughly enjoying your blog. I too am an aspiring blog writer but I'm still new to the whole thing.
    Do you have any points for rookie blog writers? I'd really appreciate it.

    ReplyDelete
  4. Why users still use to read news papers when in this technological globe the whole thing is
    presented on net?

    ReplyDelete
  5. Hello! I know this is somewhat off topic but I was wondering which blog platform are you using for this
    website? I'm getting tired of Wordpress because I've had problems with hackers
    and I'm looking at alternatives for another platform.

    I would be fantastic if you could point me in the direction of a good platform.

    ReplyDelete
  6. If some one wishes expert view about blogging and site-building then i suggest
    him/her to pay a quick visit this blog, Keep up the nice work.

    ReplyDelete
  7. Superb, what a blog it is! This webpage gives
    helpful facts to us, keep it up.

    ReplyDelete
  8. It's very simple to find out any topic on net as compared to textbooks, as I found this article at this web site.

    ReplyDelete
  9. Hi, I check your new stuff on a regular basis. Your story-telling style is awesome, keep up the good work!

    ReplyDelete
  10. Have you ever thought about writing an ebook or guest
    authoring on other sites? I have a blog based on the same
    information you discuss and would love to have you share some stories/information. I know my viewers would enjoy your work.
    If you are even remotely interested, feel free to shoot me an email.

    ReplyDelete
  11. I think that what you posted was very reasonable. However,
    what about this? what if you added a little information? I ain't suggesting your information isn't solid, however suppose you added a title that
    grabbed a person's attention? I mean "Data Definations" is a little plain. You could glance at
    Yahoo's front page and see how they write post titles to grab viewers interested.

    You might add a video or a related picture
    or two to grab readers excited about everything've got to say.
    In my opinion, it might bring your posts a little bit more
    interesting.

    ReplyDelete
  12. I all the time emailed this web site post page to all my associates, because
    if like to read it afterward my contacts will too.

    ReplyDelete
  13. I blog often and I really thank you for your content. This article has truly peaked my interest.
    I am going to bookmark your blog and keep checking for
    new information about once per week. I opted in for your RSS feed too.

    ReplyDelete
  14. If some one needs to be updated with latest technologies after that he must be pay a visit this
    web page and be up to date daily.

    ReplyDelete