Académique Documents
Professionnel Documents
Culture Documents
I. Généralités
Entendu pour la première fois au monde par son auteur Carlo Strozzi en 1998, le
terme NoSQL (pour Not Only SQL) est adopté pour nommer son SGBD relationnel
Open Source léger qui n’utilisait pas le langage SQL.
Nous avons vu dans le premier chapitre que le modèle relationnel a trouvé ses limites
pour la gestion des données massives du Web qui a connu une révolution avec
L’avènement des sites web à fort trafic tels que Facebook, Amazon et LinkedIn. Ces
Grands acteurs du web ont été rapidement limités par lesdits systèmes pour deux
raisons majeures :
- Les gros volumes de données;
- Les montées en charge.
Les bases de données relationnelles étaient devenues trop lentes.
N’ayant pas trouvé de solution sur le marché répondant à ces problèmes, ils décidèrent
de développer chacun à l’interne leurs propres SGBD. Ces produits développés de
Manière distincte sont connus sous le nom de base de données NoSQL ou de base de
données non relationnelles. Les besoins en performance, lors de traitement de gros
volumes de données ainsi que d’augmentation de trafic, ne touchent pas seulement
les fameux sites mentionnés ci-dessus, mais aussi de nombreuses entreprises de tous
types d’industries confondues, c’est de ce constat qu’est né le mouvement NoSQL.
Ce concept a ensuite été adopté et popularisé par les GAFAM tels que Google,
données relationnelles étaient devenues trop lentes. Au lieu de mettre à jour leur
«Les bases de données NoSQL sont idéales pour le scaling-out, puisqu’elles sont non
relationnelles.
En l’an 2000, la base de données graphique Neo4j fut lancée. Ce fut ensuite le tour
Puis, en 2008, Facebook rend open source la base de données non-relationnelle qu’elle
utilise en interne : Cassandra. Cet outil devient la référence des databases NoSQL,
et remet le terme NoSQL sous le feu des projecteurs en lui donnant son sens et sa
popularité actuelle.
données de type NoSQL, dans quel but que ce genre de base de données a vu le jour.
Nous allons également voir de quelle manière ces type de base de données fonctionnent
et sur quels fondements elles s’appuient, ainsi que les avantages qu’une base de
données de type NoSQL peut avoir en comparaison à une base de données relationnel
standard.
Le NoSQL est un type de bases de données, dont la spécificité est d’être non
tout ce que vous devez savoir : définition, histoire, fonctionnement, cas d’usage,
avantages, formations...
À l’heure du Big Data, les bases de données relationnelles ne sont plus adaptées.
Pour prendre en charge les immenses volumes de données, les stocker et les analyser,
2
________________________________________________________________________________
Cours de Base de données NoSQL-Chap N°3 sur Chap n°4 Version du 05/05/2023
Une base de données NoSQL est une base de données « non relationnelle ». Il est
possible d’y stocker des données sous une forme non structurée, sans suivre de schéma
On utilise notamment les bases de données NoSQL pour les Data Stores distribués
aux besoins élevés en capacité de stockage. Ainsi, NoSQL est utilisé pour le Big
Data et les applications web en temps réel. Les géants de la technologie comme
Twitter, Facebook ou Google collectent chaque jour plusieurs terabytes de données sur
leurs utilisateurs.
Le terme » NoSQL » signifie en fait » Not Only SQL « (pas seulement SQL). En
effet, les bases de données relationnelles utilisent la syntaxe SQL pour le stockage
systèmes NoSQL sont compatibles avec une large variété de technologies permettant
polymorphique.
3
________________________________________________________________________________
Cours de Base de données NoSQL-Chap N°3 sur Chap n°4 Version du 05/05/2023
II- Qu'est-ce qu'une base de données NoSQL ?
La base de données NoSQL (Not Only SQL) est un système de base de données non
relationnelle. Elle est utilisée pour stocker des données sous une forme non structurée,
tout ceci sans toutefois suivre de schémas de construction fixes. Ce système aide à
organiser les données de façon libre, sans pour autant respecter la structure
contraignante des bases de données relationnelles comme c'est le cas avec le SQL. Il
jointures.
Les bases de données NoSQL sont particulièrement utiles pour les Data Stores
distribués qui ont besoin de capacité de stockage élevée. Raison pour laquelle cette
solution légère open source est souvent utilisée pour les applications web, mais aussi
pour le Big Data en temps réel. Les systèmes NoSQL sont aussi compatibles avec
4
________________________________________________________________________________
Cours de Base de données NoSQL-Chap N°3 sur Chap n°4 Version du 05/05/2023
une grande variété de technologies. Celles-ci permettent le stockage de données non
La principale particularité des bases de données NoSQL est qu’elles ne suivent pas
complexe.
Une autre particularité est l’absence ou la flexibilité des schémas. Il n’est pas
Les bases de données non relationnelles se distinguent aussi par une interface simple
manipuler les données avec diverses méthodes de sélection. Les protocoles, basés sur
le texte, reposent principalement sur HTTP REST avec JSON. On utilise en général
multiples bases NoSQL peuvent être exécutées de façon distribuée, offrant des
5
________________________________________________________________________________
Cours de Base de données NoSQL-Chap N°3 sur Chap n°4 Version du 05/05/2023
On distingue quatre principaux types de bases de données NoSQL : paire clé / valeur,
Dans le cas des bases de données de type paire clé / valeur, les données sont stockées
sous forme de paires clé/valeur. Ceci permet la prise en charge de larges volumes de
hash » au sein duquel chaque clé est unique. La valeur peut être un JSON, un objet
plus facilement des données sans schéma. En guise d’exemples, on peut citer Redis
database.
Les bases de données orientées colonnes, comme leur nom l’indique, repose sur des
colonnes. Elles sont basées sur le modèle BigTable de Google. Chaque colonne est
Cette catégorie de base de données offre de hautes performances pour les requêtes
d’agrégation comme SUM, COUNT, AVG et MIN. Pour cause, les données sont déjà
disponibles et prêtes dans une colonne. En guise d’exemples, on peut citer HBase,
Cassandra ou Hypertable.
Les bases de données Graph-Based stockent les entités et les relations entre ces
entités. L’entité est stockée sous forme de noeud, et les relations comme bordures.
6
________________________________________________________________________________
Cours de Base de données NoSQL-Chap N°3 sur Chap n°4 Version du 05/05/2023
Il est ainsi facile de visualiser les relations entre les noeuds. Chaque noeud et chaque
réseaux sociaux, la logistique ou les données spatiales. Parmi les exemples les plus
Les bases de données orientées document stockent et retrouvent-elles aussi les données
sous forme de paire clé-valeur. Toutefois, la valeur est stockée sous forme
de document au format JSON ou XML. La valeur est ainsi comprise par la base de
données et peut être trouvée à l’aide d’une requête. Ce type de base de données
offre donc une flexibilité accrue. Il est principalement utilisé pour les systèmes CMS,
convient pas pour les transactions complexes nécessitant des opérations ou des
requêtes multiples sur des structures agrégées variables. Les exemples les plus connus
dans cette catégorie sont Amazon SimpleDB, CouchDB, MongoDB, Riak, Lotus Notes
et MongoDB.
V. Utilisation du NoSQL
Les bases de données NoSQL conviennent pour plusieurs cas d’usage. Elles sont
aussi lorsque les relations entre les données ne sont pas spécialement importantes.
On peut aussi s’en servir si les données changent au fil du temps et ne sont pas
et que le scaling régulier de la base de données est nécessaire pour les prendre en
charge.
7
________________________________________________________________________________
Cours de Base de données NoSQL-Chap N°3 sur Chap n°4 Version du 05/05/2023
C’est une évidence de dire qu’il convient de choisir la bonne technologie en fonction
du besoin. Il existe cependant certains critères déterminants pour basculer sur du
NoSQL :
1. Taille
Le NoSQL est conçu pour supporter un nombre important d’opérations, de données,
d’utilisateurs etc… C’est à cause de cette grande masse de données que le système
doit devenir distribué. Bien que tous les systèmes NoSQL ne soient pas conçus pour
cette problématique, il est possible de la résoudre sans problème.
2. Performance en écriture
Celle-ci est l’intérêt principal du géant Google, Facebook, Twitter, gérant des masses
des données qui augmentent considérablement chaque année exigeant un temps très
important pour stocker ces données. En conséquence, l’écriture se doit être distribuée
sur un cluster de machines, ce qui implique du MapReduce, la réplication, la tolérance
aux pannes, et la cohérence.
3. Type de données flexibles
Les solutions NoSQL supportent de nouveaux types de données et c’est une
innovation majeure. Les objets complexes peuvent être mappés sans trop de problèmes
avec la bonne solution.
4. ACID
Bien que ce ne soit pas le but premier du NoSQL, il existe des solutions permettant
de conserver certains (voire tous) aspects des propriétés ACID. Se référer au
théorème CAP plus bas dans le manuscrit et aux propriétés BASE
5. Simplicité de développement
L’accès aux données est simple. Bien que le modèle relationnel soit simple pour les
utilisateurs finaux, il n’est pas très intuitif pour les développeurs puisque les données
sont restituées selon la structure de la base.
6 Scalabilité
La scalabilité est le terme utilisé pour définir l’aptitude d’un système à maintenir
un même niveau de performance face à l’augmentation de charge ou de volumétrie
de données, par augmentation des ressources matérielles.
8
________________________________________________________________________________
Cours de Base de données NoSQL-Chap N°3 sur Chap n°4 Version du 05/05/2023
Il y a deux façons de rendre un système extensible : la scalabilité horizontale (externe)
ainsi que la scalabilité verticale (interne).
Savoir manipuler les bases de données NoSQL est une compétence très recherchée.
Les entreprises croulent aujourd’hui sous les données, et ont donc besoin d’experts
capables d’entreposer et d’analyser ces données sur des systèmes non relationnels.
Pour apprendre à utiliser les bases de données SQL et NoSQL, vous pouvez opter
pour les formations DataScientest. En suivant nos différents parcours Data Analyst, Data
Engineer ou Data Scientist, les databases n’auront plus de secrets pour vous.
10
________________________________________________________________________________
Cours de Base de données NoSQL-Chap N°3 sur Chap n°4 Version du 05/05/2023
Nos différentes formations vous préparent aux différents métiers de la Data Science.
Conçues par des professionnels pour répondre aux besoins réels des entreprises, elles
Les bases de données NoSQL peuvent être utiles dans de nombreux cas d'usage. Elles
données. Elles sont également utiles lorsque les relations entre les données ne sont
Les systèmes de base de données NoSQL peuvent également être utilisés lorsque les
données changent au fil du temps et ne sont pas structurées. NoSQL convient enfin
présente une grande série d'avantages, mais elle apporte aussi quelques inconvénients.
stocker les données sur différents serveurs en local ou en Cloud. Il s'agit d'un des
principaux points forts de NoSQL. Le Cloud aide en effet à mettre à disposition des
utilisateurs une plus grande quantité de serveurs, ceci à un prix relativement faible.
Idéales pour le stockage et l'analyse du Big Data, les bases de données NoSQL
réplication des données sur plusieurs serveurs. Cela offre la possibilité de diminuer la
11
________________________________________________________________________________
Cours de Base de données NoSQL-Chap N°3 sur Chap n°4 Version du 05/05/2023
latence et la charge de travail des data centers pour les utilisateurs. Cette «
De plus, les bases de données NoSQL sont capables de prendre en charge les données
NoSQL à s'adapter à tous les types de data lui confère sa grande flexibilité. Pour
utiliser les données, le Data Scientist n'a plus besoin de les structurer, de les ranger
puis de les extraire. Elles sont directement exploitables, ce qui aide à développer de
les interfaces de support offrent une utilisation simple et une parfaite lisibilité. Son
interface est très ergonomique, ce qui aide les Data Scientists et les Data Analysts
a. Plus évolutif
NoSQL est plus évolutif. C’est en effet l’élasticité de ses bases de données NoSQL
b. Plus flexible
N’étant pas enfermée dans un seul et unique modèle de données, une base de données
NoSQL est beaucoup moins restreinte qu’une base SQL. Les applications NoSQL
peuvent donc stocker des données sous n’importe quel format ou structure, et
12
________________________________________________________________________________
Cours de Base de données NoSQL-Chap N°3 sur Chap n°4 Version du 05/05/2023
considérable et à une meilleure fiabilité. Par contre une base de données relationnelle
doit être gérée attentivement, car un changement, aussi mineur, peut entraîner un
c. Plus économique
Les serveurs destinés aux bases de données NoSQL sont généralement bon marché
contrairement à ceux qui sont utilisés par les bases relationnelles. De plus, la très
grande majorité des solutions NoSQL sont Open Source, ce qui reflète une économie
d. Plus simple
Les bases de données NoSQL ne sont pas forcément moins complexes que les bases
relationnelles, mais elles sont beaucoup plus simples à déployer. La façon dont elles
Malgré ses multiples avantages, l’utilisation des bases de données NoSQL apporte
néanmoins quelques inconvénients. L'un des principaux points faibles de cet outil de
sont dénormalisées, mais elles traitent également avec des enregistrements sur les
Il s'agit d'un problème majeur que rencontre cet outil, car la plupart des utilisateurs
optent pour des données normalisées afin d'éviter les anomalies et les duplications de
données. Si l'on prend par exemple le cas des transactions financières, elles utilisent
des règles de normalisation très strictes. L'utilisation de données non normalisées est
13
________________________________________________________________________________
Cours de Base de données NoSQL-Chap N°3 sur Chap n°4 Version du 05/05/2023
susceptible d'entrainer un risque d'erreur dans les transactions. Cela pourrait avoir un
NoSQL fonctionne également parfaitement sur une table, mais est vite limité lorsqu'il
s'agit de manipuler plusieurs tables. Cet outil est en effet incapable d'effectuer des
jointures complexes. La base de données NoSQL est enfin incapable d'imbriquer les
requêtes WHERE pour extraire des informations spécifiques dans la database. Ce n'est
Dans le monde du NoSQL il n’y a pas de langage standard comme SQL l’est dans le
«MapReduce ».
NoSQL et qui vise à produire des requêtes distribuées. Cette technique se décompose
1. Etape de mapping
Chaque item d’une liste d’objets clé-valeur passe par la fonction map qui va retourner
2. Etape de Reduce
14
________________________________________________________________________________
Cours de Base de données NoSQL-Chap N°3 sur Chap n°4 Version du 05/05/2023
- Comptabilisation des différentes clés de la liste
noeuds
du système pour chaque couple clé-valeur. L’étape de réduction n’est pas parallélisée
et ne peut être exécutée avant la fin de l’étape de mapping. Les bases de données
le plus souvent de développer les méthodes map et reduce en Java Scriptou en Java.
Conclusion
Au regard de ce qui précède, il est à retenir que les base de données NoSQL est une
rendait indispensable l’utilisation des systèmes distribués pour assurer leur stockage
15
________________________________________________________________________________
Cours de Base de données NoSQL-Chap N°3 sur Chap n°4 Version du 05/05/2023