ခက်သလားဟေ့ ဒေတာဘေ့စ်
Database အကြောင်း လုံးဝ မသိသူများအတွက် Database မိတ်ဆက်
- မိတ်ဆက်
- ဇယား၊ အတိုင် နှင့် အတန်းများ
- တန်ဖိုးနှစ်ခု မထပ်သော အတိုင်
- အမှတ်စဉ် အလိုအလျောက် တိုးပွားခြင်း
- တန်ဖိုးများ စီခြင်း
- ရှာဖွေခြင်း (သို့မဟုတ် ရွေးချယ်ခြင်း) နှင့် မာတိကာ အသုံးဝင်ပုံ
- တန်ဖိုးများ ပြုပြင်ပြောင်းလဲခြင်း
- တန်ဖိုးများ ဖျက်ခြင်း
- ဤမှဆက်၍
(၁) မိတ်ဆက်
DataBase အကြောင်းကို ကွန်ပျူတာနှင့် အိုင်တီ လိုက်စားသူတိုင်း နားစွန်နားဖျား သော်လည်းကောင်း၊ မကြာခဏ သော်လည်းကောင်း ကြားဖူးအံ့။ ယနေ့အခါ၊ ကွန်ပျူတာတွင် အလွန် ရှုပ်ထွေးများပြားသော အချက်အလက်များကို သိုမှီး ထိန်းသိမ်းရာ၌ DataBase ကား၊ မရှိမဖြစ် လိုအပ်ချက်တစ်ခု ဖြစ်လျက် ရှိလေသည်။
ဤဆောင်းပါးတွင် ထို DataBase ဆိုသည့် အကြောင်းကို နားလည် လွယ်စေရန် ကြိုးစား ရေးသား ထားပါသည်။ ရည်ရွယ်ချက်ကား၊ DataBase ကို IT သမားများ၊ Software Engineer များ၊ Programmer များ၏ ကိရိယာတစ်ခု၊ ရှုပ်ထွေး ပွေလီသော နားလည်ရ ခက်သည့် အကြောင်းတစ်ခု ဟူသော အမြင်မှ၊ ကွန်ပျူတာ အခြေခံရှိသူတိုင်း၊ မိမိ၏ လုပ်ငန်းဆိုင်ရာ ကွန်ပျူတာ အသုံးပြုမှုများနှင့် တွဲဖက်ကာ လိုအပ်သလို အသုံးပြုနိုင်သည့် ကိရိယာ တစ်ခုအဖြစ် မြင်စေရန် ဖြစ်သည်။
DataBase ကိုသုံးခြင်းဖြင့်
- များစွာသော အချက်အလက် (Data) များကို စနစ်ကျစွာ ထိန်းသိမ်းနိုင်သည်။
- မိမိ ရှာလိုသော အချက်အလက်ကို တိကျ မြန်ဆန်စွာရှာဖွေနိုင်သည်။
- လက်ရှိ အချက်အလက်များမှ တိုးချဲ့မှုများ (တိုးပွားမှုများ) ကို လျှင်မြန် ထိရောက်စွာ ဆောင်ရွက်နိုင်သည်။
- အချက်အလက်၏ ပြောင်းလဲမှု အခြေအနေများ၊ တန်ဖိုးများကို ပြန်လည် ကြည့်ရှုနိုင်သည်။
- အမှားအယွင်းနည်းသည်။
- အချက်အလက်များ၏ ဆက်သွယ်ချက်များကို ဖော်ညွှန်းပြီး ထိုဆက်သွယ်ချက် မှတဆင့် သက်ဆိုင်ရာ အချက်အလက်များကိုပါ ရှာဖွေ နိုင်သေးသည်။
- မှားယွင်းစွာ ပြောင်းလဲ ရေးသားမိသော အချက်အလက်များကို မူလ တန်ဖိုးသို့ ပြန်လည် ပြောင်းလဲနိုင်သည်။
- ထိုထို များပြားသော အချက်လက်များထဲ စိတ်ဝင်စားဖွယ် ဆက်သွယ်ချက်များ၊ အရေးပါသော အချက်အလက် ပြောင်းလဲမှု ပုံစံများကို ရှာဖွေ ဖော်ထုတ်ကာ အသုံးချနိုင်သည်။
DataBase ၏ အသုံးဝင်ပုံကား ထိုဖော်ပြပါ အချက် ၈ ချက်ထက် ပိုမိုများပြားသဖြင့် မဆုံးနိုင်သော ၎င်းတို့ကိုမရေးတော့ဘဲ လိုရင်းကို ဆက်ကြပါစို့။
ယခု ဆောင်းပါးတွင် နည်းပညာ ပိုင်းဆိုင်ရာ (SQL များ၊ Database System များ၊ Server များကို) မဆွေးနွေးဘဲ၊ DataBase အကြောင်းကို လုံးဝ မသိသေး သူများအတွက် ရည်ရွယ်ကာ သဘောတရားမျှကို မိတ်ဆက်မည် ဖြစ်ရာ စာဖတ်သူသည် DataBase အခြေခံ ရှိပြီးသူပင် ဖြစ်က ဆက်ဖတ်ရန် မလိုသည်ကို အကြံပြု လိုက်ပါသည်။
(၂) ဇယား၊ အတိုင်နှင့် အတန်းများ
DataBase ၏ အခြေခံကား ဇယားများ ဖြစ်သည်။ (အဲ.. ဟို.. ဇယားလေးတွေ ပြောတာ မဟုတ်ဘူးနော်။) DataBase System ဆိုသည်ကား အချက်အလက်များကို ဇယားများထဲတွင် သိမ်းဆည်းကာ၊ ဇယား တစ်ခုချင်းစီ အကြား ဆက်သွယ်ချက် များကို ဖန်တီးခြင်းဖြင့်၊ များစွာသော အချက်အလက် များကို စနစ်တကျ သိုမှီးခြင်းဖြစ်သည်။
DataBase ကား အချက်အလက်များကို ထိန်းသိမ်းရန်ဖြစ်ရာ၊ အချက်အလက် ထိန်းသိမ်းမှုအား အသုံးချမည့် ဥပမာ တစ်ခုဖြင့် စကြပါစို့။ ကျွန်ုပ်တို့တွင် ကောင်မလေးများ အမည်ကို သိမ်းဆည်းသော စာရင်းတစ်ခုရှိသည် ဆိုကြပါစို့။ (ကဲ အဂင်္လိပ် နာမည်တွေပဲ သုံးကြမယ်) စာရင်းတွင် မိန်းကလေး ငါးယောက်မှာ Alice, Betty, Cindy, Dolly, Emmy တို့ဖြစ်ကြလေသည်။
မိန်းကလေးများကို စာရင်းသွင်းရန် ဇယားတစ်ခု ဖန်တီးကြမည်။ ဇယားဖန်တီးခြင်းကို DataBase အခေါ်အားဖြင့် Create လုပ်သည်ဟု ခေါ်လေသည်။ ဇယားအမည်ကို Girls ဟုပေးကြမည်။ ထို့ကြောင့် Girls ဟူသော ဇယားကို Create လုပ်မည်။
ကောင်မလေး ငါးယောက်တို့အမည်များကို Girls ဇယားတွင် စာရင်းသွင်းသော်၊
| NAME |
| Alice |
| Betty |
| Cindy |
| Dolly |
| Emmy |
ဟု စာရင်းရ၏။
ဤနည်းဖြင့် ဇယားတစ်ခုကို Create လုပ်၏။
ထို့နောက်တွင် ထိုလူစုထဲသို့ နောက်တစ်ယောက် ရောက်လာလေသည်။ ထိုသူ၏ အမည်သည်လည်း Emmy ပင်ဖြစ်လေသည်။ ထိုအခါ စာရင်းအသစ်သည်ကား။
| NAME |
| Alice |
| Betty |
| Cindy |
| Dolly |
| Emmy |
| Emmy |
ဟုဖြစ်လာလေသည်။ Emmy နှစ်ယောက်ဖြစ်၏။ ဤတွင် ပြဿနာစလေပြီ။
ယခုအခါ Emmy ဟု ဆိုလိုက်သည်နှင့် မည်သည့် Emmy ကိုဆိုလိုမှန်းမသိဖြစ်ရလေသည်။ ထိုအခါ Emmy နှစ်ယောက်ကို ခွဲခြားရန်လိုလာသည်။
နောက်တစ်မျိုး တွေးကြဦးစို့။
နိုင်ငံသားတိုင်းတွင် မှတ်ပုံတင် နံပါတ်ရှိသည်။ လူနှစ်ဦးတွင် မှတ်ပုံတင် နံပါတ် မတူနိုင်။ အင်းစိန်က ကိုသိန်းနှင့် သာကေတက ကိုသိန်းတို့သည် နာမည်သာ တူသော်လည်း မှန်ပုံတင်အမှတ် မတူနိုင်ပေ။ ထို့ကြောင့် အမည်တူ သူများကို စာရင်းထဲတွင် လွယ်ကူစွာခွဲခြားနိုင်ရန် ထိုသို့ကွဲပြားသော နံပါတ်ပေးရန် လိုလာလေသည်။ ထို့ကြောင့်စာရင်းကို အောက်ပါအတိုင်း အမှတ်စဉ်ထည့်ကြမည်။
| SERIAL | NAME |
| 1 | Alice |
| 2 | Betty |
| 3 | Cindy |
| 4 | Dolly |
| 5 | Emmy |
| 6 | Emmy |
Figure 3 တွင် Emmy နှစ်ယောက်ကို ခွဲခြားနိုင်လေပြီ။ နာမည်ကား နှစ်ခု ထပ်နိုင်သည်။ အမှတ်စဉ်ကား နှစ်ခု မထပ်နိုင်။ အမည် ခွဲခြားရခက်သော နှစ်ခုထပ်သော အခါတွင်၊ အမှတ်စဉ်ကို ကြည့်ကာလူကို ခွဲခြားနိုင်၏။
ဤသို့ဖြင့် ယခုဆွဲသားသော ဇယားတွင် အတိုင် (column) ၂ ခု (SERIAL နှင့် NAME) နှင့် အတန်း (row) ၆ ခုတို့ရှိပေပြီ။ ထိုသို့ row နှင့် column များရှိသော ဇယားကို table ဟုခေါ်ကြပါစို့။ DataBase ၏ အသုံးအနှုန်းများနှင့် အသားကျစေရန် ယခုမှစ၍ Table, Row, Column ဟုသာ ခေါ်ဆို ရေးသားတော့မည်။
(၃) တန်ဖိုးနှစ်ခု မထပ်သော အတိုင်
Table တစ်ခုတွင် နှစ်ခုမထပ်နိုင်သော (နှစ်ခုမထပ်စေရဟု သတ်မှတ်ချက်) သတ္တိကို Uniqueness ဟုခေါ်ဆို၏။ ထိုသို့ နှစ်ခုမထပ်သော တန်ဖိုးများသာ ပါဝင်သည့် Column ကိုသုံးကာ Table ထဲတွင်ရှိသော Row များကို တိကျစွာ ဖော်ညွှန်းနိုင်သည်။ တစ်နည်း၊ ထို Column မှ တန်ဖိုးများသည် Row တစ်ခုခြင်းစီကို ကိုယ်စားပြုသည် ဟုလည်း ဆိုနိုင်သည်။ ထို့ကြောင့် ထို column သည် အဓိကကျသော column၊ တစ်နည်း key column ဟု ခေါ်သည်။
ကဲ ဇယားတွင် အမှတ်စဉ်နှင့် အမည်တော့ရပြီ။ မှတ်ပုံတင် နံပါတ်များ ထည့်ကြပါစို့။ မှတ်ပုံတင်အမှတ်ကို လွယ်ကူစေရန် ဤနည်းဖြင့် သတ်မှတ်မည်။
မှတ်ပုံတင်အမှတ် = အမည် + အမှတ်စဉ် + အမည်၏ ပထမ စာလုံး
ထို့နောက် NRIC ဟူသော column အသစ်ကို ထည့်သော အခါ အောက်ပါအတိုင်းရမည်။
| SERIAL | NAME | NRIC |
| 1 | Alice | Alice1A |
| 2 | Betty | Betty2B |
| 3 | Cindy | Cindy3C |
| 4 | Dolly | Dolly4D |
| 5 | Emmy | Emmy5E |
| 6 | Emmy | Emmy6E |
ထိုအခါ NRIC အတိုင်သည်လည်း နှစ်ခုမထပ်သော Uniqueness ဂုဏ်ရှိလေရာ ၎င်းကိုလည်း Key Column ဟုခေါ်ကမမှားပေ။ Table တွင် SERIAL နှင့် NRIC key column နှစ်ခုရှိလာလေပြီ။ ထို့ကြောင့် Key Column နှစ်ခုကို ကွဲပြားစေရန် SERIAL column အား မူလဘူတ key column (Primary key column) ဟုခေါ်တွင်စေကာ။ NRIC အား ဒုတိယ key column (Secondary key column) ဟုခေါ်တွင်စေအံ့။
SERIAL ကား ဤဇယားအတွက် Primary Key ဖြစ်ကာ NRIC ကား Secondary Key ဖြစ်လေသည်။
(၄) အမှတ်စဉ် အလိုအလျောက်တိုးပွားခြင်း
ဆက်ကြဦးစို့။
လက်ရှိ Table ထဲသို့ နောက်ထပ် လူ ၄ ယောက်နာမည်များ ထပ်ထည့်ကြမည်။
| SERIAL | NAME | NRIC |
| 1 | Alice | Alice1A |
| 2 | Betty | Betty2B |
| 3 | Cindy | Cindy3C |
| 4 | Dolly | Dolly4D |
| 5 | Emmy | Emmy5E |
| 6 | Emmy | Emmy6E |
| 7 | Amy | Amy7A |
| 8 | Elizabeth | Elizabeth8E |
| 9 | Bibo | Bibo9B |
| 10 | Ann | Ann10A |
Table ထဲသို့ နာမည်များ ထည့်သွင်းသော အခါ၊ အမှတ်စဉ်များလည်း တိုးပွားလာရပေမည်။
နာမည် အသစ်များ စာရင်းသွင်းပုံကို အနည်းငယ် စဉ်းစားကြည့်ကြပါစို့။ ဥပမာ Amy ကိုစာရင်းသွင်းသော အခါ၊ Alice နှင့် Betty ကြားတွင် နေရာပေးပါက၊ Amy အတွက် အမှတ်စဉ်ပေးရန် ခက်ပေသည်။ Amy အား အမှတ်စဉ် 2 ဟုပေးမည်ဆိုပါကလည်း၊ Betty မှစ၍ အောက်မှ Row တို့၏ အမှတ်စဉ်များ အားလုံးကို ပြောင်းလဲရပေမည်။
ထို့ကြောင့် အသစ်တိုးသော အမည်များအား၊ အမည်၏ အစီအစဉ်ကို ဥပက္ခောပြုကာ ဇယား အောက်ခြေတွင် နေရာပေးထည့်သွင်းခြင်းခြင့် လွယ်ကူစွာပင် ဖြေရှင်းနိုင်သည်။
ဤနည်းဖြင့် နာမည် အသစ်လေးခုကို ထည့်သွင်းလေရာ၊ အမှတ်စဉ်များလည်း တိုးပွားလာရလေသည်။ အမှတ်စဉ်သည် အထက်တွင် ဖော်ပြခဲ့သလို၊ Unique ဖြစ်ရလေရကား၊ နောက်ဆုံးရှိသော နံပါတ်မှ တစ်တိုးကာ အလိုအလျောက် ထည့်သွင်းလိုက်ရုံနှင့် ကိစ္စပြီး၏။
ထိုသို့ အလိုအလျောက် တိုးပွားခြင်းကို Auto Increment ဟုခေါ်သည်။ DataBase ၏အလေ့အထအားဖြင့် Primary Key column များကို Auto Increment အဖြစ် သတ်မှတ်လေ့ရှိသည်။
(၅) တန်ဖိုးများ စီခြင်း
လူ ၁ဝ ယောက်ပါသော Table ကားရပြီ။
Table တွင် ရှိသော Column တစ်ခုခြင်းကို ကြည့်ကြဦးစို့။ SERIAL column တွင် ရှိသော အမှတ်စဉ်များမှာ ကြီးစဉ် ငယ်လိုက် ဖြစ်ကြသော်လည်း၊ NAME column ရှိအမည်များ မှာ ABCD အစဉ်အလိုက် မဖြစ်ကြပေ။ ၎င်း တန်ဖိုးများကို စီကြအံ့။
တန်ဖိုးများကို စီရာတွင် နှစ်မျိုးနှစ်စား ရှိ၏။
- ကြီးစဉ် ငယ်လိုက်နှင့်
- ငယ်စဉ် ကြီးလိုက်
တို့ ဖြစ်ကြသည်။
တန်ဖိုးများ စီခြင်းကို DataBase အခေါ် sorting ဟုခေါ်သည်။ ကြီးစဉ်ငယ်လိုက် စီခြင်းမှာ sorting in descending order ဖြစ်၍ ငယ်စဉ် ကြီးလိုက် စီခြင်းမှာ sorting in ascending order ဖြစ်သည်။
Name Column ကို Ascending အလိုက် (ငယ်စဉ်ကြီးလိုက်) စီသော်။
| SERIAL | NAME | NRIC |
| 1 | Alice | Alice1A |
| 7 | Amy | Amy7A |
| 10 | Ann | Ann10A |
| 2 | Betty | Betty2B |
| 9 | Bibo | Bibo9B |
| 3 | Cindy | Cindy3C |
| 4 | Dolly | Dolly4D |
| 8 | Elizabeth | Elizabeth8E |
| 5 | Emmy | Emmy5E |
| 6 | Emmy | Emmy6E |
Name Column ကို Descending အလိုက် (ကြီးစဉ်ငယ်လိုက်) စီသော်။
| SERIAL
|
NAME
|
NRIC
|
| 5 | Emmy | Emmy5E |
| 6 | Emmy | Emmy6E |
| 8 | Elizabeth | Elizabeth8E |
| 4 | Dolly | Dolly4D |
| 3 | Cindy | Cindy3C |
| 9 | Bibo | Bibo9B |
| 2 | Betty | Betty2B |
| 10 | Ann | Ann10A |
| 7 | Amy | Amy7A |
| 1 | Alice | Alice1 |
ထိုသို့ တန်ဖိုးများ စီရာတွင် Column တစ်ခုခြင်းစီသာမက၊ Column များကို အတွဲလိုက်လည်း တန်ဖိုးစီနိုင်လေသည်။
ဥပမာ Name column ကို Ascending စီ၍၊ No Column ကို Descending စီသော်၊
| SERIAL
|
NAME
|
NRIC
|
| 1 | Alice | Alice1A |
| 7 | Amy | Amy7A |
| 10 | Ann | Ann10A |
| 2 | Betty | Betty2B |
| 9 | Bibo | Bibo9B |
| 3 | Cindy | Cindy3C |
| 4 | Dolly | Dolly4D |
| 8 | Elizabeth | Elizabeth8E |
| 6 | Emmy | Emmy6E |
| 5 | Emmy | Emmy5E |
အထက်ပါ တန်ဖိုး စီတန်းမှု ရလဒ် (Figure
တွင်၊ ပထမ Row ၃ခုကိုကြည့်ပါက NAME column စီရာတွင် Alice, Amy, Ann ဟု စီတန်း ထားသည်ကို တွေ့ရမည်ဖြစ်ပြီး၊ SERIAL column တွင်ကား 1, 7, 10 ဟုတွေ့ရမည် ဖြစ်သည်။ အဘယ့်ကြောင့် 10, 7, 1 ဟု မစီရသနည်း မေးအံ့။ ထိုသို့ စီတန်းရာတွင်၊ စီတန်းမှု အစီအစဉ်၌ ပထမဦးစွာ ပြဌာန်းသည့် column သည် ဦးစားပေး အဆင့် အမြင့်ဆုံးဖြစ်ပြီး နောက်ဆုံးတွင် ပြဌာန်းသည့် column သည် ဦးစားပေး အဆင့် အနိမ့်ဆုံး ဖြစ်လေသည်။
အောက်ဆုံး Row များဖြစ်သော၊ Emmy နှစ်ခုကိုကြည့်သော် အမှတ်စဉ်မှာ 6, 5 ဟူ၍ တွေ့ရမည်။ SERIAL coloum ကို decending စီရန် ပေးခဲ့သည်ကို အမှတ်ရလေ။ Alice, Amy နှင့် Ann တို့တွင် SERIAL မှာ ငယ်စဉ်ကြီးလိုက်ဖြစ်ပြီး၊ Emmy နှစ်ခုတွင်အမှတ်စဉ်မှာ ကြီးစဉ်ငယ်လိုက် ဖြစ်ရခြင်းမှာ၊ Emmy နှစ်ယောက်၏ NAME column တန်ဖိုး မှာ တူညီနေ ကြသောကြောင့်၊ ဒုတိယ ဦးစားပေးအဆင့် column အတိုင်း စဉ်ခြင်း ဖြစ်လေသည်။
ဆက်ပါဦးမည် …



nice explanation with the good examples.
:cheer
တကယ့်ကို Step by Step နားလည်အောင် ရေးသားပေးနိုင်တဲ့အတွက် ကိုနေထက်ကို ကျေးဇူးတင်ပါတယ်။ အားပေးနေတယ်ဗျို့ ဆက်တင်ပါဦး
I alread found this post in mz edu. are you ko thar thar?
အင်း..ခက်တာပဲ။ နာမည်ဝှက်နဲ့ရေးမရဘူးဖြစ်နေပြီ။ အဲဒီမှာ တင်ထားပြီးသားဆိုတာမေ့တောင်နေပါပြီကိုဝင်းလွင်ရေ။ ဒါပေမယ့် လာမယ့်အတွဲတွေကိုတော့ MMTut မှာပဲ ဆက်တင်ပါလိမ့်မယ်။
ps: အစ်ကိုကသာ မေ့တာပာ။ ဖတ်ရတဲ့သူက မမေ့ဘူးဗျ။
don’t get it wrong. i’m sorry.
အဲလို သဘောမျိုးနဲ့ ပြောတာမဟုတ်ပာဘူးဗျာ။ တခြားတစ်ယောက်ကနေ ပြန်တင်တယ်ဖြစ်မှာစိုးလို့ မေးကြည့်တာပာ။ ဆက်လက် မျှဝေပာဗျာ။ ကျေးဇူးတင်ပာတယ်။
ပြီးပြည့်စုံတဲ့ရှင်းပြချက်ပါပဲ။ nice post
[...] ခက်သလားဟေ့ ဒေတာဘေ့စ် [...]
ှSQL Server 2008 သင်ယူခဲ့ဖူးပါတယ်။ ဒါပေမယ့် မထိရောက်ခဲ့ဘူး။ အခုမှ ဒီ Post ကိုဖတ်ခွင့်ရခဲ့တယ်။ Post တွေမှာ Comment ရေးလေ့မရှိပေမယ့် တကယ်ကျေးဇူးတင်မိတဲ့အတွက် ရေးလိုက်ပါတယ်။ ဆက်လက်ပြီးလဲ SQL ကို လက်တွေ့ database field ထဲမှာ အသုံးချနိုင်တဲ့ထိ မျှဝေပေးပါလို့ တောင်းဆိုပါတယ်။ ပြီးတော့ SQLစာမေးပွဲအကြောင်းကိုလည်း သိလိုပါတယ်။ ကျေးဇူးတင်ပါတယ်။
ကျန်းမာချမ်းသာပါစေ
[...] ခက်သလားဟေ့ ဒေတာဘေ့(စ်) [...]
[...] ခက်သလားဟေ့ ဒေတာဘေ့စ် အပိုင်း (၁) [...]