ဆက်စပ်ဂရပ် DBMS EdgeDB 2.0 ကို ဖြန့်ချိသည်။

EdgeDB 2.0 DBMS ၏ထွက်ရှိမှုသည် ဆက်စပ်ဂရပ်ဖ်ဒေတာမော်ဒယ်နှင့် EdgeQL query language ကို အကောင်အထည်ဖော်ပြီး ရှုပ်ထွေးသော အထက်တန်းကျသောဒေတာဖြင့် လုပ်ဆောင်ရန်အတွက် အကောင်းဆုံးဖြစ်အောင် လုပ်ဆောင်ပေးပါသည်။ ကုဒ်ကို Python နှင့် Rust (parser နှင့် performance-critical parts) ဖြင့် ရေးသားထားပြီး Apache 2.0 လိုင်စင်အောက်တွင် ဖြန့်ဝေထားသည်။ ပရောဂျက်ကို PostgreSQL အတွက် အပိုပရိုဂရမ်တစ်ခုအဖြစ် တီထွင်နေပါသည်။ Client စာကြည့်တိုက်များကို Python၊ Go၊ Rust နှင့် TypeScript/Javascript အတွက် ပြင်ဆင်ထားပါသည်။ DBMS စီမံခန့်ခွဲမှုနှင့် အပြန်အလှန်မေးမြန်းမှုလုပ်ဆောင်ခြင်း (REPL) အတွက် command line tools များကို ပံ့ပိုးပေးပါသည်။

ဇယားအခြေခံဒေတာမော်ဒယ်အစား EdgeDB သည် အရာဝတ္ထုအမျိုးအစားများအပေါ်အခြေခံ၍ ကြေငြာစနစ်တစ်ခုကိုအသုံးပြုသည်။ နိုင်ငံခြားသော့များအစား၊ အမျိုးအစားများကြား ဆက်နွယ်မှုကို အကိုးအကားဖြင့် ချိတ်ဆက်ခြင်းကို အသုံးပြုသည် (အရာဝတ္ထုတစ်ခုကို အခြားအရာဝတ္ထုတစ်ခု၏ ပိုင်ဆိုင်မှုအဖြစ် သုံးနိုင်သည်)။

လူအမျိုးအစား { လိုအပ်သော ပစ္စည်းအမည် -> str; } အမျိုးအစား ရုပ်ရှင် { လိုအပ်သော ပိုင်ဆိုင်မှု ခေါင်းစဉ် -> str; multi link သရုပ်ဆောင်များ -> ပုဂ္ဂိုလ်; }

query processing ကို အရှိန်မြှင့်ရန် အညွှန်းများကို သုံးနိုင်သည်။ ခိုင်မာသော ပိုင်ဆိုင်မှုစာရိုက်ခြင်း၊ ပိုင်ဆိုင်မှုတန်ဖိုးကန့်သတ်ချက်များ၊ တွက်ချက်ထားသော ဂုဏ်သတ္တိများနှင့် သိမ်းဆည်းထားသည့် လုပ်ထုံးလုပ်နည်းများကဲ့သို့သော အင်္ဂါရပ်များကို ပံ့ပိုးပေးပါသည်။ ORM တစ်ခုနှင့်အတန်ငယ်အမှတ်ရနေသည့် EdgeDB object storage scheme ၏အင်္ဂါရပ်များသည် schemas များကို ရောနှောခြင်း၊ မတူညီသောအရာဝတ္ထုများမှ ဂုဏ်သတ္တိများကို ချိတ်ဆက်ခြင်းနှင့် ပေါင်းစပ်ထားသော JSON ပံ့ပိုးမှုတို့ ပါဝင်ပါသည်။

Built-in tools များကို schema migration ကို သိမ်းဆည်းရန်အတွက် ထောက်ပံ့ပေးသည် - သီးခြား esdl ဖိုင်တွင် သတ်မှတ်ထားသည့် schema ကိုပြောင်းလဲပြီးနောက်၊ "edgedb migration create" command ကို run လိုက်ရုံဖြင့် DBMS သည် schema အတွင်းရှိ မတူညီမှုများကို ပိုင်းခြားစိတ်ဖြာပြီး script တစ်ခုသို့ ရွှေ့ပြောင်းရန်အတွက် အပြန်အလှန်အကျိုးသက်ရောက်စွာ ဖန်တီးပေးမည်ဖြစ်ပါသည်။ schema အသစ်။ schema အပြောင်းအလဲများ၏သမိုင်းကိုအလိုအလျောက်ခြေရာခံသည်။

မေးခွန်းများဖန်တီးရန်အတွက်၊ GraphQL query language နှင့် proprietary EdgeDB language ဖြစ်သည့် hierarchical data အတွက် SQL ကို လိုက်လျောညီထွေဖြစ်အောင် လုပ်ဆောင်ပေးပါသည်။ စာရင်းများအစား၊ စုံစမ်းမေးမြန်းမှုရလဒ်များကို ဖွဲ့စည်းတည်ဆောက်ပုံနည်းလမ်းဖြင့် ဖော်မတ်ထားပြီး၊ အသေးစိပ်မေးမြန်းချက်များနှင့် ချိတ်ဆက်မှုများအစား၊ သင်သည် EdgeQL မေးခွန်းတစ်ခုအား အခြားမေးခွန်းတစ်ခုအတွင်း ဖော်ပြချက်တစ်ခုအဖြစ် သတ်မှတ်နိုင်သည်။ ငွေပေးချေမှုများနှင့် လည်ပတ်မှုများကို ပံ့ပိုးထားသည်။

ရုပ်ရှင် { ခေါင်းစဉ်၊ သရုပ်ဆောင်များ- { name } } filter .title = "The Matrix" ရုပ်ရှင်ကို ထည့်သွင်းပါ { title := "The Matrix Resurrections", သရုပ်ဆောင်များ := ( Person filter .name in { 'Keanu Reeves', 'Carrie- Anne Moss', 'Laurence Fishburne' } ) } union ရှိ နံပါတ် {0, 1, 2, 3} ({ နံပါတ်၊ နံပါတ် + 0.5 } ကို ရွေးပါ );

ဗားရှင်းအသစ်တွင်-

  • ဒေတာဘေ့စ်စီမံအုပ်ချုပ်မှုအတွက် built-in ဝဘ်အင်တာဖေ့စ်ကို ပေါင်းထည့်ထားပြီး၊ ဒေတာများကို ကြည့်ရှုပြင်ဆင်ခြင်း၊ EdgeQL မေးမြန်းချက်များကို လုပ်ဆောင်ပြီး အသုံးပြုထားသည့် သိုလှောင်မှုအစီအစဉ်ကို ပိုင်းခြားစိတ်ဖြာနိုင်စေပါသည်။ အင်တာဖေ့စ်ကို “edgedb ui” အမိန့်ဖြင့် စတင်ခဲ့ပြီး၊ ထို့နောက် localhost ကိုဝင်ရောက်သည့်အခါတွင် ၎င်းကိုရရှိနိုင်မည်ဖြစ်သည်။
    ဆက်စပ်ဂရပ် DBMS EdgeDB 2.0 ကို ဖြန့်ချိသည်။
  • "GROUP" ဆိုသည့် စကားရပ်ကို အကောင်အထည် ဖော်ခဲ့ပြီး၊ သင်သည် SELECT လည်ပတ်မှုတွင် အုပ်စုဖွဲ့ခြင်းနှင့် ဆင်တူသော မတရားသော EdgeQL အသုံးအနှုန်းများကို အသုံးပြု၍ ဒေတာများကို အပိုင်းပိုင်းခွဲကာ စုစည်းကာ အုပ်စုဒေတာကို ခွင့်ပြုပေးထားပါသည်။
  • အရာဝတ္တုအဆင့်တွင်ဝင်ရောက်ခွင့်ကိုထိန်းချုပ်နိုင်စွမ်း။ အသုံးပြုခွင့်စည်းမျဉ်းများကို သိုလှောင်မှုပုံစံအဆင့်တွင် သတ်မှတ်ထားပြီး အချို့သောအရာဝတ္ထုအစုံအလင်ကို ရယူခြင်း၊ ထည့်သွင်းခြင်း၊ ဖျက်ခြင်းနှင့် အပ်ဒိတ်လုပ်ဆောင်မှုများတွင် အရာဝတ္တုအစုံကို အသုံးပြုနိုင်စွမ်းကို ကန့်သတ်ခွင့်ပြုသည်။ ဥပမာအားဖြင့်၊ စာရေးဆရာတစ်ဦးတည်းသာ ထုတ်ဝေမှုကို အပ်ဒိတ်လုပ်ခွင့်ပြုသည့် စည်းမျဉ်းကို သင်ထည့်နိုင်သည်။
  • သိုလှောင်မှုအစီအစဉ်တွင် ကမ္ဘာလုံးဆိုင်ရာကိန်းရှင်များကို အသုံးပြုရန် စွမ်းရည်ကို ထည့်သွင်းထားသည်။ ကမ္ဘာလုံးဆိုင်ရာ ပြောင်းလဲနိုင်သော လက်ရှိ_user အသစ်ကို အသုံးပြုသူနှင့် ချိတ်ဆက်ရန် အဆိုပြုထားသည်။
  • တန်ဖိုးများ၏ အပိုင်းအခြားများကို သတ်မှတ်ပေးသည့် အမျိုးအစားများအတွက် ပံ့ပိုးမှု ထပ်ထည့်ထားသည်။
  • Rust ဘာသာစကားအတွက် တရားဝင်အသုံးပြုသူစာကြည့်တိုက်ကို ပြင်ဆင်ပြီးပါပြီ။
  • EdgeDB binary ပရိုတိုကောကို တည်ငြိမ်အောင်ပြုလုပ်ထားပြီး တူညီသောကွန်ရက်ချိတ်ဆက်မှုအတွင်း၊ ကမ္ဘာလုံးဆိုင်ရာကိန်းရှင်များနှင့် ဒေသဆိုင်ရာပြည်နယ်များကို အသုံးပြု၍ HTTP မှတစ်ဆင့် ပေးပို့ခြင်းတွင် မတူညီသောဆက်ရှင်များစွာကို တစ်ပြိုင်နက်တည်း လုပ်ဆောင်နိုင်စေသည်။
  • ဆာဗာကိုင်တွယ်သည့်အရာအား မန်မိုရီတွင်မထားရှိဘဲ ချိတ်ဆက်မှုတစ်ခုတည်ဆောက်ရန် ကြိုးပမ်းသည့်အခါမှသာ ၎င်းကိုဖွင့်ရန်ခွင့်ပြုသည့် socket activation အတွက် ပံ့ပိုးမှုထပ်ထည့်ထားသည်။

source: opennet.ru

မှတ်ချက် Add