Pirmasis stabilus reliacinio grafiko DBMS EdgeDB leidimas

Yra pirmasis stabilus EdgeDB DBVS leidimas, kuris yra PostgreSQL priedas, kuriame įdiegtas reliacinio grafiko duomenų modelis ir EdgeQL užklausos kalba, optimizuota darbui su sudėtingais hierarchiniais duomenimis. Kodas parašytas Python ir Rust kalbomis ir platinamas pagal Apache 2.0 licenciją. 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ų nuorodų 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 iš { 'Keanu Reeves', 'Carrie- Anne Moss', 'Laurence'as Fishburne' } ) } skaičiui 0, 1, 2, 3} sąjungoje ( pasirinkite { number, number + 0.5 } );

Šaltinis: opennet.ru

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