Introduction à la modélisation dimensionnelle · VIII - Modélisation du datawarehouse 20 1....

43
Introduction à la modélisation dimensionnelle Stéphane Crozat Data warehouse http://dwh.crzt.fr 1 septembre 2016

Transcript of Introduction à la modélisation dimensionnelle · VIII - Modélisation du datawarehouse 20 1....

  • Introduction la modlisation dimensionnelle

    Stphane Crozat

    Data warehousehttp://dwh.crzt.fr

    1 septembre 2016

  • Table des matires

    Objectifs 4

    Introduction 5

    I - Principes de la modlisation dimensionnelle 6

    1. Approche gnrale de modlisation .......................................................................................... 6

    2. Table des faits ........................................................................................................................... 8

    3. Table des dimensions ................................................................................................................. 9

    II - Projet Fantastique: Problme pos 11

    III - Projet Fantastic: Donnes disponibles 12

    IV - tude des besoins utilisateurs 14

    1. Requte dcisionnelle ................................................................................................................ 14

    2. Rapport ...................................................................................................................................... 15

    3. Hirarchie ................................................................................................................................... 15

    V - Exercice: Projet Fantastique: tude des besoins 16

    VI - tude des donnes 17

    1. tude spare des sources donnes ........................................................................................ 17

    2. tude intgre des sources de donnes ................................................................................. 18

    VII - Exercice: Projet Fantastique: tude des donnes 19

    VIII - Modlisation du datawarehouse 20

    1. Intgration des besoins ............................................................................................................. 20

    2. Arbitrages pour le choix des donnes ................................................................................... 21

    3. Mtadonnes ............................................................................................................................... 21

    IX - Exercice: Projet Fantastique: Modlisation 23

    X - Rappels 24

  • 1. Rappels SQL pour l'tude des donnes ................................................................................ 25

    1.1. Fichier CSV ....................................................................................................................................................... 251.2. Agrgats .............................................................................................................................................................. 27

    2. Rappels Oracle pour l'tude des donnes ............................................................................. 28

    2.1. Accs inter-schmas ......................................................................................................................................... 282.2. Fentrage des donnes ...................................................................................................................................... 282.3. Dictionnaire de donnes Oracle ...................................................................................................................... 29

    3. Prise en main de Oracle SQL Developer ............................................................................. 31

    3.1. Installation de SQL Developer ........................................................................................................................ 313.2. Connexion avec SQL Developer ...................................................................................................................... 313.3. Naviguer dans le catalogue de SQL Developer ............................................................................................ 323.4. Excuter des requtes SQL avec SQL Developer ......................................................................................... 323.5. crire du PL/SQL avec SQL Developer ...................................................................................................... 353.6. Excution de fichiers SQL ............................................................................................................................... 37

    Solutions des exercices 38

    Abrviations 42

    Bibliographie 43

  • 4Stphane Crozat

    Savoir faire une tude de besoinsSavoir faire une tude des donnes existantesSavoir faire un modle dimensionnel en toile

    Objectifs

  • 5Stphane Crozat

    -- Volume de cours: 2h

    Volume d'exercice: 4h

    Introduction

  • Principes de la modlisation dimensionnelle

    6

    --

    1.

    1. 2. 3. 4.

    2.

    1. 2.

    3.

    4.

    1.

    2. 3.

    Objectifs

    Connatre les principes, les tapes et les mthodes de la modlisation dimensionnelle

    1. Approche gnrale de modlisation

    La modlisation en toile (cf. p.)

    Un modle dimensionnel est le rsultat:

    d'une analyse des besoins: .ce que je souhaite tudierd'une analyse des donnes disponibles: .ce que je peux tudier

    Analyse des donnes

    tude des sources de donnes (quantification, analyses gnrales)Qualification des donnes (qualit et intrt)Intgration logique des donnes (simulation d'un schma relationnel virtuel)Normalisation du schma virtuel en 3NF pour en avoir une vue cohrente

    Analyse des besoins clients

    Exprimer les besoins sous la forme de requtes dcisionnellesRaliser les vues hirarchiques pour chaque requte

    Slectionner les requtes qui seront effectivement ralisables en fonction des donnes disponiblesConception du data warehouse et des data marts

    Sparer les requtes en fonction de la granularit de la table des faits (grain fin des ventes, grain plus grossier du ticket de caisse, etc.)Crer un data warehouse intgrant toutes les requtes de grain fin

    Principes de la modlisation dimensionnelle

    I

    Rappel

    Fondamental

    Mthode : Mthode gnrale de modlisation

  • Table des faits

    7

    4.

    3. Extraire un data mart par niveau de grain suprieur et/ou pour des thmatiques particulires ncessitant par exemple une pr-agrgation

    lments mthodologiques pour la modlisation dimensionnelle

    Il est gnralement intressant de parallliser les tches d'analyse des besoins et d'analyse des donnes.

    En particulier il est inutile d'aller trop loin dans l'expression de besoins que l'on sait a prioriimpossibles satisfaire pour cause d'absence de donne ou d'absence de donne exploitable.

    Il est conseill de conserver certains champs d'information dans le modle dimensionnel, mme s'ils ne seront pas exploits pour les calculs ou les agrgats.

    Cela permettra par exemple d'identifier des enregistrements, comme les dsignations de produits.

    On pourra noter en italique ces champs dans le modle dimensionnel.

    Remarque

    Rappel : Informations

  • Table des faits

    8

    2. Table des faits

    A row in a fact table corresponds to a measurement. A measurement is a row in a fact table. All the measurements in a fact table must be the same grain. (Kimball, Ross, 2008, p.17) **

    Fact tables express the many-to-many relationships between dimensions in dimensional models.(Kimball, Ross, 2008, p.19) **

    La table des faits est (dans la plupart des cas) la table la plus volumineuse (avec le plus grand nombre de lignes) du modle.

    Exemple de table des faits (Kimball, Ross, 2008, p.17)

    The most useful facts are numeric and additive. (Kimball, Ross, 2008, p.17) **

    Dfinition

    Remarque

    Exemple

    Fondamental : Faits additifs et numriques

  • Table des dimensions

    9

    Preferably you should develop dimensional models for the most atomic information captured by a business process. Atomic data is the most detailed information collected; such data cannot be subdivided further. (Kimball, Ross, 2008, p.34) **

    Pour un data mart on peut pr-agrger sur un grain plus gros que le data warehouse: des colonnes d'agrgation (somme, moyenne, compte...) peuvent alors apparatre pour rendre compte statistiquement d'informations perdues l'agrgation.

    3. Table des dimensions

    Dimension tables are the entry points into the fact table. [...] The dimension implement the user interface to the data warehouse. (Kimball, Ross, 2008, p.20) **

    Exemple de table de dimension (Kimball, Ross, 2008, p.20)

    Mthode : Granularit minimale

    Mthode : Granularit des data marts

    Dfinition

    Exemple

  • Table des dimensions

    10

    The best attributes are textual and discrete. Attributes should consist of real words rather than cryptic abbreviations. (Kimball, Ross, 2008, p.20) **

    Conseil : Intelligibilit

  • Projet Fantastique: Problme pos

    11

    Vous travaillez en tant qu'ingnieur spcialis dans les systmes dcisionnels au sige de l'entreprise franaise "Fantastique".

    L'entreprise "Fantastique" vend principalement des ouvrages de divertissement de type science fiction, thriller, policier... Elle dispose pour cela de plusieurs magasins de vente dans les centres des grandes villes en France.

    La direction de l'entreprise souhaite faire une tude large sur les ventes de l'anne passe afin de prendre des orientations stratgiques nouvelles : ouverture de nouveaux magasins, fermeture ou transfert de magasins mal implants, extension territoriale de nouveaux dpartements franais, rorganisation des directions, rorientation du marketing, largissement ou rduction du catalogue, etc.

    La question pose est donc : quels sont les facteurs sur lesquels l'on pourrait jouer pour augmenter les ventes ?

    Elle vous charge dans ce cadre de mettre en place une solution logicielle permettant d'intgrer les donnes pertinentes et de pouvoir les interroger efficacement sous des angles divers.

    Notons que bien entendu, la direction claire de l'entreprise ne compte pas se fier ces seuls facteurs de ventes pour prendre ses dcisions, mais bien privilgier les facteurs sociaux et territoriaux, en dialoguant avec ses salaris et ses clients, pour maintenir sa mission culturelle et son rle d'entreprise citoyenne. Votre posture d'ingnieur est bien entendu de se proccuper de ces dimensions fondamentales, mme si elles seront largement ignores dans le cadre de cet exercice vocation essentiellement technique. Elle pourront nanmoins tre brivement abordes en marge de vos rapports d'analyse.

    Projet Fantastique: Problme pos II

    Fondamental

  • Projet Fantastic: Donnes disponibles

    12

    -

    --

    -

    -

    -

    -

    Une base Oracle contient le catalogue complet de l'entreprise que chaque magasin a sa disposition.

    Cette base, compose d'une seule table publique , est disponible sur le serveur catalogueOracle , sous le schma .sme-oracle.sme.utc nf26

    Un fichier contient une consolidation de l'ensemble des ventes de l'anne passe ralises dans chaque magasin.

    Ces donnes sont disponibles sous la forme d'un fichier CSV dans un rpertoire du serveur : sme-oracle.sme.utc /home/nf26/data

    La structure du fichier est: Numro de ticket, date de ticket, produit, magasin

    Un fichier ODS gr par la direction marketing contient pour chaque magasin l'organisation des rayonnages: marketing.ods

    Le responsable des ventes de chaque dpartement dcide de l'organisation des rayonnages des magasins de son dpartement.Il existe 3 types de rayonnage : par Auteur (A), par Anne (Y), par diteur (E)Le fichier est dpos dans un rpertoire du serveur : sme-oracle.sme.utc/home/nf26/fantastic

    Un stagiaire a trouv sur Internet un fichier permettant de connatre la population de chaque dpartement, prsageant que cette information sera utile.

    Le stagiaire parvient trouver une information un peu date qui pourra suffire sous la forme d'un fichier CSV: .departementsInsee2003.txt

    [cf. departementsInsee2003.txt(population par dpartement)]

    Projet Fantastic: Donnes disponibles III

    Catalogue des livres

    Fichier des ventes

    Fichier des magasins

    Donnes gographique sur les dpartements

  • Projet Fantastic: Donnes disponibles

    13

    1. 2.

    3.

    4.

    Inspecter les donnes pour chaque source:

    Se connecter la base Oracle avec SQL Developer et inspecter le schma de la table Oracle.Ouvrir un terminal et se connecter en au serveur.sshUtiliser la commande Unix pour regarder les premires lignes du fichier .more data.csvRcuprer le fichier CSV et l'ouvrir avec un diteur de departementsInsee2003.txttexte.Rcuprer le fichier ODS et l'ouvrir avec un traitement de texte.

    Mthode

  • tude des besoins utilisateurs

    14

    --

    Objectifs

    Savoir formaliser une tude de besoins sous forme de requtes multidimensionnelles

    1. Requte dcisionnelle

    Une requte dcisionnelle exprime toujours la mesure d'une quantification de par rapport des faits, sous une forme du type: "Quelle a t la quantit de ... en fonction de ...".dimensions

    Synonyme: Vue, requte multidimensionnelle

    Les faits sont des grandeurs que l'on cherche mesurer (prix, quantit...)Les dimensions sont des axes d'analyse (date, lieu, produit, personne...)

    1 quantit de faits2 / dimension13 / dimension24 ...

    "Quelle a t la quantit de produits vendus en fonction des dpartements et des mois de l'anne."

    1 quantit de produits vendus2 / dpartement3 / mois

    tude des besoins utilisateurs IV

    Dfinition: Requte dcisionnelle

    Fondamental

    Syntaxe

    Exemple

    quantit de faits/ dimension1/ dimension2...

    quantit de produits vendus/ dpartement/ mois

  • Hirarchie

    15

    2. Rapport

    La rponse une requte dcisionnelle est un rapport, gnralement sous une forme tabulaire ou graphique.

    Synonyme: tat

    Exemple de rapport

    Les besoins des utilisateurs s'expriment en gnral plus facilement sous la forme d'exemples de rapports recherchs.

    3. Hirarchie

    Une hirarchie est un ensemble de paramtres d'tude de granularit croissante appartenant une mme dimension au sein d'un modle dcisionnel.

    1 quantit de produits vendus2 / lieu (dpartement, rgion)3 / date (jour, mois, trimestre, semestre)

    Une mme dimension peut contenir plusieurs hirarchies.

    Dfinition: Rapport

    Exemple

    Mthode

    Dfinition: Hirarchie

    Exemple

    Remarque

    quantit de produits vendus/ lieu (dpartement, rgion)/ date (jour, mois, trimestre, semestre)

  • Exercice: Projet Fantastique: tude des besoins

    16

    [30 min]

    partir de l'tude des besoins sommaire effectue par un de vos collgues, et en fonction des donnes disponibles, exprimer les de votre systme.requtes cibles

    Le contexte de l'exercice ne permet pas de dialoguer rellement avec des utilisateurs, en situation . Vous pourrez amendez relle il faudra dvelopper cette phase de recueil des besoins des utilisateurs

    l'indicateur d'utilit des donnes en fonction de cette tude.

    Question 1

    Question 2

    Exercice: Projet Fantastique: tude des besoins

    V

    La direction marketing est en charge de limplantation des magasins dans les dpartements et de l'organisation des rayonnages (type de rangement et prsence de rayons spcifiques pour les best-sellers). Elle cherche savoir si l'organisation du rayonnage des magasins a une influence sur les volumes ventes, et si cela varie en fonction des jours de la semaine ou de certaines priodes de l'anne. Elle voudrait galement savoir si certains magasins ou dpartements sont plus dynamiques que d'autres.

    [ ]solution n1 *[ ] p.38

    La direction ditoriale se demande si certains livres se vendent mieux certaines dates et/ou dans certains magasins ou dpartements. Elle aimerait galement savoir si certains auteurs ou diteurs se vendent mieux, et s'il existe un lien entre l'anciennet des livres et les ventes. Elle se demande aussi si certaines priodes sont plus propices que d'autres l'coulement des livres les plus anciens.

    [ ]solution n2 *[ ] p.38

  • tude des donnes

    17

    -

    ----

    -

    ----

    ---

    Objectifs

    Savoir faire une tude des donnes existantes

    1. tude spare des sources donnes

    Pour chaque source de donnes identifie on proposera une synthse avec les informations suivantes:

    Nom, origine prcise, nombre de lignes de la sourceNom, type et description des colonnesQualit

    0: donnes inexploitables1: donnes peu exploitables (traitements incertains)2: donnes exploitables aprs traitements3: donnes exploitables sans traitement

    Utilit

    0: donnes sans intrt1: donnes utiles pour la documentation uniquement2: donnes utiles a priori3: donnes utiles avec certitude

    Commentaires.

    Nom Description Type Qualit Utilit Commentaire

    isbn Identifiant international d'un livre publi

    char(3) et char(13)

    3 3 Certaines ISBN ne sont pas corrects (3 caractres au lieu de 13); cl de rfrencement dans le fichier de ventes

    titre Titre du livre varchar(255) 2 1

    auteur Auteur(s) du livre

    varchar(255) 1 2

    tude des donnesVI

    Mthode

    Exemple

  • tude intgre des sources de donnes

    18

    -

    --

    Peut contenir plusieurs auteurs ; certains auteurs sont inscrits diffremment d'un livre l'autre

    ...

    Table Oracle oracle.utc.fr/schema.table [1000 lignes]

    2. tude intgre des sources de donnes

    Afin d'avoir une vision globale de l'ensemble des donnes, il est conseill de rtro-concevoir :

    une reprsentation relationnelle des donnes telles qu'elles existentune reprsentation relationnelle des donnes idalises (telles qu'elles existeraient si elles taient normalises dans une mme BD)une reprsentation conceptuelle en UML

    Mthode

  • Exercice: Projet Fantastique: tude des donnes

    19

    [1h]

    Afin de raliser votre travail, l'entreprise vous met disposition les donnes suivantes.

    Dans le contexte de cet exercice, les donnes vous sont livres , notez que dans un contexte a priorirel, vous aurez la plupart du temps rechercher vous mme les donnes qui peuvent exister.

    Donnes disponibles (cf. p.12)

    Question 1

    Question 2

    Question 3

    Question 4

    Exercice: Projet Fantastique: tude des donnes

    VII

    tablissez le modle sous-jacent aux donnes prsentes.relationnel

    Indice :

    Pour initier une connexion ssh: ssh user@serveur

    [ ]solution n3 *[ ] p.39

    tudiez les donnes dont vous disposez et proposez une synthse des donnes disponibles pour chaque source.

    Indice :

    Pour compter les lignes d'un fichier texte sous Linux, on peut utiliser la commande wc -l

    Afin de clarifier les donnes et leur organisation, rtro-concevez un modle relationnel en normalistroisime forme normale unifiant toutes les donnes grce l'identification de cls primaires et l'expression de cl trangres.

    [ ]solution n4 *[ ] p.39

    Rtro-concevez le modle en UML correspondant au modle relationnel normalis (un conceptuelmodle UML peut tre plus facile utiliser ensuite).

  • Modlisation du datawarehouse

    20

    --

    Objectifs

    Savoir faire un modle dimensionnel en toile pour un cas simple

    1. Intgration des besoins

    Les diffrentes vues formalises lors de l'tude des besoins utilisateurs doivent tre intgres:

    une pour le data warehouse,et pour chaque data mart.

    Vue intgre

    Modlisation du datawarehouse VIII

    Mthode

    Syntaxe

  • Arbitrages pour le choix des donnes

    21

    ---

    Modle dimensionnel du data warehouse

    2. Arbitrages pour le choix des donnes

    Un projet de est destin rpondre des besoins d'analyse, en cela il doit datawarehouseprioritairement prendre en considration les besoins rels d'analyse des utilisateurs. En particulier il est dconseill de travailler uniquement partir des donnes sources existantes, puisque les utilisateurs cherchent justement sortir de la ralit transactionnelle (

    , p.34).Entrepts de donnes : guide pratique de modlisation dimensionnelle **

    Bien entendu, la possibilit de rpondre aux besoins dpend des donnes disponibles et de leur qualit.

    Chaque donnes peut tre qualifie selon une utilit (donne intressante ou non) et une qualit (donnes facile exploiter ou coteuse nettoyer).

    Ces deux paramtres peuvent ensuite servir choisir les donnes que l'on conserve (et que l'on va devoir ventuellement nettoyer) de celle que l'on abandonne.

    Diagramme Utilit / Qualit

    3. Mtadonnes

    Documentez la table des faits ainsi que chaque dimension de votre data warehouse, avec pour chaque attribut:

    Le nomLe type prcisUne description

    On identifiera les cls candidates et la cl primaire de chaque dimension, les informations uniquement descriptives.

    Conseil : Pilotage par les besoins

    Mthode : Diagramme Utilit / Qualit

    Mthode

  • Mtadonnes

    22

    On pourra prciser lorsque ce n'est pas vident le mode de calcul des attributs en fonction des sources.

  • Exercice: Projet Fantastique: Modlisation

    23

    partir de l'tude des donnes et des besoins utilisateurs, proposez un modle pour dimensionnelun permettant de traiter la question gnrale qui a t pose.data warehouse

    Question 1

    Question 2

    Question 3

    Exercice: Projet Fantastique: Modlisation

    IX

    1. 2.

    Proposez une modlisation dimensionnelle pour chaque contexte d'usage (directions en toilemarketing et ditoriale):

    identifiez la table des faitsidentifiez les dimensions en intgrant les vues exprimes (utilisez le rapport qualit/utilit pour dcider des donnes que vous souhaitez conserver)

    [ ]solution n5 *[ ] p.39

    Intgrer vos deux sous-modles pour proposer le modle de votre .data warehouse

    Vous pourrez augmenter vos dimensions de donnes disponibles bien que non identifies a priori lors de l'analyse des besoins.

    [ ]solution n6 *[ ] p.40

    tablissez les mtadonnes du modle dimensionnel : dcrivez chaque donnes (type prcis, description...) ; identifiez la cl primaire de chaque dimension, ainsi que les informations descriptives.

    [ ]solution n7 *[ ] p.40

  • Rappels

    24

    RappelsX

  • Fichier CSV

    25

    1. Rappels SQL pour l'tude des donnes1.1. Fichier CSV

    est un format informatique permettant de stocker des donnes tabulaires dans un fichier CSV **texte.

    Chaque ligne du fichier correspond une ligne du tableau. Les valeurs de chaque colonne du tableau sont spares par un caractre de sparation, en gnral une ou un . Chaque virgule point-virguleligne est termine par un ( ).caractre de fin de ligne line break

    Toutes les lignes contiennent le mme nombre de valeurs (donc le mme nombre de obligatoirementcaractres de sparation). Les valeurs vides doivent tre exprimes par deux caractres de sparation contigus.

    La taille du tableau est le nombre de lignes multipli par le nombre de valeurs dans une ligne.

    La premire ligne du fichier peut tre utilise pour exprimer le nom des colonnes.

    1 [NomColonne1;NomColonne2;...;NomColonneN]2 ValeurColonne1;ValeurColonne2;...;ValeurColonneN3 ValeurColonne1;ValeurColonne2;...;ValeurColonneN4 ...

    1 Pierre;Dupont;20;UTC;NF172 Pierre;Dupont;20;UTC;NF263 Paul;Durand;21;UTC;NF174 Jacques;Dumoulin;21;UTC;NF29

    1 Prenom;Nom;Age;Ecole;UV2 Pierre;Dupont;20;UTC;NF173 Pierre;Dupont;20;UTC;NF264 Paul;Durand;21;UTC;NF175 Jacques;Dumoulin;21;UTC;NF29

    1 Jacques;Dumoulin;;UTC;NF29

    L'ge est inconnu (NULL).

    Dfinition: Fichier CSV

    Syntaxe

    Exemple : Fichier CSV sans entte

    Exemple : Fichier CSV avec entte

    Exemple : Valeur nulle

    [NomColonne1;NomColonne2;...;NomColonneN]ValeurColonne1;ValeurColonne2;...;ValeurColonneNValeurColonne1;ValeurColonne2;...;ValeurColonneN...

    Pierre;Dupont;20;UTC;NF17Pierre;Dupont;20;UTC;NF26Paul;Durand;21;UTC;NF17Jacques;Dumoulin;21;UTC;NF29

    Prenom;Nom;Age;Ecole;UVPierre;Dupont;20;UTC;NF17Pierre;Dupont;20;UTC;NF26Paul;Durand;21;UTC;NF17Jacques;Dumoulin;21;UTC;NF29

    Jacques;Dumoulin;;UTC;NF29

  • Agrgats

    26

    -

    -

    -

    La syntaxe des fichiers CSV n'est pas compltement standardise, aussi des variations peuvent exister:

    Les chanes de caractres peuvent tre protges par des guillemets (les guillemets s'expriment alors avec un double guillemet).Le caractre de sparation des nombres dcimaux peut tre le point ou la virgule (si c'est la virgule, le caractre de sparation doit tre diffrent)...

    Un des problme les plus importants reste l'encodage des caractres qui n'est pas spcifi dans le fichier et peut donc tre source de problmes, lors de changement d' typiquement.OS **

    Les fichiers CSV sont trs utiliss en pour changer les donnes d'une table (export/import).BD **

    Les contiennent gnralement des utilitaires permettant d'exporter une table ou un rsultat SGBD **de requte sous la forme d'un fichier CSV, en spcifiant un certain nombre de paramtres (caractre de sparation de valeur, caractre de fin de ligne, prsence ou non d'une ligne de dfinition des noms des colonnes, etc.). De mme ils proposent des utilitaires permettant d'importer un fichier CSV dans une table (en spcifiant les mmes paramtres), voire de crer directement une table partir du fichier CSV (quand les noms des colonnes sont prsents).

    Les fichiers largeur de colonne fixe n'utilisent pas de sparateur de colonne, mais imposent le pour chaque cellule. L'avantage est de ne pas avoir spcifier le mme nombre de caractres

    caractre de sparation, l'inconvnient est la taille de fichier suprieure si les valeurs ne font pas toutes la mme largeur.

    Les fichiers tendent de plus en plus remplacer les fichiers CSV car ils permettent d'tre XML **beaucoup plus expressifs sur le schma d'origine. Ils sont galement plus standards (encodage spcifi, principe de sparation des donnes par les , etc.). Leur seul inconvnient est d'tre plus tagsverbeux et donc plus volumineux.

    Certains SGBD, comme Oracle, permettent de crer des tables dites , qui autorisent de crer externesun schma de table , permettant ainsi un accs SQL standard un directement sur un fichier CSVfichier CSV, sans ncessit de l'importer d'abord dans une table.

    Attention : Variations...

    Mthode : Usage en base de donnes

    Complment : Fichiers largeur de colonne fixe

    Complment : XML

    Complment : Tables externes

  • Agrgats

    27

    1.2. Agrgats

    Un agrgat est un partitionnement horizontal d'une table en sous-tables, en fonction des valeurs d'un ou plusieurs attributs de partitionnement, suivi de l'application d'une fonction de calcul chaque attribut des sous-tables obtenues.

    1 4 GROUP

    Cette requte calcul l'ge moyen du personnel pour chaque socit comportant plus de 10 salaris.

    Une restriction peut tre applique avant calcul de l'agrgat, au niveau de la clause WHERE, portant ainsi sur la relation de dpart, mais aussi aprs calcul de l'agrgat sur les rsultats de ce dernier, au niveau de la clause HAVING.

    Si dans la clause SELECT, un attribut est projet directement, sans qu'une fonction lui soit applique, alors il faut imprativement que cet attribut apparaisse dans la clause GROUP BY (car ce ne peut tre qu'un attribut de partitionnement).

    Si une ou plusieurs fonctions de calcul sont appliques sans partitionnement, le rsultat de la requte est un tuple unique.

    Pour que l'utilisation de la clause GROUP BY ait un sens, il faut qu'au moins une fonction de calcul soit utilise, soit dans la clause SELECT, soit dans la clause HAVING.

    Dfinition: Agrgat

    Syntaxe

    Exemple

    Remarque : Restriction

    Attention : Projection

    Remarque : Fonctions de calcul sans partitionnement

    Remarque : Intrt de la clause GROUP BY

  • Rappels Oracle pour l'tude des donnes

    28

    Notons que dans le cas de certains (par exemple Oracle), l'ensemble des attributs de SGBDR **l'agrgation (clause GROUP BY) doivent tre pralablement projets (donc dclars dans la clause SELECT).

    2. Rappels Oracle pour l'tude des donnes2.1. Accs inter-schmas

    Un schma Oracle correspond au sein d'une base de donnes (instance Oracle) un espace isol comportant toutes les tables appartenant d'un utilisateur du SGBD. Ainsi chaque utilisateur possde un schma.

    Pour simplifier on pourrait plutt dire qu'une base Oracle est en fait une collection de BD et qu'un schma est une BD.

    Lorsqu'un utilisateur se connecte il se connecte gnralement dans son propre schma. Il lui est nanmoins possible de travailler sur les tables d'autres schmas, condition d'avoir les droits associs bien entendu.

    Organisation en schmas d'une instance Oracle

    Il suffit de prfixer les noms des tables de leur nom de schma.

    1 SELECT * FROM schema.table;

    2.2. Fentrage des donnes

    1 SELECT ... FROM ... WHERE rownum

  • Dictionnaire de donnes Oracle

    29

    -

    ------

    rownum est une pseudo colonne qu'il est bien entendu possible de projeter : SELECT rownum FROM ...

    1 SELECT a1, ..., aN FROM 2 (SELECT a1, ..., aN, rownum AS rnum FROM t)3 WHERE rnum BETWEEN n1 AND n2

    Cette syntaxe permet de slectionner une fentre sur les donnes et pas seulement les N premires lignes.

    Lorsque l'on est en prsence de gros volumes de donnes, et que l'on veut se faire une ide du contenu de ces donnes, il n'est de faire un simple SELECT *. En il serait trop long pas souhaitablede rapatrier les dizaines de milliers de lignes et de plus cela serait inutile puisque seules quelques unes seraient effectivement lues.

    L'usage de permet de s'intresser des fentres de donnes reprsentatives, pour se faire rownumune ide gnrale.

    2.3. Dictionnaire de donnes Oracle

    Le dictionnaire des donnes contient la description des objets crs et maintenus par le serveur Oracle.

    SELECT * FROM user_objects;

    SELECT * FROM user_tables;

    SELECT * FROM user_sequences;

    SELECT * FROM user_views;

    SELECT * FROM user_procedures;

    SELECT * FROM user_indexes ;

    ...

    DESCRIBE nom_objet

    Remarque

    Syntaxe : Utilisation avance

    Mthode : Exploration de donnes massives

    Rappel

    Syntaxe : Lister tous les objets appartenant l'utilisateur

    Syntaxe : Lister slectivement certains objets

    Syntaxe : Dcrire un objet

    SELECT a1, ..., aN FROM (SELECT a1, ..., aN, rownum AS rnum FROM t)WHERE rnum BETWEEN n1 AND n2

  • Prise en main de Oracle SQL Developer

    30

    -

    -

    1 table_name, constraint_type type, constraint_name, search_condition2 user_constraints3 table_name, constraint_type

    Selon la configuration du serveur Oracle, il peut y avoir une gestion de corbeille ( ) qui recyclebinmaintient des objets supprims en les renommant avec un nom prfix de .BIN$

    Pour exclure ces objets des requtes au catalogue, ajouter une contrainte de type WHERE adquate, par exemple:

    1 table_name, constraint_type type, constraint_name, search_condition2 user_constraints3 constraint_name 4 table_name, constraint_type

    Il est galement possible de purger la corbeille avec la commande: .PURGE recyclebin

    Afficher les diffrents types d'objets appartenant l'utilisateur :SELECT object_type FROM user_objects;

    Afficher la liste des objets appartenant l'utilisateur :SELECT * FROM user_catalog;

    1 tIntervenant (#pknom:varchar, prenom:varchar, poste:integer)2 tCours (#pkannee:2000..2100, #pknum:integer, titre:varchar, type:C|TD|TP, fkintervenant=>tIntervenant,

    debut:date)

    1 table_name user_tables;23 DESCRIBE tCours;45 table_name, constraint_type type, constraint_name, search_condition6 user_constraints7 constraint_name 8 table_name, constraint_type9

    1 TABLE_NAME 2 ------------------------------3 TINTERVENANT 4 TCOURS

    Syntaxe : Lister les contraintes

    Complment : Recyclebin

    Complment

    Rappel : BD "Gestion des intervenants": Schma relationnel

    Exemple : BD "Gestion des intervenants": Utilisation du catalogue

    table_name, constraint_type type, constraint_name, search_conditionSELECT AS user_constraintsFROM table_name, constraint_typeORDER BY

    table_name, constraint_type type, constraint_name, search_conditionSELECT AS user_constraintsFROM

    constraint_name WHERE NOT LIKE 'BIN$%' table_name, constraint_typeORDER BY

    tIntervenant (#pknom:varchar, prenom:varchar, poste:integer)tCours (#pkannee:2000..2100, #pknum:integer, titre:varchar, type:C|TD|TP, fkintervenant=>tIntervenant, debut:date)

    table_name user_tables;SELECT FROM

    DESCRIBE tCours;

    table_name, constraint_type type, constraint_name, search_conditionSELECT AS user_constraintsFROM

    constraint_name WHERE NOT LIKE 'BIN$%' table_name, constraint_typeORDER BY

    TABLE_NAME ------------------------------TINTERVENANT TCOURS

  • Installation de SQL Developer

    31

    ----

    1. 2.

    3. Prise en main de Oracle SQL Developer3.1. Installation de SQL Developer

    http://www.oracle.com/technology/products/database/sql_developer

    (Tlchargement pour Windows, Mac et Linux)

    Documentation en ligne disponible la mme adresse.

    3.2. Connexion avec SQL Developer

    Clic droit sur , puis Connexions Nouvelle connexionEntrez vos paramtres:

    Nom libreUsername / PasswordHte: sme-oracle.sme.utcSID: nf26

    Fentre de connexion SQL Developer

    Site Web

    Complment

    Crer une connexion la base de donnes Oracle de l'UTC

    http://www.oracle.com/technology/products/database/sql_developer

  • Excuter des requtes SQL avec SQL Developer

    32

    3.3. Naviguer dans le catalogue de SQL Developer

    L'espace de gauche permet de naviguer dans le catalogue de la base de donnes et donc de visualiser les tables, vues, index, etc.

    Fentre principale SQL Developer

    Pour rafrachir la vue de gauche (catalogue) aprs une requte LDD, il faut faire un clic droit sur l'lment du catalogue (par exemple aprs une cration de table) puis slectionner Tables

    .Rgnrer

    3.4. Excuter des requtes SQL avec SQL Developer

    L'espace de droite permet d'crire des requtes SQL (en haut) et de visualiser le rsultat de l'excution (en bas). Appuyer sur le bouton ou faire pour excuter Excuter un script F5les requtes saisies.

    Attention

  • Excuter des requtes SQL avec SQL Developer

    33

    SQL (script)

    Pour effacer les rsultats d'excution prcdents, cliquer sur .Effacer

    Pour n'excuter qu'une seule requte parmi celle saisies dans la zone du haut, la , puis slectionnercliquer sur ou faire .Excuter un script F5

    Remarque

    Excuter une seule requte au sein d'un script

  • Excuter des requtes SQL avec SQL Developer

    34

    SQL (instruction par instruction)

    Pour les requtes SELECT, SQL Developer propose un affichage sous forme de tableau, plus lisible que l'affichage texte. Pour excuter une requte SELECT et obtenir un tel affichage, cliquer sur

    ou faire .Excuter l'instruction F9

    Excuter une seule requte SELECT

  • crire du PL/SQL avec SQL Developer

    35

    SQL (une seule instruction SELECT)

    Le bouton n'affiche pas les erreurs d'excution ou les confirmations Excuter l'instructionde cration ou insertion (requtes CREATE, INSERT, UPDATE), il est donc rserver aux requtes SELECT valides (si le rsultat n'est pas correct, utiliser ).Excuter un script

    Dans le doute utilisez toujours F5 et jamais F9.

    3.5. crire du PL/SQL avec SQL Developer

    Pour crer des blocs PL/SQL, procder comme pour le SQL, avec le bouton .Excuter un script

    Attention

    Conseil

  • crire du PL/SQL avec SQL Developer

    36

    PL/SQL (Fonction compile avec succs)

    Terminez vos blocs PL/SQL par l'instruction , sinon le compilateur ne retourne pas show errorsde message.

    Pour mieux voir les erreurs de compilation, il faut faire un clic droit sur le nom de la fonction ou de la procdure (zone de gauche), puis choisir .Compiler pour le dbogage

    Attention : Show errors

    Complment : Traiter les erreurs de compilation

  • Excution de fichiers SQL

    37

    PL/SQL (Fonction en erreur)

    3.6. Excution de fichiers SQL

    Pour enregistrer un script SQL ou PL/SQL crit dans sous la forme d'un Oracle SQL Developerfichier utiliser la fonction .file > save as

    Pour excuter un fichier SQL ou PL/SQL utiliser la commande @fichier.sql

    1 @file1.sql2 @file2.sql3 @file3.sql

    Mthode

    Mthode

    Exemple : script.sql

    @[email protected]@file3.sql

  • Solutions des exercices

    38Stphane Crozat

    Exercice p. 16> Solution n2

    Exercice p. 16> Solution n1

    1 Quantite2 / rayonnage3 / rayon_bs4 / rayon_recent

    1 Quantite2 / semaine3 / mois, trimestre4 / jds5 / rayonnage6 / rayon_bs

    1 Quantite2 / magasin, dpt

    1 Quantite2 / date (semaine)3 / date (mois, trismestre)4 / date (jds)5 / magasin (rayonnage)6 / magasin (rayon_bs)7 / magasin (recent)

    1 Quantite2 / magasin (dpt)

    1 Quantite2 / produit3 / magasin, departement4 / date, semaine

    Solutions des exercices

    Requtes brutes

    Requtes organises par dimension

    Requtes brutes

    Quantite/ rayonnage/ rayon_bs/ rayon_recent

    Quantite/ semaine / mois, trimestre / jds/ rayonnage/ rayon_bs

    Quantite/ magasin, dpt

    Quantite/ date (semaine)/ date (mois, trismestre) / date (jds)/ magasin (rayonnage)/ magasin (rayon_bs)/ magasin (recent)

    Quantite/ magasin (dpt)

    Quantite/ produit/ magasin, departement / date, semaine

  • Solutions des exercices

    39Stphane Crozat

    Exercice p. 19> Solution n4

    Exercice p. 19> Solution n3

    5 / date, mois, trismestre

    1 Quantite2 / auteur3 / editeur

    1 Quantite2 / jds3 / jds, semaine4 / parution

    1 Quantite2 / produit3 / magasin (departement)4 / date (semaine)5 / date (mois, trismestre)

    1 Quantite2 / produit (auteur)3 / produit (editeur)

    1 Quantite2 / date (jds)3 / date (semaine)4 / produit (parution)

    1 catalogue(isbn,titre,auteur,langue,parution,editeur, genre)2 data(num,magasin,date,isbn)3 marketing(dpt,rayonnage,ray_nom,magasin,rayon_bs, rayon_recent)4 dpt(dpt,nom,pop)

    1 auteur(#num,nom,prenom)2 langue(#langue)3 editeur(#editeur)4 catalogue(#isbn,titre,fkauteur=>auteur,langue=>langue,parution,editeur=>editeur,genre)5 data(num,magasin=>magasin,date,isbn=>catalogue)6 magasin(#magasin, dpt=>dpt,rayonnage,ray_nom,rayon_bs, ray_recent)7 dpt(#dpt,nom,pop)

    Requtes organises par dimension

    / date, mois, trismestre

    Quantite/ auteur/ editeur

    Quantite/ jds/ jds, semaine/ parution

    Quantite/ produit/ magasin (departement) / date (semaine) / date (mois, trismestre)

    Quantite/ produit (auteur)/ produit (editeur)

    Quantite/ date (jds)/ date (semaine)/ produit (parution)

    catalogue(isbn,titre,auteur,langue,parution,editeur, genre)data(num,magasin,date,isbn)marketing(dpt,rayonnage,ray_nom,magasin,rayon_bs, rayon_recent)dpt(dpt,nom,pop)

    auteur(#num,nom,prenom)langue(#langue)editeur(#editeur)catalogue(#isbn,titre,fkauteur=>auteur,langue=>langue,parution,editeur=>editeur,genre)data(num,magasin=>magasin,date,isbn=>catalogue)magasin(#magasin, dpt=>dpt,rayonnage,ray_nom,rayon_bs, ray_recent)dpt(#dpt,nom,pop)

  • Solutions des exercices

    40Stphane Crozat

    Exercice p. 23> Solution n7

    Exercice p. 23> Solution n6

    Exercice p. 23> Solution n5

    Vue direction marketing

    Vue direction ditoriale

    Modle dimensionnel du data warehouse Fantastic

    Description de la dimension Produit (DataWarehouse)

  • Solutions des exercices

    41Stphane Crozat

    Description de la dimension Magasin (DataWarehouse)

    Description de la dimension Date (DataWarehouse)

  • Signification des abrviations

    42Stphane Crozat

    BD : Base de Donnes

    CSV : Comma Separated Values

    OS : Operating Systme (Systme d'Exploitation)

    SGBD : Systme de Gestion de Bases de Donnes

    SGBDR : Systme de Gestion de Bases de Donnes Relationnelles

    XML : eXtensible Markup Language

    Abrviations

  • Bibliographie

    43Stphane Crozat

    Kimball R., Ross M., Thornthwaite W., Mundy J., Becker B. (2008, 1998). The Data Warehouse . Wiley Publishing, second edition.Lifecycle Toolkit

    Kimball R., Ross M. (2008, 2002). The Data Warehouse Toolkit: The Complete Guide to . Wiley Publishing, second edition.Dimensional Modeling

    Kimball R., Ross M. (2003). Entrepts de donnes : guide pratique de modlisation dimensionnelle. Vuibert.

    Bibliographie

    ObjectifsIntroductionPrincipes de la modlisation dimensionnelleApproche gnrale de modlisationTable des faitsTable des dimensions

    Projet Fantastique: Problme posProjet Fantastic: Donnes disponiblestude des besoins utilisateursRequte dcisionnelleRapportHirarchie

    Exercice: Projet Fantastique: tude des besoinstude des donnestude spare des sources donnestude intgre des sources de donnes

    Exercice: Projet Fantastique: tude des donnesModlisation du datawarehouseIntgration des besoinsArbitrages pour le choix des donnesMtadonnes

    Exercice: Projet Fantastique: ModlisationRappelsRappels SQL pour l'tude des donnesFichier CSVAgrgats

    Rappels Oracle pour l'tude des donnesAccs inter-schmasFentrage des donnesDictionnaire de donnes Oracle

    Prise en main de Oracle SQL DeveloperInstallation de SQL DeveloperConnexion avec SQL DeveloperNaviguer dans le catalogue de SQL DeveloperExcuter des requtes SQL avec SQL Developercrire du PL/SQL avec SQL DeveloperExcution de fichiers SQL

    Solutions des exercicesAbrviationsBibliographie