Magasins et entrepôts de données (Datamart, data warehouse) Approche relationnelle pour l'analyse des données en ligne (ROLAP)
Définition (G. Gardarin) Entrepôt : ensemble de données historisées variant dans le temps, constitué par extraction à partir de bases applicatives ou de fichiers, consolidé dans une base de données unique et aidant à la prise de décision dans l'entreprise. Magasin : Petit entrepôt de données ciblé sur un sujet.
Structure des entrepôts En étoile (star schema): un table centrale contenant les faits à analyser référence des tables périphériques. Par exemple un numero SIREN de société renvoie à un nom de société, une adresse, un contact etc. En flocons (flock schema): les tables périphériques référencent elles même d'autres tables.
Différences avec un SGBDR Collecte de données par dépôt (Data Push) au lieu de gestion (Data Pull). Consultation au lieu d'utilisation. Ajout de données (historisées) par date au lieu de modification. Redondance des données dans le temps au lieu d'optimisation.
Les entrepôts de données avec MySQL Conçu pour être les bases de données des sites WWW. Rapidité des accès contre implantation exhaustive de SQL (tables HEAP possibles). Partitionnement des tables pour de très larges BDR avec de multiples tables intermédiaires. Indexation des BLOB (Binary Large Object) pour les tables InnoDB (multi-média). Programmation ouverte C++ du noyau. Toutes possibilités d'importations et exportations de données hétérogènes.
Autres SGBDR pour les entrepôts sans les sources et avec le prix ORACLE 10, mêmes performances que MySQL, avec beaucoup plus de SQL. DB2 (IBM) avec Visual Ware House et Intelligent Miner. SQL Server (souche SyBase, version 7 Microsoft) pour un environnement exclusivement MS. Dynamic Server (Informix): le plus complet pour les entrepôts. SAS Enterprise Miner: fouille de données.
Une utilisation spécifique de SQL Les cubes de données Regroupement des données selon certains attributs avec calcul d'effectifs. Implantation: CUBE nom (A1 Type 1,, Ap Type p, Nb INT) CREATE CUBE_nom (A1 Type 1,, Ap Type p, Nb INT); INSERT INTO CUBE_nom SELECT A1,, Ap, COUNT(*) GROUP BY A1,, Ap;
Opérations sur les cubes Coupes (slice): sélection de plans par restriction sur une valeur d'un attribut. Pliage (rollup), dépliage (drilldown) : jointure d'un des attributs avec l'une de ses tables périphériques pour le remplacer par par un attribut plus général (pliage) ou spécifique (dépliage) selon la granularité de l'attribut.
Exemples d'opérations Données : CUBE T(Id_fk VARCHAR(200), ref_fk INT, year INT) TABLE classif(id VARCHAR(200), cmp INT, cl INT) SLIDE T(year = x) : SELECT Id_fk, ref_fk FROM T WHERE year = x; ROLLUP T(Id, classe) : SELECT cl, ref_fk, year, COUNT(*) FROM T AS T, classif AS X where T.Id_fk = X.Id GROUP BY cl, year
Entrepôt pour Tableaux de bord Constituer l'entrepôt par : Accès directs aux bases de données. Flux de données textuelles tabulées (csv). Flux de données XML. Définir des clefs primaires Par concaténation de champs. Par auto incrémentation. Création du cube relationnel avec indexation des valeurs Autant de requêtes SQL que d'attributs à importer Création des vues auto-actualisables.
Outils d'importation/exportation Connectivité aux bases de données ODBC : Windows à l'origine JDBC : Java DBI : Perl, R et tous les outils libres Tunnels ssh Option -L de OpenSSH (noyau Linux) Putty : client pour windows Gestions des formats textes Langages interprétés avec expression régulières : perl Excel avec sa commande pour éclater les colonnes MySQL avec Load data et mysql -e
Statistiques de base et tableaux croisés Limiter la charge de calcul laissée aux interfaces 1 statistique élémentaire = 1 vue Mise à jour automatique Création par jointure avec une table d'intervalles Génération de tableaux croisés SQL bon pour les calculs mais pas l'affichage : nécessité d'une interface php, java (ou perl). Force de BO vendu avec SAP. Procédure Tabulate de SAS. Tableaux croisés de EXCEL et ACCESS.
Méthodes prédictives Bayésien et arbres de décisions Sélectionner les attributs les plus discriminants Appliquer le théorème de Bayes Règles d'association: Si A1=Val_1 et... et An=Val_n alors D=Val_p Support : probabilité totale Confiance : probabilité conditionnelle Régression logistique: Dégager des triplets attributs, intervalle, risque Classer les individus selon leur risque cumulé