EdgeDB, grafični relacijski podatkovni DBMS

Pred kratkim objavljena je bila izdaja DBMS «EdgeDB 2.0», ki implementira relacijski podatkovni model relacijskega grafa in poizvedovalni jezik EdgeQL, optimiziran za delo s kompleksnimi hierarhičnimi podatki.

EdgeDB je odprtokodna zbirka podatkov, zasnovana kot duhovni naslednik SQL in relacijske paradigme. Njegov cilj je rešiti nekatere težke načrtovalske težave, zaradi katerih je uporaba obstoječih baz podatkov po nepotrebnem obremenjujoča.

EdgeDB, ki ga poganja poizvedovalni mehanizem Postgres pod pokrovom, razmišlja o shemi na enak način kot vi: kot o objektih z lastnostmi, povezanimi z vezavami. Je kot relacijska baza podatkov z objektno usmerjenim podatkovnim modelom ali baza podatkov grafov s strogo shemo. Imenujemo jo relacijska baza grafov.

O EdgeDB

Projekt se razvija kot vtičnik za PostgreSQL. Odjemalske knjižnice so pripravljene za jezike Python, Go, Rust in TypeScript/Javascript.

Namesto podatkovnega modela, ki temelji na tabeli, EdgeDB uporablja deklarativni sistem, ki temelji na tipih objektov. Namesto tujih ključev (tuji ključ) se za določanje razmerja med tipi uporablja referenčna vezava (predmet se lahko uporablja kot lastnost drugega predmeta).

Za pospešitev obdelave poizvedb je mogoče uporabiti indekse. tudi podprte so funkcije, kot je močno tipkanje lastnosti, omejitve vrednosti lastnosti, izračunane lastnosti in shranjene procedure. Nekatere funkcije sheme za shranjevanje objektov EdgeDB, ki nekoliko spominja na ORM, vključujejo možnost mešanja shem, povezovanje lastnosti različnih objektov in podporo za vdelan JSON.

Za selitev so na voljo vgrajena orodja shema shranjevanja: Ko spremenite shemo, navedeno v ločeni datoteki esdl, zaženite ukaz »edgedb migration create« in DBMS bo analiziral razlike v shemi in interaktivno ustvaril skript. za prehod na novo shemo. Zgodovina sprememb sheme se sledi samodejno.

Za poizvedovanje sta poizvedovalni jezik GraphQL in kot lasten jezik EdgeDB, ki je prilagoditev SQL za hierarhične podatke. Namesto seznamov imajo rezultati poizvedbe strukturirano obliko, namesto podpoizvedb in JOIN-ov pa je poizvedbo EdgeQL mogoče podati kot izraz znotraj druge poizvedbe. Transakcije in cikli so podprti.

Glavne nove funkcije EdgeDB 2.0

V novi različici, ki je bila predstavljena, dodan je integriran spletni vmesnik za upravljanje baze podatkov omogoča ogled in urejanje podatkov, izvajanje poizvedb EdgeQL in analizirati uporabljeno shemo shranjevanja. Vmesnik se zažene z ukazom "edgedb ui", nato pa je na voljo z dostopom do localhost.

Izražanje »GROUP« je bil implementiran za omogočanje particioniranja in združevanja podatkov in združevanje podatkov z uporabo poljubnih izrazov EdgeQL, podobno kot združevanje v operaciji SELECT.

Možnost nadzora dostopa na nivoju objekta, pravila dostopa so definirana na ravni sheme pomnilnika in vam omogočajo, da omejite uporabo določenega nabora objektov pri operacijah izbire, vstavljanja, brisanja in posodabljanja. Dodate lahko na primer pravilo, ki samo avtorju dovoljuje posodobitev objave.

Poudarjeno je tudi, da dodana možnost uporabe globalnih spremenljivk v shemi shranjevanja. Za povezovanje z uporabnikom je bila predlagana nova globalna spremenljivka.

Od ostalih sprememb, ki izstopajo:

  • Uradna odjemalska knjižnica za jezik Rust je bila pripravljena.
  • Stabiliziran je binarni protokol EdgeDB, v katerem je postalo možno obdelovati več različnih sej hkrati znotraj iste omrežne povezave, posredovanje prek HTTP, z uporabo globalnih spremenljivk in lokalnih stanj.
  • Dodana podpora za vrste, ki določajo obsege vrednosti (obseg).
  • Dodana podpora za aktivacijo vtičnice, ki omogoča, da se gonilnik strežnika ne zadrži v pomnilniku in da se ga zažene le, ko poskušate vzpostaviti povezavo (uporabno za varčevanje z viri v razvojnih sistemih).

Končno za tiste, ki jih zanima več o tem, morajo vedeti, da je koda napisana v Pythonu in Rustu in je izdana pod licenco Apache 2.0.

Več o tem lahko izveste na naslednja povezava.


Pustite svoj komentar

Vaš e-naslov ne bo objavljen. Obvezna polja so označena z *

*

*

  1. Za podatke odgovoren: Miguel Ángel Gatón
  2. Namen podatkov: Nadzor neželene pošte, upravljanje komentarjev.
  3. Legitimacija: Vaše soglasje
  4. Sporočanje podatkov: Podatki se ne bodo posredovali tretjim osebam, razen po zakonski obveznosti.
  5. Shranjevanje podatkov: Zbirka podatkov, ki jo gosti Occentus Networks (EU)
  6. Pravice: Kadar koli lahko omejite, obnovite in izbrišete svoje podatke.