Académique Documents
Professionnel Documents
Culture Documents
Sujet :
Réalisé par :
EL MANSSOURI AYOUB
MOKET HAMZA
Encadré par :
Pour Le module de :
La base de données NoSQL signifie "Not Only SQL" ou "Not SQL". Bien qu'un
meilleur terme soit « NoREL », NoSQL a fait son chemin. Carl Strozz a introduit le
concept NoSQL en 1998.
Le concept de bases de données NoSQL est devenu populaire auprès des géants de
l'Internet comme Google, Facebook, Amazon, etc. qui traitent d'énormes volumes
de données. Le temps de réponse du système devient lent lorsque vous utilisez le
SGBDR pour des volumes de données massifs.
La base de données NoSQL n'est pas relationnelle, elle évolue donc mieux que les
bases de données relationnelles car elles sont conçues pour les applications Web.
Non relationnel :
Sans schéma
• Les bases de données NoSQL sont soit sans schéma, soit ont des schémas
assouplis
• Ne nécessite aucune sorte de définition du schéma des données
• Offre des structures hétérogènes de données dans le même domaine
API simple
Les bases de données NoSQL sont principalement classées en quatre types : paire
clé-valeur, orientée colonne, basée sur le graphique et orientée document. Chaque
catégorie a ses attributs et ses limites uniques. Aucune des bases de données
spécifiées ci-dessus n'est meilleure pour résoudre tous les problèmes. Les
utilisateurs doivent sélectionner la base de données en fonction de leurs besoins
en produits.
Les données sont stockées dans des paires clé/valeur. Il est conçu de manière à
gérer beaucoup de données et une charge importante.
Les bases de données de stockage de paires clé-valeur stockent les données sous
forme de table de hachage où chaque clé est unique, et la valeur peut être un
JSON, un BLOB (Binary Large Objects), une chaîne, etc.
Par exemple, une paire clé-valeur peut contenir une clé comme « Website »
associée à une valeur comme « Kaggle ».
C'est l'un des exemples de base de données NoSQL les plus basiques. Ce type de
base de données NoSQL est utilisé comme une collection, des dictionnaires, des
tableaux associatifs, etc. Les magasins de valeurs clés aident le développeur à
stocker des données sans schéma. Ils fonctionnent mieux pour le contenu du
panier.
Les bases de données orientées colonnes fonctionnent sur des colonnes et sont
basées sur le papier BigTable de Google. Chaque colonne est traitée
séparément. Les valeurs des bases de données à colonne unique sont stockées de
manière contiguë.
Ils offrent des performances élevées sur les requêtes d'agrégation telles que SUM,
COUNT, AVG, MIN, etc., car les données sont facilement disponibles dans une
colonne.
Les bases de données NoSQL basées sur des colonnes sont largement utilisées
pour gérer les entrepôts de données, la veille économique , le CRM, les catalogues
de cartes de bibliothèque,
Orienté document :
Dans ce diagramme sur votre gauche, vous pouvez voir que nous avons des lignes
et des colonnes, et à droite, nous avons une base de données de documents qui a
une structure similaire à JSON. Maintenant, pour la base de données
relationnelle, vous devez savoir quelles colonnes vous avez et ainsi de
suite. Cependant, pour une base de données de documents, vous disposez d'un
magasin de données comme un objet JSON. Vous n'avez pas besoin de définir ce
qui le rend flexible.
Le type de document est principalement utilisé pour les systèmes CMS, les
plateformes de blogs, les analyses en temps réel et les applications de commerce
électronique. Il ne doit pas être utilisé pour des transactions complexes qui
nécessitent plusieurs opérations ou requêtes sur différentes structures d'agrégat.
MongoDB, Amazon SimpleDB, CouchDB, Riak, Lotus Notes sont des systèmes de
SGBD populaires issus de documents.
Une base de données de type graphe stocke les entités ainsi que les relations entre
ces entités. L'entité est stockée en tant que nœud avec la relation en tant
qu'arêtes. Une arête donne une relation entre les nœuds. Chaque nœud et chaque
arête a un identifiant unique.
Base de données NoSQL basée sur des graphiques
Par rapport à une base de données relationnelle où les tables sont faiblement
connectées, une base de données Graph est de nature multi-relationnelle. La
relation de traversée est rapide car elles sont déjà capturées dans la base de
données et il n'est pas nécessaire de les calculer.
Neo4J, Infinite Graph, OrientDB, FlockDB sont des bases de données populaires
basées sur des graphes.
Le théorème CAP est aussi appelé théorème de brasseur. Il indique qu'il est
impossible pour un magasin de données distribué d'offrir plus de deux garanties
sur trois :
• Cohérence
• Disponibilité
• Tolérance de partition
Cohérence (Consistency) :
Les données doivent rester cohérentes même après l'exécution d’une opération.
Cela signifie qu'une fois les données écrites, toute future demande de lecture
devrait contenir ces données. Par exemple, après avoir mis à jour le statut de la
commande, tous les clients devraient pouvoir voir les mêmes données.
Disponibilité (Availability) :
La réplication des données peut ne pas être instantanée car certaines copies
seront mises à jour immédiatement tandis que d'autres en temps voulu. Ces
copies peuvent être mutuellement, mais avec le temps, elles deviennent
cohérentes. D'où le nom de cohérence éventuelle.
9. Inconvénients de NoSQL :
Une base de données de graphes stocke des nœuds et des relations au lieu de
tables ou de documents. Les données sont stockées comme vous pourriez
esquisser des idées sur un tableau blanc. Vos données sont stockées sans les
restreindre à un modèle prédéfini, ce qui permet une manière très flexible de les
penser et de les utiliser.
Les bases de données de graphes relèvent de grands défis que beaucoup d'entre
nous relèvent quotidiennement. Les problèmes de données modernes impliquent
souvent des relations plusieurs-à-plusieurs avec des données hétérogènes qui
créent des besoins pour :
Qu'il s'agisse d'un réseau social, de réseaux de paiement ou d'un réseau routier,
vous constaterez que tout est un graphe de relations interconnectées. Et lorsque
nous voulons poser des questions sur le monde réel, de nombreuses questions
portent sur les relations plutôt que sur les éléments de données individuels.
3. Le modèle de graphe de propriétés :
• Les nœuds peuvent être étiquetés avec des étiquettes, représentant leurs
différents rôles dans votre domaine. (Par exemple, Person).
• Les nœuds peuvent contenir n'importe quel nombre de paires clé-valeur,
ou properties. (Par exemple, name)
• Les étiquettes de nœud peuvent également attacher des métadonnées (telles
que des informations d'index ou de contrainte) à certains nœuds.
Les relations fournissent des connexions dirigées et nommées entre deux entités
de nœud (par exemple PersonneLOVESPersonne).
Neo4j est une base de données de graphes native open-source NoSQL qui fournit
un backend transactionnel compatible ACID pour vos applications qui est
accessible au public depuis 2007.
Neo4j est une base de données de graphes native, ce qui signifie qu'elle
implémente un véritable modèle de graphe jusqu'au niveau du stockage. Les
données ne sont pas stockées sous la forme d'une "abstraction graphique" au-
dessus d'une autre technologie, elles sont stockées comme vous le faites sur un
tableau blanc. Ceci est important car c'est la raison pour laquelle Neo4j surpasse
les autres graphiques et reste si flexible. Au-delà du graphique de base, Neo4j
fournit ce que vous attendez d'une base de données ; Transactions ACID, prise en
charge des clusters et basculement d'exécution. Cette stabilité et cette maturité
expliquent pourquoi il est utilisé depuis des années dans des scénarios de
production pour les charges de travail des grandes entreprises.
6. Installer Neo4j :
Semblables aux plugins IDE, les Graph Apps sont des applications Web
d'assistance qui facilitent l'interaction avec Neo4j. Ils couvrent la visualisation et
l'interrogation avec Neo4j Browser et Bloom, les outils d'importation pour les
bases de données relationnelles et les outils de surveillance pour interroger les
analyseurs de journaux.
Si vous ouvrez Neo4j Desktop pour la première fois, il devrait vous demander
d'enregistrer le logiciel avec une clé d'activation. Cette clé d'activation est générée
lors du premier téléchargement de Neo4j Desktop et sera affichée sur la page de
confirmation du téléchargement. Gardez-le dans un endroit sûr.
La barre latérale gauche de Neo4j Desktop affiche des icônes de haut niveau pour
les projets, les applications graphiques, les paramètres, les clés d'activation et les
informations Neo4j.
• En haut, le dossier avec un signet ( ) affiche la liste des projets que vous
avez créés.
• Une autre section Graph Apps ( ) vous permet d'ajouter et d'intégrer des
applications graphiques avec Neo4j.
Dans un projet Neo4j Desktop, vous pouvez créer un ou plusieurs SGBD. Ensuite,
vous allez créer un SGBD local dans un projet et le démarrer.
Dans le projet où vous souhaitez ajouter le SGBD, cliquez sur le bouton Add, puis
sélectionnez Local DBMS :
Cela ouvre une boîte de dialogue dans laquelle vous spécifierez les détails du
SGBD.
o Vous pouvez utiliser le nom par défaut du SGBD, qui est Graph DBMS,
mais vous devez lui donner un nom qui aide à identifier le cas d'utilisation
du SGBD. Ici, nous spécifions MyDBMS comme nom
o Vous devez spécifier un mot de passe pour le SGBD, entrez donc un mot de
passe dont vous vous souviendrez.
o Neo4j Desktop créera un SGBD avec la version par défaut de Neo4j
Desktop. Cependant, vous pouvez sélectionner une version différente.
Après avoir spécifié les détails du SGBD que vous souhaitez créer, vous cliquez
sur le bouton Create :
Et voici ce que vous devriez voir une fois le SGBD créé avec succès :
N'oubliez pas que vous ne pouvez pas démarrer plus d'un SGBD. Si vous n'avez
pas d'autres SGBD démarrés dans Neo4j Desktop, vous pouvez démarrer votre
SGBD nouvellement créé en survolant la droite du nom du SGBD et en cliquant
sur le bouton Start :
Une fois le SGBD démarré, vous pouvez y accéder avec des clients exécutés sur
votre système, tels que Neo4j Browser, Neo4j Bloom, etc. Dans Neo4j Desktop, le
SGBD est un serveur d'entreprise, mais il n'est accessible que localement.
Un plugin est une fonctionnalité supplémentaire qui peut être activée pour un
SGBD. Actuellement avec la dernière version de Neo4j Desktop qui utilise un
SGBD 4.2.x, les plugins suivants sont livrés avec Neo4j Desktop que vous pouvez
installer :
• Procédures impressionnantes pour Cypher (APOC)
• Bibliothèque de science des données graphiques
• GraphQL
• Flux Neo4j
Nous voyons que nous pouvons maintenant accéder aux procédures APOC pour ce
SGBD.