La croissance exponentielle du volume de données généré par les utilisateurs d’Internet et l’utilisation de grands systèmes distribués, tels que Amazon, Google et d'autres services du cloud, ont soulevé quelques limites des bases de données relationnelles. Il y a également la complexité et l'interdépendance croissantes des données, accélérées par l'IdO, les réseaux sociaux, les accès ouverts et standardisés à des sources de données d'un grand nombre de systèmes. Les bases de données NoSQL viennent répondre à des aspects spécifiques de ces problèmes.
Les bases de données orientées graphes gagnent en popularité parmi les bases de données NoSQL. Ils vous permettent de stocker les données sous forme d'entités (de nœuds) et de liens (des arêtes), et vous permettent d'interroger les données sous forme de graphes. Les requêtes écrites dans les bases de données orientées graphes sont plus proches de la façon dont les données sont modélisées que dans les autres langages de requête. Cette manière de faire offre des avantages incontournables dans les recherches en profondeur et dans d’autres aspects.
Par exemple, un grand avantage des requêtes écrites dans les bases est qu'elles éliminent le besoin de joindre plusieurs tables pour trouver les relations entre vos points de données, car les relations sont intégrées dans les données elles-mêmes. Ainsi, les bases de données orientées graphes sont bien adaptées pour les recherches en profondeur dans les arbres de données, tandis que les bases de données relationnelles ou celles orientées document provoquent une « explosion combinatoire » due aux nombreuses « jointures » nécessaires pour obtenir le même résultat.
Cependant, il n’existe toujours pas un langage standard pour écrire les requêtes avec ce type de base de données. Pour résoudre ce problème, une initiative a été lancée en mai 2018 visant à mettre en place un langage standard pour l’écriture des requêtes dans les bases de données orientées graphes. Neo4j, un fournisseur de bases de données orientées graphes, a annoncé ce mardi que les comités internationaux qui développent le standard SQL ont voté en faveur de la création de GQL (Graph Query Language) comme nouveau langage de requête pour ce type de base de données.
Avant cela, il existait un nombre important de langages de requête pour interagir avec les bases de données orientées graphes. Voici quelques exemples des langages de requête de base de données orientée graphes les plus populaires :
- Cypher : c’est un langage de requête déclaratif très populaire qui a été inventé par Neo4j. Sa popularité provient de sa ressemblance avec SQL. Les personnes ayant une expérience du SQL se sentiront comme à la maison. Neo4j participe à présent aux activités de mise en place du nouveau standard GQL ;
- SPARQL : c’est un langage de requête déclaratif de type SQL créé par le W3C pour interagir avec les bases de données orientées graphes ;
- GraphQL : créé par Facebook, c’est un langage de requête pour les API qui n'est pas spécifique aux bases de données graphiques. Les utilisateurs définissent la structure des données dont ils ont besoin et obtiennent exactement ce qu'ils ont demandé. Les requêtes GraphQL sont organisées en types et en champs, et non en points de terminaison. En modifiant l'objet de requête, vous pouvez déterminer ce qui est renvoyé par le serveur ;
- Gremlin : il a été créé en 2009 et est le langage de requête pour Apache TinkerPop. C'est un DSL (Domain Specific Language) de parcours de graphe qui peut être déclaratif ou impératif. Il peut être utilisé pour les bases de données orientées graphes OLTP et OLAP. Gremlin est basé sur Groovy, mais possède de nombreuses variantes permettant aux développeurs d’écrire des requêtes Gremlin de manière native dans de nombreux langages de programmation modernes tels que Java, JavaScript, Python, Scala, Clojure et Groovy.
Cela dit, le GQL compte être désormais le standard de la communauté des bases de données orientées graphes, pour écrire des requêtes. Selon Neo4j, GQL reflète la croissance rapide du marché des bases de données orientées graphes, démontrée par l'adoption croissante du langage Cypher. D’après l’entreprise, Cypher a, jusque là, montré son potentiel et a alimenté la demande pour un langage unique et standard pour jouer le rôle de SQL pour les bases de données orientées graphes.
Outre Neo4j, de nombreuses autres entreprises participent déjà aux activités liées à GQL, notamment Redis Labs, SAP et IBM. Des experts nationaux de la Chine et de la Corée rejoignent les participants existants centrés sur l' Europe et les États-Unis. Les auteurs du projet GQL pensent qu’une norme internationale permettrait d'accélérer l'ensemble du marché des bases de données orientées graphes, au bénéfice mutuel de tous les fournisseurs et, plus important encore, de tous les utilisateurs. Selon eux, le fait que chaque fournisseur propose son langage n’aide personne.
« Nous sommes parvenus à un équilibre en lançant GQL, le langage de requête de base de données du futur, tout en préservant la valeur et l'ubiquité du SQL. Notre comité a été encouragé de voir une forte participation de la communauté internationale à l'inauguration du projet GQL. Un tel soutien est la marque d'une norme émergente », a déclaré Keith Hare, qui est actif dans le processus des normes SQL depuis 1988 et qui préside le comité international des normes SQL pour les langages de base de données depuis 2005.
SQL et les bases de données relationnelles sont l’un des fondements essentiels des technologies de l’information. SQL est aussi le langage dominant pour l'accès aux données relationnelles. Le projet GQL lancera le développement de la prochaine génération de normes technologiques pour l'accès aux données, optimisées pour le monde actuel des données connectées. Sa charte s'appuie sur les fondements de base déjà établis par SQL et sur une collaboration continue pour assurer la compatibilité et l'interopérabilité SQL et GQL.
L'initiative pour GQL a été annoncée pour la première fois dans le Manifeste de GQL en mai 2018. Un an plus tard, le projet a été examiné lors d'une rencontre internationale en juin. Neo4j a annoncé ce mardi que dix pays, dont les États-Unis, l'Allemagne, le Royaume-Uni, la Corée et la Chine, ont maintenant voté en faveur du projet GQL, et sept autres pays ont promis la participation active de leurs experts nationaux. Le standard pourrait voir le jour bientôt. Le langage SQL sera-t-il mené lorsque GQL deviendra un standard international ?
Pour le moment, les promoteurs de GQL pensent simplement que GQL deviendra un standard international aux côtés du SQL. Par ailleurs, des milliers d'applications utilisent déjà le modèle de données orienté graphes, riche et intuitif. Sa capacité à exprimer, trouver et extraire des relations et des modèles complexes, enregistrer des transactions et à effectuer des analyses, continue de prouver sa valeur chaque jour, dans de nombreux domaines comme les affaires et les sciences. Et l'adoption s'accélère.
Sources : Neoj4, Manifeste du projet GQL
Et vous ?
Quel est votre avis sur le sujet ?
Voir aussi
Google lance Cloud Firestore, une base de données de documents NoSQL sans serveur. Serait-elle meilleure que Firebase ?
Une nouvelle étude montre la montée en puissance du NoSQL, avec de plus en plus d'entreprises qui se tournent vers le cloud public
Du NoSQL en PHP : c’est possible et c’est (relativement) facile
SQL Vs NoSQL, quel est votre préféré ? Participez au sondage et au débat puis donnez-nous vos avis
GraphQL, le langage de requête de Facebook se dote de sa propre fondation open source qui sera elle-même hébergée par la Linux Foundation