Rhyddhau'r graff perthynol DBMS EdgeDB 2.0

Cyflwynir rhyddhau EdgeDB 2.0 DBMS, sy'n gweithredu'r model data graff perthynol ac iaith ymholiad EdgeQL, wedi'i optimeiddio ar gyfer gweithio gyda data hierarchaidd cymhleth. Mae'r cod wedi'i ysgrifennu yn Python a Rust (parser a rhannau sy'n hanfodol i berfformiad) ac fe'i dosberthir o dan drwydded Apache 2.0. Mae'r prosiect yn cael ei ddatblygu fel ychwanegiad ar gyfer PostgreSQL. Mae llyfrgelloedd cleientiaid yn cael eu paratoi ar gyfer Python, Go, Rust a TypeScript/Javascript. Yn darparu offer llinell orchymyn ar gyfer rheoli DBMS a gweithredu ymholiad rhyngweithiol (REPL).

Yn lle model data seiliedig ar dabl, mae EdgeDB yn defnyddio system ddatganiadol yn seiliedig ar fathau o wrthrychau. Yn lle allweddi tramor, defnyddir cysylltu trwy gyfeiriad i ddiffinio'r berthynas rhwng mathau (gellir defnyddio un gwrthrych fel eiddo gwrthrych arall).

teipiwch Person { enw eiddo gofynnol -> str; } math Movie { teitl eiddo gofynnol -> str; actorion aml-gyswllt -> Person; }

Gellir defnyddio mynegeion i gyflymu prosesu ymholiadau. Cefnogir nodweddion megis teipio eiddo cryf, cyfyngiadau gwerth eiddo, eiddo cyfrifiadurol, a gweithdrefnau storio hefyd. Mae nodweddion cynllun storio gwrthrychau EdgeDB, sydd braidd yn atgoffa rhywun o ORM, yn cynnwys y gallu i gymysgu sgemâu, cysylltu priodweddau o wahanol wrthrychau, a chefnogaeth integredig JSON.

Darperir offer adeiledig ar gyfer storio mudo sgema - ar ôl newid y sgema a nodir mewn ffeil esdl ar wahân, rhedwch y gorchymyn “creu mudo edgeb” a bydd y DBMS yn dadansoddi'r gwahaniaethau yn y sgema ac yn cynhyrchu sgript yn rhyngweithiol ar gyfer mudo i'r sgema newydd. Mae hanes newidiadau sgema yn cael ei olrhain yn awtomatig.

Er mwyn cynhyrchu ymholiadau, cefnogir iaith ymholiad GraphQL a'r iaith EdgeDB berchnogol, sy'n addasiad o SQL ar gyfer data hierarchaidd. Yn lle rhestrau, mae canlyniadau ymholiad yn cael eu fformatio mewn ffordd strwythuredig, ac yn lle subqueries ac JOINs, gallwch nodi un ymholiad EdgeQL fel mynegiant o fewn ymholiad arall. Cefnogir trafodion a chylchoedd.

select Movie { title , actorion : { name } } filter .title = "Y Matrics" mewnosod Movie { title := "Y Matrics Atgyfodiad", actorion := ( dewiswch Person filter .name yn { ' Keanu Reeves ' , ' Carrie- Anne Moss', 'Laurence Fishburne' } ) } ar gyfer rhif yn undeb {0, 1, 2, 3} ( dewiswch { number, number + 0.5 } );

Yn y fersiwn newydd:

  • Mae rhyngwyneb gwe adeiledig wedi'i ychwanegu ar gyfer gweinyddu cronfa ddata, sy'n eich galluogi i weld a golygu data, rhedeg ymholiadau EdgeQL a dadansoddi'r cynllun storio a ddefnyddiwyd. Mae'r rhyngwyneb yn cael ei lansio gan y gorchymyn “edgedb ui”, ac ar ôl hynny daw ar gael wrth gyrchu localhost.
    Rhyddhau'r graff perthynol DBMS EdgeDB 2.0
  • Mae'r ymadrodd “GROUP” wedi'i weithredu, sy'n eich galluogi i rannu a chyfuno data a data grŵp gan ddefnyddio ymadroddion EdgeQL mympwyol, yn debyg i grwpio mewn gweithrediad SELECT.
  • Y gallu i reoli mynediad ar lefel gwrthrych. Diffinnir rheolau mynediad ar lefel sgema storio ac maent yn caniatáu ichi gyfyngu ar y gallu i ddefnyddio set benodol o wrthrychau wrth gasglu, mewnosod, dileu a diweddaru gweithrediadau. Er enghraifft, gallwch ychwanegu rheol sy'n caniatáu i'r awdur yn unig ddiweddaru cyhoeddiad.
  • Ychwanegwyd y gallu i ddefnyddio newidynnau byd-eang yn y sgema storio. Mae newidyn byd-eang current_user newydd wedi'i gynnig i'w rwymo i'r defnyddiwr.
  • Cefnogaeth ychwanegol ar gyfer mathau sy'n diffinio ystodau o werthoedd.
  • Mae llyfrgell gleientiaid swyddogol ar gyfer yr iaith Rust wedi'i pharatoi.
  • Mae protocol deuaidd EdgeDB wedi'i sefydlogi, gan ei gwneud hi'n bosibl prosesu sawl sesiwn wahanol ar yr un pryd o fewn yr un cysylltiad rhwydwaith, gan anfon ymlaen trwy HTTP, gan ddefnyddio newidynnau byd-eang a gwladwriaethau lleol.
  • Cefnogaeth ychwanegol ar gyfer actifadu soced, sy'n eich galluogi i beidio â chadw triniwr y gweinydd yn y cof a'i redeg dim ond wrth geisio sefydlu cysylltiad (defnyddiol ar gyfer arbed adnoddau ar systemau datblygwyr).

Ffynhonnell: opennet.ru

Ychwanegu sylw