Chapter 11
Entity–relationship Model
Entity–relationship model (ERD) ဆိုတာကတော့ Database Design ကို ဖန်တီးရာမှာ အသုံးပြုသည့် Diagram တစ်ခုပါ။ ERD ကို System တစ်ခု အတွက် database design ဆွဲသည့် အခါမှာ ၊ Database ကို ပြန်လည်ပြင်ဆင်လိုသည့် အခါမှာ ရေးဆွဲကြပါတယ်။
Entity
Entity ဆိုတာကတော့ အလွယ်ဆုံးပြောရရင်တော့ table ပါ။ ERD မှာတော့ Entity ဟာ person (Student) , object (Invoice), concept(Profile), event(Transaction) စတာတွေပါ။ ERD မှာ table လို့ မသုံးပဲ Entity လို့ သုံးပါတယ်။ Entity အတွက် Nouns ကိုသာ အသုံးပြုကြပါတယ်။ Teacher Entity ကို အောက်ပါ အတိုင်း ပုံဖော်ပါတယ်။
Entity Attributes
Table မှာ ပါသည့် Column လို့ အလွယ်ပြောနိုင်ပါတယ်။ Entity မှာ ပါသည့် property တွေကို ဖော်ပြထားပါတယ်။ ဥပမာ teachers entity မှာ ဆိုရင် id, name, address, phone စသည့် attribute တွေပါပါတယ်။
Primary Key
Primary key ကို Entity မှာ သိတာထင်ရှားသည့် ပုံစံ အနေနဲ့ Bold သို့မဟုတ် စာရွက်မှာ ဆွဲရင် underline တားထားပါတယ်။ teachers table မှာ ဆိုရင် id က bold ဖြစ်နေပါတယ်။ id ကို primary key ထားထားသည်လို့ ဆိုလိုတာပါ။
Foreign Key
Entity တစ်ခုမှာ primary key ဖြစ်ပြီး အခြား table မှာ ပါဝင်နေသည့် key ပါ။ realtion ချိတ်ဆက်ထားမှု ရှိပါတယ်။
One to One Relationship
One to One ကတော့ entity တစ်ခု မှာ ရှိသည့် primary ဟာ တစ်ကြိမ်ပဲ ပါဝင်ပြီး နောက် table တစ်ခုမှာ Foreign Key အနေနဲ့ တစ်ကြိမ်တည်း ပါဝင်သည့် realtionship မျိုးပါ။
User တစ်ယောက်ဟာ Users table မှာ တစ်ခါတည်းပါပြီး UsersProfile မှာလည်း တစ်ကြိမ်တည်းပါသည့် relationship မျိုးပါ။
+++
One to Many Relationship
Table တစ်ခုမှာ primary key ဖြစ်ပြီး နောက် table တစ်ခုမှာ Foreign key အနေနဲ့ တစ်ခုထက်မက ပါဝင်သည့် သဘောမျိုးပါ။
Users တစ်ယောက် users table မှာ တစ်ကြိမ်တည်း ရှိပေမယ့် transactions table မှာတော့ တစ်ကြိမ်ထက်မက ရှိနိုင်သည့် relationship မျိုးပါ။
+++
Many to Many Relationship
Entity မှာ foreign key က တစ်ကြိမ်ထပ်မက ပါနေသည့် relationship မျိုးပါ။
Student တစ်ယောက်ဟာ course တစ်ခု ထက် မက ရှိနိုင်သလို course တစ်ခု ကို ယူထားသည့် student ဟာလည်း အများကြီး ရှိနိုင်သည့် အခါမှာ အထက်ပ many to many relationship ဖြစ်ပါတယ်။
အခု ဆိုရင် ERD အကြောင်းကို အခြေခံလောက် အနည်းငယ်သိပါပြီ။ Project တစ်ခု မစခင်မှာ database design ကို ERD ဖြင့် ဆွဲခြင်းဖြင့် system အကြောင်းကို ပိုမို နားလည်စေနိုင်ပါတယ်။