ဆက်စပ်ဂရပ်ဖ် DBMS EdgeDB ၏ ပထမဆုံး တည်ငြိမ်သော ထုတ်ဝေမှု

EdgeDB DBMS ၏ပထမဆုံးတည်ငြိမ်သောထွက်ရှိမှုကိုရရှိနိုင်သည်၊ ၎င်းသည်ဆက်စပ်ဂရပ်ဖ်ဒေတာမော်ဒယ်နှင့် EdgeQL query language ကိုအကောင်အထည်ဖော်ခြင်းဖြင့် PostgreSQL ၏ add-on တစ်ခုဖြစ်သည့်ရှုပ်ထွေးသောအထက်တန်းကျသောဒေတာဖြင့်အလုပ်လုပ်ရန်အကောင်းဆုံးဖြစ်သည်။ ကုဒ်ကို Python နှင့် Rust ဖြင့် ရေးသားထားပြီး Apache 2.0 လိုင်စင်အောက်တွင် ဖြန့်ဝေထားသည်။ 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} ( select { နံပါတ်၊ နံပါတ် + 0.5 } );

source: opennet.ru

မှတ်ချက် Add