IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

NoSQL Discussion :

Les développeurs de CouchDB et SQLite créent UnQL


Sujet :

NoSQL

  1. #1
    Responsable .NET

    Avatar de Hinault Romaric
    Homme Profil pro
    Consultant
    Inscrit en
    Janvier 2007
    Messages
    4 570
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Consultant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2007
    Messages : 4 570
    Points : 252 372
    Points
    252 372
    Billets dans le blog
    121
    Par défaut Les développeurs de CouchDB et SQLite créent UnQL
    Les développeurs de CouchDB et SQLite créent UnQL
    Le nouveau langage de requêtes unifié NoSQL

    Le mouvement NoSQL a vu la naissance de plusieurs systèmes de gestion de bases de données non relationnels comme CouchDB ou encore Apache Cassandra.

    Cependant, chaque SGBD offre sa propre interface d’accès et de manipulation de données, limitant ainsi la capacité des entreprises à utiliser plusieurs SGBD NoSQL ou encore obligeant les développeurs à avoir des connaissances spécialisées sur chaque outil.

    Les développeurs des SGBD open source NoSQL CouchDB et SQLite ont soumis conjointement la spécification d’un nouveau langage de requêtes baptisé UnQL (prononcé "Uncle") pour standardiser le NoSQL.

    UnQL est un langage de haut niveau, qui permettra d’effectuer des requêtes sur les documents des bases de données NoSQL. L’objectif de NoSQL selon James Phillips co-fondateur de Couchbase est de créer un point commun entre les bases de données NoSQL.

    Si le langage est adopté par d’autres fournisseurs de bases de données NoSQL, UnQL sera pour ces SGBD ce que SQL est pour les SGBD relationnels.

    La syntaxe de UnQL est très similaire à celle de SQL, et comprend les instructions select, insert, update et delete, mais contrairement au SQL, UnQL ne requête pas sur les tables, mais sur des collections d’ensembles non ordonnés de documents.

    Le langage comprend également en plus des concepts appropriés pour les données non-structurées et les formats de données auto-descriptifs des applications NoSQL.

    En langage UnQL, un document sera un objet qui peut-être écrit en JSON (JavaScript Object Notation). Des nombres entiers simples, des nombres à virgule flottante et les chaines peuvent également être des documents.


    Pour mémoire, des chercheurs de Microsoft avaient également mis au point un langage de requêtes baptisé coSQL pour standardiser le NoSQL.


    Source : Le site UnQL


    Et vous ?

    Que-en pensez-vous?
    Vous souhaitez participer aux rubriques .NET ? Contactez-moi

    Si déboguer est l’art de corriger les bugs, alors programmer est l’art d’en faire
    Mon blog, Mes articles, Me suivre sur Twitter
    En posant correctement votre problème, on trouve la moitié de la solution

  2. #2
    Membre éclairé Avatar de Julien Bodin
    Homme Profil pro
    Devops
    Inscrit en
    Février 2009
    Messages
    474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Devops
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 474
    Points : 843
    Points
    843
    Par défaut
    J'aime l'initiative, mais est-ce que cela valable pour tous les types de base de données NoSQL ou simplement celles "orientées documents" telles que CouchDB ou MongoDB ?

    La news en elle-même parle de documents, ce qui du coup réduirait l'iniative à une sous-partie du NoSQL.

  3. #3
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2010
    Messages
    394
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Avril 2010
    Messages : 394
    Points : 1 212
    Points
    1 212
    Par défaut
    Citation Envoyé par Hinault Romaric Voir le message
    Pour mémoire, des chercheurs de Microsoft avaient également mis au point un langage de requêtes baptisé coSQL pour standardiser le NoSQL.
    Et quelqu'un sait ce qu'il est advenu de coSQL ?

    Parce que vouloir faire des standards, c'est bien, encore faut-il qu'ils soient utilisés par tout le monde... Si chacun implémente son propre standard... ben ce n'est plus un standard du tout !

    Mako

  4. #4
    Membre émérite

    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    3 995
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 995
    Points : 2 528
    Points
    2 528
    Par défaut
    Bonne initiative, mais qui soulève une foule de questions :

    • Quelle est la licence de cette spécification ? Je ne l'ai trouvé nulle part sur le site.
    • Quelles bases NoSQL sont actuellement compatibles avec cette spec ? On pourrait imaginer que CouchDB doit l'être, mais ce n'est pas vraiment dit.
    • Que vient faire SQLite là-dedans ? C'est une base de données relationnelle...


    Une remarque en plus : pour l'instant, c'est un peu léger. Le site ne montre pratiquement que la grammaire d'une requête UnQL, quelques explications sommaires et la liste des participants (2). Pas vraiment à la hauteur des enjeux...

  5. #5
    Membre émérite

    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    3 995
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 995
    Points : 2 528
    Points
    2 528
    Par défaut
    Citation Envoyé par Mako 5013 Voir le message
    Et quelqu'un sait ce qu'il est advenu de coSQL ?

    Parce que vouloir faire des standards, c'est bien, encore faut-il qu'ils soient utilisés par tout le monde... Si chacun implémente son propre standard... ben ce n'est plus un standard du tout !

    Mako
    Pour l'instant, le coSQL, c'est juste un article sur le site de l'ACM par deux chercheurs de Microsoft et une présentation sur MSDN. Il serait intéressant de savoir dans quelle mesure les deux créateurs de UnSQL se sont inspirés de ces travaux, d'ailleurs.

    http://channel9.msdn.com/Forums/Coff...-is-CoSQL-talk

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    585
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 585
    Points : 1 139
    Points
    1 139
    Par défaut
    C'est moi qui dort encore, ou c'est exactement du SQL ?
    L'avis publié ci-dessus est mien et ne reflète pas obligatoirement celui de mon entreprise.

  7. #7
    Membre expérimenté Avatar de Firwen
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    472
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2009
    Messages : 472
    Points : 1 587
    Points
    1 587
    Par défaut
    J'aime l'initiative, mais est-ce que cela valable pour tous les types de base de données NoSQL ou simplement celles "orientées documents" telles que CouchDB ou MongoDB ?
    J'ai de gros doutes, je vois pas trop comment modeliser une NoSQL orienté graph avec ça.
    It's not a bug, it's a feature

  8. #8
    Membre émérite
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 448
    Points : 2 284
    Points
    2 284
    Par défaut
    Je n'ai pas toute vos connaissances dans le domaine nosql, mais justement pour un non averti tel que moi, ce genre d'outil sera grandement apprécié.

    J'espère qu'ils en feront un standard et que cela réponde à toutes vos demandes !
    Et tant qu'à faire, si il pouvait éviter l'écueil du SQL et ses mots clé spécifiques à chaque moteur cela montrerait la maturité de ces nouveaux outils malgré leur jeune âge.

    a+

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 240
    Points : 636
    Points
    636
    Par défaut
    Il y a déjà eu un sujet similaire il y a quelques temps, à savoir : "Faut-il standardiser le NoSQL avec un langage de requêtes unique ?".
    Je répondrais grosso modo la même chose.

    Il existe un langage de requête standard: Le SQL. C'est un langage complet qui permet de récupérer n'importe quel jeux de données à partir d'une simple requête.
    A coté de cela il y a le moteur qui va interpréter la requête pour rechercher ou modifier les données. Ce moteur peut être conçu de manière à privilégié la vitesse, la fiabilité, ou n'importe quel autre critère qui paraitra important à son concepteur. Dans ce cas pourquoi pas utiliser des technologies NoSQL ?

    J'ai toujours autant de mal le terme NoSQL qui est au final rien de plus qu'une provocation.
    Que des dev aient du mal avec le SQL et préfèrent un langage d'avantage en accord avec leur paradigme de prédilection... soit ! Les langages sont fait pour ça !
    Que des dev préfèrent pour des raisons de performances utiliser un autre moteur ou qu'il essaient de gagner des perfs en enlevant la partie interpréteur de code... soit ! Le boulot de dev c'est aussi ça !

    Seulement évitons de voir des révolutions partout et ne mélangeons pas ces deux concepts. Il se trouve que le SQL rends mieux compte des relations entre les données que la POO qui met d'avantage l'accent sur les propriétés de chaque donnée.
    On en revient donc sur le débat à propos des différents types de langage de programmation.

    J'éviterai de parler des avantages de l'objet, du fonctionnel, de l’impératif, ou du relationnel ici. Ce n'est pas vraiment le sujet et le risque d'être "sanctionné" par ceux qui ne sont pas d'accord est trop grand .

  10. #10
    Membre habitué
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juin 2006
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2006
    Messages : 87
    Points : 144
    Points
    144
    Par défaut Mais pourquoi faire ???
    Le monde du NoSQL est très loin d'être stabilisé, les bases NoSQL sont pléthore, leurs modes de fonctionnement sont très nombreux et différents (quel point commun entre une base clef/valeur et une orientée graphe ???).

    Dans de telles conditions, à quoi bon rechercher un langage de requêtes commun à toutes ces bases ?

    D'un autre côté, faire un langage commun par type de base, pourquoi pas ?

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 240
    Points : 636
    Points
    636
    Par défaut
    Le monde du NoSQL est encore jeune et les technologies y sont en phase de maturation. Les SGBD dites relationnelles sont vraisemblablement passé par la avant de devenir ce qu'elles sont. D'ailleurs, peut on réellement dire qu'elles ont quitté cette phase ?
    La chasse au bugs et autres failles me parait sans fin...

    L'utilité d'un langage requête commun c'est de pouvoir demander ce que l'on veut à la machine la façon la plus claire, la plus simple et la plus concise possible. Cela sans se préoccuper du fonctionnement du système qui exécute la requête.
    A terme on pourra garder la même requête car on veut au la même chose au final et choisir le système ou l'archi le plus performant pour résoudre notre problème en fonction des contraintes qui nous sont imposées.

    Très schématiquement avec la requête:

    Select clef from une_source where valeur='toto'

    La valeur "une_source" sera interprétée comme une table dans un SGBDR ou comme un fichier contenant des paires clef/valeur dans un SGBD basé clef/valeur.

    Pour ce qui est des bases orientées graphes le même type d'équivalence est possible. Il suffit d'une requête récursive, avec de bon where et de bonnes jointures. Je donne pas d'exemple car j'ai la flemme mais je suis sur que vous me suivez .

    L'important est de dissocier le langage et le système. Tout ce qui peut être fait avec un langage Turing-complet peut être fait avec un autre langage Turing-complet.
    - La demande "Donnes moi les pommes que vendent les boutiques qui vendent ces poires" fait appel au concept de liens entre les pommes, les poires et les boutiques. Un langage de type SQL est un choix judicieux pour retranscrire cette demande.
    - La demande "Donnes moi le chemin le plus court entre Chez moi et Justine qui passe devant chez le fleuriste et qui évite la rue de chez Robert et la rue du commissariat" peut également être retranscrite en SQL mais plus c'est beaucoup compliqué. Un langage orienté graphe serait alors le bienvenu...

    Même avec une appli qui fait 99,99% de calcul d'itinéraire et qui justifierai le choix d'un SGBD orienté graphe, il sera toujours intéressant de demander la liste des fleuristes ouvert au moment ou je pars.
    Pour 0.01% des demandes je crois qu'il ne vaut pas le coups d'installer deux SGBD de type différents et de les faire communiqués entre eux.
    D’où l’intérêt du langage de requête commun, d’où la pertinence de la séparation langage/système de base de données, d’où le fait que NoSQL n'a que peu d’intérêt pour moi tant que le découplage langage/système n'est pas mis en avant.
    Cela dit avec la volonté de faire un langage commun au technos NoSQL qui ironiquement se rapproche du SQL, on s'en rapproche lentement mais surement !

  12. #12
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 761
    Points : 52 547
    Points
    52 547
    Billets dans le blog
    5
    Par défaut Révolutionnaire ?
    Au fait c'en est où sur super langage qu'est UnQL censé remplacé voire absorber le SQL ?

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

Discussions similaires

  1. Les développeurs de CouchDB et SQLite créent UnQL
    Par Hinault Romaric dans le forum Autres SGBD
    Réponses: 10
    Dernier message: 03/08/2011, 15h15
  2. Réponses: 8
    Dernier message: 10/06/2007, 00h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo