Il database EdgeDB è stato ribattezzato Gel. Rilascio di Gel 6.0

Gli sviluppatori del DBMS EdgeDB hanno annunciato la rinominazione del progetto in Gel. Contemporaneamente è stato rilasciato un nuovo aggiornamento significativo: Gel 6.0. Come motivo per il cambiamento del nome viene menzionato il desiderio di liberarsi di connotazioni potenzialmente fuorvianti legate all'uso della parola "edge", che fa sì che molti percepiscano il progetto come un DBMS per il calcolo edge o come un DBMS orientato ai grafi. La rinominazione ha riguardato solo gli elementi del marchio. La struttura del progetto, gli obiettivi e il team sono rimasti invariati. Gli strumenti e le librerie nella nuova versione sono stati rinominati, ma per garantire la retrocompatibilità è stata mantenuta la possibilità di utilizzare i vecchi nomi tramite collegamenti simbolici e wrapper.

Il progetto si sviluppa come un'estensione di PostgreSQL, implementando un modello relazionale-grafico dei dati e un linguaggio di query EdgeQL, ottimizzato per lavorare con dati complessi e gerarchici. Il codice è scritto in Python e Rust (parser e parti critiche per le prestazioni) ed è distribuito con licenza Apache 2.0. Le librerie client sono disponibili per i linguaggi Python, Go, Rust, .NET, Elixir e TypeScript/Javascript. È fornito un tool da riga di comando per gestire il DBMS e per l'esecuzione interattiva delle query (REPL).

In Gel invece del modello dati basato su tabelle si utilizza un sistema dichiarativo basato su tipi di oggetti. Invece delle chiavi esterne (foreign key) per definire la relazione tra i tipi si utilizza il collegamento tramite riferimenti (un oggetto può essere utilizzato come proprietà di un altro oggetto).

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

Sono supportate funzionalità come la tipizzazione rigorosa delle proprietà, vincoli sui valori delle proprietà, proprietà calcolate e procedure memorizzate. Tra le caratteristiche del modello a oggetti di memorizzazione Gel, che ricorda in qualche modo un ORM, si segnala la possibilità di mescolare schemi, vincolare proprietà di diversi oggetti e il supporto integrato per JSON. Per accelerare l'elaborazione delle query è possibile utilizzare indici.

Sono forniti strumenti integrati per la migrazione dello schema di memorizzazione: dopo la modifica dello schema, specificata in un file esdl separato, è sufficiente eseguire il comando "gel migration create" e il DBMS analizzerà le differenze nello schema e genererà in modalità interattiva uno script per passare al nuovo schema. La cronologia delle modifiche allo schema viene tracciata automaticamente.

Per la formazione di query, è supportato il linguaggio di query GraphQL e il proprio linguaggio EdgeQL, che rappresenta un'adattamento di SQL per dati gerarchici. Invece di elenchi, i risultati delle query sono presentati in forma strutturata, e invece di sottoquery e operazioni JOIN è possibile indicare una query EdgeQL come espressione all'interno di un'altra query. Sono supportate transazioni e cicli.

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’ } ) }

Modifiche principali in Gel 6.0:

  • È stata aggiunta la possibilità di utilizzare query SQL tradizionali quando ci si collega a un DBMS tramite il protocollo Gel o in modalità protocollo PostgreSQL. Si prevede che il supporto SQL semplifichi la migrazione su Gel dei progetti esistenti, che ora possono essere gradualmente convertiti da SQL, continuando a utilizzare i vecchi client SQL e SQL ORM. I progetti che utilizzano inizialmente EdgeQL potranno sfruttare ulteriori funzionalità disponibili in SQL, ma finora non implementate in EdgeQL, come funzioni di finestra, query ricorsive e blocchi espliciti.
  • È stata aggiunta la supporto per l'aggiornamento in loco, che non richiede la creazione e il ripristino del dump del database durante il passaggio a una nuova versione significativa. Durante l'aggiornamento da EdgeDB 5.x a Gil 6.0 è necessario utilizzare il vecchio metodo, ma durante il passaggio da Gil 6.x a 7.0 non sarà necessario ripristinare il dump.
  • È stato garantito il salvataggio delle statistiche sulle prestazioni delle query, disponibili tramite gli oggetti sys::QueryStats.
  • È stata aggiunta la supporto per l'estensione PostgreSQL PostGIS per la memorizzazione di dati spaziali utilizzati nei sistemi informativi geografici.
  • È stata aggiunta la libreria std::net per l'invio di richieste di rete (supportato HTTP) in modalità asincrona.
  • In aggiunta a ext::auth, è stata aggiunta la supporto per la configurazione dei provider OpenID Connect.
  • Nel complemento ext::ai è stata aggiornata la lista dei modelli linguistici avanzati supportati da OpenAI, Anthropic e Mistral.
  • È stata fornita la possibilità di collegare gestori aggiuntivi per i comandi nell'utilità gel.
  • In EdgeQL è stata semplificata la semantica per la ricerca di percorsi tra i nodi del grafo.
  • Nel file gel.toml è stata aggiunta l'impostazione «[[watch]]», che consente di eseguire script quando vengono modificati determinati file.
  • In ORM Drizzle è stata implementata la supporto per Gel.

Fonte: opennet.ru

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster