0% ont trouvé ce document utile (0 vote)
138 vues20 pages

Introduction aux bases de données NoSQL

Transféré par

Aeroe Officiel
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
138 vues20 pages

Introduction aux bases de données NoSQL

Transféré par

Aeroe Officiel
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

1

BASE DE DONNÉES
NoSQL
2

NoSQL
• Fournit un modèle de base de données différent du
modèle relationnel ou objet

• NoSQL veut dire « Not Only SQL »

• Les modèles pour les bases de données NoSQL datent


des années 1960

• Regain de popularité vers la fin des années 2000


3

NoSQL
• Principalement utilisé sur des clusters de serveurs

• Permet un modèle qui peut s’étendre plus facilement


(scalability)

• Assouplit les contraintes habituellement présentes sur les


bases de données relationnelles

• Permet de gérer rapidement des tonnes de données


4

NoSQL
• Les entreprises du WEB 2.0 avaient besoin de solutions
technologiques plus adaptées à leurs besoins

• Développement des systèmes NoSQL propriétaires


• Facebook → Cassandra, Hbase
• Google → BigTable
• LinkedIn → Projet Voldemort
• Amazon → DynamoDB, SimpleDB
• Twitter → Cassandra
5

Théorème CAP
• Énoncé par Eric Brewer en 1999

• Indique qu’il est impossible, pour un système distribué, de


garantir en même temps les trois contraintes suivantes
• Cohérence : Tous les nœuds du système voient les mêmes
données au même moment
• Disponibilité : Toutes les requêtes reçoivent une réponse
• Tolérance au partitionnement : Aucune panne ne doit empêcher
le système de répondre correctement (sauf une coupure complète
du réseau)

• Il est possible de garantir 2, mais pas 3 contraintes


6

Théorème CAP

• Habituellement, un système de gestion de base de


données garantit la cohérence et la disponibilité

• Il existe par contre un temps incompressible entre la mise


à jour d’un nœud et sa synchronisation avec les autres

• Ce temps peut avoir un grand impact sur un système très


chargé
7

Théorème CAP

• Les bases de données NoSQL tendent à privilégier la


disponibilité et la tolérance au partitionnement

• Il peut être préférable que deux personnes faisant la


même recherche sur Google obtiennent des résultats
différents que pas de réponses du tout

• Facebook, Twitter, etc. utilisent le même principe


8

Théorème CAP

• Les bases de données NoSQL sont pratiques dans


certaines situations
• Requiert une bonne tolérance au partitionnement
• Requiert une disponibilité à toute épreuve
• Gère un énorme trafic simultané sur un système distribué

• Les bases de données relationnelles peuvent aussi


répondre à ces critères
• Souvent plus difficiles à mettre en place par contre
9

NoSQL - Types
• Il existe différents types de bases de données NoSQL
• Colonne
• Clé/Valeur
• Document
• Graphe
• Etc.

• Les types Document et Graphe sont basés sur le type


Clé/Valeur
10

NoSQL - Colonne
• Les données sont sauvegardées dans des colonnes
• L’inverse des BD relationnelles où les données sont par rangées

• Offre une très grande vitesse

• Très efficace lorsque les données des colonnes se


ressemblent

• Adapté à l’interrogation de données

• Peu efficace pour la mise à jour des données


11

NoSQL – Clé/Valeur
• Chaque entrée de la base de données est représentée
par une clé et une valeur quelconque

• La valeur est une donnée non structurée

• Permet de sauvegarder une très grande quantité de


données facilement

• La recherche dans les valeurs n’est pas évidente


• Les données n’ont aucune structure
12

NoSQL – Document
• Spécialisation du concept de clé/valeur

• La valeur est un document


• Forme structurée d’une valeur

• Les documents n’ont pas à être tous pareils

• Permet une recherche plus efficace dans les données

• Les documents ont habituellement un format particulier


• XML, JSON, BSON, etc.
13

NoSQL – Graphe
• Basé sur la théorie des graphes

• Pratique lorsque les relations entre les données peuvent


être représentées sous forme de graphes

• Plus complexe à utiliser

• Les requêtes et les mises à jour de grandes quantités de


données peuvent être très lentes
14

NoSQL – Comparaison

Modèle Performance Évolutivité Flexibilité Complexité Fonctionnalité


Variable
Clé/Valeur Élevée Élevée Élevée Aucune
(Aucune)
Colonne Élevée Élevée Modérée Faible Minimale
Variable
Document Élevée Variable Élevée Faible
(Faible)
Théorie des
Graphe Variable Variable Élevée Grande
graphes
15

Paradigme ACID - BASE


• L’acronyme ACID veut dire
• Atomique (Atomicity)
• Consistent (Consistency)
• Isolation (Isolation)
• Durable (Durability)

• L’acronyme BASE veut dire


• Basically Available, Soft state, Eventual consistency

• Les bases de données relationnelles et orientées objet


respectent les principes ACID, les bases de données
NoSQL respectent les principes BASE
16

Paradigme ACID - BASE


• Atomique (Atomicity)
• Chaque transaction est effectuée en entier ou pas du tout

• Consistent (Consistency)
• Toutes les données écrites respectent les contraintes d’intégrités
• L’état de la base de données est toujours valide

• Isolation (Isolation)
• Une exécution en parallèle des transactions donne le même
résultat qu’une exécution en série

• Durable (Durability)
• Une fois les données écrites, elles restent écrites
17

Paradigme ACID - BASE


• Les principes ACID impliquent qu’une base de données
répartie sur plusieurs serveurs doit retourner les mêmes
valeurs pour une même requête

• C’est problématique dans certaines situations

• Certains logiciels peuvent fonctionner même si les


résultats ne sont pas les mêmes
• Est-ce grave si votre page Facebook n’affiche pas exactement tout
ce que vos amis viennent de publier, tant qu’éventuellement, vous
êtes capable de voir ces publications?
18

Paradigme ACID - BASE


• Les systèmes NoSQL fonctionnent sur ce principe

• Les données et l’état de la base de données seront


éventuellement cohérents et consistants

• L’important est que l’accès soit toujours permis

• Ne s’appliquent pas à tous les problèmes


• Un système de transaction en ligne ne peut se permettre cette
relaxation des contraintes!
19

Paradigme ACID - BASE

• Si la cohérence des données est primordiale, les


systèmes NoSQL ne sont probablement pas les plus
intéressants

• Quoi faire lorsqu’on a besoin d’un système distribué


• Pour répondre à un fort achalandage
• Qui garantit la cohérence des données
• Qui garantit les propriétés ACID?
20

Base de données NewSQL

• Un nouveau type de base de données relationnelle

• Cherche à fournir la même puissance évolutive que les


bases de données NoSQL, mais en garantissant les
propriétés ACID standards

• Pourra peut-être réconcilier SQL et NoSQL?

Vous aimerez peut-être aussi