BASES DE DONNÉES AVANCÉES - DATAWAREHOUSE ET NOSQL INTRODUCTION THIERRY HAMON - LIMSI
←
→
Transcription du contenu de la page
Si votre navigateur ne rend pas la page correctement, lisez s'il vous plaît le contenu de la page ci-dessous
Bases de Données Avancées DataWareHouse et NoSQL Introduction Thierry Hamon Bureau H202 Institut Galil�e - Universit� Paris 13 & LIMSI-CNRS hamon@limsi.fr https://perso.limsi.fr/hamon/Teaching/P13/BDA-INFO2-2018-2019/ INFO2 – BDA 1/69
Sources des transparents F. Boufares, LIPN, Université Paris Nord P. Marcel, LI, Université de Tours Bernard Espinasse, Ecole Polytechnique Universitaire de Marseille Melanie Herschel, Université Paris Sud 2/69
Introduction Quelle quantité d’information ? sous quelle forme ? Il y a plus de 15 ans ! en 2000 : entre 1 et 2 ExaOctets par année (1 Eo = 220 To) 90% électronique taux de croissance annuel de 50 % en 2003 : 5 Eo en 2002, 92% électronique Lyman&Varian, 2003 (http://groups.ischool.berkeley.edu/archive/ how-much-info-2003/execsum.htm) Comment accèder à ces données, tirer partie de ces données ? → Les bases de données ne suffisent plus 3/69
BD → ED Des bases de données aux Entrepôts de données 4/69
BD → ED Introduction Avant les entrepôts de données/Data Warehouses La majeure partie des applications Bases de Données reposent aujourd’hui sur trois couches : La couche la plus externe est celle de qui permet de présenter les données aux utilisateurs. Elle est appelée Graphical User Interfaces GUI. La couche application intermédiaire inclut le programme de l’application Elle ne stocke pas les données. La couche la plus interne gère le stockage des données. Elle est appelée la couche Base de Données. 5/69
BD → ED Introduction Couche Présentation Graphical User Interfaces GUI GUI Couche Application OLTP Application OLTP Application Decision support System Read, Select Insert, Update, Delete Couche Base de Données BD1 BD2 Ressources externes (file system, ftp, www, ...) 6/69
BD → ED Introduction Les applications interrogent les données avec, par exemple, le langage SQL (Select) et les mettent à jour par l’intermédiaire des opérations Insert, Update et Delete qui constituent des transactions. Celles-ci doivent avoir certaines propriétés ACID (Atomicité, Cohérence, Isolation et Durabilité) Ce type d’application est appelé On-Line Transaction Processing OLTP. 7/69
BD → ED Introduction Données volumineuses & Besoins nouveaux Vers les entrepôts de données → Systèmes d’Information Décisionnel Systèmes d’Aide à la Décision (DSS) : Rapports, Etats, Tableaux de Bord, Graphiques, Synthèses, Groupement, Agrégat, Résumé ... (Reporting Tools, Management Information System, Executive Information System, Decision Support System DSS) 8/69
BD → ED Introduction Vers les entrepôts de données Remarques Contrairement aux applications OLTP, qui consultent et mettent à jour les données des BD opérationnelles, les DSS lisent les données seulement pour avoir de nouvelles informations à partir des données sources Bénéfice de cette approche : seules les BD opérationnelles ont à être créées et maintenues Un ensemble de méta-données est utilisés pour les 2 systèmes. Les DSS ne nécessitent que des travaux supplémentaires mineurs. 9/69
BD → ED Introduction Vers les entrepôts de données Remarques Cependant, il y a plusieurs désavantages : (quand le DSS et les application OLTP se partagent les mêmes BD) Un DSS ne peut utiliser que les données actuellement stockées dans les BD les analyses historiques sont donc souvent impossibles à cause des opérations de mises à jour qui changent les données historiques L’utilisation des BD en mode multi-utilisateurs ce qui implique des opérations de verrouillage des données (Locking operations) et donc des problèmes de performance car les requêtes analytiques demandent l’accès à de très grands nombre de tuples. 10/69
BD → ED Introduction La solution est de séparer la BD orientée Transaction de la BD orientée Aide à la Décision d’où la naissance du concept Entrepôt de Données = Data Warehouse. Les DWH sont physiquement séparés des SGBD opérationnels (BD opérationnelles) 11/69
BD → ED Introduction Définition rapide d’un Data Warehouse Le Data Warehouse est une collection de données orientées sujet, intégrées, non volatiles, historisées, organisées pour le support d’un processus d’aide à la décision Un système de DWH peut être formellement défini comme un triplet
BD → ED Architecture des DWHs Méta−données Extraire Sources externes Nettoyer Transformer Utiliser Charger (Load) Intégrer Rafraichir Entrepot de données OLAP Maintenir BD opérationnelles 13/69
BD → ED Introduction Le DWH intègre des données à partir de sources multiples et hétérogènes afin de répondre aux requêtes du système d’aide à la décision. Ce type d’application est appelé On-Line Analytical Processing OLAP OLAP permet la transformation des données en informations stratégiques 14/69
BD → ED Nouveaux concepts/nouvelle perspective Entrepôt de données récolte, stockage et gestion efficace des gros volumes de données OLAP requêtes interactives complexes sur ces volumes Data mining (fouille de données) extraction automatique de propriétés cachées données → information → connaissances 15/69
BD → ED Analyse OLAP (On-Line Analytical processing) Techniques OLAP : apparition en recherche dans les années 70 mais développement dans les années 90 dans l’industrie Réalisation de synthèses, d’analyses et de la consolidation dynamique de données multidimensionnelles Manière la plus naturelle d’exploiter un ED étant donné son organisation multidimensionnelle 16/69
BD vs. DWH Introduction : Comparaison Pourquoi pas des SGBDs pour les entrepôts de données ? les 2 systèmes sont performants SGBD : calibré pour l’OLTP ; méthodes d’accès index, contrôle de concurrence, reprise Entrepôt : calibré pour l’OLAP ; requêtes OLAP complexes, vue dimensionnelle, consolidation Fonctions et données différentes Données manquantes : l’aide à la décision (AD) a besoin des données historiques qui ne se trouvent pas dans les BD opérationnelles Consolidation : l’AD a besoin de données consolidées (agrégats) alors qu’elles sont brutes dans les BD opérationnelles 17/69
BD vs. DWH Introduction : Comparaison SGBD hétérogènes vs. Entrepôts de données Traditionnellement, l’intégration de BD hétérogènes se fait par le biais de Wrappers/médiateurs au dessus des BD hétérogènes Approches orientées requêtes Quand une requête est posée sur un site client, un métadictionnaire est utilisé pour la traduire en plusieurs requêtes appropriées à chacune des BD. Le résultat est l’intégration de réponses partielles L’exécution des requêtes demande donc beaucoup de ressources Entrepôts de données : approche orientée mise à jour les informations sont intégrées et stockées pour une interrogation directe Plus efficace en coût d’exécution des requêtes 18/69
BD vs. DWH Introduction : Comparaison BD opérationnelle vs. Entrepôts de données OLTP (On-Line Transaction Processing) Exécution en temps réel des transactions, pour l’enregistrement des opérations quotidiennes : inventaires, commandes, paye, comptabilité Par opposition au traitement en batch OLAP (On-Line Analytical Processing) Traitement efficace des requêtes d’analyse pour la prise de décision qui sont par défaut assez complexes (bien qu’a priori, elles peuvent être réalisées par les SGBD classiques) 19/69
BD vs. DWH Introduction : Comparaison BD opérationnelle vs. Data Warehouse : OLTP vs. OLAP Données : courantes, détaillées vs. historiques, consolidées Conception : modèle ER + application vs. modèle en étoile + sujet Vues : courantes, locales vs. évolutive, intégrée Mode d’accès : mise à jour vs. lecture seule mais requêtes complexes 20/69
BD vs. DWH Architecture du DWH Architecture Multi-tiers Data select Dictionnaire de (requetes) OLAP SERVER Méta−données 100 0 Oracle Express 011 100 11 MVS (TSO, DB2 ...) Business Objects (rapports, analyses) E(xtract) T(ransform) L(oad) DataWareHouse 111 0 0 100 00 11 UNIX (Oracle, ...) Oracle 9i (Olap) SAS (Datamining) 111 0 000 100 11 Windows (SQL Server, Data Marts Excel, ...) Applications en Controle et chargement des données OLAP Outils Front−End production 21/69
BD vs. DWH Conception logique des DWHs Données multidimentionnelles Montant des ventes comme une fonction des paramètres produits, mois, région Dimensions : Produit, Lieu, Temps Chemins de consolidation hiérarchiques on Régi Région Année Industrie Pays Trimestre Catégorie Produit Ville Mois Semaine Produit Magasin Jour Mois 22/69
Applications Domaines d’application Ceux de l’informatique décisionnelle (Business Intelligence) pour aider atteindre les objectifs stratégiques d’une entreprise et faciliter son pilotage avoir une connaissance plus approfondie de l’entreprise anticiper les besoins clients prendre en compte les nouveaux canaux de distribution (vente en ligne, etc.) 23/69
Applications Domaines d’application Informatique décisionnelle Entrepôt de données Outils de veille stratégique et de recueil d’information (intelligence économique) Aide aux décideurs pour prendre les bonnes décisions sur la base des données disponibles Exemples : Quels sont les 5 produits les plus vendus pour chaque sous-catégorie de produits qui représente plus de 20% des ventes dans sa catégorie de produits ? Quelle est la priorité d’expédition et quel est le revenu brut potentiel des commandes de livres qui ont les 10 plus grandes recettes brutes parmi les commandes qui n’avaient pas encore été expédiées ? 24/69
Applications Applications Commerce, finance, transport, télécommunications, santé, services, ... gestion de la relation client gestion des commandes, des stocks prévisions de ventes définition de profil utilisateur analyse de transactions bancaires détection de fraudes ... 25/69
Applications Principales applications autour d’un ED Réalisation de rapports divers (Reporting) Réalisation de tableaux de bords (Dashboards) Fouille de données (Data Mining) Visualisations autour d’un ED (visualizations) ... 26/69
Applications Exemple d’application Domaine bancaire Un des premiers utilisateurs des ED Regroupement des informations relatives à un client pour une demande de crédit Lors de la commercialisation d’un nouveau produit : Mailing ciblés rapidement élaborés à partir de toutes les informations disponibles sur un client Recherche de fraudes sur les cartes de crédit : Mémorisation des mouvements et contrôles a posteriori, pour détecter les comportements suspects Échanges d’actions et de conseils de courtages Déterminer des tendances de marchés grâce à : la mémorisation de l’historique une exploitation par des outils décisionnels avancés 27/69
Définition d’un DWH Construction et d’exploitation d’un entrepôt de données Processus en 3 phases : 1 Construction de la BD décisionnelle Modélisation conceptuelle des données multiformes et multi-sources Conception de l’entrepôt de données Alimentation de l’entrepôt (extraire, nettoyer, transformer, charger) Stockage physique des données 2 Sélection des données à analyser Besoins d’analyse de l’utilisateur Data marts (Magasins de données) Cubes multidimensionnels Tableaux ou tables bidimensionnels 3 Analyse des données Stastiques et reporting, OLAP, Data Mining 28/69
Définition d’un DWH Présentation des couches Couche Présentation Graphical User Interfaces GUI GUI Couche Application OLTP Application OLTP Application Decision support System Insert, Update, Delete Read, Select Couche Base de Données BD2 BD1 Target DataBase Load DataWareHouse Ressources externes (file system, ftp, www, ...) 29/69
Définition d’un DWH Architecture du DWH Architecture Multi-tiers Data select Dictionnaire de (requetes) OLAP SERVER Méta−données 100 0 Oracle Express 011 100 11 MVS (TSO, DB2 ...) Business Objects (rapports, analyses) E(xtract) T(ransform) L(oad) DataWareHouse 111 0 0 100 00 11 UNIX (Oracle, ...) Oracle 9i (Olap) SAS (Datamining) 111 0 000 100 11 Windows (SQL Server, Data Marts Excel, ...) Applications en Controle et chargement des données OLAP Outils Front−End production 30/69
Définition d’un DWH Opérations Extraction (Extraction) : Ces opérations permettent de filtrer les données à partir de données sources (BD, fichiers, sites web...) dans des BD temporaires. Transformation (Transformation) : Ces opérations permettent de transformer les données extraites dans un format uniforme. Les conflits entre les modèles, les schémas et les données sont résolus durant cette phase. Chargement (Load) : Ces opérations permettent de charger les données transformées dans la BD cible. La BD cible est souvent implantée avec un SGBD relationnel-objet. Agrégat et Groupement (Agregating and Grouping) : La BD cible doit permettre de stocker les données opérationnelles et les données issues de calculs. 31/69
Architecture Architecture Objectifs : regrouper les données sources concevoir le schéma de l’entrepôt remplir l’entrepôt maintenir l’entrepôt 32/69
Architecture fonctionnelle Architecture fonctionnelle de l’entrepôt Les données d’un entrepôt se structurent suivant un axe synthétique : établissement d’une hiérarchie d’agrégation incluant les données détaillées : les événements les plus récents les données agrégées : synthèse des données détaillées les données fortement agrégées : synthèse à un niveau supérieur des données agrégées un axe historique incluant les données détaillées historisées représentant les événements passés → Stockage des méta-données : informations concernant les données de l’ED (provenances, structures, méthodes utilisées pour l’agrégation, ...) 33/69
Architecture fonctionnelle Entrepôts et magasins de données Data Warehouses et Data marts Entrepôts de données Collecte l’ensemble de l’information utile aux décideurs à partir des sources de données (BD opérationnelle, BD externes, ...) Centralisation de l’information décisionnelle Garantie de l’intégration des données extraites et de leur pérennité dans le temps Magasins de données Orientés sujet Aide efficace aux processus OLAP Extraction d’une partie des données utiles : pour une classe d’utilisateurs ou pour un besoin d’analyse spécifique 34/69
Architecture fonctionnelle Dictionnaire et méta-données Dictionnaire contenant des informations (méta-données) sur : toutes les données de l’ED chaque étape de la construction de l’ED le passage d’un niveau de données à un autre (exploitation de l’ED) Rôle : définition, fabrication, stockage, accès et présentation des données 35/69
Données sources Données sources Les données des entreprises sont généralement : Surabondantes Eparpillées Peu structurées pour l’analyse Modifiées quotidiennement Problème : Prise de décision difficile Solution : Utilisation d’outils et de techniques visant à préparer les données pour l’analyse Data warehousing Il s’agit d’une technique visant à extraire des données de différentes sources afin de les intégrer selon des formats plus adaptés à l’analyse et la prise de décision → Problématique d’intégration et définition de wrappers 36/69
Données sources Données sources hétérogènes Nécessité d’intéger des données hétérogènes, modifiées quotidiennement BD relationnelles objets distribuées fichiers textes documents HTML, XML bases de connaissances ... Mais aussi des représentations de données et de noms de champs/colonnes hétérogènes 37/69
Alimentation de l’ED Processus d’alimentation d’un ED Entreposage des données Rôle de l’alimentation de l’entrepôt rassembler de multiples données sources souvent hétérogènes homogénéiser les données sources Homogénéisation réalisée selon des règles précises Les règles d’homogénéisation sont : mémorisées sous forme de méta-données stockées dans le dictionnaire de données utiliser pour assurer des tâches d’administration et de gestion des données entreposées 38/69
Alimentation de l’ED Processus d’alimentation d’un ED 4 étapes : 1 Sélection des données sources 2 Extraction des données 3 Nettoyage et Transformation 4 Chargement Etapes 1 et 2 : Jusqu’à 80 % du temps de développement d’un entrepôt → outil : Oracle Warehouse Builder (OWB) 39/69
Alimentation de l’ED Extraction des données Un extracteur (wrapper) est associé à chaque source de données Sélection et extraction des données Formatage des données dans un format cible commun en général, le modèle Relationnel Utilisation d’interfaces comme ODB, OCI, JDBC 40/69
Alimentation de l’ED Transformation Objectif : suppression des incohérences sémantiques entre les sources, problématique lors de l’intégration des schémas des données 41/69
Alimentation de l’ED Transformation Résolution des problèmes survenant lors de l’intégration des schémas Demande une solide connaissance de la sémantique des schémas Peu traitée par les produits du marché Nombreux travaux de recherche Opération généralement réalisée à la main... 42/69
Alimentation de l’ED Chargement des données Objectif : Stockage des données nettoyées et préparées dans la BD opérationnelle (ODS) Opération : risquant d’être assez longue plutôt mécanique la moins complexe Mais il est nécessaire de définir et mettre en place : des stratégies pour assurer de bonnes conditions à sa réalisation une politique de rafraîchissement 43/69
Alimentation de l’ED Chargement des données Définitions de vues relationnelles sur les données sources Matérialisation des vues dans l’entrepôt Mais aussi, préparation à la restitution tris consolidations (pré-agrégation) indexation partitionnement des données enregistrement de méta-données ... 44/69
Alimentation de l’ED Préparation à la restitution Agrégation Calcul de vues agrégées Définition des indexes Stockage dans le CDW Personnalisation Construction de magasin de données (Data Marts) Construction de cubes de données Construction des présentations demandées par les utilisateurs 45/69
Modélisation Modélisation multidimensionnelle Lien direct entre les analyses décisionnelles (OLAP) et une modélisation de l’information conceptuelle : proche de la perception qu’en a l’analyste basée sur une vision multidimensionnelle des données Modèle multidimensitionnel : les données sont vues comme des data cubes Un cube de dimension n est dit un cuboïde Le treillis des cuboïdes d’un entrepôt de données forme un data cube La modélisation multidimensionnelle a donné naissance aux concepts de fait et de dimension (Kimball 1996) 46/69
Modélisation Cube de données 47/69
Modélisation Exemple de treillis de cube 48/69
Modélisation Cube de données Sujet analysé : un point dans un espace à plusieurs dimensions Organisation des données pour mettre en évidence le sujet analysé et les différentes perspectives de l’analyse data cube (par exemple, les ventes) : vision des données sur plusieurs dimensions 49/69
Modélisation Concept de fait Un fait : modélisation du sujet de l’analyse Mesures correspondant aux informations de l’activité analysée Mesures numériques, généralement valorisées de façon continue. On peut les additionner les dénombrer calculer le minimum, le maximum ou la moyenne Exemple : le fait de Vente peut être constitué des mesures d’activités suivantes : quantité de produits vendus montant total des ventes 50/69
Modélisation Concept de dimension Axes ou perspectives caractérisant es mesures de l’activité d’un fait Une dimension : modélisation un axe d’analyse nécessité pour chaque dimension, de définir ses différents niveaux de détail → Définition de une (ou plusieurs) hiérarchie(s) de paramètres se compose de paramètres correspondant aux informations faisant varier les mesures de l’activité Dans l’exemple précédent : Analyse du fait Vente suivant différentes perspectives correspondant à trois dimensions : la dimension Temps la dimension Geographie la dimension Categorie 51/69
Bilan Conclusion et perspectives Deux tendances actuelles datamarts dataweb construction du Data Warehouse : processus long et difficile Construction progressive par datamarts Avantage : rapide Inconvénient : risque de cohabitation de datamarts incohérents Dataweb Ouverture du data warehouse au web 52/69
Bilan Plus loin... Big data warehouses Volume Optimisation/parallélisation des agrégations OLAP dans un cloud Variété Nouveaux modèles multidimensionnels et opérateurs d’agrégation Entrepôts NoSQL Vélocité Travailler en mémoire : problème de l’explosion dimensionnelle Fonctions d’oubli Véracité Qualité des données sources Sécurité des données entreposées 53/69
NoSQL NoSQL 54/69
NoSQL Sources des transparents Bernd Amann, LIP6 Bernard Espinasse, Ecole Polytechnique Universitaire de Marseille Olivier Guibert, Université de Bordeaux Anne-Cécile Caron, Université de Lille 55/69
NoSQL Introduction Constats : De plus en plus de donnnées disponibles ou à manipuler très grandes plateformes applications Web (Google, Facebook, Twitter, Amazon, ...) Nécessite de la gestion des données de manière distribuée Le respect des propriétés ACID (Atomicité, Cohérence, Isolation et Durabilité) n’est pas possible dans un environnement distribué Aussi, manipulation de données complexes, hétérogènes, non structurées de très grands volumes de données (Big Data) 56/69
NoSQL Evolutions de la gestion des données Nouvelles Données : Web 2.0 : Facebook, Twitter, news, blogs, ... LOD : graphes, ontologies, ... Flux : capteurs, GPS, ... → Très gros volumes, données pas ou faiblement structurées Nouveaux Traitements : Moteurs de recherche Extraction, analyse, ... Recommandation, filtrage collaboratif, ... → Transformation, agrégation, indexation Nouvelles Infrastructures : Cluster, réseaux mobiles, microprocesseurs multi-coeurs, ... → Distribution, parallélisation, redondance 57/69
NoSQL Augmentation du volume de données w3resource.com/mongodb/nosql.php 58/69
NoSQL Limites de SGBD relationnels/traditionnels Faible efficacité lorsque les volumes de données sont importants car Transaction respectant les propriétés ACID Requêtes LMJ réalisées séquentiellement et préservant l’intégrité des données → Gestion des transaction complexe ayant un impact sur les performances Modèle ER flexible mais peu adapté aux données non-structurées → peu performant et couteux en temps de développement Matériel et logicieux coûteux et compétences en optimisation peu répandues → Nécessité de distribuer les traitements 59/69
NoSQL NoSQL Définition de systèmes « NoSQL » (not only SQL) Pour répondre à l’augmentation du volume de donnnées à traiter : Spécialisation des systèmes Systèmes sur mesure Pas d’utilisation de SQL comme langage de requête Généralement des modèles de données différents : Modèle Document Modèle Colonne Modèle clé/valeur Modèle Graphe → Théorème CAP (Cohérence, Disponibilité, Pannes) (Brewer, 2000) 60/69
NoSQL Théorème CAP w3resource.com/mongodb/nosql.php 61/69
NoSQL Systèmes NoSQL 62/69
NoSQL SGBD NoSQL Définition SGBD non fondé sur l’architecture des SGBDR open source distribué horizontally scalable (montée en charge par ajout de serveurs) 63/69
NoSQL SGBD NoSQL Simplification en renonçant aux fonctionnalités classiques des SGBDR : Redondance (via réplication) Pas forcément de schéma normalisé, initialement voire à terme Pas de tables mais des collections Rarement du SQL mais API simple ou langage spécialisé Pas forcément de jointure mais multiplication des requêtes, cache/réplication/données non normalisées, données imbriquées Transactions pas forcément ACID mais plutôt BASE Résisitance aux pannes (P) s’impose pour un système distribué : AP (accepte de recevoir des données éventuellement incohérentes) CP (attendre que les données soient cohérentes) 64/69
NoSQL SGBD NoSQL Gestion des mégadonnées (big data) du web, des objets connectés, etc. Structure des données hétérogène et évolutive Données complexes et pas toujours renseignées Environnement distribué : données répliquées et accédées d’un peu partout (dans le monde), traitement répartis Techniques de partionnement des BD : sharding, hachage cohérent (consistent hashing) Contrôle de concurrence multi-version (Multi-Version Concurrency Control MVCC) Adaptation du protocole Paxos Performances linéaires avec la montée en charge (les requêtes obtiennent toujours aussi rapidement une réponse) 65/69
NoSQL Classification de systèmes Types de données : tables, clés/valeurs, arbres, graphes, documents Paradigme (langages) : MapReduce (PIG, Hive) API / Protocole : JSON/REST Persistence : mémoire, disque, cloud... Gestion de concurrence / cohérence Réplication, protocoles Langage d’implémentation, ... Voir https://db-engines.com/en/ranking 66/69
Fondements des systèmes NoSQL Fondements des systèmes NoSQL Sharding : partitionnement sur plusieurs serveurs Consistent hashing : partitionnement des données sur plusieurs serveurs eux-mêmes partitionnés sur un segment Map Reduce : modèle de programmation parallèle permettant de paralléliser tout un ensemble tâches à effectuer sur un ensemble de données, MVCC (Contrôle de Concurrence Multi-Version) : mécanisme permettant d’assurer le contrôle de concurrence Vector-Clock (horloges vectorielles) : mises à jour concurrentes en datant les données par des vecteurs d’horloge 67/69
Fondements des systèmes NoSQL Conclusion On a besoin de SQL et de NoSQL NoSQL = not only SQL Principe CAP Importance de noSQL Analyse de données Passage à l’échelle Parallélisation / partionnement verticale 68/69
Fondements des systèmes NoSQL Conclusion Les SGBDR en font trop, alors que les produits NoSQL font exactement ce dont vous avez besoin (Travis, 2009) Gestion des BD géantes des sites web de très grande audience Exemple des SGBD d’annuaires : grande majorité des accès aux BD consistent en lectures sans modification (ainsi, seule la persistance doit être vérifiée) « Consensus » actuel : Les SGBD NoSQL ne replacent pas les SGBDR mais les complètent en palliant leurs faiblesses 69/69
Vous pouvez aussi lire