Lage graf relasyon DBMS EdgeDB 2.0

Yo prezante liberasyon EdgeDB 2.0 DBMS, ki aplike modèl done graf relasyon ak lang rekèt EdgeQL, ki optimize pou travay ak done yerarchik konplèks. Kòd la ekri nan Python ak Rust (parser ak pèfòmans kritik pati) epi li distribye anba lisans Apache 2.0. Pwojè a ap devlope kòm yon adisyon pou PostgreSQL. Bibliyotèk kliyan yo prepare pou Python, Go, Rust ak TypeScript/Javascript. Bay zouti liy kòmand pou jesyon DBMS ak ekzekisyon rechèch entèaktif (REPL).

Olye de yon modèl done ki baze sou tab, EdgeDB itilize yon sistèm deklaratif ki baze sou kalite objè yo. Olye de kle etranje, lyen pa referans yo itilize pou defini relasyon ki genyen ant kalite (yo ka itilize yon objè kòm yon pwopriyete yon lòt objè).

tape Moun { non pwopriyete obligatwa -> str; } tape fim { tit pwopriyete obligatwa -> str; aktè milti lyen -> Moun; }

Endèks yo ka itilize pou pi vit pwosesis demann. Karakteristik tankou sezisman fò pwopriyete, restriksyon sou valè pwopriyete, pwopriyete kalkile, ak pwosedi ki estoke yo sipòte tou. Karakteristik nan konplo depo objè EdgeDB, ki se yon ti jan okoumansman de yon ORM, gen ladan kapasite nan melanje chema, lyen pwopriyete ki soti nan objè diferan, ak sipò JSON entegre.

Yo bay zouti entegre pou estoke migrasyon chema - apre w fin chanje chema ki espesifye nan yon fichye esdl separe, jis kouri kòmandman "edgedb migration create" epi DBMS pral analize diferans ki genyen nan chema a epi jenere yon script pou emigre nan yon fason entèaktif. nouvo chema. Istwa chanjman chema yo ap swiv otomatikman.

Pou jenere demann, yo sipòte tou de langaj rechèch GraphQL ak lang pwopriyetè EdgeDB, ki se yon adaptasyon SQL pou done yerachik. Olye pou yo lis, rezilta rechèch yo fòma nan yon fason estriktire, epi olye pou yo sou-rekèt ak JOIN, ou ka presize yon rekèt EdgeQL kòm yon ekspresyon nan yon lòt rekèt. Tranzaksyon ak sik yo sipòte.

chwazi fim { tit, aktè: { non } } filter .title = "The Matrix" insert Movie { title := "The Matrix Resurrections", aktè := ( chwazi Pèson filtre .non nan { 'Keanu Reeves', 'Carrie- Anne Moss', 'Laurence Fishburne' } ) } pou nimewo nan {0, 1, 2, 3} sendika ( chwazi {nimewo, nimewo + 0.5 } );

Nan nouvo vèsyon an:

  • Yo te ajoute yon koòdone entènèt entegre pou administrasyon baz done, ki pèmèt ou wè ak modifye done, kouri demann EdgeQL ak analize konplo depo yo itilize. Koòdone a te lanse pa "edgedb ui" kòmandman an, apre sa li vin disponib lè gen aksè a localhost.
    Lage graf relasyon DBMS EdgeDB 2.0
  • Ekspresyon "GRUPPO" yo te aplike, sa ki pèmèt ou patisyon ak total done ak gwoup done lè l sèvi avèk ekspresyon abitrè EdgeQL, menm jan ak gwoupman nan yon operasyon SELECT.
  • Kapasite pou kontwole aksè nan nivo objè a. Règ aksè yo defini nan nivo chema depo a epi pèmèt ou limite kapasite pou itilize yon sèten seri objè nan fèch, insert, efase, ak aktyalizasyon operasyon yo. Pou egzanp, ou ka ajoute yon règ ki pèmèt sèlman otè a mete ajou yon piblikasyon.
  • Te ajoute kapasite nan sèvi ak varyab mondyal nan konplo a depo. Yo te pwopoze yon nouvo varyab global current_user pou lye ak itilizatè a.
  • Te ajoute sipò pou kalite ki defini seri valè.
  • Yo prepare yon bibliyotèk kliyan ofisyèl pou lang Rust.
  • Pwotokòl binè EdgeDB te estabilize, sa ki fè li posib pou trete plizyè sesyon diferan ansanm nan menm koneksyon rezo a, voye atravè HTTP, lè l sèvi avèk varyab mondyal ak eta lokal yo.
  • Te ajoute sipò pou deklanchman priz, ki pèmèt ou pa kenbe okipe sèvè a nan memwa epi kouri li sèlman lè w ap eseye etabli yon koneksyon (itil pou ekonomize resous sou sistèm pwomotè).

Sous: opennet.ru

Add nouvo kòmantè