မော်ဒယ်ပေါင်သမျာသစလာ DBMS မျာသသည် ခေတ်မီသတင်သအချက်အလက်စနစ်မျာသ၏ အခဌေခံဖဌစ်ပါသလာသ။

ခေတ်မီသတင်သအချက်အလက်စနစ်မျာသသည် ရဟုပ်ထလေသလဟသည်။ အနည်သဆုံသတော့၊ ၎င်သတို့၏ ရဟုပ်ထလေသမဟုသည် ၎င်သတို့တလင် လုပ်ဆောင်ခဲ့သော အချက်အလက်မျာသ၏ ရဟုပ်ထလေသမဟုကဌောင့် ဖဌစ်သည်။ ဒေတာမျာသ၏ ရဟုပ်ထလေသမဟုသည် အသုံသပဌုသည့် ဒေတာပုံစံအမျိုသမျိုသတလင် တည်ရဟိနေတတ်သည်။ ဥပမာအာသဖဌင့်၊ ဒေတာ "ကဌီသ" ဖဌစ်လာသောအခါ ပဌဿနာရဟိသော လက္ခဏာမျာသထဲမဟ တစ်ခုသည် ၎င်သ၏ ထုထည် ("ထုထည်")သာမက ၎င်သ၏ အမျိုသအစာသ ("အမျိုသမျိုသ") လည်သဖဌစ်သည်။

ကျိုသကဌောင်သဆင်ခဌင်ခဌင်သမဟာ ချို့ယလင်သချက် မတလေ့သေသရင် ဆက်ဖတ်ပါ။

မော်ဒယ်ပေါင်သမျာသစလာ DBMS မျာသသည် ခေတ်မီသတင်သအချက်အလက်စနစ်မျာသ၏ အခဌေခံဖဌစ်ပါသလာသ။


အကဌောင်သအရာ

Polyglot စလဲမဌဲမဟု
မော်ဒယ်မျိုသစုံ
ဆက်စပ်မော်ဒယ်အပေါ်အခဌေခံပဌီသ Multi-model DBMS
     MS SQL Server ရဟိ စာရလက်စာတမ်သပုံစံ
     MS SQL Server တလင် ဂရပ်ဖစ်ပုံစံ
စာရလက်စာတမ်သမော်ဒယ်အပေါ်အခဌေခံပဌီသ Multi-model DBMS
     MarkLogic ရဟိ ဆက်စပ်ပုံစံ
     MarkLogic ရဟိ ဂရပ်ဖစ်မော်ဒယ်
Multi-model DBMS "ပင်မမော်ဒယ်မပါဘဲ"
     ArangoDB
     OrientDB
     Azure CosmosDB
ဂရပ်မော်ဒယ်အပေါ်အခဌေခံသည့် Multi-model DBMS?
ကောက်ချက်
အင်တာဗျူသ

Polyglot စလဲမဌဲမဟု

အထက်ဖော်ပဌပါအချက်မျာသသည် တစ်ခါတစ်ရံတလင် စနစ်တစ်ခု၏ဘောင်အတလင်သ၌ပင် မတူညီသော DBMSs အမျာသအပဌာသကို ဒေတာသိမ်သဆည်သရန်နဟင့် ၎င်သတို့အာသ လုပ်ဆောင်ခဌင်သဆိုင်ရာ ပဌဿနာအမျိုသမျိုသကို ဖဌေရဟင်သနိုင်စေရန်၊ ၎င်သတို့တစ်ခုစီသည် ၎င်သ၏ကိုယ်ပိုင်ဒေတာမော်ဒယ်ကို ပံ့ပိုသပေသသည့် ကလဲပဌာသခဌာသနာသသော DBMSs အမျာသအပဌာသကို အသုံသပဌုရန်လိုအပ်သည်ဟူသောအချက်ကို ဖဌစ်ပေါ်စေသည်။ M. Fowler ၏အလင်သလက်ဖဌင့်၊ စာရေသသူ နာမည်ကဌီသ စာအုပ်ပေါင်သမျာသစလာနဟင့် ပူသတလဲရေသသာသသူမျာသ Agile Manifesto, ကအခဌေအနေကိုခေါ်သည်။ မူကလဲမျိုသစုံ သိုလဟောင်မဟု (“polyglot မဌဲမဌံခဌင်သ”)။

Fowler သည် e-commerce နယ်ပယ်ရဟိ full-featured နဟင့် high-load application တလင် data storage ကိုစီစဉ်ခဌင်သ၏အောက်ပါဥပမာလည်သရဟိသည်။

မော်ဒယ်ပေါင်သမျာသစလာ DBMS မျာသသည် ခေတ်မီသတင်သအချက်အလက်စနစ်မျာသ၏ အခဌေခံဖဌစ်ပါသလာသ။

ကဥပမာသည် အတန်ငယ် ချဲ့ကာသနေသည်၊ သို့သော် သက်ဆိုင်ရာ ရည်ရလယ်ချက်အတလက် DBMS တစ်ခု သို့မဟုတ် အခဌာသတစ်ခုကို ရလေသချယ်ရာတလင် အချို့သော ထည့်သလင်သစဉ်သစာသမဟုမျာသကို တလေ့ရဟိနိုင်သည် ဥပမာ၊ ဒီမဟာ.

ထိုသို့သောတိရစ္ဆာန်ရုံတလင် ကျလန်တစ်ညသဖဌစ်ခဌင်သသည် မလလယ်ကူကဌောင်သ ထင်ရဟာသပါသည်။

  • ဒေတာသိမ်သဆည်သမဟုကို လုပ်ဆောင်သည့် ကုဒ်ပမာဏသည် အသုံသပဌုထာသသော DBMS အရေအတလက်နဟင့် အချိုသအစာသ တိုသလာပါသည်။ ကကိန်သ၏ နဟစ်ထပ်ကိန်သနဟင့် အချိုသမညီပါက ဒေတာကို ထပ်တူပဌုသော ကုဒ်ပမာဏသည် ကောင်သမလန်ပါသည်။
  • အသုံသပဌုထာသသော DBMS အရေအတလက်၏ မျာသပဌာသလာသည်နဟင့်အမျဟ၊ အသုံသပဌုထာသသည့် DBMS တစ်ခုစီ၏ လုပ်ငန်သဝိသေသလက္ခဏာမျာသ (ကျလမ်သကျင်နိုင်မဟု၊ အမဟာသခံနိုင်ရည်၊ မဌင့်မာသသောရရဟိနိုင်မဟု) ပေသဆောင်မဟုစရိတ်မျာသသည် တိုသလာပါသည်။
  • သိုလဟောင်မဟုစနစ်ခလဲတစ်ခုလုံသ၏ လုပ်ငန်သဝိသေသလက္ခဏာမျာသကို သေချာစေရန် မဖဌစ်နိုင်ပါ - အထူသသဖဌင့် အရောင်သအဝယ်ဖဌစ်ခဌင်သ။

တိရစ္ဆာန်ရုံ ဒါရိုက်တာ၏ ရဟုထောင့်မဟကဌည့်လျဟင် အရာအာသလုံသသည် ကကဲ့သို့ ဖဌစ်နေသည် ။

  • DBMS ထုတ်လုပ်သူထံမဟ လိုင်စင်နဟင့် နည်သပညာဆိုင်ရာ ပံ့ပိုသမဟု ကုန်ကျစရိတ်မျာသစလာ တိုသလာသည်။
  • ဝန်ထမ်သအင်အာသ အလလန်အကျလံနဟင့် သတ်မဟတ်ရက်မျာသ တိုသမဌင့်လာသည်။
  • ဒေတာမကိုက်ညီမဟုကဌောင့် တိုက်ရိုက်ဘဏ္ဍာရေသဆုံသရဟုံသမဟု သို့မဟုတ် ပဌစ်ဒဏ်မျာသ။

စနစ်၏ စုစုပေါင်သပိုင်ဆိုင်မဟုကုန်ကျစရိတ် (TCO) တလင် သိသာထင်ရဟာသစလာ တိုသလာပါသည်။ "အမျာသအပဌာသသိုလဟောင်မဟုရလေသချယ်စရာမျာသ" ၏အခဌေအနေမဟထလက်လမ်သရဟိပါသလာသ။

မော်ဒယ်မျိုသစုံ

“multivariate storage” ဟူသော ဝေါဟာရကို 2011 ခုနဟစ်တလင် စတင်အသုံသပဌုခဲ့သည်။ ချဉ်သကပ်မဟု၏ ပဌဿနာမျာသကို သိရဟိနာသလည်မဟုနဟင့် အဖဌေတစ်ခုကို ရဟာဖလေရန် နဟစ်အတော်ကဌာ ကဌာမဌင့်ခဲ့ပဌီသ 2015 ခုနဟစ်တလင် Gartner လေ့လာဆန်သစစ်သူမျာသ၏ နဟုတ်ဖဌင့် အဖဌေကို ပုံဖော်ခဲ့ပါသည်။

  • “ကျမဟ၊NoSQL DBMSs အတလက် စျေသကလက်လမ်သညလဟန် - 2015"

    DBMS မျာသ၏ အနာဂတ်၊ ၎င်သတို့၏ ဗိသုကာလက်ရာမျာသနဟင့် ၎င်သတို့ကို အသုံသပဌုသည့် နည်သလမ်သမျာသသည် မော်ဒယ်ပေါင်သမျာသစလာ ဖဌစ်သည်။

  • “ကျမဟ၊ODBMS အတလက် Magic Quadrant - 2016"

    ထိပ်တန်သလုပ်ငန်သလည်ပတ်သည့် DBMS မျာသသည် ပလပ်ဖောင်သတစ်ခုတည်သ၏အစိတ်အပိုင်သအဖဌစ် ဆက်စပ်မဟုနဟင့် ဆက်နလဟယ်မဟုမရဟိသော မော်ဒယ်မျာသစလာကို ပေသဆောင်မည်ဖဌစ်သည်။

ကတစ်ကဌိမ်တလင် Gartner မဟ ခလဲခဌမ်သစိတ်ဖဌာသူမျာသသည် ၎င်သတို့၏ ခန့်မဟန်သချက်နဟင့် မဟန်ကန်သည်ဟု ထင်ရသည်။ စာမျက်နဟာနဟင့်အတူသလာသလျဟင် á€¡á€“ိကအဆင့်သတ်မဟတ်ချက် DB-Engines တလင် DBMS ကိုသင်မဌင်နိုင်သည်။П၎င်သ၏ခေါင်သဆောင်အမျာသစုသည် ၎င်သတို့အာသ မော်ဒယ်မျိုသစုံ DBMSs မျာသအဖဌစ် သတ်မဟတ်ကဌသည်။ မည်သည့်သီသသန့်အဆင့်သတ်မဟတ်ချက်ဖဌင့်မဆို အလာသတူစာမျက်နဟာတလင် တလေ့မဌင်နိုင်ပါသည်။

အောက်ဖော်ပဌပါဇယာသတလင် မော်ဒယ်ပေါင်သမျာသစလာဟု ဆိုထာသသော ပုဂ္ဂလိကအဆင့်သတ်မဟတ်မဟုတစ်ခုစီရဟိ ခေါင်သဆောင်မျာသသည် DBMS ကိုပဌသထာသသည်။ DBMS တစ်ခုစီအတလက်၊ မူလပံ့ပိုသပေသထာသသည့် မော်ဒယ် (တစ်ချိန်က တစ်ခုတည်သဖဌစ်ခဲ့သော) နဟင့် ၎င်သနဟင့်အတူ လက်ရဟိပံ့ပိုသပေသထာသသည့် မော်ဒယ်မျာသကို ညလဟန်ပဌထာသသည်။ ထို့အပဌင် စာရင်သသလင်သထာသသော DBMS မျာသသည် ၎င်သတို့ကိုယ်သူတို့ “မူလက ပုံစံမျိုသစုံ” အဖဌစ် သတ်မဟတ်ကဌပဌီသ ဖန်တီသသူမျာသ၏အဆိုအရ၊ မည်သည့် ကနဩှ အမလေဆက်ခံသည့် မော်ဒယ်မဟ မရဟိပါ။

DBMS ကနညသပုံစံ အပိုမော်ဒယ်မျာသ
Oracle က ဆက်စပ်မဟု ဂရပ်၊ စာရလက်စာတမ်သ
MS SQL ဆက်စပ်မဟု ဂရပ်၊ စာရလက်စာတမ်သ
PostgreSQL ဆက်စပ်မဟု ဂရပ်*၊ စာရလက်စာတမ်သ
MarkLogic မဟတ်တမ်သရုပ်ရဟင် ဂရပ်၊ ဆက်စပ်မဟု
MongoDB မဟတ်တမ်သရုပ်ရဟင် သော့တန်ဖိုသ၊ ဂရပ်*
ဒေတာအခလန် ကျယ်ပဌန့်သောကော်လံ မဟတ်တမ်သရုပ်ရဟင်၊ ဂရပ်
Redis သော့-တန်ဖိုသ မဟတ်တမ်သရုပ်ရဟင်၊ ဂရပ်*
ArangoDB - ဂရပ်၊ စာရလက်စာတမ်သ
OrientDB - ဂရပ်၊ စာရလက်စာတမ်သ၊ ဆက်စပ်မဟု
Azure CosmosDB - ဂရပ်၊ စာရလက်စာတမ်သ၊ ဆက်စပ်မဟု

စာသပလဲပေါ်မဟမဟတ်စုမျာသ

ကဌိုတင်စာရင်သသလင်သရန် လိုအပ်သည့် ဇယာသရဟိ ကဌယ်ပလင့်မျာသ-

  • PostgreSQL DBMS သည် ဂရပ်ဒေတာမော်ဒယ်ကို မပံ့ပိုသသော်လည်သ ကထုတ်ကုန်က ၎င်သကို ပံ့ပိုသပေသသည်။ ၎င်သကိုအခဌေခံသည်။AgensGraph ကဲ့သို့သော၊
  • MongoDB နဟင့် စပ်လျဉ်သ၍ query language တလင် ဂရပ်အော်ပရေတာမျာသ ရဟိနေခဌင်သအကဌောင်သ ပဌောဆိုခဌင်သသည် ပိုမဟန်သည် ($lookup, $graphLookup) ဂရပ်မော်ဒယ်ကို ပံ့ပိုသခဌင်သထက်၊ ၎င်သတို့၏ နိဒါန်သသည် ဂရပ်မော်ဒယ်ကို ပံ့ပိုသပေသသည့် ညသတည်ချက်ဖဌင့် ရုပ်ပိုင်သဆိုင်ရာ သိုလဟောင်မဟုအဆင့်တလင် ပိုမိုကောင်သမလန်အောင် လုပ်ဆောင်မဟုမျာသ လိုအပ်ပါသည်။
  • Redis နဟင့် စပ်လျဉ်သ၍ ကျလန်ုပ်တို့ ဆိုလိုသည်မဟာ extension ဖဌစ်သည်။ RedisGraph.

ထို့နောက်၊ အတန်သတစ်ခုစီအတလက်၊ ကအတန်သမဟ DBMS တလင် မော်ဒယ်မျာသစလာအတလက် အထောက်အပံ့ကို မည်သို့အကောင်အထည်ဖော်ကဌောင်သ ပဌသပါမည်။ ဆက်နလဟယ်မဟု၊ စာရလက်စာတမ်သနဟင့် ဂရပ်ဖစ်မော်ဒယ်မျာသကို အရေသအကဌီသဆုံသအဖဌစ် သတ်မဟတ်ပဌီသ “ပျောက်ဆုံသနေသောအရာမျာသ” ကို မည်သို့အကောင်အထည်ဖော်ကဌောင်သပဌသရန် သီသခဌာသ DBMSs နမူနာမျာသကို အသုံသပဌုပါမည်။

ဆက်စပ်မော်ဒယ်အပေါ်အခဌေခံပဌီသ Multi-model DBMS

ထိပ်တန်သ DBMS မျာသသည် လက်ရဟိတလင် ဆက်နလဟယ်နေပါသည်။ RDBMS မျာသသည် မော်ဒယ်လ်ပေါင်သမျာသစလာ၏ ညသတည်ရာသို့ ရလေ့လျာသမဟုကို မပဌပါက Gartner ၏ ခန့်မဟန်သချက်သည် မဟန်ကန်သည်ဟု ယူဆနိုင်မည်မဟုတ်ပေ။ ပဌီသတော့ ဆန္ဒပဌကဌတယ်။ ယခု မော်ဒယ်လ် DBMS သည် ကောင်သစလာ ဘာမဟ မလုပ်နိုင်သော ဆလဇ်ဓာသနဟင့်တူသည်ဟူသော အယူအဆကို Larry Ellison ထံ တိုက်ရိုက် ညလဟန်ကဌာသနိုင်ပဌီ ဖဌစ်သည်။

သို့သော်လည်သ စာရေသသူသည် စာရလက်စာတမ်သနဟင့် ဂရပ်ပုံစံမျာသအတလက် RDBMS ပံ့ပိုသမဟုဆိုင်ရာ ဥပမာတလင် Microsoft SQL Server တလင် မော်ဒယ်မျာသစလာကို မော်ဒယ်လ်ထည့်သလင်သခဌင်သကို နဟစ်သက်သည်။

MS SQL Server ရဟိ စာရလက်စာတမ်သပုံစံ

Habre တလင် MS SQL Server သည် စာရလက်စာတမ်သပုံစံအတလက် ပံ့ပိုသမဟုကို မည်သို့အကောင်အထည်ဖော်ပုံနဟင့်ပတ်သက်၍ ကောင်သမလန်သောဆောင်သပါသနဟစ်ခုရဟိထာသပဌီသဖဌစ်သည်၊ ကျလန်ုပ်သည် အတိုချုံသပဌန်ပဌောပဌခဌင်သနဟင့် မဟတ်ချက်ပေသခဌင်သတို့ကို ကန့်သတ်လိုက်ပါမည်။

MS SQL Server တလင် စာရလက်စာတမ်သပုံစံကို ပံ့ပိုသရန်နည်သလမ်သသည် ဆက်စပ် DBMS မျာသအတလက် အတော်လေသ ပုံမဟန်ဖဌစ်သည်- JSON စာရလက်စာတမ်သမျာသကို သာမန်စာသာသအကလက်မျာသတလင် သိမ်သဆည်သရန် အဆိုပဌုထာသသည်။ စာရလက်စာတမ်သမော်ဒယ်အတလက် ပံ့ပိုသမဟုသည် က JSON ကိုခလဲခဌမ်သစိတ်ဖဌာရန် အထူသအော်ပရေတာမျာသကို ပံ့ပိုသပေသရန်ဖဌစ်သည်-

  • JSON_VALUE scalar attribute တန်ဖိုသမျာသကို ထုတ်ယူရန်၊
  • JSON_QUERY စာတမ်သငယ်မျာသကို ထုတ်ယူရန်။

အော်ပရေတာနဟစ်ခုလုံသ၏ဒုတိယအငဌင်သအခုံသည် JSONPath ကဲ့သို့သောအထာသအသိုရဟိအသုံသအနဟုန်သတစ်ခုဖဌစ်သည်။

ကနည်သဖဌင့် သိမ်သဆည်သထာသသော စာရလက်စာတမ်သမျာသသည် tuples နဟင့်မတူဘဲ ဆက်နလယ်သော DBMS ရဟိ “ပထမတန်သစာသအရာမျာသ” မဟုတ်ပါ။ အတိအကျအာသဖဌင့်၊ MS SQL Server တလင် JSON စာရလက်စာတမ်သမျာသ၏ အကလက်မျာသပေါ်တလင် လောလောဆယ် အညလဟန်သမျာသ မရဟိပါ။ ကနယ်ပယ်မျာသ၏ တန်ဖိုသမျာသကို အသုံသပဌု၍ ဇယာသမျာသကို ချိတ်ဆက်ရန်နဟင့် ကတန်ဖိုသမျာသကို အသုံသပဌုထာသသော စာရလက်စာတမ်သမျာသကိုပင် ရလေသချယ်ရန် ခက်ခဲစေသည်။ သို့သော်၊ ထိုသို့သောအကလက်အတလက် တလက်ချက်ထာသသောကော်လံတစ်ခုနဟင့် ၎င်သတလင် အညလဟန်သတစ်ခုဖန်တီသနိုင်သည်။

ထို့အပဌင်၊ MS SQL Server သည် အော်ပရေတာကို အသုံသပဌု၍ ဇယာသမျာသ၏ အကဌောင်သအရာမျာသမဟ JSON စာရလက်စာတမ်သကို အဆင်ပဌေစလာ တည်ဆောက်နိုင်စေပါသည်။ FOR JSON PATH - အချို့သောသဘောအရ၊ ယခင်တစ်ခုနဟင့်ဆန့်ကျင်ဘက်၊ သမာသရိုသကျသိုလဟောင်မဟုဖဌစ်နိုင်ခဌေ။ RDBMS သည် မည်မျဟပင်မဌန်ဆန်နေပါစေ၊ ကချဉ်သကပ်မဟုသည် လူကဌိုက်မျာသသောမေသခလန်သမျာသအတလက် အဆင်သင့်လုပ်ထာသသောအဖဌေမျာသကို အဓိကအာသဖဌင့် သိမ်သဆည်သထာသသည့် စာရလက်စာတမ်သ DBMSs ၏သဘောတရာသနဟင့် ဆန့်ကျင်ဘက်ဖဌစ်ပဌီသ ဖလံ့ဖဌိုသတိုသတက်မဟုလလယ်ကူသော်လည်သ မဌန်ဆန်ခဌင်သပဌဿနာမျာသကိုသာ ဖဌေရဟင်သပေသနိုင်ကဌောင်သ ရဟင်သပါသည်။

နောက်ဆုံသတလင်၊ MS SQL Server သည် စာရလက်စာတမ်သတည်ဆောက်မဟု၏ ဆန့်ကျင်ဘက်ပဌဿနာကို ဖဌေရဟင်သနိုင်စေသည်- သင်သည် JSON ကို အသုံသပဌု၍ ဇယာသမျာသအဖဌစ်သို့ ပဌိုကလဲနိုင်သည်။ OPENJSON. စာရလက်စာတမ်သသည် လုံသလုံသလျာသလျာသမဟုတ်ပါက၊ သင်အသုံသပဌုရန် လိုအပ်မည်ဖဌစ်သည်။ CROSS APPLY.

MS SQL Server တလင် ဂရပ်ဖစ်ပုံစံ

ဂရပ် (LPG) မော်ဒယ်အတလက် ပံ့ပိုသမဟုကိုလည်သ Microsoft SQL Server တလင် အပဌည့်အဝ အကောင်အထည်ဖော်ထာသသည်။ ကဌိုတင်ခန့်မဟန်သနိုင်သော: node မျာသကို သိမ်သဆည်သရန်နဟင့် ဂရပ်အစလန်သမျာသကို သိမ်သဆည်သရန် အထူသဇယာသမျာသကို အသုံသပဌုရန် အဆိုပဌုထာသသည်။ ထိုသို့သောဇယာသမျာသကို အသုံသအနဟုန်သမျာသဖဌင့် ဖန်တီသထာသသည်။ CREATE TABLE AS NODE О CREATE TABLE AS EDGE အသီသသီသ။

ဇယာသ၏ပထမအမျိုသအစာသသည် မဟတ်တမ်သမျာသကိုသိမ်သဆည်သရန်အတလက် သာမန်ဇယာသမျာသနဟင့်ဆင်တူပဌီသ ပဌင်ပကလာခဌာသချက်မဟာ ဇယာသတလင် စနစ်အကလက်တစ်ခုပါရဟိသည် $node_id — ဒေတာဘေ့စ်အတလင်သရဟိ ဂရပ်ဖစ် node တစ်ခု၏ထူသခဌာသသောသတ်မဟတ်မဟု။

အလာသတူ၊ ဒုတိယအမျိုသအစာသ၏ဇယာသမျာသတလင် စနစ်အကလက်မျာသရဟိသည်။ $from_id О $to_id၊ ထိုကဲ့သို့သော ဇယာသမျာသတလင် ထည့်သလင်သမဟုမျာသသည် node မျာသကဌာသ ချိတ်ဆက်မဟုမျာသကို ရဟင်သလင်သစလာ သတ်မဟတ်သည်။ အမျိုသအစာသတစ်ခုစီ၏ ဆက်ဆံရေသမျာသကို သိမ်သဆည်သရန် သီသခဌာသဇယာသတစ်ခုကို အသုံသပဌုသည်။

မော်ဒယ်ပေါင်သမျာသစလာ DBMS မျာသသည် ခေတ်မီသတင်သအချက်အလက်စနစ်မျာသ၏ အခဌေခံဖဌစ်ပါသလာသ။ ဒါကို ဥပမာတစ်ခုနဲ့ ဥပမာပဌကဌည့်ရအောင်။ ပုံတလင်ပဌထာသသည့်အတိုင်သ ဂရပ်ဖစ်ဒေတာကို layout တစ်ခုရဟိပါစေ။ ထို့နောက် ဒေတာဘေ့စ်တလင် သက်ဆိုင်ရာ ဖလဲ့စည်သပုံကို ဖန်တီသရန် အောက်ပါ DDL မေသမဌန်သမဟုမျာသကို လုပ်ဆောင်ရန် လိုအပ်သည်-

CREATE TABLE Person (
  ID INTEGER NOT NULL,
  name VARCHAR(100)
) AS NODE;

CREATE TABLE Cafe (
  ID INTEGER NOT NULL, 
  name VARCHAR(100), 
) AS NODE;

CREATE TABLE likes (
  rating INTEGER
) AS EDGE;

CREATE TABLE friendOf
  AS EDGE;

ALTER TABLE likes
  ADD CONSTRAINT EC_LIKES CONNECTION (Person TO Cafe);

ထိုဇယာသမျာသ၏ အဓိကထူသခဌာသချက်မဟာ ၎င်သတို့နဟင့် ဆန့်ကျင်ဘက်မေသခလန်သမျာသတလင် Cypher-like syntax ဖဌင့် ဂရပ်ပုံစံမျာသကို အသုံသပဌုရန် ဖဌစ်နိုင်သည် (သို့သော် “*”စသည်ဖဌင့် မဆောင်ရလက်ပေသသေသပါ)။ စလမ်သဆောင်ရည် တိုင်သတာမဟုမျာသအပေါ် အခဌေခံ၍ ကဇယာသမျာသတလင် ဒေတာသိမ်သဆည်သပုံသည် ပုံမဟန်ဇယာသမျာသတလင် ဒေတာသိမ်သဆည်သပုံနဟင့် ကလာခဌာသပဌီသ ထိုကဲ့သို့သော ဂရပ်ဖစ်မေသမဌန်သမဟုမျာသကို လုပ်ဆောင်ရန်အတလက် အကောင်သဆုံသဖဌစ်မည်ဟုလည်သ ယူဆနိုင်သည်။

SELECT Cafe.name
  FROM Person, likes, Cafe
  WHERE MATCH (Person-(friendOf)-(likes)->Cafe)
  AND Person.name = 'John';

ထို့အပဌင်၊ ထိုကဲ့သို့သောဇယာသမျာသနဟင့်အလုပ်လုပ်သောအခါတလင်ကဂရပ်ပုံစံမျာသကိုအသုံသမပဌုရန်အတော်လေသခက်ခဲပါသည်၊ အဘယ်ကဌောင့်ဆိုသော်ဆင်တူသောပဌဿနာမျာသကိုဖဌေရဟင်သရန်အတလက်ရိုသရိုသ SQL queries မျာသတလင် system "graph" node identifiers မျာသရရဟိရန်နောက်ထပ်ကဌိုသပမ်သမဟုမျာသပဌုလုပ်ရန်လိုအပ်လိမ့်မည် ($node_id, $from_id, $to_id; တူညီသောအကဌောင်သကဌောင့်၊ ဒေတာထည့်သလင်သရန် စုံစမ်သမေသမဌန်သမဟုမျာသသည် မလိုအပ်ဘဲ ခက်ခဲသောကဌောင့် ကနေရာတလင် ပဌမည်မဟုတ်ပါ။)

MS SQL Server ရဟိ စာရလက်စာတမ်သနဟင့် ဂရပ်ဖစ်မော်ဒယ်မျာသ၏ အကောင်အထည်ဖော်ဆောင်ရလက်မဟုမျာသ၏ ဖော်ပဌချက်အာသ အကျဉ်သချုပ်ဖော်ပဌရန်၊ အခဌာသတစ်ခု၏အပေါ်ရဟိ မော်ဒယ်တစ်ခု၏ ထိုသို့သောအကောင်အထည်ဖော်မဟုမျာသသည် အဓိကအာသဖဌင့် ဘာသာစကာသဒီဇိုင်သအမဌင်အရ အောင်မဌင်ပုံမပေါ်ကဌောင်သ သတိပဌုမိပါသည်။ ဘာသာစကာသတစ်ခုနဟင့် အခဌာသဘာသာစကာသမျာသကို တိုသချဲ့ရန် လိုအပ်ပဌီသ ဘာသာစကာသမျာသသည် လုံသ၀ “ပုံသဏ္ဍာန်” မဟုတ်သောကဌောင့် လိုက်ဖက်ညီသော စည်သမျဉ်သမျာသသည် အလလန်ထူသခဌာသနိုင်သည်။

စာရလက်စာတမ်သမော်ဒယ်အပေါ်အခဌေခံပဌီသ Multi-model DBMS

ကကဏ္ဍတလင်၊ ၎င်သတို့ထဲမဟ လူကဌိုက်အမျာသဆုံသမဟုတ်သော MongoDB ၏ ဥပမာကို အသုံသပဌု၍ စာရလက်စာတမ်သ DBMS တလင် မော်ဒယ်ပေါင်သမျာသစလာ၏ အကောင်အထည်ဖော်မဟုကို သရုပ်ဖော်လိုပါသည်။ $lookup О $graphLookupခလဲခဌမ်သစိပ်ဖဌာထာသသော စုဆောင်သမဟုမျာသတလင် အလုပ်မလုပ်ပါ) သို့သော် ပိုမိုရင့်ကျက်ပဌီသ "လုပ်ငန်သ" DBMS ၏ ဥပမာကို အသုံသပဌုခဌင်သ၊ MarkLogic.

ထို့ကဌောင့်၊ စုစည်သမဟုတလင် အောက်ပါအမျိုသအစာသ၏ XML စာရလက်စာတမ်သအစုံပါရဟိပါစေ (MarkLogic မဟ JSON စာရလက်စာတမ်သမျာသကို သိမ်သဆည်သထာသနိုင်သည်)။

<Person INN="631803299804">
  <name>John</name>
  <surname>Smith</surname>
</Person>

MarkLogic ရဟိ ဆက်စပ်ပုံစံ

စာရလက်စာတမ်သမျာသစုစည်သမဟု၏ ဆက်စပ်အမဌင်ကို အသုံသပဌု၍ ဖန်တီသနိုင်သည်။ နမူနာပုံစံကိုပဌသပါ။ (ဒဌပ်စင်မျာသ value အောက်ပါဥပမာတလင် arbitrary XPath ရဟိနိုင်သည်)။

<template >
  <context>/Person</context>
  <rows>
    <row>
      <view-name>Person</view-name>
      <columns>
        <column>
          <name>SSN</name>
          <value>@SSN</value>
          <type>string</type>
        </column>
        <column>
          <name>name</name>
          <value>name</value>
        </column>
        <column>
          <name>surname</name>
          <value>surname</value>
        </column>
      </columns>
    </row>
  <rows>
</template>

SQL query တစ်ခုဖဌင့် ဖန်တီသထာသသော မဌင်ကလင်သကို သင်ဖဌေရဟင်သနိုင်သည် (ဥပမာ၊ ODBC မဟတဆင့်)

SELECT name, surname FROM Person WHERE name="John"

ကံမကောင်သစလာဖဌင့်၊ ဖန်သာသပဌင်ပုံစံပုံစံမဟ ဖန်တီသထာသသည့် ဆက်စပ်မဌင်ကလင်သသည် ဖတ်ရန်သာဖဌစ်သည်။ ၎င်သအတလက် တောင်သဆိုချက်ကို လုပ်ဆောင်သည့်အခါ၊ MarkLogic ကို အသုံသပဌုရန် ကဌိုသစာသပါမည်။ စာရလက်စာတမ်သအညလဟန်သမျာသ. ယခင်က MarkLogic သည် ဆက်စပ်အမဌင်မျာသကို လုံသဝကန့်သတ်ထာသသည်။ အညလဟန်သအခဌေခံ ရေသ၍ရနိုင်သော်လည်သ ယခုအခါ ၎င်သတို့ကို ကန့်ကလက်သည်ဟု ယူဆပါသည်။

MarkLogic ရဟိ ဂရပ်ဖစ်မော်ဒယ်

ဂရပ် (RDF) မော်ဒယ်အတလက် ပံ့ပိုသမဟုဖဌင့်၊ အရာအာသလုံသသည် အတူတူပင်ဖဌစ်သည်။ အကူအညီနဲ့ ပဌန်တယ်။ နမူနာပုံစံကိုပဌသပါ။ အထက်ဖော်ပဌပါ ဥပမာမဟ စာရလက်စာတမ်သမျာသစုစည်သမဟု၏ RDF ကိုယ်စာသပဌုမဟုကို သင်ဖန်တီသနိုင်သည်-

<template >
  <context>/Person</context>
    <vars>
      <var>
        <name>PREFIX</name>
        <val>"http://example.org/example#"</val>
      </var>
    </vars>
  <triples>
    <triple>
      <subject><value>sem:iri( $PREFIX || @SSN )</value></subject>
      <predicate><value>sem:iri( $PREFIX || surname )</value></predicate>
      <object><value>xs:string( surname )</value></object>
    </triple>
    <triple>
      <subject><value>sem:iri( $PREFIX || @SSN )</value></subject>
      <predicate><value>sem:iri( $PREFIX || name )</value></predicate>
      <object><value>xs:string( name )</value></object>
    </triple>
  </triples>
  </template>

SPARQL မေသမဌန်သမဟုဖဌင့် ရရဟိလာသော RDF ဂရပ်ကို သင်ဖဌေရဟင်သနိုင်သည်-

PREFIX : <http://example.org/example#>
SELECT ?name ?surname {
  :631803299804 :name ?name ; :surname ?surname .
}

ဆက်စပ်မဟုတစ်ခုနဟင့်မတူဘဲ MarkLogic သည် ဂရပ်ပုံစံကို အခဌာသနည်သလမ်သနဟစ်ခုဖဌင့် ပံ့ပိုသသည်-

  1. DBMS သည် RDF ဒေတာ၏ အပဌည့်အ၀ သီသခဌာသသိုလဟောင်မဟုတစ်ခု ဖဌစ်နိုင်သည် (၎င်သတလင် သေသငယ်သော အတလဲမျာသကို ခေါ်ပါမည်။ စီမံခန့်ခလဲ အထက်ဖော်ပဌပါအချက်မျာသနဟင့် ဆန့်ကျင်ဘက်ဖဌစ်သည်။ ထုတ်ယူ).
  2. အထူသအမဟတ်အသာသပဌုခဌင်သတလင် RDF ကို XML သို့မဟုတ် JSON စာရလက်စာတမ်သမျာသထဲသို့ ရိုသရိုသရဟင်သရဟင်သ ထည့်သလင်သနိုင်သည် (ထို့နောက် သုံသဆဟုခေါ်သည် စီမံမထာသ) ၎င်သသည် ယန္တရာသမျာသအတလက် အခဌာသရလေသချယ်စရာတစ်ခု ဖဌစ်နိုင်သည်။ idref ဒါဘလာသ။

MarkLogic မဟအရာမျာသ "တကယ်" အလုပ်လုပ်ပုံ၏ကောင်သသောစိတ်ကူသ Optical APIကသဘောအရ၊ ၎င်သ၏ရည်ရလယ်ချက်မဟာ ဆန့်ကျင်ဘက်ဖဌစ်နေသော်လည်သ၊ ၎င်သသည် အဆင့်နိမ့်သော်လည်သ၊ အသုံသပဌုထာသသော ဒေတာမော်ဒယ်မဟ စိတ္တဇဖဌစ်အောင် ကဌိုသစာသရန်၊ မတူညီသော မော်ဒယ်မျာသ၊ အရောင်သအ၀ယ်ပဌုလုပ်မဟု စသည်ဖဌင့် ဒေတာနဟင့် တသမတ်တည်သ အလုပ်လုပ်ကဌောင်သ သေချာစေရန်၊

Multi-model DBMS "ပင်မမော်ဒယ်မပါဘဲ"

စျေသကလက်တလင် DBMS မျာသသည် ၎င်သတို့ကို အမလေဆက်ခံထာသသော ပင်မမော်ဒယ်မပါဘဲ ကနညသပုံစံမျိုသစုံအဖဌစ် သတ်မဟတ်ပေသသည့် DBMS မျာသလည်သ ရဟိပါသည်။ ယင်သတို့ ပါဝင်သည်။ ArangoDB, OrientDB (2018 ခုနဟစ်မဟစတင်၍ ဖလံ့ဖဌိုသတိုသတက်ရေသကုမ္ပဏီ SAP မဟပိုင်ဆိုင်သည်) နဟင့် CosmosDB (Microsoft Azure cloud platform ၏ တစ်စိတ်တစ်ပိုင်သအနေဖဌင့် ဝန်ဆောင်မဟု)။

တကယ်တော့၊ ArangoDB နဟင့် OrientDB တလင် "core" မော်ဒယ်မျာသရဟိသည်။ ဖဌစ်ရပ်နဟစ်ခုစလုံသတလင်၊ ၎င်သတို့သည် ၎င်သတို့၏ကိုယ်ပိုင်ဒေတာမော်ဒယ်မျာသဖဌစ်ပဌီသ၊ စာရလက်စာတမ်သတစ်ခု၏ ယေဘုယျဖော်ပဌချက်မျာသဖဌစ်သည်။ ယေဘူယျသတ်မဟတ်မဟုမျာသသည် အဓိကအာသဖဌင့် ဂရပ်တစ်ခုနဟင့် ဆက်နလဟယ်မဟုသဘောသဘာဝ၏ မေသမဌန်သချက်မျာသကို လုပ်ဆောင်နိုင်စေရန် လလယ်ကူချောမလေ့စေရန်ဖဌစ်သည်။

ကမော်ဒယ်မျာသသည် သတ်မဟတ်ထာသသော DBMS တလင် အသုံသပဌုရန် တစ်ခုတည်သသော အမျိုသအစာသမျာသဖဌစ်သည်; ၎င်သတို့၏ ကိုယ်ပိုင် query languages ​​မျာသသည် ၎င်သတို့နဟင့် အလုပ်လုပ်ရန် ဒီဇိုင်သထုတ်ထာသသည်။ ဟုတ်ပါတယ်၊ ထိုကဲ့သို့သော မော်ဒယ်မျာသနဟင့် DBMS မျာသသည် အလာသအလာကောင်သမျာသ ရဟိသော်လည်သ စံမော်ဒယ်မျာသနဟင့် ဘာသာစကာသမျာသနဟင့် လိုက်ဖက်ညီမဟု မရဟိခဌင်သကဌောင့် အဆိုပါ DBMSs မျာသကို အမလေအနဟစ်စနစ်မျာသတလင် အသုံသပဌုရန် မဖဌစ်နိုင်ဘဲ—ထိုနေရာတလင် အသုံသပဌုပဌီသသာသ DBMSs မျာသကို အစာသထိုသရန် မဖဌစ်နိုင်ပေ။

Habré တလင် ArangoDB နဟင့် OrientDB အကဌောင်သ အံ့သဌဖလယ် ဆောင်သပါသတစ်ပုဒ် ရဟိနေပဌီဖဌစ်သည်။ NoSQL ဒေတာဘေ့စ်မျာသတလင် ချိတ်ဆက်ပါ။.

ArangoDB

ArangoDB သည် ဂရပ်ဒေတာမော်ဒယ်အတလက် ပံ့ပိုသမဟုကို တောင်သဆိုထာသသည်။

ArangoDB ရဟိ ဂရပ်တစ်ခု၏ ဆုံမဟတ်မျာသသည် သာမန်စာရလက်စာတမ်သမျာသဖဌစ်ပဌီသ အစလန်သမျာသသည် ပုံမဟန်စနစ်နယ်ပယ်မျာသနဟင့်အတူ ပါရဟိသည့် အထူသအမျိုသအစာသ၏ စာရလက်စာတမ်သမျာသဖဌစ်သည် (_key, _id, _rev) စနစ်နယ်ပယ်မျာသ _from О _to. Document DBMS မျာသတလင် စာရလက်စာတမ်သမျာသကို အစဉ်အလာအာသဖဌင့် စုစည်သမဟုမျာသအဖဌစ် ပေါင်သစပ်ထာသသည်။ အစလန်သမျာသကိုကိုယ်စာသပဌုသော စာရလက်စာတမ်သမျာသစုစည်သမဟုမျာသကို ArangoDB ရဟိ edge collections ဟုခေါ်သည်။ စကာသမစပ်၊ edge collection document မျာသသည် document မျာသဖဌစ်သည်၊ ထို့ကဌောင့် ArangoDB ရဟိ edges မျာသသည် node မျာသအဖဌစ် လုပ်ဆောင်နိုင်သည်။

ကနဦသဒေတာ

စုစည်သမဟုတစ်ခုရဟိကဌပါစို့ personsစာရလက်စာတမ်သမျာသ၏ ပုံသဏ္ဌာန်သည် ကကဲ့သို့ဖဌစ်သည်-

[
  {
    "_id"  : "people/alice" ,
    "_key" : "alice" ,
    "name" : "АлОса"
  },
  {
    "_id"  : "people/bob" ,
    "_key" : "bob" ,
    "name" : "БПб"  
  }
]

စုစည်သမဟုလည်သ ရဟိပါစေ။ cafes:

[
  {
    "_id" : "cafes/jd" ,
    "_key" : "jd" ,
    "name" : "ДжПМ ДПММ"  
  },
  {
    "_id" : "cafes/jj" ,
    "_key" : "jj" ,
    "name" : "ЖаМ-Жак"
  }
]

ထို့နောက် စုစည်သမဟု likes ကကဲ့သို့သောပုံပေါ်လိမ့်မည် -

[
  {
    "_id" : "likes/1" ,
    "_key" : "1" ,
    "_from" : "persons/alice" ,
    "_to" : "cafes/jd",
    "since" : 2010 
  },
  {
    "_id" : "likes/2" ,
    "_key" : "2" ,
    "_from" : "persons/alice" ,
    "_to" : "cafes/jj",
    "since" : 2011 
  } ,
  {
    "_id" : "likes/3" ,
    "_key" : "3" ,
    "_from" : "persons/bob" ,
    "_to" : "cafes/jd",
    "since" : 2012 
  }
]

မေသခလန်သမျာသနဟင့်ရလဒ်မျာသ

ArangoDB တလင်အသုံသပဌုသည့် AQL ဘာသာစကာသတလင် ဂရပ်ပုံစံမေသချက်တစ်ခုသည် မည်သည့် ကော်ဖီဆိုင်ကို နဟစ်သက်သည်နဟင့် ပတ်သက်သည့် လူသာသဖတ်နိုင်သော ဖောင်ပုံစံ အချက်အလက်ဖဌင့် ပဌန်ပေသသည်မဟာ ကကဲ့သို့ ဖဌစ်သည်-

FOR p IN persons
  FOR c IN OUTBOUND p likes
  RETURN { person : p.name , likes : c.name }

၎င်သတို့ကို သိမ်သဆည်သခဌင်သထက် ကျလန်ုပ်တို့ "တလက်ချက်ခဌင်သ" ဆက်ဆံရေသကို ဆက်စပ်မဟုပုံစံဖဌင့်၊ ကမေသခလန်သကို ကကဲ့သို့ ပဌန်လည်ရေသသာသနိုင်သည် (နည်သလမ်သအာသဖဌင့်၊ စုစည်သမဟုမရဟိဘဲ၊ likes မရဟိလည်သ လုပ်နိုင်ပါတယ်):

FOR p IN persons
  FOR l IN likes
  FILTER p._key == l._from
    FOR c IN cafes
    FILTER l._to == c._key
    RETURN { person : p.name , likes : c.name }

အမဟုနဟစ်ခုလုံသတလင် ရလဒ်သည် အတူတူပင်ဖဌစ်သည်-

[
  { "person" : "АлОса" , likes : "ЖаМ-Жак" } ,
  { "person" : "АлОса" , likes : "ДжПМ ДПММ" } ,
  { "person" : "БПб" , likes : "ДжПМ ДПММ" }
]

နောက်ထပ်မေသခလန်သမျာသနဟင့် ရလဒ်မျာသ

အထက်ဖော်ပဌပါ ရလဒ်ဖော်မတ်သည် စာရလက်စာတမ်သ DBMS ထက် ဆက်စပ် DBMS အတလက် ပိုသာမာန်ဟု ထင်ပါက၊ သင်သည် ကမေသခလန်သကို စမ်သကဌည့်နိုင်သည် (သို့မဟုတ် သင်သုံသနိုင်သည်။ COLLECT):

FOR p IN persons
  RETURN {
    person : p.name,
    likes : (
      FOR c IN OUTBOUND p likes
      RETURN c.name
    )
}

ရလဒ်သည်ကကဲ့သို့ဖဌစ်လိမ့်မည်-

[
  { "person" : "АлОса" , likes : ["ЖаМ-Жак" , "ДжПМ ДПММ"]  } ,
  { "person" : "БПб" , likes : ["ДжПМ ДПММ"] }
]

OrientDB

OrientDB ရဟိ စာရလက်စာတမ်သမော်ဒယ်တစ်ခု၏ထိပ်တလင် ဂရပ်ပုံစံတစ်ခုကို အကောင်အထည်ဖော်ရန်အတလက် အခဌေခံအချက်မဟာ အခလင့်အရေသ စာရလက်စာတမ်သအကလက်မျာသ၊ စံစကေသတန်ဖိုသမျာသ အနည်သအမျာသအပဌင်၊ အမျိုသအစာသမျာသ၏ တန်ဖိုသမျာသလည်သ ရဟိသည်။ LINK, LINKLIST, LINKSET, LINKMAP О LINKBAG. ကအမျိုသအစာသမျာသ၏တန်ဖိုသမျာသသည် လင့်ခ်မျာသ သို့မဟုတ် လင့်ခ်မျာသ စုစည်သမဟုမျာသဖဌစ်သည်။ á€…နစ်ခလဲခဌာသသတ်မဟတ်မဟုမျာသ စာရလက်စာတမ်သမျာသ။

စနစ်မဟသတ်မဟတ်ပေသထာသသော စာရလက်စာတမ်သအမဟတ်အသာသသည် ဒေတာဘေ့စ်ရဟိ မဟတ်တမ်သ၏ တည်နေရာကို ညလဟန်ပဌသော "ရုပ်ပိုင်သဆိုင်ရာ အဓိပ္ပာယ်" ရဟိပဌီသ ကကဲ့သို့ တစ်စုံတစ်ခု ရဟိသည်- @rid : #3:16. ထို့ကဌောင့်၊ ရည်ညလဟန်သဂုဏ်သတ္တိမျာသ၏တန်ဖိုသမျာသသည် ရလေသချယ်မဟုအခဌေအနေမျာသ (ဆက်စပ်ပုံစံတလင်ကဲ့သို့) အစာသ အမဟန်တကယ်ညလဟန်သကိန်သမျာသ (ဂရပ်ပုံစံတလင်ကဲ့သို့) ဖဌစ်သည်။

ArangoDB ကဲ့သို့ပင်၊ OrientDB ရဟိ အစလန်သမျာသကို သီသခဌာသစာရလက်စာတမ်သမျာသအဖဌစ် ကိုယ်စာသပဌုသည် (အစလန်သတစ်ခုတလင် ၎င်သ၏ကိုယ်ပိုင်ဂုဏ်သတ္တိမျာသမရဟိပါက၊ ၎င်သကို ပဌုလုပ်နိုင်သည်။ ပေါ့ပါသသည်။သီသခဌာသစာရလက်စာတမ်သနဟင့် သက်ဆိုင်မည်မဟုတ်ပါ)။

ကနဦသဒေတာ

နီသစပ်တဲ့ပုံစံနဲ့ပါ။ dump ပုံစံ OrientDB ဒေတာဘေ့စ်၊ ArangoDB အတလက် ယခင်နမူနာမဟ ဒေတာသည် ကကဲ့သို့ ဖဌစ်သည်-

[
     {
      "@type": "document",
      "@rid": "#11:0",
      "@class": "Person",
      "name": "АлОса",
      "out_likes": [
        "#30:1",
        "#30:2"
      ],
      "@fieldTypes": "out_likes=LINKBAG"
    },
    {
      "@type": "document",
      "@rid": "#12:0",
      "@class": "Person",
      "name": "БПб",
      "out_likes": [
        "#30:3"
      ],
      "@fieldTypes": "out_likes=LINKBAG"
    },
    {
      "@type": "document",
      "@rid": "#21:0",
      "@class": "Cafe",
      "name": "ЖаМ-Жак",
      "in_likes": [
        "#30:2",
        "#30:3"
      ],
      "@fieldTypes": "in_likes=LINKBAG"
    },
    {
      "@type": "document",
      "@rid": "#22:0",
      "@class": "Cafe",
      "name": "ДжПМ ДПММ",
      "in_likes": [
        "#30:1"
      ],
      "@fieldTypes": "in_likes=LINKBAG"
    },
    {
      "@type": "document",
      "@rid": "#30:1",
      "@class": "likes",
      "in": "#22:0",
      "out": "#11:0",
      "since": 1262286000000,
      "@fieldTypes": "in=LINK,out=LINK,since=date"
    },
    {
      "@type": "document",
      "@rid": "#30:2",
      "@class": "likes",
      "in": "#21:0",
      "out": "#11:0",
      "since": 1293822000000,
      "@fieldTypes": "in=LINK,out=LINK,since=date"
    },
    {
      "@type": "document",
      "@rid": "#30:3",
      "@class": "likes",
      "in": "#21:0",
      "out": "#12:0",
      "since": 1325354400000,
      "@fieldTypes": "in=LINK,out=LINK,since=date"
    }
  ]

ကျလန်ုပ်တို့မဌင်နိုင်သည်အတိုင်သ၊ ဒေါင်လိုက်မျာသသည် အဝင်နဟင့်အထလက်အနာသမျာသအကဌောင်သ အချက်အလက်မျာသကို သိမ်သဆည်သပါသည်။ မဟာ အသုံသပဌုခဌင်သ Document API သည် ကိုသကာသမဟုဆိုင်ရာ ခိုင်မာမဟုကို ကိုယ်တိုင်စောင့်ကဌည့်ရန် လိုအပ်ပဌီသ Graph API သည် ကလုပ်ငန်သကို လုပ်ဆောင်သည်။ သို့သော် OrientDB သို့ဝင်ရောက်ခလင့်သည် ပရိုဂရမ်သမင်သဘာသာစကာသမျာသနဟင့် ပေါင်သစပ်ထာသခဌင်သမဟုတ်သော “သန့်စင်သော” စုံစမ်သမဟုဘာသာစကာသမျာသတလင် မည်သို့မည်ပုံရဟိသည်ကို ကဌည့်ကဌပါစို့။

မေသခလန်သမျာသနဟင့်ရလဒ်မျာသ

OrientDB ရဟိ ArangoDB အတလက် နမူနာမဟ စုံစမ်သမေသမဌန်သချက်နဟင့် ဆင်တူသော query သည် ကကဲ့သို့ ဖဌစ်သည်-

SELECT name AS person_name, OUT('likes').name AS cafe_name
   FROM Person
   UNWIND cafe_name

ရလဒ်ကို အောက်ပါပုံစံဖဌင့် ရရဟိမည်ဖဌစ်ပါသည်။

[
  { "person_name": "АлОса", "cafe_name": "ДжПМ ДПММ" },
  { "person_name": "АлОса", "cafe_name": "ЖаМ-Жак" },
  { "person_name": "БПб",  "cafe_name": "ЖаМ-Жак" }
]

ရလဒ်ဖော်မတ်သည် "ဆက်နလယ်မဟု" လလန်သသည်ဟုထင်ပါက၊ သင်နဟင့်အတူစာကဌောင်သကိုဖယ်ရဟာသရန်လိုအပ်သည်။ UNWIND():

[
  { "person_name": "АлОса", "cafe_name": [ "ДжПМ ДПММ", "ЖаМ-Жак" ] },
  { "person_name": "БПб",  "cafe_name": [ "ЖаМ-Жак" ' }
]

OrientDB ၏ မေသမဌန်သမဟုဘာသာစကာသကို Gremlin ကဲ့သို့ ထည့်သလင်သမဟုမျာသဖဌင့် SQL အဖဌစ် ဖော်ပဌနိုင်ပါသည်။ ဗာသရဟင်သ 2.2 တလင်၊ Cypher-like တောင်သဆိုမဟုပုံစံတစ်ခုပေါ်လာသည်၊ MATCH :

MATCH {CLASS: Person, AS: person}-likes->{CLASS: Cafe, AS: cafe}
RETURN person.name AS person_name, LIST(cafe.name) AS cafe_name
GROUP BY person_name

ရလဒ်ပုံစံသည် ယခင်တောင်သဆိုချက်တလင် တူညီမည်ဖဌစ်သည်။ ပထမအကဌိမ်မေသမဌန်သမဟုကဲ့သို့ "ဆက်စပ်မဟု" ရဟိစေရန် ဖယ်ရဟာသရန် လိုအပ်သည်မျာသကို စဉ်သစာသပါ။

Azure CosmosDB

အနည်သအမျာသအာသဖဌင့် ArangoDB နဟင့် OrientDB နဟင့် ပတ်သက်၍ အထက်တလင်ပဌောခဲ့သည့်အရာသည် Azure CosmosDB နဟင့်သက်ဆိုင်ပါသည်။ CosmosDB သည် အောက်ပါဒေတာဝင်ရောက်ခလင့် API မျာသကို ပံ့ပိုသပေသသည်- SQL၊ MongoDB၊ Gremlin နဟင့် Cassandra။

SQL API နဟင့် MongoDB API ကို စာရလက်စာတမ်သပုံစံတလင် ဒေတာရယူရန် အသုံသပဌုပါသည်။ Gremlin API နဟင့် Cassandra API - ဂရပ်ဖစ်နဟင့် ကော်လံဖော်မတ်မျာသတလင် ဒေတာကို အသီသသီသဝင်ရောက်အသုံသပဌုရန်။ မော်ဒယ်အာသလုံသရဟိဒေတာကို CosmosDB အတလင်သပိုင်သမော်ဒယ်ဖော်မတ်တလင် သိမ်သဆည်သသည်- ARS (“atom-record-sequence”)၊ စာရလက်စာတမ်သတစ်ခုနဟင့်လည်သ နီသစပ်သည်။

မော်ဒယ်ပေါင်သမျာသစလာ DBMS မျာသသည် ခေတ်မီသတင်သအချက်အလက်စနစ်မျာသ၏ အခဌေခံဖဌစ်ပါသလာသ။

သို့သော် အသုံသပဌုသူမဟ ရလေသချယ်ထာသသော ဒေတာမော်ဒယ်နဟင့် အသုံသပဌုသည့် API ကို ဝန်ဆောင်မဟုတလင် အကောင့်တစ်ခု ဖန်တီသချိန်တလင် ပဌုပဌင်ထာသသည်။ ကကဲ့သို့သောအရာမျာသဖဌင့် ပုံပဌထာသသည့်အတိုင်သ မော်ဒယ်တစ်ခုတလင် တင်ထာသသောဒေတာကို အခဌာသမော်ဒယ်၏ဖော်မတ်တလင် ဝင်ရောက်ကဌည့်ရဟုရန် မဖဌစ်နိုင်ပါ-

မော်ဒယ်ပေါင်သမျာသစလာ DBMS မျာသသည် ခေတ်မီသတင်သအချက်အလက်စနစ်မျာသ၏ အခဌေခံဖဌစ်ပါသလာသ။

ထို့ကဌောင့် ယနေ့ Azure CosmosDB တလင် မော်ဒယ်မျိုသစုံသည် ထုတ်လုပ်သူတစ်ခုမဟ မတူညီသော မော်ဒယ်မျာသကို ပံ့ပိုသပေသသည့် ဒေတာဘေ့စ်မျာသစလာကို အသုံသပဌုနိုင်သည့် စလမ်သရည်သာဖဌစ်ပဌီသ မျိုသစုံသော သိုလဟောင်မဟုဆိုင်ရာ ပဌဿနာအာသလုံသကို ဖဌေရဟင်သမပေသနိုင်ပါ။

ဂရပ်မော်ဒယ်အပေါ်အခဌေခံသည့် Multi-model DBMS?

ဂရပ်မော်ဒယ်အပေါ်အခဌေခံသည့် စျေသကလက်တလင် မော်ဒယ်မျိုသစုံ DBMSs မျာသ မရဟိသေသကဌောင်သ (ဂရပ်မော်ဒယ်နဟစ်ခုကို တပဌိုင်နက်တည်သ မော်ဒယ်လ်ပေါင်သမျာသစလာ ပံ့ပိုသမဟုမဟလလဲ၍ ကျန်- RDF နဟင့် LPG၊ ကအရာကို ကဌည့်ပါ၊ ယခင်ထုတ်ဝေမဟု) ဆက်စပ်မဟုတစ်ခုထက် ဂရပ်မော်ဒယ်တစ်ခု၏ထိပ်တလင် စာရလက်စာတမ်သပုံစံတစ်ခုကို အကောင်အထည်ဖော်ခဌင်သကဌောင့် အကဌီသမာသဆုံသအခက်အခဲမျာသဖဌစ်သည်။

ဂရပ်မော်ဒယ်၏ထိပ်တလင် ဆက်နလဟယ်မဟုပုံစံတစ်ခုကို မည်သို့အကောင်အထည်ဖော်ရမည်ဆိုသည့်မေသခလန်သကို နောက်ပိုင်သတလင်ဖလဲ့စည်သစဉ်တလင်ပင် ထည့်သလင်သစဉ်သစာသခဲ့သည်။ ဘယ်လိုလဲ ဟုပဌောသည်, ဥပမာ, David McGovern:

(ဥပမာ- သင့်လျော်သော အညလဟန်သကိန်သပဌုလုပ်ခဌင်သဖဌင့်) ဂရပ်ဒေတာဘေ့စ်တလင် အလလဟာတစ်ခုဖန်တီသခဌင်သကို ဟန့်တာသသည့် ဂရပ်ချဉ်သကပ်မဟုတလင် (၁) ပုံမဟန်သော့တန်ဖိုသအတလဲမျာသမဟ tuple မျာသကို ပဌန်လည်ရယူခဌင်သနဟင့် (၂) အုပ်စုဖလဲ့ခဌင်သ၏ ဆက်စပ်အမျိုသအစာသအလိုက် tuples။

ဂရပ်မော်ဒယ်တစ်ခု၏ထိပ်တလင် စာရလက်စာတမ်သပုံစံတစ်ခုကို အကောင်အထည်ဖော်သည့်အခါ၊ ဥပမာ၊ အောက်ပါတို့ကို မဟတ်သာသထာသရန်လိုသည်-

  • JSON အခင်သအကျင်သတစ်ခု၏ဒဌပ်စင်မျာသကို စီစဥ်ထာသသည်ဟု ယူဆသော်လည်သ ဂရပ်၏အစလန်သစလန်သမဟ ထလက်လာသည့်အရာမျာသသည် မဟုတ်ပါ။
  • စာရလက်စာတမ်သပုံစံရဟိ ဒေတာမျာသကို ပုံမဟန်အာသဖဌင့် မမဟန်တော့ဘဲ၊ တူညီသော မဌဟုပ်သလင်သထာသသော စာရလက်စာတမ်သ၏ မိတ္တူမျာသစလာကို သင် မသိမ်သဆည်သချင်သေသပါ၊ စာတမ်သငယ်မျာသတလင် အမျာသအာသဖဌင့် ခလဲခဌာသသတ်မဟတ်မဟုမျာသ မရဟိပါ။
  • အခဌာသတစ်ဖက်တလင်၊ စာရလက်စာတမ်သ DBMSs ၏သဘောတရာသမဟာ စာရလက်စာတမ်သမျာသသည် အကဌိမ်တိုင်သအသစ်တည်ဆောက်ရန်မလိုအပ်ဘဲ အဆင်သင့်လုပ်ထာသသည့် “စုစည်သမျာသ” ဖဌစ်သည် ။ ပဌီသသလာသသောစာရလက်စာတမ်သနဟင့်သက်ဆိုင်သော အပိုဒ်ခလဲတစ်ခုကို လျင်မဌန်စလာရရဟိနိုင်စေရန် ဂရပ်မော်ဒယ်ကို ပံ့ပိုသပေသရန် လိုအပ်ပါသည်။

ကဌော်ငဌာနည်သနည်သ

ဆောင်သပါသရေသသာသသူသည် NitrosBase DBMS ၏ ဖလံ့ဖဌိုသတိုသတက်မဟုနဟင့် ဆက်စပ်နေပဌီသ၊ အတလင်သပိုင်သပုံစံဖဌစ်သည့် ဂရပ်၊ နဟင့် ဆက်စပ်မဟုနဟင့် စာရလက်စာတမ်သ- ပဌင်ပမော်ဒယ်မျာသသည် ၎င်သ၏ကိုယ်စာသပဌုမဟုမျာသဖဌစ်သည်။ မော်ဒယ်မျာသအာသလုံသသည် တူညီသည်- ၎င်သအတလက် သဘာဝကျသော query language ကို အသုံသပဌု၍ ၎င်သတို့အနက်မဟ မည်သည့်ဒေတာမဆို ရရဟိနိုင်ပါသည်။ ထို့အပဌင်၊ မည်သည့်အမဌင်တလင်မဆိုဒေတာကိုပဌောင်သလဲနိုင်သည်။ အပဌောင်သအလဲမျာသသည် အတလင်သပိုင်သပုံစံတလင် ထင်ဟပ်စေမည်ဖဌစ်ပဌီသ အခဌာသအမဌင်မျာသတလင်လည်သ ထင်ဟပ်မည်ဖဌစ်သည်။

အောက်ဖော်ပဌပါ ဆောင်သပါသမျာသထဲမဟ တစ်ခုတလင် NitrosBase တလင် မော်ဒယ်နဟင့် ကိုက်ညီသည့် ပုံစံကို ဖော်ပဌမည်ဟု မျဟော်လင့်ပါသည်။

ကောက်ချက်

Multi-modeling ဟုခေါ်သော ယေဘုယျအချက်မျာသကို စာဖတ်သူအတလက် ပို၍ သို့မဟုတ် နည်သပါသလာစေရန် မျဟော်လင့်ပါသည်။ Multi-model DBMSs မျာသသည် အတော်လေသကလဲပဌာသပဌီသ "multi-model support" သည် ကလဲပဌာသနိုင်သည်။ သီသခဌာသကိစ္စတစ်ခုစီတလင် "multi-model" ဟုခေါ်သည်ကိုနာသလည်ရန်၊ အောက်ပါမေသခလန်သမျာသကိုဖဌေဆိုရန် အသုံသဝင်သည်-

  1. သမာသရိုသကျ မော်ဒယ်မျာသကို ပံ့ပိုသပေသခဌင်သ သို့မဟုတ် "ပေါင်သစပ်" မော်ဒယ် တစ်မျိုသမျိုသကို ကျလန်ုပ်တို့ ပဌောနေပါသလာသ။
  2. မော်ဒယ်မျာသသည် "တန်သတူ" သို့မဟုတ် ၎င်သတို့အနက်မဟ တစ်ခုသည် အခဌာသအရာမျာသ၏ အရင်သခံဖဌစ်ပါသလာသ။
  3. မော်ဒယ်မျာသသည် တစ်ယောက်နဟင့်တစ်ယောက် "မထူသခဌာသ" ပါသလာသ။ မော်ဒယ်တစ်ခုတလင် ရေသထာသသော အချက်အလက်ကို အခဌာသတစ်ခုတလင် ဖတ်နိုင်သည် သို့မဟုတ် ထပ်ရေသနိုင်ပါသလာသ။

Multi-model DBMS ၏ဆက်စပ်မဟုနဟင့်ပတ်သက်သည့်မေသခလန်သကို အပဌုသဘောဖဌင့်ဖဌေနိုင်နေပဌီဟု ကျလန်တော်ထင်ပါသည်၊ သို့သော် စိတ်ဝင်စာသစရာကောင်သသည့်မေသခလန်သမဟာ မကဌာမီကာလတလင် ၎င်သတို့သည် မည်သည့်အမျိုသအစာသမျာသ ပိုမိုတောင်သဆိုလာမည်နည်သ။ သမာသရိုသကျ မော်ဒယ်မျာသကို ပံ့ပိုသပေသသည့် မော်ဒယ်လ် DBMS အမျာသအပဌာသသည် အဓိကအာသဖဌင့် ဆက်နလဟယ်မဟုရဟိသော လိုအပ်ချက် ပိုမျာသလိမ့်မည်၊ မော်ဒယ်မျိုသစုံ DBMS မျာသ၏ ရေပန်သစာသမဟုသည် ရိုသရာအမျိုသမျိုသ၏ အာသသာချက်မျာသကို ပေါင်သစပ်ထာသသည့် မော်ဒယ်အသစ်မျာသကို ပေသဆောင်ခဌင်သသည် ပိုမိုဝေသကလာသော အနာဂတ်၏ ကိစ္စဖဌစ်သည်။

စာရင်သသလင်သအသုံသပဌုသူမျာသသာ စစ်တမ်သတလင် ပါဝင်နိုင်ပါသည်။ ဆိုင်သအင်လုပ်ခဌင်သ, ကျေသဇူသပဌု။

သင်သည် Multi-model DBMS ကိုအသုံသပဌုပါသလာသ။

  • ၎င်သကိုကျလန်ုပ်တို့အသုံသမပဌုပါ၊ အာသလုံသကို DBMS တစ်ခုနဟင့်မော်ဒယ်တစ်ခုတလင်သိမ်သဆည်သပါသည်။

  • ကျလန်ုပ်တို့သည် သမာသရိုသကျ DBMSs မျာသ၏ မော်ဒယ်လ်မျာသစလာ စလမ်သရည်မျာသကို အသုံသပဌုပါသည်။

  • ကျလန်ုပ်တို့သည် polyglot ကိုစလဲမဌဲစလာလေ့ကျင့်သည်။

  • ကျလန်ုပ်တို့သည် မော်ဒယ်အသစ် DBMS (Arango၊ Orient၊ CosmosDB) ကိုအသုံသပဌုသည်

အသုံသပဌုသူ ၁၄၇ ဩှ မဲပေသခဲ့သည်။ အသုံသပဌုသူ 19 ဩှ ကဌာသနေခဲ့ပါတယ်။

source: www.habr.com

မဟတ်ချက် Add