Vous êtes sur la page 1sur 3

Ch5: NoSQL

NotOnlySQL (2010) : Regroupe toutes les BDD non relationnelles qui n'utilisent pas uniquement SQL
comme moyen d'accès. --> ne remplace pas le relationnel ms c'est une alternative, un complément qui
peut etre plus intéressant dans certains contextes.

* Arrivé des géants du web


* Nécessité de gérer des grandes masses de données distribuées dans plusieurs Data centers
* Objets complexes et hétérogènes.

Nouvelles approches pour gérer les données et les stocker :


1/ s'adapter au changement de l'éhelle --> Scalabilité
horizontale : nbr data centers
verticale : les données augmentent en volume.
2/ On peut ajouter des attributs meme si on l'avait définit déja --> Pas de modélisation préalable fixe
( juste un modèle conceptuel)
3/Ne présente plus les limotes du SGBD relationnel.

SGBD relationnels sont transactionnels et vérifient les contraintes ACID ( Atomicity, Consistency,
isolation,Durability) qui est couteux et difficile à maintenir dans le contexte distribué des données.
Et ont un système d'intégrété : veut dire que les tanbles contiennent des attributs pour définir d'autres
tables pour faire la jointure --> couteux

NOSQL s'adapte plus ou on a plus de lecture que de mise à jour car il focuse sur la tolérance et les
performances de lecture.
Un SGBD NoSQL n'est pas structuré en table et le langage de requètes n'est pas forcément SQL , they
depend on the type of the BDD.
Données sont dénormalisées et agrégées --> non structuré ( une seule entité unique)

Avantages de NOSQL:
1/ Adaptation au Big Data (Vitesse, Variérty, Volume, Complexité
2/ Capacité transactionnelles modernes : Nv principe de transactionnaliré avec les propriétes BASE.
3/ Disponibilité continue de données: Si un noeud tombe en panne le système n'arrete pas de
fonctionner ( redondance de données )
4/ Indépendance de l'emplacement : modifier sans etre besoin de savoir ou sont les données .
5/ Modèle de données flexible : il y a pas un schéma unique à respecter
6/ BI et analyse : extraire une masse d'informations décisionnelles.

ACID:
Atomicity : toutes les instructions exécutées ou aucune
Consistency : une transaction amène la BD d'un état valide à un autre
Isolation : Meme si plsr transactions peuvent se passer simultanément, une ne doit pas voir les efftes
emis par les autres
Durability : une fois une transaction est faite, ses modifications sont persistantes.

Théorème CAP: Consistency,Availability,Partition tolerance " il est impossible de satisfaire les 3


propriétes CAP en mm temps "
Consistency : tous les noeuds du système voit les meme données au meme moment.
Availability: La perte d'un noeud n'empeche pas les survivants de continuer à fonctionner, et les données
restent accessibles
Partition tolerance : Les osus systèmes ne dépond pas de leurs liasons avec les autres pour fonctionner
( chacun travaille en autonome )

SGBDR assure AC
NOSQL : Assure AP , PC

Propriétés BASE: Plus flexible


Basically Available: Availability in CAP
Soft-State: Etat du système peut changer dans le temps mm sans entrée --> Consistency
Eventual consistency : Les modifications arrivent éventuellement à tous les serveurs, si on leurs donne
suffisament de temps.

Typologie des BDD NoSQL:


1/ Type " clé-valeur ": Voldemort
chaque objet a une clé unique pour le requéter et un valeur ( un bloc de données)
TLa BDD est une table de hashage distribué avec les opérations : create , delete , update, read .
+) Simple , scalable , disponiblité
-) interrogation seulement sur clé , pas de données complexes ...

2/ Type Colonne - based: Cassandra


Données stockées par colonne et non pas par ligne
Comme le relationnel mais en transposé et le nbr de colonnes dynamiques et chacune à sa structure
( pas de valeur NULL)
Colonne : structure de base représente un champ de données définie par uene clé-valeur
regroupées par ligne dont chacune à un id.
colonnes peuvent etre statiques ou bien dynamiques .

3/ Type Orientée Document : MongoDB


clé valeur avec une valeur sous forme d'un Document de données semi-structurées en format Json ou
XML.
une valeur contient une liste de champs ou d'autres couples clé-valeurs.
Donne la capacité de faire des requetes sur le contenu des valeurs .
+) simple et puissant , bonne mise à l'échelle
-) inadapté pour les données interconnectées , modèles de requetes limitées aux clés et indexes

4/ Type Orientée graphe: Neo4j


bases sur la théorie des graphes avec des noeuds, de relaitions (arcs) et de propriétés.
+) puissant, rapide dans les données liées.
-) Fragmentation

MongoDB: Base de données NOSQL orientée document open source. (Json)


Json : format de représentation logique de données independament des longages qui l'utilisent.

Schema-less : on peut pas modéliser une collection pas un schema logique .


génère une clé pour chaque collection .
architecture cliet - serveur avec le client dans le mongo shell
pour créer une collection on fait directement accés à la base de données:
use db1
db.col1.insert({document en format json})
show dbs : show all databases
show collections :
db.col1.find() : voir le contenu de col1
mongo db associe un id à tout doc cré.
db.col1.find(Docjson,DocJson2)
Docjson1 : restriction
Docjson2 : projection

Vous aimerez peut-être aussi