Kuburitswa kweiyo yehukama girafu DBMS EdgeDB 2.0

Kuburitswa kweEdgeDB 2.0 DBMS inoratidzwa, iyo inoshandisa iyo yehukama graph data modhi uye EdgeQL yemubvunzo mutauro, wakagadziridzwa kushanda neakaoma hierarchical data. Iyo kodhi yakanyorwa muPython uye Rust (parser uye inoshanda-yakakosha zvikamu) uye yakagoverwa pasi peiyo Apache 2.0 rezinesi. Iyo purojekiti iri kuvandudzwa seyekuwedzera yePostgreSQL. Maraibhurari evatengi akagadzirirwa Python, Go, Rust uye TypeScript/Javascript. Inopa maturusi emutsetse wemirairo yeDBMS manejimendi uye inopindirana query execution (REPL).

Panzvimbo petafura-based data model, EdgeDB inoshandisa declarative system yakavakirwa pamhando dzezvinhu. Panzvimbo yemakiyi ekunze, kubatanidza nereferensi kunoshandiswa kutsanangura hukama pakati pemhando (chimwe chinhu chinogona kushandiswa sechinhu chechimwe chinhu).

mhando Munhu {inodiwa zita repfuma -> str; } mhando Firimu {inodiwa zita renzvimbo -> str; multi link vatambi -> Munhu; }

Indexes inogona kushandiswa kukurumidzira kugadzirisa mibvunzo. Zvimiro zvakaita setaipa yemidziyo yakasimba, zvirambidzo zveukoshi hwezvivakwa, zvivakwa zvekombuta, uye maitiro akachengetwa zvinotsigirwawo. Zvimiro zveEdgeDB chinhu chekuchengetedza chirongwa, chinova chiyeuchidzo cheORM, zvinosanganisira kugona kusanganisa schemas, kubatanidza zvivakwa kubva kune zvakasiyana zvinhu, uye yakabatanidzwa JSON rutsigiro.

Zvishandiso zvakavakwa-mukati zvinopihwa kuchengetedza schema kutama - mushure mekushandura schema yakatsanangurwa mune yakaparadzana esdl faira, ingomhanya iyo "edgedb migration kugadzira" kuraira uye iyo DBMS inoongorora misiyano mu schema uye nekudyidzana kugadzira script yekutamira kune iyo. new schema. Iyo nhoroondo yekuchinja schema inoteedzerwa otomatiki.

Kugadzira mibvunzo, ese ari maviri GraphQL query mutauro uye ine muridzi EdgeDB mutauro, inova inogadziriswa yeSQL yehierarchical data, inotsigirwa. Panzvimbo pezvinyorwa, mhinduro dzemubvunzo dzakaumbwa nenzira yakarongeka, uye pachinzvimbo che subqueries uye JOINs, unogona kutsanangura imwe EdgeQL mubvunzo sekutaura mukati memumwe mubvunzo. Transactions nema cycles zvinotsigirwa.

sarudza Firimu {zita, vatambi: {zita } } sefa .title = "The Matrix" isa Firimu { title := "The Matrix Resurrections", actors := (sarudza Person filter .name in {'Keanu Reeves', 'Carrie- Anne Moss', 'Laurence Fishburne'} )} nokuda kwenhamba mu {0, 1, 2, 3} mubatanidzwa (sarudza {nhamba, nhamba + 0.5});

Mushanduro itsva:

  • Iyo yakavakirwa-mukati yewebhu interface yakawedzerwa kune dhatabhesi manejimendi, ichikubvumidza iwe kuti utarise uye kugadzirisa data, mhanyisa EdgeQL mibvunzo uye ongorora chirongwa chekuchengetedza chinoshandiswa. Iyo interface inotangwa ne "edgedb ui" murairo, mushure mezvo inowanikwa kana ichisvika localhost.
    Kuburitswa kweiyo yehukama girafu DBMS EdgeDB 2.0
  • Izwi rekuti "GROUP" raitwa, richikubvumidza kugovera uye kuunganidza data uye data reboka uchishandisa zvisizvo maEdgeQL mataurirwo, akafanana nekuisa muboka mune SARUDZO mashandiro.
  • Kugona kudzora kupinda panzvimbo yechinhu. Mitemo yekuwana inotsanangurwa padanho rekuchengetedza schema uye inobvumidza iwe kudzikamisa kugona kushandisa imwe seti yezvinhu mukutora, kuisa, kudzima, uye kugadzirisa mashandiro. Semuenzaniso, unogona kuwedzera mutemo unobvumira munyori chete kugadzirisa chinyorwa.
  • Yakawedzera kugona kushandisa shanduko dzepasi rose muchirongwa chekuchengetedza. A new global variable current_user yakarongwa kuti isungirire kumushandisi.
  • Yakawedzerwa tsigiro yemhando dzinotsanangura nhanho dzezvikoshi.
  • Raibhurari yepamutemo yevatengi yemutauro weRust yagadzirwa.
  • Iyo EdgeDB binary protocol yakagadziriswa, zvichiita kuti zvikwanise kugadzirisa zvikamu zvakasiyana zvakasiyana panguva imwe chete mukati mekubatana kwetiweki, kutumira kuburikidza neHTTP, uchishandisa shanduko dzepasi rose uye nyika dzemuno.
  • Yakawedzera tsigiro ye socket activation, iyo inokutendera kuti urege kuchengeta sevha inobata mundangariro uye kuimhanyisa chete kana uchiedza kumisikidza chinongedzo (chinobatsira pakuchengetedza zviwanikwa pane anovandudza masisitimu).

Source: opennet.ru

Voeg