EdgeDB : un nouveau système de gestion de base de données relationnel-objet

Partagez sur:

EdgeDB est un nouveau système de gestion de base de données open source dont la première préversion technologique est prévue pour bientôt, d’après ses concepteurs. Ces derniers présentent EdgeDB comme « la base de données relationnelle objet de nouvelle génération ».

Rappelons que dans un système de base de données relationnel-objet (SGBDRO), l’information est représentée sous forme d’objets comme dans la programmation orientée objet. Un SGBDRO rend les objets de la base de données accessibles aux langages orientés-objet comme s’il s’agissait d’objets de ces langages. Il étend les capacités du langage de programmation de façon transparente au niveau de la persistance des données, du contrôle des actions concurrentes, de la récupération de données, des requêtes associatives, etc.

EdgeDB se veut toutefois différent de l’existant. Au lieu du modèle relationnel, il implémente un modèle graphe objet. Dans ce modèle, les données sont décrites et stockées sous la forme d’objets et de relations fortement typés ou de liens entre eux. Les objets et les liens peuvent contenir des propriétés : un ensemble de valeurs scalaires nommées.

D’après ses concepteurs, EdgeDB n’est pas ni une base de données orientée graphe, ni une base de données orientée document, ni une base de données orientée objet traditionnelle. Il dispose d’un langage de requête expressif, EdgeQL, dont l’objectif est de faire d’offrir et surpasser les capacités SQL modernes, telles que les sous-requêtes, l’agrégation avancée et les fonctions de fenêtrage. Entre autres fonctionnalités, il supporte le polymorphisme qui permet la composition des types, les types de données abstraites et les requêtes polymorphes. Il permet aussi la composition des schémas et l’introspection. Enfin, il prend en charge GraphQL qui est un langage de requête pour les API permettant d’exécuter des requêtes côté serveur. EdgeDB est également basé sur PostgreSQL et hérite de toutes ses forces : fiabilité, conformité ACID et performance.

L’exemple ci-dessous montre à quoi ressemble une simple requête dans EdgeQL. La requête retournera une liste de tous les utilisateurs avec le nom « Alice » avec tous les utilisateurs qu’elle suit :

Voici à quoi ressemble une requête SQL comparable :

Source : Blog EdgeDB


Partagez sur: