Liste de partage de Grorico
Un nouveau...
Le mois dernier, Richard Hipp et Damien Katz (respectivement, les créateurs de SQLite et CouchDB) ont annoncé la création d'un groupe de travail ouvert autour d'un nouveau langage de requêtes pour les bases de données NoSQL : UnQL (Unstructured Query Language). L'objectif étant de libérer les bases de données orientés documents des interfaces spécifiques et éviter la dépendance envers un fournisseur.
- lien n°1 : news LWN
- lien n°2 : Interview du Dr Richard Hipp, co-créateur d'UnQL
- lien n°3 : spécifications UnQL
- lien n°4 : Article sur coSQL
UnQL s'appuie sur l'expérience acquise à travers SQL, on retrouve les mêmes verbes (SELECT, UPDATE, INSERT, DELETE) mais la différence se situe dans le fait que l'on travaille sur des collections d'objets sans schémas prédéfini et non plus des tables. D'où le Unstructured Query Language. Le format de données interne est JSON, mais UnQL n'impose aucun format de stockage des données au niveau de la base. Le choix d'une syntaxe SQL-like est possible du fait que UnQL est capable d'inférer le type des jeux de données retournés et ne dépends absolument pas de la présence d'un schéma défini.
UnQL a été conçu comme un surensemble de SQL et il serait possible de proposer une API UnQL par-dessus une base de données relationnelle classique (ou comme les décrit Dr Hipp "périmées"). Cela rejoint la conclusion de deux chercheurs Microsoft, Erik Meijer et Gavin Bierman, qui après avoir analysé les principales bases de données NoSQL sont arrivés à la conclusion qu'il est possible d'unifier le modèle NoSQL avec le modèle SQL : coSQL. D'après Meijer et Bierman, on peut décrire les deux modèles de données à l'aide d'une seule théorie mathématique et donc parvenir à arriver à un langage de requêtes unique entre les diverses familles de bases de données NoSQL et SQL. UnQL est donc la première réalisation pratique de la théorie publiée par Meijer et Bierman (contrairement à une idée reçue, cosql n'est pas un langage de requêtes mais une théorie - qui reste à développer - au stade de l'article scientifique).
Le groupe de travail fournit également un prototype afin de pouvoir tester le langage. Celui-ci s'appuie sur une base SQLite pour le stockage des données et fournit un shell interactif pour pouvoir exécuter des requêtes UNQL.
Quelques exemples de requêtes :
créer une collection
CREATE COLLECTION bibliotheque;
insérer des éléments
INSERT INTO bibliotheque VALUE "martine va à la plage";
INSERT INTO bibliotheque VALUE {titre: "martine chez les dinos partouzeurs de droate", nombre: 4}
Dans un avenir proche, Damien Katz compte implémenter UnQL au dessus de CouchDB. Quant au Dr Richard Hipp, il envisage carrément d'écrire un Unqlite avec un nouveau format de stockage.
La documentation d'UnQL reste assez succinte.
Urban Angel [....travelling] a posté une photo :
...at Manggarai train station, Jakarta, Indonesia...
Urban Angel [....travelling] a posté une photo :
...spotted this while meandering the back streets of Kalimati, Nepal...