L-ewwel rilaxx stabbli tal-graff relazzjonali DBMS EdgeDB

L-ewwel rilaxx stabbli tad-DBMS EdgeDB huwa disponibbli, li huwa add-on għal PostgreSQL bl-implimentazzjoni tal-mudell tad-dejta tal-graff relazzjonali u l-lingwa ta 'mistoqsija EdgeQL, ottimizzata biex taħdem b'dejta ġerarkika kumplessa. Il-kodiċi huwa miktub f'Python u Rust u huwa mqassam taħt il-liċenzja Apache 2.0. Il-libreriji tal-klijenti huma ppreparati għal Python, Go, Rust u TypeScript/Javascript. Jipprovdi għodod tal-linja tal-kmand għall-ġestjoni tad-DBMS u l-eżekuzzjoni interattiva tal-mistoqsijiet (REPL).

Minflok mudell ta 'dejta bbażat fuq tabella, EdgeDB juża sistema dikjarattiva bbażata fuq tipi ta' oġġetti. Minflok ċwievet barranin, rabta b'referenza tintuża biex tiddefinixxi r-relazzjoni bejn it-tipi (oġġett wieħed jista 'jintuża bħala proprjetà ta' oġġett ieħor). tip Persuna { isem tal-proprjetà meħtieġ -> str; } tip Movie { titolu tal-proprjetà meħtieġ -> str; atturi multi link -> Persuna; }

L-indiċijiet jistgħu jintużaw biex iħaffu l-ipproċessar tal-mistoqsijiet. Karatteristiċi bħal tajpjar qawwi tal-proprjetà, restrizzjonijiet tal-valur tal-proprjetà, proprjetajiet ikkalkulati u proċeduri maħżuna huma wkoll appoġġjati. Karatteristiċi tal-iskema ta 'ħażna ta' oġġetti EdgeDB, li hija kemmxejn reminixxenti ta 'ORM, jinkludu l-abbiltà li tħallat skemi, torbot proprjetajiet minn oġġetti differenti, u appoġġ JSON integrat.

Għodod inkorporati huma pprovduti għall-ħażna tal-migrazzjoni tal-iskema - wara li tbiddel l-iskema speċifikata f'fajl esdl separat, mexxi biss il-kmand "edgedb migration create" u d-DBMS janalizza d-differenzi fl-iskema u jiġġenera b'mod interattiv skript għall-migrazzjoni lejn il- skema ġdida. L-istorja tal-bidliet fl-iskema tiġi segwita awtomatikament.

Biex tiġġenera mistoqsijiet, kemm il-lingwa tal-mistoqsijiet GraphQL kif ukoll il-lingwa EdgeDB proprjetarja, li hija adattament tal-SQL għal data ġerarkika, huma appoġġjati. Minflok listi, ir-riżultati tal-mistoqsija huma fformattjati b'mod strutturat, u minflok subqueries u JOINs, tista 'tispeċifika mistoqsija EdgeQL waħda bħala espressjoni fi mistoqsija oħra. Tranżazzjonijiet u ċikli huma appoġġjati. agħżel Movie { title, atturi: { name } } filter .title = "The Matrix" insert Movie { title := "The Matrix Resurrections", atturi := ( agħżel Person filter .name fi { 'Keanu Reeves', 'Carrie- Anne Moss', 'Laurence Fishburne' } ) } għan-numru f'{0, 1, 2, 3} unjoni (agħżel { numru, numru + 0.5 } );

Sors: opennet.ru

Żid kumment