Ang una nga lig-on nga pagpagawas sa relational graph nga DBMS EdgeDB

Ang una nga lig-on nga pagpagawas sa EdgeDB DBMS anaa, nga usa ka add-on sa PostgreSQL uban ang pagpatuman sa relational graph data model ug ang EdgeQL query nga pinulongan, nga gi-optimize alang sa pagtrabaho uban sa komplikadong hierarchical data. Ang code gisulat sa Python ug Rust ug giapod-apod ubos sa Apache 2.0 nga lisensya. Ang mga librarya sa kliyente giandam alang sa Python, Go, Rust ug TypeScript/Javascript. Naghatag mga himan sa command line alang sa pagdumala sa DBMS ug interactive query execution (REPL).

Imbis nga modelo sa datos nga nakabase sa lamesa, gigamit sa EdgeDB ang usa ka sistema nga deklaratibo nga gibase sa mga tipo sa butang. Imbis sa mga langyaw nga yawe, ang pag-link pinaagi sa pakisayran gigamit aron mahibal-an ang relasyon tali sa mga tipo (ang usa ka butang mahimong magamit ingon usa ka kabtangan sa lain nga butang). type Tawo {kinahanglan nga ngalan sa kabtangan -> str; } type Movie {kinahanglan nga titulo sa kabtangan -> str; multi link nga mga aktor -> Tawo; }

Ang mga indeks mahimong magamit aron mapadali ang pagproseso sa pangutana. Gisuportahan usab ang mga bahin sama sa lig-on nga pag-type sa kabtangan, mga pagdili sa kantidad sa kabtangan, gikalkula nga mga kabtangan, ug gitipigan nga mga pamaagi. Ang mga bahin sa EdgeDB object storage scheme, nga medyo makapahinumdom sa usa ka ORM, naglakip sa abilidad sa pagsagol sa mga schema, link nga mga kabtangan gikan sa lain-laing mga butang, ug integrated JSON nga suporta.

Ang mga built-in nga himan gihatag alang sa pagtipig sa schema migration - human mausab ang schema nga gitakda sa usa ka bulag nga esdl file, padagana lang ang "edgedb migration create" nga sugo ug ang DBMS mag-analisar sa mga kalainan sa schema ug interactive nga makamugna og script para sa paglalin ngadto sa bag-ong schema. Ang kasaysayan sa mga kausaban sa schema awtomatik nga gisubay.

Aron makamugna og mga pangutana, ang GraphQL query language ug ang proprietary EdgeDB nga pinulongan, nga usa ka adaptation sa SQL alang sa hierarchical data, gisuportahan. Imbis nga mga lista, ang mga resulta sa pangutana giporma sa usa ka structured nga paagi, ug imbes sa mga subquery ug JOINs, mahimo nimong ipiho ang usa ka EdgeQL nga pangutana isip usa ka ekspresyon sulod sa laing pangutana. Gisuportahan ang mga transaksyon ug mga siklo. pilia ang Pelikula {titulo, aktor: {ngalan }} filter .title = "The Matrix" insert Movie { title := "The Matrix Resurrections", mga aktor := ( pilia ang Person filter .ngalan sa { 'Keanu Reeves', 'Carrie- Anne Moss', 'Laurence Fishburne' } ) } para sa numero sa {0, 1, 2, 3} unyon ( pilia ang {numero, numero + 0.5 } );

Source: opennet.ru

Idugang sa usa ka comment