EdgeDB : un nouveau système de gestion de base de données relationnel-objet open source
Bientôt disponible en préversion technologique

Le , par Ludovic Barry, Chroniqueur Actualités
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 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

Et vous ?

Qu'en pensez-vous ?


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse

Avatar de Matthieu76 Matthieu76 - Membre averti https://www.developpez.com
le 18/04/2018 à 11:54
Je ne n'y connais pas trop mais ça à l'air quand même 100 fois mieux que le SQL.
Avatar de pachot pachot - Expert confirmé https://www.developpez.com
le 18/04/2018 à 12:55
Semble mieux pour naviguer user -> followee
Mais une base relationnelle permet d’interroger les mêmes données en suivant différents axes de navigation. C’est la raison pour laquelle elles ont remplacé les bases hiérarchiques (ou équivalent, comme les bases relationnelles object qui semblaient être le futur il y a 20 ans).
Avatar de Shepard Shepard - Membre éprouvé https://www.developpez.com
le 18/04/2018 à 12:57
Je pense que l'idée est bonne, en tout cas pas mauvaise.

J'ai toutefois quelques interrogations. Tout d'abord, "EdgeDB est également basé sur PostgreSQL et hérite de toutes ses forces". L'une des forces de PostgreSQL c'est son respect du standard SQL, qui fait qu'une requête développée pour MS SQL Server (par exemple) ne demandera que peu d'ajustements. La syntaxe PostgreSQL est-elle donc supportée en entier ? (Pour tous les tuples qui n'utilisent pas la fonctionnalité "objet", ça a du sens).

Ensuite, on parle de relationnel-objet (pas de relationnel-structure). Selon Wikipedia, "un objet est un conteneur symbolique et autonome qui contient des informations et des mécanismes". On parle dans la news des informations, mais pas des mécanismes (autrement dit les méthodes). Je suis curieux de voir les possibilités à ce niveau, en admettant qu'il y en ait bien.

Pour finir, ce modèle a-t-il été implémenté avec des use-case concrets à l'esprit ?

Il faudra vraiment que je me renseigne en tout cas, si ce n'est pas encore prometteur selon moi, ça éveille au moins l'intérêt !

Merci pour la news !
Avatar de abriotde abriotde - Membre éprouvé https://www.developpez.com
le 18/04/2018 à 13:38
Même si
Ca a l'air 100 fois mieux que du SQL
ça a l'air inutile. Je me trompe peut-être mais je ne vois pas d'intérêt autre "qu'esthétique".
Avatar de Matthieu76 Matthieu76 - Membre averti https://www.developpez.com
le 18/04/2018 à 14:16
Citation Envoyé par abriotde Voir le message
Je me trompe peut-être mais je ne vois pas d'intérêt autre "qu'esthétique".
Dans l'un de mes projet en C++ je dois sauvegarder des objects contenant des listes de listes d'objets de différentes classes avec de l'héritage multiple et des variables static et tout le tralala et bin à sauvegarder en SQL c'est juste l'horreur !!! Du coup j'ai fini par sérialiser mes objets et les sauvegarder dans des fichiers textes. Dans ce cas, cette techno pourrait faire gagner beaucoup de temps.

Mais sinon je vois pas trop la différence avec le NoSQL, ce n'est pas le but du NoSQL de sauvegarder des objets ? (je ne connais pas très bien ce langage)
Avatar de Le gris Le gris - Membre habitué https://www.developpez.com
le 18/04/2018 à 14:47
ça semble prometteur en tout cas! Wait and See!
Avatar de SQLpro SQLpro - Rédacteur https://www.developpez.com
le 19/04/2018 à 15:22
La raison de la disparition des SGBD "Objet" est lié à l'impossibilité de trouver une méthode générique d'indexation. Inventé dans les années 80 ou le paradigme objet était à la mode, il y en a eut de nombreux : Versant, Gemstone, O², caché, ObjectStore... et j'en passe; On avait même inventé un nouveau langage d'interrogation : OQL.

Tous ont disparus du fait de performances catastrophiques en lecture et donc de blocages sans nom du point de vu des mises à jour....

Le sujet n'abordant aucune informations sur l'indexation, je serais curieux es performances et des aspects transactionnels !

A +
Avatar de bilbot bilbot - Membre averti https://www.developpez.com
le 20/04/2018 à 10:11
Il ne te reste plus qu'à faire un bench pour le démolir
Contacter le responsable de la rubrique Accueil