UnQL : all your bases are belong to us

Posté par  . Modéré par baud123. Licence CC By‑SA.
31
2
sept.
2011
Base de données

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.

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
sql
CREATE COLLECTION bibliotheque;

insérer des éléments
sql
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.

Aller plus loin

  • # linuxFR: interdit aux -18 ans?

    Posté par  . Évalué à -10.

    Bonjour,
    Je vais peut-être passer pour un vieux con, mais l'article était bien rédigé jusqu'à ce que je lise l'exemple. Est-on obligé de placer une référence sexuelle dedans ?
    Y'a pas que des adultes qui lisent linuxFR, il peut y avoir des jeunes, garçon ou fille, qui peuvent découvrir un univers choquant en recherchant ce terme sur google.

    Sinon il faudra penser à mettre un avertissement à l'entrée du site pour dire que des propos peuvent choquer.

    Vous pouvez moinsser/inutiler mon commentaire si vous le souhaitez.

    • [^] # Re: linuxFR: interdit aux -18 ans?

      Posté par  (site web personnel) . Évalué à 9.

      C'est plus une référence à un film culte. De la même façon que "Yourie nous détestait parce que nous gagnions de l'argent." n'est pas une apologie du libéralisme.

      Enfin bon.

    • [^] # Re: linuxFR: interdit aux -18 ans?

      Posté par  (site web personnel) . Évalué à 10.

      C'est une référence au flim "La classe américaine" donc c'est plus une touche humoristique qu'une référence sexuelle tu ne penses pas ?

    • [^] # Re: linuxFR: interdit aux -18 ans?

      Posté par  . Évalué à 3.

      C'est semble-t-il une référence soit au cultissime film La_Classe_américaine ou au pseudo d'un fan linuxfrien^Wmoule célèbre (à la faute de typo près): dyno partouzeur de droate.

      A mon avis cela peut plutôt amener à linuxfr un probable jeune en mal de sensations et peut être gagner ainsi un nouveau converti à la cause du libre malgré l'absence de vidéo en flash, le ramenant ainsi dans le drouat chemin.
      Ou alors ce dernier fermera tout de suite l'onglet n'ayant même pas le temps d'être choqué n'ayant pas eu le site thématique attendu.

      ->[]

    • [^] # Re: linuxFR: interdit aux -18 ans?

      Posté par  . Évalué à 4.

      Je ne moinsserais pas, mais je déplore amérement le manque de culture des dernières générations de la gente moulesque.

      • [^] # Re: linuxFR: interdit aux -18 ans?

        Posté par  . Évalué à 1.

        J'ai 31 ans et j'ai la classe américaine sur mon disque dur depuis un moment. Mais je ne l'ai pas encore vu.
        Désolé pour mon "manque de culture", mais je note que ça descend sous la ceinture très facilement dans le milieu informatique, sans égaler pourtant la finesse "des grosses têtes". Et parfois ça me gave.

        • [^] # Re: linuxFR: interdit aux -18 ans?

          Posté par  . Évalué à 10.

          je note que ça descend sous la ceinture très facilement dans le milieu informatique

          Va attendre ta copine pendant qu'elle est a son cours de danse, tu apprendras des trucs (non, les femmes ne sont pas de parfaites innocentes. Elles rotent, pètent, disent des gros mots, et parlent de cul de manière franchement très, mais alors très directe).
          Alors les trucs nazes des informaticiens, bof :-)

          • [^] # Re: linuxFR: interdit aux -18 ans?

            Posté par  . Évalué à 1.

            Merci je connais les femmes et je sais tout ça.
            Néanmoins celles que je connais ne s'exprime pas comme des informaticiens ou des routiers. Elles ont plus de classe, sans que celle-ci soit américaine ;)
            Je disais juste cela pour éviter qu'on colle/confirme un n-ième cliché sur les informaticiens/geeks.
            Bon je vais arrêter là, je m'abstiendrai la prochaine fois. Désolé pour le bruit.

            • [^] # Re: linuxFR: interdit aux -18 ans?

              Posté par  . Évalué à 3.

              Néanmoins celles que je connais ne s'exprime pas comme des informaticiens ou des routiers.

              le vieux cliché de merde \o/

              c'est juste que t'es pas au milieu quand elles le font. et elles ne le feront jamais si un homme est au milieu : elles ne sont plus entre elles

              Je disais juste cela pour éviter qu'on colle/confirme un n-ième cliché sur les informaticiens/geeks.

              et poum, une deuxième couche

              tu as les mêmes clichés avec des sportifs, des camioneurs, des collègues de bureau, des beaufs quoi, enfin bref tout groupement de mecs habitués à être entre eux sans gonzesse au milieu

              par rapport au cas précédent, ils n'hésiteront à chambrer la demoiselle qui se pointerait dans le groupe, comme ils chambreraient tout nouveau membre de la bande

              Bon je vais arrêter là, je m'abstiendrai la prochaine fois. Désolé pour le bruit.

              autant on peut demander de faire des efforts pour se consacrer au sujet de la réunion de tout ces gens (le boulot pour des collègues, l'informatique pour un LUG) si une demoiselle débarque, autant les informaticiens n'ont rien de particulier et c'est bien toi ici qui leur colle des clichés moisis

              • [^] # Re: linuxFR: interdit aux -18 ans?

                Posté par  . Évalué à -1.

                Je n'ai pas de cliché envers qui que ce soit, et je n'aime pas qu'on en mette. Je dis juste que les allusions sous la ceinture encouragent les clichés.
                Je suis aussi dans l'informatique, donc les clichés, je les vis aussi.
                J'ai l'impression que tous mes propos sont mal compris, ça ne doit pas être ma journée.

                • [^] # Re: linuxFR: interdit aux -18 ans?

                  Posté par  (site web personnel) . Évalué à -1.

                  Je dis juste que les allusions sous la ceinture encouragent les clichés.

                  Ok. Mais comme dit plus haut, il s'agit là d'une référence cinématographique et non d'une référence sexuelle.
                  Regarde la Classe Américaine, marre-toi un bon coup et reviens en causer avec nous ! :D

                  There is no spoon...

                  • [^] # Re: linuxFR: interdit aux -18 ans?

                    Posté par  . Évalué à 3.

                    Ou alors, il peut aussi se mettre au vélo. Parce que j'ai été déçu dès les premières images de cyclimse...

                    bon, j'ai enfin regardé "La Classe Américaine" et MERCI SAM HOCEVAR! Sans toi, aucune chance que je jette un œil au boulguiboulga de la version Betacam de ce flim.

                    ⚓ À g'Auch TOUTE! http://afdgauch.online.fr

            • [^] # Re: linuxFR: interdit aux -18 ans?

              Posté par  (site web personnel) . Évalué à 0.

              Il répond à un cliché par un cliché. On ne peut pas lui en vouloir.

          • [^] # Re: linuxFR: interdit aux -18 ans?

            Posté par  . Évalué à 3.

            Il m'arrive souvent d'attendre que ma copine finisse son cours de danse, et je ne confirme pas tes propos. Perso, je ne trouve pas non plus le choix de l'exemple de la dépêche particulièrement fin, pertinent ou même drôle.
            J'ai cessé d'aller dans les soirées entre informaticiens parce-que j'étais fatigué d'entendre toujours les mêmes blagues et les mêmes références grasses tourner en boucle. Contrairement à ce qui est dit plus bas sur les sportifs, quand je vais à des soirées avec mon club de sport, ça ne se passe pas de la même façon.
            Quand je dis que je suis informaticien, je sens que je suis étiqueté « lourd », et c'est franchement pénible. Quand ma copine ou des amis extérieurs se trouvent dans mon groupe d'informaticiens, ça ne change rien au niveau des vannes. À défaut de pouvoir connaître le niveau en mon absence, je peux au moins dire que quand je me trouve dans le groupe de mes amis ou avec les amies de ma copine, je suis épargné.
            Donc non, vraiment, ce n'est pas mon expérience :)

    • [^] # Re: linuxFR: interdit aux -18 ans?

      Posté par  . Évalué à 4.

      En plus moi j'ai lu UnQLé!

      Alors je n'ai pas été choqué de voir ensuite:

      INSERT INTO bibliotheque VALUE {titre: "martine chez les dinos partouzeurs de droate", nombre: 4}
      
      
    • [^] # Re: linuxFR: interdit aux -18 ans?

      Posté par  . Évalué à 3.

      Moi ce qui me choque plus, c'est la faute dans le mot "droate".

      Les jeunes n'ont plus de valeurs !

  • # Code de triche !

    Posté par  . Évalué à -7.

    "All your base belong to us" est un code de triche d'un vieux jeux de stratégie des années 2000, GeneralZod c'en est inspiré ? Telle est la question. ^^

    • [^] # Re: Code de triche !

      Posté par  . Évalué à 9. Dernière modification le 03 septembre 2011 à 00:19.

      Où alors, il s'est inspiré de ce qui avait inspiré les créateurs de ce jeu All_your_base_are_belong_to_us

      « Rappelez-vous toujours que si la Gestapo avait les moyens de vous faire parler, les politiciens ont, eux, les moyens de vous faire taire. » Coluche

    • [^] # Re: Code de triche !

      Posté par  (site web personnel, Mastodon) . Évalué à 1.

      Je garde pas une copie de Zero Wing sur mon étagère pour la qualité du jeu...
      (D'ailleurs y'a une faute dans le titre, y'a pas de s à la fin de base)

  • # Surprenant

    Posté par  . Évalué à 4.

    Je vais peut-être passer pour un vieux croûton, mais est-ce que ce langage n'est pas contradictoire avec les principes des bases NoSQL? Je n'en ai pas beaucoup utilisé, mais il me semblait que le but était justement de s'émanciper des langages de requête et d'une part de gagner en performance (pas d’interprétation) et d'autre part de simplifier les requêtes et le code.

    Je vois bien l'intérêt de ce nouveau langage au niveau de l'abstraction des bases de données (on pourra sans doute passer de CouchDB à Unqlite sans changer le code), mais est-ce qu'une bibliothèque d'abstraction de base de données n'aurait pas accomplie la même chose tout en gardant une interface de plus bas niveau?

    La démarche accomplie ici est surprenante et ironique car cela réplique exactement la situation telle qu'elle était avant l'introduction du langage SQL, comme quoi l'histoire est bien un éternel recommencement.

    • [^] # Re: Surprenant

      Posté par  . Évalué à 2.

      il me semblait que le but était justement de s'émanciper des langages de requête et d'une part de gagner en performance (pas d’interprétation) et d'autre part de simplifier les requêtes et le code.

      Historiquement, le terme NoSQL désignait les bases relationnelles qui effectivement cherchaient à s'émanciper du langage SQL. Le terme a été réintroduit pour désigner des bases non-relationnelles (orienté documents, graphes, clés/valeurs etc ...) et pour lesquelles, le langage SQL était inadapté. Ce que le mouvement NoSQL met en avant, c'est la fin des schémas fixes (et des join coûteux), la mise à l'échelle horizontale (la plupart gére nativement la réplication et fonctionnent en mode distribué).
      T'as même des bases "NoSQL" comme Berkeley DB qui offre une interface SQL. UnQL cherche à fournir une interface commune aux bases NoSQL (voire SQL) pour faciliter les migrations, se libérer de l'enfermement propriétaire et en offrant une interface certes familière mais adapté aux besoins actuels.

    • [^] # Septique

      Posté par  . Évalué à 2.

      On va donc se retrouver à nouveau avec du code imbriqué non compilé dans les applications et des moteurs de parsing dans les bases de données. Pourquoi pas des frameworks O(NoSQL)M - pour remplacer les ORM.
      Je suis assez septique sur la création d'un DSL unifié pour les bases de données NoSQL.
      Car autant le SQL est adapté à un modèle, le relationnel mais les bases NoSQL n'ont pas toutes le même paradigme.

  • # all your bases are belong to us ?

    Posté par  (site web personnel) . Évalué à 1.

    Je ne comprends pas le sous-titre "all your bases are belong to us"... D'ailleurs pourrait-on l'avoir en français ? Je comprends ça comme "toutes vos bases nous appartiennent" mais je peux me tromper. Et du coup je ne vois pas le rapport entre ce sous-titre et le contenu de l'article ; en lisant le sous-titre je m'attendais à quelque chose comme une base de donnée avec une licence exotique imposant la redistribution des bases réalisées avec celle-ci...

    Bref pas clair !

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.