DBMS EdgeDB 2.0 erlazio-grafikoaren kaleratzea

EdgeDB 2.0 DBMS-aren bertsioa aurkezten da, grafiko erlazionalaren datu-eredua eta EdgeQL kontsulta-lengoaia inplementatzen dituena, datu hierarkiko konplexuekin lan egiteko optimizatuta. Kodea Python eta Rust-en idatzita dago (analizatzailea eta errendimendurako atal kritikoak) eta Apache 2.0 lizentziapean banatzen da. Proiektua PostgreSQL-ren gehigarri gisa garatzen ari da. Bezero liburutegiak Python, Go, Rust eta TypeScript/Javascript-erako prestatuta daude. Komando-lerroko tresnak eskaintzen ditu DBMS kudeaketarako eta kontsulta interaktiboak exekutatzeko (REPL).

Tauletan oinarritutako datu-eredu baten ordez, EdgeDB-k objektu motetan oinarritutako deklarazio-sistema bat erabiltzen du. Atzerriko gakoen ordez, erreferentzia bidezko lotura erabiltzen da moten arteko erlazioa definitzeko (objektu bat beste objektu baten propietate gisa erabil daiteke).

type Person { beharrezko jabetza izena -> str; } type Movie { beharrezko jabetza izenburua -> str; esteka anitzeko aktoreak -> Pertsona; }

Indizeak erabil daitezke kontsultaren prozesamendua bizkortzeko. Jabetza-idazketa sendoa, jabetza-balioaren murrizketak, kalkulatutako propietateak eta gordetako prozedurak bezalako eginbideak ere onartzen dira. EdgeDB objektuen biltegiratze-eskemaren ezaugarriak, ORM bat gogorarazten duena, eskemak nahasteko, objektu desberdinetako propietateak lotzeko eta JSON euskarria integratua barne hartzen ditu.

Eskemaren migrazioa gordetzeko tresna integratuak eskaintzen dira - esdl fitxategi bereizi batean zehaztutako eskema aldatu ondoren, exekutatu "edgedb migration create" komandoa eta DBMSak eskemaren desberdintasunak aztertuko ditu eta interaktiboki sortuko du script-era migratzeko. eskema berria. Eskema aldaketen historia automatikoki jarraitzen da.

Kontsultak sortzeko, bai GraphQL kontsulta-lengoaia eta bai jabedun EdgeDB lengoaia, hau da, SQL-ren egokitzapena datu hierarkikoetarako, onartzen dira. Zerrenden ordez, kontsulten emaitzak modu egituratuan formateatzen dira, eta azpikontsulten eta JOINen ordez, EdgeQL kontsulta bat adieraz dezakezu beste kontsulta baten barruan. Transakzioak eta zikloak onartzen dira.

hautatu Filma { title, aktoreak: { name } } filter .title = "The Matrix" txertatu Movie { title := "The Matrix Resurrections", aktoreak := ( hautatu Pertsona iragazkia .name in { 'Keanu Reeves', 'Carrie- Anne Moss', 'Laurence Fishburne' }) } {0, 1, 2, 3} batasuneko zenbakirako (hautatu { zenbakia, zenbakia + 0.5 });

Bertsio berrian:

  • Datu-baseen administraziorako web interfaze integratua gehitu da, datuak ikusteko eta editatzeko, EdgeQL kontsultak exekutatzeko eta erabilitako biltegiratze-eskema aztertzeko. Interfazea "edgedb ui" komandoak abiarazten du, eta, ondoren, erabilgarri egongo da localhost sartzean.
    DBMS EdgeDB 2.0 erlazio-grafikoaren kaleratzea
  • "GROUP" adierazpena inplementatu da, datuak eta datuak taldekatzeko EdgeQL adierazpen arbitrarioak erabiliz, SELECT eragiketa batean taldekatzearen antzera.
  • Objektu mailan sarbidea kontrolatzeko gaitasuna. Sarbide-arauak biltegiratze-eskemaren mailan definitzen dira eta objektu-multzo jakin bat erabiltzeko gaitasuna mugatzea ahalbidetzen dute lortu, txertatu, ezabatu eta eguneratzeko eragiketetan. Adibidez, egileari soilik argitalpen bat eguneratzeko aukera ematen dion arau bat gehi dezakezu.
  • Biltegiratze-eskeman aldagai globalak erabiltzeko gaitasuna gehitu da. Current_user aldagai global berri bat proposatu da erabiltzaileari lotzeko.
  • Balio-barrutiak definitzen dituzten moten laguntza gehitu da.
  • Rust hizkuntzarako bezero liburutegi ofiziala prestatu da.
  • EdgeDB protokolo bitarra egonkortu egin da, sareko konexio berean hainbat saio aldi berean prozesatzeko aukera emanez, HTTP bidez birbidaltzeko, aldagai globalak eta tokiko egoerak erabiliz.
  • Socket-a aktibatzeko euskarria gehitu da, zerbitzariaren kudeatzailea memorian ez gordetzeko eta konexio bat ezartzen saiatzean bakarrik exekutatzeko (baliagarria garatzaile-sistemetan baliabideak aurrezteko).

Iturria: opennet.ru

Gehitu iruzkin berria