Ang unang matatag na paglabas ng relational graph na DBMS EdgeDB

Available ang unang stable na release ng EdgeDB DBMS, na isang add-on sa PostgreSQL kasama ang pagpapatupad ng relational graph data model at ang EdgeQL query language, na na-optimize para sa pagtatrabaho sa kumplikadong hierarchical data. Ang code ay nakasulat sa Python at Rust at ipinamamahagi sa ilalim ng lisensya ng Apache 2.0. Ang mga library ng kliyente ay inihanda para sa Python, Go, Rust at TypeScript/Javascript. Nagbibigay ng mga tool sa command line para sa pamamahala ng DBMS at interactive query execution (REPL).

Sa halip na modelo ng data na nakabatay sa talahanayan, gumagamit ang EdgeDB ng isang sistemang deklaratibo batay sa mga uri ng bagay. Sa halip na mga dayuhang key, ang pag-link sa pamamagitan ng sanggunian ay ginagamit upang tukuyin ang kaugnayan sa pagitan ng mga uri (ang isang bagay ay maaaring gamitin bilang isang pag-aari ng isa pang bagay). uri Tao { kinakailangang pangalan ng ari-arian -> str; } uri ng Pelikula { kinakailangang pamagat ng ari-arian -> str; multi link na aktor -> Tao; }

Maaaring gamitin ang mga index upang mapabilis ang pagproseso ng query. Sinusuportahan din ang mga feature tulad ng malakas na pag-type ng ari-arian, mga paghihigpit sa halaga ng ari-arian, mga nakalkulang katangian, at mga nakaimbak na pamamaraan. Kasama sa mga feature ng EdgeDB object storage scheme, na medyo nakapagpapaalaala sa isang ORM, ang kakayahang maghalo ng mga schema, mag-link ng mga property mula sa iba't ibang object, at pinagsama-samang suporta sa JSON.

Ang mga built-in na tool ay ibinigay para sa pag-imbak ng schema migration - pagkatapos baguhin ang schema na tinukoy sa isang hiwalay na esdl file, patakbuhin lang ang command na "edgedb migration create" at susuriin ng DBMS ang mga pagkakaiba sa schema at interactive na bubuo ng script para sa paglipat sa bagong schema. Awtomatikong sinusubaybayan ang kasaysayan ng mga pagbabago sa schema.

Upang makabuo ng mga query, pareho ang GraphQL query language at ang proprietary EdgeDB language, na isang adaptasyon ng SQL para sa hierarchical data, ay sinusuportahan. Sa halip na mga listahan, ang mga resulta ng query ay naka-format sa isang structured na paraan, at sa halip na mga subquery at JOIN, maaari mong tukuyin ang isang EdgeQL query bilang isang expression sa loob ng isa pang query. Sinusuportahan ang mga transaksyon at cycle. piliin ang Pelikula { pamagat, aktor: { pangalan } } filter .title = "The Matrix" insert Movie { title := "The Matrix Resurrections", mga aktor := ( piliin ang Person filter .name sa { 'Keanu Reeves', 'Carrie- Anne Moss', 'Laurence Fishburne' } ) } para sa numero sa {0, 1, 2, 3} unyon ( piliin ang { number, number + 0.5 } );

Pinagmulan: opennet.ru

Magdagdag ng komento