Header Ads

ad728
  • Breaking News

    Normalization အကြောင်း သိကောင်းစရာ


    Programming ကိုလေ့လာနေသူတိုင်းအတွက် မသိမဖြစ်လိုအပ်တဲ့ database အပိုင်းထဲက ခေါင်းစဉ်တစ်ခုဖြစ်တဲ့ "Normalization" အကြောင်းလေးကို သူငယ်ချင်းအားလုံးနဲ့ ဆွေးနွေးချင်ပါတယ်။
    သိသမျှလေးကို အခုလို Share ပေးပြီး discussion လုပ်ခြင်းဟာ programming ကို စတင်လေ့လာနေတဲ့ သူငယ်ချင်းတွေအတွက် တစိတ်တဒေသ အကျိုးဖြစ်ထွန်းမှုဖြစ်စေမယ်ဆိုရင် ကျေနပ်ပီတိဖြစ်မိမှာ အမှန်ပါပဲ။
    တကယ်လို့ ရေးထားတဲ့အထဲမှာ အယူအဆလွဲမှားတယ်လို့တွေ့ရှိခဲ့ရင်လည်း အကြံပြုပေးမယ့် သူငယ်ချင်းများကိုကြိုဆိုပါတယ်။
    ကဲ ဒါဆိုရင်တို့တွေ "Normalization" အကြောင်းကိုလေ့လာကြည့်ကြရအောင်နော်။
    ဆရာတစ်ယောက်ပြောဖူးတဲ့စကားတစ်ခွန်းရှိပါတယ်။
    အကြောင်းအရာတစ်ခုကို စပြီးလေ့လာတော့မယ်ဆိုရင် အပိုင်း (၄) ပိုင်း ခွဲပြီးလေ့လာသင့်တယ်တဲ့။
    အဲဒီအပိုင်းတွေက
    1.What ?
    2.Why ?
    3.How ?
    4.When ?
    (1).What ?
    What is Normalization ?
    What ကတော့ - is a process ( သူက လုပ်ငန်းစဉ်တစ်ခုပါပဲ )
    (2).Why ?
    Why ကေတာ့ - to achieve consistency/integrity.
    တနည်းအားဖြင့်ပြောမယ်ဆိုရင် uniform ( တစ်သမတ်တည်း) ဖြစ်ပြီး correctness (မှန်ကန်မှု) ရှိဖို့ပါပဲ။
    (3).How ?
    မေးခွန်းကတော့ ဒီအကြောင်းအရာရဲ့တကယ့်အနှစ်သာရပါပဲ။ Example နဲ့တကွ အောက်မှာ discussion လုပ်ပေးပါမယ်။
    (4).When ?
    Normalization - everytime
    Denormalization - sometimes, some cases
    How ရဲ့ question လေးကို example နဲ့တကွ အတူလေ့လာလာကြည့်ကြရအောင်။
    Normalization က theory အရတော့ (6)ခုရှိပါတယ်။

    1. Zero Form
    2. First Normal Form
    3. Second Normal Form
    4. Third Normal Form
    5. Fourth Normal Form
    6. Fifth Normal Form
    ဒါပေမယ့် တကယ့်လက်တွေ့ ကုမ္မဏီကြီးတွေမှာကိုပဲ Third Normal Form ( 3NF ) ထိသုံးရင်ကို တော်တော်ပြည့်စုံတယ်လို့ လေ့လာဖူးပါတယ်။
    Fourth & Fifth Normal Form ( 4NF, 5NF ) တွေက
    တော့ Theory မှာပဲရှိပြီး လက်တွေ့မှာ မသုံးသလောက်နည်းပါးပါတယ်။
    ဒါဆို အခု Stationary ဖြန့်တဲ့ company တစ်ခုရဲ့ Order Form ကို example အနေနဲ့လေ့လာကြည့်ကြရအောင်။
    Order Form
    ပုံမှာ ပြပေးထားပါတယ်။
    Zero Form ( 0NF )
    Zero Form ဆိုတာတကယ်တမ်းတော့ ဘာမှမပြုပြင် မပြောင်းလဲရသေးတဲ့ပုံစံပါပဲ။
    First Normal Form ( 1NF )
    First Normal Form မှာ လုပ်ရမယ့်အချက်တွေက
    1.Separate Repeating Data
    ထပ်နေတဲ့ data တွေကို table တစ်ခုအနေနဲ့ ခွဲထုတ်ရပါမယ်။
    ဒါဆိုရင် zero form မှာ အနီရောင်နဲ့ ဝိုက်ထားတဲ့အပိုင်းမဟုတ်တဲ့အပိုင်းဟာ ထပ်နေတဲ့အပိုင်း တွေပါ။
    အဲဒီ အပိုင်းကို table တစ်ခုအနေနဲ့ 1NF မှာခွဲထုတ်ရပါမယ်။
    ပြီးရင်
    2.Define Primary Key
    Primary Key သတ်မှတ်ပေးရပါမယ်။
    PK ဟာ Unique ဖြစ်ရပါမယ်။
    3.Define Relationship (Foreign Key )
    Foreign Key သတ်မှတ်ပေးရပါ့မယ်။
    ဒါမှသာ table တစ်ခုနဲ့တစ်ခု relationship ရှိမှာဖြစ်ပါတယ်။
    ပထမ table မှာပါတဲ့ PK(Primary Key) ဟာ ဒုတိယ table မှာ ပြန်ပါနေရင် FK (Foreign Key) လို့ ခေါ်ပါမယ်။
    ကဲ ဒါဆိုရင် 1NF table ကို ပုံမှာကြည့်ပါ။
    Second Normal Form (Only For Composite Key Table)

    1.Separate "Part Key Dependency"
    (Key တစ်ခုကိုပဲ denpend ဖြစ်နေတဲ့ဟာကို ဆွဲထုတ်ရပါမယ်။)
    Third Normal Form


    -Separate "Non-Key" Dependency
    အခုဆိုရင် Normalization ပြီးသွားပါပြီ။
    အဲဒီနေရာမှာ တစ်ခုပြောချင်တာက Theory မှာတော့
    "Remove calculated attributes".calculated attributes တွေကိုဖယ်ရမယ်လို့ဆိုလိုပါတယ်။
    Eg. Amount,Total Amount
    ဒါပေမယ့် လက်တွေ့မှာတော့မဖယ်ကြပဲ ထားကြတယ်လို့ ဆရာတစ်ဦးက ပြောဖူးပါတယ်။
    Database System
    OLTP
    OLAP
    OLTP ( Online Transaction Processing ) System
    Data entry တွေများများထည့်/ပြင်/ဖျက်
    Table တွေခွဲ
    တစ်နည်းအားဖြင့် Normalization ပါ။
    Eg. POS System and Restaurant တွေမှာသုံးပါတယ်။
    OLAP ( Online Analytical Processing ) System
    Mostly no entry
    Just retrival
    တစ်နည်းအားဖြင့် denormalization ပါ။
    Denormalization
    Table တွေကို ခွဲထားရာကနေ ပြန်ပေါင်းတာကို denormalization လို့ခေါ်ပါတယ်။
    Eg. Data Warehousing , Data Mining တို့လို Business Intelligence ( BI Technology ) တွေမှာ သုံးပါတယ်။
    Credit : Shwe Yee
    အမေးအဖြေ။
    Question:
    မေးပါရစေ 0NF မှာ ထပ်နေတဲ့ အပိုင်းဆိုတာ မကြည့်တတ်ဘူး။ ဘယ်လိုဟာကို ထပ်တယ် လို့ ယူရမလဲ တဆိတ်လောက် ပြောပြပေးပါရှင့်။
    Answer:
    0 NF ပုံ မှာ အနီရောင် ထောင့်ကွင်းထဲ က data တွေပဲ မတူတာ။ အဲ့data တွေကြောင့် တခြား field တွေ ထောင့်ကွင်း အပြင် က data တွေ က ထပ်နေပါတယ်။
    တူနေတဲ့ data field တွေထပ်ခါ ထပ်ခါ ထပ်ထည့်နေရမယ် အစား 1NF မှာ table သပ်သပ် ခွဲထုတ်လိုက်တာပါ။

    Credit : Shwe Yee

    No comments

    fix Connection Information error at Wordpress

    Wordpress => add the following code in your Config.php file =>  define('FS_METHOD', 'direct');

    Powered by Blogger.