Reliacinio grafiko DBMS EdgeDB 2.0 išleidimas

Pristatomas EdgeDB 2.0 DBVS leidimas, kuriame įdiegtas reliacinio grafiko duomenų modelis ir EdgeQL užklausų kalba, optimizuota darbui su sudėtingais hierarchiniais duomenimis. Kodas parašytas Python ir Rust kalbomis (analizavimo ir našumui svarbios dalys) ir platinamas pagal Apache 2.0 licenciją. Projektas kuriamas kaip PostgreSQL priedas. Klientų bibliotekos paruoštos Python, Go, Rust ir TypeScript/Javascript. Teikia komandų eilutės įrankius DBVS valdymui ir interaktyviam užklausų vykdymui (REPL).

Vietoj lentelėmis pagrįsto duomenų modelio, EdgeDB naudoja deklaratyvią sistemą, pagrįstą objektų tipais. Vietoj pašalinių raktų, susiejimas pagal nuorodą naudojamas nustatant ryšį tarp tipų (vienas objektas gali būti naudojamas kaip kito objekto savybė).

type Asmuo { reikalingas nuosavybės pavadinimas -> str; } tipo Filmas { būtinas nuosavybės pavadinimas -> str; kelių saitų veikėjai -> Asmuo; }

Indeksai gali būti naudojami užklausų apdorojimui paspartinti. Taip pat palaikomos tokios funkcijos kaip tvirtas nuosavybės įvedimas, nuosavybės vertės apribojimai, apskaičiuotos savybės ir saugomos procedūros. EdgeDB objektų saugojimo schemos, kuri šiek tiek primena ORM, ypatybės apima galimybę maišyti schemas, susieti ypatybes iš skirtingų objektų ir integruotą JSON palaikymą.

Pateikiami integruoti įrankiai schemos perkėlimui saugoti – pakeitus atskirame esdl faile nurodytą schemą, tiesiog paleiskite komandą „edgedb migration create“ ir DBVS išanalizuos schemos skirtumus ir interaktyviai sugeneruos scenarijų perėjimui į nauja schema. Schemos pakeitimų istorija sekama automatiškai.

Norint generuoti užklausas, palaikoma ir GraphQL užklausų kalba, ir patentuota EdgeDB kalba, kuri yra SQL pritaikymas hierarchiniams duomenims. Vietoj sąrašų užklausos rezultatai formatuojami struktūriškai, o vietoj antrinių užklausų ir JOIN galite nurodyti vieną EdgeQL užklausą kaip išraišką kitoje užklausoje. Palaikomos operacijos ir ciklai.

pasirinkite Filmą { pavadinimas, aktoriai: { vardas } } filtras .title = "Matrica" ​​insert Movie { title := "Matricos prisikėlimas", aktoriai := ( pasirinkite Asmens filtrą .name { 'Keanu Reeves', 'Carrie- Anne Moss', 'Laurence Fishburne' } ) } skaičiui 0, 1, 2, 3} sąjungoje ( pasirinkite { number, number + 0.5 } );

Naujoje versijoje:

  • Pridėta integruota žiniatinklio sąsaja duomenų bazės administravimui, leidžianti peržiūrėti ir redaguoti duomenis, vykdyti EdgeQL užklausas ir analizuoti naudojamą saugojimo schemą. Sąsaja paleidžiama komanda „edgedb ui“, po kurios ji tampa prieinama prisijungus prie „localhost“.
    Reliacinio grafiko DBMS EdgeDB 2.0 išleidimas
  • Įdiegta „GROUP“ išraiška, leidžianti skaidyti ir kaupti duomenis bei grupuoti duomenis naudojant savavališkas EdgeQL išraiškas, panašiai kaip grupavimas atliekant SELECT operaciją.
  • Galimybė valdyti prieigą objekto lygiu. Prieigos taisyklės yra apibrėžtos saugyklos schemos lygiu ir leidžia apriboti galimybę naudoti tam tikrą objektų rinkinį gavimo, įterpimo, trynimo ir atnaujinimo operacijose. Pavyzdžiui, galite pridėti taisyklę, leidžiančią tik autoriui atnaujinti leidinį.
  • Pridėta galimybė saugojimo schemoje naudoti globalius kintamuosius. Buvo pasiūlytas naujas visuotinis kintamasis current_user, kuris bus susietas su vartotoju.
  • Pridėtas tipų, apibrėžiančių reikšmių diapazonus, palaikymas.
  • Parengta oficiali rūdžių kalbos klientų biblioteka.
  • EdgeDB dvejetainis protokolas buvo stabilizuotas, todėl tame pačiame tinklo jungtyje vienu metu galima apdoroti keletą skirtingų seansų, persiunčiant per HTTP, naudojant pasaulinius kintamuosius ir vietines būsenas.
  • Pridėtas lizdo aktyvinimo palaikymas, leidžiantis nelaikyti serverio tvarkyklės atmintyje ir paleisti ją tik bandant užmegzti ryšį (naudinga taupant išteklius kūrėjų sistemose).

Šaltinis: opennet.ru

Добавить комментарий