EdgeDB, en grafrelationsdataDBMS

nyligen lanseringen av DBMS «EdgeDB 2.0» tillkännagavs, som implementerar relationsdatamodellen för relationsgrafen och frågespråket EdgeQL, optimerat för att arbeta med komplexa hierarkiska data.

EdgeDB är en öppen källkodsdatabas utformad som en andlig efterföljare till SQL och det relationella paradigmet. Dess mål är att lösa några svåra designproblem som gör befintliga databaser onödigt betungande att använda.

Drivs av Postgres frågemotor under huven, EdgeDB tänker på schemat på samma sätt som du gör: som objekt med egenskaper kopplade med bindningar. Det är som en relationsdatabas med en objektorienterad datamodell eller en grafdatabas med ett strikt schema. Vi kallar det en relationsdatabas med grafer.

Om EdgeDB

Projektet utvecklas som ett plugin för PostgreSQL. Klientbiblioteken är förberedda för språken Python, Go, Rust och TypeScript/Javascript.

Istället för en tabellbaserad datamodell, EdgeDB använder ett deklarativt system baserat på objekttyper. Istället för främmande nycklar (främmande nyckel) för att bestämma förhållandet mellan typer används referensbindning (ett objekt kan användas som en egenskap hos ett annat objekt).

Index kan användas för att påskynda frågebehandlingen. Också funktioner som stark egenskapsskrivning stöds, egenskapsvärdebegränsningar, beräknade egenskaper och lagrade procedurer. Några av funktionerna i EdgeDB-objektlagringsschemat, som påminner något om ORM, inkluderar möjligheten att blanda scheman, binda egenskaper för olika objekt och stöd för inbäddad JSON.

Inbyggda verktyg tillhandahålls för att migrera lagringsschemat: Efter att ha ändrat schemat som anges i en separat esdl-fil, kör bara kommandot "edgedb migration create" och DBMS kommer att analysera skillnaderna i schemat och generera ett skript interaktivt. för att migrera till det nya schemat. Schemaändringshistorik spåras automatiskt.

För frågor, både GraphQL-frågespråket och som sitt eget språk EdgeDB, som är en anpassning av SQL för hierarkisk data. Istället för listor har frågeresultat ett strukturerat format, och istället för subqueries och JOINs kan en EdgeQL-fråga anges som ett uttryck i en annan fråga. Transaktioner och cykler stöds.

De viktigaste nya funktionerna i EdgeDB 2.0

I den nya versionen som presenterades, integrerat webbgränssnitt har lagts till för databasadministration gör det möjligt att visa och redigera data, köra EdgeQL-frågor och analysera det använda lagringsschemat. Gränssnittet startas med kommandot "edgedb ui", varefter det är tillgängligt genom att komma åt localhost.

Uttryck "GROUP" implementerades för att möjliggöra datapartitionering och aggregering och gruppering av data med godtyckliga EdgeQL-uttryck, liknande gruppering i en SELECT-operation.

Möjlighet att kontrollera åtkomst på objektnivå, åtkomstregler definieras på lagringsschemanivå och låter dig begränsa användningen av en specifik uppsättning objekt i val, infoga, ta bort och uppdatera operationer. Du kan till exempel lägga till en regel som tillåter endast författaren att uppdatera ett inlägg.

Det framhävs också att utökad förmåga att använda globala variabler i lagringsschemat. För att binda till användaren har en ny global variabel föreslagits.

Av de andra förändringarna som sticker ut:

  • Det officiella klientbiblioteket för språket Rust har förberetts.
  • Det binära protokollet EdgeDB har stabiliserats, där det har blivit möjligt att behandla flera olika sessioner samtidigt inom samma nätverksanslutning, vidarebefordran över HTTP, med hjälp av globala variabler och lokala tillstånd.
  • Tillagt stöd för typer som definierar värdeintervall (intervall).
  • Lagt till stöd för socketaktivering, vilket gör det möjligt att inte behålla serverdrivrutinen i minnet och att starta den endast när man försöker upprätta en anslutning (användbart för att spara resurser på utvecklingssystem).

Slutligen för dem som är intresserade av att veta mer om det, bör de veta att koden är skriven i Python och Rust och släpps under Apache 2.0-licensen.

Du kan ta reda på mer om det på följande länk.


Lämna din kommentar

Din e-postadress kommer inte att publiceras. Obligatoriska fält är markerade med *

*

*

  1. Ansvarig för uppgifterna: Miguel Ángel Gatón
  2. Syftet med uppgifterna: Kontrollera skräppost, kommentarhantering.
  3. Legitimering: Ditt samtycke
  4. Kommunikation av uppgifterna: Uppgifterna kommer inte att kommuniceras till tredje part förutom enligt laglig skyldighet.
  5. Datalagring: databas värd för Occentus Networks (EU)
  6. Rättigheter: När som helst kan du begränsa, återställa och radera din information.