EdgeDB, DBMS graf relacijskih podataka

Nedavno najavljeno je izdavanje DBMS-a «EdgeDB 2.0», koji implementira relacijski graf relacijski model podataka i EdgeQL jezik upita, optimiziran za rad sa složenim hijerarhijskim podacima.

EdgeDB je baza podataka otvorenog koda dizajnirana kao duhovni nasljednik SQL-a i relacijske paradigme. Njegov cilj je riješiti neke teške probleme dizajna koji postojeće baze podataka čine nepotrebno opterećujućim za korištenje.

Pokrenut pomoću Postgres motora upita ispod haube, EdgeDB razmišlja o šemi na isti način kao i vi: kao objektima sa svojstvima povezanim vezama. To je kao relaciona baza podataka sa objektno orijentisanim modelom podataka ili baza podataka grafova sa strogom šemom. Mi to nazivamo relacionom bazom podataka grafova.

O EdgeDB-u

Projekat se razvija kao dodatak za PostgreSQL. Klijentske biblioteke su pripremljene za jezike Python, Go, Rust i TypeScript/Javascript.

Umjesto modela podataka zasnovanog na tablici, EdgeDB koristi deklarativni sistem zasnovan na tipovima objekata. Umjesto stranih ključeva (stranog ključa) za određivanje odnosa između tipova koristi se referentno vezivanje (objekat se može koristiti kao svojstvo drugog objekta).

Indeksi se mogu koristiti za ubrzanje obrade upita. Također Podržane su funkcije kao što je jako kucanje svojstava, ograničenja vrijednosti svojstva, izračunata svojstva i pohranjene procedure. Neke od karakteristika EdgeDB šeme skladištenja objekata, koje donekle podsjećaju na ORM, uključuju mogućnost miješanja shema, povezivanja svojstava različitih objekata i podršku za ugrađeni JSON.

Obezbeđeni su ugrađeni alati za migraciju shema skladištenja: Nakon promjene šeme specificirane u zasebnoj esdl datoteci, samo pokrenite naredbu “edgedb migration create” i DBMS će analizirati razlike u šemi i generirati skriptu interaktivno. za migriranje na novu shemu. Istorija izmjena šeme se prati automatski.

Za postavljanje upita, i GraphQL jezik upita i jezik kao vlastiti jezik EdgeDB, koji je adaptacija SQL-a za hijerarhijske podatke. Umjesto lista, rezultati upita imaju strukturirani format, a umjesto potupita i JOIN-ova, EdgeQL upit se može specificirati kao izraz unutar drugog upita. Podržane su transakcije i ciklusi.

Glavne nove karakteristike EdgeDB 2.0

U novoj verziji koja je predstavljena, dodat je integrisani web interfejs za administraciju baze podataka omogućava pregled i uređivanje podataka, pokretanje EdgeQL upita i analiziraju korištenu šemu skladištenja. Interfejs se pokreće naredbom "edgedb ui", nakon čega je dostupan pristupom lokalnom hostu.

Izraz "GROUP" je implementirana da omogući particioniranje i agregaciju podataka i grupisanje podataka pomoću proizvoljnih EdgeQL izraza, slično grupisanju u operaciji SELECT.

Mogućnost kontrole pristupa na nivou objekta, pravila pristupa su definisana na nivou šeme skladištenja i omogućavaju vam da ograničite upotrebu određenog skupa objekata u operacijama odabira, umetanja, brisanja i ažuriranja. Na primjer, možete dodati pravilo koje dozvoljava samo autoru da ažurira objavu.

Takođe je istaknuto da dodata mogućnost korištenja globalnih varijabli u šemi skladištenja. Za vezanje za korisnika, predložena je nova globalna varijabla.

Od ostalih promjena koje se ističu:

  • Pripremljena je zvanična klijentska biblioteka za Rust jezik.
  • Stabiliziran je EdgeDB binarni protokol, u kojem je postalo moguće istovremeno obraditi nekoliko različitih sesija unutar iste mrežne veze, prosljeđivanjem preko HTTP-a, koristeći globalne varijable i lokalna stanja.
  • Dodata podrška za tipove koji definiraju raspon vrijednosti (opseg).
  • Dodata podrška za aktivaciju socketa, koja omogućava da se drajver servera ne drži u memoriji i da se pokrene samo kada pokušavate da uspostavite vezu (korisno za uštedu resursa na razvojnim sistemima).

Konačno za one koje zanima više o tome, trebali bi znati da je kod napisan na Python-u i Rust-u i da je objavljen pod licencom Apache 2.0.

Više o tome možete saznati na sljedeći link.


Ostavite komentar

Vaša e-mail adresa neće biti objavljena. Obavezna polja su označena sa *

*

*

  1. Za podatke odgovoran: Miguel Ángel Gatón
  2. Svrha podataka: Kontrola neželjene pošte, upravljanje komentarima.
  3. Legitimacija: Vaš pristanak
  4. Komunikacija podataka: Podaci se neće dostavljati trećim stranama, osim po zakonskoj obavezi.
  5. Pohrana podataka: Baza podataka koju hostuje Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.