Aller sur skilly.com

Testez vos compétences et prouvez votre niveau d'expertise

L'œil de Skilly

Toutes les nouveautés High Tech pour les développeurs !

  • Actualités
  • Gourous du Code
  • Événements
  • Just for Fun
  • Quelques Chiffres

Dossier : Quand choisir MySQL ou NoSQL ?

0
  • par Geeko
  • dans Gourous du Code
  • — 24 juil, 2013

De plus en plus, on voit une division entre les pro-MySQL et les pro-NoSQL. Si MySQL est le plus utilisé historiquement, NoSQL (Not Only SQL) se développe dans le monde du web. Pour la plupart des développeurs, MySQL est déjà une technologie connue et NoSQL semble représenter un « Eldorado » de part sa légèreté et surtout parce qu’il aurait été pensé pour le web. Mais d’où vient cet engouement pour NoSQL ? Cela vaut-il vraiment le coût de se lancer dans cette technologie ? Nous commencerons par voir ce qui différencie ces deux systèmes et nous verrons dans quelles conditions il vaut mieux utiliser une technologie plutôt que l’autre. Petite précision avant de commencer : quand on oppose MySQL et NoSQL, on oppose surtout deux schémas de pensée différents : MySQL sera apparenté aux bases de données relationnelles et NoSQL aux bases de données non-relationnelles. À l’intérieur de la famille NoSQL, il y a beaucoup d’organisation de bases différentes (orientée documents comme MongoDB ou CouchDB, orientée graphe comme Neo4J, etc.).

MySQL et les bases relationnelles

MySQL est le plus connu et utilisé des SGBD. Il repose sur le modèle relationnel : des tables ont des enregistrements , et ces tables peuvent avoir des relations. Ceci a l’avantage de pouvoir lier très facilement des enregistrements d’une table à l’autre (par exemple, l’utilisateur n°27 a ses informations enregistrées sur la table « users » et s’il achète quelque chose, son identifiant sera consigné dans la table « commands » pour savoir que c’est bien lui qui a commandé tel produit dans la table « products » et etc.). De plus, lors des enregistrements, les transactions sont soumises aux contraintes ACID (atomicité, cohérence, isolation et durabilité), ce qui signifie qu’un enregistrement incomplet ou incorrect ne sera pas enregistré en base. De quoi sérieusement limiter les erreurs ! MySQL permet ainsi de facilement structurer les informations et de les réutiliser avec aisance. Finalement, MySQL est un système où l’intégrité des enregistrements est pris en charge par le logiciel et le risque d’erreurs est donc peu élevé.

NoSQL : nouvelles idées pensées pour le web

Pourtant, MySQL pose un problème dans le domaine du web : s’il est extrêmement pratique de manière générale dans tout environnement informatique, les contraintes inhérente à l’outil font qu’il est parfois ardu (pour le serveur) de trouver l’information dont on a besoin, surtout quand des dizaines de milliers de personnes cherchent à accéder à une information. Une information à chercher en base peut être coûteuse en termes de ressources. C’est dans cette optique qu’a été pensé le NoSQL : plutôt que de s’appuyer sur des contraintes lourdes et consommatrice de ressources, on va se concentrer sur l’accès direct à l’information car c’est finalement ce que recherche l’utilisateur. Inspiré tout d’abord des annuaires, NoSQL cherche donc à mettre en avant la lecture des données avant tout. Le résultat ? Une scalabilité immédiate car pour augmenter la performance de la base, il « suffit » d’acheter un serveur supplémentaire en parallèle. NoSQL est donc un modèle de BDD adapté au web, où l’utilisateur et l’accès à l’information sont mis en avant. Logiquement, ces types de base vont continuer à se développer dans le futur et acquérir de plus en plus d’utilisateurs.

 

Alors tout le monde doit se mettre au NoSQL ?

Cela dépend des cas. Car même si ces nouveaux BDD ont certains avantages réels, il faut prendre en compte certaines choses avant de se lancer : – MySQL est loin d’être mort, il continue d’évoluer et justement dans le sens de la scalabilité/rapidité d’accès en lecture. De plus il suffit très bien dans certains cas où l’utilisateur ne recherche pas la vitesse à tout prix. – NoSQL demande un niveau de conception supérieur, dans le sens où l’on doit très bien penser en amont à comment on va structurer l’information et s’assurer qu’elle arrive jusqu’au serveur sans être corrompue.   Finalement, comme le dit Dare Obansajo dans son blog, les BDD relationnelles, c’est comme avoir une voiture avec transmission automatique et les BDD non-relationnelle une transmission manuelle : si tout est fait automatiquement pour les premiers, c’est à nous de faire attention avec les seconds. Il va même jusqu’à dire que le NoSQL n’est pas une fatalité dans le web : tout le monde n’est pas Google / Amazon et n’a pas forcément besoin de passer par le NoSQL pour avoir de bonnes performances … Pour résumer, il faut savoir ce qu’on veut faire : est-ce que l’accès à une information doit être rapide ? Si oui, il vaut mieux privilégier NoSQL. Est-ce que notre client a besoin de stocker de grandes quantités de données pour les réutiliser de temps à autre ? À ce moment-là, MySQL semble plus adapté.   Voici aussi un lien pouvant vous aider à choisir la meilleure solution pour votre projet : Visual guide to NoSQL systems

 

Quel est votre avis sur la question ? Préférez-vous utiliser le MySQL ou le NoSQL pour vos projets ?

 

Sources : Wikipédia, le blog de Dare Obansajo, article sur Slashdot

Share

Articles liés

  • oscurification Conception d’une bibliothèque réentrant en C – Obscurification
  • APIfy Logo APIfy : créer une API RESTful avec PHP
  • Le versionning Dossier : Le versionning au service de développeurs
  • CLI : PHP en ligne de commande CLI : PHP en ligne de commande

Laisser un commentaire Annuler la réponse.

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Vous pouvez utiliser ces balises et attributs HTML : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

  • Article précédent Reconnaissance faciale en full PHP (+librairie GD)
  • Article suivant APIfy : créer une API RESTful avec PHP
    • Derniers Articles
    • Articles populaires
    • Tags
    • Challenge Node js Fb coverChallenge Node.js – Un chèque cadeau à gagner !20 octobre 2014
    • nodejs-logoNode.js disponible sur Skilly !15 octobre 2014
    • Challenge Ruby On Rails Fb coverChallenge Ruby On Rails – Un chèque cadeau à gagner !6 octobre 2014
    • CSS Week - Challenge de la semaine 15/07C’est la CSS Week !15 juillet 2013
    • CLI : PHP en ligne de commande5 février 2014
    • Reconnaissance faciale PHPReconnaissance faciale en full PHP (+librairie GD)23 juillet 2013
    • 1anDeTests Android Anniversaire ASP.NET C# Challenge Challenges compétence C Sharp CSS Dataviz Drupal Hibernate HTML5 infographie java jQuery linux MongoDB Monster Monster Race Moteur MySQL My SQL Node.js Objective-C PHP recherche Ruby On Rails Sauvegarde Scrum Search Skilly Spring Titanium Windows Server Wordpress
  • Pas encore fan ?

  • Catégories

    • Actualités
    • C
    • Challenges
    • Conférences
    • Événements
    • Gourous du Code
    • Hackathons
    • Hibernate
    • Javascript
    • Just for Fun
    • PHP
    • Quelques Chiffres
    • Skilly Inside
    • Tests de compétences
  • Activité récente

    • Marc dans Utilisation de variables très locales en C
    • Rafflin dans CLI : PHP en ligne de commande
    • Emma dans CLI : PHP en ligne de commande
    • Bernie_liege dans Reconnaissance faciale en full PHP (+librairie GD)
    • Geeko dans C’est la CSS Week !
  • Skilly est un site dédié aux professionnels de l’informatique, qui permet une auto-évaluation objective de son niveau sur une vingtaine de technologies IT.
  • Home
  • Gourous du Code
  • Dossier : Quand choisir MySQL ou NoSQL ?
  • Articles récents

    • Challenge Node.js – Un chèque cadeau à gagner !
    • Node.js disponible sur Skilly !
    • Challenge Ruby On Rails – Un chèque cadeau à gagner !
    • Ruby On Rails disponible sur Skilly !
    • Challenge MySQL – Un chèque cadeau à gagner !
  • Allez viens on est bien !

  • Twitter
    Skilly
    Skilly
    @SkillyFR

    @shafan_dev Bonjour Pierre, nous sommes toujours là :) Vous avez constaté un problème sur le site ? Je vous propose d'en parler en DM.

    Répondre Retweeter Favori
    9 h 18 min · 21 avril 2015
    Twitter
    Clever Institut
    Clever Institut
    @CleverInstitut

    Testez vos compétences GIT sur @SkillyFR et participez à notre prochaine formation du 29 et 30 janvier chez @CleverAge

    Répondre Retweeter Favori
    17 h 29 min · 19 janvier 2015 · Retweeté par Skilly
    Twitter
    Shmoolki
    Shmoolki
    @Shmoolki

    Dossier : Quand choisir #MySQL ou #NoSQL ? bit.ly/1Bl8baO MErci @SkillyFR

    Répondre Retweeter Favori
    9 h 52 min · 5 janvier 2015 · Retweeté par Skilly
    Twitter
    Skilly
    Skilly
    @SkillyFR

    L'équipe Skilly vous souhaite de très bonnes fêtes de fin d'année ! :) pic.twitter.com/jop1BxK8nw

    Répondre Retweeter Favori
    15 h 22 min · 24 décembre 2014
    Twitter
    Skilly
    Skilly
    @SkillyFR

    Cette semaine, on parle de Skilly dans @debugroomtv ! Regardez l'émission ici : debugroom.fr/debug-room-21-…

    Répondre Retweeter Favori
    17 h 04 min · 23 décembre 2014
  • Recherche

© COPYRIGHT 2013 L'ŒIL DE SKILLY