Vous êtes sur la page 1sur 57

Bases de données

NoSQL
1
T_LSI_ADBD
Ghozzi Faiza ISIM–Sfax
Kallel Sahar ISIM-Sfax

Faiza Ghozzi Jedidi


2 Objectifs

 Découvrir un système NoSQL session interactive


commentée.
 Modélisation. Comment modélise-t-on une application ?
Avantages/inconvénients vs. un système relationnel.
 Un aperçu du langage d’interrogation de MongoDB.

Faiza Ghozzi Jedidi


NoSQL Introduction
Types de bases NoSql
MongoDB
3 Plan
 Big data & NoSQL
 Contexte
 NoSql
 Types de bases NoSql
 MongoDB
 Architecture
 Langage d’interrogation
 Replication & Sharding

Faiza Ghozzi Jedidi


NoSQL Introduction
Types de bases NoSql
MongoDB
4 Croissance exponentielle des données
 La quantité de données digitales
produites double tous les 2 ans.
 En d'autres termes, on a produit
autant de données digitales ces 2
dernières années que tout ce qui a
été produit auparavant.

Faiza Ghozzi Jedidi


NoSQL Introduction
Types de bases NoSql
MongoDB
5 Volume & variété

Faiza Ghozzi Jedidi


NoSQL Introduction
Types de bases NoSql
MongoDB
6
Volume & variété

 Sources de données :  Données des capteurs:


 Communications sur les Capteurs fixes; Capteurs
réseaux sociaux portables; Automatisation
(Facebook, Twitter, de la maison; Capteurs
Tumblr, etc.) météo / pollution;
 Blogs, Documents Capteurs de trafic
 Photos: Instagram, Flickr,  Capteurs mobiles (suivi):
Picasa personne (localisation du
 Vidéos: YouTube, etc. téléphone portable);
 Recherches Internet voiture; trains; Avions;
 Contenu de données Nautique (navires)
mobiles  Données satellitaires:
topographiques;
Thermique; Surveillance;
Météorologique

Faiza Ghozzi Jedidi


NoSQL Introduction
Types de bases NoSql
MongoDB
7 Volume & variété
 ~=2.3 Trillion GB de données sont générés chaque jour
 Données provenant d’humain (utilisant des appareils) ou
d’objets (IoT)
 Données de géolocalisation générées par les smartphones
 Les données capteurs, émises par presque tous les appareils en
réseau: appareils personnels de fitness (wearables)
 Les sources multimédias: caméras de sécurité, reconnaissance
faciale, etc
 Les données médicales, scientifiques, météorologiques, etc.
 Beaucoup de valeur dans ces données, mais la plupart sont
inexploitées

Faiza Ghozzi Jedidi


NoSQL Introduction
Types de bases NoSql
MongoDB
8 Les problèmes de l’évolution de la quantité
des données

 Les systèmes classiques de gestion de bases de données


ont été implémentés pour une quantité de données à
échelle limitée.

 Ces systèmes ne supportent pas l'ampleur des données que


nous produisons aujourd’hui et doivent être repensés.

 Il faut également réinvestir sur l’infrastructure tels que la


taille des machines, le processeur, la RAM, etc. qui doivent
être mis à l'échelle.

Faiza Ghozzi Jedidi


9 Les problèmes de l’évolution de la quantité
des données
 Dans ce nouveau contexte, les méthodes de traitement des
données (capture, stockage, recherche, partage, analyse,
visualisation) doivent être redéfinies vu que l'ensemble de ces
données devient difficile à gérer avec les outils classiques.

Faiza Ghozzi Jedidi


NoSQL Introduction
Types de bases NoSql
MongoDB
10 Les volumes à gérer sans précédents impliquent :

 Données hétérogènes, complexes et souvent liées


 produites par des applications parfois différentes,
 par des utilisateurs différents,
 avec des liens explicites (par exemple citations, ancres url, etc)
ou implicites (à extraire ou à apprendre)
 Nombreux serveurs/clusters
 un serveur unique ne peut stocker cette quantité d'information,
garantir des temps d'accès pour grand nombre d'utilisateur, faire
des calculs rapides, etc
 Besoin de distribuer les calculs et les données
 comme plusieurs serveurs/clusters, besoin d'algorithmes
permettant le calcul et la distribution des données à large
échelle

Faiza Ghozzi Jedidi


NoSQL Introduction
Types de bases NoSql
MongoDB
11 L’histoire des Bases de données

Data Data
Warehous Warehous
SGBDR e SGBDR e

SGBDR
NoSQL
1985 - 1995

1995 - 2010 2010 – Aujourd’hui

Pourquoi le NoSQL ?

Faiza Ghozzi Jedidi


NoSQL Introduction
Types de bases NoSql
MongoDB
12 Les SGBDRs : Les limitations
 Vous pensez vraiment qu’ils utilisent les SGBDRs ?

Faiza Ghozzi Jedidi


NoSQL
MongoDB
13 Les SGBDRs : Les limitations

Fiabilité
SGBDR

Faiza Ghozzi Jedidi


NoSQL Introduction
Types de bases NoSql
MongoDB
14 Les SGBDRs : Les limitations (Scalabilité)

Scalabilité verticale :
 Coût non linéaire
 Atteint une limite
 Point unique de défaillance

Faiza Ghozzi Jedidi


NoSQL Introduction
Types de bases NoSql
MongoDB
15 Des SGBDRs vers le NoSQL : Scalabilité
 Scalabilité verticale Scalabilité horizontale

+
CPU

+
RAM Matériel de
base

+ architecture
HDD sans partage

1970 - … 2000 - …

Faiza Ghozzi Jedidi


NoSQL Introduction
Types de bases NoSql
MongoDB
16 Des SGBDRs vers le NoSQL : Scalabilité

Scalabilité verticale :
 Coût non linéaire
 Atteint une limite
 Point unique de défaillance

Scalabilité horizontale :
Difficile avec un modèle
relationnel : Si le nombre de
liens est important, il est de
plus en plus difficile de placer
les données sur des nœuds
différents.

Faiza Ghozzi Jedidi


NoSQL Introduction
Types de bases NoSql
MongoDB
17 Des SGBDRs vers le NoSQL : Scalabilité
 Les avantages de la scalabilité horizontale :

 Fiabilité (tolérance aux pannes) : Si certaines machines tombent en panne, les


autres ne sont pas affectés et le travail ne s'arrête pas.

 Évolutivité et Flexibilité : Il est facilement possible d’étendre le système en


ajoutant plus de machines.

 Partage des ressources : Les données et les ressources sont partagées dans
un système distribué.

 Vitesse : Plus de puissance de calcul et plus de vitesse

 Performances : Fourni des performances supérieures (et un meilleur rapport


prix / performances) qu'un ordinateur centralisé.

Faiza Ghozzi Jedidi


Introduction
Types de bases NoSql

18 Des SGBDRs vers le NoSQL : Scalabilité


 Inconvénients de la scalabilité horizontale :

 Mise en réseau : L'infrastructure réseau peut créer plusieurs

problèmes tels que les problèmes de transmission, de surcharge

et de perte de messages.

 Dépannage : Le dépannage et le diagnostic sont compliqués

Faiza Ghozzi Jedidi


NoSQL Introduction
Types de bases NoSql
MongoDB
19 Des SGBDRs vers le NoSQL : Scalabilité
 Inconvénients des systèmes distribués

 Mise en réseau: L'infrastructure réseau peut créer plusieurs


problèmes tels que les problèmes de transmission, de surcharge
et de perte de messages.

 Dépannage: Le dépannage et le diagnostic sont compliqués

 Sécurité: L’accès facile au système informatique distribué


augmente le risque de sécurité, aussi, le partage des données
génère le problème de la sécurité des données

Faiza Ghozzi Jedidi


NoSQL Introduction
Types de bases NoSql
MongoDB
20 Des SGBDRs vers le NoSQL : Fiabilité
Amazon :

 Perte de 1% de chiffre d'affaires si le temps d’affichage des pages


augmente de 0,1s

 Plan qualité interne: Temps de réponse doit être < 300ms pour 99,9% des
requêtes pour un pic de 500 requêtes par secondes

Google

 pénalise les sites dont les pages s’affichent en plus de 1,5s

Faiza Ghozzi Jedidi


NoSQL Introduction
Types de bases NoSql
MongoDB
21
Des SGBDRs vers le NoSQL : Concurrence

SGBDR (ACID) NoSQL (BASE)


 Atomicity : toute la transaction  Basically Available : le système
réussisse ou la transaction entière doit toujours être accessible
est annulée.
 Soft-state : La base NoSQL n’a
 Coherence: Une transaction ne pas à être cohérente à tout
peut pas laisser la base de
instant (après les mises à jour
données dans un état incohérent
ou l’ajout/suppression de
 Isolation: les transactions ne serveurs)
peuvent pas interférer les unes
avec les autres  Eventually consistent : À
terme, la base atteindra un
 Durability: les transactions
état cohérent
validées persistent même en cas
de problèmes

Faiza Ghozzi Jedidi


NoSQL Introduction
Types de bases NoSql
MongoDB
22 Des SGBDRs vers le NoSQL : Concurrence
 Exemple d’Amazon

Lors qu’un client clique sur le


bouton «acheter» Faut-il ?

Faiza Ghozzi Jedidi


NoSQL Introduction
Types de bases NoSql
MongoDB
23
Évaluation de connaissances
 Quel est le principal défi des bases de données relationnelles
traditionnelles ?
 Gérer des données semi-structurées et non structurées

 Gérer des données structurées


 La technologie NoSQL est…
 Une nouvelle génération de bases de données non relationnelles,
distribuées, open source, sans schéma et évolutives verticalement

 Une nouvelle génération de bases de données non relationnelles,


distribuées, open source, sans schéma et évolutives
horizontalement

Faiza Ghozzi Jedidi


NoSQL
MongoDB
24
Évaluation de connaissances
 Quel est le principal défi des bases de données relationnelles
traditionnelles ?
 Gérer des données semi-structurées et non structurées

 Gérer des données structurées


 La technologie NoSQL est…
 Une nouvelle génération de bases de données non relationnelles,
distribuées, open source, sans schéma et évolutives verticalement

 Une nouvelle génération de bases de données non relationnelles,


distribuées, open source, sans schéma et évolutives
horizontalement

Faiza Ghozzi Jedidi


NoSQL Introduction
Types de bases NoSql
MongoDB
25
Évaluation de connaissances
 Les avantages de NoSQL sont…
 Haute performance, mise à l'échelle horizontale, mécanisme de
stockage flexible et simple

 Atomicité, cohérence, isolation et durabilité

 Les propriétés BASE de NoSQL signifient qu'une application


fonctionne et que les données sont cohérentes à tout moment
 Vrai

 Faux

Faiza Ghozzi Jedidi


NoSQL Introduction
Types de bases NoSql
MongoDB
26 Évaluation de connaissances
 Les avantages de NoSQL sont…
 Haute performance, mise à l'échelle horizontale, mécanisme de
stockage flexible et simple

 Atomicité, cohérence, isolation et durabilité

 Les propriétés BASE de NoSQL signifient qu'une application


fonctionne et que les données sont cohérentes à tout moment

 Vrai

 Faux

Faiza Ghozzi Jedidi


NoSQL Introduction
Types de bases NoSql
MongoDB
27 Not Only SQL
 Données non-structurées
 Pas de schéma
 Pouvoir s’adapter à des nouvelles données
 Stocker au fur et à mesure et traiter plus tard
 Langage de requête non-standardisé
 Spécifique à chaque système

Faiza Ghozzi Jedidi


NoSQL Introduction
Types de bases NoSql
MongoDB
28 Not Only SQL
 Non basés sur le modèle relationnel

 Données volumineuses

 Sans schéma de données

 Évolutivité horizontale, distribuée

 Réplication des données

 Requêtes concurrentes rapides

 Haute disponibilité et tolérance aux pannes

 Axé sur les performances plutôt que sur la cohérence

Faiza Ghozzi Jedidi


NoSQL Introduction
Types de bases NoSql
MongoDB
29 Du Relationnel au NoSQL

Relationnel Colonne Clé-valeur

Data
Warehouse Graphe Document

Faiza Ghozzi Jedidi


NoSQL Introduction
Types de bases NoSql
MongoDB
30 NoSQL Landscape

Taille des données

Clé-Valeur

Colonne

Document

Graphe
Relationnel

Complexité des
données

Faiza Ghozzi Jedidi


NoSQL Introduction
Types de bases NoSql
MongoDB
31 Théorème CAP
 Théorème de Brewer (2000)
 3 propriétés fondamentales pour les systèmes distribués
 Cohérence (Coherency)
 Tous les nœuds voient la même version
 Disponibilité (Availability)
 Chaque requête obtient une réponse
 Résistance au partitionnement (Partition tolerance)
 Perdre un nœud ou un message ne bloque pas le système
 Théorème : aux plus deux propriétés sur les trois

Faiza Ghozzi Jedidi


NoSQL Introduction
Types de bases NoSql
MongoDB
32 Théorème CAP
 Illustration

Faiza Ghozzi Jedidi


NoSQL Introduction
Types de bases NoSql
MongoDB
33 Théorème CAP

Faiza Ghozzi Jedidi


NoSQL Introduction
Types de bases NoSql
MongoDB
34 Évaluation de connaissances
 Le théorème CAP signifie que…
 NoSQL prend en charge des performances élevées, une mise à
l'échelle horizontale, un mécanisme de stockage flexible et simple.

 Une base de données NoSQL peut prendre en charge deux critères


de cohérence, de disponibilité ou de tolérance de partition

 Laquelle de ces propriétés ne fait pas partie du théorème de CAP :

 Distribution

 Cohérence

 Atomicité

 Disponibilité

Faiza Ghozzi Jedidi


NoSQL Introduction
Types de bases NoSql
MongoDB
35 Évaluation de connaissances
 Le théorème CAP signifie que…
 NoSQL prend en charge des performances élevées, une mise à
l'échelle horizontale, un mécanisme de stockage flexible et simple.

 Une base de données NoSQL peut prendre en charge deux critères


de cohérence, de disponibilité ou de tolérance de partition

 Laquelle de ces propriétés ne fait pas partie du théorème de CAP :

 Distribution

 Cohérence

 Atomicité

 Disponibilité

Faiza Ghozzi Jedidi


NoSQL Introduction
Types de bases NoSql
MongoDB
36 Les familles des SGBDs NoSQL

BDs de documents
BDs clé-valeur
- Utilisation: travailler avec des
- Utilisation: données en évolution
données parfois
rapide et haute disponibilité (ex.
changeantes/cohérentes (ex.
Cotations et prix de la bourse)
systèmes CRM)
- BDs populaires: Riak, Redis, Azure
Bases de données populaires:
Table Storage
BD CouchDB, MongoDB
NoSQL
BDs de colonnes larges BDs de graphes
- Utilisation: applications gourmandes - Utilisation: stockage de données
en lecture/écriture (ex. réseaux spatiales (Ex: systèmes d'information
sociaux) géographique)
- BDs populaires: HBase, Cassandra - BDs populaires: Neo4j, BigData

Faiza Ghozzi Jedidi


NoSQL Introduction
Types de bases NoSql
MongoDB
37 Clé- valeurs
 "HashMap” distribué
 Couple Clé+Valeur
 Pas de schéma pour la valeur (chaine, objet, entier, binaires…)
qui peut donc être différente pour chaque objet
 Conséquences
 Pas de structure ni de types
 Pas d’expressivité d’interrogation (pré/post traitement pour
manipuler concrètement les données)

Faiza Ghozzi Jedidi


NoSQL Introduction
Types de bases NoSql
MongoDB
38 Le modèle Clé-Valeur

Conteneur
de données

Faiza Ghozzi Jedidi


NoSQL Introduction
Types de bases NoSql
MongoDB
39 Clé- valeurs
 Exemple

Faiza Ghozzi Jedidi


NoSQL Introduction
Types de bases NoSql
MongoDB
40 Clé- valeurs : CRUD
 CREATE ( clé, valeur )
 CREATE ("Nicolas",
"type:'prof',lieu:'CNAM',spec:'BDD,NoSQL',interets:'BZH,Star Wars' ")
 OK
 READ( clé )
 READ("Nicolas") 
"type:'prof',lieu:'CNAM',spec:'BDD,NoSQL',interets:'BZH,Star Wars' "
 UPDATE( clé, valeur )
 UPDATE("Nicolas", "type:'prof',lieu:'CNAM,CS',spec:'BDD,NoSQL' ")
 OK
 DELETE( clé )
 DELETE("Nicolas")  OK

Faiza Ghozzi Jedidi


NoSQL Introduction
Types de bases NoSql
MongoDB
41 Clé- valeurs : solutions

Efficacité Facilité de mise en œuvre

 Exemples d’utilisation:
 Logs de sites Web ou d’application  Cache Web ou BD
 Profils utilisateurs de site  Paniers sur sites de e-
 Web/réseaux sociaux
commerce

 Données de capteurs …

Faiza Ghozzi Jedidi


NoSQL Introduction
Types de bases NoSql
MongoDB
42 Orienté document
 Collection de documents
 Clé/Valeur
 On regarde dans la valeur
 Indexation
 Identifiant unique par document
 Avantages et inconvénients
 Modèle simple mais puissant
 Requêtes complexes possibles
 Mauvais passage à l’échelle pour des requêtes complexes

Faiza Ghozzi Jedidi


NoSQL Introduction
Types de bases NoSql
MongoDB
43 Orienté document : Exemple

Faiza Ghozzi Jedidi


NoSQL Introduction
Types de bases NoSql
MongoDB
44 Orienté document : Solutions

Requêtes riches Gestion d'objets


 Exemples d’utilisation:
 Gestion de contenu: bibliothèques numériques, collections de
produits, dépôts de logiciels « xxxStores », collections multimédia,
etc
 Collection d’événements complexes
 Gestion de boîtes email
 Gestion des historiques d’utilisateurs sur réseaux sociaux

Faiza Ghozzi Jedidi


NoSQL Introduction
Types de bases NoSql
MongoDB
45 Orienté colonne
 Stockage colonne par colonne
 Schéma peut être dynamique (d’un tuple à l’autre)
 Et pas ligne par ligne
 Indexation
 Par colonne
 Avantages et inconvénients
 Passe à l’échelle
 Lecture difficile pour des données complexes
 Facile d’ajouter une colonne (pas une ligne!)

Faiza Ghozzi Jedidi


NoSQL Introduction
Types de bases NoSql
MongoDB
46 Orienté colonne
 Exemple

Faiza Ghozzi Jedidi


NoSQL Introduction
Types de bases NoSql
MongoDB
47 Orienté colonne
 Interrogation
 Requêtes sur les colonnes
 Combien de professeurs (type) à CentraleSupelec (lieu)

Faiza Ghozzi Jedidi


NoSQL Introduction
Types de bases NoSql
MongoDB
48 Le modèle à base de colonnes
 Dans une famille de colonnes (Super-Colonnes), les colonnes (Super-
Colonnes) sont regroupées par ligne et chaque ligne est identifiée par un
identifiant unique

Une famille de colonnes contenant 3 lignes, chaque ligne


Un Keyspace qui contient des familles de contient son propre ensemble de colonnes
colonnes

Faiza Ghozzi Jedidi


NoSQL Introduction
Types de bases NoSql
MongoDB
49 Le modèle à base de colonnes
 Dans une famille de colonnes :
 Le nombre de colonnes est dynamique

 Les colonnes peuvent varier d’une ligne à une autre (différents noms,
types, etc.) ce qui évite de retrouver des colonnes ayant des valeurs NULL

Famille de Colonnes : Famille de Super-Colonnes


Utilisateurs :
Services

Clé Colonnes Clé Super-Colonnes


Nom Numéro Téléphone Voice SMS
Peter
Peter 234786459 994398909 Peter Type Balance Type Amoun
Default 20 Default t
10
Nom Numéro
Joseph
Joseph 234786459
Voice
Joseph Type Balanc
Enterprise e
60

Faiza Ghozzi Jedidi


NoSQL Introduction
Types de bases NoSql
MongoDB
50 Orienté colonne : Solutions

Agrégations Corrélations
 Exemples d’utilisation:
 Comptage (vote en ligne, compteur, etc)
 Journalisation
 Recherche de produits dans une catégorie (Ebay)
 Reporting large échelle (agrégats calculés sur une colonne)

Faiza Ghozzi Jedidi


NoSQL Introduction
Types de bases NoSql
MongoDB
51 Orienté graphe
 Stockage des nœuds, relations et propriétés
 Théorie des graphes
 Interrogation par traversées de graphe
 Appel des données sur demande (parcours performants)
 Modélisation non triviale
 Stockage de données avec beaucoup de relations complexes
 Évitant les jointures
 Avantages et inconvénients
 Beaucoup de données ressemblent à des graphes
 Approprié pour parcourir les relations
 Pas pour filtrer selon des contraintes

Faiza Ghozzi Jedidi


NoSQL Introduction
Types de bases NoSql
MongoDB
52 Orienté graphe
 Exemple :

Faiza Ghozzi Jedidi


NoSQL Introduction
Types de bases NoSql
MongoDB
53 Orienté graphe
 Requêtes sur les graphes
 Personnes faisant des vacations à Paris et à Gif-sur-Yvette

Faiza Ghozzi Jedidi


NoSQL Introduction
Types de bases NoSql
MongoDB
54 Orienté graphe

Réseaux Recommandation

Faiza Ghozzi Jedidi


55
Le modèle à base de graphe : exemples

 Neo4J

 OrientDB

 Titan

Faiza Ghozzi Jedidi


NoSQL Introduction
Types de bases NoSql
MongoDB
56 DB engine Ranking

Faiza Ghozzi Jedidi


57 Les avantages et les inconvénients du
NoSQL

Avantages Inconvénients

 Gère des données plus volumineuses  Pas de standardisation


et un nombre de transaction plus  De nombreux langages de
élevés que SGBDRs manipulation de données (réduit la
 Haute évolutivité (avec des clusters transférabilité des compétences)
de matériel de base plutôt que des  Pas de schéma, réduit la
serveurs spécialisés) maintenabilité de la base de
 Coût de démarrage et d’expansion données
réduit  La notion de document pose un défi
 Calcul distribué lors de l'analyse des données
 Flexibilité du schéma, données semi-  La cohérence finale n'est pas
structurées intuitive à programmer pour
 Pas de relations compliquées

Faiza Ghozzi Jedidi

Vous aimerez peut-être aussi