Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
1
Principes et mise en œuvre du modèle OLAP
Chapitre 2 La modélisation multidimensionnelle
2
« On a vendu U unités du produit X dans la région Y à la date Z"
Le modèle multidimensionnel (1) Le modèle multidimensionnel est bien adapté pour représenter des données qui peuvent s’exprimer de la façon suivante: « On a vendu U unités du produit X dans la région Y à la date Z" Plusieurs données : les ventes, le produit, la région; la date On peut classifier ces données : Une valeur mesurée : la vente <==== Le fait Des données qui permettent de situer la valeur mesurée : le produit , la région , la date <=== les Dimensions M2 SIGLIS
3
Le modèle dimensionnel (2)
Un modèle dimensionnel peut être représenté comme un schéma entité-relation particulier : on a des faits on a des dimensions qui permettent de replacer ces faits. En phase de conception, on va être amené à différencier faits et dimensions M2 SIGLIS
4
PALO est un plugin Excel libre : http://www.palo.net/index.php?id=4
PALO: Plugin Excel PALO est un plugin Excel libre : PALO permet de créer et d'utiliser une base OLAP simple depuis Excel. Avec PALO, la formule suivante renvoie la valeur identifiée par les valeurs des dimensions PALO.DATA( <nom du serveur> , <nom du cube> , <Valeur de dimension 1> , <Valeur de dimension 2> , …. , <Valeur de dimension n> ) exemple: PALO.DATA(monserveur, mesdata, "vis" , "Est") renvoie 70 M2 SIGLIS
5
Notion de fait Un fait représente la valeur d’une mesure, mesurée ou calculée, selon un membre de chacune des dimensions (ex. ce qui est recueilli par les systèmes transactionnels). Ex. « le montant des ventes de couches culottes en 1995 pour les magasins du 64 est € » est un fait qui a été obtenu en ajoutant toutes les mesures prises tout au long de l‘année 1995 sur tous les magasins du 64. clès étrangères vers les dimensions faits M2 SIGLIS
6
Ex: Temps, Découpage administratif, Produits
Dimension Une dimension peut être définie comme un thème, ou un axe (attributs), selon lequel les données seront analysées (en fonction de …). Ex: Temps, Découpage administratif, Produits Une dimension contient des membres éventuellement organisés en hiérarchie, chacun des membres appartenant à un niveau hiérarchique (ou niveau de granularité) particulier. Ex: Pour la dimension Temps, les années, les mois et les jours peuvent être des exemples de niveaux hiérarchiques est un exemple de membre du niveau Année. M2 SIGLIS
7
Granularité d’une dimension
Une dimension contient éventuellement des membres organisés en hiérarchie: Chacun des membres appartient à un niveau hiérarchique (ou niveau de granularité) particulier Granularité d’une dimension : nombre de niveaux hiérarchiques M2 SIGLIS
8
Granularité d’une dimension
Ce sont les besoins métiers qui vont dicter la création des dimensions Exemple: besoin de rapports par trimestre besoin de rapports par régions En fonction de ces besoins, on peut être amené lors de l'import de données à calculer ces dimensions : Exemple: En fonction d'une date, calculer le semestre et le stocker dans la base décisionnelle. M2 SIGLIS
9
Exemple de modèle décisionnel
Ce modèle est conçu pour être implémenté sur une base de données relationnelle (FK, PK). M2 SIGLIS
10
Additivité des mesures
On est interessé par agréger les données sur une plusieurs dimensions Exemple: "Le montant des ventes de couches culotte sur tous les magasins du 64 pendant l'année 2013" ici "agréger" <=> ajouter Il y a cependant des choses que l'on ne peut pas faire. M2 SIGLIS
11
Additivité des mesures
Mesures additives: Elles peuvent être agrégées à travers toutes les dimensions. Mesures semi-additives: Ce sont les mesures qui ne peuvent être aggregées que sur certaines dimensions. Mesures non additives: Ce sont les mesures qui ne peuvent être aggrégées sur aucune des dimensions. M2 SIGLIS
12
Additivité des mesures: exemple
Soit une application répertoriant les ventes : Faits : Quantité vendue, Montant vendu (euros), Prix d'achat (euros), Marge brute (%), Montant du stock Dimensions : Produit, Date, Magasin M2 SIGLIS
13
Exemple de mesures additives
Additivité des mesures Exemple de mesures additives Calculer le montant total des ventes a un sens : pour une période donnée, pour un magasin donné, pour un produit donné, pour toutes les périodes, les produits , les magasins pour n'importe quelle conjonction de ses trois critères L'attribut "montant vendu (euros)" est une mesure additive : Le critère d'aggrégation est la somme; On peut ajouter les valeurs quelque soit la dimension. Question : peut-on en dire autant pour l'attribut "prix d'achat (euros)" ? M2 SIGLIS
14
Exemple de mesure non-additive
Additivité des mesures Exemple de mesure non-additive Calculer la somme des marges brutes n'a pas de sens: La marge brute = (prix de vente – prix d'achat) / prix d'achat en % Elle mesure le rendement d'un produit sans compter les charges Si on additionne toutes les marges brutes stockées qu'est ce qu'on va obtenir ? Quelque soit le critère, additionner les marges brutes n'a pas de sens L'attribut "marge brute" est une mesure non-additive : ajouter les valeurs quelque soit la dimension n'a pas toujours un sens. On pourrait calculer une marge brute par produit: somme(prix de vente) - somme(prix d'achat) / somme (prix d'achat) Pour calculer la marge brute globale il faudrait utiliser le nombre d'articles achetés , le nombre d'articles vendus M2 SIGLIS
15
Additivité des mesures Exemple de mesure semi-additive
Additionner les montants en stock pour une période donnée n'a pas toujours un sens : 100 unités le 10, 110 le 11, 123 le 12 , 90 le 13, 102 le 14 ne font pas 525 unités sur la semaine ! Par contre 100 unités le 10 dans le magasin A, 110 dans le B, 123 dans le C, 90 dans le D, 102 dans le E font bien 525 unités dans les magasins d'Aquitaine le 10 ! L'attribut "montant en stock" est semi-additif: il est non-additif pour la date il est additif pour les autres dimensions produit et magasin M2 SIGLIS
16
Exercice Des scientifiques font des prélévements en mer pour évaluer les stocks de poissons, crustacés, coquillages, ... disponibles en mer. Les mesures faites sont stockées dans un système décisionnel. Voici son modèle de données: Quelles sont les dimensions ? Les faits ? Si on prend comme opérateur d'agrégation la somme, quelles sont les mesures additives, non-additives, semi-additives ? Quel opérateur d'agregation utiliser pour rendre le modèle plus "additif" ? M2 SIGLIS
17
Le cube décisionnel Le terme de cube est fréquement utilisé.
Lorsque le nombre de dimensions est > 3, on parle d'hypercube Cette terminologie introduit de la confusion (comment se représenter les choses quand le nombre de dimensions est > 3 ?) : on l'utilisera le moins possible. Les produits: Ecrous, Vis, Boulons, Joints, … Les dates: Janvier, Février, Mars, … Les régions: Est, Ouest, Centre M2 SIGLIS
18
Le modèle en flocon de neige (snow flake) Le modèle en constellation
Les différents modèles de données Il y a plusieurs modèles possibles pour les cubes OLAP: Le modèle en étoile Le modèle en flocon de neige (snow flake) Le modèle en constellation M2 SIGLIS
19
Les dimensions ne sont pas hiérarchisées.
Le modèle en étoile Les dimensions ne sont pas hiérarchisées. Le modèle n'est pas normalisé: on peut être amené à dupliquer des données. Exemple : Modélisation de la dimension produit La table contient le produit, la catégory, le département La table contient des données dupliquées M2 SIGLIS
20
Le modèle en flocon de neige (snow flake)
Les hiérarchies sont implémentées par des liens entre différentes tables. Les dimensions sont normalisées : on ne duplique pas l'information ( ) il faut faire des jointures pour refaire les liens () M2 SIGLIS
21
On a un ensemble de faits repérés selon des dimensions
Le modèle en constellation dimension Fait On a un ensemble de faits repérés selon des dimensions M2 SIGLIS
22
Etape 1/4: Choisir le processus métier
Les étapes de conception d'un système décisionnel Etape 1/4: Choisir le processus métier Identifier les besoins métier Identifier les données disponibles Exemple: L'encadrement veut une meilleure comprehension des achats clients de façon à faire des promotions mieux ciblées sur des produits qui se vendent moins à certaines époques. Les données à utiliser seront les chiffres de ventes journaliers transmis par les magasins M2 SIGLIS
23
Etape 2/4 : Définir le niveau le plus fin
Les étapes de conception d'un système décisionnel Etape 2/4 : Définir le niveau le plus fin Il faut définir le niveau atomique: le niveau en dessous duquel on ne peut pas descendre Plus le niveau atomique est bas, plus le système sera évolutif Si on prend un niveau atomique médian, on ne pourra pas répondre aux requêtes des utilisateurs qui désirent un niveau de granularité plus fin. Exemples: Les ventes d'un produit X dans un magasin à une date (jj/mm/aaaa) Les prises d'une espèce donnée à une localisation (lat.,long.) à une date (jj/mm/aaaa) M2 SIGLIS
24
Etape 3/4 : Concevoir les dimensions
Les étapes de conception d'un système décisionnel Etape 3/4 : Concevoir les dimensions Définir les dimensions Choisir les attributs de chaque dimension Définir les traitements à l'import Concevoir la hiérarchie Concevoir l'implémentation de la hiérarchie (en étoile, en flocon, en constellation) Exemple: Ajout d'attributs sur la Dimension Date Day Number, Week number, Month number: permet de faire des comparaisons sur les périodes Holiday indicator: indique si on est sur une période de vacances . Permet de faire des études sur les ventes pendant les périodes de vacances. M2 SIGLIS
25
Etape 4 : Identifier les faits
Les étapes de conception d'un système décisionnel Etape 4 : Identifier les faits Les faits doivent être cohérents avec le niveau atomique Pour chaque fait, évaluer son additivité (additif, semi-additif, non additif) Eventuellement, créer des faits calculés pour faciliter la vie des utilisateurs (marge brute). M2 SIGLIS
26
TD ! Conception du SID "Les accidents de la route" M2 SIGLIS
27
Principes et mise en œuvre du modèle OLAP
-3ème partie- Opérations sur les cubes OLAP M2 SIGLIS
28
Les opérateurs peuvent être combinés Les opérateurs permettent :
Principes des opérations sur les cubes OLAP Les opérateurs appliqués sur un cube sont algébriques : Le résultat est un autre cube Les opérateurs peuvent être combinés Les opérateurs permettent : Des extractions Slicing : Prendre une tranche du cube Dicing : Extraire un sous-cube Des changements de granularité d’une dimension Roll-up (agrégation d’une dimension -> Résumé) Drill-down (informations plus détaillées) Des pivots M2 SIGLIS
29
Exemples à partir du cube …
Locations NA (North America) Euro Asia Africa Time 2000 Q1, Q2,Q3,Q4 2001 2002 2003 Product Computer Component Modems Wireless Mouse Other Components CellPhones Radar Detector 100 80 33 26 28 52 174 M2 SIGLIS
30
Sélection de tranches du cube par des prédicats selon une dimension
L’opérateur Slicing (1) Sélection de tranches du cube par des prédicats selon une dimension 28 52 Slice Product =« wireless Mouse » M2 SIGLIS
31
Sélection de tranches du cube par des prédicats selon une dimension
L’opérateur Slicing (2) Sélection de tranches du cube par des prédicats selon une dimension Slice pour la Location = « Asia » 80 M2 SIGLIS
32
Product=« Cellphones » And Location=« NA » Year=« 2000 »
L’opérateur Dicing (1) Extraction d’un sous-cube Dice for Product=« Cellphones » And Location=« NA » Year=« 2000 » M2 SIGLIS
33
59 => Radar Detector (33) + CellPhones (26)
L’opérateur Roll-up (dézoomer) Roll-up Products Components 59 => Radar Detector (33) + CellPhones (26) 28 => Wireless Mouse + modems M2 SIGLIS
34
Drill-down sur Product Des components vers les unités
L’opérateur Drill-down (zoomer) 254 80 33 28 52 100 Drill-down sur Product Des components vers les unités Computer components Other components 59 100 M2 SIGLIS
35
L’opérateur pivot Changement d’axes Pivot M2 SIGLIS
36
Synthèse des opérateurs
M2 SIGLIS
37
Principes et mise en œuvre du modèle OLAP
- 4ème partie - Implémentations du modèle OLAP M2 SIGLIS
38
Relational OLAP (ROLAP)
Trois possibilités Relational OLAP (ROLAP) Les données sont stockées dans un SGBD relationnel Un moteur OLAP permet de simuler le comportement d'un SGBD multi-dimensionnel Multidimensional OLAP (MOLAP) Structure de stockage en cube Accès direct aux données dans le cube Hybrid OLAP (HOLAP) Données stockées dans SGBD relationnel (données de base) ET une structure de stockage en cube (données agrégées) M2 SIGLIS
39
Avantages/inconvénients
ROLAP (1) Idée: Données stockées en relationnel. La conception du schéma est particulière: schéma en étoile, schéma en flocon Des vues (matérialisées) sont utilisées pour la représentation multidimensionnelle Les requêtes OLAP (slice, rollup…) sont traduites en SQL. Avantages/inconvénients Souplesse, évolution facile, permet de stocker de gros volumes. Mais peu efficace pour les calculs complexes M2 SIGLIS
40
Architecture fonctionnelle
ROLAP (2) Architecture fonctionnelle Exemples: Hyperion (Oracle) Mondrian (OLAP Open source écrit en java) M2 SIGLIS
41
CREATE MATERIALIZED VIEW <Table> (column_list) AS SELECT …
Exemple d’implémentation au dessus d’un SGBD relationnel CREATE MATERIALIZED VIEW <Table> (column_list) AS SELECT … La vue est pré-calculée par le SGBD Pré-calcul des agrégats et jointures Elle est maintenue lors des mises à jour Les requêtes sont reformulées contre la vue d'une manière transparente pour l'usager M2 SIGLIS
42
Interrogation de la vue:
Exemple d’implémentation au dessus d’un SGBD relationnel Table: Emp(#emp, job, salary) Définition de la vue: CREATE MATERIALIZED VIEW job_avg_sal AS select job, avg(sal) avg_sal FROM emp GROUP BY job; Interrogation de la vue: SELECT job FROM job_avg_sal WHERE avg_sal > 10000 M2 SIGLIS
43
Les tables de dimension n'ont pas de lien entre elles Avantages :
ROLAP et Modèle en étoile (1) Principes Une (ou plusieurs) table(s) de faits comprenant une ou plusieurs mesures. Plusieurs tables de dimension dénormalisées : descripteurs des dimensions. Les tables de dimension n'ont pas de lien entre elles Avantages : Facilité de navigation Performances : nombre de jointures limité ; gestion des données creuses. Gestion des agrégats Inconvénients : Redondances dans les dimensions Alimentation complexe. M2 SIGLIS
44
ROLAP et Modèle en étoile (2)
M2 SIGLIS
45
ROLAP et Modèle en étoile (3)
M2 SIGLIS
46
ROLAP et Modèle en étoile (4)
Exercice: A partir du schéma, Créer la vue matérialisée qui représente le fait « units _solds » M2 SIGLIS
47
CREATE MATERIALIZED VIEW faits_units_sold AS
La vue matérialisée qui représente la fait « units _solds » CREATE MATERIALIZED VIEW faits_units_sold AS SELECT unit_solds , description || ' ' || color || ' ' || size as Product , year , city , store_name FROM sales , product , period , store WHERE product.product_code = sales.product_code AND period.period_code = sales.period_code AND store.store_code = sales.store_code M2 SIGLIS
48
Le schéma en flocons est dérivé du schéma en étoile
ROLAP et Modèle en flocons (1) Le schéma en flocons est dérivé du schéma en étoile Dans le modèle en flocons, les tables de dimensions sont normalisées MAIS la table des faits reste inchangée. Avec ce schéma, chacune des dimensions est décomposée selon sa (ou ses) hiérarchie(s). M2 SIGLIS
49
D’un modèle dimensionnel en étoile …
M2 SIGLIS
50
… A un modèle dimensionnel en flocons
M2 SIGLIS
51
Principes: Avantages : Inconvénients :
ROLAP et Modèle en flocons (2) Principes: Modèle en étoile + normalisation des dimensions Utile lorsque les tables représentant les dimensions sont trop volumineuses Avantages : réduction du volume Inconvénients : navigation plus difficile à cause des nombreuses jointures M2 SIGLIS
52
Le cube est indexé sur ses dimensions
MOLAP (1) Idée: Modélisation directe du cube Ces cubes sont implémentés comme des matrices à plusieurs dimensions CUBE [1:m, 1:n, 1:p…] (mesure) Le cube est indexé sur ses dimensions Avantages/inconvénients: rapide formats propriétaires ne supporte pas de très gros volumes de données M2 SIGLIS
53
Architecture fonctionnelle
MOLAP (2) Architecture fonctionnelle Exemples PALO Server (+ Excel Add-in) M2 SIGLIS
54
Les requêtes vont chercher les données dans les tables et les cubes
HOLAP (1) Hybrid OLAP tables de faits et tables de dimensions stockées dans SGBD relationnel (données de base) données agrégées stockées dans des cubes Les requêtes vont chercher les données dans les tables et les cubes Solution hybride entre MOLAP et ROLAP offrant un compromis au niveau coût et performance M2 SIGLIS
55
Architecture fonctionnelle
HOLAP (2) Architecture fonctionnelle Non vu dans le cadre de ce cours M2 SIGLIS
56
Principes et mise en œuvre du modèle OLAP
-4 ème partie- Le modèle OLAP: Généralités M2 SIGLIS
57
6 critères ont été ajoutés en 1995
On-Line Analytic Processing (1) OLAP est un terme pour décrire l'approche dimensionnelle de l'aide à la décision Tout comme le modèle relationnel, OLAP a été proposé par Edgar Codd ( ) Douze règles qui représentent l'étalon de mesure servant à comparer les systèmes OLAP 6 critères ont été ajoutés en 1995 M2 SIGLIS
58
F1-Multidimensional Conceptual View
On-Line Analytic Processing (2) F1-Multidimensional Conceptual View Permet d'avoir une vision multidimensionnelle des données. F2-Intuitive Data Manipulation La manipulation de données se fait directement à travers les cellules d'une feuille de calcul, sans recourir aux menus ou aux actions multiples. F3-Accessibility : OLAP as a Mediator OLAP est décrit comme un «middleware» qui se place entre les sources de données hétérogènes et un front-end F4-Batch extraction vs interpretive La base OLAP dispose de deux niveaux de données, atomiques et agrégées (HOLAP) atteignables de façon transparente M2 SIGLIS
59
F5-OLAP AnalysisModels (Nouvelle)
On-Line Analytic Processing (3) F5-OLAP AnalysisModels (Nouvelle) support des quatre modèles d’analyse : Categorical(reporting), Exegetical (interactif avec front-end), Contemplative (What-if), Formulaic (Datamining) F6-Client-Server Architecture Il est essentiel que le produit soit Client-Serveur mais aussi que les composants serveur d'un produit OLAP intègrent facilement ses différents clients. F7-Transparency L'utilisateur ne doit pas se rendre compte de la provenance des données si celles-ci proviennent de sources hétérogènes. F8-Multi-User support Les outils OLAP doivent fournir des accès concurrents, l'intégrité et la sécurité. M2 SIGLIS
60
F9-Treatment of Non-NormalizedData
On-Line Analytic Processing (4) F9-Treatment of Non-NormalizedData Il doit être impossible de modifier manuellement les données pré- calculées F10-Storing OLAP Results: Keeping Them Separate from Source Data Les données de transactions doivent être maintenues séparément des données d’exploitations OLAP F11-Extraction of Missing Values Les valeurs absentes doivent être traitées comme des NULL et non pas comme des 0 F12-Treatment of Missing Values Les valeurs absentes doivent être ignorées par l’analyseur OLAP M2 SIGLIS
61
F14-Uniform Reporting Performance
On-Line Analytic Processing (5) F13-Flexible Reporting Lors de la création de rapports, les dimensions peuvent être présentées de n'importe quelle manière. F14-Uniform Reporting Performance Les performances ne doivent pas être diminuées lors d'augmentation du nombre de dimension ou de la taille de la base de données. F15-Automatic Adjustement of Physical Level Le système OLAP ajuste automatiquement son schéma physique pour s'adapter au type du modèle et au volume des données. M2 SIGLIS
62
F16-Generic Dimensionality
On-Line Analytic Processing (5) F16-Generic Dimensionality Chaque dimension doit être équivalente par rapport à sa structure et ses capacités opérationnelles. F17-Unlimited Dimensions & Aggregation Levels Dimensions et niveaux d'agrégations illimités. Techniquement, aucun produit ne se soumet à cette caractéristique parce que il n'y a pas d'entité illimitée sur un ordinateur limité ! F18-Unrestricted Cross-dimensional Operations Les calculs doivent être possibles à travers toutes les dimensions. M2 SIGLIS
63
On-Line Analytic Processing (6)
FAST : Le système doit être conçu pour répondre aux requêtes de l'utilisateur en moins de cinq secondes Les analyses très simples moins d'une seconde Les plus compliquées, environ 20 secondes. Les temps de réponses doivent rester bons même avec beaucoup de données Si le système est trop lent, les utilisateurs estiment que l’application est «plantée» Nécessite d’architectures de stockage dédiées et d’algorithmes de prétraitement. M2 SIGLIS
64
On-Line Analytic Processing (7)
ANALYSIS : Le système peut prendre en compte n'importe quel domaine ou analyse statistique, et fournir un résultat exploitable par l'utilisateur final, sans avoir à utiliser un langage de programmation L'utilisateur doit au moins pouvoir définir de nouveaux calculs ad- hoc et obtenir des états sous la forme souhaitée, sans programmation. L'analyse peut concerner des séries temporelles, allocations de coût, conversions de devises, recherche d'objectifs, gestion d'exceptions, etc. M2 SIGLIS
65
On-Line Analytic Processing (8)
SHARED : Toutes les conditions de sécurité et de confidentialité doivent être remplies, éventuellement jusqu'au niveau de la cellule Le système doit en particulier gérer les accès multiples en écriture en toute sécurité. M2 SIGLIS
66
On-Line Analytic Processing (9)
MULTIDIMENSIONNAL : C'est la condition essentielle des applications OLAP. Les systèmes OLAP doivent fournir une vue "conceptuelle" multidimensionnelle des données, incluant le support des hiérarchies simples ou multiples. M2 SIGLIS
67
On-Line Analytic Processing (10)
INFORMATION : L’information comprend l'ensemble des données et des informations dérivées, quel que soit leur volume et leur stockage. M2 SIGLIS
68
OLAP OLTP Les utilisateurs OBSERVENT les «rouages» de l’entreprise
OLTP / OLAP : Bilan (1) Les utilisateurs : OLAP Les utilisateurs OBSERVENT les «rouages» de l’entreprise Peu d’utilisateurs Traitent beaucoup de comptes simultanément Lisent uniquement les données qui sont souvent récapitulées OLTP Les utilisateurs SONT les «rouages» de l’entreprise Beaucoup d’utilisateurs concurrents Ne traitent qu’un seul compte à la fois Exécutent un grand nombre de fois la même tâche Lisent et modifient les données Exigent des performances de temps réel M2 SIGLIS
69
OLTP OLAP Nécessaire au fonctionnement de l’entreprise Normalisé
OLTP / OLAP : Bilan (2) Le contenu des données OLTP Nécessaire au fonctionnement de l’entreprise Normalisé En règle générale non historisé (mises à jour) Maintenant (now) OLAP Utilisée pour analyser le fonctionnement de l’entreprise Souvent agrégées/récapitulées Le temps est fondamental Passé M2 SIGLIS
70
OLAP OLTP Peu de tables mais de grande taille Beaucoup de tables
OLTP / OLAP : Bilan (3) Structures de données OLAP Peu de tables mais de grande taille Homogènes Données dénormalisées Requêtes larges sur une grosse quantité de données, ramenant un jeu limité Accès de type jointure Temps de réponses de l’ordre de quelques secondes à quelques dizaines de secondes OLTP Beaucoup de tables Petites requêtes sur une seul table Accès de type navigationnel Granularité des verrous minimum Peuvent être regroupées en îlots hétérogènes M2 SIGLIS
71
OLAP OLTP Disponibilité faible Forte disponibilité
OLTP / OLAP : Bilan (4) Administration OLAP Disponibilité faible Sauvegardes peu fréquentes mais très volumineuses En règle général, une transaction par jour (chargement de données) Non normalisée et redondante Beaucoup de maintenance, mais off-line OLTP Forte disponibilité Sauvegardes fréquentes Beaucoup de petites transactions Peu de temps de maintenance off-line M2 SIGLIS
72
OLTP / OLAP : Bilan (5) M2 SIGLIS
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.