Podcast
Questions and Answers
Qu'est-ce que NoSQL signifie?
Qu'est-ce que NoSQL signifie?
Les bases de données NoSQL sont basées sur des paires clé-valeur ou des graphes.
Les bases de données NoSQL sont basées sur des paires clé-valeur ou des graphes.
True
Qu'est-ce que représente l'acronyme ACID dans les bases de données relationnelles?
Qu'est-ce que représente l'acronyme ACID dans les bases de données relationnelles?
Atomicité, Cohérence, Isolation, Durabilité
Quelle est la taille des 'big data' ? Plus de quelques _____ est suffisant pour commencer à s'étendre sur plusieurs unités de stockage.
Quelle est la taille des 'big data' ? Plus de quelques _____ est suffisant pour commencer à s'étendre sur plusieurs unités de stockage.
Signup and view all the answers
Associez les types de base de données NoSQL avec leur description:
Associez les types de base de données NoSQL avec leur description:
Signup and view all the answers
Quel est l'effet de l'utilisation de 'upsert: true' lors de la mise à jour d'un document dans MongoDB?
Quel est l'effet de l'utilisation de 'upsert: true' lors de la mise à jour d'un document dans MongoDB?
Signup and view all the answers
Dans MongoDB, que stockent les indexes et pourquoi sont-ils importants?
Dans MongoDB, que stockent les indexes et pourquoi sont-ils importants?
Signup and view all the answers
Quel est le type d'index par défaut dans MongoDB?
Quel est le type d'index par défaut dans MongoDB?
Signup and view all the answers
Qu'est-ce qu'un document JSON peut contenir comme types de données? (Sélectionnez tout ce qui s'applique)
Qu'est-ce qu'un document JSON peut contenir comme types de données? (Sélectionnez tout ce qui s'applique)
Signup and view all the answers
Dans un document JSON, les commentaires sont autorisés.
Dans un document JSON, les commentaires sont autorisés.
Signup and view all the answers
Quelle est la taille maximale d'un document en BSON? La taille maximale est de __ en BSON.
Quelle est la taille maximale d'un document en BSON? La taille maximale est de __ en BSON.
Signup and view all the answers
Quel est l'utilité du champ _id dans un document MongoDB?
Quel est l'utilité du champ _id dans un document MongoDB?
Signup and view all the answers
Associez les termes MongoDB avec leurs équivalents en RDBMS:
Associez les termes MongoDB avec leurs équivalents en RDBMS:
Signup and view all the answers
Quels sont les avantages de l'utilisation de documents intégrés (Embedded Docs) dans MongoDB? (Sélectionnez tout ce qui s'applique)
Quels sont les avantages de l'utilisation de documents intégrés (Embedded Docs) dans MongoDB? (Sélectionnez tout ce qui s'applique)
Signup and view all the answers
Qu'est-ce qu'un index unique dans MongoDB?
Qu'est-ce qu'un index unique dans MongoDB?
Signup and view all the answers
Qu'est-ce qu'un index composé dans MongoDB?
Qu'est-ce qu'un index composé dans MongoDB?
Signup and view all the answers
Quels sont les types d'index supportés par MongoDB? (Sélectionnez tout ce qui s'applique)
Quels sont les types d'index supportés par MongoDB? (Sélectionnez tout ce qui s'applique)
Signup and view all the answers
Associez les types d'index MongoDB aux descriptions correspondantes:
Associez les types d'index MongoDB aux descriptions correspondantes:
Signup and view all the answers
Pourquoi les solutions NoSQL sont-elles conçues pour fonctionner sur des clusters ou des solutions de base de données multi-nœuds?
Pourquoi les solutions NoSQL sont-elles conçues pour fonctionner sur des clusters ou des solutions de base de données multi-nœuds?
Signup and view all the answers
Les SGBDR traditionnels sont conçus pour fonctionner correctement sur une 'seule' machine.
Les SGBDR traditionnels sont conçus pour fonctionner correctement sur une 'seule' machine.
Signup and view all the answers
Que signifie le terme ACID en relation avec les SGBDR traditionnels?
Que signifie le terme ACID en relation avec les SGBDR traditionnels?
Signup and view all the answers
Selon le théorème CAP, au maximum __ des trois (Cohérence, Disponibilité, Tolérance au partitionnement) peuvent être maximisés en même temps.
Selon le théorème CAP, au maximum __ des trois (Cohérence, Disponibilité, Tolérance au partitionnement) peuvent être maximisés en même temps.
Signup and view all the answers
Associez les choix suivants avec les préférences des systèmes selon le théorème CAP:
Associez les choix suivants avec les préférences des systèmes selon le théorème CAP:
Signup and view all the answers
Quel est le nom du projet qui illustre Lucene dans le programme Java mentionné?
Quel est le nom du projet qui illustre Lucene dans le programme Java mentionné?
Signup and view all the answers
Comment définissez-vous une requête de recherche à l'aide de Lucene?
Comment définissez-vous une requête de recherche à l'aide de Lucene?
Signup and view all the answers
Quel est le nom du champ utilisé pour stocker le titre d'un document dans l'exemple mentionné? __________
Quel est le nom du champ utilisé pour stocker le titre d'un document dans l'exemple mentionné? __________
Signup and view all the answers
Qui est la personne que VMWare a embauchée pour aider sur le projet Redis?
Qui est la personne que VMWare a embauchée pour aider sur le projet Redis?
Signup and view all the answers
Le stockage des documents en Elasticsearch se fait en format XML.
Le stockage des documents en Elasticsearch se fait en format XML.
Signup and view all the answers
Quels sont les types de valeurs prises en charge dans le modèle de données logiques de Redis? (Sélectionnez tout ce qui s'applique)
Quels sont les types de valeurs prises en charge dans le modèle de données logiques de Redis? (Sélectionnez tout ce qui s'applique)
Signup and view all the answers
Lucene nécessite une programmation pour configurer l'indexation.
Lucene nécessite une programmation pour configurer l'indexation.
Signup and view all the answers
Quel est le rôle de l'opération d'écriture dans la réplication des données?
Quel est le rôle de l'opération d'écriture dans la réplication des données?
Signup and view all the answers
Que permet l'alias curljson lors de l'insertion de données JSON avec curl?
Que permet l'alias curljson lors de l'insertion de données JSON avec curl?
Signup and view all the answers
Que se passe-t-il en cas d'indisponibilité du serveur primaire dans une réplication de données?
Que se passe-t-il en cas d'indisponibilité du serveur primaire dans une réplication de données?
Signup and view all the answers
Quel type de champ de texte sert pour un texte quelconque découpé en mots, indexé pour permettre des recherches sur des extraits de texte?
Quel type de champ de texte sert pour un texte quelconque découpé en mots, indexé pour permettre des recherches sur des extraits de texte?
Signup and view all the answers
La catégorie text dans Elasticsearch est destinée à contenir des chaînes de caractères indexées en tant qu'entités uniques.
La catégorie text dans Elasticsearch est destinée à contenir des chaînes de caractères indexées en tant qu'entités uniques.
Signup and view all the answers
Quel est le rôle des __________ de requête dans un cluster MongoDB?
Quel est le rôle des __________ de requête dans un cluster MongoDB?
Signup and view all the answers
Quelle est la solution proposée par Elasticsearch pour associer plusieurs types de champ (multi-fields) pour résoudre le dilemme du choix entre text et keyword?
Quelle est la solution proposée par Elasticsearch pour associer plusieurs types de champ (multi-fields) pour résoudre le dilemme du choix entre text et keyword?
Signup and view all the answers
Le partitionnement des données MongoDB peut être basé sur la plage et le hachage.
Le partitionnement des données MongoDB peut être basé sur la plage et le hachage.
Signup and view all the answers
Associez les différents types de nœuds MongoDB avec leur description:
Associez les différents types de nœuds MongoDB avec leur description:
Signup and view all the answers
Study Notes
Introduction à NoSQL
- Les bases de données relationnelles (RDB) stockent des données dans des colonnes et des tables, avec des relations représentées par les données, un langage de manipulation de données, un langage de définition de données, des transactions et une abstraction du niveau physique.
- Les applications spécifient quoi, et non comment, et le niveau physique peut changer sans modifier les applications.
Propriétés ACID
- Atomicité : tout le travail dans une transaction est complet (validé) ou rien n'est complet.
- Cohérence : une transaction transforme la base de données d'un état cohérent en un autre état cohérent.
- Isolation : les résultats de tous les changements effectués pendant une transaction ne sont pas visibles tant que la transaction n'a pas été validée.
- Durabilité : les résultats d'une transaction validée survivent aux défaillances.
NoSQL
- NoSQL signifie "Not Only SQL" et représente une nouvelle incarnation de bases de données non relationnelles.
- NoSQL est un terme générique pour toutes les bases de données et magasins de données qui ne suivent pas les principes des SGBDR.
- NoSQL a commencé avec Google, puis s'est développé avec Lucene/Apache (Hadoop) et Amazon (Dynamo).
NoSQL dans le Big Data
- NoSQL est souvent lié au concept de "big data" car il est capable de gérer de grandes quantités de données.
- Les défis du "big data" incluent le stockage et l'accès efficaces à de grandes quantités de données, la manipulation de grands ensembles de données et la gestion d'un schéma et de métadonnées en évolution continue.
Raisons de NoSQL
- Explosion des sites de médias sociaux avec de grands besoins en données.
- Essor des solutions basées sur le cloud telles qu'Amazon S3.
- Changement vers des données à typage dynamique avec des changements fréquents de schéma.
- Communauté open-source.
NoSQL vs SQL
- Les bases de données NoSQL (DB NoSQL) sont appelées bases de données pas seulement SQL.
- Les bases de données NoSQL sont basées sur les propriétés CAP (Cohérence, Disponibilité et Tolérance de partition).
- Les bases de données SQL sont basées sur les propriétés ACID.
Types de bases de données NoSQL
- Sorted ordered Column Store (Column Oriented) : optimisé pour les requêtes sur de grands ensembles de données.
- Document Databases : associent chaque clé à une structure de données complexe connue sous le nom de document.
- Key Value Store : les plus simples des bases de données NoSQL.
- Graph databases : utilisées pour stocker des informations sur des réseaux de données.
Document database
- Les documents sont des ensembles de paires clé/valeur structurellement relâchés.
- Les documents sont adressés dans la base de données via une clé unique.
- Les documents sont traités comme un tout, évitant de diviser un document en ses paires nom/valeur constitutives.
Clés/valeurs
- Les clés/valeurs sont stockées de manière sans schéma.
- Les clés/valeurs sont stockées efficacement et fournissent un algorithme de temps d'exécution moyen très efficace pour accéder aux données.
Scalabilité
- Les solutions NoSQL sont conçues pour fonctionner sur des clusters ou des solutions de base de données multi-nœuds.
- Les SGBDR n'ont pas été conçus pour être distribués.
Théorème CAP
- Le théorème CAP fournit une manière cohérente et logique d'évaluer les problèmes liés à l'assurance de garanties similaires à ACID dans les systèmes distribués.
- Au maximum deux des trois suivants peuvent être maximisés en même temps : Cohérence, Disponibilité et Tolérance au partitionnement.
NoSQL dans quel contexte
-
Les bases de données NoSQL sont utilisées dans les contextes où il y a un grand ensemble de données non contrôlées, non structurées.
-
Les flux de réseaux sociaux, les données qui ne sont pas facilement analysables dans un SGBDR, les grands flux de données qui doivent être traités avant l'entrée dans un SGBDR.### Technologies d'analyse syntaxique
-
Les technologies associées à l'analyse syntaxique incluent DOM, SAX, XPath, XQuery et XSLT.
-
XML est utilisé pour les configurations, les métadonnées, etc.
JSON (JavaScript Object Notation)
- Standard ouvert pour l'échange de données structurées.
- Initialement spécifié par Douglas Crockford en 2001.
- Dérivé du langage de script JavaScript et utilise les conventions de la famille du langage C.
- Nom de fichier : *.json.
- Type de média Internet (MIME) : application/json.
- Indépendant du langage.
Types de données JSON
- Objet : ensemble non ordonné de paires Nom+Valeur.
- Tableau : collection ordonnée de valeurs.
- Valeur : chaîne de caractères, nombre, booléen, null, objet, tableau.
Chaîne de caractères JSON
- Séquence de zéro ou plusieurs caractères Unicode, encadrée de guillemets doubles.
- Échappement avec un backslash.
Nombre JSON
- Semblable à un nombre en C, Python, ou Java.
- Entier ou flottant.
- Les formats octal et hexadécimal ne sont pas utilisés.
propriétés JSON
- Il n'y a pas de commentaires dans le JSON.
- Aucun moyen de spécifier la précision/taille des nombres.
- Il existe une norme "Schéma JSON" pour spécifier le schéma des données.
MongoDB
- Sortie initiale : 2009.
- Écrit en C++.
- Open-source.
- Multiplateforme.
- Utilise des documents JSON.
- Fonctionnalités de base : haute performance, haute disponibilité, mise à l'échelle automatique, support de MapReduce.
Terminologie MongoDB
- RDBMS : instance de MongoDB, schéma = database, table = collection, row = document, rowid = _id.
Caractéristiques MongoDB
- Utilise JSON pour la communication d'API.
- En interne, utilise BSON (représentation binaire de JSON).
- Le document a une taille maximale de 16 Mo.
- L'outil GridFS peut diviser des fichiers plus volumineux en fragments.
Champs MongoDB
- Chaque document doit comporter un champ _id.
- Restriction sur les noms de champs : les noms de champs ne peuvent pas commencer par le caractère $, ni contenir le caractère (.) .
Schéma MongoDB
- Les documents ont un schéma flexible.
- Décision clé de la modélisation des données : références vs. documents intégrés.
Documents intégrés MongoDB
- Données associées dans une seule structure de document.
- Les documents peuvent avoir des sous-documents (dans un champ ou un tableau).
Références MongoDB
- Liens/références d'un document à l'autre.
- Normalisation du schéma.
Requête MongoDB
- Langage de requête MongoDB.
- Une requête MongoDB cible une collection spécifique de documents.
- Spécifie les critères qui identifient les documents renvoyés.
Exemple MongoDB
- Insertion : db.inventory.insert( { _id: 10, type: "misc", item: "card", qty: 15 } )
- Mise à jour : db.inventory.update( { type: "book", item : "journal" }, { $set: { qty: 10 } }, { upsert: true } )
- MapReduce : db.accesses.mapReduce( function() { emit (this.user_id, this.logout_time - this.login_time); }, function(key, values) { return Array.sum( values ); }, { query: { access_type: "regular" }, out: "access_times" } )
Indexes MongoDB
- Les index sont la clé des performances de MongoDB.
- Les index stockent certains champs sous une forme facilement accessible.
- Défini par collection.
- But : accélérer les requêtes courantes et optimiser les performances d'autres opérations spécifiques.
Type d'indexes MongoDB
- Valeur par défaut : _id (DEFAULT)
- L'index peut être parcouru afin de renvoyer des résultats triés.### MongoDB Indexes
- Un champ unique (Single Field) est un index défini par l'utilisateur sur un seul champ d'un document.
- Un champ composé (COMPOUND) est un index défini par l'utilisateur sur plusieurs champs.
- Un index multiclé (MultiKey index) est utilisé pour indexer le contenu stocké dans des tableaux et crée une entrée d'index distincte pour chaque élément du tableau.
MongoDB Indexes Types
- Ordered Index: un index B-Tree.
- Hash Indexes: un index qui utilise le hachage de la valeur d'un champ pour des recherches rapides (O(1)) et uniquement pour les égalités.
- Geospatial Index: un index qui utilise la géométrie plane pour les données représentant des points sur un plan bidimensionnel (2d) ou la géométrie sphérique pour les données représentant la longitude et la latitude (2sphere).
- Text Indexes: un index qui permet la recherche de contenu de chaîne dans une collection.
MongoDB Shell Installation
- Installer MongoDB Shell: https://www.mongodb.com/try/download/shell
- Installer MongoDB Compass: https://www.mongodb.com/try/download/compass
MongoDB Atelier 1 - Intro
- Ouvrir le terminal, CMD ou PoweShell, puis se connecter à la base de données de test:
mongosh "<a>mongodb://admin:qazwsx%[email protected]:27017/?authMechanism=DEFAULT</a>"
- Créer une base de données:
use BD2C
- Créer une collection:
db.createCollection("produits")
- Insérer un document:
db.produits.insertOne({nom: "T-shirt", prix: 19.99, categorie: "Vetements"})
- Lire un document:
db.produits.find({categorie: "Vetements"})
- Mettre à jour un document:
db.produits.updateOne({nom: "T-shirt"}, {$set: {prix: 29.99}})
- Supprimer un document:
db.produits.deleteOne({nom: "T-shirt"})
MongoDB Aggregation
- Exemple d'agrégation:
db.produits.aggregate([{ $match: { categorie: "Vetements" } }, { $group: { _id: "$categorie", total: { $sum: "$prix" } } }])
MongoDB BSON
- BSON (Binary Serialized Object Notation) est un format de sérialisation codé en binaire de documents JSON.
- BSON représente les documents, les tableaux, les types de données JSON simples et d'autres types (par exemple, date).
MongoDB BSON Grammar
- Un document BSON est composé d'un entier 32 bits qui représente le nombre total d'octets dans le document, suivi d'une séquence d'éléments.
- Un élément est composé d'un octet qui représente le type de données, suivi d'un champ (nom) et d'une valeur.
Data Replication
- La réplication maître/esclave est un modèle de réplication où un primaire (maître) gère toutes les opérations d'écriture et des secondaires (esclaves) appliquent des opérations à partir du primaire pour avoir le même ensemble de données.
- Les opérations d'écriture sont appliquées sur le serveur principal et enregistrées dans l'oplog (journal des opérations).
- Les secondaires répliquent l'oplog et appliquent les opérations à leurs ensembles de données.
Data Replication Operations
- Lecture: tous les membres du set de réplicas peuvent accepter les lectures.
- Écriture: l'opération d'écriture est appliquée sur le serveur principal.
- Modes de préférence de lecture: primary, primaryPreferred, secondary, secondaryPreferred, nearest.
Data Replication Elections
- Si le primaire n'est plus disponible, une élection détermine une nouvelle primaire.
Data Sharding
- La répartition des collections est possible avec MongoDB.
- La clé de partition est un champ ou un ensemble de champs indexés qui existe dans chaque document de la collection.
- La partition est divisée en morceaux, répartis sur des partitions.
Data Sharding Components
- Shards: stockent les données.
- Routeurs de requête: diriger les opérations vers la ou les partitions concernées.
- Serveurs de configuration: stockent les métadonnées du cluster.
MongoDB Atelier 2 - Réplication
- Étape 1: Installer MongoDB.
- Étape 2: Configurer les instances MongoDB.
- Étape 3: Démarrer les instances MongoDB.
- Étape 4: Initialiser le jeu de réplicas.
- Étape 5: Ajouter d'autres instances au jeu de réplicas.
- Étape 6: Vérifier la configuration du jeu de réplicas.
- Étape 7: Configurez votre application.
NoSQL Key-Value Database
- Redis est un serveur de base de données NoSQL en mémoire qui stocke les données en tant que paires clé-valeur.
- L'histoire de Redis a commencé en 2009 par Salvatore Sanfilippo.
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.
Description
Ce quiz aborde les concepts de base de données relationnelles, notamment RDB et RDBMS, avec des questions sur les données stockées, les langages de manipulation et de définition de données, les transactions et l'abstraction du niveau physique.