EdgeDB, en grafrelasjonsdata-DBMS

nylig utgivelsen av DBMS «EdgeDB 2.0» ble annonsert, som implementerer relasjonsgrafens relasjonsdatamodell og EdgeQL spørringsspråk, optimalisert for arbeid med komplekse hierarkiske data.

EdgeDB er en åpen kildekode-database designet som en åndelig etterfølger til SQL og det relasjonelle paradigmet. Målet er å løse noen vanskelige designproblemer som gjør eksisterende databaser unødvendig tyngende å bruke.

Drevet av Postgres spørringsmotor under panseret, tenker EdgeDB på skjema på samme måte som du gjør: som objekter med egenskaper forbundet med bindinger. Det er som en relasjonsdatabase med en objektorientert datamodell eller en grafdatabase med et strengt skjema. Vi kaller det en relasjonsdatabase med grafer.

Om EdgeDB

Prosjektet utvikles som en plugin for PostgreSQL. Klientbibliotekene er forberedt for språkene Python, Go, Rust og TypeScript/Javascript.

I stedet for en tabellbasert datamodell, EdgeDB bruker et deklarativt system basert på objekttyper. I stedet for fremmednøkler (fremmednøkkel) for å bestemme forholdet mellom typer brukes referansebinding (et objekt kan brukes som en egenskap til et annet objekt).

Indekser kan brukes til å fremskynde behandling av spørringer. Også funksjoner som sterk egenskapsskriving støttes, eiendomsverdibegrensninger, beregnede egenskaper og lagrede prosedyrer. Noen av funksjonene til EdgeDB-objektlagringsskjemaet, som minner litt om ORM, inkluderer muligheten til å blande skjemaer, binde egenskaper til forskjellige objekter og støtte for innebygd JSON.

Innebygde verktøy er gitt for å migrere lagringsskjemaet: Etter å ha endret skjemaet spesifisert i en separat esdl-fil, kjør bare kommandoen "edgedb migration create" og DBMS vil analysere forskjellene i skjemaet og generere et skript interaktivt. for å migrere til det nye skjemaet. Skjemandringshistorikk spores automatisk.

For spørring, både GraphQL-spørringsspråket og som sitt eget språk EdgeDB, som er en tilpasning av SQL for hierarkiske data. I stedet for lister har spørringsresultater et strukturert format, og i stedet for underspørringer og JOIN-er kan en EdgeQL-spørring spesifiseres som et uttrykk i en annen spørring. Transaksjoner og sykluser støttes.

De viktigste nye funksjonene i EdgeDB 2.0

I den nye versjonen som ble presentert, integrert webgrensesnitt er lagt til for databaseadministrasjon lar deg se og redigere data, kjøre EdgeQL-spørringer og analysere lagringsskjemaet som brukes. Grensesnittet startes med kommandoen "edgedb ui", hvoretter det er tilgjengelig ved å gå til localhost.

Expression "GROUP" ble implementert for å tillate datapartisjonering og aggregering og gruppering av data ved hjelp av vilkårlige EdgeQL-uttrykk, lik gruppering i en SELECT-operasjon.

Evne til å kontrollere tilgang på objektnivå, tilgangsregler er definert på lagringsskjemanivå og lar deg begrense bruken av et spesifikt sett med objekter i valg, sett inn, slett og oppdateringsoperasjoner. Du kan for eksempel legge til en regel som lar bare forfatteren oppdatere et innlegg.

Det er også fremhevet at lagt til muligheten til å bruke globale variabler i oppbevaringsordningen. For å binde seg til brukeren er det foreslått en ny global variabel.

Av de andre endringene som skiller seg ut:

  • Det offisielle klientbiblioteket for Rust-språket er utarbeidet.
  • Den binære EdgeDB-protokollen er stabilisert, der det er blitt mulig å behandle flere forskjellige sesjoner samtidig innenfor samme nettverksforbindelse, videresending over HTTP, ved hjelp av globale variabler og lokale tilstander.
  • Lagt til støtte for typer som definerer verdiområder (område).
  • Lagt til støtte for socket-aktivering, som gjør det mulig å ikke beholde serverdriveren i minnet og å starte den bare når du prøver å etablere en tilkobling (nyttig for å spare ressurser på utviklingssystemer).

Endelig for de som er interessert i å vite mer om det, bør de vite at koden er skrevet i Python og Rust og er utgitt under Apache 2.0-lisensen.

Du kan finne ut mer om det på følgende lenke.


Legg igjen kommentaren

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Kontroller SPAM, kommentaradministrasjon.
  3. Legitimering: Ditt samtykke
  4. Kommunikasjon av dataene: Dataene vil ikke bli kommunisert til tredjeparter bortsett fra ved juridisk forpliktelse.
  5. Datalagring: Database vert for Occentus Networks (EU)
  6. Rettigheter: Når som helst kan du begrense, gjenopprette og slette informasjonen din.