Rilaxx tal-grafika relazzjonali DBMS EdgeDB 2.0

Ir-rilaxx tal-EdgeDB 2.0 DBMS huwa ppreżentat, li jimplimenta l-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 (parser u partijiet kritiċi għall-prestazzjoni) u huwa mqassam taħt il-liċenzja Apache 2.0. Il-proġett qed jiġi żviluppat bħala add-on għal PostgreSQL. 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-mistoqsijiet 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 } );

Fil-verżjoni l-ġdida:

  • Interfaċċa tal-web inkorporata ġiet miżjuda għall-amministrazzjoni tad-database, li tippermettilek tara u teditja d-dejta, tmexxi mistoqsijiet EdgeQL u tanalizza l-iskema tal-ħażna użata. L-interface hija mnedija mill-kmand "edgedb ui", u wara ssir disponibbli meta taċċessa localhost.
    Rilaxx tal-grafika relazzjonali DBMS EdgeDB 2.0
  • L-espressjoni "GRUPP" ġiet implimentata, li tippermettilek taqsam u tiġbor id-dejta u d-dejta tal-grupp billi tuża espressjonijiet EdgeQL arbitrarji, simili għal raggruppament f'operazzjoni SELECT.
  • Kapaċità li tikkontrolla l-aċċess fil-livell tal-oġġett. Ir-regoli tal-aċċess huma definiti fil-livell tal-iskema tal-ħażna u jippermettulek tillimita l-abbiltà li tuża ċertu sett ta’ oġġetti f’operazzjonijiet ta’ fetch, daħħal, tħassar u taġġorna. Pereżempju, tista' żżid regola li tippermetti lill-awtur biss li jaġġorna pubblikazzjoni.
  • Żid il-ħila li tuża varjabbli globali fl-iskema tal-ħażna. Ġie propost varjabbli globali ġdid current_user biex jorbot mal-utent.
  • Appoġġ miżjud għal tipi li jiddefinixxu firxiet ta 'valuri.
  • Ġiet ippreparata librerija uffiċjali tal-klijenti għal-lingwa Rust.
  • Il-protokoll binarju EdgeDB ġie stabbilizzat, li jagħmilha possibbli li jiġu pproċessati diversi sessjonijiet differenti simultanjament fi ħdan l-istess konnessjoni tan-netwerk, trażmissjoni permezz ta 'HTTP, bl-użu ta' varjabbli globali u stati lokali.
  • Appoġġ miżjud għall-attivazzjoni tas-socket, li jippermettilek li ma żżommx is-server handler fil-memorja u tħaddem biss meta tipprova tistabbilixxi konnessjoni (utli biex tiffranka r-riżorsi fuq is-sistemi tal-iżviluppatur).

Sors: opennet.ru

Żid kumment