Éléments dusinage et métrologie dimensionnelle TCH040 Cours 7.
Introduction à la modélisation dimensionnelle · VIII - Modélisation du datawarehouse 20 1....
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