Bases données NoSQL
Introduction
Ces systèmes permettent le stockage et l’analyse du Big
Data. Ils sont aussi utilisées dans les applications web en
temps réel.
NoSQL signifie not only SQL.
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 fixe.
Les jointures ne sont plus nécessaires, et le scaling est
facilité.
Les systèmes NoSQL sont compatibles avec une large variété
de technologies permettant le stockage de données
structurées, non structurées, semi-structurées ou
polymorphique.
NoSQL ex. stockage des caractéristique des produits.
Propriétés du NoSQL
L’absence ou la flexibilité des schémas. Donc on aura pas à
définir un schéma fixe pour notre base de données avant
d’entamer la conception, et plus tard, ça sera facile
d’ajouter des documents qui ont des propriétés en plus.
La dernière caractéristique d’une base de données NoSQL est
d’être distribuée.
Ces bases de données ne nécessitent pas de normalisation de
données ou de mapping relationnel.
Il est possible d’interagir sans utiliser de langages de
requête complexe.
Types de bases de données NoSQL
Bases données NoSQL 1
1. Clé-valeur — C’est comme un dictionnaire. La clé est
unique. La valeur peut être un JSON, un objet BLOB, une
ligne de code ou autre.
2. Colonnes — ou bien Column-based database, chaque colonne
sera stockée séparement, c’est utilisé pour l’analyse de
données.
3. 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. Il est ainsi facile de
visualiser les relations entre les noeuds. Chaque noeud et
chaque bord ont un identifiant unique.
4. Documents — La différence avec clé-valeur est stockée sous
forme de document au format JSON ou XML ou une table. La
valeur est ainsi comprise par la base de données et peut
être trouvée à l’aide d’une requête.
Avantages de NoSQL
L’implémentation est plus simple qu’avec les RDBMS. Le
schéma flexible peut être altéré facilement sans
interruption.
Elles conviennent lorsque les relations entre les données
ne sont pas spécialement importantes.
Questions
Les propriétés déjà vus sont ACID, RICE, CAP et BASE.
Les propriétés ACID sont utilisées afin de garantir
l’intégrité des données. Chaque transaction qui
s’éxecute doit répondre à ces propriétés.
Atomicité — Tout changement effectué doit être
accompli jusqu’au bout. En cas d’interruption, le
changement doit être annulé. Donc on a pas une
execution partielle.
Bases données NoSQL 2
Cohérence — Une transaction n’enfreigne les
contraintes d’intégrité des données fixées pour une
database. Si elle le fait, elle sera abondonnée par
le système.
Isolation — Toute écriture ou lecture effectuée dans
la base de données n’impacte pas l’écriture ou la
lecture d’autres transactions survenant sur la même
database.
Durabilité — Assurer que tout changement apporté à la
base de données soit permanent, même en cas de panne
du système. Utilisation des fichiers log.
Les propriétés RICE. Ceux sont les propriétés du modèle
objet relationnel.
Réutilisation — Le but de la programmation orientée
objet. Il vise à créer des objets qui vont etre
réutilisés après (héritage, composition, etc).
Identité — Chaque objet est identifié d’une manière
unique.
Complexité — Définir des objets complexes.
Encapsulation — Chaque objet est vu comme boite noir.
Les propriétés BASE d’une base de données NoSQL.
Basically, Available — The system works all the time
(available in case of failure).
Soft State — The data source does not have to be
consistent all the time
Eventual consistency — Data Coherence at a certain
point isn’t assured.
Propriété CAP dans les base de données.
Consistency, Availability & Partition Tolerance.
Bases données NoSQL 3
Une base de données Oracle contient plusieurs schéma de
données, par contre, une base de données NoSQL contient un
seul schéma de données.
Dans le relationnel on parle de DDL, DML, et DCL. Dans le
non-relationnel on parle pas de DDL, y a pas un schéma
initial. Par exemple, il suffit de créer un document
nouveau avec un nom d’une collection qui n’existe pas et
cette dernière sera automatiquement créé.
En NoSQL, on a les collections qui contiennent des
documents.
Kind of, table sera remplacée par collection, et tuple
par document.
Quand inclure JSON dans BDD Relationnel?
1. Quand on a un système plus relationnel que non
relationnel (98% des données sont relationnel).
2. Quand on veut etendre la base de données.
Bases données NoSQL 4