ဤသည်ခက်ဆစ်အဘိဓာန်ဖုံးလွှမ်း ဒေတာဘေ့စအသုံးအနှုန်းများနှင့်သဘောတရားများကို databases ကိုအမျိုးအစားအားလုံးကိုဖြတ်ပြီးအသုံးပြုခဲ့သည်။ ဒါဟာအချို့မှုစနစ်များသို့မဟုတ် databases ကိုမှတိကျသောအသုံးအနှုန်းများမပါဝင်ပါဘူး။
ACID
အဆိုပါ ဒေတာဘေ့စဒီဇိုင်း ACID မော်ဒယ် Atom, ရှေ့နောက်ညီညွတ်မှု, အထီးကျန်မှုတွေများနှင့်ကြာရှည်ခံမှုမှတဆင့် data တွေကိုသမာဓိရှိအတည်ပြုပေးမှာ:
- Atom: တစ်ခုချင်းစီကိုဒေတာဘေ့စငွေပေးငွေယူငွေလွှဲပြောင်းမှု၏မည်သည့်အစိတ်အပိုင်းတစ်ခုပျက်ကွက်လျှင်, တစျခုလုံးကိုငွေပေးငွေယူပျက်ကွက်ကြောင်းအဓိပ္ပာယ်တစ်ခု All-or-ဘာမျှအုပ်ချုပ်မှုကိုလိုက်နာရမည်။
- ရှေ့နောက်ညီညွတ်မှု: တစ်ခုချင်းစီကိုဒေတာဘေ့စငွေပေးငွေယူရှိသမျှကိုဒေတာဘေ့စရဲ့သတ်မှတ်ထားသောစည်းမျဉ်းစည်းကမ်းတွေကိုလိုက်နာရမယ်, ထိုအစည်းမျဉ်းစည်းကမ်းတွေကိုဖောက်ဖျက်လိမ့်မယ်လို့မဆိုငွေပေးငွေယူခွင့်ပြုမထားပေ။
- အထီးကျန်: တစ်ခုချင်းစီကိုဒေတာဘေ့စငွေပေးငွေယူလွတ်လပ်စွာအခြားမည်သည့်ငွေပေးငွေယူ၏ဖြစ်ပေါ်ပါလိမ့်မယ်။ မျိုးစုံအရောင်းအတစ်ပြိုင်နက်တည်းတင်သွင်းလျှင်ဥပမာအားဖြင့်, ထိုဒေတာဘေ့စသူတို့ကိုအကြားမည်သည့်ဝင်ရောက်စွက်ဖက်မှုကိုတားဆီးလိမ့်မယ်။
- ကြာရှည်ခံမှု: တစ်ခုချင်းစီကိုဒေတာဘေ့စငွေပေးငွေယူအပြီးအပိုင်ရန်သင့်သိမ်းဆည်းချက်တွေကိုသို့မဟုတ်အခြားနည်းလမ်းများမှတဆင့်ဆိုဒေတာဘေ့စကျရှုံးခြင်းအတွက်တည်ရှိပါလိမ့်မယ်။
attribute
တစ်ဦးက ဒေတာဘေ့စ attribute ကို ဒေတာဘေ့စ entity ရဲ့ဝိသေသတစ်ခုဖြစ်ပါတယ်။ ရိုးရှင်းစွာအထားတစ်ခု attribute ကိုတစ်ဦး entity အဖြစ်လူသိများသောသူ့ဟာသူနေတဲ့ဒေတာဘေ့စ table ထဲမှာကော်လံဖြစ်ပါသည်။
Authentication ကို
databases ကိုသာလုပ်ပိုင်ခွင့်အသုံးပြုသူများဒေတာဘေ့စများ၏ဒေတာဘေ့စသို့မဟုတ်အချို့သောကဏ္ဍများကိုရယူနိုငျကွောငျးကိုသေချာစေရန် authentication ကိုအသုံးပြုပါ။ ပုံမှန်န်ထမ်းသာရှုမြင်ဒေတာနိုင်ပါလိမ့်မယ်နေချိန်မှာဥပမာအားဖြင့်, အုပ်ချုပ်ရေးမှူးများ, ဒေတာထည့်သွင်းသို့မဟုတ်တည်းဖြတ်ရန်အခွင့်အာဏာကိုခံရပေလိမ့်မည်။ authentication username နဲ့ password တွေနဲ့အကောင်အထည်ဖော်နေသည်။
base model
ခြေရင်းမော်ဒယ် ဒေတာ relational database များကိုလိုအပ်သောတူညီသောလမ်းဖွဲ့စည်းပုံမှာမပါသည့်အတွက် noSQL databases ကို၏လိုအပ်ချက်များကိုဖြည့်ဝတ်ပြုကိုးကွယ်ရန် ACID မော်ဒယ်တစ်ခုကအခြားရွေးချယ်စရာအဖြစ်တီထွင်ခဲ့တာဖြစ်ပါတယ်။ ၎င်း၏အဓိကသဘောတရားအခြေခံရရှိနိုင်, ဆော့ဖပြည်နယ်နှင့်နောက်ဆုံးမှာတသမတ်တည်းနေသောခေါင်းစဉ်:
- အခြေခံပညာရရှိနိုင်: အဆိုပါဒေတာဘေ့စရရှိနိုင်ခြင်းနှင့်လုပ်ငန်းလည်ပတ်ဖြစ်ပါသည်, အတော်ကြာဆာဗာများကိုဖြတ်ပြီးဖြန့်ဝေဒေတာပွားခြင်းဖြင့်တခါတရံကျောထောက်နောက်ခံ။
- soft ပြည်နယ်: တင်းကျပ်ရှေ့နောက်ညီညွတ်မှု၏ ACID မော်ဒယ်တန်ပြန်, ဒီသဘောတရား data တွေကိုအမြဲတသမတ်တည်းနှင့်မည်သည့်ပြဌာန်းကိုက်ညီမှုတစ်ဦးချင်းစီဒေတာဘေ့စသို့မဟုတ် developer များ၏တာဝန်ကြောင်းဖြစ်ဖို့ရှိသည်ပါဘူးဖော်ပြထားသည်။
- နောက်ဆုံးတသမတ်တည်း: အချို့ undefined အနာဂတ်အမှတ်မှာဒေတာဘေ့စကိုက်ညီမှုအောင်မြင်ရန်ပါလိမ့်မယ်။
သတ်
တစ်ဦးက ဒေတာဘေ့စသတ် ခိုင်လုံသောဒေတာသတ်မှတ်ကြောင်းစည်းမျဉ်းစည်းကမ်းတွေအစုတခုဖြစ်ပါတယ်။ သတ်များ၏အကွိမျမြားစှာအမျိုးအစားများတည်ရှိ။ အဆိုပါမူလတန်းသတ်နေသောခေါင်းစဉ်:
- ထူးခြားတဲ့အခက်အခဲ: တစ်ဦးကလယ် table ထဲမှာထူးခြားတဲ့တန်ဖိုးကိုပါဝင်ရပါမည်။
- သတ်စစ်ဆေးမြား: A လယ်၌သာတိကျသောဒေတာအမျိုးအစားဆံ့ပင်အချို့သောအိုင်အိုဒင်းတန်ဖိုးများနိုင်ပါတယ်။
- default သတ်: ကမျှတည်ဆဲတန်ဖိုးကိုရှိပါတယ်လျှင်တစ်ဦးကလယ်က default value ကိုမဆံ့တော်မူမည် ဒီ null တန်ဖိုးကိုရှင်းလင်းစေပါတယ်။
- PRIMARY KEY ကိုကန့်သတ်: အဆိုပါမူလတန်း key ကိုထူးခြားတဲ့ဖြစ်ရပါမည်။
- နိုင်ငံခြားရင်းနှီးမြှုပ်နှံမှုမြန်မာ့ KEY ကိုကန့်သတ်: အဆိုပါနိုင်ငံခြား key ကိုအခြား table ထဲမှာရှိပြီးသားမူလတန်းသော့ချက်ကိုက်ညီရမည်ဖြစ်သည်။
ဒေတာဘေ့စစီမံခန့်ခွဲမှုစနစ် (DBMS)
DBMS ဒေတာ entry ကိုနှင့်ကိုင်တွယ်ဘို့ပုံစံများပေးဖို့, ဒေတာသမာဓိရှိစည်းမျဉ်းစည်းကမ်းတွေပြဋ္ဌာန်းဖို့ဒေတာသိုလှောင်ခြင်းနှင့်လုံခြုံရေးရာမှတစ်ဦးဒေတာဘေ့စနဲ့အလုပ်လုပ်သူအပေါင်းတို့ရှုထောင့်စီမံခန့်ခွဲသောဆော့ဝဲဖြစ်ပါသည်။ တစ်ဦးက Relational Database ကိုစီမံခန့်ခွဲမှုစနစ် (RDBMS) သူတို့အကြားစားပွဲနှင့်ဆက်ဆံရေး၏ relational မော်ဒယ်အကောင်အထည်ဖော်ဆောင်ရွက်နေသော။
entity
တစ်ဦး entity database ထဲတွင်ရိုးရိုးစားပွဲတစ်ခုဖြစ်ပါတယ်။ ဒါဟာဒေတာဘေ့စစားပွဲကြားရှိဆက်ဆံရေးကိုပြသကြောင်းဂရပ်ဖစ်အမျိုးအစားတစ်ခုဖြစ်ပါတယ်သည့် Entity-ဆက်ဆံရေးပုံကြမ်း, သုံးပြီးဖော်ပြထားသည်။
functional မှီခိုမှု
တစ်ဦးကအလုပ်လုပ်တဲ့မှီခိုသတ် ဒေတာတရားဝင်မှုကိုသေချာစေရန်ကူညီပေးသည်နှင့်တဦးတည်း attribute ကိုတစ်ဦးအဖြစ်ဖော်ပြနောက်ထပ်၏တန်ဖိုးကိုဆုံးဖြတ်တဲ့အခါမှာတည်ရှိ - တစ်ဦး၏တန်ဖိုး B က၏တန်ဖိုးဆုံးဖြတ်သည်, ဒါမှမဟုတ်ကြောင်း B ကိုတစ်ဦးအပေါ် "functional မှီခို" ဖြစ်ပါတယ်ဆိုလိုတာက> B ကို အဆိုပါထူးခြားသောကျောင်းသားတစ်ယောက် ID ကိုနာတန်ဖိုးကိုအဆုံးအဖြတ်ပေးလိမ့်မည်ဆိုလိုသည်မှာ။ ဥပမာအားဖြင့်, ကျောင်းသားအားလုံး၏မှတ်တမ်းများပါဝင်သောတက္ကသိုလ်အတွက်စားပွဲတစ်ခု, ကျောင်းသား ID နှင့်ကျောင်းသားအမည်ဖြင့်အကြားတစ်ဦး functional မှီခိုကြပေလိမ့်မည်။
အညွှန်းကိန်း
တစ်ခုကအညွှန်းကိန်းကြီးမားတဲ့ဒေတာအစုများအတွက်မြန်နှုန်းဒေတာဘေ့စမေးမြန်းချက်ကူညီပေးသည်တဲ့ data structure ဖြစ်ပါတယ်။ ဒေတာဘေ့စ developer များဟာ table ထဲမှာအထူးသဖြင့်စစ်ကြောင်းများတခုတခုအပေါ်မှာအညွှန်းကိန်းဖန်တီးပါ။ အဆိုပါအညွှန်းကိန်းကော်လံတန်ဖိုးများကိုရရှိထားသူပေမယ့်ကိုယ့်စားပွဲ၏ကျန်အတွက်ဒေတာမှ pointers နှင့်ထိထိရောက်ရောက်လျင်မြန်စွာကိုရှာဖွေနိုင်ပါတယ်။
သော့
တစ်ဦးက key ကိုအဘယ်သူ၏ရည်ရွယ်ချက်ထူးခြားစံချိန်တင်ခွဲခြားသတ်မှတ်ဖို့ဖြစ်ပါတယ်တဲ့ဒေတာဘေ့စလယ်ပြင်သည်။ သော့ချက်များဒေတာသမာဓိရှိပြဋ္ဌာန်းရန်နှင့်ပုံတူကိုရှောင်ရှားကိုကူညီပေးပါတယ်။ ဒေတာဘေ့စများတွင်အသုံးပြုသော့၏အဓိကအမျိုးအစားများကိုယ်စားလှယ်လောင်းသော့, မူလတန်းသော့နိုင်ငံခြားသော့ဖြစ်ကြသည်။
- ကိုယ်စားလှယ်လောင်းသော့: တစ်ဦးချင်းစီသီးခြားစွာစံချိန်တင်ဖော်ထုတ်ရန်နှင့်မူလတန်း key ကိုရွေးကောက်တော်မူသောအနေဖြင့်နိုငျသောကော်လံ၏အစုံ။
- မူလတန်းသော့: ထူးခြားစားပွဲတစ်ခုအတွက်စံချိန်ကိုသိရှိနိုင်ဖို့ရှေးခယျြသောအဓိက။ ဒီ key null မဖြစ်နိုင်ပါ။
- နိုင်ငံခြားရေးသော့: အခြား table ထဲမှာစံချိန်တင်ရန်စံချိန်ချိတ်ဆက်အဓိက။ တစ်ဦးကစားပွဲရဲ့နိုင်ငံခြား key ကိုအခြားစားပွဲ၏အဓိကသော့ချက်အဖြစ်တည်ရှိနေရပါမည်။
ပုံမှန်
ဒေတာဘေ့စပုံမှန်မှဒေတာသမာဓိရှိသေချာစေရန်နှင့်ပုံတူရှောင်ရှားရန်တစ်လမ်းအတွက်ယင်း၏စားပွဲ (ဆက်ဆံရေး) နှင့်ကော်လံ (attribute တွေ) ဒီဇိုင်းရန်ဖြစ်ပါသည်။ ပုံမှန်၏အဓိကအဆင့်ဆင့်ပထမဦးစွာပုံမှန်ပုံစံ (1NF), ဒုတိယအချက်မှာပုံမှန်ပုံစံ (2NF), တတိယပုံမှန်ပုံစံ (3NF) နှင့် Boyce-Codd ပုံမှန်ပုံစံ (BCNF) ဖြစ်ကြသည်။
NoSQL
NoSQL ထိုကဲ့သို့သောအီးမေးလ်များ, လူမှုမီဒီယာ၏ရေးသားချက်များ, ဗီဒီယိုသို့မဟုတ်ပုံရိပ်တွေအဖြစ်ပျက်ပြင်ဆင်ထားသည data တွေကိုသိုလှောင်ဘို့လိုအပ်ကြောင်းကိုတုံ့ပြန်ရန်တီထွင်တဲ့ဒေတာဘေ့စမော်ဒယ်ဖြစ်ပါတယ်။ အဲဒီအစားဒေတာသမာဓိရှိသေချာစေရန် SQL နှင့်တင်းကျပ်သော ACID မော်ဒယ်သုံးပြီးထက် NoSQL နည်း-တင်းကျပ် base model ကိုအောက်ပါအတိုင်း။ တစ်ဦးက NoSQL ဒေတာဘေ့စ schema data တွေကိုသိမ်းထားဖို့စားပွဲမသုံးပါဘူး, အစား, တကသော့ချက် / တန်ဖိုးကိုဒီဇိုင်းသို့မဟုတ်ဂရပ်များကိုသုံးပါလိမ့်မယ်။
null
တန်ဖိုး null "အဘယ်သူမျှမ" သို့မဟုတ်သုညဆိုလိုမှမကြာခဏရှုပ်ထွေးလျက်ရှိ၏ သို့သော်အမှန်တကယ် "အမည်မသိ" ကိုဆိုလိုတယ်။ လယ် null ၏တန်ဖိုးရှိပါတယ်ဆိုပါကအမည်မသိတန်ဖိုးကိုများအတွက်အမှတ်အသားဖြစ်ပါတယ်။ စနစ်တကျ Query Language (SQL) က IS null ကိုအသုံးပြုသည်နှင့်တရားမဝင်သောတန်ဖိုးများအဘို့စမ်းသပ်ဖို့ null အော်ပရေတာမဟုတျပါဘူး။
မေးခွန်း
တစ်ဦးကဒေတာဘေ့စစုံစမ်းမှု အသုံးပြုသူများသည်တစ်ဦးဒေတာဘေ့စနှင့်အတူအပြန်အလှန်ဘယ်လိုဖြစ်ပါသည်။ ဒါဟာပုံမှန်အားဖြင့် SQL တိကျမ်းစာ၌လာသည်ကားနှင့်တစ်ဦးကိုရွေးချယ်စုံစမ်းမှုသို့မဟုတ်လုပ်ဆောင်ချက်တစ်ခုစုံစမ်းမှုဖြစ်စေနိုင်ပါတယ်။ တစ်ဦးကကို select လုပ်ပါစုံစမ်းမှုတစ်ခုဒေတာဘေ့စကနေဒေတာတွေကိုတောင်းဆို; လုပ်ဆောင်ချက်တစ်ခုစုံစမ်းမှုအပြောင်းအလဲနောက်ဆုံးသတင်းများသို့မဟုတ်ဒေတာကထပ်ပြောသည်။ တချို့က databases ကိုအသုံးပြုသူများကအလွယ်တကူ SQL နားလည်ရန်မလိုဘဲသတင်းအချက်အလက်များကိုတောင်းဆိုဖို့ခွင့်ပြု, အစုံစမ်းမှု၏ semantic ဖုံးကွယ်ကြောင်းပုံစံများပေး။
schema
တစ်ဦးကဒေတာဘေ့စ schema စားပွဲ, ကော်လံ, ဆက်ဆံရေးနှင့်ဒေတာဘေ့စတက်အောင်သတ်များ၏ဒီဇိုင်းဖြစ်ပါတယ်။ schemas များသောအားဖြင့်ကြေညာချက် CREATE ဟာ SQL သုံးပြီးဖော်ပြလေ့ရှိသည်။
သိုလှောင်ထားသောလုပ်ထုံးလုပ်နည်း
တစ်ဦးက stored procedure တစ်ဦး Pre-ပြုစုမေးမြန်းမှု, ဒါမှမဟုတ်တစ်ဦး Database ကိုစီမံခန့်ခွဲမှုစနစ်အတွက်မျိုးစုံအစီအစဉ်များနှင့်အသုံးပြုသူများကိုဖြတ်ပြီး shared နိုင် SQL ကြေညာချက်ဖြစ်ပါတယ်။ သိမ်းဆည်းထားလုပ်ထုံးလုပ်နည်းများ, ထိရောက်မှုတိုးတက်ကောင်းမွန်အောင်ဒေတာသမာဓိရှိပြဋ္ဌာန်းရန်ကူညီခြင်းနှင့်ကုန်ထုတ်စွမ်းအားမြှင့်တင်ရန်။
စနစ်တကျမေးမြန်းချက်ဘာသာစကားများ
စနစ်တကျ Query Language , ဒါမှမဟုတ် SQL, တစ်ဒေတာဘေ့စကနေဒေတာတွေကို access ဖို့အသုံးအများဆုံးဘာသာစကားဖြစ်ပါတယ်။ အဆိုပါဒေတာများကိုကြိုးကိုင်ခြယ်လှယ်ခြင်းဘာသာစကားများ (DML) အများဆုံးမကြာခဏအသုံးပြုကြသည် SQL commands ကို၏အစိတ်အပိုင်းအစုပါရှိသည်နှင့်အ SELECT, INSERT, UPDATE နှင့်ဖျက်ရန်ပါဝင်သည်။
သေနတ်မောင်းခလုတ်
တစ်ဦးကမောင်းတစ်ဦးအထူးသဖြင့်အဖြစ်အပျက်, စားပွဲတစ်ခုရဲ့ဒေတာကိုမှများသောအားဖြင့်အပြောင်းအလဲတစ်ခုပေးထား execute ဟုသတ်မှတ်နေတဲ့ stored procedure ဖြစ်ပါတယ်။ ဥပမာ, ခလုတ်တစ်ခုကို log စာရေးစာရင်းဇယားကိုစုသိမ်းတစ်ခုသို့မဟုတ်တန်ဖိုးကိုတွက်ချက်ဖို့ဒီဇိုင်းခံရပေလိမ့်မည်။
ကြည့်ရှုခြင်း
တစ်ဦးကဒေတာဘေ့စမြင်ကွင်းကို data တွေကိုရှုပ်ထွေးဖုံးကွယ်ခြင်းနှင့်အသုံးပြုသူအတွေ့အကြုံကိုချောမွေ့နိုင်ရန်အတွက်အဆုံးအသုံးပြုသူမှပြသအချက်အလက်များ၏တစ်ဦး filtered အစုံပါပဲ။ တစ်ဦးကအမြင်နှစ်ခုသို့မဟုတ်နှစ်ခုထက်ပိုသောစားပွဲကနေဒေတာတွေကို join နှင့်သတင်းအချက်အလက်၏အပိုင်းတစ်ပိုင်းကိုသာလျှင်ပါရှိသည်နိုင်ပါတယ်။