Première version stable de la base de données relationnelle et graphique EdgeDB

La première version stable du SGBD EdgeDB est maintenant disponible. Il s'agit d'une surcouche à PostgreSQL, intégrant un modèle de données relationnel et graphique ainsi qu'un langage de requêtes EdgeQL, optimisé pour la gestion de données hiérarchiques complexes. Le code est développé en Python et Rust et est distribué sous la licence Apache 2.0. Les bibliothèques clientes sont disponibles pour les langages Python, Go, Rust et TypeScript/Javascript. Un outil en ligne de commande est fourni pour la gestion du SGBD et l'exécution interactive des requêtes (REPL).

EdgeDB utilise un système déclaratif basé sur des types d'objets plutôt qu'un modèle de données basé sur des tables. Au lieu de clés étrangères (foreign key) pour définir les relations entre les types, le système utilise des liens (un objet peut servir de propriété à un autre objet). type Person { required property name -> str; } type Movie { required property title -> str; multi link actors -> Person; }

Pour accélérer le traitement des requêtes, des index peuvent être utilisés. Des fonctionnalités telles que la typage strict des propriétés, les contraintes de valeurs des propriétés, les propriétés calculées et les procédures stockées sont également supportées. Parmi les caractéristiques du schéma de stockage orienté objet d'EdgeDB, qui rappelle quelque peu les ORM, on note la possibilité de mélanger les schémas, de lier des propriétés provenant de différents objets et le support intégré de JSON.

Des outils intégrés pour la migration du schéma de stockage sont fournis — après modification du schéma, spécifié dans un fichier esdl séparé, il suffit d'exécuter la commande « edgedb migration create » et la base de données analysera les différences de schéma et générera de manière interactive un script pour passer au nouveau schéma. L'historique des modifications de schéma est automatiquement suivi.

Pour la formulation des requêtes, EdgeDB supporte à la fois le langage de requêtes GraphQL et son propre langage EdgeDB, qui est une adaptation de SQL pour les données hiérarchiques. Au lieu de listes, les résultats des requêtes sont présentés de manière structurée, et au lieu de sous-requêtes et d'opérations JOIN, il est possible d’utiliser une requête EdgeQL comme expression dans une autre requête. Les transactions et les boucles sont supportées. 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’ } ) } for number in {0, 1, 2, 3} union ( select { number, number + 0.5 } );

Source : opennet.ru

Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster