Partage
  • Partager sur Facebook
  • Partager sur Twitter

Les bases de données relationnelle, non rationelle, noSQL

...je suis perdu...

Sujet résolu
Anonyme
    2 septembre 2010 à 20:34:17

    Salut à tous,

    Je poste aujourd'hui un message non pas parce que j'ai un problème... mais plutôt parce que je manque d'informations. Je me posais une question : Qu'est-ce que les bases de données relationnelles, les non relationnelles et noSQL ?

    Si j'ai bien compris, SQL est une base de données relationnelle ? Mais ça veut dire quoi concrètement ?
    Est-ce que les bases de données noSQL c'est l'ensemble des bases de données qui n'utilisent pas SQL ? Ou est-ce toutes les bases de données non-relationnelle ?
    Et non-relationnelle... ça veut dire quoi :waw: ?

    Je sais, ça fait beaucoup de question, et j'ai beau chercher sur internet... les définitions m'embrouillent plus qu'autre chose ! Si vous pouviez éclairer ma 'tite lanterne !

    D'avance merci !
    • Partager sur Facebook
    • Partager sur Twitter
      2 septembre 2010 à 21:58:50

      SQL est un langage standardisé, pas une base ni un SGBDR. En revanche, un SGBDR peut décider d'utiliser SQL pour effectuer les requêtes. Il peut aussi faire son SQL maison, en implémentant des commandes en plus qui ne seront donc pas standard, donc pas forcément utilisable sur un SGBDR concurrent.
      • Partager sur Facebook
      • Partager sur Twitter
      Anonyme
        2 septembre 2010 à 22:04:10

        Merci rotoclap ! Mais le seul truc que j'avais bien compris... c'est bien ça... SQL est un langage ^^

        Mais voilà au niveau des SGBD je veux parler. Pourquoi on parle de relationnelle, non relationnelle, noSQL... c'est quoi la différence de chacun ? Qu'est-ce que chacun apporte que l'autre apporte pas !

        J'ai entendu dire que MySQL était relationnelle... ok mais ça veut dire quoi concrètement. Et la base de données de Facebook et pas relationnelle... ok ! mais pourquoi ?

        C'est surtout ça que j'essaie de comprendre ! :/
        • Partager sur Facebook
        • Partager sur Twitter
          2 septembre 2010 à 22:55:12

          Relationnelle, ça veut dire que les tables peuvent être reliées entre elle par des éléments logiques, le plus souvent par des numéros d'identifiants. Après j'ai pas les définitions en tête et j'explique souvent mal, donc je vais pas aller plus loin.
          • Partager sur Facebook
          • Partager sur Twitter
            3 septembre 2010 à 0:14:40

            bonjour,
            il faut bien différentier 3 choses : le SGBDR, la BD, SQL.
            Relationnelle provient de l'algèbre relationnelle de CODD (lboratoires d'IBM dans les années 70).
            SQL est une implémentation de l'AR.
            L'AR est une extension de l'algèbre ensembliste.
            Les principales opérations sont la projection, la restriction, l'union, l'intersection, la différence, le produit cartésien et la jointure, ...). Ce que l'on retrouve dans nos SELECT.
            Après il y a (eu) les SGBDO (Objet). Mais leur percée est depuis 20 ans toujours en attente.
            La puissance des SGBDR est incontestée lorsqu'il s'agit de gérer des relations (au sens mathématique) c'est-à-dire des rectangles.
            Mais pour gérer autre chose (des images, ...) c'est impossible parce ce sont des "patatoïdes".
            De même pour XML qui présente des structures non rectangulaires.
            Ce sont les limites de l'AR.
            Après un SGBDR c'est aussi plein d'autres choses (principes ACID, ...).
            Les meilleures méthodologies pour aborder ces concepts sont : Merise et E/R.
            Ouf :)



            • Partager sur Facebook
            • Partager sur Twitter
            Anonyme
              3 septembre 2010 à 0:48:27

              Citation : Max la menace

              J'ai entendu dire que MySQL était relationnelle... ok mais ça veut dire quoi concrètement. Et la base de données de Facebook et pas relationnelle... ok ! mais pourquoi ?

              C'est surtout ça que j'essaie de comprendre ! :/



              Facebook utilise plusieurs bases de données différentes, notamment Cassandra (qu'ils ont contribué à développer) et MySQL. La seconde est relationnelle, la première non : elles ne servent pas aux mêmes choses. La clef pour comprendre ces différences est le théorème de Brewer qui dit qu'un système distribué (ici, une base de données répartie sur plusieurs serveurs) ne peut pas être à la fois cohérent, pleinement disponible et "partitionnable".

              Une base de données relationnelle va s'assurer de certaines contraintes sur les données gérées : si j'ai une table "membres" et une table "groupes de membres" (deux types de données différents), je veux par exemple m'assurer que tous les groupes auxquels les membres appartiennent correspondent bien à des entrées de "groupes de membres" (mes "membres" possèdent un champ "groupe" sur lequel je fais un contrôle). Si je ne m'abuse, c'est ce que l'on appelle une clef étrangère.

              Pour que ceci puisse fonctionner, il faut que tous les serveurs de la base de données soient au courants de l'état de tous les autres, aussi vite que possible : le système doit donc être à la fois "cohérent" et "disponible". Il est, d'après le théorème, difficile à partitionner.

              Parfois, on a moins besoin de cohérence ou de disponibilité que de capacité à être partitionné. On peut alors abandonner le modèle relationnel au profit de bases de données différentes, les bases NoSQL.

              Edit-supplément-fromage : le nom "NoSQL" est un piège, parce qu'il pousse à croire que le "problème" est le langage SQL. En réalité, c'est le modèle relationnel et les transactions (dites "ACID") qui sont abandonnées. Cela demande du temps et un peu de lecture pour être compris.

              En d'autres termes, pas de panique si tu ne comprends pas tout, ça n'est pas parce que Facebook ou Google ont besoin d'inventer de nouvelles bases de données qu'ils ont définitivement lâché MySQL. Les bases de données NoSQL ne remplaceront pas les bases relationnelles, mais les complètent là où c'est possible.
              • Partager sur Facebook
              • Partager sur Twitter
              Anonyme
                3 septembre 2010 à 8:03:58

                'a tout compris :D

                Merci à vous deux ! ^^
                • Partager sur Facebook
                • Partager sur Twitter

                Les bases de données relationnelle, non rationelle, noSQL

                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                • Editeur
                • Markdown