Base de données NoSQL
Professeur: Houda Alaya
1
Chapitre 2 –
Les Bases de données NoSQL de
type Clé-Valeur
Houda Alaya
2
SQL
Tables
Contraintes
Relations
3
SQL
4
NoSQL
• Base sans schéma (Données Non structurées)
• Repose sur le couple Clé/Valeur.
• La clé identifie la donnée de manière unique et permet de la gérer.
• La valeur contient n'importe quel type de données.
• Une base de données clé-valeur stocke les données sous forme de paires
clé-valeur dans lesquelles une clé sert d'identifiant unique
• Les clés et les valeurs peuvent se présenter sous toutes les formes, des objets
simples aux objets composés complexes
5
NoSQL
6
NoSQL
7
SQL ou NoSQL
8
Exemples
Phone Directory
Key Value
Bob 1234567890
Jane 2345678901
Tara 3457689012
Des données simples: Chaine, Entier, … 9
Exemple 2
Artist Info
Key Value
artist1:name AC/DC
artist1: genre Hard Rock
artist2:name Slim Dusty
artist2: genre Country
Type: Objets 10
Exemple 3
Stock Trading
Key Value
123456789 APPL, Buy, 100, 84.47
234567890 CERN, Sell, 50, 52.78
345678901 JAZZ, Buy, 235, 145.06
Type:
Liste contenant le numéro de l’opération, le type ( Buy/Sell), le 11
nombre de pièces et le prix.
Exemple 4
12
SGBD NoSQL
• Base de données NoSQL
• Enregistrer les données sous forme de documents, Syntaxe JSON
13
JSON
• JavaScript Object Notation
• Format de données textuelles dérivé de la notation des objets du langage
JavaScript.
14
Données JSON - Un nom et une valeur
• Si le fichier représente un objet, sa racine est {}.
• Si le fichier représente un tableau, sa racine est [].
• Définition d'un attribut d'un objet en JSON :
"nomClé" : "valeur"
Exemple: "name":"John"
• En JSON, les clés doivent être des chaînes, écrites entre des guillemets
15
Valeurs JSON
• Dans JSON , les valeurs doivent être l'un des types de données suivants :
• un string
• un numéro
• un objet
• un tableau
• un booléen
• nul
16
Chaînes JSON
• Les chaînes en JSON doivent être écrites entre guillemets doubles.
• Exemple
{"name":"John"}
17
Numéros JSON
• Les nombres dans JSON doivent être un entier ou une virgule flottante.
• Exemple
{"age":30}
18
Objets JSON
• Les valeurs dans JSON peuvent être des objets.
• Exemple
{"employee":{"name":"John", "age":30, "city":"New York"}}
19
Tableaux JSON
• Les valeurs dans JSON peuvent être des tableaux.
• Exemple
{"employees":["John", "Anna", "Peter"]}
20
Booléens JSON
• Les valeurs dans JSON peuvent être vrai/faux.
• Exemple
{"sale":true}
21
JSON nul
• Les valeurs dans JSON peuvent être nulles.
• Exemple
{"middlename":null}
22
JSON - Exemple
23
Exemple 1
• Ajoutez des objets étudiants dans le tableau "etudiants".
• Chaque objet étudiant possède deux attributs à sa racine :
l'attribut nom (string) et l'attribut prenom ( string)
24
Exemple 1
25
Exemple 2
• cours, de type string.
• semestre, de type string.
• annee, de type number.
• etudiants, de type tableau
26
Exemple 2
27
Exemple 3
• On souhaite réaliser une base de données orientée documents pour gérer des
cours et des étudiants, étant données les informations suivantes :
• Un cours est décrit par les attributs code, titre, description, crédits et prérequis.
• Les prérequis sont d'autres cours.
• Un étudiant est décrit par les attributs nom, prénom, adresse.
• Les adresses sont composées d'un numéro de rue, d'une rue, d'une ville et d'un code
postal.
• Un étudiant suit plusieurs cours et les cours sont suivis par plusieurs étudiants.
28
Exemple
29
Exemple
• Proposer un exemple JSON équivalent à ce que l'on aurait fait en relationnel
normalisé (sachant que ce type de solution ne sera généralement pas favorisé
en BD orientée document).
30
Exemple
31
32
Proposer un exemple JSON basé sur les références
33
Proposer un exemple JSON basé sur les références
34