Izlazak relacijsko-grafičke baze podataka EdgeDB 2.0

Objavljen je izdanak SUSTAV-a EDGE DB 2.0, koji implementira relacijsko-grafički model podataka i jezik upita EdgeQL, optimiziran za rad s kompleksnim hijerarhijskim podacima. Kod je napisan na jezicima Python i Rust (parser i dijelovi ključni za performanse) i distribuiran je pod licencom Apache 2.0. Projekt se razvija kao nadogradnja na PostgreSQL. Klijentske biblioteke su pripremljene za jezike Python, Go, Rust i TypeScript/Javascript. Osigurana je komandna linija za upravljanje SUSTAV-om i interaktivno izvođenje upita (REPL).

Umjesto modela podataka temeljenog na tablicama, EDGE DB koristi deklarativni sustav temeljen na objektno-orijentiranim tipovima. Umjesto stranih ključeva (foreign key) za definiranje odnosa između tipova koristi se povezivanje referencama (jedan objekt može se koristiti kao svojstvo drugog objekta).

type Person { required property name -> str; } type Movie { required property title -> str; multi link actors -> Person; }

Za ubrzanje obrade upita mogu se koristiti indeksi. Također se podržavaju mogućnosti kao što su stroga tipizacija svojstava, ograničenja vrijednosti svojstava, izračunata svojstva i pohranjene procedure. Od značajki objektne sheme pohrane EDGE DB, koja donekle nalikuje ORM-u, ističe se mogućnost miješanja shema, povezivanja svojstava iz različitih objekata i integrirana podrška za JSON.

Osigurani su ugrađeni alati za migraciju sheme pohrane — nakon promjene sheme, definirane u posebnoj esdl datoteci, dovoljno je izvršiti naredbu 'edgedb migration create' i SUSTAV će analizirati razlike u shemi te u interaktivnom načinu generirati skriptu za prijelaz na novu shemu. Automatski se prati povijest promjene sheme.

Za formiranje upita podržava se i jezik upita GraphQL, kao i vlastiti jezik EDGE DB, koji predstavlja prilagodbu SQL-a za hijerarhijske podatke. Umjesto popisa, rezultati upita prikazuju se u strukturiranom obliku, dok se umjesto podupita i operacija JOIN pruža mogućnost specificiranja jednog EdgeQL upita kao izraza unutar drugog upita. Podržane su transakcije i petlje.

izaberi Film { naslov, glumci: { ime } } filtriraj .naslov = «The Matrix» dodaj Film { naslov := «The Matrix Resurrections», glumci := ( izaberi Osobu filtriraj .ime u { ‘Keanu Reeves’, ‘Carrie-Anne Moss’, ‘Laurence Fishburne’ } ) } za broj u {0, 1, 2, 3} ujedini ( izaberi { broj, broj + 0.5 } );

U novoj verziji:

  • Dodano ugrađeno web sučelje za administraciju Baze podataka, koje omogućuje pregled i uređivanje podataka, izvođenje EdgeQL upita i analizu primjenjive sheme pohrane. Sučelje se pokreće naredbom «edgedb ui», nakon čega je dostupno na localhost.
    Izlazak relacijsko-grafičke baze podataka EdgeDB 2.0
  • Implementirano je izraz «GROUP», koje omogućava sekcioniranje i agregiranje podataka te izvođenje grupiranja podataka prema proizvoljnim izraženjima EdgeQL, analogno grupiranju u operaciji SELECT.
  • Mogućnost upravljanja pristupom na razini objekata. Pravila pristupa definiraju se na razini sheme pohrane i omogućuju ograničavanje korištenja određenog skupa objekata u operacijama odabira, umetanja, brisanja i ažuriranja. Na primjer, može se dodati pravilo koje dopušta ažuriranje objave samo autoru.
  • Dodana mogućnost korištenja globalnih varijabli u shemi pohrane. Za vezanje uz korisnika predložena je nova globalna varijabla current_user.
  • Dodana podrška za tipove koji definiraju opsege vrijednosti (range).
  • Pripremljena službena klijentska biblioteka za jezik Rust.
  • Stabiliziran binaarni protokol EdgeDB, u kojem je dodana mogućnost obrade više različitih sesija unutar jednog mrežnog povezivanja, prosljeđivanja putem HTTP-a, korištenja globalnih varijabli i lokalnih stanja.
  • Dodana podrška za aktivaciju putem socketa, što omogućava da se poslužiteljski obrađivač ne drži u memoriji i da se pokreće samo pri pokušaju uspostavljanja veze (korisno za uštedu resursa na razvojnim sustavima).

Izvor: opennet.ru

Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere 🔥 Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere | ProHoster