Lëshimi i DBMS-së relacional-grafike EdgeDB 2.0

Lëshimi i EdgeDB 2.0, një SGBD që implementon modelin relacional-grafik të të dhënave dhe gjuhën e pyetjeve EdgeQL, e optimizuar për punë me të dhëna komplekse hierarkike, është bërë publik. Kodi është shkruar në gjuhët Python dhe Rust (parseri dhe pjesët kritike për performancën) dhe shpërndahet nën licencën Apache 2.0. Projekti po zhvillohet si një shtesë mbi PostgreSQL. Bibliotekat e klientëve janë përgatitur për gjuhët Python, Go, Rust dhe TypeScript/Javascript. Ofron një mjet komandash për menaxhimin e SGBD dhe ekzekutimin interaktiv të pyetjeve (REPL).

Në vend të modelit të të dhënave të bazuar në tabela, EdgeDB përdor një sistem deklarativ të bazuar në tipe objektesh. Në vend të çelësave të jashtëm (foreign key) për të përcaktuar lidhjet mes tipeve, përdoret lidhja me referenca (një objekt mund të përdoret si një pronë e një objekti tjetër).

type Person { required property name -> str; } type Movie { required property title -> str; multi link actors -> Person; }

Për të përshpejtuar përpunimin e pyetjeve, mund të përdoren indekse. Nga këto mundësi, mbështeten gjithashtu tipizimi strikt i pronave, kufizimet e vlerave të pronave, pronat e llogaritura dhe procedurat e ruajtura. Një tipar i veçantë i skemës objektuale të ruajtjes në EdgeDB, e cila përshtatet me ORM-në, është mundësia për të përzier skema, lidhjen e pronave nga objekte të ndryshme dhe mbështetje e integruar për JSON.

Ofron mjete të integruara për migrimin e skemës së ruajtjes - pas ndryshimit të skemës, të përcaktuar në një skedar të veçantë esdl, mjafton të ekzekutoni komandën "edgedb migration create" dhe SGBD analizojnë diferencialet në skemë dhe në mënyrë interaktive gjeneron një skript për kalimin në skemën e re. Historia e ndryshimit të skemës ndiqet automatikisht.

Për formimin e pyetjeve, mbështetet si gjuhë pyetjesh GraphQL, ashtu edhe gjuha e saj EdgeDB, e cila është një përshtatje e SQL për të dhënat hierarkike. Në vend të LISTAVE, rezultatet e pyetjeve paraqiten në format të strukturuar, ndërsa në vend të nënpyetjeve dhe operacioneve JOIN ofrohet mundësia e specifikimit të një kërkese EdgeQL si një shprehje brenda një kërkese tjetër. Mbështeten transaksionet dhe ciklet.

zgjedh Filmin { titulli, aktorĂ«t: { emri } } filtro .titulli = «The Matrix» fut Filmin { titulli := «The Matrix Resurrections», aktorĂ«t := ( zgjedh Person filtro .emri nĂ« { ‘Keanu Reeves’, ‘Carrie-Anne Moss’, ‘Laurence Fishburne’ } ) } pĂ«r numra nĂ« {0, 1, 2, 3} bashko ( zgjedh { numri, numri + 0.5 } );

NĂ« versionin e ri:

  • Shtuar njĂ« ndĂ«rfaqe web tĂ« integruar pĂ«r administrimin e DB, e cila lejon shikimin dhe redaktimin e tĂ« dhĂ«nave, ekzekutimin e kĂ«rkesave EdgeQL dhe analizimin e skemĂ«s sĂ« ruajtjes. NdĂ«rfaqja aktivizohet me komandĂ«n «edgedb ui», pas ekzekutimit tĂ« sĂ« cilĂ«s bĂ«het e aksesueshme duke u drejtuar te localhost.
    Lëshimi i DBMS-së relacional-grafike EdgeDB 2.0
  • Realizuar shprehja «GROUP», e cila lejon sektorimin dhe agregimin e tĂ« dhĂ«nave dhe ekzekutimin e grupimit tĂ« tĂ« dhĂ«nave sipas shprehjeve tĂ« rastĂ«sishme EdgeQL, ngjashĂ«m me grupimin nĂ« operacionin SELECT.
  • MundĂ«sia pĂ«r tĂ« menaxhuar qasjen nĂ« nivel objektesh. Rregullat e qasjes pĂ«rcaktohen nĂ« nivelin e skemĂ«s sĂ« ruajtjes dhe lejojnĂ« kufizimin e mundĂ«sive tĂ« pĂ«rdorimit tĂ« njĂ« grupi tĂ« caktuar objektesh nĂ« operacionet e zgjedhjes, futjes, fshirjes dhe azhornimit. PĂ«r shembull, mund tĂ« shtohet njĂ« rregull qĂ« lejon azhornimin e publikimit vetĂ«m nga autori.
  • Shtuar mundĂ«sia e pĂ«rdorimit tĂ« variablave globalĂ« nĂ« skemĂ«n e ruajtjes. PĂ«r lidhjen me pĂ«rdoruesin Ă«shtĂ« propozuar njĂ« variabĂ«l e re globale current_user.
  • Shtuar mbĂ«shtetje pĂ«r tipet qĂ« pĂ«rcaktojnĂ« intervale vlerash (range).
  • PĂ«rgatitur njĂ« bibliotekĂ« klienti zyrtare pĂ«r gjuhĂ«n Rust.
  • Stabilizuar protokolli binar EdgeDB, nĂ« tĂ« cilin Ă«shtĂ« bĂ«rĂ« e mundur pĂ«rpunimi i disa seancave tĂ« ndryshme nĂ« njĂ« lidhje tĂ« vetme rrjeti, kalimi pĂ«rmes HTTP, pĂ«rdorimi i variablave globalĂ« dhe gjendjeve lokale.
  • Shtuar mbĂ«shtetje pĂ«r aktivizimin pĂ«rmes soketĂ«ve, e cila lejon qĂ« pĂ«rpunuesi server tĂ« mos mbahet nĂ« kujtesĂ« dhe tĂ« aktivizohet vetĂ«m kur ka njĂ« pĂ«rpjekje pĂ«r tĂ« vendosur lidhjen (e dobishme pĂ«r kursimin e burimeve te sistemet e zhvilluesve).

Burimi: opennet.ru

Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster