DBMS EdgeDB erlazio grafikoaren lehen bertsio egonkorra

EdgeDB DBMSren lehen bertsio egonkorra eskuragarri dago, hau da, PostgreSQL-ren gehigarri bat grafiko erlazionalaren datu-eredua eta EdgeQL kontsulta-lengoaia inplementatzen dituena, datu hierarkiko konplexuekin lan egiteko optimizatua. Kodea Python eta Rust-en idatzita dago eta Apache 2.0 lizentziapean banatzen da. Bezero liburutegiak Python, Go, Rust eta TypeScript/Javascript-erako prestatuta daude. Komando-lerroko tresnak eskaintzen ditu DBMS kudeaketarako eta kontsulta interaktiboak exekutatzeko (REPL).

Tauletan oinarritutako datu-eredu baten ordez, EdgeDB-k objektu motetan oinarritutako deklarazio-sistema bat erabiltzen du. Atzerriko gakoen ordez, erreferentzia bidezko lotura erabiltzen da moten arteko erlazioa definitzeko (objektu bat beste objektu baten propietate gisa erabil daiteke). type Person { beharrezko jabetza izena -> str; } type Movie { beharrezko jabetza izenburua -> str; esteka anitzeko aktoreak -> Pertsona; }

Indizeak erabil daitezke kontsultaren prozesamendua bizkortzeko. Jabetza-idazketa sendoa, jabetza-balioaren murrizketak, kalkulatutako propietateak eta gordetako prozedurak bezalako eginbideak ere onartzen dira. EdgeDB objektuen biltegiratze-eskemaren ezaugarriak, ORM bat gogorarazten duena, eskemak nahasteko, objektu desberdinetako propietateak lotzeko eta JSON euskarria integratua barne hartzen ditu.

Eskemaren migrazioa gordetzeko tresna integratuak eskaintzen dira - esdl fitxategi bereizi batean zehaztutako eskema aldatu ondoren, exekutatu "edgedb migration create" komandoa eta DBMSak eskemaren desberdintasunak aztertuko ditu eta interaktiboki sortuko du script-era migratzeko. eskema berria. Eskema aldaketen historia automatikoki jarraitzen da.

Kontsultak sortzeko, bai GraphQL kontsulta-lengoaia eta bai jabedun EdgeDB lengoaia, hau da, SQL-ren egokitzapena datu hierarkikoetarako, onartzen dira. Zerrenden ordez, kontsulten emaitzak modu egituratuan formateatzen dira, eta azpikontsulten eta JOINen ordez, EdgeQL kontsulta bat adieraz dezakezu beste kontsulta baten barruan. Transakzioak eta zikloak onartzen dira. hautatu Filma { title, aktoreak: { name } } filter .title = "The Matrix" txertatu Movie { title := "The Matrix Resurrections", aktores := (hautatu Person filter .name in { 'Keanu Reeves', 'Carrie- Anne Moss', 'Laurence Fishburne' }) } {0, 1, 2, 3} batasuneko zenbakirako (hautatu { zenbakia, zenbakia + 0.5 });

Iturria: opennet.ru

Gehitu iruzkin berria