SQL vs NoSQL : Quelles différences ?
5
 min
Monter en compétences
 Publié le 
22/1/2021

SQL vs NoSQL : Quelles différences ?

Avec la technologie qui progresse, les besoins en termes de stockages se sont précisés et plusieurs types de bases de données ont vu le jour. Tout d’abord les bases de données SQL puis, plus récemment, les bases de données NoSQL. Mais alors, quelles sont les différences entre les deux ? Et bien, tout est une question de manière de stocker la donnée. Nous vous expliquons tout dans cet article.

Qu’est ce que le SQL ?

Définition 


Pour commencer, SQL est un acronyme qui veut dire Structured Query Language. Si cela ne vous aidera sûrement pas à comprendre l’entièreté de la chose, il y a tout de même le dernier mot qui peut vous aiguiller : Language. En effet, le SQL est un langage que vous allez utiliser pour requêter des bases de données relationnelles

Dans le jargon, on renomme souvent ces types de bases de données : bases de données SQL. C’est d’ailleurs souvent pour cela qu’il n’est pas rare de trouver des gens qui fassent la confusion entre bases de données relationnelles et le langage SQL en lui-même, alors que ce sont deux concepts différents. 

Pour terminer les bases de données SQL utilisent un système qui est capable de compiler une requête SQL et de retourner les données que vous avez demandées. C’est ce qu’on appelle un RDBMS pour Relational Database Management System. Les RDBMS les plus connus sont : 

  • MySQL
  • PostgreSQL
  • SQLite
  • SQL server
  • MariaDB
  • Oracle 


Dans votre vie de développeur ou de Data Analyst, vous utiliserez le plus souvent MySQL ou PostgreSQL car ces deux systèmes sont open-source et donc gratuit. 

Les bases de données relationnelles tiennent leur nom du fait que les données sont organisées en tables et ces tables sont liées par une “relation” que l’on appelle plutôt une clé. Cette clé n’est rien d’autre qu’une colonne dans chaque table qui ne représente rien de plus qu’un ID

Comme vous le voyez ici par exemple, la table staff est liée à la table payroll par la colonne staff_id. 

Les relations entre bases de données
Les relations entre bases de données


Le fait de découper les bases de données en tables permet de mieux structurer la donnée et d’éviter de devoir charger des informations inutiles lorsque l’on fait des requêtes. En effet, plus les bases de données deviennent grandes, plus les requêtes peuvent être longues à processer. 

Avantages

Les bases de données SQL sont là depuis longtemps et sont très robustes, les avantages majeurs à utiliser des bases de données SQL sont : 

  • Robustesse des bases de données.
  • Les données sont bien structurées et donc facilement requêtables.
  • Il est plus facile d’analyser des données venant de bases de données SQL (qui ressemblent souvent à des feuilles excel). 
  • SQL est un langage assez largement utilisé donc vous n’aurez pas de difficultés à ce que votre équipe sache extraire de la donnée depuis ce type de bases.
  • Les bases de données SQL s’intègrent bien dans l’écosystème tech. Par exemple, qu’importe le langage dans lequel un développeur code, il y aura toujours une librairie pour faciliter l’intégration d’une base de données SQL.
  • Les bases de données SQL sont relativement peu coûteuses. Très souvent même, les plateformes cloud comme AWS ne font pas payer les bases de données avant d’y mettre 2GB de données. Ce qui est déjà un joli volume. 

Défauts

Il y a quelques défauts tout de même autour des bases de données SQL et principalement ceci est dû à la rigidité de ces dernières, voici les deux défauts majeurs: 

  • Rigidités des tables. En général, une fois que les tables sont définies, il est plus difficile de les changer.
  • L’interface des bases de données SQL est plutôt complexe. Si vous ne savez pas coder en SQL, il vous sera difficile d’accéder à vos données à la différence d’une feuille excel par exemple, où il suffit d’ouvrir le fichier. 

Quels métiers utilisent du SQL ?

Il y a beaucoup de métiers qui utilisent SQL. A partir du moment où l’on stocke, extrait ou analyse de la donnée, il y aura besoin de coder une requête SQL. Voici donc les principaux métiers qui utilisent SQL : 

  • Business Analyst
  • Data Analyst
  • Data Scientist
  • Data Engineer
  • Software Engineer
  • Product Manager

Qu’est ce que le NoSQL ?

Définition 

A mesure que les développeurs créaient des applications web, est venu le besoin de plus de flexibilité. C’est pour cela qu’on a inventé une autre façon de stocker et requêter de la donnée qui a été nommée par la suite le “Not only SQL” ou NoSQL. 

A la différence des bases de données SQL, il n’y a, cette fois, pas le concept de relation entre les tables et celles-ci ressemblent plus à des fichiers JSON. Voici d’ailleurs un exemple :

code-sql
NoSQL record


Ici, au lieu que la donnée soit organisée en colonne, elle est organisée par items qui contiennent chacun des données qui peuvent être différentes ou similaires. 

Parmi les bases de données NoSQL les plus connues, on compte : 

  • Cassandra 
  • MongoDB
  • DynamoDB

Avantages

L’avantage principal d’avoir des données organisées de cette manière est le fait que chacun des items peut contenir n’importe quoi comme donnée, il y a donc une flexibilité énorme et c’est principalement ce que les développeurs recherchent lorsqu’ils codent une nouvelle application qui a besoin d’énormément d’itérations et de nouvelles données en permanence. Voici donc les principaux points : 

  • Flexibilité 
  • Accessibilité des données 
  • Peut contenir tous types de données 
  • Peut gérer des données Big Data 
  • Elles s’intègrent plus facilement avec les applications web

Défauts

Le revers de la médaille de la flexibilité est que les bases de données NoSQL peuvent facilement devenir désorganisées. Voici donc les points à connaître : 

  • Il n’y a pas de relations entre tables donc difficile de lier de la données
  • Les bases de données NoSQL s’intègrent très mal avec des bases de données SQL
  • Même si les bases de données NoSQL peuvent être utilisées dans des problématiques Big Data, elles sont souvent très coûteuses. 

Qui utilise du SQL ?

On retrouvera les mêmes types de métiers qui utilisent les bases de données NoSQL : 

  • Data Analyst
  • Business Analyst
  • Product Manager 
  • Data Scientist 
  • Data Engineer
  • Software Engineer

Cependant, on notera tout de même que ce sont plus souvent les software engineers qui vont utiliser ce type de bases de données tous les jours. 

SQL vs NoSQL

Maintenant que vous avez une meilleure idée de ce qu’est le SQL et le NoSQL, quand est ce que vous devriez choisir l’un plutôt que l’autre ?

Les différences majeures

Parlons les différences majeures entre les deux types de bases de données : 

  • Les bases de données SQL sont plus organisées tandis que les bases de données NoSQL sont plus flexibles 
  • Les bases de données NoSQL sont plus souvent utilisées pour les applications web
  • Les bases de données SQL peuvent être utilisées pour faire de l’analytique alors qu’il est très rare d’en faire sur directement depuis des bases de données NoSQL
  • Les tables des bases de données NoSQL ne sont jamais liées entre elles alors que celle des bases de données SQL le sont. 

Quand utiliser SQL 

Du fait de leur côté généraliste, vous allez plus souvent utiliser des bases de données SQL plutôt que des bases de données NoSQL mais voici quelques exemples de cas d’applications : 

  • Vous avez un projet d’analyse de données.
  • Vous devez une application où vous avez déjà une idée des données que vous allez utiliser et collectez et vous savez qu’elles ne changeront pas trop en cours de route. 
  • La base de données doit s’intégrer à plein d’applications différentes 
  • La base de données va être utilisée par plusieurs métiers différents

Quand utiliser du NoSQL ?

A l’inverse les bases de données NoSQL concernent souvent les projets d’application web où il y aura une forte composante de collection de données utilisateur par exemple qui vont changer au fil du temps. Voici donc quelques cas d’applications : 

  • Développement d’une application mobile collectant beaucoup de données utilisateur
  • Votre équipe n’a pas encore d’idée du type de données à collecter 
  • Vous n’avez pas besoin de lier la donnée pour le moment. 

Apprendre le SQL et NoSQL

Si vous souhaitez apprendre le SQL et les bases de données NoSQL, vous pouvez suivre des cours en ligne sur Udemy ou suivre des formations intensives qui vont vous permettre d’avoir une connaissance approfondie du langage. N’hésitez pas à regarder nos formations Data Analyst si cela vous intéresse.

Rejoignez la communauté sur JULIE !

Python, SQL, gestion de projet Data, toutes les compétences à acquérir pour monter en compétences avec cours en ligne gratuits.

Antoine Krajnc
Écrit par
Antoine Krajnc
 - 
Fondateur
Jedha

Python : le language de programmation le plus
populaire parmi les professionnels de la Data !

Obtenez notre livre d'Introduction Pratique à Python !

Programmes, thématiques Data, admissions,
vous avez une question ?

Prenez rendez-vous avec nos équipes