Yekutanga yakagadzikana kuburitswa kweiyo yehukama girafu DBMS EdgeDB

Yekutanga yakagadzika kuburitswa kweEdgeDB DBMS inowanikwa, inova yekuwedzera kuPostgreSQL nekushandiswa kweiyo relational graph data modhi uye EdgeQL query mutauro, yakagadziridzwa kushanda neyakaoma hierarchical data. Iyo kodhi yakanyorwa muPython uye Rust uye yakagoverwa pasi peiyo Apache 2.0 rezinesi. 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 reimba -> 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});

Source: opennet.ru

Voeg