Sistemul de gestionare a bazelor de date EdgeDB a fost redenumit Gel. Lansarea Gel 6.0

Dezvoltatorii bazei de date EdgeDB au anunțat redenumirea proiectului în Gel. În același timp, a fost lansată o nouă versiune semnificativă — Gel 6.0. Motivele schimbării numelui includ dorința de a elimina conotațiile înșelătoare generate de utilizarea cuvântului „edge”, care îi determină pe mulți să perceapă proiectul ca o bază de date pentru calcule edge sau ca o bază de date orientată pe grafuri. Redenumirea a afectat doar elementele de branding. Structura proiectului, obiectivele și echipa au rămas aceleași. Utilitarele și bibliotecile din noua versiune au fost redenumite, dar pentru a asigura compatibilitatea inversă, a fost păstrată posibilitatea de a utiliza vechile denumiri prin legături simbolice și învelișuri.

Proiectul se dezvoltă sub formă de extensie a PostgreSQL, implementând un model relațional-grafic de date și un limbaj de interogare EdgeQL, optimizat pentru lucrul cu date complexe și ierarhice. Codul este scris în limbajele Python și Rust (parser și părțile critice pentru performanță) și este distribuit sub licență Apache 2.0. Bibliotecile client sunt pregătite pentru limbajele Python, Go, Rust, .NET, Elixir și TypeScript/Javascript. Se oferă un instrument de linie de comandă pentru gestionarea bazei de date și execuția interactivă a interogărilor (REPL).

În loc de un model de date bazat pe tabele, Gel utilizează un sistem declarativ bazat pe tipuri de obiecte. În loc de chei externe (foreign key) pentru a defini legătura între tipuri, se utilizează legătura prin referințe (un obiect poate fi folosit ca proprietate a altui obiect).

type Person { required name: str; } type Movie { required title: str; multi actors: Person; }

Se suportă funcționalități precum tipizarea strictă a proprietăților, restricții asupra valorilor proprietăților, proprietăți calculate și proceduri stocate. Dintre caracteristicile schemei de stocare a obiectelor Gel, care amintește de ORM, se remarcă posibilitatea amestecării schemelor, legarea proprietăților din obiecte diferite și suportul integrat pentru JSON. Indicele poate fi utilizat pentru a accelera procesarea interogărilor.

Se oferă instrumente încorporate pentru migrarea schemei de stocare — după modificarea schemei stipulate într-un fișier esdl separat, este suficient să execuți comanda „gel migration create”, iar baza de date va analiza diferențele de schemă și va genera interactiv un script pentru trecerea la noua schemă. Istoricul modificărilor schemei este urmărit automat.

Pentru formularea cererilor se suportă limbajul de cereri GraphQL și propriul limbaj EdgeQL, care reprezintă o adaptare SQL pentru date ierarhice. În loc de liste, rezultatele cererii sunt prezentate într-o formă structurată, iar în loc de subcereri și operațiuni JOIN, se oferă posibilitatea de a specifica o cerere EdgeQL ca expresie în cadrul alteia. Se suportă tranzacții și bucle.

select Movie { title, actors: { name } } filter .title = «The Matrix» insert Movie { title := «The Matrix Resurrections», actors := ( select Person filter .name in { ‘Keanu Reeves’, ‘Carrie-Anne Moss’, ‘Laurence Fishburne’ } ) }

Principalele modificări în Gel 6.0:

  • A fost adăugată posibilitatea utilizării cererilor SQL tradiționale atunci când se conectează la SGBD prin protocolul Gel sau în modul protocol PostgreSQL. Se presupune că suportul SQL va simplifica migrarea proiectelor existente la Gel, care acum pot fi transferite treptat de la SQL, continuând să utilizeze clienți SQL vechi și ORM SQL. Proiectele care folosesc inițial EdgeQL vor putea utiliza funcționalitățile suplimentare disponibile în SQL, dar care nu sunt încă implementate în EdgeQL, cum ar fi funcțiile de fereastră, cererile recursive și blocările explicite.
  • A fost adăugată suport pentru actualizări in situ, fără a necesita crearea și reîncărcarea unui dump de bază de date la trecerea la o nouă versiune semnificativă. La actualizarea de la EdgeDB 5.x la Gil 6.0, trebuie să folosiți metoda veche, dar la trecerea de la Gil 6.x la 7.0, reîncărcarea dump-ului nu va fi necesară.
  • Se asigură păstrarea statisticilor despre performanța cererilor, care sunt disponibile prin obiectele sys::QueryStats.
  • A fost adăugată suport pentru extensia PostgreSQL PostGIS pentru stocarea datelor spatiale, utilizate în sistemele informaționale geografice.
  • A fost adăugată biblioteca std::net pentru trimiterea cererilor de rețea (se suportă HTTP) în mod asincron.
  • În plus, ext::auth a fost adăugată suportul pentru configurarea providerilor OpenID Connect.
  • În ext::ai a fost actualizată lista modelelor mari de limbaj suportate de OpenAI, Anthropic și Mistral.
  • A fost oferită posibilitatea de a conecta handleri suplimentari pentru comenzi în utilitarul gel.
  • În EdgeQL a fost simplificată semantică pentru găsirea căilor între nodurile grafului.
  • În gel.toml a fost adăugată configurația „[[watch]]”, care permite executarea scripturilor la modificarea fișierelor specificate.
  • În ORM Drizzle a fost implementat suport pentru Gel.

Sursa: opennet.ro

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster