EdgeDB, un SGBD de date relaționale grafic

recent a fost anunțată lansarea DBMS-ului «EdgeDB 2.0», care implementează modelul de date relaționale cu graficul relațional și limbajul de interogare EdgeQL, optimizat pentru lucrul cu date ierarhice complexe.

EdgeDB este o bază de date open source concepută ca un succesor spiritual al SQL și al paradigmei relaționale. Scopul său este de a rezolva unele probleme dificile de proiectare care fac bazele de date existente să fie inutil de împovărătoare de utilizat.

Alimentat de motorul de interogări Postgres sub capotă, EdgeDB se gândește la schemă în același mod în care o faci: ca obiecte cu proprietăți conectate prin legături. Este ca o bază de date relațională cu un model de date orientat pe obiecte sau o bază de date grafică cu o schemă strictă. O numim o bază de date relațională de grafice.

Despre EdgeDB

Proiectul este dezvoltat ca un plugin pentru PostgreSQL. Bibliotecile client sunt pregătite pentru limbajele Python, Go, Rust și TypeScript/Javascript.

În loc de un model de date bazat pe tabel, EdgeDB folosește un sistem declarativ bazat pe tipuri de obiecte. În loc de chei străine (cheie străină) pentru a determina relația dintre tipuri se folosește legarea de referință (un obiect poate fi folosit ca proprietate a altui obiect).

Indecșii pot fi utilizați pentru a accelera procesarea interogărilor. De asemenea sunt acceptate funcții precum scrierea puternică a proprietăților, constrângeri de valoare a proprietății, proprietăți calculate și proceduri stocate. Unele dintre caracteristicile schemei de stocare a obiectelor EdgeDB, care amintesc oarecum de ORM, includ capacitatea de a amesteca scheme, de a lega proprietăți ale diferitelor obiecte și suport pentru JSON încorporat.

Sunt furnizate instrumente încorporate pentru migrare schema de stocare: După modificarea schemei specificate într-un fișier esdl separat, trebuie doar să rulați comanda „edgedb migration create” și DBMS va analiza diferențele dintre schemă și va genera un script interactiv. pentru a migra la noua schemă. Istoricul modificărilor schemei este urmărit automat.

Pentru interogare, atât limbajul de interogare GraphQL, cât și ca limbaj propriu EdgeDB, care este o adaptare a SQL pentru date ierarhice. În loc de liste, rezultatele interogării au un format structurat și, în loc de subinterogări și JOIN-uri, o interogare EdgeQL poate fi specificată ca expresie în cadrul unei alte interogări. Tranzacțiile și ciclurile sunt acceptate.

Principalele caracteristici noi ale EdgeDB 2.0

În noua versiune care a fost prezentată, a fost adăugată interfața web integrată pentru administrarea bazei de date permite vizualizarea și editarea datelor, rularea interogărilor EdgeQL și analizați schema de stocare utilizată. Interfața este pornită cu comanda „edgedb ui”, după care este disponibilă accesând localhost.

Expresia „GROUP” a fost implementat pentru a permite partiționarea și agregarea datelor și gruparea datelor folosind expresii EdgeQL arbitrare, similare grupării într-o operație SELECT.

Abilitatea de a controla accesul la nivel de obiect, regulile de acces sunt definite la nivelul schemei de stocare și vă permit să restricționați utilizarea unui anumit set de obiecte în operațiunile de selectare, inserare, ștergere și actualizare. De exemplu, puteți adăuga o regulă care permite doar autorului să actualizeze o postare.

De asemenea, se evidențiază faptul că capacitatea adăugată de a utiliza variabile globale în schema de depozitare. Pentru a se lega de utilizator, a fost propusă o nouă variabilă globală.

Dintre celelalte schimbări care se remarcă:

  • Biblioteca oficială client pentru limba Rust a fost pregătită.
  • Protocolul binar EdgeDB a fost stabilizat, în care a devenit posibilă procesarea mai multor sesiuni diferite simultan în cadrul aceleiași conexiuni de rețea, redirecționând prin HTTP, folosind variabile globale și stări locale.
  • S-a adăugat suport pentru tipurile care definesc intervale de valori (interval).
  • S-a adăugat suport pentru activarea socketului, care permite să nu păstrați driverul de server în memorie și să îl porniți numai atunci când încercați să stabiliți o conexiune (util pentru economisirea resurselor pe sistemele de dezvoltare).

În cele din urmă pentru cei interesați să afle mai multe despre asta, ar trebui să știe că codul este scris în Python și Rust și este lansat sub licența Apache 2.0.

Puteți afla mai multe despre el la următorul link.


Lasă comentariul tău

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

*

*

  1. Responsabil pentru date: Miguel Ángel Gatón
  2. Scopul datelor: Control SPAM, gestionarea comentariilor.
  3. Legitimare: consimțământul dvs.
  4. Comunicarea datelor: datele nu vor fi comunicate terților decât prin obligație legală.
  5. Stocarea datelor: bază de date găzduită de Occentus Networks (UE)
  6. Drepturi: în orice moment vă puteți limita, recupera și șterge informațiile.