🎧 New: AI-Generated Podcasts Turn your study notes into engaging audio conversations. Learn more

CoursNoSQL (1).pdf

Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...

Full Transcript

Bases de données NoSQL Alanna Devlin Génin Lundi 9 septembre 2024 IUT Rives de Seine - BUT Science des Données - Parcours VCOD Alanna Devlin Génin - Tous droits réservés 1 Planning 7 séances de 3 heures Séance 1 : C...

Bases de données NoSQL Alanna Devlin Génin Lundi 9 septembre 2024 IUT Rives de Seine - BUT Science des Données - Parcours VCOD Alanna Devlin Génin - Tous droits réservés 1 Planning 7 séances de 3 heures Séance 1 : CM (lundi 9 septembre) Séance 2 : TP (jeudi 12 septembre) Séance 3 : TP (vendredi 13 septembre) Séance 4 : TP (mardi 24 septembre) Séance 5 : TP (vendredi 27 septembre) Séance 6 : TP (vendredi 11 octobre) Séance 7 : TP (vendredi 8 novembre) Alanna Devlin Génin - Tous droits réservés 2 Programme Histoire des bases de données Caractéristiques principales des bases de données NoSQL Typologie des bases de données NoSQL Alanna Devlin Génin - Tous droits réservés 3 Evaluation QCM avec une ou deux questions ouvertes (30 à 45 minutes) TP noté (avec rendu 24 ou 48 heures après la séance) Alanna Devlin Génin - Tous droits réservés 4 Mon parcours académique DUT STID ENSAI Alanna Devlin Génin - Tous droits réservés 5 Mon parcours professionnel Stage fin d’études Data Engineer depuis 1 an et demi Alanna Devlin Génin - Tous droits réservés 6 Contact Si vous avez des questions n’hésitez pas à me contacter : [email protected] Alanna Devlin Génin - Tous droits réservés 7 Time for Kahoot ! Alanna Devlin Génin - Tous droits réservés 7 Historique Retour sur les bases de données relationnelles Les bases de données relationnelles permettent de stocker des données structurées dans des relations (également appelées tables). Alanna Devlin Génin - Tous droits réservés 8 Changement de paradigme Années 2000 : explosion du volume de données Modèle relationnel : limité en termes de scalabilité et de flexibilité Nouvelles technologies : Big Data, IoT, applications web et mobiles Alanna Devlin Génin - Tous droits réservés 9 Du modèle relationnel au NoSQL RDBMS NoSQL 1950 1960 1970 1980 1990 2000 2010 2020 Alanna Devlin Génin - Tous droits réservés 10 Introduction au NoSQL Pourquoi NoSQL ? Stockage et de traitement d’une grande quantité de données Scalabilité Haute disponibilité Réplication Partitionnement Indexation Alanna Devlin Génin - Tous droits réservés 11 Mais que signifie NoSQL ? Définition NoSQL signifie Not Only SQL ou No SQL. En 2009, Johan Oskarsson définit NoSQL comme un terme générique pour désigner les bases de données qui ne sont pas des bases de données relationnelles. Alanna Devlin Génin - Tous droits réservés 12 NewSQL NewSQL est un terme générique pour désigner les bases de données qui sont des bases de données relationnelles mais qui sont conçues pour être distribuées. Examples : Google Spanner, CockroachDB, NuoDB, VoltDB, MemSQL, Clustrix, etc. Alanna Devlin Génin - Tous droits réservés 13 Concepts fondamentaux Caractéristiques principales du NoSQL Schéma flexible Scalabilité Haute disponibilité Réplication Partitionnement Indexation Transactions Alanna Devlin Génin - Tous droits réservés 14 Qu’est-ce que le partitionnement ? Définition Le partitionnement (ou partitioning en anglais) consiste à séparer les données en plusieurs chunks. Chunck 5 Chunck 4 Chunck 3 Chunck 2 Chunking Chunck 1 Data source Alanna Devlin Génin - Tous droits réservés 15 Partitionnement ou sharding ? Alanna Devlin Génin - Tous droits réservés 15 Partitionnement vs sharding Définition Le partitionnement est une technique de division des données en plusieurs parties. Définition Le sharding est une technique de distribution des données sur plusieurs nœuds. Alanna Devlin Génin - Tous droits réservés 16 Partitionnement vs sharding PARTITIONING SHARDING ID Name 1 Alice 2 Bob ID Name ID Name 3 Camille 1 Alice 4 Diane VERSUS 2 Bob 5 Elodie ID Name 3 Camille 6 Fabrice 4 Diane 5 Elodie 6 Fabrice Shard 1 Shard 2 Alanna Devlin Génin - Tous droits réservés 17 Di↵érentes stratégies de partitionnement Chunck 5 Chunck 4 ? Partitionnement par tourniquet Chunck 3 Chunck 2 Chunck 1 ? Partitionnement par intervalle Partitionnement par clé/liste ? Partitionnement par hachage Data source Alanna Devlin Génin - Tous droits réservés 18 Cas d’usage Camille Lemoine est propriétaire d’une chaı̂ne de trois restaurants situés à Paris, Londres et Dublin. Elle souhaite stocker les données de ses clients dans une base de données en fonction de ses di↵érents restaurants. Identifiant Prénom Nom Âge Ville 1000 Alice Dupont 30 Paris 1001 Bob Brown 39 Londres 1002 Charlie O’Brien 26 Dublin 1003 Daniel Doyle 42 Dublin 1004 Edna McCarthy 58 Dublin 1005 Fabienne Lenoir 66 Paris 1006 Gilles Morvan 71 Paris Elle vous demande de l’aider à choisir la meilleure stratégie de partitionnement pour stocker les données de ses clients en fonction de leur localisation. Alanna Devlin Génin - Tous droits réservés 19 Partitionnement par tourniquet Définition Le partitionnement par tourniquet (round-robin partitioning en an- glais) est une méthode de distribution des données où chaque enregis- trement est successivement assigné à l’une des partitions disponibles de manière cyclique, assurant une répartition équilibrée de la charge Comment assigner une donnée i à un nœud nj ? La donnée située à l’index i sera assignée au nœud d’index j noté nj avec nj = i mod n et n est le nombre de nœuds. Alanna Devlin Génin - Tous droits réservés 20 Partitionnement par tourniquet Comment partitionner par tourniquet selon l’ID de l’utilisateur ? ID Prénom Nom Nœud 1 1000 Alice Dupont 1001 Bob Brown 1002 Charlie O’Brien 1003 Daniel Doyle 1004 Edna McCarthy 1005 Fabienne Lenoir Nœud 2 1006 Gilles Morvan On considérera qu’un modulo 0 (ie 3 mod 3 = 0) correspond au nœud 3. Nœud 3 Alanna Devlin Génin - Tous droits réservés 21 Partitionnement par tourniquet Comment partitionner par tourniquet selon l’ID de l’utilisateur ? ID Prénom Nom 1000 Alice Dupont ID Prénom Nom Nœud 1 1000 Alice Dupont 1001 Bob Brown 1002 Charlie O’Brien 1003 Daniel Doyle 1004 Edna McCarthy 1005 Fabienne Lenoir Nœud 2 1006 Gilles Morvan On considérera qu’un modulo 0 (ie 3 mod 3 = 0) correspond au nœud 3. Nœud 3 Alice : user ID mod n = 1000 mod 3 = 1 Alanna Devlin Génin - Tous droits réservés 21 Partitionnement par tourniquet Comment partitionner par tourniquet ID Prénom Nom selon l’ID de l’utilisateur ? 1000 Alice Dupont 1003 Daniel Doyle 1006 Gilles Morvan ID Prénom Nom Nœud 1 1000 Alice Dupont 1001 Bob Brown ID Prénom Nom 1002 Charlie O’Brien 1001 Bob Brown 1003 Daniel Doyle 1004 Edna McCarthy 1004 Edna McCarthy 1005 Fabienne Lenoir Nœud 2 1006 Gilles Morvan ID Prénom Nom 1002 Charlie O’Brien On considérera qu’un modulo 0 1005 Fabienne Lenoir (ie 3 mod 3 = 0) correspond au nœud 3. Nœud 3 Alanna Devlin Génin - Tous droits réservés 21 Avantages et inconvénients du partitionnement par tourniquet Lecture : Aucune partition spécifique n’est surchargée, car les données sont uniformément réparties. Écriture : Les écritures sont bien distribuées entre les partitions, évitant ainsi les goulots d’étranglement. Lecture : Les requêtes qui nécessitent des recherches précises peuvent devoir scanner plusieurs partitions, augmentant ainsi le temps de lecture. Écriture : Il n’y a pas de regroupement logique des données, ce qui peut compliquer la gestion et l’accès à des ensembles de données liés. Alanna Devlin Génin - Tous droits réservés 22 Partitionnement par intervalle Définition Le partitionnement par intervalle ou également appelé partitionne- ment par plage (interval partitioning en anglais) scinde les données en partitions basées sur des plages de valeurs spécifiques (par exemple, des plages de dates, de montants, etc.). Le partitionnement par intervalle est souvent utilisé pour les données temporelles, où les enregistrements sont répartis en fonction de la date ou de l’heure de création. Alanna Devlin Génin - Tous droits réservés 23 Partitionnement par intervalle Comment partitionner par intervalle selon l’âge de l’utilisateur avec les catégories d’âge suivantes : 20 à 39 ans, 40 à 69 ans et 70 ans et plus ? ID Prénom Nom Âge Nœud 1 1000 Alice Dupont 30 1001 Bob Brown 39 1002 Charlie O’Brien 26 1003 Daniel Doyle 42 1004 Edna McCarthy 58 1005 Fabienne Lenoir 66 Nœud 2 1006 Gilles Morvan 71 Nœud 3 Alanna Devlin Génin - Tous droits réservés 24 Partitionnement par intervalle Comment partitionner par intervalle selon l’âge de l’utilisateur avec les catégories d’âge suivantes : 20 à 39 ans, 40 à 69 ans et 70 ans et plus ? ID Prénom Nom Âge 1000 Alice Dupont 30 1001 Bob Brown 39 1002 Charlie O’Brien 26 ID Prénom Nom Âge Nœud 1 1000 Alice Dupont 30 1001 Bob Brown 39 ID Prénom Nom Âge 1002 Charlie O’Brien 26 1003 Daniel Doyle 42 1003 Daniel Doyle 42 1004 Edna McCarthy 58 1004 Edna McCarthy 58 1005 Fabienne Lenoir 66 1005 Fabienne Lenoir 66 Nœud 2 1006 Gilles Morvan 71 ID Prénom Nom Âge 1006 Gilles Morvan 71 Nœud 3 Alanna Devlin Génin - Tous droits réservés 24 Avantages et inconvénients du partitionnement par intervalle Lecture : Efficace pour les requêtes qui filtrent sur une plage de valeurs spécifique, car elles accèdent uniquement à la partition pertinente. Écriture : Facile à comprendre et à gérer, particulièrement utile pour les données temporelles ou séquentielles. Lecture : Les requêtes qui ne filtrent pas sur la colonne de partitionnement ou couvrent plusieurs plages peuvent être moins efficaces. Écriture : Les écritures peuvent se concentrer sur certaines par- titions (par exemple, la partition la plus récente dans un par- titionnement par date), créant un déséquilibre et un risque de surcharge de cette partition. Alanna Devlin Génin - Tous droits réservés 25 Partitionnement par clé Définition Le partitionnement par clé (ou liste) (key partitioning ou list parti- tioning en anglais) répartit les données en fonction de la valeur d’une ou plusieurs colonnes spécifiques, qui sont appelées les clés de parti- tionnement. Le partitionnement par clé est souvent utilisé pour les données qui peuvent être regroupées en catégories distinctes, telles que les données géographiques, les catégories de produits, etc. Alanna Devlin Génin - Tous droits réservés 26 Partitionnement par clé Comment partitionner par clé selon la ville ? ID Prénom Nom Ville Nœud 1 1000 Alice Dupont Paris 1001 Bob Brown Londres 1002 Charlie O’Brien Dublin 1003 Daniel Doyle Dublin 1004 Edna McCarthy Dublin 1005 Fabienne Lenoir Paris Nœud 2 1006 Gilles Morvan Paris Nœud 3 Alanna Devlin Génin - Tous droits réservés 27 Partitionnement par clé Comment partitionner par clé selon la ville ? ID Prénom Nom 1000 Alice Dupont 1005 Fabienne Lenoir 1006 Gilles Morvan ID Prénom Nom Ville Nœud 1 1000 Alice Dupont Paris 1001 Bob Brown Londres 1002 Charlie O’Brien Dublin ID Prénom Nom 1003 Daniel Doyle Dublin 1001 Bob Brown 1004 Edna McCarthy Dublin 1005 Fabienne Lenoir Paris Nœud 2 1006 Gilles Morvan Paris ID Prénom Nom 1002 Charlie O’Brien 1003 Daniel Doyle 1004 Edna McCarthy Nœud 3 Alanna Devlin Génin - Tous droits réservés 27 Avantages et inconvénients du partitionnement par clé Lecture : Les requêtes qui filtrent sur la clé de partition sont rapides, car elles accèdent directement à la partition appropriée. Écriture : Les opérations d’écriture sont distribuées de manière équilibrée si la distribution des clés est uniforme, évitant ainsi les goulots d’étranglement. Lecture : Si les requêtes ne filtrent pas sur la clé de partition, elles peuvent devoir parcourir plusieurs partitions, ce qui dégrade les performances. Écriture : Si les clés sont mal réparties (skewed distribution), certaines partitions peuvent être surchargées, entraı̂nant des déséquilibres. Alanna Devlin Génin - Tous droits réservés 28 Partitionnement par hachage Définition Le partitionnement par hachage (hash partitioning en anglais) dis- tribue les données en fonction du résultat d’une fonction de hachage appliquée à une ou plusieurs colonnes. f pxq “ y avec x la clé de partitionnement et y le nœud de destination. Le partitionnement par hachage est souvent utilisé pour répartir uniformément les données et éviter les déséquilibres de charge. Les données sont réparties de manière aléatoire, mais déterministe. Alanna Devlin Génin - Tous droits réservés 29 Partitionnement par hachage Comment partitionner par hachage selon l’ID de l’utilisateur ? ID Prénom Nom Hash Nœud 1 1000 Alice Dupont f(1000) = 2 1001 Bob Brown f(1001) = 1 1002 Charlie O’Brien f(1002) = 3 1003 Daniel Doyle f(1003) = 3 1004 Edna McCarthy f(1004) = 1 1005 Fabienne Lenoir f(1005) = 2 Nœud 2 1006 Gilles Morvan f(1006) = 1 Nœud 3 Alanna Devlin Génin - Tous droits réservés 30 Partitionnement par hachage Comment partitionner par hachage selon l’ID de l’utilisateur ? ID Prénom Nom 1001 Bob Brown 1004 Edna McCarthy 1006 Gilles Morvan ID Prénom Nom Hash Nœud 1 1000 Alice Dupont f(1000) = 2 1001 Bob Brown f(1001) = 1 ID Prénom Nom 1002 Charlie O’Brien f(1002) = 3 1000 Alice Dupont 1003 Daniel Doyle f(1003) = 3 1005 Fabienne Lenoir 1004 Edna McCarthy f(1004) = 1 1005 Fabienne Lenoir f(1005) = 2 Nœud 2 1006 Gilles Morvan f(1006) = 1 ID Prénom Nom 1002 Charlie O’Brien 1003 Daniel Doyle Nœud 3 Alanna Devlin Génin - Tous droits réservés 30 Avantages et inconvénients du partitionnement par hachage Lecture : Les requêtes qui utilisent la colonne de hachage sont rapides, car elles accèdent directement à la partition spécifique. Écriture : Les données sont réparties de manière uniforme, mi- nimisant le risque de surcharge d’une partition. Lecture : Les requêtes qui ne filtrent pas sur la colonne de hachage peuvent nécessiter un balayage de plusieurs partitions. Écriture : Le hachage peut rendre le regroupement logique des données plus difficile et compliquer les opérations de mainte- nance comme le rééquilibrage des partitions. Alanna Devlin Génin - Tous droits réservés 31 Comparatif des di↵érentes stratégies de partitionnement Identifiant Prénom Nom Âge Ville Identifiant Prénom Nom Âge Ville 1000 Alice Dupont 30 Paris 1000 Alice Dupont 30 Paris 1001 Bob Brown 39 Londres 1001 Bob Brown 39 Londres 1002 Charlie O’Brien 26 Dublin 1002 Charlie O’Brien 26 Dublin 1003 Daniel Doyle 42 Dublin 1003 Daniel Doyle 42 Dublin 1004 Edna McCarthy 58 Dublin 1004 Edna McCarthy 58 Dublin 1005 Fabienne Lenoir 66 Paris 1005 Fabienne Lenoir 66 Paris 1006 Gilles Morvan 71 Paris 1006 Gilles Morvan 71 Paris Partitionnement par tourniquet Partitionnement par intervalle (âge) Identifiant Prénom Nom Âge Ville Identifiant Prénom Nom Âge Ville 1000 Alice Dupont 30 Paris 1000 Alice Dupont 30 Paris 1001 Bob Brown 39 Londres 1001 Bob Brown 39 Londres 1002 Charlie O’Brien 26 Dublin 1002 Charlie O’Brien 26 Dublin 1003 Daniel Doyle 42 Dublin 1003 Daniel Doyle 42 Dublin 1004 Edna McCarthy 58 Dublin 1004 Edna McCarthy 58 Dublin 1005 Fabienne Lenoir 66 Paris 1005 Fabienne Lenoir 66 Paris 1006 Gilles Morvan 71 Paris 1006 Gilles Morvan 71 Paris Partitionnement par clé (ville) Partitionnement par hachage Alanna Devlin Génin - Tous droits réservés 32 Résumé des performances Lecture Meilleur : Partitionnement par intervalle ou par clé (si les requêtes ciblent la clé ou l’intervalle). Moins efficace : Partitionnement par tourniquet ou par hachage pour des requêtes non ciblées. Écriture Meilleur : Partitionnement par hachage ou par tourniquet (distribution équilibrée des écritures). Moins efficace : Partitionnement par intervalle (risque de surcharge sur certaines partitions). Le choix de la stratégie dépend du type de requêtes majoritaires (lecture ou écriture), de la distribution des données, et des besoins spécifiques de l’application en termes de performance. Alanna Devlin Génin - Tous droits réservés 33 Scalabilité Alanna Devlin Génin - Tous droits réservés 34 Haute disponibilité Garantir un service disponible en tout temps Réplication Partitionnement Tolérance aux pannes Alanna Devlin Génin - Tous droits réservés 35 Haute disponibilité Alanna Devlin Génin - Tous droits réservés 36 Quelle flexibilité de schéma ? Alanna Devlin Génin - Tous droits réservés 37 ACID vs BASE Alanna Devlin Génin - Tous droits réservés 38 Transactions ACID Atomicité : Toutes les opérations d’une transaction sont exécutées ou aucune Cohérence : La base de données passe d’un état valide à un autre état valide Isolation : Les transactions s’exécutent indépendamment les unes des autres Durabilité : Les modifications sont persistantes Alanna Devlin Génin - Tous droits réservés 39 Propriétés BASE Basically Available : Le système est toujours disponible Soft state : L’état du système peut changer Eventually consistent : Le système finit par être cohérent Alanna Devlin Génin - Tous droits réservés 40 Théorème CAP Consistency Availability Partition tolerance Alanna Devlin Génin - Tous droits réservés 41 Théorème CAP Selon Eric Brewer, un système informatique ne peut garantir simultanément que trois propriétés : Consistency : Toutes les données sont à jour Availability : Toutes les requêtes reçoivent une réponse Partition tolerance : Le système continue de fonctionner malgré les partitions réseau Alanna Devlin Génin - Tous droits réservés 42 Avantages et inconvénients du NoSQL Avantages Scalabilité horizontale Flexibilité des schémas Performances pour certaines charges de travail Inconvénients Complexité de gestion Manque de standardisation Consistance éventuelle (CAP Theorem) Alanna Devlin Génin - Tous droits réservés 43 Ce que NoSQL ne permet pas Joins Group by Transactions ACID Requêtes complexes Agrégations SQL Intégrations avec des applications basées sur SQL Alanna Devlin Génin - Tous droits réservés 44 Quand utiliser NoSQL Grande quantité de données semi-structurées ou non structurées (logs, réseaux sociaux, IoT, time-based data) Améliorer les performances d’accès aux données en combinant le traitement de volumes de données plus importants, la réduction des temps de latence et l’amélioration du débit. Alanna Devlin Génin - Tous droits réservés 45 Cas d’usage des bases de données NoSQL Applications web et mobiles Big Data et analytics Gestion de contenu et réseaux sociaux Internet des objets (IoT) Alanna Devlin Génin - Tous droits réservés 46 Time for Kahoot ! Alanna Devlin Génin - Tous droits réservés 46 Typologie des bases de données NoSQL Ecosystème NoSQL Alanna Devlin Génin - Tous droits réservés 47 Typologie des bases de données NoSQL Alanna Devlin Génin - Tous droits réservés 48 Caractéristiques des bases de données clé-valeur Définition Dans une base de données clé-valeur, les données sont stockées sous forme de paires de clés uniques et de valeurs correspondantes. La clé agit comme un identifiant unique, et la valeur peut être de tout type (chaı̂ne de caractères, JSON, binaire, etc.). Très scalable avec une structure simple. Pas de schéma ou de structure rigide ; stockage de données flexible. ãÑ Idéal pour stocker de grandes quantités de données avec une complexité relationnelle minimale. Alanna Devlin Génin - Tous droits réservés 49 Comment fonctionnent les bases de données clé-valeur ? Alanna Devlin Génin - Tous droits réservés 50 Bases de données clé-valeur Alanna Devlin Génin - Tous droits réservés 51 Cas d’usages des bases de données clé-valeur Stockage de sessions et profils d’utilisateurs ãÑ Chaque utilisateur est référéncé par une clé qui permet d’accéder à ses informations. Paniers d’achats dans les applications de commerce électronique ãÑ Gestion des commandes lors des soldes et de l’évolution de leur statut. Moteur de stockage des métadonnées ãÑ Pour une plateforme de jeu, cela permet d’accéder aux données des joueurs, l’historique des sessions et les tableaux de classement pour des millions d’utilisateurs simultanés. Systèmes de cache (ex. : Redis, Memcached) ãÑ Les applications de réseaux sociaux peuvent stocker des données fréquemment consultées, telles que le contenu des fils d’actualités. Alanna Devlin Génin - Tous droits réservés 52 Avantages et inconvénients des bases de données clé-valeur Avantages Lectures et écritures extrêmement rapides grâce à l’accès direct par clé. Scalabilité horizontale facile pour de grands ensembles de données. Inconvénients Absence de requêtes complexes. Mauvaise gestion du schéma. Alanna Devlin Génin - Tous droits réservés 53 Caractéristiques des bases de données document Définition Dans une base de données orientée document, les données sont stockées sous forme de documents structurés, généralement au for- mat JSON, BSON, ou XML. Chaque document représente un enregistrement, ce qui permet de stocker des données hiérarchiques et complexes. Très flexible : chaque document peut avoir une structure di↵érente. Capable de stocker des données complexes et imbriquées. ãÑ Idéal pour des applications nécessitant un modèle de données flexible et des mises à jour fréquentes. Alanna Devlin Génin - Tous droits réservés 54 Bases de données document Firestore Alanna Devlin Génin - Tous droits réservés 55 Exemple de document JSON Alanna Devlin Génin - Tous droits réservés 56 Comment fonctionnent les bases de données document ? Alanna Devlin Génin - Tous droits réservés 57 Comment fonctionnent les bases de données document ? Alanna Devlin Génin - Tous droits réservés 58 Cas d’usages des bases de données document Gestion du contenu sur les réseaux sociaux ãÑ L’activité de chaque utilisateur est stockée sous forme d’un document contenant des informations imbriquées telles que les posts, commentaires, et connexions. Plateformes de gestion de contenu (CMS) ãÑ Stockage de documents flexibles qui contiennent des informations sur des articles de blog, des images, des métadonnées, etc. Gestion des capteurs ãÑ L’Internet des objets (IoT) permet de collecter un grand volume de données brutes à partir de capteurs (données non structurées et évolutives). Alanna Devlin Génin - Tous droits réservés 59 Avantages et inconvénients des bases de données document Avantages Grande flexibilité dans le schéma, chaque document peut avoir une structure di↵érente. Bonne gestion des données hiérarchiques ou imbriquées. Scalabilité horizontale facile grâce à la partition des documents. Inconvénients Performances limitées pour des requêtes complexes ou des jointures entre documents. Les mises à jour simultanées de documents imbriqués peuvent être plus complexes à gérer. Alanna Devlin Génin - Tous droits réservés 60 Caractéristiques des bases de données orientées colonne Définition Dans une base de données orientée colonne, les données sont stockées par colonnes plutôt que par lignes. Chaque ligne correspond à une clé unique, et les colonnes stockent des paires de nom-colonne : valeur, ce qui permet de regrouper des colonnes similaires pour une meilleure performance des requêtes en lecture. Optimisé pour les lectures massives sur des colonnes spécifiques. Très scalable et performant pour des requêtes analytiques. ãÑ Idéal pour des applications nécessitant des analyses de grandes quantités de données. Alanna Devlin Génin - Tous droits réservés 61 Bases de données orientées colonne Alanna Devlin Génin - Tous droits réservés 62 Exemple : distribution des données sur Cassandra Alanna Devlin Génin - Tous droits réservés 63 Cas d’usages des bases de données orientées colonne Systèmes de gestion des données financières ãÑ Permet d’extraire rapidement des colonnes spécifiques comme les prix ou les transactions sur de grands ensembles de données. Outils analytiques et de Big Data ãÑ Optimisé pour les requêtes analytiques complexes sur des jeux de données massifs. Moteurs de recommandation ãÑ Stocke des informations sur les utilisateurs et leurs préférences sous forme de colonnes, permettant une extraction rapide pour les recommandations en temps réel. Alanna Devlin Génin - Tous droits réservés 64 Avantages et inconvénients des bases de données colonne Avantages Très performant pour les requêtes en lecture sur des colonnes spécifiques. Scalabilité horizontale adaptée pour le traitement de données massives. Idéal pour des applications analytiques ou des systèmes OLAP. Inconvénients Moins efficace pour des écritures fréquentes ou des transactions complexes. Complexité accrue pour gérer les relations entre colonnes. Alanna Devlin Génin - Tous droits réservés 65 Caractéristiques des bases de données graphe Définition Dans une base de données graphe, les données sont organisées en nœuds, liens et propriétés qui permettent de modéliser des relations complexes et dynamiques entre les entités. Les nœuds représentent les entités, les liens représentent les relations entre ces nœuds, et les propriétés fournissent des informations supplémentaires sur les nœuds et les liens. Représentation des relations complexes entre les données. Optimisé pour les requêtes de lecture et les opérations relationnelles. ãÑ Idéal pour des applications nécessitant des relations com- plexes et dynamiques entre les données. Alanna Devlin Génin - Tous droits réservés 66 Bases de données graphe Alanna Devlin Génin - Tous droits réservés 67 Comment fonctionnent les bases de données graphe ? Alanna Devlin Génin - Tous droits réservés 68 Cas d’usages des bases de données graphe Réseaux sociaux ãÑ Modélisation des relations entre utilisateurs, amis, groupes, et interactions pour des recommandations et des analyses sociales. Détection de fraude ãÑ Analyse des connexions entre transactions et entités pour identifier des schémas de fraude ou des comportements suspects. Systèmes de recommandation ãÑ Analyse des préférences des utilisateurs et des relations entre produits pour fournir des recommandations personnalisées. Gestion des réseaux de télécommunications ãÑ Modélisation des réseaux de télécommunications et des relations entre équipements pour optimiser les performances et la maintenance. Alanna Devlin Génin - Tous droits réservés 69 Avantages et inconvénients des bases de données graphe Avantages Excellente performance pour les requêtes impliquant des relations complexes. Flexibilité pour modéliser des structures de données dynamiques. Inconvénients Moins efficace pour les opérations non liées aux relations. Complexité accrue pour les utilisateurs non familiers avec la modélisation en graphe. Alanna Devlin Génin - Tous droits réservés 70 Time for Kahoot ! Alanna Devlin Génin - Tous droits réservés 70

Use Quizgecko on...
Browser
Browser