Département Informatique,
Faculté des sciences, Université
Ibn Tofail, Kénitra
Introduction au
NoSQL
Présenté par:
SAIS MANAR
Master Big Data & Cloud Computing 2023/2024
Plan
1 INTRODUCTION
2 BDD RELATIONNELLES (SGBDR)
3 LES PRINCIPALES BASES DEDONNÉES NOSQL
4 PROPRIÉTÉS ACID (SGBDR) et BASE(NoSQL)
DIFFÉRENTS TYPES DE BASE DE DONNÉES
5 NOSQL
6 Présentation de REHDFS
Historique
Notion de Base de Données et
de Modèle Relationnel
Les Bases de données
❖ Une base de données est un ensemble structuré et organisé permettant le stockage de grandes
quantités d’informations afin de faciliter l’exploitation. Ces informations sont en rapport avec
une activité donnée et peuvent être utilisées par des programmes ou des utilisateurs communs.
Les Bases de données
❖ Une base de données est un ensemble organisé de données structurées, généralement stockées et
accessibles électroniquement à partir d'un système informatique. Voici quelques points clés pour
résumer ce concept :
• Organisation : Les données sont organisées en tables, qui sont composées de
lignes (enregistrements) et de colonnes (champs).
• Gestion : Les bases de données sont gérées par des systèmes de gestion de bases
de données (SGBD), comme MySQL, PostgreSQL, Oracle, etc.
• Accès : Les utilisateurs peuvent interroger, manipuler et gérer les données via des
langages de requête, comme SQL (Structured Query Language).
• Sécurité : Elles incluent des mécanismes pour sécuriser les données et contrôler
les accès.
• Intégrité : Elles assurent l'intégrité et la cohérence des données.
Qu'est-ce que le SQL ?
▪ SQL signifie "Structured Query Language" (Langage de requête structuré)
est un langage de programmation utilisé pour gérer et manipuler des bases
de données relationnelles. Il permet d'écrire des requêtes de base de données
pour récupérer, insérer, mettre à jour et supprimer des données (opérations
CRUD).
▪ De plus, il permet la création de tables et l'exécution de requêtes de
jointure. Par exemple, ces requêtes sont construites en utilisant des
mots-clés spécifiques (ex : SELECT, JOIN), une syntaxe et un format
particuliers avec des paramètres ,
SELECT id, name, price from PRODUCT
Le modèle relationnel
▪ Le modèle relationnel est une manière de modéliser les relations existantes
entre plusieurs informations, et de les ordonner entre elles. Cette modélisation
qui repose sur des principes mathématiques mis en avant par E. F. Codd est
souvent retranscrite physiquement dans une base de données.
▪ Les objets de base souvent référencés dans la modélisation relationnelle sont:
✓ Les domaines
✓ Les relations
✓ Les attributs
✓ Les degrés
✓ Les tuples
La structure de la base de données : Relationnelle
✓ Les bases de données relationnelles prennent en charge le SQL. Elles sont
constituées d'un ensemble de tables.
✓ Chaque table contient un ensemble de champs et de nombreux enregistrements.
✓ En utilisant SQL, les données doivent suivre un schéma strict (ensemble de
champs).
✓ Chaque nouvel enregistrement doit avoir l'ensemble des champs définis lors de la
création de la table. Il ne peut pas avoir plus de champs !
La structure de la base de données : Relationnelle
✓ Tous les enregistrements doivent être normalisés pour adhérer au même
schéma (STRICT).
La structure de la base de données : Relations
✓ La base de données relationnelle possède plusieurs tables qui sont
RELIÉES.
La structure de la base de données : types de relations
✓ La base de données relationnelle possède plusieurs tables qui sont
RELIÉES.
Le SGBD relationnel
▪ Le SGBD est un ensemble de logiciels informatiques qui sert à manipuler les
bases de données, à effectuer des opérations ordinaires telles que consulter,
modifier, construire, transformer, copier, sauvegarder ou restaurer des bases
de données.
Système de Gestion de Bases de Données Relationnelles (SGBDR)
Composant de Composant
stockage de gestion
Le SGBD Relationnel
Un système de bases de données relationnelles est constitué de:
▪ Moteur de stockage : Gère le stockage physique des données sur le
disque et leur récupération en mémoire lors des opérations.
▪ Moteur de requêtes : Interprète et exécute les requêtes SQL,
optimisant leur traitement pour assurer des performances efficaces.
▪ Optimiseur de requêtes : Analyse les requêtes SQL pour déterminer
le plan d'exécution le plus efficace, en sélectionnant les meilleures
stratégies d'accès aux données et les méthodes de jointure.
▪ Gestionnaire de transactions : Gère les transactions pour garantir
l'atomicité, la cohérence, l'isolation et la durabilité (propriétés ACID) des
opérations sur les données.
Le SGBD Relationnel
▪ Gestionnaire de métadonnées : Stocke les informations sur la structure des
données, les contraintes, les index et d'autres informations nécessaires à la
gestion et à l'optimisation de la base de données.
▪ Langage de définition de données (DDL) : Permet de définir la structure
des tables, des index, des vues et d'autres objets de base de données.
▪ Langage de manipulation de données (DML) : Permet d'interroger et de
manipuler les données à l'aide de requêtes SELECT, INSERT, UPDATE et
DELETE.
▪ Langage de contrôle de données (DCL) : Gère les autorisations d'accès
aux données en définissant les droits d'accès et les privilèges des utilisateurs.
Propriétés ACID
Les propriétés ACID sont un ensemble de caractéristiques essentielles
garanties par les systèmes de gestion de bases de données relationnelles pour
assurer la fiabilité et la cohérence des transactions.
Atomicité Cohérence
Si une transaction n’est pas effectuée A C Toute transaction qui commence son
jusqu’au bout, La base de données exécution dans un état consistant de la
retourne dans son état initial base de données doit laisser la base de
données dans un état consistant,
D I
Durabilité Isolation
Les effets des transactions ayant été Une transaction est protégée des effets
validées doivent persister et survivre des autres transactions exécutant
toute défaillance du système. simultanément.
Exemples SGBDR
❑Oracle, MySQL
❑SQL Server
❑PostgreSQL
❑Web SQL
❑SQLite
❑Apache Derby
Le SGBD Relationnel: Avantages
▪ Les Systèmes de Gestion de Base de Données (SGBD) relationnels
présentent à la fois des avantages et des inconvénients :
Avantages :
[Link] et organisation des données : Les données sont organisées de
manière structurée sous forme de tables, ce qui permet une gestion efficace et
logique des informations.
[Link]égrité des données : Les SGBD relationnels garantissent l'intégrité des
données en appliquant des contraintes (clés primaires, clés étrangères) qui
préviennent les incohérences et assurent la qualité des données.
Le SGBD Relationnel: Avantages
3. Facilité d'accès et de requêtage : Utilisation du langage SQL
standardisé pour interroger, manipuler et analyser les données, ce qui
facilite l'interaction avec la base de données.
4. Transactions ACID : Garantie de propriétés ACID (Atomicité,
Cohérence, Isolation, Durabilité) pour assurer la fiabilité et la sécurité des
transactions.
5. Écosystème mature : Les SGBD relationnels bénéficient d'un large
éventail de supports, de documentation et de solutions de support technique
Le SGBD Relationnel: Inconvénients
Limitations :
1. Évolutivité limitée : La structure rigide en tables peut rendre difficile
l'adaptation aux changements dans les exigences des données ou aux
volumes de données massifs (scalabilité).
2. Performances : Pour les charges de travail très élevées ou les applications
nécessitant une grande disponibilité et une faible latence, les SGBD
relationnels peuvent nécessiter une optimisation et une architecture
avancée pour maintenir des performances élevées.
3. La distribution de données sur plusieurs serveurs devient impossible dans
le cas ou il y a un très grand nombre de relations.
- Les données doivent suivre la structure d’un schéma défini probablement.
- Une vulnérabilité importante du fait de la centralisation des données.
Les défis du Big Data
De nos jours, le big data est devenu énorme en raison de plusieurs facteurs :
▪ L'explosion des sites de médias sociaux tels que Facebook et Twitter, où le
contenu généré par les utilisateurs a augmenté rapidement. Ainsi, les
données à analyser et à archiver ont considérablement augmenté en
volume et tendent à être semi-structurées ou non structurées.
▪ Les systèmes de surveillance tels que le GPS, les capteurs, les traceurs
automatisés génèrent d'énormes volumes de données régulièrement...
Les facteurs mentionnés ci-dessus ont rendu le stockage, l'analyse, la
gestion et l'archivage de ces big data particulièrement difficiles !
Pourquoi NoSQL?
Avec augmentation exponentielle des données mondiale on a commencé à
analyser et traiter les données massives, donc il est nécessaire de concevoir
un système SGBD léger qui garantit les point suivants:
✓Distribution les données
✓La haut disponibilité
✓La tolérance en panne
✓L’extensibilité horizontale
✓La rapidité
Le remède à ces
défis est NoSQL
10
NoSQL
✓ Il s'agit de "Not Only SQL" (NoSQL). C'est un ensemble de nouvelles bases de
données qui ne sont pas basées sur les principes des systèmes de gestion de
base de données relationnels (SGBDR).
✓ NoSQL a été introduit par Carl Strozzi en 1998 pour nommer sa base de
données basée sur des fichiers.
✓ Une collection de produits très différents
✓ Alternatives aux bases de données relationnelles quand elles sont un
mauvais ajustement.
✓ À présent, [Link] répertorie plus de 225 bases de données
NoSQL.
NoSQL
Les bases de données NoSQL ont les caractéristiques communes suivantes :
▪ Elles n'utilisent pas de modèle de données relationnel.
▪ Elles ne suivent pas un schéma strict.
▪ Elles fonctionnent bien sur des clusters.
▪ La plupart d'entre elles sont open source.
▪ Elles sont conçues pour la nouvelle génération d'applications web.
NoSQL : Structure
La structure est la suivante : par exemple, Facebook utilise des graphes pour
stocker les amis avec leurs amis…
NoSQL : Stockage
Les données sont stockées dans des partitions en utilisant une fonction de
hachage qui prend la clé comme paramètre. En supposant que nous ayons
seulement deux partitions :
NoSQL : Mise à l'échelle
Plus de partitions peuvent être ajoutées à une base de données NoSQL afin
d'accommoder davantage de données => Mise à l'échelle horizontale
Avantages et Inconvénients de NoSQL
Avantages :
• Gestion rapide de grandes quantités de données : Permet de gérer
rapidement des tonnes de données, même en grand volume, à une vitesse
rapide.
• Schémas dynamiques pour les données non structurées : Les schémas
peuvent évoluer et ne doivent pas être connus à l'avance, ce qui permet une
plus grande flexibilité pour les données non structurées.
• Diverses méthodes de stockage des données : Offrent plusieurs façons de
stocker des données (clé-valeur, document, colonne, graphe).
• Coûts réduits : Moins coûteux car il est possible d'ajouter des serveurs plutôt
que d'acheter du matériel plus puissant (mise à l'échelle horizontale).
Avantages et Inconvénients de NoSQL
Inconvénients :
• Cohérence des données non garantie : La cohérence des données n'est pas
garantie, ce qui peut entraîner des incohérences dans certaines situations.
• Absence de langage de requête abstrait partagé : Pas de langage de
requête abstrait partagé (comme SQL), ce qui nécessite un travail de
programmation spécifique plus important pour interroger les bases de données.
• Manque de standardisation : Il n'existe pas de norme universelle pour les
bases de données NoSQL, ce qui peut entraîner des difficultés de compatibilité
entre différentes solutions NoSQL.
• Complexité de gestion : La gestion et la maintenance des bases de données
NoSQL peuvent être plus complexes en raison de l'absence de schémas fixes et
de la diversité des modèles de données.
Différence entre les SGBDR et les bases de données NoSQL
SGBDR NoSQL
Modèle de Les données sont stockées en utilisant un Il n'utilise pas de modèle relationnel.
données
modèle relationnel avec des lignes contenant
des enregistrements et des colonnes stockant
les attributs..
Schéma Il suit un schéma fixe, strict et déjà défini. Les Il suit un schéma flexible : les
colonnes sont définies avant l'entrée des colonnes peuvent être ajoutées à
données. Modifier le schéma nécessite de tout moment.
mettre la base de données hors ligne et de
modifier toute la base de données.
Scalabilité Supporte la scalabilité verticale (utiliser des Supporte la scalabilité horizontale
(ajout de matériel bon marché :
serveurs plus puissants, plus de CPU, plus de serveurs peu coûteux) => car il
RAM, ce qui est plus coûteux). Difficile de supporte une architecture distribuée.
mettre à l'échelle horizontalement (ajouter
plus de machines).
Différence entre les SGBDR et les bases de données NoSQL
SGBDR NoSQL
Type /structure Peuvent être basées sur des documents, des Peuvent être basées sur des
graphes, des paires clé-valeur documents, des graphes, des paires
clé-valeur
Usage Utilisé en cas de requêtes complexes comme Utilisé lorsque les requêtes ne sont pas
les jointures complexes (surtout les opérations de
lecture) garantissant des performances
plus élevées car il gère de grands
volumes de données
Open source Est un mélange de produits open source Les bases de données NoSQL ont
comme MySQL et de produits toujours été open source
commerciaux comme la base de données
Oracle
Les principes Le modèle ACID : Respecte les Le modèle BASE : Disponible de
suivis principes d'Atomicité, de Cohérence, manière basique, État souple et
d'Isolation et de Durabilité (ACID). Consistance éventuelle
Quand utiliser SQL ou NoSQL ?
SQL NoSQL
• Lorsque les schémas d'accès ne • Lorsque les schémas d'accès sont
sont pas définis. Lorsque les définis.
utilisateurs souhaitent
effectuer des requêtes • Lorsque l'utilisation de requêtes
complexes n'est pas nécessaire.
• flexibles/relationnelles (comme
les jointures). • Lorsque vous avez besoin de
hautes performances et de faible
• Lorsqu'il est nécessaire latence.
d'imposer des contraintes de
champ (type de données...).
Les propriétés de « BASE »
Les SGBD NoSQL doivent vérifier les propriétés dites propriétés de BASE.
▪ Basically Available (Disponibilité basique)
Même en cas de désynchronisation ou de panne d’un des nœuds du cluster,
le système reste disponible.
▪ Soft-state (Cohérence légère) :
Cela indique que l’état du système risque de changer au cours du temps, sans
pour autant que des données soient entrées dans le système. Cela vient du
fait que le modèle est cohérent à terme.
▪ Eventual consistancy (Cohérence à terme) :
Cela indique que le système devient cohérent dans le temps, pour autant que
pendant ce laps de temps, le système ne reçoive pas d’autres données.
Théorème de CAP
Le théorème de Brewer peut vous éclairer en stipulant qu’un système distribué
(soit ici, une base de données répartie sur plusieurs serveurs) ne peut pas
garantir simultanément la cohérence, la disponibilité et la tolérance au
partitionnement.
Théorème de Brewer
dit "théorème de CAP,
2000:
Indique qu’il est
impossible, pour un
système distribué, de
garantir en même temps
les trois contraintes
Théorème de CAP
1. Consistency (Cohérence) : Une donnée n'a qu'un seul état visible quel que
soit le nombre de réplicas.
2. Availability (Disponibilité) : Tant que le système tourne (distribué ou non),
la donnée doit être disponible.
3. Partition Tolerance (Distribution) : Quel que soit le nombre de serveurs,
toute requête doit fournir un résultat correct.
Dans toute base de données, vous ne pouvez respecter au plus que 2
propriétés parmi la cohérence, la disponibilité et la distribution.
Théorème de CAP
Cela s'illustre assez facilement avec les bases de données relationnelles, elles
gèrent la cohérence et la disponibilité, mais pas la distribution.
Types des Base de données NoSQL
Nous distinguons 4 grandes familles de bases de données de type NoSQL.
Fonctionnalités de NoSQL:
✓ Non relationnel
✓ Sans schéma
✓ API simple
✓ Distribué
Base de données clé-valeur
Définition:
▪ La base de données clé-valeur la plus simple.
▪ Chaque élément unique dans la base de données est stocké en tant que nom
d'attribut ou "clé" avec sa valeur.
▪ Les données sont stockées sous forme de collection de paires clé/valeur.
▪ La clé dans une paire clé-valeur doit être unique.
▪ Les valeurs peuvent être des entiers, des chaînes de caractères ou des types
de données complexes.
▪ Les données sont récupérées via une correspondance exacte de la clé.
▪ De nouveaux types de données peuvent être facilement ajoutés à la base de
données sous forme de nouvelles paires clé-valeur.
Base de données clé-valeur
Operations :
Voici les opérations qui peuvent être effectuées sur une base de données clé-
valeur :
• put(key, value) : Insère la valeur
associée à une clé.
• get(key) : Passe une clé pour récupérer
la valeur associée à cette clé.
• delete(key) : Supprime la valeur
associée à une clé.
• update(key, value) : Met à jour la
valeur associée à une clé.
Base de données clé-valeur
Cas d’utilisation :
• Mise en cache des données en mémoire : il s'agit d'un mécanisme de
mise en cache efficace pour les données fréquemment consultées mais
rarement mises à jour afin d'accélérer la réponse des applications => lecture
et écriture plus rapides. Hazelcast est un exemple de technologie qui fournit
un magasin clé-valeur en mémoire pour une récupération rapide des
données.
• Stockage des préférences utilisateur et personnalisation : cela peut
être utilisé pour fournir des recommandations et stocker des listes
personnalisées d'articles pour des clients individuels. Par exemple, sur les
plateformes de commerce électronique, elles peuvent personnaliser/mettre à
jour les publicités en conséquence.
Base de données clé-valeur
Bases de données clé-valeur connues
Base de données orientée documents
▪ Les bases de données orientées documents sont considérées comme des
bases de données non relationnelles ou NoSQL
▪ Au lieu de stocker les données dans des lignes et des colonnes fixes, les
bases de données orientées documents utilisent des documents
flexibles. Pour une base de données orientée documents, vous avez un
stockage de données comme un objet JSON. Vous n'avez pas besoin de
définir un schéma fixe, ce qui les rend flexibles.
▪ Les bases de données orientées documents sont l'alternative la plus
populaire aux bases de données relationnelles tabulaires.
Alors, qu'est-ce qu'un document ?
Base de données orientée documents
▪ Un document est un enregistrement dans une base de données
orientée documents. Un document stocke généralement des
informations sur un objet et ses métadonnées associées.
▪ Les documents stockent les données sous forme de paires champ-
valeur. Les valeurs peuvent être de différents types et structures,
y compris des chaînes de caractères, des nombres, des dates, des
tableaux ou des objets. Les documents peuvent être stockés dans
des formats comme JSON et XML.
Base de données orientée documents
Voici un document JSON qui
stocke des informations sur un
utilisateur nommé Tom
Mais, que se passe-t-il dans le
cas où il y a de nombreux
utilisateurs ?
Dans ce cas, nous parlons de
collections. Alors, qu'est-ce
qu'une collection ?
Base de données orientée documents
▪ Une collection est un groupe de documents. Les collections
stockent généralement des documents ayant des contenus similaires
▪ Tous les documents d'une collection ne sont pas obligés d'avoir les
mêmes champs, car les bases de données orientées documents ont
un schéma flexible. Notez que certaines bases de données orientées
documents fournissent une validation de schéma, donc le schéma
peut éventuellement être verrouillé si nécessaire.
Base de données orientée documents
La structure de la base de données
Base de données orientée documents
Exemple :
▪ Par exemple, en poursuivant avec le
document pour l'utilisateur Tom, il peut
être ajouté à une collection nommée
utilisateurs. De même, si l'on considère un
nouvel utilisateur appelé Donna, il peut
également être ajouté à la collection
utilisateurs. Ainsi, les utilisateurs Tom et
Donna appartiennent à la même collection.
▪ Notez que le document pour Donna ne
contient pas les mêmes champs que le
document pour Tom. La collection
utilisateurs utilise un schéma flexible pour
stocker les informations existantes pour
chaque utilisateur.
Pourquoi est-il plus facile de travailler avec des documents qu'avec
des tableaux ?
▪ Les développeurs trouvent généralement plus facile et plus intuitif de
travailler avec des données sous forme de documents plutôt qu'avec des
données dans des tables.
▪ Les documents correspondent aux structures de données dans la plupart
des langages de programmation populaires. Les développeurs n'ont pas à
se soucier de diviser manuellement les données connexes entre plusieurs
tables lors de leur stockage ou de les rassembler lors de leur récupération.
▪ Les documents JSON permettent d'intégrer des documents connexes, ce
qui facilite la récupération des données en un seul appel. Par conséquent,
stocker des données au format JSON est vraiment une manière naturelle
de stocker des informations, contrairement à la structure de données plate
des lignes et des colonnes.
Base de données orientée documents
Exemple de stockage d'un utilisateur nommé Tom dans une base de
données relationnelle (RDBMS) et une base de données orientée
documents
Regardons de nouveau
un document pour un
utilisateur nommé Tom :
Toutes les informations
sur Tom sont stockées
dans un seul
document.
Base de données orientée documents
Maintenant, considérons comment nous pouvons stocker ces mêmes
informations dans une base de données relationnelle (RDBMS). Nous
commencerons par créer une table Utilisateur qui stocke les informations
de base sur l'utilisateur :
Base de données orientée documents
Un utilisateur peut aimer beaucoup de choses (ce qui signifie qu'il y a une
relation un-à-plusieurs entre un utilisateur et ses préférences). Nous allons
donc créer une nouvelle table nommée "Likes" pour stocker les préférences
d’un utilisateur. La table "Likes" aura une clé étrangère qui fait référence à la
colonne ID de la table Utilisateur.
Base de données orientée documents
De même, un utilisateur peut gérer plusieurs entreprises, nous allons donc
créer une nouvelle table nommée "Business" pour stocker les informations
sur les entreprises. La table Entreprise aura une clé étrangère qui fait
référence à la colonne ID de la table Utilisateurs.
Base de données orientée documents
Opérations CRUD
▪ Créer (Create): Les documents peuvent être créés dans la base de données.
Chaque document a un identifiant unique.
▪ Lire (read): Les documents peuvent être lus depuis la base de données. L'API
ou le langage de requête permet aux développeurs de rechercher des
documents en utilisant leurs identifiants uniques ou les valeurs des champs.
Des index peuvent être ajoutés à la base de données pour améliorer les
performances de lecture.
▪ Mettre à jour (Update): Les documents existants peuvent être mis à jour —
en totalité ou en partie.
▪ Supprimer (Delete) : Les documents peuvent être supprimés de la base de
données.
Base de données orientée documents
Exemples de bases de données orientées documents
Base de Données orientée graphes
▪ Les données sont organisées sous la forme d'un graphe (graphe orienté
avec arêtes).
▪ Une base de données graphe contient une collection de nœuds et d'arêtes.
▪ Un nœud représente une entité et une arête représente la relation entre
deux entités.
▪ Comme de nombreuses bases de données NoSQL différentes, ces modèles
de données n'ont pas de schéma car il est important que le schéma rende
le modèle bon et facile à modifier.
Base de Données orientée graphes
Exemple
Base de Données orientée graphes
Cas d ’utilisation
▪ Analyse des réseaux sociaux : Les bases de données graphe sont
couramment utilisées pour analyser les réseaux sociaux. Un grand
volume de comptes utilisateurs (nœuds) et des connexions
multidimensionnelles. Une analyse de graphe pour un réseau social peut
déterminer :
✓ Quelle est l'activité des utilisateurs ? (nombre de nœuds)
✓ Quels utilisateurs ont le plus d'influence ? (densité des
connexions) ...
▪ Fraude à la carte de crédit : En tant que moyen de détection de
fraude, l'identification des modèles est souvent la première ligne de
défense grâce aux bases de données orientées graphe.
Base de Données orientée graphes
Exemples de bases de données orientées graphes
Bases de données orientées colonnes
Définition :
▪ Une base de données orientée colonnes est un type de base de données
qui stocke les données en utilisant un modèle orienté colonnes.
▪ Les bases de données orientées colonnes utilisent un concept appelé
espace de clés (keyspace).
▪ Un espace de clés (keyspace) est comme un schéma dans le modèle
relationnel. L'espace de clés contient toutes les familles de colonnes
(comme les tables dans le cas du modèle relationnel).
Bases de données orientées colonnes
Définition :
- Les familles de colonnes sont définies
initialement, mais les colonnes ne le sont pas.
Les colonnes peuvent être ajoutées à
n'importe quelle famille de colonnes à tout
moment.
- Contrairement aux tables relationnelles, le
schéma des familles de colonnes n'est pas
fixe, et ce type de base de données n'oblige
pas les lignes individuelles à avoir toutes les
colonnes.
Exemple de famille de colonnes UserProfile
L'approche NoSQL basée sur les colonnes
▪ Une famille de colonnes est composée de plusieurs lignes.
▪ Chaque ligne peut contenir un nombre différent de colonnes par rapport
aux autres lignes. Les colonnes n'ont pas besoin de correspondre aux
colonnes des autres lignes (elles peuvent avoir des noms de colonnes et
des types de données différents).
▪ Chaque colonne est limitée à sa ligne. Elle ne s'étend pas à toutes les
lignes comme dans une base de données relationnelle. Chaque colonne
contient une paire nom/valeur, ainsi qu'un horodatage (date d'insertion
des données).
L'approche NoSQL basée sur les colonnes
Structure de la ligne
- Clé de ligne (Row Key) : Chaque ligne a une clé unique, qui sert
d'identifiant unique pour cette ligne.
- Colonne (Column) : Chaque colonne contient un nom, une valeur, et un
horodatage.
- Nom (Name): C'est le nom de la paire nom/valeur.
- Valeur (Value): C'est la valeur associée à la paire nom/valeur.
- Horodatage (Timestamp): Il indique le moment où la donnée a été insérée
ou mise à jour.
L’Approche NoSQL basée sur les colonnes
Comparaison entre les bases de données relationnelles (RDBMS) et les
bases de données basées sur les colonnes
L'approche NoSQL basée sur les colonnes
Base de Données Orienté Colonnes
HDFS améliorer : REHDFS
HDFS améliorer : REHDFS
HDFS
✓ HDFS (Hadoop Distributed File System) est un système de stockage de
fichier distribué.
✓ HDFS permet à l'utilisateur de spécifier la taille de bloc à utiliser pour
partitionner un fichier donné.
✓ HDFS n'émettre que des opérations de lecture séquentielles.
✓ REHDFS n'émettre que des opérations d’écritures séquentielles.
HDFS améliorer : REHDFS
REHDFS
✓ HDFS amélioré (REHDFS) pour le stockage de fichier distribué.
✓ REHDFS propose des Stratégies de placement de bloc.
✓ REHDFS permet le Choix de la taille de bloc.
✓ REHDFS propose des Stratégies de mise en cache et de récupération de
blocs.
✓ REHDFS propose des Stratégies de sélection de nœuds de données.
✓ REHDFS permet à l’utilisateur d’effectuer des opération de Lecture et
d'écriture aléatoire.
Stockage HDFS
❖Le système HDFS est formé des deux composants principale :
NameNode et les Datanodes.
Architecture REHDFS
❖Les principaux composant d’architecture REHDFS sont un nœud de nom, un
ensemble de nœuds de données, un module client, un module de cache et un
gestionnaire de verrouillage / validation.
Stratégie de placement des blocks dans REHDFS
✓ Entrée : fichier f à placer dans HDFS, taille de bloc , facteur de réplication
, nombre de nœuds de données dans le rack principal , nombre de racks r.
Contrainte d'entrée ( > r).
Récupération des blocs depuis REHDFS
❖ Récupération de bloc à la demande / anticiper
Entrée: descripteur de fichier (fdes), tampon pour conserver le contenu
(tampon), nombre d'octets à lire (taille)
Récupération des blocs depuis REHDFS
Stratégies de sélection de nœuds de données
✓ Première : Sélectionne le premier nœud de données présent dans la liste des nœuds de
données du rack principal qui héberge le bloc.
✓ Au hasard Sélectionne de manière aléatoire un nœud de données dans la liste des nœuds de
données hébergeant le bloc.
✓ Basé sur la charge : Sélectionne un nœud de données en fonction de la capacité estimée de
chaque nœud de données qui héberge le bloc.
Récupération des blocs depuis REHDFS
Téléchargement de bloc
Entrée : ID de bloc (blockId), Les nœuds de données ont hébergé le bloc (dataNodeList), Policy
(policy).
L’écriture aléatoire
Le modèle pessimiste
Un fichier dans un modèle pessimiste peut être dans l'un des trois états suivants : état fermé, état
ouvert et état verrouillé.
L’écriture aléatoire
Le modèle pessimiste
un client du modèle optimiste peut se trouver dans l'un des quatre états suivants : inactif, registre
(enregistrement auprès du gestionnaire de validation, mettez à jour (en modifiant les blocs lus), et
enregistrez (en essayant de sauvegarder les blocs modifiés).
Accès aléatoire (REHDFS vs NFS)
Résultats expérimentaux
Future solution de stockage des données
Support de stockage biologique durable : ADN Stockage de données en poudre