Programming ကုိေလ့လာေနသူတုိင္းအတြက္ မသိမျဖစ္လုိအပ္တဲ့ database ပုိင္းထဲက
ေခါင္းစဥ္တစ္ခုျဖစ္တဲ့"Normalization"အေၾကာင္းေလးကုိသူငယ္ခ်င္းအားလုံးနဲ႔discussion
လုပ္ခ်င္ပါတယ္။သိသမွ်ေလးကုိအခုလုိ Share ေပးၿပီး discussion လုပ္ျခင္းဟာ programm
-ing စတင္ေလ့လာေနတဲ့သူငယ္ခ်င္းေတြအတြက္ တစ္စိတ္တစ္ေဒသ အက်ဳိးျဖစ္ထြန္းမႈျဖစ္
ေပၚေစမယ္ဆုိရင္ ေက်နပ္ပီတိျဖစ္မိမွာအမွန္ပါ။တကယ္လုိ႔ေရးတဲ့အထဲမွာ အယူအဆလြဲမွား
တယ္လုိ႔ေတြ႔ရွိခဲ့ရင္လည္းအႀကံျပဳေပးမယ့္သူငယ္ခ်င္းမ်ားကုိႀကိဳဆုိပါတယ္။
ကဲ ဒါဆိုရင္တုိ႔ေတြ "Normalization" အေၾကာင္းကုိေလ့လာၾကည္႔ၾကရေအာင္ေနာ္...........
ဆရာတစ္ေယာက္ေျပာဖူးတဲ့စကားတစ္ခြန္းရွိပါတယ္။အေၾကာင္းအရာတစ္ခုကုိ စၿပီးေလ့လာ
ေတာ့မယ္ဆုိရင္ အပုိင္း (၄)ပုိင္းခြဲၿပီးေလ့လာသင့္တယ္တဲ့။အဲဒီအပုိင္းေတြက
1.What ?
2.Why ?
3.How ?
4.When ?
(1).What ? ကေတာ့ - is a process.(သူက လုပ္ငန္းစဥ္တစ္ခုပါပဲ)
(2).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)ခုရွိပါတယ္။
- Zero From
- First Normal Form
- Second Normal Form
- Third Normal Form
- Fourth Normal Form
- Fifth Normal Form
ဒါေပမယ့္ တကယ့္လက္ေတြ႔ ကုမၼဏီႀကီးေတြမွာကုိပဲ Third Normal Form ထိသုံးရင္ကုိ
ေတာ္ေတာ္ျပည္႔စုံတယ္လုိ႔ေလ့လာဖူးပါတယ္။Fourth & Fifth Normal Form ေတြက
ေတာ့ Theory မွာပဲရွိၿပီး လက္ေတြ႔မွာ မသုံးသေလာက္နည္းပါးပါတယ္။
Stationary ျဖန္႔တဲ့ company တစ္ခုရဲ႕ Order Form ကုိ example အေနနဲ႔ေလ႔လာၾကည္႔
ၾကရေအာင္..........
Order Formတုိ႔ေတြ ဒီ Order Form ေလးကုိ example ထားၿပီး Form ေတြကုိ ေလ့လာၾကည္႔ရေအာင္ေနာ္။
(1).Zero FormZero Form ဆိုတာတကယ္တမ္းေတာ့ ဘာမွမျပဳျပင္ မေျပာင္းလဲရေသးတဲ့ပုံစံပါပဲ။
(2).First Normal FormFirst 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 ေလးဆြဲၾကည္႔ရေအာင္ေနာ္။
(3). Second Normal Form (Only For Composite Key Table)1.Separate "Part Key Dependency"
(Key တစ္ခုကုိပဲ denpend ျဖစ္ေနတဲ့ဟာကုိ ဆြဲထုတ္ရပါမယ္။)
(4). Third Normal Form-Separate "Non-Key" Dependency
အခုဆုိရင္ Normalization ၿပီးသြားပါၿပီ။အဲဒီေနရာမွာ တစ္ခုေျပာခ်င္တာက Theory မွာေတာ့
"Remove calculated attributes".calculated attributes ေတြကုိဖယ္ရမယ္လုိ႔ဆုိလုိပါတယ္။
Eg. Amount,Total Amount
ဒါေပမယ့္ လက္ေတြ႔မွာေတာ့မဖယ္ၾကပဲ ထားၾကတယ္လုိ႔ ဆရာတစ္ဦးက ေျပာဖူးပါတယ္.......
ီDatabase System- OLTP
- OLAP
1.OLTP(Online Transaction Processing)System - Data entry ေတြမ်ားမ်ားထည္႔/ျပင္/ဖ်က္
- Table ေတြခြဲ
- တစ္နည္းအားျဖင့္ Normalization ပါ။Eg. POS System and Restaurant
ေတြမွာသုံးပါတယ္။
2.OLAP (Online Analytical Processing)System- Nearly no entry
- Just retrival
- တစ္နည္းအားျဖင့္ denormalization ပါ။
-Table ေတြကုိခြဲထားရာကေနျပန္ေပါင္းတာကုိ denormalization လုိ႔ေခၚပါတယ္။
Eg. Data Warehousing , Data Mining တုိ႔လို Business Intelligence (BI Technology)
ေတြမွာသုံးပါတယ္။
***ပုံေတြမျမင္ရခဲ့ရင္ ပုံေပၚမွာrightကလစ္ေထာက္ၿပီးNewTabနဲ႔ဖြင့္ၾကည္႔ေပးပါ။ေသခ်ာျမင္
ရပါလိမ့္မည္။