SQL vs NoSQL : En quoi sont-ils différents ?

SQL vs NoSQL : En quoi sont-ils différents ?

L’utilisation de SQL et NoSQL est devenu courante voir indispensable pour un développeur. Cependant, connaissez-vous vraiment ce qui les différencient ? sql vs nosql, let’s get started !

upidev sql vs nosql couverture

Récapitulatif

SQL NoSQL
Structure : Table Collection
Colonne Clé
Enregistrement/Ligne Document/Objet
Type : Relationelle Non relationelle
Enregistrement lié Clé étrangère minimise la redondance de données Techniques de standardisation pour autoriser une clé à référencer une ligne dans un document lié
Facilite la mise à jour d’enregistrements liés Devient couteux en performance lors de mise à jour sur des documents avec beaucoup d’enregistrement liés
Intégrité des données Une clé étrangère peut seulement lier son enregistrement à un enregistrement existant Non géré
Architecture Rigide : les colonnes d’une table doivent être définis avant l’insertion de données Souple : les colonnes d’un document peuvent être définis à la volée durant l’insertion de données
Jointure La clause JOIN permet lors d’une selection d’associer plusieurs données issues de tables liées Non géré
Transaction permet d’effectuer plusieurs requêtes de données à la suite Non géré
Elargissement de la base de données
  • Partitionnement des données ( Sharding ) : Les données sont répartis entre les serveurs de base de données.
  • Réplication de la base de données : Les données sont répliqués ( copiés ) sur chaque serveur de base de données.
Partitionnement des données

Explications détaillées

Enregistrements liés

En SQL ( Avec MySQL ) :

En NoSQL ( Avec MongoDB ) :

Transaction

Une transaction permet d’effectuer plusieurs requêtes à la suite en SQL.

Elargissement de la base de données

Stockage par réplication

upidev sql vs nosql replication

Les + :
  • Disponibilité : Si l’un des serveurs de base de données devient inutilisable, un second prends le relai
  • Amélioration du parallélisme : Permet d’effectuer une même requête de manière parallèle -> Augmente la vitesse d’exécution d’une requête en lecture
Les – :
  • Coûteux en performance : Quand un enregistrement est mis à jour, il doit être mis à jour dans toutes les bases de données répliqués
  • Coûteux en mémoire: Stocker les mêmes données à différents endroits requiert plus d’espace disque

Stockage par partitionnement

upidev sql vs nosql sharding

Les + :
  • Partage de processeur : Afin d’améliorer les performances, les processeurs peuvent être cumulés.
  • Partage d’espace disque : Plutôt que d’ajouter de l’espace disque au serveur de base de données, on le lie à un autre serveur ( noeud ) qui partage son espace disque
Les – :
  • Disponibilité : si l’un des noeuds devient inutilisable, une partie des données sera non disponible

Laisser un commentaire