Anda di halaman 1dari 151

Alpha BI

FORMATION DE BASE LA

BUSINESS INTELLIGENCE

01/07/2012

1/151

ITS Formation Base B.I.

H I S T O R I Q U E

D E S

V O L U T I O N S

Version Indice Date 1.0 01/08/07

Descriptif de l'volution Version initial

Auteur ALPHA

S O M M A I R E

01/07/2012

2/151

ITS Formation Base B.I.

Chapitre 1

Base de donnes et langage SQL

01/07/2012

3/151

ITS Formation Base B.I.

S O M M A I R E HISTORIQUE DES VOLUTIONS..........................................................................................2 SOMMAIRE..................................................................................................................................2 SOMMAIRE..................................................................................................................................4 1 LA BASE DE DONNE.............................................................................................................7


1.1 Introduction : langage SQL...............................................................................................7 1.2 Gnralits sur les bases de donnes (BDD)..................................................................7 1.3 Les schmas.....................................................................................................................8 1.4 Les types de donnes.......................................................................................................9 1.5 Les contraintes champs..................................................................................................12 1.6 Prsentation de la base de donnes..............................................................................13

2 CONCEPTS DU RELATIONNEL.........................................................................................14
2.1 2.2 2.3 2.4 2.5 Domaine et relation........................................................................................................14 Dpendance fonctionnelle.............................................................................................15 Les diffrentes cls........................................................................................................15 Normalisation.................................................................................................................16 Exercice sur les concepts du relationnel.......................................................................20

3 LE LANGAGE SQL.................................................................................................................21
3.1 Les oprateurs................................................................................................................21 3.2 Le langage de dfinition..................................................................................................24 3.3 Le langage de requte....................................................................................................30 3.4 Le langage de manipulation............................................................................................35 3.5 Le langage de contrle (Commandes DCL) => Cf Annexe...........................................37 3.6 Optimisation des requtes..............................................................................................38 3.7 Initiation aux procdures stockes.................................................................................40

4 EXERCICE SUR LE LANGAGE SQL................................................................................42 5 ANNEXES SQL........................................................................................................................44


5.1 Les commandes DCL......................................................................................................44 5.2 Les commandes transactionnelles.................................................................................55 5.3 Les fonctions SQL...........................................................................................................56 5.4 Les dclencheurs (Triggers)...........................................................................................66

SOMMAIRE................................................................................................................................74 1 ENJEUX ET DFINITION.....................................................................................................77


1.1 Enjeux du dcisionnel.....................................................................................................77 1.2 Le dcisionnel.................................................................................................................78

2 LE PROCESSUS DCISIONNEL.........................................................................................79
2.1 La ralit des systmes dinformations..........................................................................79 2.2 Vue globale.....................................................................................................................80

3 LE DATAWAREHOUSE........................................................................................................81
3.1 Objectifs...........................................................................................................................81 3.2 Dfinition..........................................................................................................................81

01/07/2012

4/151

ITS Formation Base B.I.

4 LES DATAMARTS..................................................................................................................83
4.1 Objectif............................................................................................................................83 4.2 Dfinition..........................................................................................................................83 4.3 Mise en place..................................................................................................................84

5 ANALYSE MULTIDIMENTIONNELLE.............................................................................85
5.1 Les axes danalyses........................................................................................................85 5.2 Les indicateurs................................................................................................................86 5.3 Navigation dans les donnes..........................................................................................87

6 LANALYSE DES INFORMATIONS...................................................................................88 SOMMAIRE................................................................................................................................90 1 LA CONCEPTION...................................................................................................................93


1.1 Gnralits......................................................................................................................93 1.2 Zoom sur la scurit........................................................................................................94 1.3 Gestion des performances..............................................................................................95

2 ARCHITECTURE DCISIONNELLE.................................................................................96
2.1 Description des bases intermdiaires au DWH .............................................................96 2.2 Architecture ODS -> DWH..............................................................................................97 2.3 Architecture ODS -> DWH -> DTM.................................................................................98 2.4 Architecture ODS -> DTM...............................................................................................99

3 LA MODLISATION............................................................................................................101
3.1 Dfinition des lments constituants............................................................................101 3.2 Les diffrents types de modlisation dcisionnelle......................................................103 3.3 Gestion de lintgrit des donnes...............................................................................107

4 OPTIMISATION....................................................................................................................110
4.1 Agrgation de tables de faits........................................................................................110 4.2 Partitionnement de tables de faits................................................................................110

5 EXERCICE SUR LA MODLISATION............................................................................112


5.1 Ralisation du Staging..................................................................................................112 5.2 Ralisation du DataWarehouse....................................................................................114

SOMMAIRE..............................................................................................................................124 1 ALIMENTATION DUN DATAWAREHOUSE : LES ETL...........................................127


1.1 Dfinition........................................................................................................................127 1.2 Description des composantes d'un systme ETL........................................................128 1.3 Suites ETL versus ETL maison ..............................................................................130 1.4 Exemple : IBM Datastage.............................................................................................131

2 STOCKAGE DES DONNES..............................................................................................135


2.1 SGBD Relationnel.........................................................................................................135 2.2 Les bases OLAP...........................................................................................................135 2.3 Exemple : Powerplay Transformer...............................................................................141

3 REPORTING..........................................................................................................................144
3.1 Degrs danalyse..........................................................................................................144 3.2 Cibles.............................................................................................................................145 3.3 Mtiers...........................................................................................................................145

01/07/2012

5/151

ITS Formation Base B.I. 3.4 Type utilisateurs............................................................................................................145 3.5 Exemple : Cognos ReportNet.......................................................................................146

01/07/2012

6/151

ITS Formation Base B.I.

1 LA BASE DE DONNE
1.1 Introduction : langage SQL
Le SQL est un langage de requte structur (Structured Query Language) destin communiquer avec des bases de donnes relationnelles implmentes dans des SGBDR (Systme de Gestion de Bases de Donnes Relationnelles) tels que Oracle, Access, SQL Server ou encore Sybase. Le langage SQL permet d'effectuer diverses oprations comme la cration, l'extraction, la modification, la suppression, la fusion, etc., sur des collections de donnes, par l'intermdiaire d'instructions particulires appeles des commandes, souvent assistes d'ailleurs par des clauses ou des options. Malgr l'existence d'un standard destin assurer un degr de compatibilit optimal entre les diffrents SGBDR, les diteurs ont pour la plupart intgr des adjuvants, soit des extensions propritaires amliorant leur propre implmentation. L'ensemble de ce cours est videmment tributaire des diffrences entre les diffrentes implmentations.

1.2 Gnralits sur les bases de donnes (BDD)


Les bases de donnes sont utilises pour le stockage de diverses informations, ordonnes en de multiples units hirarchises. La structure atomique d'une base de donnes permet au dveloppeur de la dcomposer en plusieurs objets reprsentant chacun une de ses dimensions. Ainsi, un objet principal base de donnes se divise en d'autres objets appels tables, ellesmmes scindes en objets colonne et ligne dont dcoulent par rfrence croise, les valeurs. Une base de donnes se compose, donc, d'une plusieurs tables, dont chacune est identifie par un nom. Les tables contiennent un plusieurs enregistrements, c'est--dire des lignes de donnes. Chacune des tables d'une base de donnes se dcompose en un plusieurs champs appels galement colonnes. Table Champ_2 Champ_3 (col_2) (col_3) Valeur Valeur Valeur Valeur Enregistrement

Champ_1 (col_1) Valeur Valeur

Champ_4 (col_4) Valeur Valeur ---------------------->

<----------------------( Ligne )

Ces colonnes sont reprsentes d'une part par un nom individuel servant leur identification dans une table et d'autre part par un type de donnes pour le genre

01/07/2012

7/151

ITS Formation Base B.I. d'informations qu'elles comprennent comme du texte, des nombres, des dates et des heures ou encore des valeurs binaires (BLOB : Binary Large OBject) telles que des images. Fiche_Personne Prenom VARCHAR(20)

ID NUMBER(10)

Nom

VARCHAR(20)

CP NUMBER(5 )

Chaque enregistrement d'une table doit possder une cl unique, utilise pour les distinguer individuellement, l'image d'un numro de scurit sociale pour chaque individu. Une colonne spcialement conue cet effet doit contenir ce genre d'informations o aucun doublon n'est permis. Cette colonne est appele la cl primaire d'une table. L'indexation ainsi effectue permet un accs rapide et sans quivoque un enregistrement particulier d'une table. La manipulation des donnes s'effectue par l'intermdiaire de requtes regroupant plusieurs instructions SQL. Une requte prcise est capable entre autres, d'accomplir des extractions, des ajouts, des mises jour, des suppressions de donnes. L'excution de certaines requtes sur des bases de donnes peut retourner des objets spcifiques, comme des vues. Une vue est une table virtuelle dont le contenu est dtermin par une requte. Une vue possde donc une structure identique celle d'une table de base de donnes hormis que ses lignes et ses colonnes proviennent d'une plusieurs tables indiques dans la requte.

1.3 Les schmas


Un schma est une collection d'objets comme des tables ou des vues, associe un nom d'utilisateur de la base de donnes. Dans la pratique, tout utilisateur crant un objet dans une base de donnes, engendre systmatiquement un schma, et partant, le nom de l'utilisateur devient le propritaire de sa propre ralisation. L'accs aux objets d'un schma par un utilisateur quelconque, s'effectue par l'intermdiaire du nom du propritaire associ celui de l'objet. Syntaxe : nom_utilisateur.nom_objet Chaque objet dans une base de donnes cr par leur utilisateur est ainsi clairement identifi par le couple propritaire.objet, vitant d'une part d'ventuelles noms doubles et d'autre part des problmes de scurit. En outre, il est possible de crer explicitement un schma l'aide de la commande CREATE SCHEMA. Instruction CREATE SCHEMA CREATE SCHEMA AUTHORIZATION nom_schma { instruction_CREATE_TABLE

01/07/2012

8/151

ITS Formation Base B.I. instrustion_CREATE_VIEW instruction_GRANT }; La commande CREATE SCHEMA propose un moyen de crer des tables, des vues et d'accorder des privilges pour les objets partir d'une unique instruction.

1.4 Les types de donnes


Il existe quatre types de donnes principaux dans le langage SQL. Les nombres entiers ou rels Les chanes de caractres Les dates et heures Les donnes binaires Les nombres dcimaux sont composs de deux parties distinctes; une avant le sparateur dcimal et l'autre aprs. La longueur de cette dernire partie est fixe par un argument spcial, l'chelle, au sein des types de donnes numriques et la longueur totale par un autre argument, la prcision. Syntaxe : NUMERIC(Prcision, Echelle) La prcision dtermine la nombre maximum de chiffres d'une valeur numrique.

Exemple :
NUMERIC(8, 0) -> 10 000 000 L'chelle d'une valeur numrique reprsente le nombre de chiffres de la partie dcimale, soit celle droite du sparateur dcimal, le point ou la virgule selon les spcifications du systme local.

Exemple :
NUMERIC(3, 5) -> 742.23876 Les donnes alphanumriques peuvent tre de longueur fixe ou variable. Dans le premier cas, il sera toujours demand un argument indiquant la taille en octets de la chane de caractres.

Exemple :
CHARACTER(10) La taille du texte est fixe 10 caractres. Dans le second cas, le type devra tre suivi d'une instruction spcifique, en l'occurrence VARYING permettant un champ d'accepter des chanes de caractres de taille variable. En outre, une taille maximum peut galement tre indique en argument.

Exemple :
CHARACTER VARYING(16384) La taille du texte est limite 16 384 caractres.

01/07/2012

9/151

ITS Formation Base B.I.

1.4.1 Les types de donnes de SQL Server


SQL_VARIANT reprsente un variant SQL pouvant tre de n'importe quel type, hormis les donnes ntext et text. DATETIME reprsente une valeur de date et d'heure comprises entre le 1 er janvier 1753 et le 31 dcembre 9999. SMALLDATETIME reprsente une valeur de date et dheure courte comprise entre le 1 er janvier 1900 et le 6 juin 2079. TIMESTAMP indique la squence de l'activit SQL Server sur une ligne, reprsente sous la forme d'un nombre croissant au format binaire. NUMBER(Prcision, Echelle) reprsente un nombre avec une prcision et une chelle prciser. FLOAT reprsente une valeur numrique flottante comprise entre -1.79E+308 et 1.79E+308. REAL reprsente une valeur numrique relle comprise entre-3.40E+38 et 3.40E+38. DECIMAL reprsente une valeur numrique dcimale comprise entre -1038+1 et 10381. MONEY reprsente une valeur numrique montaire comprise entre -922 337 203 685 477,5808 et +922 337 203 685 477,5807. SMALLMONEY reprsente une valeur numrique montaire courte comprise entre -214 748,3648 et +214 748,3647. BIGINT reprsente une valeur numrique entire comprise entre -9 223 372 036 854 775 808 et 9 223 372 036 854 775 807. INT reprsente une valeur numrique entire comprise entre -2 147 483 648 et 2 147 483 647. SMALLINT reprsente une valeur numrique entire comprise entre -32 768 et 32 767. TINYINT reprsente une valeur numrique entir comprise entre 0 et 255. BIT reprsente une valeur binaire 1 ou 0. NTEXT reprsente une chane de caractres UNICODE-UCS-2 d'une longueur variable d'un maximum de 2 147 483 647 caractres. NVARCHAR reprsente une chane de caractres UNICODE-UCS-2 d'une longueur variable d'un maximum de 4 000 caractres. NCHAR reprsente une chane de caractres UNICODE-UCS-2 d'une longueur fixe d'un maximum de 4 000 caractres. TEXT reprsente une chane de caractres non-Unicode d'une longueur variable d'un maximum de 1 073 741 823 caractres. VARCHAR(n) reprsente une chane de caractres non-Unicode d'une longueur variable d'un maximum de 8

01/07/2012

10/151

ITS Formation Base B.I. 000 caractres. CHAR(n) reprsente une chane de caractres non-Unicode d'une longueur fixe d'un maximum de 8 000 caractres. VARBINARY reprsente une valeur binaire de taille variable d'un maximum de 8 000 octets. BINARY reprsente une valeur binaire de taille fixe d'un maximum de 8 000 octets. IMAGE reprsente une valeur binaire de taille variable d'un maximum de 2 147 483 647 octets. UNIQUEIDENTIFIER reprsente un identificateur unique global (GUID : Global Unique IDentifier). CURSOR reprsente la valeur contenu dans un curseur.

1.4.2 Les types de donnes dOracle


DATE reprsente une valeur de date et d'heure comprises entre le 1 er janvier 4712 BC et le 31 dcembre 4712 AD. TIME(Nb) reprsente une valeur horaire avec des heures comprises entre 00 et 23, des minutes comprises entre 00 et 59 et des secondes entre 00 et 61.999. Le nombre Nb indique le nombre de chiffres dans les secondes, compris entre 0 et 6. TIMESTAMP utilis pour le stockage, reprsente des valeurs de date : anne, mois et jour, et des valeurs horaires : heure, minute et seconde. NUMBER(p, e) reprsente un nombre avec une prcision p de 1 38 chiffres et une chelle e comprise dans l'intervalle de -84 127. NUMERIC(p, e) reprsente un nombre avec une prcision et une chelle comprises entre 0 et 38. DECIMAL(p, e) reprsente un nombre dcimal avec une certaine prcision p et une certaine chelle e comprise entre 0 et 38. REAL reprsente un nombre virgule flottante de simple prcision, compris entre 10-38 et 1038. FLOAT(p) reprsente un nombre virgule flottante avec une certaine prcision, compris entre 10 -308 et 10308. DOUBLE PRECISION Reprsente un nombre virgule flottante de double prcision, compris entre 10-308 et 10308. TINYINT Reprsente un nombre entier compris entre -128 et +127. SMALLINT Reprsente une valeur numrique entire comprise entre -32 768 et 32 767. INTEGER Reprsente un nombre entier compris entre -231 et 231. BIGINT Reprsente un nombre entier avec une prcision de 19 chiffres compris entre -1019 et 1019. CHAR(Longueur) reprsente une chane de caractres non-Unicode d'une longueur fixe d'un maximum de 4 000 caractres. L'instruction VARYING permet d'adopter une longueur variable l'image de

01/07/2012

11/151

ITS Formation Base B.I. VARCHAR. VARCHAR(Nb_Octet) VARCHAR2(Nb_Octet) Reprsente une chane de caractres d'une longueur variable maximum de 4 096 octets. LONG VARCHAR(Nb_Octet) Reprsente une chane de caractres d'une longueur variable maximum de 2 gigaoctets. CLOB reprsente une grande chane de caractres UNICODE-UCS-2 d'une longueur variable d'un maximum de 2 gigaoctets. BIT(Nb_Bit) reprsente la valeur d'un bit, soit 0 ou 1. RAW(Nb_Octet) reprsente des donnes binaires brutes d'une taille maximum de 2 000 octets. BINARY(Nb_Octet) reprsente une valeur binaire de taille fixe d'un maximum de 4 096 octets VARBINARY(Nb_Octet) utilis pour le stockage, reprsente une valeur binaire d'une longueur variable. LONG VARBINARY(Nb_Octet) utilis pour le stockage, reprsente des donnes binaires brutes d'une taille variable maximum de 2 gigaoctets. LONG reprsente une chane de caractres d'une longueur variable d'une taille maximum de 2 gigaoctets. LONG RAW(Nb_Octet) reprsente des donnes binaires brutes d'une taille maximum de 2 gigaoctets. BLOB reprsente une grande valeur binaire d'une taille d'un maximum de 2 147 483 647 octets. ROWID reprsente une valeur hexadcimale de 16 octets reprsentant l'adresse unique d'une ligne de tableau.

1.5 Les contraintes champs


Les contraintes permettent d'indiquer les valeurs permises au sein des colonnes d'une table afin d'obtenir des caractristiques spcifiques comme l'acceptation de valeurs nulles ou non nulles, l'interdiction des doublons ainsi que l'affectation de cls primaire et trangre. Syntaxe : Nom_Champ Type_Donne Contrainte Dfinition_Champ NULL indique que le champ peut accepter des valeurs nulles. Dfinition_Champ NOT NULL indique que le champ n'accepte pas de valeurs nulles. Dfinition_Champ UNIQUE indique que les valeurs du champ ne peuvent comporter de doublons. Dfinition_Champ PRIMARY KEY indique que le champ constitue la cl primaire de la table et que les doublons sont interdits. CONSTRAINT Nom_Contrainte FOREIGN KEY Champ REFERENCE Table_Pointe(Champ_Cl_Primaire) ON UPDATE { CASCADE | NO ACTION } ON DELETE { CASCADE | NO ACTION } indique que le champ constitue la cl trangre rfrence dans une autre table. Les clauses ON UPDATE et ON DELETE permettent (CASCADE) ou ne permettent pas (NO ACTION)

01/07/2012

12/151

ITS Formation Base B.I. respectivement la mise jour ou la suppression de lignes de donnes mise en relation rfrentielles par la cl concordante. La commande CONSTRAINT permet de dfinir une contrainte sur une colonne lors de la cration d'une table. Syntaxe : CONSTRAINT Dfinition_Contrainte Les contraintes peuvent tre modifies ou supprimes par l'intermdiaire de la commande ALTER TABLE. Syntaxe : ALTER TABLE nom_table MODIFY CONSTRAINT nom_contrainte ALTER TABLE nom_table DROP CONSTRAINT nom_contrainte

Exemple :
CREATE TABLE Personne ( ID INTEGER PRIMARY KEY, ID_Service INTEGER NOT NULL, Nom VARCHAR(20) NOT NULL, Prenom VARCHAR(20) NOT NULL, Date_Naissance DATE NOT NULL, Ville_Naissance VARCHAR(20) NOT NULL, Situation_Familiale NOT NULL, Adresse VARCHAR(50) NOT NULL, Code_Postal INTEGER NOT NULL, Ville VARCHAR(20) NOT NULL, Telephone INTEGER NULL, eMail VARCHAR(50) NULL UNIQUE, CONSTRAINT CONST_ID FOREIGN KEY ID_Service REFERENCE TABLE_Service(ID) ON UPDATE CASCADE ON DELETE CASCADE )

1.6 Prsentation de la base de donnes


Lors de cette formation, nous allons utiliser une base de donnes nomm formation qui va nous servir dexemple et dexercice. Schma physique de la base
JOUER CINEMA Cinema Cinema Ville Cinema Cinema Code Nom int <pk> varchar(64) varchar(128) Type varchar(2) Groupe varchar(64) PROJECTION Jour varchar(10) <pk> Film Code int <pk> Cinema Code int <pk> Jouer Code Film Code Titre Genre Date Acteur Code Acteur Nom Acteur Prnom Rle int <pk> int varchar(128) varchar(64) datetime int varchar(64) varchar(64) varchar(128)

GEOGRAPHIE Ville varchar(128) Postal Code integer Transport Code char(1) Transport Type varchar(64) Frequence Transport Paris integer Region Code varchar(5) Region Descritpion varchar(164)

01/07/2012

13/151

ITS Formation Base B.I.

2 CONCEPTS DU RELATIONNEL
2.1 Domaine et relation
2.1.1 Dfinition
Un domaine est un ensemble de valeurs smantiquement homognes

Exemple :
Prenons la table CINEMA : DOM_NOM = {UGC Le Renoir, Espace Cin, Le Fontenelle} DOM_CODE = {01, 04, 02} Toute donne ne doit pouvoir tre insre dans la base que si elle satisfait la dfinition de son domaine. Cette vrification doit tre assure par le SGBD. Il faudrait pour cela pouvoir dfinir les domaines grce un Langage de Dfinition des Donnes (DDL en anglais) qui reste crer. Certes il existe un DDL SQL normalis ISO, mais il nest pour linstant mis en uvre par aucun SGBD du march. En revanche, beaucoup de SGBD du march ont dfini un typage de donnes, c'est--dire des rgles que doivent respecter les donnes. Cest pour linstant ce qui se rapproche le plus de la notion de domaine

Une relation est un sous ensemble (dot dun prdicat et doprateurs) du produit cartsien dune liste de domaines, tel que chaque ligne satisfasse un critre de vrit du micromonde modlis.

Exemple :
Produit cartsien des deux domaines dfinis les plus hauts : DOM_CODE x DOM_NOM Cinma Code Le Fontenelle Le Renoir Espace Cin Cinma Nom 01 03 04

2.1.2 Terminologie
Relation nest pas synonyme de table. Une table nest quune relation dun type particulier. Il existe dautres relations qui ne sont pas des tables : les vues Degr dune relation : nombre dattributs

01/07/2012

14/151

ITS Formation Base B.I. Cardinalit dune relation : nombre de lignes Schma dune relation : nom de la relation, suivi de la liste de ses attributs (Ex : CINEMA {CODE, NOM})

2.1.3 Notion dordre


En thorie, pour les lignes et les attributs la notion dordre est indiffrente. La recherche de performances oblige cependant la plupart des SGBD dits relationnels enfreindre ce principe. Les lignes sont alors stockes dans un ordre qui privilgie les traitements les plus frquents (ordre alphabtique des ralisateurs par exemple).

2.2 Dpendance fonctionnelle


Soit la relation R, soient x et y deux sous-ensembles dattributs de R, Y dpend fonctionnellement de x, Si chaque valeur de x correspond au plus une valeur de y. Notation : On note x -> y

Exemple :
Dans la table CINEMA, CODE -> NOM Dans la table JOUER, ACTEUR NOM -> ACTEUR PRENOM (seulement si pas dhomonyme) Remarque Dans la ralit, rares sont les attributs naturels qui sont dterminants dautre attributs. On a donc frquemment recours des attributs artificiels qui dterminent tous les autres. La cration de tels identifiants artificiels ne doit tre ralise quen cas de besoin rel, et respecter des rgles qui requirent des comptences en modlisation des donnes et ne font pas lobjet de ce cours. Il est en particulier indispensable dinventorier la totalit des dpendances fonctionnelles de la relation pour sassurer quune combinaison de ses attributs naturels ne dtermine pas les autres

2.3 Les diffrentes cls


Il existe deux types de cls, la cl candidate et la cl primaire.

01/07/2012

15/151

ITS Formation Base B.I.

2.3.1 Cl candidate
Ensemble minimum dattributs qui dterminent tous les autres Elle peut tre simple (mono-attribut) ou multi-attributs

2.3.2 Cl primaire
Cl choisie parmi les cls candidates Par dfinition, la cl primaire nous permet didentifier de faon unique chacune des lignes de la table. Comme, par dfinition, cette cl primaire est compose dun ensemble minimum dattribut, il faut respecter la rgle dintgrit dentit : Aucun des attributs de la cl primaire ne peut prendre la valeur nulle

2.4 Normalisation
2.4.1 Premire forme normale
Une table est en premire forme normale si : Pour une ligne et un attribut de donnes, on ne peut trouver au plus quune valeur

Exemple :
Table Non first Normal Form JOUER Acteur Nom Kidman Wayne Cruise Table 1NF JOUER Acteur Nom Kidman Wayne Cruise Cruise Remarque sur les Valeurs Nulles La premire forme normale interdit davoir plus dune valeur pour une ligne et un attribut de donnes. 01/07/2012 16/151 Acteur Prnom Nicole John Tom Pnlope Acteur Prnoms Nicole John Tom, Pnlope

ITS Formation Base B.I. Il est en revanche possible de ne pas avoir de valeur pour une ligne et une colonne donnes. Attention, Nulle ne veut pas dire gale zro mais non connue La normalisation consiste liminer les redondances induites par le respect de la premire forme normale Pour cela on dfinit six tapes de normalisation : 1NF, 2NF, 3NF, BCNF, 4NF et 5NF

2.4.2 Utilit de la normalisation


La normalisation consiste liminer les redondances induites par le respect de la premire forme normale. Normaliser un schma relationnel c'est le remplacer par un schma quivalent o toutes les relations vrifient certaines proprits. La normalisation est utile : pour limiter les redondances de donnes, minimiser lespace de stockage, pour limiter les pertes de donnes, pour limiter les incohrences au sein des donnes, pour amliorer les performances des traitements. viter les problmes de mises jour.

Exemple :
Soit la relation (en premire forme normale), qui permet de stocker des informations sur les films et les acteurs associs : JOUER Jouer Code 01 02 03 05 06 Titre Dogville Dogville Dogville Breaking the waves Pulp Fiction Acteur Nom Kidman Bettany Skarsgard Skarsgard Travolta Acteur Prnom Nicole Paul Stellan Stellan John Rle Grace Tom Edison Chuck Jan Vincent Vega

Cette relation contient un certain nombre de redondances dinformations et sera, de ce fait, difficile manipuler sans perdre dinformations ou introduire des incohrences. Difficults pour les mises jour lies aux redondances : Si Skarsgard change de nom (dans cet exemple, peu probable), il faut mettre jour toutes les lignes qui le rfrencent. Difficults lors des suppressions : Supprimer la ligne (05) fait perdre les informations relatives au film et lacteur dont les existences ne sont pas forcment lies.

01/07/2012

17/151

ITS Formation Base B.I.

2.4.3 Deuxime forme normale


Une entit ou une relation en premire forme normale est en deuxime forme normale si tout attribut non cl dpend de la cl primaire par une dpendance fonctionnelle lmentaire pleine cad tout attribut non cl ne dpend pas dune partie de la cl. Une relation avec une cl candidate choisie rduite un seul attribut est, par dfinition, forcment en 2NF.

Exemple :
En partant des informations stockes dans la table Jouer, on dfinit les rgles de gestion suivantes : Un film peut avoir plusieurs acteurs Un acteur peut travailler sur plusieurs films Seul le couple (Film Code, Acteur Code) dtermine lensemble des autres attributs. Il doit donc tre choisi comme cl primaire La relation initiale doit donc tre fragmente en 3 relations respectant la 2me forme normale. FILM JOUER ACTEUR Film Code Film Code Acteur Code Titre Acteur Code Nom Genre Rle Prnom Date

2.4.4 Troisime forme normale


Une entit ou une relation en deuxime forme normale est en troisime forme normale si aucun attribut non cl ne dpend dun autre attribut non cl.

Exemple :
Dans la table Cinma, une rgle de gestion simpose : un type de cinma ne correspond quun groupe de cinma. CINEMA Cinema Code 01 02 03 04 05 Cinema Nom UGC Le Renoir Le Fontenelle Gaumont Wilson Espace Cin Le toulouse Ville Aix-enProvence Marly-le-Roi Toulouse Epinay-surSeine Toulouse Cinema Type C1 C0 C2 C0 C0 Cinema Groupe UGC Indpendant Gaumont Indpendant Indpendant

La dpendance fonctionnelle Cinema Code -> Cinema Groupe est transitive et cela induit de la redondance : Cinema Code -> Cinema Type -> Cinema Groupe CINEMA doit donc tre dcompose pour respecter la troisime forme normale : CINEMA Cinema Code Cinema Nom Ville Cinema Type

01/07/2012

18/151

ITS Formation Base B.I. CINEMA TYPE Cinema Type Cinema Groupe

2.4.5 Rcapitulatif
Schmatiquement, on peut dire quune relation est normalise 3FN lorsque : Elle a une cl primaire qui identifie chaque ligne de manire unique Tout attribut non cl dpend : o De la cl o De toute la cl (2NF) o Rien que de la cl (3NF) Avantage : la redondance est limite aux cls Risque : il faut sassurer que les valeurs de la cl dune relation duplique dans une autre existent bien dans la relation dont elles sont senses tre issues. On parle dintgrit rfrentielle qui peut tre assure par les programmes applicatifs et/ou le SGBD.

2.4.6 Intgrit rfrentielle


Dans le cas des trois tables 2NF obtenues dans lexemple du paragraphe 2.4.3 : Les valeurs prises par le Film Code dans la table JOUER doivent exister dans la table FILM Les valeurs prises par le Acteur Code dans la table JOUER doivent exister dans la table ACTEUR FILM JOUER ACTEUR Film Code Film Code Acteur Code Titre Acteur Code Nom Genre Rle Prnom Date

On dit alors que les tables FILM et JOUER dune part, ACTEUR et JOUER dautre part, doivent respecter le principe dintgrit rfrentielle. Dfinitions La table qui contient les valeurs de rfrence de lattribut est dite table parente (ou de rfrence). Une table qui fait rfrence cet attribut est dite table fille (ou dpendante) La colonne Film Code de la table JOUER est une cl trangre faisant rfrence la table FILM. La colonne Acteur Code de la table JOUER est une cl trangre faisant rfrence la table ACTEUR. La cl trangre, ciment des relations, ne peut avoir une autre valeur que : Nulle Egale une valeur de la cl primaire de la relation parent Si lintgrit rfrentielle nexiste pas ou nest pas mise en uvre, elle doit tre alors prise eb charge par les programmes applicatifs, qui assurent de ce fait une partie des tches du SGBD.

01/07/2012

19/151

ITS Formation Base B.I.

2.5 Exercice sur les concepts du relationnel


La table Gographie servira de base pour cet exercice. 1/ Chercher toutes les dpendances fonctionnelles de cette table 2/ Dterminer les cls candidate puis choisir la cl primaire 3/ Dans quelle forme normale se trouve cette table 4/ Passer cette table en 3NF en passant par chaque NF intermdiaire si ncessaire 5/ Dterminer les tables parentes/filles et les cls trangres

Rponses 1/ Postal Code <-> Ville ; Transport Code <-> Transport Type ; Transport Code -> Frquence Transport Paris ; Postal Code -> Frquence Transport Paris ; Ville -> Frquence Transport Paris ; Transport Type -> Frquence Transport Paris ; Postal Code -> Rgion Code ; Ville -> Rgion Code ; Postal Code -> Rgion Description ; Ville -> Rgion Description ; Rgion Code <-> Rgion Description ; 2/ (Ville, Transport Code) (Ville, Transport Type) (Postal Code, Transport Code) (Postal Code, Transport Type) Cl primaire : (Postal Code, Transport Code) => il est prfrable dutiliser des codes integer (surtout en cas dhomonyme de villes par exemple). 3/1NF 4/ 2NF VILLE FREQUENCE TRANSPORT 3NF VILLE REGION FREQUENCE TRANSPORT

Postal Code Postal Code Transport Code

Ville Transport Code

Rgion Code

Rgion Description

Frquence Transport Paris

Transport Type

Postal Code Rgion Code Postal Code Transport Code

Ville

Rgion Code

Rgion Description Transport Code Transport Type Frquence Transport Paris

5/ Cls trangres : Postal Code dans table Frquence, Transport Code dans table Frquence, Rgion Code dans table Rgion Parent/Fille : Ville/Frquence, Transport/Frquence, Rgion/Ville

01/07/2012

20/151

ITS Formation Base B.I.

3 LE LANGAGE SQL
3.1 Les oprateurs
3.1.1 Oprateurs arithmtiques et de concatnations
Ces oprateurs permettent d'effectuer des calculs arithmtiques ou des oprations de concatnation l'intrieur de requtes SQL. Instruction SELECT Col1 - ((Col1 * Col2)/100), Col2 FROM Table1 Les oprateurs arithmtiques et de concatnations Expression1 + Expression2 accomplit l'addition des deux expressions. Expression1 - Expression2 accomplit la soustraction des deux expressions. Expression1 * Expression2 accomplit la multiplication des deux expressions. Expression1 / Expression2 accomplit la division de la premire expression par la seconde. Expression1 % Expression2 accomplit le modulo des deux expressions. Expression1 + Expression2 (|| sous Oracle) accomplit la concatnation de deux expressions. Le signe plus + est utilis par SQL Server et || par Oracle.

Exemple :
SELECT TITRE, ACTEUR_NOM + ' '+ ACTEUR_PRENOM FROM JOUER WHERE GENRE = 'Epouvante' Faux-Semblants Irons Jeremy

3.1.2 Oprateurs de comparaison


Les oprateurs de comparaison permettent une mise en correspondance de deux expressions retournant une valeur boolenne True ou False. Instruction SELECT * FROM Table1 WHERE expression Oprateur expression2 Si la premire expression correspond en fonction de l'oprateur la seconde expression, la comparaison retourne la valeur True et sinon, la valeur est False. Les oprateurs de comparaison Expression1 = Expression2 vrifie l'galit entre les deux expressions. 01/07/2012 21/151

ITS Formation Base B.I. Expression1 { != | <> | ^= } Expression2 vrifie la diffrence entre les deux expressions. Expression1 > Expression2 vrifie si la premire expression est suprieure la seconde. Expression1 >= Expression2 vrifie si la premire expression est suprieure ou gale la seconde. Expression1 !> Expression2 vrifie si la premire expression n'est pas suprieure la seconde. Expression1 < Expression2 vrifie si la premire expression est infrieure la seconde. Expression1 <= Expression2 vrifie si la premire expression est infrieure ou gale la seconde. Expression1 !< Expression2 vrifie si la premire expression n'est pas infrieure la seconde.

Exemple :
SELECT * FROM PROJECTION WHERE Jour >= '20020502' 2002-05-03 2002-05-02 05 05 02 02

3.1.3 Les oprateurs conjonctifs


Les oprateurs conjonctifs soit AND et OR, permettent de combiner plusieurs conditions. condition AND | OR condition2 AND | OR conditionN Les oprateurs conjonctifs Expression1 AND Expression2 Retourne True si les deux expressions sont True. Expression1 OR Expression2 Retourne True si l'une ou/et l'autre des expressions est True.

Exemple :
SELECT titre FROM JOUER WHERE Genre='Drame' and date >= '20000101' Dogville

3.1.4 Les oprateurs logiques


Les oprateurs logiques permettent d'effectuer des comparaisons sur des expressions SQL. Instruction expression Oprateur [ expression2 ]

01/07/2012

22/151

ITS Formation Base B.I. A l'instar des oprateurs de comparaison symboliques, les oprateurs logiques provoquent le retour d'une valeur boolenne True ou False. Souvent, les oprateurs logiques ne comparent pas deux expressions, mais une seule par rapport une valeur dtermine soit par le type de l'oprateur comme IS NULL, soit par un modle pass en paramtre comme pour LIKE. Les oprateurs logiques Expression1 { =, !=, >, <, <=, >=, !<, !> } ALL (Expression2) retourne True si la comparaison entre les expressions Expression1 et Expression2 est True sur toutes les paires (valeur_Expression1, valeur_Expression2). Expression1 { =, !=, >, <, <=, >=, !<, !> } ANY | SOME (Expression2) retourne True si la comparaison entre les expressions Expression1 et Expression2 est True sur quelques paires (valeur_Expression1, valeur_Expression2). Expression_Test [ NOT ] BETWEEN Expression_Dbut AND Expression_Fin = True | False dfinit un intervalle sur lequel la recherche doit tre applique. EXISTS (Sous-Requte) retourne True si l'enregistrement point par la sous-requte existe. Expression_Test [ NOT ] IN ( Sous-Requte | Expression ) retourne True si l'expression correspond ou ne correspond pas (NOT) une des valeurs pointes par la sous-requte ou l'expression. Expression IS [NOT] NULL indique si la valeur est nulle ou non-nulle (NOT). Expression IS [ NOT ] OF Type_Donnes retourne True si l'expression possde ou ne possde pas (NOT) le type de donne indiqu. Expression [ NOT ] LIKE Modle [ ESCAPE Caractre_Echappement ] retourne True si le modle correspond l'expression. Le modle peut comporter des caractres gnriques %, _, [Caractres] ou [^Caractres] reprsentant respectivement une chane de zro plusieurs caractres, n'importe quels caractres, l'inclusion ou l'exclusion d'un plusieurs caractres. Le caractre d'chappement permet d'inclure un caractre gnrique prcit dans la mise en correspondance. NOT (Expression) retourne la valeur boolenne inverse de l'expression. UNIQUE (Expression) retourne la valeur boolenne True si l'expression ne possde pas de doublons.

Exemple :
SELECT * from projection WHERE jour is NOT NULL Toutes les lignes retournes

3.1.5 Les oprateurs d'ensemble


Les oprateurs d'ensemble combinent le rsultat de deux requtes l'intrieur d'un seul rsultat. Les requtes contenant de tels oprateurs sont appeles des requtes composes. Les oprateurs d'ensemble

01/07/2012

23/151

ITS Formation Base B.I. Requte1 UNION Requte2 retourne toutes les lignes slectionnes par l'une et l'autre des requtes. Requte1 UNION ALL Requte2 retourne toutes les lignes slectionnes par l'une et l'autre des requtes en incluant tous les doubles. Requte1 INTERSECT Requte2 retourne les lignes distinctes slectionnes par les deux requtes. Requte1 MINUS Requte2 retourne les lignes distinctes slectionnes par la premire requte mais pas par la seconde.

Exemple :
SELECT Jour FROM PROJECTION WHERE Jour >= '20020502' UNION SELECT date FROM JOUER WHERE Genre='Drame' and date >= '20000101' 2002-01-01 2002-05-02 2002-05-03 SELECT Jour FROM PROJECTION WHERE Jour >= '20020502' UNION ALL SELECT date FROM JOUER WHERE Genre='Drame' and date >= '20000101' 2002-01-01 2002-01-01 2002-01-01 2002-05-02 2002-05-03

3.2 Le langage de dfinition


Les commandes DDL (Data Defintion Language) dfinissant la structure d'une base de donnes, permet la cration, la modification ou la suppression de divers objets tels qu'une table, une vue ou encore un index.

3.2.1 Cration de table


La commande CREATE TABLE permet de crer une table avec des colonnes d'un type de donnes spcifi. Instruction CREATE TABLE nom_table

01/07/2012

24/151

ITS Formation Base B.I. ( nom_col type [ NULL | NOT NULL | PRIMARY KEY | UNIQUE ], [ nom_colN type [ NULL | NOT NULL | PRIMARY KEY | UNIQUE ] ] ); Avant d'excuter une telle commande, il est ncessaire de rassembler certains lments indispensables. Un nom de table unique doit tre prcis afin de l'identifier dans la base de donnes. Pour chaque colonne crer l'intrieur de la table, il faut spcifier des noms de colonnes distincts. Chaque colonne ncessitant un type de donne, il faut indiquer le type de donnes assigner chacune des colonnes crer. Toute table ncessitant une colonne faisant office de cl primaire, il faut imprativement en dterminer une avec une contrainte d'unicit UNIQUE. Des contraintes peuvent tre galement spcifies pour les valeurs d'une colonne lors de la cration de la table. NULL NOT NULL PRIMARY KEY UNIQUE : indique que la colonne peut contenir des valeurs nulles. : indique que la colonne ne peut contenir de valeurs nulles. : indique que la colonne constitue la cl primaire de la table. : impose que chaque valeur de la colonne doit tre unique.

Plus prcisment, les contraintes peuvent tre appliques au moyen de la clause CONSTRAINT.

Exemple :
create table JOUER ( JOUER_CODE int not null, FILM_CODE int not null, TITRE varchar(128) null, GENRE varchar(64) null, DATE datetime null, ACTEUR_CODE int not null, ACTEUR_NOM varchar(64) null, ACTEUR_PRENOM varchar(64) null, ROLE varchar(128) null, constraint PK_JOUER primary key (JOUER_CODE) ) go JOUER JOUER_ FILM_ ACTEUR ACTEUR_ ACTEUR_ TITRE GENRE DATE CODE CODE _CODE NOM PRENOM ... ... ... ... ... ... ... ...

ROLE ...

01/07/2012

25/151

ITS Formation Base B.I.

3.2.2 Modification de table


La commande ALTER TABLE est une requte permettant la modification d'une table en ajoutant, en supprimant ou en changeant les colonnes, leur dfinition ou les contraintes. Instruction Oracle ALTER TABLE Nom_Table | { MODIFY CONSTRAINT nom_contrainte dfinition_contrainte | DROP { PRIMARY KEY | UNIQUE ( nom_colonne [, nom_colonneN] ) } | CONSTRAINT nom_contrainte } | { ADD nom_colonne type_donne [, nom_colonneN type_donne ] | MODIFY ( nom_colonne [type_donne] [ dfinition_contrainte ] [, nom_colonneN [type_donne] [ dfinition_contrainte ] ] | DROP [ COLUMN ] nom_colonne | ( nom_colonne [, nom_colonneN ] ) [ CASCADE CONSTRAINT ] | INVALIDATE } Instruction SQL Server ALTER TABLE table { [ ALTER COLUMN nom_colonne nouveau_type ] | ADD { [ nom_colonne nouveau_type ] | nom_colonne AS expression_colonne_calcule } [ ,...n ] | [ WITH CHECK | WITH NOCHECK ] ADD { dfinition_contrainte } [ ,...n ] | DROP { [ CONSTRAINT ] nom_contrainte | COLUMN nom_colonne } [ ,...n ] | { CHECK | NOCHECK } CONSTRAINT { ALL | nom_contrainte [ ,...n ] } La commande ALTER TABLE est trs complte puisqu'elle permet : de modifier le type d'une colonne (ALTER | MODIFY COLUMN), d'ajouter de nouvelles colonnes (ADD nom_colonne), d'ajouter de nouvelles contraintes (ADD dfinition_contrainte) avec la clause CONSTRAINT prcite et indique si les donnes de la table doivent tre ou ne pas tre vrifies (WITH CHECK | WITH NOCHECK) par rapport une contrainte FOREIGN KEY ou CHECK nouvellement ajoute, de supprimer des colonnes (DROP COLUMN), de supprimer des contraintes (DROP CONSTRAINT), d'activer (CHECK) ou de dsactiver (NOCHECK) toutes les contraintes (ALL) ou certaines.

01/07/2012

26/151

ITS Formation Base B.I.

Exemple :
ALTER TABLE projection ADD prix DECIMAL(7, 2) GO Ajout dune colonne prix ALTER TABLE projection ALTER COLUMN prix DECIMAL(5, 0) GO Modificaction du format de la colonne prix ALTER TABLE projection DROP COLUMN prix GO Suppression de la colonne prix

3.2.3 Suppression de table


3.2.3.1 La commande DROP TABLE
La commande DROP TABLE est une requte permettant la suppression complte d'une table. Instruction DROP TABLE Nom_Table [RESTRICT | CASCADE] Les deux clauses ne sont utilisables que sous Oracle. La clause RESTRICT restreint la suppression aux enregistrements de la seule table et retourne une erreur si la table est rfrence par une vue ou une contrainte. La clause CASCADE provoque la suppression de la table et de toutes ses rfrences.

Exemple :
DROP TABLE jouer

3.2.3.2 Les commandes TRUNCATE TABLE


La commande TRUNCATE TABLE est une requte permettant la destruction complte des donnes contenues dans une table. Contrairement la commande DROP TABLE, TRUNCATE TABLE conserve le schma de relation de la table concerne, ainsi, celle-ci reste disponible dans la base de donne pour de futures oprations. Instruction TRUNCATE TABLE Nom_Table

01/07/2012

27/151

ITS Formation Base B.I.

Exemple :
TRUNCATE TABLE jouer

3.2.4 Cration dindex


La commande CREATE INDEX permet de crer un index rfrenant les emplacements de chaque valeur d'une colonne. Instruction CREATE INDEX nom_index ON nom_table ASC | DES L'indexation termine, les donnes seront ranges selon un ordre ascendant ASC ou descendant DES permettant un accs plus rapide aux emplacements des donnes dans la table concerne. Un index n'est vraiment utile que pour des tables de grande dimension, afin d'viter un balayage complet des lignes pour trouver une information. En outre, l'index consomme un espace mmoire considrable puisqu'il est aussi important que celui de la table elle-mme. Une indexation peut s'appliquer sur une ou plusieurs colonnes. Toutefois, un index sur une seule colonne reste le plus simple, et partant le plus efficace si la colonne concerne est sollicite trs rgulirement. Instruction CREATE INDEX nom_index ON nom_table(nom_colonne) Un index sur plusieurs colonnes est utilisable sur un ensemble de colonnes souvent employes dans des clauses conditionnelles WHERE. Dans ce cas, la Instruction CREATE INDEX nom_index ON nom_table(nom_colonne, ..., nom_colonneN) Les index peuvent tre supprims par l'intermdiaire de l'instruction DROP INDEX. Instruction DROP INDEX nom_index

Exemple :
CREATE INDEX idx_jouer1 ON jouer (jouer_code) CREATE INDEX idx_jouer2 01/07/2012 28/151

ITS Formation Base B.I. ON jouer (jouer_code,acteur_code)

3.2.5 Cration de vue


La commande CREATE VIEW permet de crer une vue, soit une table virtuelle produite par une requte de slection. Une vue contient donc un jeu d'enregistrements constitu par une requte SELECT prdfinie applique une ou plusieurs tables d'une base de donnes. A la diffrence d'une table, une vue ne consomme pas d'espace de stockage physique mais conserve des proprits semblables dans la mesure ou toutes les oprations de slection, d'insertion, de mise jour ou encore de suppression de lignes de donnes avec nanmoins quelques restrictions comme l'interdiction de modification d'une vue multitables. Utilisation Les vues peuvent servir recueillir des donnes rgulirement consultes et mises jour. Les vues sont souvent employes pour des raisons de scurit. A l'aide de cet outil, il devient possible de ne montrer qu'une partie des donnes d'une table et ainsi, cacher des informations confidentielles. . Instruction sous SQL Server CREATE VIEW [ nom_base . ] [ propritaire . ] nom_vue [ ( nom_colonne [ ,...n ] ) ] [ WITH { ENCRYPTION | SCHEMABINDING | VIEW_METADATA } [ ,...n ] ] AS instruction_selection... [ WITH CHECK OPTION ] La clause WITH ENCRYPTION indique que SQL Server crypte les colonnes des tables systmes contenant le texte de l'instruction CREATE VIEW. La clause WITH SCHEMABINDING implique que la requte de slection doit contenir des noms sous la forme propritaire.objet pour des tables, des vues ou des fonctions rfrences. La clause WITH VIEW_METADATA indique que SQL Server renvoie aux interfaces de programmation d'applications DBLIB, ODBC et OLE DB les informations de mtadonnes sur la vue, au lieu des tables de la base de donnes, lorsque des mtadonnes en mode lecture sont sollicites pour une requte qui fait rfrence la vue. La clause WITH CHECK OPTION garantit que l'ensemble des instructions de modification excutes sur la vue respectent le critre dfini dans la requte de slection. Instruction sous Oracle CREATE [ OR REPLACE ] [ FORCE | NOFORCE ] VIEW [ propritaire . ] nom_vue (nom_colonne,...,nom_colonneN) AS instruction_slection...; [WITH CHECK OPTION [CONSTRAINT constraint]]

01/07/2012

29/151

ITS Formation Base B.I. L'instruction OR REPLACE cre nouveau la vue si elle existe dj. Les clauses FORCE et NOFORCE indiquent respectivement que : o la vue est cre sans se soucier de l'existence des tables qu'elle rfrence ou des privilges adquats sur les tables, o la vue est cre seulement si les tables existent et si les permissions requises sont donnes. La clause WITH CHECK OPTION limite les insertions et les mises jour excutes par l'intermdiaire de la vue. La clause CONSTRAINT est un nom optionnel donn la contrainte WITH CHECK OPTION.

La modification d'une vue s'effectue au moyen de la commande ALTER. L'instruction OR REPLACE vu prcdemment spcifique Oracle peut tre galement utilise pour modifier la vue. Instruction ALTER VIEW [ nom_base . ] [ propritaire . ] nom_vue [ ( nom_colonne [ ,...n ] ) ] [ WITH { ENCRYPTION | SCHEMABINDING | VIEW_METADATA } [ ,...n ] ] AS instruction_selection... [ WITH CHECK OPTION ] Les vues peuvent tre supprimes par l'intermdiaire de la commande DROP. Instruction DROP VIEW nom_vue;

Exemple :
CREATE VIEW vue_personnel AS SELECT jouer_code, film_code, titre, genre, date FROM jouer WHERE genre='drame' Table cre avec 5 colonnes et alimente partir de la table Jouer filtre sur le genre Drame

3.3 Le langage de requte


Les requtes de slection correspondent des interrogations sur une base de donnes afin d'en extraire des informations. Le langage DQL (Data Query Language) propose cet effet une commande essentielle dans SQL, l'instruction SELECT. Les clauses principales de l'instruction SELECT permettent de dsigner une table (FROM), d'appliquer des critres de slection (WHERE), de regrouper des informations (GROUP BY) selon d'ventuelles conditions (HAVING), d'ordonner ces mmes informations (ORDER BY) dans un ordre descendant (DSC) ou ascendant (ASC) ou encore de joindre plusieurs tables (JOIN).

01/07/2012

30/151

ITS Formation Base B.I.

3.3.1 Slection de table


Les commandes SELECT et FROM sont utilises pour slectionner des tables dans une base de donnes. Instruction SELECT * | { [ALL | DISTINCT] nom_colonne,...,nom_colonneN } FROM nom_table WHERE Condition Pour slectionner tous les champs d'une table, il suffit d'utiliser une toile (*) la place des noms de champs. Il est possible de slectionner de un plusieurs champs en sparant les noms de champs ou de colonnes par une virgule. Les clauses ALL par dfaut et DISTINCT permettent respectivement de slectionner tous les enregistrements d'une colonne et de ne prendre en compte chaque enregistrement distinct, soit sans doublons. La clause FROM cible une ou plusieurs tables partir desquelles l'extraction des donnes doit tre opre. La clause WHERE pose une condition dans la slection des informations. L'expression conditionnelle peut tre construite l'aide de plusieurs prdicats constitus d'oprateurs de comparaisons (= | <> | != | > | > = | !> | < | <= | !<) et spares par des oprateurs boolens AND, OR ou NOT.La condition consiste qualifier des enregistrements en fonction de son rsultat boolen. o Si la valeur est True, l'information est slectionne. o Si la valeur est False, l'information n'est pas prise en compte. Les requtes de slection peuvent galement tre utilises comme sous-requtes dans une clause conditionnelle WHERE. Instruction SELECT tab1.nom_champ,..., tab1.nom_champN FROM nom_table AS tab1 WHERE tab1.nom_champ = (SELECT tab2.nom_champ FROM nom_table AS tab2 WHERE tab2.nom_champ = valeur) Les sous requtes permettent de slectionner un premier jeu d'enregistrements dans une table tierce qui servira de condition de slection dans la requte principale.

Exemple :
Select Titre from jouer Where Genre = 'Drame' Dogville Dogville Dogville Breaking the waves Breaking the waves 01/07/2012 31/151

ITS Formation Base B.I. Crash Crash Crash Chasseur blanc, coeur noir Select Distinct Titre from jouer Where Genre = 'Drame' Breaking the waves Chasseur blanc, coeur noir Crash Dogville

3.3.1.1 Les commandes d'alias


Les alias concourent amliorer la lisibilit d'une requte.

Il existe deux types d'alias : les alias de tables et les alias de champs. Les alias peuvent galement s'appliquer une fonction d'agrgation retournant des donnes sous forme de colonnes. Instruction SELECT Alias_table.nom_champ AS Alias_champ FROM nom_table AS Alias_table La clause AS affectant un alias une table ou une colonne, peut tre remplac par un simple espace blanc.

Exemple :
Select T1.Ville, T1.Cinema_nom Cinema, T2.Jour from cinema T1, projection T2 where T1.cinema_code=T2.cinema_code and T1.cinema_type='C0' Ville Marly-le-Roi Marly-le-Roi Epinay-sur-Seine Epinay-sur-Seine Marly-le-Roi Marly-le-Roi Marly-le-Roi Marly-le-Roi Cinema Le Fontenelle Le Fontenelle Espace Cin Espace Cin Le Fontenelle Le Fontenelle Le Fontenelle Le Fontenelle Jour 1985-05-09 00:00:00.000 1990-12-08 00:00:00.000 1994-04-08 00:00:00.000 1994-11-06 00:00:00.000 1996-12-02 00:00:00.000 2002-05-01 00:00:00.000 2002-05-02 00:00:00.000 2002-05-03 00:00:00.000

3.3.2 Les commandes additionnelles


3.3.2.1 La commande GROUP BY

01/07/2012

32/151

ITS Formation Base B.I. La commande GROUP BY spcifie des groupes dans lesquels les lignes de sortie doivent tre places et calcule une valeur de rsum pour chacun des groupes si des fonctions d'agrgation sont employes avec la commande SELECT. Instruction SELECT nom_champ, Fonction_Agregation FROM nom_table GROUP BY nom_champ2 Le critre de la clause GROUP BY peut tre soit le nom, soit le numro d'une des colonnes slectionnes par la requte.

Exemple :
ALTER TABLE projection ADD prix DECIMAL(7, 2) GO Select cinema_code , sum(prix) prix from projection WHERE Jour <= '20000101' GROUP BY cinema_code Cinema_code 1 2 3 4 Prix NULL NULL NULL NULL

3.3.2.2 La commande ORDER BY


La commande ORDER BY permet de classer alphabtiquement les donnes retournes par la requte de slection. Instruction SELECT nom_champ, nom_champ2,..., nom_champN FROM nom_table ORDER BY nom_champ [ ASC | DSC { nom_champ2 ASC | DSC } ] Le critre de la clause ORDER BY peut tre soit le nom, soit le numro d'une des colonnes slectionnes par la requte. La clause ASC par dfaut ou DSC provoque respectivement un tri dans un ordre ascendant (0 ... 9 et A ... Z) ou descendant (Z ... A et 9 ... 0).

Exemple :
Select distinct acteur_nom, acteur_prenom from jouer WHERE Genre ='Drame' 01/07/2012 33/151

ITS Formation Base B.I. ORDER BY acteur_nom Arquette Bettany Eastwood Hunter Kidman Skarsgard Spader Watson Rosanna Paul Clint Holly Nicole Stellan James Emily

3.3.2.3 Les commandes de jointures de table


Les requtes de slection demeurent les plus intressantes, lorsqu'elles s'appliquent plusieurs tables. Mais pour cela, il est ncessaire d'excuter des commandes de jointure afin de pouvoir extraire des donnes de ces tables. Il existe de nombreuses manires de joindre des tables dpendant souvent de l'implmentation utilise. Nanmoins, la plupart des commandes de jointures accomplissent leurs oprations sur des colonnes communes aux diffrentes tables. Ainsi, les jointures sont possibles uniquement sur des tables possdant des colonnes correspondantes comme une cl trangre se relierait une cl primaire. Une jointure d'galit symbolise par EQUIJOIN ou INNER JOIN cre une relation de correspondance entre des tables. Instruction SELECT T1.Nom_champ1, T2.Nom_champ2, T3.Nom_champ3 FROM Nom_table1 T1, Nom_table2 T2, Nom_table3 T3 WHERE T1.Nom_Champ_joinA = T2.Nom_Champ_joinA, AND T1.Nom_Champ_joinB = T3.Nom_Champ_joinB

Exemple :
Select T1.Ville, T1.Cinema_nom Cinema, T2.Jour from cinema T1, projection T2 where T1.cinema_code=T2.cinema_code and T1.cinema_type='C0' Ville Marly-le-Roi Marly-le-Roi Epinay-sur-Seine Epinay-sur-Seine Marly-le-Roi Marly-le-Roi Marly-le-Roi Marly-le-Roi Cinema Le Fontenelle Le Fontenelle Espace Cin Espace Cin Le Fontenelle Le Fontenelle Le Fontenelle Le Fontenelle Jour 1985-05-09 00:00:00.000 1990-12-08 00:00:00.000 1994-04-08 00:00:00.000 1994-11-06 00:00:00.000 1996-12-02 00:00:00.000 2002-05-01 00:00:00.000 2002-05-02 00:00:00.000 2002-05-03 00:00:00.000

01/07/2012

34/151

ITS Formation Base B.I. Les jointures externes OUTER JOIN sont employes pour retourner tous les enregistrements, y compris ceux ne possdant aucune correspondance. Ces jointures peuvent s'appliquer gauche (LEFT), droite (RIGHT) ou sur les deux (FULL). Instruction ( gauche) SELECT T1.Nom_champ1, T2.Nom_champ2 FROM Nom_table1 T1, Nom_table2 T2 WHERE T1.Nom_Champ_joinA(+) = T2.Nom_Champ_joinA SELECT T1.Nom_champ1, T2.Nom_champ2 FROM Nom_table1 T1 LEFT OUTER JOIN Nom_table2 T2 ON T1.Nom_Champ_joinA = T2.Nom_Champ_joinA

Exemple :
Select T1.Ville, T1.Cinema_nom Cinema, T2.Jour from cinema T1 LEFT OUTER JOIN projection T2 ON T1.cinema_code=T2.cinema_code Where T1.cinema_type='C0' Ville Marly-le-Roi Marly-le-Roi Epinay-sur-Seine Epinay-sur-Seine Marly-le-Roi Marly-le-Roi Marly-le-Roi Marly-le-Roi Toulouse Cinema Le Fontenelle Le Fontenelle Espace Cin Espace Cin Le Fontenelle Le Fontenelle Le Fontenelle Le Fontenelle Le toulouse Jour 1985-05-09 00:00:00.000 1990-12-08 00:00:00.000 1994-04-08 00:00:00.000 1994-11-06 00:00:00.000 1996-12-02 00:00:00.000 2002-05-01 00:00:00.000 2002-05-02 00:00:00.000 2002-05-03 00:00:00.000 NULL

3.4 Le langage de manipulation


Les commandes DML (Data Manipulate Language) permettent de manipuler les informations d'une base de donnes. Il existe trois commandes destines mettre jour (UPDATE), insrer (INSERT) ou supprimer (DELETE) des donnes.

3.4.1 Insertion
La commande INSERT INTO permet d'ajouter des donnes dans une table. Instruction INSERT INTO Nom_Table (Champ_1, Champ_2, ..., Champ_N) VALUES (Valeur_1, Valeur_2, ..., Valeur_N)

01/07/2012

35/151

ITS Formation Base B.I. L'ajout de donnes dans une table demande videmment, la parfaite connaissance de la structure de la table, puisqu'il est ncessaire de fournir le nom des champs dans le bon ordre et des informations correspondant leur type de donnes respectifs. Les valeurs de colonnes doivent tre encadres par des guillemets simples (') s'il s'agt de chane de caractres, les nombres ne ncessitant pas de guillemets. VALUES ('Chane de caractres', 100) Il est galement possible d'insrer des donnes provenant d'une autre table par l'intermdiaire d'une commande SELECT. Une clause WHERE peut tre ajoute avec des conditions pouvant comporter des sous-requtes. Instruction INSERT INTO Nom_Table SELECT nom_champ, ..., Nom_champN FROM nom_table WHERE Condition L'insertion de valeur nulle peut se faire par l'intermdiaire du mot-cl NULL ou d'une chane vide ''.

Exemple :
insert into JOUER values(1,5,'Dogville','Drame','01/01/2002',01,'Kidman', 'Nicole','Grace'); insert into JOUER values(2,5,'Dogville','Drame','01/01/2002',02,'Bettany','Paul',' Tom Edison') ; Lorsque la liste des valeurs est complte, on peut omettre les noms de colonnes

3.4.2 Mise jour


La commande UPDATE permet de mettre jour des donnes existantes au sein d'une table. Instruction UPDATE Nom_Table SET (Col_1, Col_2, ..., Col_N) = (Nouv_Val_1, Nouv_Val_2, ..., Nouv_Val_N) [WHERE Condition] La commande UPDATE peut mettre jour les donnes de manires diffrentes : La valeur d'une seule colonne en ne citant qu'une colonne associe sa nouvelle valeur. Plusieurs colonnes simultanment en citant plusieurs colonnes avec leur valeur respective. Par l'intermdiaire d'une clause conditionnelle affectant quelques lignes de donnes, les valeurs de plusieurs enregistrements en mme temps. Une opration de mise jour peut tre effectue sur un jeu d'enregistrements en utilisant une sous requte de slection.

01/07/2012

36/151

ITS Formation Base B.I. Instruction UPDATE nom_table1 AS tab1 SET tab1.nom_champ = valeur WHERE tab1.nom_champ IN (SELECT tab2.nom_champ FROM nom_table2 AS tab2 WHERE Condition)

Exemple :
UPDATE JOUER SET acteur_nom = 'Cruise' WHERE Jouer_code=1 1 enregistrement mis jour

3.4.3 Suppression
La commande DELETE FROM permet de supprimer des enregistrements au sein d'une table. Instruction DELETE FROM Nom_Table WHERE Condition La clause conditionnelle WHERE dtermine les enregistrements slectionner pour effectuer leur suppression complte de la table. Une sous requte peut tre utilise pour slectionner des enregistrements supprimer. Instruction DELETE FROM Nom_Table AS tab1 WHERE tab1.nom_champ = (SELECT tab2.nom_champ FROM nom_table AS tab2 WHERE Condition)

Exemple :
DELETE from JOUER WHERE Genre='drame' 9 enregistrements mis jour

3.5 Le langage de contrle (Commandes DCL) => Cf Annexe

01/07/2012

37/151

ITS Formation Base B.I.

3.6 Optimisation des requtes


3.6.1 Examen des index
Lanalyse des index naffecte pas le code ou les donnes, cest donc une bonne piste de dpart. Il faut mettre en place des index avec des bons taux de slectivit et minimiser le nombre dindex sur les tables frquemment mises jour. Toutefois, toute fonction de manipulation ou de calcul dsactive systmatiquement lindex.

Exemple :
substr(name, 1,2)=DU amount * 12>20000 amount + 0 = 1200 trunc(date) = 01-JAN-2000 name||=DUPONT name not = DUPONT De plus un index ne peut tre utilis avec les oprateurs suivants : != IS NULL IS NOT NULL NOT IN avec une liste LIKE avec une colonne de type date ou numrique LIKE avec une chane de comparaison dbutant par un mta caractre (% par exemple). NOT IN avec une sous interrogation peut utiliser un index, mais on utilisera de prfrence NOT EXISTS surtout si la colonne slectionne peut contenir des valeurs nulles. En consquence, il faut essayer dappliquer les fonctions aux constantes ou aux colonnes non indexes. Un index compos de plusieurs colonnes sera utilis si les premires colonnes le composant sont renseignes dans la clause WHERE.

3.6.2 Ecriture des requtes


La performance des requtes repose principalement sur les chemins daccs des tables. La liste suivante donne les poids relatifs des chemins daccs du plus faible au plus lev : Accs par rowid. Accs par cl unique ou primaire (mono-colonne) Accs par cl unique ou primaire (multi-colonne) Accs par index Accs par index entre borne de valeurs MAX ou MIN sur colonnes indexes ORDER BY sur colonnes indexes Full table scan

01/07/2012

38/151

ITS Formation Base B.I. Une table sera accde beaucoup plus rapidement par rowid que par un full scan. Ces notions sont importantes puisquon les retrouve dans les plans dexcution des requtes que lon est amen optimiser. Avant de commencer analyser veiller ce que lcriture des ordres SQL se rapproche le plus possible des principes suivants

3.6.2.1 Ordre SELECT


Prfixer toutes les colonnes avec lalias de la table. Pour les tests dexistence ne slectionner que la cl primaire afin de naccder qu la table dindex.

3.6.2.2 Clause FROM


Utiliser des alias pour les tables (toujours les mmes). Toujours placer en dernier les tables ramenant le moins de ligne dans le contexte de la requte.

3.6.2.3 Clause WHERE


Ecrire toutes les jointures en premier. Spcifier toutes les colonnes de la cl, dans le cas o la cl est multi-colonne. Placer sur les dernires lignes les conditions les plus restrictives (car le parse des requtes commence par la fin de celles ci). Utiliser ROWNUM ou COUNT(*) pour optimiser les tests dexistence. Utiliser les constantes en priorit sur les conditions ayant un poids de chemin daccs faible. Remarques concernant les oprateurs name=DUPONT est prfrable name like DUPONT name =DUPONT or name=DURAND est prfrable name in (DUPONT, DURAND) amount >=100 and amount <=1000 est prfrable amount between 100 and 1000 amount >= 1000 est prfrable NOT amount <1000 select name from emp where job=CLERK or dept = 10 sera toujours traduit par select name from emp where job=CLERK union all select name from emp where dept=10

3.6.2.4 Clause FOR UPDATE


Ne verrouiller quun faible nombre de lignes.

01/07/2012

39/151

ITS Formation Base B.I.

3.6.2.5 Clause GROUP BY


Prciser au maximum les conditions dans la clause WHERE.

3.6.2.6 Clause ORDER BY


Nutiliser cette clause que si le tri est ncessaire. Utiliser le nom des colonnes plutt que le nombre indiquant leur position dans la clause SELECT.

3.6.2.7 Sous-select
Eviter au maximum leur utilisation. Prfrer les jointures et ventuellement la clause EXISTS.

3.6.2.8 Ordre INSERT


Toujours spcifier la liste des colonnes insrer. Prciser explicitement NULL lors de linsertion pour les colonnes non renseignes.

3.6.2.9 Ordre UPDATE


Utiliser quand cest possible le rowid ou la rfrence du curseur pour les mises jour.

3.6.2.10

Ordre DELETE

Utiliser quand cest possible le rowid ou la rfrence du curseur pour les mises jour. Utiliser lordre TRUNCATE pour supprimer tout le contenu dune table (cet ordre provoque un commit implicite).

3.7 Initiation aux procdures stockes


Les procdures stockes contiennent du code SQL compil, permettant d'excuter des requtes lourdes ou des instructions rgulirement utilises sur des bases de donnes. Les procdures stockes sont conserves dans la base de donnes dans une forme excutable et sont capables d'appeler d'autres procdures ou fonctions comme d'tre appeles par d'autres programmes. La structure modulaire de telles procdures permet de concevoir des petites units programmatiques indpendantes, donc plus rapides charger en mmoire et excuter dans une base de donnes. A l'instar des procdures des langages de programmation, outre qu'elles soient composes de diverses instructions, les procdures stockes sont capables de recevoir des paramtres d'entre et de retourner des valeurs en sortie. La cration des procdures stockes s'effectue par l'intermdiaire de l'instruction CREATE PROCEDURE. Instruction SQL Server CREATE PROC [ EDURE ] nom_procedure [ ; nombre ] [ { @parametre type_donnee } [ VARYING ] [ = valeur_defaut ] [ OUTPUT ] ] [ ,...n ]

01/07/2012

40/151

ITS Formation Base B.I. [ WITH { RECOMPILE | ENCRYPTION | RECOMPILE , ENCRYPTION } ] [ FOR REPLICATION ] AS instructions_SQL... GO La clause VARYING, applicable aux paramtres de type CURSOR, indique le jeu de rsultats pris en charge comme La clause OUTPUT permet de retourner la valeur aux instructions appelantes. L'instruction WITH RECOMPILE spcifie que la procdure est recompile l'excution sans utiliser le cache pour le plan de la procdure. L'option RECOMPILE est gnralement utilise pour des valeurs temporaires ou atypiques sans remplacer le plan d'excution plac en mmoire cache. La clause WITH ENCRYPTION indique un cryptage de l'entre de la table syscomments contenant le texte de l'instruction CREATE PROCEDURE. L'argument ENCRYPTION permet d'viter la publication de la procdure dans le cadre de la rplication SQL Server. La clause FOR REPLICATION indique que la procdure stocke doit tre excute lors de la modification de la table concerne par un processus de rplication. La clause AS indique les actions entreprises par la procdure. L'instruction GO signale la fin d'un jeu d'instructions. Instruction Oracle CREATE [OR REPLACE] PROCEDURE [schema .] procedure [ ( argument [ IN | OUT | IN OUT ] [ NOCOPY ] type_donnee [, argumentN [ IN | OUT | IN OUT ] [ NOCOPY ] type_donnee] ) ] [ AUTHID { CURRENT_USER | DEFINER }] { IS | AS } { instruction_pl/sql | instruction_langage }; La commande OR REPLACE recre la procdure stocke si elle existe dj. La clause OUT permet de retourner la valeur aux instructions appelantes. La clause IN est utilise pour spcifier une valeur pour l'argument en appelant la procdure. La clause AS (dprci) ou IS indique les actions entreprises par la procdure. Les procdures stockes peuvent tre appeles au moyen de l'instruction EXECUTE partir d'une autre procdure ou d'un lot d'instructions. SQL Server utilise une abrviation EXEC. Instruction EXECUTE Procedure @Parametre = Valeur, ..., @ParametreN = ValeurN

01/07/2012

41/151

ITS Formation Base B.I.

4 EXERCICE SUR LE LANGAGE SQL


1/ Cration dune table Ralisateur ayant 3 colonnes Ralisateur Code, Entier, Cl primaire Ralisateur Nom, Varchar 64, Non Null Date Naissance, Date, Null 2/ Modification de cette table Ajout dune colonne Nationalite, Varchar 64, Null Modification colonne Ralisateur Nom Varchar 64 -> Varchar 32 3/ Insertion de 2 enregistrements dans cette table 01, TARANTINO, NULL, Americain 02, BESSON, 10/03/1959, Franais 4/ Mettre jour lenregistrement BESSON en modifiant sa date de naissance => 18/03/1959 5/ Crer une vue Cinema_Toulouse partir de la table Cinema en filtrant sur les cinmas de Toulouse avec uniquement les 2 colonnes Cinema nom et Cinema Groupe 6/ Nom des acteurs ayant Paul comme prnom ? 7/ Nom et prnom de tous les acteurs sur un seul champ avec un espace entre le Nom et le Prnom (Nom Prnom) et nommer ce champs Identifiant ? 8/ Quels sont les films dramatiques dont la sortie a eu lieu aprs le 1er Janvier 1998 9/ Quels sont les acteurs qui ont jou dans un film projet au cinma Le Fontenelle ? Les trier par ordre descendant 10/ Quel est le nombre projection au cinema Le Fontenelle de films dans lesquels jouer Bruce Willis ? Rponses 1/ create table REALISATEUR ( REALISATEUR_CODE integer not null, REALISATEUR_NOM varchar(64) not null, DATE datetime null, constraint PK_REALISATEUR primary key (REALISATEUR_CODE) ) Go 2/ ALTER TABLE realisateur ADD NATIONALITE VARCHAR(64) NULL GO ALTER TABLE realisateur ALTER COLUMN REALISATEUR_NOM VARCHAR(32) NULL GO 3/ insert into REALISATEUR values(01,'TARANTINO',NULL, 'Americain'); insert into REALISATEUR values(02,'BESSON','10/03/1959', 'Francais'); 4/ UPDATE REALISATEUR SET DATE = '18/03/1959'

01/07/2012

42/151

ITS Formation Base B.I. WHERE REALISATEUR_NOM='BESSON' 5/ CREATE VIEW CINEMA_TOULOUSE AS SELECT cinema_nom, cinema_groupe FROM cinema WHERE ville='toulouse' 6/ Select acteur_nom from jouer where acteur_prenom='Paul' 7/ Select acteur_nom + ' ' + acteur_prenom identifiant from jouer 8/ Select Titre from jouer where date >'01/01/1998' and genre='drame' 9/ Select distinct T1.Acteur_nom, T1.Acteur_prenom From Jouer T1, Projection T2, Cinema T3 Where T1.Film_code = T2.Film_code and T2.cinema_code = T3.cinema_code and T3.cinema_nom = 'Le fontenelle' order by T1.Acteur_nom desc 10/ Select count(T1.Acteur_nom) From Jouer T1, Projection T2, Cinema T3 Where T1.Film_code = T2.Film_code and T2.cinema_code = T3.cinema_code and T3.cinema_nom = 'Le fontenelle' and T1.acteur_nom = 'Skarsgard' group by T1.Acteur_nom

01/07/2012

43/151

ITS Formation Base B.I.

5 ANNEXES SQL
5.1 Les commandes DCL
Les commandes DCL (Data Control Language) permettent la gestion des droits d'accs aux objets d'une base de donnes. Un utilisateur de base de donnes doit possder un compte de scurit afin d'accder aux tables ou tout autre lment. Pour cela, il faut non seulement que l'utilisateur soit cr mais galement que des privilges lui soient accords. Des permissions peuvent tre attribues explicitement un utilisateur ou implicitement si ce dernier appartient un rle. Un rle est un objet SQL spcifique auquel est attribu un ou plusieurs privilges. Ce rle peut tre affect des utilisateurs qui possdent alors ses autorisations. En outre, les commandes DCL servent modifier ou supprimer des privilges, voire mme des utilisateurs ou des rles.

5.1.1 La commande CREATE USER


La commande CREATE USER permet la cration d'un utilisateur dans la base de donnes. Syntaxe sous Oracle CREATE USER nom_utilisateur IDENTIFIED { BY mot_passe | EXTERNALLY | GLOBALLY AS 'nom_externe' } [ { DEFAULT TABLESPACE espace_table | TEMPORARY TABLESPACE espace_table | QUOTA { entier [ K | M ] | UNLIMITED } ON espace_table [QUOTA { entier [ K | M ] | UNLIMITED } ON espace_tableN] | PROFILE profile | PASSWORD EXPIRE | ACCOUNT { LOCK | UNLOCK } } ] [ N_fois... ]; La clause IDENTIFIED indique de quelle manire Oracle authentifie un utilisateur. La clause BY mot_passe indique par quel mot de passe un utilisateur est autoris se connecter la base de donnes.

01/07/2012

44/151

ITS Formation Base B.I. La clause USING package permet de crer un rle d'application, lequel est un rle qui peut tre activ seulemet par les applications en utilisant un package autoris. La clause EXTERNALLY indique la cration d'un utilisateur externe qui doit tre authentifi par un service externe avant l'activation du rle. La clause GLOBALLY indique la cration d'un utilisateur global qui doit tre autoris utiliser le rle par le service de rpertoire d'entreprise avant que le rle ne soit activ. Un rle sous Oracle s'active en utilisant l'instruction SET ROLE. La clause DEFAULT TABLESPACE spcifie l'espace de table par dfaut pour les objets crs par l'utilisateur. Si la clause est omise, les objets vont dans un espace de table SYSTEM. La clause TEMPORARY TABLESPACE spcifie l'espace de table pour les sgments temporaires d'utilisateur. Si la clause est omise, l'espace de table SYSTEM accueille les sgments. La clause QUOTA permet l'utilisateur d'allouer jusqu' un certain espace en nombre d'octets dans l'espace de table. K signifie kilo-octets, M, mga-octets. L'option UNLIMITED fournit l'utilisateur un espace illimit. La clause PROFILE indique le profile affecter l'utilisateur. La clause PASSWORD EXPIRE indique si le mot de passe de l'utilisateur doit expirer. La clause ACCOUNT vrouille ou dvrouille le compte d'utilisateur. Le processus de cration d'un utilisateur dans une base de donnes SQL Server diffre fortement puisqu'il est ncessaire de faire appel une procdure stocke. EXEC sp_adduser [ @loginame = ] 'login' [, [ @name_in_db = ] 'nom_utilisateur' ] [, [ @grpname = ] 'groupe' ] La suppression d'un utilisateur s'effectue par l'intermdiaire d'une autre procdure stocke. sp_dropuser [ @name_in_db = ] 'nom_utilisateur' Exemple CREATE USER "webmaster@site.com" IDENTIFIED EXTERNALLY; CREATE USER utilisateur_invite IDENTIFIED BY site_produit DEFAULT TABLESPACE espace_invite QUOTA 5M ON demonstration TEMPORARY TABLESPACE temp_demo QUOTA 1M ON system PROFILE util_inv PASSWORD EXPIRE; EXEC sp_adduser 'jj_annaud', 'raphael', 'invite'

01/07/2012

45/151

ITS Formation Base B.I.

5.1.2 La commande ALTER USER


La commande ALTER USER permet de modifier les paramtres de connexion une base de donnes pour un utilisateur. La modification d'un utilisateur porte sur plusieurs aspects de son compte, tels que : l'espace de table allou pour les objets utilisateurs, l'affectation de rles refltant les privilges d'accs, le mode d'authentification permettant la connexion la base de donnes, l'assignation d'un profile, etc.. Syntaxe sous Oracle ALTER USER { nom_utilisateur { IDENTIFIED { BY mot_passe | EXTERNALLY | GLOBALLY AS 'nom_externe' } | DEFAULT TABLESPACE espace_table | TEMPORARY TABLESPACE espace_table | QUOTA { entier [ K | M ] | UNLIMITED } ON espace_table [QUOTA { entierN [ K | M ] | UNLIMITED } ON espace_tableN] | PROFILE profile | DEFAULT ROLE { nom_rle [, nom_rleN] | ALL [EXCEPT nom_rle [, nom_rleN]] | NONE } | PASSWORD EXPIRE | ACCOUNT { LOCK | UNLOCK } } [ N_fois... ] | utilisateur [, utilisateurN] { { GRANT | REVOKE } CONNECT THROUGH proxy [ WITH { ROLE { nom_rle [, nom_rleN] | ALL EXCEPT nom_rle [, nom_rleN] } | NO ROLES ] [ AUTHENTICATED USING { PASSWORD | DISTINGUISHED NAME | CERTIFICATE [TYPE 'type'] [VERSION 'version'] } ] } }; 01/07/2012 46/151

ITS Formation Base B.I. La clause IDENTIFIED indique de quelle manire Oracle authentifie un utilisateur. La clause BY mot_passe indique par quel mot de passe un utilisateur est autoris se connecter la base de donnes. La clause USING package permet de crer un rle d'application, lequel est un rle qui peut tre activ seulemet par les applications en utilisant un package autoris. La clause EXTERNALLY indique la cration d'un utilisateur externe qui doit tre authentifi par un service externe avant l'activation du rle. La clause GLOBALLY indique la cration d'un utilisateur global qui doit tre autoris utiliser le rle par le service de rpertoire d'entreprise avant que le rle ne soit activ. Un rle sous Oracle s'active en utilisant l'instruction SET ROLE. La clause DEFAULT TABLESPACE spcifie l'espace de table par dfaut pour les objets crs par l'utilisateur. Si la clause est omise, les objets vont dans un espace de table SYSTEM. La clause TEMPORARY TABLESPACE spcifie l'espace de table pour les sgments temporaires d'utilisateur. Si la clause est omise, l'espace de table SYSTEM accueille les sgments. La clause QUOTA permet l'utilisateur d'allouer jusqu' un certain espace en nombre d'octets dans l'espace de table. K signifie kilo-octets, M, mga-octets. L'option UNLIMITED fournit l'utilisateur un espace illimit. La clause PROFILE indique le profile affecter l'utilisateur. La clause PASSWORD EXPIRE indique si le mot de passe de l'utilisateur doit expirer. La clause ACCOUNT vrouille ou dvrouille le compte d'utilisateur. La clause DEFAULT ROLE spcifie des rles par dfaut l'utilisateur. Les clauses GRANT et REVOKE donne respectivement l'autorisation et l'interdiction de la connection. La clause CONNECT THROUGH identifie le proxy de connexion Oracle La clause WITH ROLE autorise le proxy se connecter comme l'utilisateur spcifi et activer seulement les rles spcifis. La clause WITH ROLE ALL EXCEPT autorise la proxy se connecter comme l'utilisateur spcifi et activer tous les rles l'exception de ceux spcifis. La clause WITH NO ROLES autorise le proxy se connecter comme l'utilisateur spcifi, mais interdit le proxy d'activer n'importe lequel des rles de cet utilisateur aprs la connexion.

01/07/2012

47/151

ITS Formation Base B.I. La clause AUTHENTICATED USING permet une authentification par proxy pour tre manipul par une autre source que le proxy. Cette clause est adquat seulement pour la clause GRANT CONNECT THROUGH. La clause PASSWORD entrane la prsentation par le proxy du mot de passe de base de donnes de l'utilisateur pour l'authentification. La clause DISTINGUISHED NAME autorise le proxy agir comme l'utilisateur identifi globalement indiqu par le nom distingu. La clause CERTIFICATE autorise le proxy agir comme l'utilisateur identifi globalement dont le nom distingu est contenu dans le certificat possdant un type et une version prciss. Exemple ALTER USER jean_francois IDENTIFIED BY commercial DEFAULT TABLESPACE ser_com; ALTER USER poste_compta PROFILE pr_cpt; ALTER USER jc_merite GRANT CONNECT THROUGH cpt_2 WITH ROLE utilisateur_restreint;

5.1.3 La commande CREATE ROLE


La commande CREATE ROLE permet de crer un rle auquel sera affect par la commande GRANT des privilges. Syntaxe CREATE ROLE nom_rle [ NOT IDENTIFIED | IDENTIFIED { BY mot_passe | USING [schma .] package | EXTERNALLY | GLOBALLY } ]; La clause NOT IDENTIFIED spcifie que le rle est autoris dans la base de donnes et qu'aucun mot de passe n'est ncessaire. sous Oracle

01/07/2012

48/151

ITS Formation Base B.I. La clause IDENTIFIED indique qu'un utilisateur doit tre autoris par la mthode spcifie avant que le rle ne soit activ par l'instruction SET ROLE. La clause BY mot_passe indique qu'un utilisateur est autoris dans la base de donnes condition qu'un mot de passe correct soit fourni afin d'activer le rle. La clause USING package permet de crer un rle d'application, lequel est un rle qui peut tre activ seulemet par les applications en utilisant un package autoris. La clause EXTERNALLY indique la cration d'un utilisateur externe qui doit tre autoris par un service externe avant l'activation du rle. La clause GLOBALLY indique la cration d'un utilisateur global qui doit tre autoris utiliser le rle par le service de rpertoire d'entreprise avant que le rle ne soit activ. Un rle sous Oracle s'active en utilisant l'instruction SET ROLE. SET ROLE { nom_rle [IDENTIFIED BY mot_passe] [, nom_rleN [IDENTIFIED BY mot_passe]] | ALL [EXCEPT nom_rle [, nom_rle]] | NONE }; La modification d'un rle est accomplie par ALTER ROLE et la suppression par DROP ROLE. ALTER ROLE nom_rle { NOT IDENTIFIED | { BY mot_passe | USING [schma .] package | EXTERNALLY | GLOBALLY } }; DROP ROLE nom_rle; L'attribution (GRANT) ou la rvocation (REVOKE) d'un, plusieurs (ROLE) ou tous les rles l'exception de certain (ALL EXCEPT) un utilisateur peut tre faite par l'entremise de la commande ALTER USER. ALTER USER nom_utilisateur [, nom_utilisateurN ] { { GRANT | REVOKE } CONNECT THROUGH proxy WITH { { ROLE { nom_rle [, nom_rleN] | ALL EXCEPT nom_rle [, nom_rleN] 01/07/2012 49/151

ITS Formation Base B.I. } | NO ROLES }; La commande ALTER USER permet de mme, d'attribuer un plusieurs rles par dfaut un seul utilisateur. ALTER USER nom_utilisateur DEFAULT ROLE { { nom_rle [, nom_rleN] } | { ALL [EXCEPT nom_rle [, nom_rleN]] } | NONE }; Syntaxe sous SQL Server

Le processus de cration d'un rle sous SQL Server diffre puisqu'il est ncessaire de passer par une procdure stocke du systme. EXEC sp_addrole [ @rolename = ] 'nom_rle' [ , [ @ownername = ] 'propritaire' ] L'ajout d'un membre un rle, s'effectue par l'intermdiaire d'une autre procdure stocke. EXEC sp_addrolemember [ @rolename = ] 'nom_rle' , [ @membername = ] 'compte_scurit' La suppression d'un membre d'un rle s'accomplit par sp_droprolemember. sp_droprolemember [ @rolename = ] 'nom_rle' , [ @membername = ] 'compte_scurit' La suppression du rle s'effectue par sp_droprole. sp_droprole [ @rolename = ] 'nom_rle' Exemple CREATE ROLE role_utilisateur; CREATE ROLE role_developpeur IDENTIFIED GLOBALLY; EXEC sp_addrole 'role_developpeur', 'dbo'

5.1.4 La commande GRANT


La commande GRANT permet d'attribuer un ou plusieurs privilges un utilisateur ou un rle sur des instructions ou divers objets tels que des tables, des vues, des colonnes ou encore des procdures stockes. Syntaxe sous SQL Server

01/07/2012

50/151

ITS Formation Base B.I. GRANT { { { ALL | instruction [ ,...n ] } TO compte_scurit [ ,...n ] } | { { ALL [ PRIVILEGES ] | permission [ ,...n ] } { [ ( nom_colonne [ ,...n ] ) ] ON { nom_table | nom_vue } | ON { nom_table | nom_vue } [ ( nom_colonne [ ,...n ] ) ] | ON { procdure_stocke | procdure_tendue } | ON { fonction_utilisateur } } TO compte_scurit [ ,...n ] [ WITH GRANT OPTION ] [ AS { groupe | rle } ] } } Les clauses TO et FROM indiquent la liste des comptes de scurit. La cause ALL indique l'attribution de toutes les autorisations possibles pour le compte de scurit indiqu. La clause PRIVILEGES est facultative. En fait elle n'est inclus que pour se conformer aux spcifications SQL-92. La clause ON indique l'application des autorisations un objet indiqu. La commande WITH GRANT OPTION indique la possibilit pour le compte de scurit de pouvoir lui-mme accorder des autorisations d'autres utilisateurs. La clause AS {groupe | rle} indique le nom facultatif d'un groupe ou d'un rle pour lequel les autorisations seront accordes. Syntaxe sous Oracle GRANT { { { systme_privilge | rle | ALL PRIVILEGES } [, { systme_privilgeN | rle | ALL PRIVILEGES }] TO { { utilisateur | rle | PUBLIC } [, { utilisateurN | rle | PUBLIC }] } [IDENTIFIED BY mot_passe] [WITH ADMIN OPTION] } | { { objet_privilge | ALL [PRIVILEGES] } 01/07/2012 51/151

ITS Formation Base B.I. [( nom_colonne [, nom_colonne]... )] [, { objet_privilgeN | ALL [PRIVILEGES] } [( nom_colonne [, nom_colonneN]... )]] ON { { schema . objet } | { { DIRECTORY nom_rpertoire } | { JAVA { SOURCE | RESOURCE } [schma .] objet } } } TO { { utilisateur | rle | PUBLIC } [, { utilisateurN | rle | PUBLIC }] } [WITH GRANT OPTION] [WITH HIERARCHY OPTION] } }; La clause IDENTIFIED BY permet d'identifier un utilisateur existant par un mot de passe ou pour crer un utilisateur inexistant. La clause WITH ADMIN OPTION fournit un utilisateur la possibilit d'administrer un rle. La cause ALL PRIVILEGES indique l'attribution de toutes les autorisations appliques au compte de scurit indiqu. L'option PUBLIC indique l'attribution de privilges ou de rles tous les utilisateurs. La clause ON indique l'application des autorisations sur un objet indiqu. La clause DIRECTORY indique l'objet DIRECTORY sur lequel les privilges doivent tre accords. La clause JAVA { SOURCE | RESOURCE } permet de spcifier une source Java ou l'objet de schma de ressource sur lequel les privilges doivent tre accords. La clause FROM indique la liste des comptes de scurit. La clause TO indique la liste des comptes de scurit. La commande WITH GRANT OPTION indique la possibilit pour le compte de scurit de pouvoir lui-mme accorder des privilges d'autres utilisateurs. La clause WITH HIERARCHY OPTION indique la permission d'tendre les privilges d'objets spcifis tous les sous-objets. Exemple GRANT CREATE PROCEDURE, CREATE ANY PROCEDURE, 01/07/2012 52/151

ITS Formation Base B.I. ALTER ANY PROCEDURE, DROP ANY PROCEDURE, EXECUTE ANY PROCEDURE TO developpeur WITH ADMIN OPTION; GRANT INSERT, UPDATE, DELETE ON tbl_produit TO 'jk_fort', 'f_troyes' GO

5.1.5 La commande REVOKE


La commande REVOKE permet de rvoquer des privilges qui ont t attribus un utilisateur ou un rle sur des instructions ou divers objets tels que des tables, des vues, des colonnes ou encore des procdures stockes. Syntaxe sous SQL Server REVOKE { { { ALL | instruction [ ,...n ] } FROM compte_scurit [ ,...n ] } | { [ GRANT OPTION FOR ] { ALL [ PRIVILEGES ] | permission [ ,...n ] } { [ ( nom_colonne [ ,...n ] ) ] ON { nom_table | nom_vue } | ON { nom_table | nom_vue } [ ( nom_colonne [ ,...n ] ) ] | ON { procdure_stocke | procdure_tendue } | ON { fonction_utilisateur } } { TO | FROM } compte_scurit [ ,...n ] [ CASCADE ] [ AS { groupe | rle } ] } } La commande GRANT OPTION FOR indique la suppression des autorisations WITH GRANT OPTION provoquant la conservation des autorisations un utilisateur tout en ne pouvant plus en accorder d'autres. La cause ALL indique la suppression de toutes les autorisations appliques au compte de scurit indiqu. La clause PRIVILEGES est facultative. En fait elle n'est inclus que pour se conformer aux spcifications SQL-92.

01/07/2012

53/151

ITS Formation Base B.I. Les clauses TO et FROM indiquent la liste des comptes de scurit. La clause CASCADE indique la suppression des autorisations pour le compte de scurit et de toutes les autres qui auraient t accordes par le propritaire de ce compte. La clause AS {groupe | rle} indique le nom facultatif d'un groupe ou d'un rle pour lequel les autorisations seront supprimes. Syntaxe sous Oracle REVOKE { { { systme_privilge | rle | ALL PRIVILEGES } [, { systme_privilge | rle | ALL PRIVILEGES }] FROM { { utilisateur | rle | PUBLIC } [, { utilisateurN | rle | PUBLIC }] } } | { { objet_privilge | ALL [PRIVILEGES] } [( nom_colonne [, nom_colonne]... )] [, { objet_privilgeN | ALL [PRIVILEGES] } [( nom_colonne [, nom_colonneN]... )]] ON { { schma . objet } | { { DIRECTORY nom_rpertoire } | { JAVA { SOURCE | RESOURCE } [schma .] objet } } } FROM { { utilisateur | rle | PUBLIC } [, { utilisateurN | rle | PUBLIC }] } [ CASCADE CONSTRAINTS ] [ FORCE ] } } [, ... ] ; La clause ALL PRIVILEGES indique la suppression de toutes les autorisations appliques au compte de scurit indiqu. L'option PUBLIC indique la rvocation des privilges ou des rles pour tous les utilisateurs. La clause DIRECTORY indique l'objet DIRECTORY sur lequel les privilges doivent tre rvoqus. 01/07/2012 54/151

ITS Formation Base B.I. La clause JAVA { SOURCE | RESOURCE } permet de spcifier une source Java ou l'objet de schma de ressource sur lequel les privilges doivent tre rvoqus. La clause FROM indique la liste des comptes de scurit. La clause CASCADE CONSTRAINTS annule les contraintes d'intgrit rfrentielle et est applicable uniquement une rvocation du privilge REFERENCES ou ALL PRIVILEGES. La clause FORCE permet de rvoquer les privilges EXECUTE sur les objets dfinis par l'utilisateur avec des tables ou de types de dpendances. Exemple REVOKE SELECT ON tbl_employee TO role_employee REVOKE UPDATE ON vue_personnel FROM PUBLIC;

5.2 Les commandes transactionnelles


Les commandes transactionnelles permettent de contrler des transactions se droulant dans un systme de gestion de base de donnes relationnelle (SGBDR). Les transactions sont des squences de tches s'effectuant dans un ordre logique par l'intermdiaire de l'utilisateur ou d'une automatisation. Les tches peuvent tre essentiellement des commandes DML; d'insertion (INSERT), de suppression (DELETE) ou de modification (UPDATE) d'objets dans une base de donnes. Ces diverses tches peuvent tre annules en cours d'excution puisqu'elles possdent un commencement et une fin. Au terme de la tche, il est ncessaire de sauvegarder les changements. Toutefois, aucun enregistrement n'est effectu si la tche a chou pour une raison quelconque. Il existe, donc, quatres commandes transactionnelles principales pour contrler ces squences. Les commandes transactionnelles { SET | BEGIN } TRANSACTION; dtermine le dbut d'une transaction. BEGIN est utilise sous SQL Server. COMMIT [ WORK ]; enregistre les modifications produites par des transactions. ROLLBACK{ [WORK | TO nom_point] }; annule les modifications qui n'ont pas t enregistres prcdemment. SAVEPOINT nom_point; insre un point de sauvegarde dans la liste de transactions, servant en conjonction avec ROLLBACK pour une annulation jusqu' un point prcis.

01/07/2012

55/151

ITS Formation Base B.I. La commande SAVEPOINT vite une annulation complte des transactions par la commande ROLLBACK. Transactions... SAVEPOINT nom_point Transactions... ROLLBACK TO nom_point; D'ailleurs, une commande spcifique permet de supprimer des points de sauvegardes crs par la commande SAVEPOINT. RELEASE SAVEPOINT nom_point; Exemple SET TRANSACTION; SAVEPOINT sup1; DELETE FROM tbl_produit WHERE fabricant = 'AME et Cie'; SAVEPOINT sup2; DELETE FROM tbl_produit WHERE fabricant = 'EROS'; SAVEPOINT sup3; DELETE FROM tbl_produit WHERE num_produit BETWEEN 12045367 AND 12045401; SAVEPOINT maj; INSERT INTO tbl_produit SELECT * FROM vue_nouveau_produit; ROLLBACK TO sup3; COMMIT; BEGIN TRANSACTION USE base_donnee GO UPDATE tbl_produit SET prix = (( prix * 12 ) / 100 ) + prix WHERE fabricant = 'CACO LOCA' GO COMMIT GO

5.3 Les fonctions SQL


5.3.1 Les fonctions d'agrgation
Les fonctions d'agrgation accomplissent un calcul sur plusieurs valeurs et retournent un rsultat et sont souvent utilises avec les commandes GROUP BY et SELECT.

01/07/2012

56/151

ITS Formation Base B.I. Les calculs effectus par ces fonctions consiste faire sur une colonne, la somme, la moyenne des valeurs, le dcompte des enregistrements ou encore l'extraction de la valeur minimum ou maximum. Hormis la fonction COUNT, les fonctions d'agrgation ne tiennent pas compte des valeurs NULL. Fonction AVG BINARY_CHECKSU M CHECKSUM CHECKSUM_AGG COUNT COUNT_BIG MAX MIN SUM STDEV STDEVP VAR VARP Description retourne la moyenne des valeurs d'un groupe. retourne la valeur totale de contrle binaire calcule partir d'une ligne d'une table ou d'une liste d'expressions. retourne la valeur de checksum calcule dans une ligne d'une table ou dans une liste d'expressions. retourne le checksum des valeurs d'un groupe. retourne le nombre d'lments figurant dans un groupe. retourne le nombre d'lments figurant dans un groupe. retourne la valeur maximale de l'expression. retourne la valeur minimale de l'expression. retourne la somme de toutes les valeurs retourne l'cart type de toutes les valeurs de l'expression spcifie. retourne l'cart type de remplissage pour toutes les valeurs de l'expression spcifie. retourne la variance de toutes les valeurs de l'expression spcifie. retourne la variance de remplissage pour toutes les valeurs de l'expression spcifie.

Exemple SELECT COUNT(Livre) FROM Librairie ' retourne 7 SELECT SUM(Prix) FROM Librairie ' retourne 1 571

5.3.2 Les fonctions mathmatiques


Les fonctions mathmatiques permettent d'effectuer des calculs sur des expressions SQL. ABS(Expression) retourne la valeur absolue de l'expression. CEIL(Expression) retourne la valeur maximale de l'expression. SQL Server utilise CEILING(). COS(Expression) retourne le cosinus de l'expression. 01/07/2012 57/151

ITS Formation Base B.I. EXP(Expression) retourne la valeur exponentielle de l'expression. FLOOR(Expression) retourne la valeur minimale de l'expression. POWER(Expression, Exposant) retourne la puissance de l'expression (ExpressionExposant). ROUND( Expression , Longueur [ , Fonction ] ) retourne l'arrondi de l'expression la longueur indique et ventuellement la troncature fournie. SIGN(Expression) retourne le signe de l'expression. SIN(Expression) retourne le sinus de l'expression. SQRT(Expression) retourne la racine carre de l'expression. TAN(Expression) retourne la tangente de l'expression. TO_NUMBER(expression) convertit des chanes de caractres en valeur numrique. Exemple SELECT valeur, SIN(valeur), COS(valeur), TAN(valeur) FROM tbl_angle; SELECT SQRT(POWER(AB, 2) + POWER(BC, 2)) AS AB FROM tbl_triangle

5.3.3 Les fonctions sur les chanes de caractres


Les fonctions sur les chanes de caractres permettent de manipuler les chanes de caractres. Diverses donnes textuelles provenant d'une ou plusieurs colonnes peuvent tre combines en une unique chane de caractres. Par exemple, le nom et le prnom d'une personne pourraient tre concatns afin de donner une seule valeur. Les fonctions CONCAT (chaine1, chaine2) concatne la premire chane la seconde. CONCAT correspond chaine || chaine2 sous Oracle. TRANSLATE (nom_colonne, valeur1, valeur2) recherche la premire valeur dans la colonne spcifie et substitue toutes les occurrences de valeur1 par celles de valeur2. REPLACE (nom_colonne, valeur1, valeur2) remplace toutes les occurrences de la premire valeur dans la colonne spcifie par celles de la seconde valeur. UPPER (chaine) 01/07/2012 58/151

ITS Formation Base B.I. convertit la chane de caractres en lettres majuscules. LOWER (chaine) convertit la chane de caractres en lettres minuscules. SUBSTR(nom_colonne, position_dpart, longueur) retourne une sous-chane de caractres extraite de la colonne spcifie partir d'une position de dpart et jusqu' une certaine longueur. Pour SQL Server, la fonction se dnomme SUBSTRING. INSTR(nom_colonne, jeu_caractres, position_dpart, nb_occurrence) recherche le jeu de caractres dans une colonne et retourne la position de la premire lettre du jeu. LTRIM(nom_colonne, jeu_caractres) supprime les caractres situs la gauche de la chane de caractres. RTRIM(chaine, jeu_caractres) supprime les caractres situs la droite de la chane de caractres. DECODE(nom_colonne, valeur1, valeur2, [valeur1, valeur2, valeur_dfaut]) recherche les valeurs valeur1 dans la colonne et les remplace par les valeurs valeur2 et toutes les autres valeurs sont remplaces par la valeur par dfaut. LENGTH(chaine) retourne la longueur de la chane de caractres. NVL(nom_colonne, valeur) remplace les valeurs nulles de la colonne par une valeur de substitution. LPAD(nom_colonne, longueur, caractre) remplit gauche des valeurs de la colonne un certain nombre du caractre indiqu pour arriver la longueur voulue. RPAD(nom_colonne, longueur, caractre) remplit droite des valeurs de la colonne un certain nombre du caractre indiqu pour arriver la longueur voulue. ASCII(jeu_caractres) retourne la valeur ASCII d'un jeu de caractres indiqu. TO_CHAR(expression) convertit des valeurs numriques en chanes de caractres. Exemple SELECT CONCAT(CONCAT(UPPER(nom), ' ')), prenom) FROM tbl_client WHERE montant_vente >= 1000; SELECT LPAD(nom, 15, '.'), RPAD(prenom, 15, '.') FROM tbl_client WHERE date_naissance = SYSDATE; SELECT num_client, NVL(email, 'adresse@email.com') FROM tbl_client WHERE email = NULL;

5.3.4 Les dates et les heures


Les dates et les heures possdent une place importante dans des applications SQL, dans la mesure ou elles permettent d'ajouter une dimension temporelle aux enregistrements d'une base de donnes. 01/07/2012 59/151

ITS Formation Base B.I. Dans de nombreuses applications SQL, des donnes temporelles sont associes diverses informations lors de leur saisie manuelle ou automatique. Table d'abonns Par exemple, un nouvel abonn reprsent par des champs tels Num_Abonne que le nom, le prnom et l'adresse postale entre autres, pourrait Date_Abonnement galement saisir une date de naissance par l'intermdiaire d'un Nom formulaire, puis au moment de l'ajout de l'enregistrement dans la Prenom base de donnes, une date et ventuellement une heure Date_Naissance seraient insres automatiquement dans la ligne de donnes Adresse afin de conserver un historique des demandes d'abonnement. ... En outre, les dates et les heures peuvent permettre de slectionner des jeux d'enregistrements avec des requtes contenant des conditions temporelles. Ainsi, un commercial aurait la possibilit de consulter l'ensemble des individus ayant souscrit un abonnement dans un intervalle de temps prcis. Le format des dates et des heures dpend souvent des diffrentes implmentations SQL. Nanmoins, des formats standardiss ont t spcifis afin d'viter une trop grande htrognit. AAAA-MM-JJ reprsente un format de date respectivement, anne-mois-jour, avec un intervalle allant de 0001-01-01 jusqu' 9999-12-31. HH:MN:SS.nnn reprsente un format horaire respectivement, heures:minutes:secondes, allant de 00:00:00 jusqu' 23:59:61.999 Le standard ANSI prvoit trois types de donnes principaux de date et d'heure. D'autres types peuvent exister selon les implmentations. DATE = AAAA-MM-JJ stocke une date (ex: 10/01/2002). TIME = HH:MN:SS.nnn stocke une heure (ex: 10:12:42) TIMESTAMP = AAAA-MM-JJ HH:MN:SS.nnn stocke une valeur de date et d'heure combines. Les serveurs SQL tels que SYBASE et SQL Server utilisent les types de donnes DATETIME combinant les formats de date et d'heure, ainsi que SMALLDATETIME identique au prcdent hormis que l'intervalle de date autoris est plus restreint. Les types de donnes de date et d'heure sont divisibles en plusieurs lments distincts. YEAR = AAAA stocke une anne, allant de 0001 jusqu' 9999. MONTH = MM stocke le mois, allant de 01 jusqu' 12 DAY = JJ stocke le jour d'une date, allant de 01 jusqu' 31. HOUR = HH

01/07/2012

60/151

ITS Formation Base B.I. stocke les heures, allant de 00 jusqu' 23 MINUTE = MN stocke les minutes, allant de 00 jusqu' 59. SECONDE = SS.nnn stocke les secondes, allant de 00 jusqu' 61.999 Diverses commandes et fonctions permettent une manipulation aise des dates et des heures dans des applications SQL. Les fonctions

Les fonctions de date et d'heure permettent diverses manipulations sur des informations temporelles. La rcupration de la date en cours est possible par l'intermdiaire de la fonction GETDATE sous SQL Server et Sybase alors que Oracle utilise la fonction SYSDATE. SELECT GETDATE() AS Date, nom_champ, ... FROM nom_table SELECT SYSDATE AS Date, nom_champ, ... FROM nom_table Les heures et les dates sont dcomposables en plusieurs valeurs telles que les secondes, les minutes, les heures, le jour, le mois et l'anne entre autres partir d'une valeur DATETIME ou TIMESTAMP. SELECT DATEPART (yyyy, GETDATE()) FROM nom_table SELECT { fn YEAR ( { fn CURDATE() } ) } FROM nom_table Dans cet exemple, les deux syntaxes respectivement sous SQL Server et Oracle, retournent l'anne de la date courante. Il est galement possible d'effectuer des calculs sur des dates et des heures comme des additions ou des soustractions. SELECT DATEADD(mm, 3, GETDATE()) FROM nom_table SELECT SYSDATE + INTERVAL '3' MONTH FROM nom_table Ces exemples permettent d'ajouter trois mois la date courante. Pour ajouter un jour, il suffit sous SQL Server de modifier la partie mm par dd et MONTH par DAY pour Oracle. SELECT DATEADD(dd, 7, GETDATE()) FROM nom_table SELECT SYSDATE + INTERVAL '7' DAY FROM nom_table Sous Oracle, il est possible d'additionner ou de soustraire directement un nombre entier reprsentant des jours, une date. SELECT SYSDATE + 7 FROM nom_table D'autres lments de date et d'heure peuvent tre ajouts ou extraits par le mme biais sous Oracle. //soustrait une heure de la date courante SELECT SYSDATE - 1/24 FROM nom_table //soustrait 10 minutes de la date courante

01/07/2012

61/151

ITS Formation Base B.I. SELECT SYSDATE - 1/144 FROM nom_table Les fonctions Fonctions SQL Server DATEADD ( partie_date, nombre, date ) ajoute un nombre reprsentant une partie de date la date spcifie. DATEDIFF ( partie_date , date_dpart , date_fin ) soustrait la date de fin de celle de dpart en fonction de la partie spcifie. DATENAME ( partie_date , date ) retourne une chane de caractres dtermine partir de la date et de la partie indiques. DATEPART ( partie_date , date ) retourne la partie indique par le premier argument partir d'une date. DAY ( date ) retourne un entier reprsentant le jour partir de la date spcifie. GETDATE() retourne la date et l'heure courantes. GETUTCDATE() retourne la date et l'heure UTC (Universal Time Coordinates) courantes. MONTH ( date ) retourne le mois sous forme d'un entier partir d'une date spcifie. YEAR ( date ) retourne l'anne sous forme d'une entier partir de la date spcifie. Fonctions Oracle ADD_MONTHS(date, nb_mois) ajoute un nombre de mois spcifi une date. { fn CURDATE ( [ expression_date ] ) } retourne la date courante. CURRENT_DATE retourne la date courante. CURRENT_TIME retourne l'heure courante. CURRENT_TIMESTAMP retourne la date et l'heure courantes. { fn CURTIME ( [ expression_date ] ) } retourne l'heure courante. { fn DAYNAME ( [ expression_date ] ) } retourne le nom du jour de la semaine. { fn DAYOFMONTH ( [ expression_date ] ) } retourne le jour du mois sous forme d'entier. { fn DAYOFWEEK ( [ expression_date ] ) } retourne le jour de la semaine sous forme d'un entier. { fn DAYOFYEAR ( [ expression_date ] ) } retourne le jour d'une anne sous forme d'un entier. HOUR ( expression_temps ) retourne l'heure partir d'une expression horaire. INTERVAL ( valeur partie_date ) spcifie un intervalle de temps pour effectuer des oprations. LAST_DAY ( date ) retourne une date qui reprsente le dernier jour du mois dans lequel la date s'est produite. { fn MINUTE ( expression_temps ) } retourne les minutes partir d'une expression horaire. { fn MONTH ( expression_temps ) } 01/07/2012 62/151

ITS Formation Base B.I. retourne le mois partir d'une expression horaire. { fn MONTHNAME ( expression_temps ) } retourne le nom d mois partir d'une expression horaire. MONTHS_BETWEEN ( date_1, date_2 ) retourne le nombre de mois entre les deux valeurs de date. NEXT_DAY ( date, chane ) retourne la date du premier jour de la semaine correspondant la chane de caractres spcifie. NOW retourne la date et l'heure courante comme une valeur de TIMESTAMP. ROUND ( date, format ) retourne la date spcifie selon le format fourni. { fn SECOND ( expression_temps ) } retourne le nombre de secondes partir d'une expression horaire. SYSDATE retourne la date et l'heure courantes. TIMESTAMPADD ( intervalle, nombre, date ) retourne le rsultat de l'addition d'une date un nombre entier selon un intervalle spcifi (SQL_TSI_FRAC_SECOND, SQL_TSI_SECOND, SQL_TSI_MINUTE, SQL_TSI_HOUR, SQL_TSI_DAY, SQL_TSI_WEEK, SQL_TSI_MONTH, SQL_TSI_QUARTER, SQL_TSI_YEAR). TIMESTAMPDIFF ( intervalle, nombre, date ) retourne le rsultat de la soustraction d'une date et d'un nombre entier selon un intervall spcifi (voir ci-dessus). TO_DATE ( chane ) convertit une chane de caractres en une valeur de date et d'heure valide. TRUNC ( date, format ) retourne le rsultat d'une troncature d'une date selon un format spcifi. { fn WEEK ( expression_date ) } retourne la semaine d'une anne sous la forme d'un entier. { fn YEAR ( expression_date ) } retourne une anne sous la forme d'un entier. Exemple SELECT TO_CHAR(ADD_MONTHS(debut_abonnt, 6)) AS 'Fin abonnement', num_abonnt FROM tbl_abonne WHERE date_abonnt = SYSDATE - (INTERVAL '5' MONTH); USE base GO CREATE TABLE tbl_employees ( num_employe NUMERIC(9, 0) PRIMARY KEY, date_embauche DATETIME DEFAULT GETDATE(), nom VARCHAR(40) NOT NULL, prenom VARCHAR(20) NOT NULL, adresse VARCHAR(255) NOT NULL, code_postal VARCHAR(5) NOT NULL ville VARCHAR(30) NOT NULL, telephone VARCHAR(10) NULL, email VARCHAR(50) NULL )

01/07/2012

63/151

ITS Formation Base B.I. GO Les formats de date sous Oracle Les formats de date sous Oracle permettent de formater des valeurs de date et d'heure selon un masque prcis. Day, Month DD,YYYY HH24:MI:SS Friday, December 28, 2001 23:16:41 DD/MM/YYYY HH:MI:SS AM 28/12/2001 11:16:41 AM Les formats de date et d'heure peuvent tre utiliss en argument avec les fonctions ROUND et TRUNC. ROUND ( '10/12/2001' YEAR ) TRUNC ( '10/12/2001' DD) La fonction INTERVAL peut galement comporter de tels lments afin d'indiquer le type de la valeur fournie. INTERVAL '3' DAY Format SCC | CC YEAR SYEAR YYYY SYYYY IYYY YYY | YY | Y IYY | IY | I Y,YYY Q MM MONTH Month month MON Mon mon WW IW W DDD DD D DAY Day day DY Dy dy 01/07/2012 Description reprsente le sicle. Le "S" indique les dates BC (Before Christ) avec "-". | | reprsente une anne. reprsente une anne sur quatre chiffres. reprsente une anne sur quatre chiffres, base sur le standard ISO. reprsente respectivement les trois, deux ou un chiffre(s) d'une anne. reprsente respectivement les trois, deux ou un chiffre(s) d'une anne base sur le standard ISO. reprsente une anne avec une virgule. reprsente le trimestre d'une anne (1-4). reprsente le mois sur deux chiffres (1-12). reprsente le nom littral du mois (JANUARY-DECEMBER). reprsente une abrviation littrale du nom de mois (JAN-DEC). reprsente le numro reprsente le numro reprsente le numro reprsente le numro reprsente le numro reprsente le numro de la semaine sur une anne (1-53). de la semaine bas sur le standard ISO (1-52/53). de la semaine d'un mois (1-5). du jour sur une anne (1-365). du jour sur un mois (1-31). du jour sur une semaine (1-7).

reprsente le nom littral du jour (SUNDAY-SATURDAY). reprsente le nom littral abrg du jour (SUN-SAT)).

64/151

ITS Formation Base B.I. AM | PM A.M. | P.M. HH | HH12 HH24 MI RM RR SS SSSSS - / . ; : "texte" reprsente l'indicateur mridien. reprsente l'indicateur mridien avec des priodes. reprsente l'heure d'une journe sur douze heures (1-12). reprsente l'heure d'une journe sur vingt-quatre heures (0-23). reprsente les minutes (0-59). reprsente le numro du mois sous forme de chiffres romains. reprsente les deux chiffres d'une anne pour les annes dans d'autres pays. reprsente les secondes (0-59). reprsente les secondes sur vingt-quatre heures (0-86399). reprsente les signes de ponctuation et les guillemets pour du texte permis.

Les formats de date sous SQL Server Les formats de date et d'heure sous SQL Server peuvent prendre quasiment n'importe quelle forme l'aide des lments cits dans le tableau ci-dessous. dddd, MMMM dd,yyyy hh:mm:ss.ffff tt Friday, December 28, 2001 11:16:41.0021 AM dd/MM/yyyy HH:mm:ss 28/12/2001 23:16:41 Format yyyy yy qq | q MM | M MMMM MMM dd | d dddd ddd hh | h HH | H mm | m ss | s f tt Description reprsente une anne sur quatre chiffres. reprsente une anne sur deux chiffres. reprsente le trimestre d'une anne. reprsente le mois sur deux chiffres. reprsente le nom littral du mois. reprsente le nom littral abrg du mois. reprsente le jour sur deux chiffres. reprsente le nom littral du jour de la semaine. reprsente le nom littral abrg du jour de la semaine reprsente l'heure d'une journe sur douze heures. reprsente l'heure d'une journe sur vingt-quatre heures. reprsente les minutes. reprsente les secondes. reprsente les fractions de secondes. reprsente l'indicateur mridien AM/PM.

Les parties de date pour les fonctions DATEADD, DATEDIFF, DATENAME et DATEPART peuvent tre utilises dans leur forme littrale comme dans leurs abrviations. Partie de date year quart month dayofyear day weeek weekday hour minute second millisecond Abrviations yy, yyyy qq, q mm, m dy, y dd, d wk, ww dw hh min ss, s ms Description Anne Trimestre Mois Jour de l'anne (1 - 365) Jour Semaine Jour de la semaine Heures Minutes Secondes Millisecondes

01/07/2012

65/151

ITS Formation Base B.I.

5.4 Les dclencheurs (Triggers)


Les dclencheurs (Triggers) sont des procdures stockes appartenant une table prcise et s'excutant lorsqu'une action spcifique se produit sur la table concerne. Le dclenchement d'une telle procdure s'effectue subsquemment une instruction de manipulation de donnes (DML) comme INSERT, DELETE ou UPDATE. Il existe donc trois types de dclencheurs, sur insertion, sur mise jour et sur suppression. Une table peut comporter plusieurs dclencheurs d'un type donn, condition que chacun possde un nom diffrent. Cependant, un dclencheur donn ne peut tre assign qu' une seule et unique table tout en s'appliquant la fois, l'insertion, la mise jour et la suppression d'enregistrements sur la table en question. Une table ne peut possder qu'un seul dclencheur INSTEAD OF d'un type donn. Les dclencheurs se produisent soit aprs (AFTER), soit avant (BEFORE) soit la place (INSTEAD OF) d'une action DML. Un dclencheur sur INSERT s'excute chaque opration d'insertion lance par l'utilisateur ou par un programme. Lors d'une insertion, l'enregistrement est insr la fois dans la table cible est dans une table temporaire dnomme inserted. Une telle table peut permettre de vrifier la cohrence des enregistrements. Un dclencheur sur DELETE s'excute chaque opration de suppression lance par l'utilisateur ou un programme. Lors d'une suppression, l'enregistrement est supprim physiquement de la table cible et l'insre dans une table temporaire dnomme deleted. Cela peut permettre de rcuprer l'enregistrement supprim. Un dclencheur sur UPDATE s'excute chaque opration de mise jour lance par l'utilisateur ou par un programme. Lors d'une mise jour, l'ancien enregistrement est supprim et insr dans la table temporaire deleted, tandis que le nouveau est insr la fois dans la table cible et dans la table inserted. La suppression des dclencheurs s'effectue par l'intermdiaire de l'instruction DROP. DROP TRIGGER nom_dclencheur [ , nom_dclencheurN ] La modification des dclencheurs s'effectue par l'intermdiaire de l'instruction ALTER. La syntaxe complte de la commande ALTER TRIGGER est en fait identique dans le cas d'Oracle ou de SQL Server celle de CREATE TRIGGER. ALTER TRIGGER nom_dclencheur_existant ON nom_table FOR INSERT, UPDATE, DELETE AS instruction_SQL... Tous les dclencheurs (ALL) ou certains peuvent tre activs (ENABLE) ou dsactivs (DISABLE) au moyen de l'instruction ALTER TABLE. ALTER TABLE table

01/07/2012

66/151

ITS Formation Base B.I. { ENABLE | DISABLE } TRIGGER { ALL | nom_dclencheur [ , nom_dclencheurN ] }

5.4.1 Les Triggers sous Oracle


La syntaxe des dclencheurs sous Oracle peut tre plus ou moins complexe. CREATE [ OR REPLACE ] TRIGGER propritaire.nom_dclencheur AFTER | BEFORE { [ INSERT [ OR DELETE [ OR UPDATE OF nom_colonne,...,nom_colonneN ] ] ] } ON propritaire.nom_table FOR EACH ROW nom_procdure (argument...argumentN); La seconde syntaxe se rvle bien plus abconse, puisqu'elle intgre non seulement les dclencheurs DML mais galement d'autres types de dclencheurs bass sur des commandes DDL ou DATABASE. En outre, pour les dclencheurs DML, des clauses spcifiques aux vues apparaissent, ainsi que la clause REFERENCING. CREATE [ OR REPLACE ] TRIGGER [ schma. ] nom_dclencheur { AFTER | BEFORE | INSTEAD OF } { { [ INSERT [ OR DELETE [ OR UPDATE [ OF nom_colonne [, nom_colonneN ] ] ] ] ] } ON { { [ schma. ] nom_table } | { [ NESTED TABLE colonne_embote OF ] [ schma . ] nom_vue } } { [ REFERENCING ] { [ OLD [ AS ] ancienne_colonne | NEW [ AS ] nouvelle_colonne | PARENT [ AS ] colonne_parente ] } } [ FOR EACH ROW ] instruction_SQL; } | { { { Evnement_DDL [ OR EvnementN_DDL ] } | { Evnement_Base_Donnes [ OR EvnementN_Base_Donnes ]

01/07/2012

67/151

ITS Formation Base B.I. } ON { { [ schma. ] SCHEMA } | DATABASE } WHEN ( Condition ) { instruction_PL/SQL | instruction_procdure }; } La commande OR REPLACE recre le dclencheur s'il existe dj. La clause BEFORE indique que le dclencheur doit tre lanc avant l'excution de l'vnement. La clause AFTER indique que le dclencheur doit tre lanc aprs l'excution de l'vnement. Les instructions INSERT et DELETE indique au dclencheur de s'excuter lors respectivement d'une insertion ou d'une suppression dans la table. La clause UPDATE OF indique que le dclencheur doit tre lanc lors de chaque mise jour d'une des colonnes spcifies. Si elle est omise, n'importe quelle colonne de la table modifie provoque le dcle,chement du Trigger. La clause ON dsigne le nom de la table associ son schma pour lequel le dclencheur a t spcifiquement cr. La clause FOR EACH ROW dsigne le dclencheur pour tre un dclencheur de ligne. Oracle lance un dclencheur de ligne une fois pour chaque ligne qui est affecte par l'instruction de dclenchment. Si la clause est omise, le dclencheur est un dclencheur d'instruction. Oracle lance un dclencheur de d'instructionune fois seulement lorsque l'instruction dclenchante est mise si la contrainte du dclencheur optionnelle est rencontre. La clause REFERENCING permet de spcifier des noms de corrlation. Il est possible d'utiliser les noms de corrlation dans des blocs d'instructions PL/SQL et dans la condition WHEN d'une dclencheur de ligne pour se rfrer spcifiquement des valeurs anciennes et nouvelles de la ligne courante. Les noms de corrlation par dfaut sont OLD et NEW. Si le dclencheur de ligne est associ une table nomme OLD ou NEW, l'utilisation de cette clause permet de spcifier des noms de corrlations diffrents afin d'viter une confusion entre les noms de table et les noms de corrlation. Si le dclencheur est dfini sur une table imbrique, OLD et NEW se rfrent la ligne de la table imbrique, et PARENT se rfre la ligne courante de la table parente. Si le dclencheur est dfini sur une table ou une vue, OLD et NEW se rfre aux instances d'objet. La clause REFERENCING n'est pas valide avec les dclencheurs INSTEAD OF sur les vnements DDL de cration. Pour de plus amples renseignements consulter la documentation d'Oracle. Exemple /* Premier exemple */ CREATE OR REPLACE TRIGGER declencheur_suppression AFTER DELETE ON tbl_1 FOR EACH ROW 01/07/2012 68/151

ITS Formation Base B.I. WHEN (1 = 1) DECLARE action_utilisateur VARCHAR2(50); BEGIN SELECT user INTO action_utilisateur FROM DUAL; INSERT INTO delete_log VALUES ('tbl_1',action_utilisateur,TO_CHAR(SYSDATE, 'DD/MON/YYYY'), TO_CHAR(SYSDATE, 'HH24:MI:SS')); END; /* Second exemple */ CREATE TABLE tbl_1 (col_a INTEGER, col_b CHAR(20)); CREATE TABLE tbl_2 (col_c CHAR(20), col_d INTEGER); CREATE TRIGGER declencheur_insertion AFTER INSERT ON tbl_1 FOR EACH ROW WHEN (NEW.col_a <= 10) BEGIN INSERT INTO tbl_2 VALUES(:NEW.col_b, :NEW.col_a); END; Le premier exemple cre un dclencheur qui insre un champ log l'intrieur d'une table, pour chaque ligne supprime dans la table spcifie. Le second exemple cre un dclencheur qui insre un enregistrement l'intrieur de la seconde table lorqu'une opration d'insertion s'est accomplie dans la premire table. Le dclencheur vrifie si le nouvel enregistrement possde un premier composant infrieur ou gal 10 et si c'est le cas, inverse les enregistrements l'intrieur de la seconde table. Les variables spciales NEW et OLD sont disponibles pour se rfrer respectivement des nouveaux ou d'anciens enregistrements. Les deux points (:) prcdent NEW et OLD dans VALUES sont dans ce cas obligatoires, par contre dans la clause conditionnelle WHEN, ils doivent tre omis.

5.4.2 Les Triggers sous SQL Server


Les dclencheurs sous SQL Server peuvent prendre deux formes distinctes selon l'inclusion de l'instruction DELETE. La premire forme permet de construire des dclencheurs des trois types possibles. CREATE TRIGGER nom_dclencheur ON { nom_table | nom_vue } [ WITH ENCRYPTION ] { { { FOR | AFTER | INSTEAD OF } { [ INSERT ] [,] [ UPDATE ] [,] [ DELETE ] } [ WITH APPEND ] [ NOT FOR REPLICATION ] AS } instruction_SQL... }

01/07/2012

69/151

ITS Formation Base B.I. } La syntaxe ci-dessous ne permet la cration que de deux types de dclencheur. Nanmoins, des structures conditionnelles donnent la possibilit de tester les modifications apportes aux colonnes spcifies. CREATE TRIGGER nom_dclencheur ON { nom_table | nom_vue } [ WITH ENCRYPTION ] { { { FOR | AFTER | INSTEAD OF } { [ INSERT ] [,] [ UPDATE ] [ WITH APPEND ] [ NOT FOR REPLICATION ] AS [ { IF UPDATE ( nom_colonne ) [ { AND | OR } UPDATE ( nom_colonne ) ] [ ...n ] | IF ( COLUMNS_UPDATED() { Operateur_Niveau_Bit } Mise_Jour_Masque_Bit ) { = | > } Colonne_Masque_Bit [ ...n ] }] instruction_SQL... } } La clause ON dsigne la table ou la vue concernes par le dclencheur. La clause WITH ENCRYPTION indique que SQL Server crypte les entres syscomments qui contiennent le texte de l'instruction CREATE TRIGGER. La clause FOR indique le dclenchement du Trigger pour un type d'vnement. La clause AFTER indique le dclenchement du Trigger suite un type d'vnement. La clause INSTEAD OF indique un excution des instructions du Trigger la place de celles normalement produites par l'vnement dclencheur. Les instructions INSERT, UPDATE et DELETE reprsentent chacun un type de dclencheur respectivement sur une insertion, une mise jour et une suppression. La clause WITH APPEND indique la ncesit d'ajouter un dclencheur supplmentaire d'un type existant. La clause NOT FOR REPLICATION indique que le dclencheur ne doit pas tre excut lors de la modification de la table concerne par un processus de rplication. La clause IF UPDATE excute des tests pour une opration INSERT ou UPDATE sur une ou plusieurs colonnes spcifies la suite de l'instruction. Les colonnes tester, peuvent tre articules autour d'un oprateur AND ou OR afin d'effectuer un test conditionnel sur l'une ou/et l'autre des colonnes. La clause retourne une valeur boolenne. La clause COLUMNS_UPDATED retourne un modle de bit de type varbinary indiquant les colonnes ayant subi des modifications suite un test dans un dclencheur de type INSERT ou UPDATE uniquement. 01/07/2012 70/151

ITS Formation Base B.I. IF (COLUMNS_UPDATED() & 15) = 15 IF (COLUMNS_UPDATED() & 15) > 0 La valeur 15 suivant l'oprateur de niveau de bit & reprsente les cinq premires colonnes d'un tableau. Le signe gal = permet de vrifier dans ce cas si les cinq colonnes ont t modifies. Dans l'autre exemple, le signe suprieur > est spcifi, il s'agit ici d'une vrification sur l'une ou l'autre des cinq colonnes indiques. Exemple /* Premier exemple */ CREATE TABLE tbl_produit ( nom VARCHAR(20), identificateur INTEGER ) GO INSERT tbl_produit SELECT 'dentifrice', 1 UNION SELECT 'savon', 2 UNION SELECT 'savon', 0 UNION SELECT 'brosse dent', 3 UNION SELECT 'brosse dent', 0 UNION SELECT 'rasoir', 4 UNION SELECT 'mousse raser', 5 UNION SELECT 'serviette', 6 UNION SELECT 'serviette', 0 UNION SELECT 'peigne', 7 UNION SELECT 'brosse cheveux' 8 GO CREATE TRIGGER declencheur_suppression ON tbl_produit FOR DELETE AS SELECT nom AS "Lignes supprimer" FROM deleted GO CREATE TRIGGER declencheur_insteadof ON tbl_produit INSTEAD OF DELETE AS DELETE tbl_produit FROM tbl_produit INNER JOIN deleted ON tbl_produit.nom = deleted.nom WHERE tbl_produit.identificateur = 0 GO DELETE tbl_produit WHERE nom IN ('brosse dent', 'serviette', 'savon') GO SELECT * FROM tbl_produit GO DROP TABLE tbl_produit /* Second exemple */ CREATE TRIGGER envoi_email ON nom_table FOR INSERT, UPDATE, DELETE AS EXEC master.dbo.xp_sendmail @recipients = 'Administrateur', @message = 'Attention une modification a t effectue dans la table : nom_table.', 01/07/2012 71/151

ITS Formation Base B.I. @subject = 'Modification sur une table.' GO /* Troisime exemple */ CREATE TRIGGER avertissement ON nom_table FOR INSERT, UPDATE, DELETE AS RAISERROR ('Attention une modification a t effectue dans la table', 16, 10) GO Le premier exemple met en exergue le processus permettant de faire appel diffrents types de dclencheurs au sein d'une table. Le premier dclencheur FOR DELETE s'excute lors d'une suppression en slectionnant les lignes supprimes partir de la table temporaire deleted. Le second Trigger se dclenche et excute ses propres instructions la place de la commande de dclenchement DELETE afin d'effectuer une comparaison entre les noms de produit sur les deux tables tbl_produit et deleted pour ensuite supprimer les enregistrements possdant un identificateur gal zro. Les deux derniers exemples dmontrent qu'il est possible d'excuter diverses instructions telles que respectivement, l'envoi d'un courrier lectronique notifiant une modification l'administrateur de la base de donnes et du retour d'un message d'erreur par l'instruction RAISERROR.

01/07/2012

72/151

ITS Formation Base B.I.

Chapitre 2

Fondamentaux de la Business Intelligence

01/07/2012

73/151

ITS Formation Base B.I.

S O M M A I R E HISTORIQUE DES VOLUTIONS..........................................................................................2 SOMMAIRE..................................................................................................................................2 SOMMAIRE..................................................................................................................................4 1 LA BASE DE DONNE.............................................................................................................7


1.1 Introduction : langage SQL...............................................................................................7 1.2 Gnralits sur les bases de donnes (BDD)..................................................................7 1.3 Les schmas.....................................................................................................................8 1.4 Les types de donnes.......................................................................................................9 1.5 Les contraintes champs..................................................................................................12 1.6 Prsentation de la base de donnes..............................................................................13

2 CONCEPTS DU RELATIONNEL.........................................................................................14
2.1 2.2 2.3 2.4 2.5 Domaine et relation........................................................................................................14 Dpendance fonctionnelle.............................................................................................15 Les diffrentes cls........................................................................................................15 Normalisation.................................................................................................................16 Exercice sur les concepts du relationnel.......................................................................20

3 LE LANGAGE SQL.................................................................................................................21
3.1 Les oprateurs................................................................................................................21 3.2 Le langage de dfinition..................................................................................................24 3.3 Le langage de requte....................................................................................................30 3.4 Le langage de manipulation............................................................................................35 3.5 Le langage de contrle (Commandes DCL) => Cf Annexe...........................................37 3.6 Optimisation des requtes..............................................................................................38 3.7 Initiation aux procdures stockes.................................................................................40

4 EXERCICE SUR LE LANGAGE SQL................................................................................42 5 ANNEXES SQL........................................................................................................................44


5.1 Les commandes DCL......................................................................................................44 5.2 Les commandes transactionnelles.................................................................................55 5.3 Les fonctions SQL...........................................................................................................56 5.4 Les dclencheurs (Triggers)...........................................................................................66

SOMMAIRE................................................................................................................................74 1 ENJEUX ET DFINITION.....................................................................................................77


1.1 Enjeux du dcisionnel.....................................................................................................77 1.2 Le dcisionnel.................................................................................................................78

2 LE PROCESSUS DCISIONNEL.........................................................................................79
2.1 La ralit des systmes dinformations..........................................................................79 2.2 Vue globale.....................................................................................................................80

3 LE DATAWAREHOUSE........................................................................................................81
3.1 Objectifs...........................................................................................................................81 3.2 Dfinition..........................................................................................................................81

01/07/2012

74/151

ITS Formation Base B.I.

4 LES DATAMARTS..................................................................................................................83
4.1 Objectif............................................................................................................................83 4.2 Dfinition..........................................................................................................................83 4.3 Mise en place..................................................................................................................84

5 ANALYSE MULTIDIMENTIONNELLE.............................................................................85
5.1 Les axes danalyses........................................................................................................85 5.2 Les indicateurs................................................................................................................86 5.3 Navigation dans les donnes..........................................................................................87

6 LANALYSE DES INFORMATIONS...................................................................................88 SOMMAIRE................................................................................................................................90 1 LA CONCEPTION...................................................................................................................93


1.1 Gnralits......................................................................................................................93 1.2 Zoom sur la scurit........................................................................................................94 1.3 Gestion des performances..............................................................................................95

2 ARCHITECTURE DCISIONNELLE.................................................................................96
2.1 Description des bases intermdiaires au DWH .............................................................96 2.2 Architecture ODS -> DWH..............................................................................................97 2.3 Architecture ODS -> DWH -> DTM.................................................................................98 2.4 Architecture ODS -> DTM...............................................................................................99

3 LA MODLISATION............................................................................................................101
3.1 Dfinition des lments constituants............................................................................101 3.2 Les diffrents types de modlisation dcisionnelle......................................................103 3.3 Gestion de lintgrit des donnes...............................................................................107

4 OPTIMISATION....................................................................................................................110
4.1 Agrgation de tables de faits........................................................................................110 4.2 Partitionnement de tables de faits................................................................................110

5 EXERCICE SUR LA MODLISATION............................................................................112


5.1 Ralisation du Staging..................................................................................................112 5.2 Ralisation du DataWarehouse....................................................................................114

SOMMAIRE..............................................................................................................................124 1 ALIMENTATION DUN DATAWAREHOUSE : LES ETL...........................................127


1.1 Dfinition........................................................................................................................127 1.2 Description des composantes d'un systme ETL........................................................128 1.3 Suites ETL versus ETL maison ..............................................................................130 1.4 Exemple : IBM Datastage.............................................................................................131

2 STOCKAGE DES DONNES..............................................................................................135


2.1 SGBD Relationnel.........................................................................................................135 2.2 Les bases OLAP...........................................................................................................135 2.3 Exemple : Powerplay Transformer...............................................................................141

3 REPORTING..........................................................................................................................144
3.1 Degrs danalyse..........................................................................................................144 3.2 Cibles.............................................................................................................................145 3.3 Mtiers...........................................................................................................................145

01/07/2012

75/151

ITS Formation Base B.I. 3.4 Type utilisateurs............................................................................................................145 3.5 Exemple : Cognos ReportNet.......................................................................................146

01/07/2012

76/151

ITS Formation Base B.I.

1 ENJEUX ET DFINITION
1.1 Enjeux du dcisionnel
Avec l'apparition des ordinateurs personnels et des rseaux locaux, une autre activit a merg, tout fait distincte de l'informatique de production. Avec la monte en puissance des micros ordinateurs et l'avnement de l'architecture client - serveur, on observe aujourd'hui un dcloisonnement remarquable. Le mot d'ordre principal est : fournir tout utilisateur reconnu et autoris, les informations ncessaires son travail . Ce slogan fait natre une nouvelle informatique, intgrante, oriente vers les utilisateurs et les centres de dcision des organisations. C'est l're du client-serveur qui prend vraiment tout son essor la fin des annes 90 avec le dveloppement des technologies Intranet. Par ailleurs, un environnement de concurrence plus pressant contribue rvler l'informatique dcisionnelle. La qualit et l'exhaustivit des informations sont primordiales pour la direction gnrale. En effet, ce niveau, les dcideurs sont confronts des ralits trs complexes ou de nombreux phnomnes se trouvent lis entre eux. Chaque couche du systme (voir schma ci dessous) produit ses propres indicateurs et prend des dcisions. Cependant, plus on se trouve haut dans la pyramide plus les informations extrieures l'entreprise vont rentrer en compte et prendre de l'importance.

Lentreprise construit un systme dcisionnel pour amliorer sa performance. Elle doit dcider et anticiper en fonction de linformation disponible et capitaliser sur ses expriences. Depuis plusieurs dizaines dannes, une importante masse dinformations est stocke sous forme informatique dans les entreprises. Les systmes dinformation sont destins garder la trace dvnements de manire fiable et intgre. Ils automatisent de plus en plus les processus oprationnels. Paralllement, les entreprises ralisent la valeur du capital dinformation dont elles disposent. Au del de ce que linformatique leur apporte en terme fonctionnel, elles prennent conscience de ce quelle pourrait apporter en termes de contenu informationnel. Considrer le systme dinformation sous cet angle en tant que levier pour accrotre leur comptitivit et leur ractivit nest pas nouveau. Par contre, tant donn lenvironnement concurrentiel actuel, cela devient une question de survie. Linformatique dcisionnelle a un rle jouer, en permettant lentreprise de devenir plus entreprenante et davoir une meilleure connaissance de ses clients, de sa comptitivit ou de son environnement. Il est intressant de calculer les retours sur investissement rendus publics. Ils se calculent rarement en termes de baisse de cots, mais en termes de gains. Par exemple, ils permettent un meilleur suivi des ventes, une meilleure comprhension des habitudes dachats des clients, dune adaptation des produits une clientle mieux cible.

01/07/2012

77/151

ITS Formation Base B.I.

1.2 Le dcisionnel
On peut parler de dcisionnel lorsque les donnes de production sont valorises en information. Cette valorisation est effective ds que l'on sort du monde de la production. Le systme d'information dcisionnel est un ensemble de donnes organises de faon spcifique, facilement accessible et appropries la prise de dcision ou encore une reprsentation intelligente de ces donnes au travers d'outils spcialiss. La finalit d'un systme dcisionnel est le pilotage de l'entreprise. Les systmes dcisionnels sont ddis au management de l'entreprise pour l'aider au pilotage de l'activit, et indirectement oprationnels car n'offrant que rarement le moyen d'appliquer les dcisions. Ils constituent une synthse d'informations oprationnelles, internes ou externes, choisies pour leur pertinence et leur transversalit fonctionnelles, et sont bass sur des structures particulires de stockage volumineux (Datawarehouse, bases OLAP).

01/07/2012

78/151

ITS Formation Base B.I.

2 LE PROCESSUS DCISIONNEL
2.1 La ralit des systmes dinformations
A premire vue, les systmes oprationnels seraient des mines dor informationnelles. En fait, il nen est rien. Les donnes contenues dans ces systmes sont : Eparpilles : il existe souvent de multiples systmes, conus pour tre efficace pour les fonctions sur lesquelles ils sont spcialiss. Peu structures pour lanalyse : la plupart des systmes informatiques actuels ont pour objet de conserver en mmoire linformation, et sont structurs dans ce but. Focalises pour amliorer le quotidien : toutes les amliorations technologiques se sont focalises pour amliorer cette capacit en terme de volume, qualit, rapidit daccs. Il manque trs souvent la capacit nous donner les moyens de tirer parti de cette mmoire pour prendre des dcisions. Utilises pour des fonctions critiques : la majorit des systmes existants est conue dans le but unique de nous servir avec des temps de rponse corrects. Le tableau ci-dessous prsente les diffrences entre les bases oprationnelles et dcisionnelles. Base oprationnelle Type de donnes Nombre dutilisateurs Type de travail
Orientes application, dtailles, prcises au moment de laccs Trs important Prdfini (ex. crans de saisie)

Base dcisionnelle
Oriente activit (thme, sujet), condenses, reprsentes des donnes historiques Allant croissant et pouvant atteindre des chiffres trs levs Souvent indfini De simple complexe (jointures, tris, ) Dpend beaucoup du travail de modlisation en amont

Complexit des requtes Simple (accs par index)

Peu de lignes Trs nombreuses lignes (balayage complet de Volume de donnes tables) balay lors de lexcution dune requte De faon continue avec gestion des Gnralement par batch, plus rarement au fil de Mises jour ralises

Taille de la base de donnes Exemple dutilisation

concurrences daccs entre utilisateurs Variable

leau Quasiment jamais de concurrence daccs grer Plus importante (notion dhistorique et dagrgats) Clients qui ont achet un article donn durant une priode donne

Achats effectus par un client

Sil existe effectivement des informations importantes, il nen est pas moins ncessaire de construire une structure pour les hberger, les organiser et les restituer des fins danalyse. Cette structure est le DataWarehouse ou entrept de donnes . Ce nest pas une usine produire linformation, mais plutt un moyen de la mettre disposition des utilisateurs de manire efficace et organise.

01/07/2012

79/151

ITS Formation Base B.I. Le DataWarehouse permet la mise en place dun outil dcisionnel sappuyant sur les informations pertinentes pour lentreprise, centres sur le mtier utilisateur.

2.2 Vue globale


On peut distinguer quatre lments essentiels servant de structure au processus : Les sources de donnes : internes (bases de production), externes (Internet, bases des partenaires). Lentrept de donnes : lieu de stockage centralis des informations utiles pour les dcideurs. Les magasins de donnes : extraits de lentrept orients sujet. Donnes organises de manire adquate pour permettre des analyses rapides pour la prise de dcision. Les outils danalyse : permettent de manipuler les donnes suivant des axes danalyse.

Le processus peut se dcomposer en trois phases : Construction de la base de donnes dcisionnelle (Datawarehousing) : modlisation conceptuelle des donnes multiformes et multisources, alimentation de lentrept (extraire, nettoyer, transformer, charger), stockage physique des donnes. Slection des donnes analyser selon les besoins de lutilisateur : DataMart, cubes multidimensionnels, tableaux ou tables bidimensionnels. Analyse des donnes : statiques et reporting, base OLAP, Datamining. Deux contraintes apparaissent : la simplicit du modle de donnes et la performance malgr les grands volumes.

01/07/2012

80/151

ITS Formation Base B.I.

3 LE DATAWAREHOUSE
3.1 Objectifs
Le Datawarehousing est un processus visant permettre le traitement des fins dcisionnelles de gros volumes de donnes caractrisant le fonctionnement de lentreprise. Avant dtre charge dans le DataWarehouse (DWH), linformation doit tre extraite, nettoye et prpare. Puis, elle est intgre et mise en forme de manire comprhensible pour tre comprise par lutilisateur. Le Datawarehousing permet de transformer les donnes stockes en informations utiles. Toutes les donnes quelles proviennent du systme de production de lentreprise ou quelles soient achetes vont devoir tre organises, coordonnes, intgres et stockes, pour donner lutilisateur une vue intgre et oriente mtier. Les objectifs de ralisation dun DWH sont les suivants : Intgrer des donnes internes comme externes, et fournir les informations importantes en les rendant lisibles et facilement manipulables. Offrir un accs direct lutilisateur, et en rgle gnrale augmenter le nombre daccs aux donnes. Fournir un cadre assez flexible, pouvant supporter la croissance (nombre dutilisateurs, nouveaux outils, volumes de donnes)

3.2 Dfinition
Le DataWarehouse est une collection de donnes orientes sujet, intgres, non volatiles et historises, organises pour le support dun processus daide la dcision.

3.2.1 Orientes sujet


Le DataWarehouse est organis autour des sujets majeurs de lentreprise, contrairement aux donnes des systmes de production. Ceux-ci sont gnralement organiss par processus fonctionnels. Les donnes sont structures par thme. Lintrt de cette organisation est de disposer de lensemble des informations utiles sur un sujet le plus souvent transversal aux structures fonctionnelles et organisationnelles de lentreprise. Cette orientation sujet va galement permettre de dvelopper son systme dcisionnel via une approche par itrations successives, sujet aprs sujet. Lintgration dans une structure unique est indispensable car les informations communes plusieurs sujets ne doivent pas tre dupliques. Dans la pratique, une structure supplmentaire appele DataMart (magasin de donnes) peut tre cre pour supporter lorientation sujet.

3.2.2 Donnes intgres


Un DataWarehouse est un projet dentreprise. Par exemple dans la distribution, le mme indicateur de chiffre daffaires intressera autant les forces de vente que le dpartement financier ou les acheteurs. Pour y parvenir, les donnes doivent tres intgres.

01/07/2012

81/151

ITS Formation Base B.I. Avant dtre intgres dans le DataWarehouse, les donnes doivent tres mises en forme et unifies afin davoir un tat cohrent. Par exemple, la consolidation de lensemble des informations concernant un client donn est ncessaire pour donner une vue homogne de ce client. Une donne doit avoir une description et un codage unique. Cette phase dintgration est trs complexe et reprsente 60 90 % de la charge totale dun projet.

3.2.3 Donnes historises


Dans un systme de production ; la donne est mise jour chaque nouvelle transaction. Dans un DataWarehouse, la donne ne doit jamais tre mise jour. Un rfrentiel temps doit tre associ la donne afin dtre capable didentifier une valeur particulire dans le temps.

3.2.4 Donnes non volatiles


La non volatilit des donnes est en quelque sorte une consquence de lhistorisation. Une mme requte effectue quelques mois dintervalle en prcisant la date de rfrence de linformation recherche donnera le mme rsultat.

01/07/2012

82/151

ITS Formation Base B.I.

4 LES DATAMARTS
4.1 Objectif
Avec un DataWarehouse, il y a des risques dchec. Rien ninvite lutilisateur se servir dun DataWarehouse. Le succs dun DataWarehouse dpend donc uniquement de son effective utilisation. Un des gros risques de sa construction est de se cristalliser autour de la problmatique informatique et de se dtourner de lutilisateur. Le DataMart minimise la complexit informatique. Il est donc plus facile de se concentrer sur les besoins utilisateurs.

4.2 Dfinition
Le DataMart est une base de donnes moins coteuse que le DataWarehouse, et plus lgre puisque destine quelques utilisateurs dun dpartement. Il sduit plus que le DataWarehouse les candidats au dcisionnel. Cest une petite structure trs cible et pilote par les besoins utilisateurs. Il a la mme vocation que le DataWarehouse (fournir une architecture dcisionnelle), mais vise une problmatique prcise avec un nombre dutilisateurs plus restreint. En gnral, cest une petite base de donnes (SQL ou multidimensionnelle) avec quelques outils, et alimente par un nombre assez restreint de sources de donnes. Mais pour russir, il y a quelques prcautions prendre, gage de son volutivit vers le DataWarehouse. DataWarehouse Toute lentreprise Eleve SQL type serveur A lchelle de lentreprise Multi sujets, neutre Multiples Base de donnes Centaine de GO et plus 9 18 mois pour les 3 tapes DataMart Dpartement Faible ou moyen SQL milieu de gamme, bases multidimensionnelles Dpartement Quelques sujets, spcifique Quelques unes Plusieurs bases distribues Une 2 dizaines de GO 6 12 mois (installation en plusieurs tapes)

Cible utilisateur Implication du service informatique Base de donnes dentreprise Modles de donnes Champ applicatif Sources de donnes Stockage Taille Temps de mise en place

01/07/2012

83/151

ITS Formation Base B.I.

4.3 Mise en place


Construire un ou plusieurs DataMarts dpartementaux au lieu dun DataWarehouse central permet de valider rapidement le concept dinformatique dcisionnelle. Mais construire des DataMarts nest pas sans risques : En effet, dans les entreprises, des DataMarts isols peuvent prolifrer. Ces entreprises risquent de retomber dans le pige dune architecture compose de multiples systmes dcisionnels incohrents, contenant des informations redondantes. Cela cote plus cher et cest plus complexe grer quun DataWarehouse centralis. Les entreprises amricaines, plus en avance que les entreprises europennes, en ont fait les frais. Les DataMarts rsolvent les problmes de performance des gros DataWarehouse. Mais ils font rgresser vers le vieux problme des lots isols. Les entreprises vont devoir affronter des problmes techniques complexes et coteux pour remettre en cohrence les ensembles. Fdrer des DataMarts ou les faire voluer vers une structure centralise nest pas facile. On peut se poser la question sil est prfrable de btir un gros et unique DataWarehouse ou bien de concevoir un rservoir plus modeste, nourri par les donnes dun seul dpartement. Il est intressant de commencer par un DataMart, condition de respecter certaines rgles : Impliquer les utilisateurs. Ne pas construire de multiples DataMarts isols. Bannir les redondances. Donc le DataMart peut prparer au DataWarehouse. Mais il faut penser grand, avenir, et adopter des technologies capables dvoluer.

01/07/2012

84/151

ITS Formation Base B.I.

5 ANALYSE MULTIDIMENTIONNELLE
Ce type danalyse permet d'analyser la rpartition d'un indicateur comme le " chiffre d'affaires" en fonction des axes ou dimensions " clients ", " produit ", " temps". En outre, des hirarchies seront dfinies pour chaque axe d'analyse (par exemple, l'anne, puis la saison, le mois et la semaine, pour l'axe temps).

Temps Client
4000 8000 7000 1000

3000 8000

12000

1000
2000 6000

8000

Produit
5.1 Les axes danalyses
Les axes d'analyse (dimension) selon lesquels on veut tudier des donnes observables (faits) donnent aux utilisateurs des renseignements ncessaires la prise de dcision. Il peut s'agir des clients ou des produits d'une entreprise, d'une priode de temps comme un exercice financier, des activits menes au sein d'une socit, etc Le modle de donnes multidimensionnel est un tableau n dimensions (hypercube). Chaque axe danalyse possde une hirarchie associe de plusieurs niveaux de consolidation. Chaque position dans un tableau multidimensionnel, correspondant une intersection de toutes les dimensions est appele une cellule. Ces axes danalyses peuvent tre affins, dcomposes en hirarchies, afin de permettre lutilisateur dexaminer ses indicateurs diffrents niveaux de dtail, de " descendre " dans les donnes, allant du niveau global au niveau le plus fin. Par exemple, une date pourra tre dcompose en <anne, mois, semaine, jour>. On aura alors une vision pyramidale des donnes, la base de la pyramide reprsentant le niveau le plus dtaill et le haut le niveau le plus global.

01/07/2012

85/151

ITS Formation Base B.I.


Anne

Hirarchie d'une dimension


Semaine Jour

Mois

Produit Priode
Dimensions d'analyse

Indicateurs numriques

5.2 Les indicateurs


Les indicateurs, qui sont aussi appeles mtriques, dans un tableau multidimensionnel correspondent aux colonnes d'une table relationnelle. Les valeurs l'intrieur d'une colonne correspondent aux valeurs pour cet indicateur dans un tableau multidimensionnel. Par rapport laxe temps, nous pouvons distinguer deux types de variables analyser : Des indicateurs de flux, dont les variations sont enregistres dans la base de donnes. Pour dterminer leur montant pendant une certaine priode, il suffit de cumuler les diffrentes variations ayant eu lieu dans cette priode. Par exemple, pour obtenir le chiffre d'affaires du mois de Mai 1998, il suffit de faire la somme des chiffres d'affaires de chaque jour du mois. Des indicateurs dtat, indiquant le contenu dune variable un instant t. Le cumul des valeurs prises dans une priode donne nindique gnralement plus la valeur de cet indicateur pour cette priode. Par exemple pour une variable indiquant ltat du stock au dbut de chacun des trimestres, lentreprise peut considrer que ltat du stock pour lanne est gal son tat au 1er trimestre. Les valeurs des 4 trimestres nont donc pas tre cumules pour obtenir le stock annuel. Ladministrateur ou lutilisateur doit pouvoir indiquer loutil si un indicateur est un indicateur dtat et quelle valeur elle devra prendre pour un attribut donn. Les mtriques de base sont lassociation dune colonne de fait et dune fonction dagrgation. Il est indispensable que lutilisateur puisse aller au-del et utiliser des mtriques complexes, drives de ces lments de base en dfinissant des mtriques composes dautres mtriques, filtres ou calcules par rapport une dimension particulire. Une variable sera lue indicateur selon la stratgie choisie. Par exemple pour analyser les ventes on choisira comme indicateur la variable CA (chiffre daffaires). Lutilisateur formulera alors ses requtes en prcisant les indicateurs analyser (le chiffre daffaires), les dimensions sur lesquelles ces analyseurs doivent tre projets (le produit et le client) et la fonction dagrgation associe sur chaque projection.

01/07/2012

86/151

ITS Formation Base B.I.

5.3 Navigation dans les donnes


5.3.1 Drill-down, Drill-up
Le drill-down / up dsigne la facult daller du niveau global vers le niveau dtaill, et inversement. Ce mcanisme est totalement bas sur la notion de hirarchie. Chacun des axes danalyse se dcompose en attributs relis entre eux par des relations pre / fils. Un axe danalyse peut comporter plusieurs hirarchies. Par exemple, la dimension " produits " peut contenir une hirarchie " Marque-Article " et une hirarchie " SecteurSegment-Article ". Le mcanisme de drill-down se fera ainsi de la marque vers larticle et du secteur vers le segment puis vers larticle.
Secteur

Marque

Segment

Article

5.3.2 Slice and dice


Le " Slice and dice " dsigne la possibilit de faire pivoter dynamiquement les axes du tableau danalyse croise. Il est possible ainsi de passer dun tableau prsentant les ventes par magasin en lignes et jour en colonnes par un tableau similaire prsentant les ventes par magasin en colonnes et jour en ligne.

5.3.3 Data Surfing


Le data surfing est la possibilit laisse lutilisateur de circuler librement, de manire intuitive et ergonomique dans un modle dimensionnel, au del dun " simple " drill-down ou slice and dice. Lutilisateur peut alors modifier dynamiquement ses axes danalyse ou appliquer un nouveau filtre ses donnes. Ces mcanismes sappliquent sur le modle dfini soit par ladministrateur, soit par lutilisateur. Ce modle doit tre assez complexe pour adresser lensemble des demandes de lutilisateur et assez souple pour que lutilisateur puisse le personnaliser son got, en crant de nouveaux attributs ou de nouveaux axes danalyse ou en dfinissant de nouvelles mtriques calcules.

01/07/2012

87/151

ITS Formation Base B.I.

6 L ANALYSE DES INFORMATIONS


Lanalyse des donnes consiste traiter les donnes mtier afin de raliser diffrentes analyses dont le dtail nest pas connu par avance : cest lutilisateur qui choisit les donnes auxquelles il aura accs, et le niveau de dtail de son analyse. Il peut ensuite affiner sa recherche en zoomant sur les lments ncessitant une vision plus dtaille. Ces outils lui permettent donc : De constater : suivre les indicateurs, identifier les tendances. De localiser et de comprendre : analyser les tendances, isoler des fluctuations conjoncturelles. Dexpliquer : analyser les donnes pour identifier les raisons de la variation dun indicateur. De simuler des situations. Les principaux outils danalyse sont : Le reporting : dition dtats et de tableaux de synthse en prparant un rapport personnalis (se poser des questions non prpares). Il ny a pas de limitation dans laccs aux donnes mais le temps de rponse peut tre consquent et le rsultat obtenu nest pas garanti. Lanalyse multidimensionnelle : elle permet dinterroger des structures de donnes multidimensionnelles avec possibilit dynamique et intuitive de zooms, de changement de mode dintgration. Les temps de rponse sont excellents et le rsultat obtenu est garanti mais les volutions (ajout daxe) sont difficiles et la construction est dlicate. Le Datamining : outils dexploration et danalyse des donnes bass sur des techniques dintelligence artificielle pour tirer automatiquement des rgles par exemple de corrlation entre donnes ou permettre des simulations dvolution de celles ci. Le DataWeb : il peut tre ajout une possibilit daccs par navigateur Web aux donnes. Ce type doutil est en fait transversal aux solutions prcdentes, la plupart fournissant des accs Web.

01/07/2012

88/151

ITS Formation Base B.I.

Chapitre 3

Conception dcisionnelle et processus de construction dune BDD

01/07/2012

89/151

ITS Formation Base B.I.

S O M M A I R E HISTORIQUE DES VOLUTIONS..........................................................................................2 SOMMAIRE..................................................................................................................................2 SOMMAIRE..................................................................................................................................4 1 LA BASE DE DONNE.............................................................................................................7


1.1 Introduction : langage SQL...............................................................................................7 1.2 Gnralits sur les bases de donnes (BDD)..................................................................7 1.3 Les schmas.....................................................................................................................8 1.4 Les types de donnes.......................................................................................................9 1.5 Les contraintes champs..................................................................................................12 1.6 Prsentation de la base de donnes..............................................................................13

2 CONCEPTS DU RELATIONNEL.........................................................................................14
2.1 2.2 2.3 2.4 2.5 Domaine et relation........................................................................................................14 Dpendance fonctionnelle.............................................................................................15 Les diffrentes cls........................................................................................................15 Normalisation.................................................................................................................16 Exercice sur les concepts du relationnel.......................................................................20

3 LE LANGAGE SQL.................................................................................................................21
3.1 Les oprateurs................................................................................................................21 3.2 Le langage de dfinition..................................................................................................24 3.3 Le langage de requte....................................................................................................30 3.4 Le langage de manipulation............................................................................................35 3.5 Le langage de contrle (Commandes DCL) => Cf Annexe...........................................37 3.6 Optimisation des requtes..............................................................................................38 3.7 Initiation aux procdures stockes.................................................................................40

4 EXERCICE SUR LE LANGAGE SQL................................................................................42 5 ANNEXES SQL........................................................................................................................44


5.1 Les commandes DCL......................................................................................................44 5.2 Les commandes transactionnelles.................................................................................55 5.3 Les fonctions SQL...........................................................................................................56 5.4 Les dclencheurs (Triggers)...........................................................................................66

SOMMAIRE................................................................................................................................74 1 ENJEUX ET DFINITION.....................................................................................................77


1.1 Enjeux du dcisionnel.....................................................................................................77 1.2 Le dcisionnel.................................................................................................................78

2 LE PROCESSUS DCISIONNEL.........................................................................................79
2.1 La ralit des systmes dinformations..........................................................................79 2.2 Vue globale.....................................................................................................................80

3 LE DATAWAREHOUSE........................................................................................................81
3.1 Objectifs...........................................................................................................................81 3.2 Dfinition..........................................................................................................................81

01/07/2012

90/151

ITS Formation Base B.I.

4 LES DATAMARTS..................................................................................................................83
4.1 Objectif............................................................................................................................83 4.2 Dfinition..........................................................................................................................83 4.3 Mise en place..................................................................................................................84

5 ANALYSE MULTIDIMENTIONNELLE.............................................................................85
5.1 Les axes danalyses........................................................................................................85 5.2 Les indicateurs................................................................................................................86 5.3 Navigation dans les donnes..........................................................................................87

6 LANALYSE DES INFORMATIONS...................................................................................88 SOMMAIRE................................................................................................................................90 1 LA CONCEPTION...................................................................................................................93


1.1 Gnralits......................................................................................................................93 1.2 Zoom sur la scurit........................................................................................................94 1.3 Gestion des performances..............................................................................................95

2 ARCHITECTURE DCISIONNELLE.................................................................................96
2.1 Description des bases intermdiaires au DWH .............................................................96 2.2 Architecture ODS -> DWH..............................................................................................97 2.3 Architecture ODS -> DWH -> DTM.................................................................................98 2.4 Architecture ODS -> DTM...............................................................................................99

3 LA MODLISATION............................................................................................................101
3.1 Dfinition des lments constituants............................................................................101 3.2 Les diffrents types de modlisation dcisionnelle......................................................103 3.3 Gestion de lintgrit des donnes...............................................................................107

4 OPTIMISATION....................................................................................................................110
4.1 Agrgation de tables de faits........................................................................................110 4.2 Partitionnement de tables de faits................................................................................110

5 EXERCICE SUR LA MODLISATION............................................................................112


5.1 Ralisation du Staging..................................................................................................112 5.2 Ralisation du DataWarehouse....................................................................................114

SOMMAIRE..............................................................................................................................124 1 ALIMENTATION DUN DATAWAREHOUSE : LES ETL...........................................127


1.1 Dfinition........................................................................................................................127 1.2 Description des composantes d'un systme ETL........................................................128 1.3 Suites ETL versus ETL maison ..............................................................................130 1.4 Exemple : IBM Datastage.............................................................................................131

2 STOCKAGE DES DONNES..............................................................................................135


2.1 SGBD Relationnel.........................................................................................................135 2.2 Les bases OLAP...........................................................................................................135 2.3 Exemple : Powerplay Transformer...............................................................................141

3 REPORTING..........................................................................................................................144
3.1 Degrs danalyse..........................................................................................................144 3.2 Cibles.............................................................................................................................145 3.3 Mtiers...........................................................................................................................145

01/07/2012

91/151

ITS Formation Base B.I. 3.4 Type utilisateurs............................................................................................................145 3.5 Exemple : Cognos ReportNet.......................................................................................146

01/07/2012

92/151

ITS Formation Base B.I.

1 LA CONCEPTION
1.1 Gnralits
Quatre caractristiques clients ont des effets dterminants sur la dmarche de conception dun DataWarehouse : Les volutions technologiques : un systme dinformation peut se construire par intgration dun certain nombre de composants, chacun pouvant tre choisi par rapport son contexte dutilisation. Lentreprise dfinit son architecture en fonction de ses besoins. La stratgie de lentreprise : le DataWarehouse est trs proche de la stratgie de lentreprise. Lobjectif du DataWarehouse se dfinit en terme mtier. Il faut donc impliquer les utilisateurs ayant le plus de connaissances dans leur entreprise ou dans leur mtier. Lamlioration continue : un DataWarehouse doit voluer en fonction des demandes utilisateurs ou des nouveaux objectifs de lentreprise. La maturit de lentreprise : certaines entreprises ont dj un systme dcisionnel. Dautres nont aucun acquis. Dans tous les cas, il nexiste pas de cadre fig pour la conception dun DataWarehouse. Chaque entreprise doit adapter le projet son contexte, en ne perdant pas les objectifs de vue. Cet objectif est de mettre en place un systme dinformation cohrent et intgr, le systme devant tre dcompos en applications, chacune sintgrant dans le DataWarehouse. Il ne faut pas oublier quil est possible de commencer petit et voir grand : limiter lobjectif un domaine prcis (DataMart) ou faire un prototype. Ceci permet davoir un retour sur investissement rapide et de prouver le bien fond du concept. Lors dune phase de conception dcisionnelle, la phase danalyse technico-fonctionnelle des besoins clients doit aborder les thmes suivants : Dfinition des axes danalyses avec leur hirarchie respective. Souhait dhistorisation des donnes ou des liens hirarchiques. Dfinition des indicateurs avec le type dagrgation sur chaque axe Description des besoins en termes de reporting (Cube, reports) Analyse de lexistant technique (architecture et outils) Description des sources de donnes Scurit et administration des donnes Performance et volumtrie Reprise dun historique de donnes Attention : lexistant est une bonne base dtude dans le choix des restitutions finales, il ne doit pas constituer lobjectif atteindre. Par ailleurs, la connaissance fonctionnelle est videmment un plus pour la comprhension du besoin. Nanmoins, il sagit souvent de faire preuve de bon sens et dapporter une vision plus analytique et dcisionnelle. Le schma ci-dessous donne un aperu du cheminement dun processus de conception : partir des lments prcdents, lobjectif sera de dfinir une architecture technique avec un choix doutils associs.

01/07/2012

93/151

ITS Formation Base B.I.

1.2 Zoom sur la scurit


Le DataWarehouse a pour vocation de laisser lutilisateur une totale autonomie en ce qui concerne la recherche et lanalyse des donnes. Cette libert doit cependant tre souvent restreinte, notamment pour des raisons de scurit. Loutil doit donc permettre dadapter lenvironnement de travail lutilisateur qui sy connecte selon sa fonction et donc ses droits. Afin de mener bien cette politique de scurit, les notions dutilisateur et de groupe dutilisateur sont indispensables. Plus les autorisations pourront tre dfinies un niveau fin, plus lenvironnement de travail pourra tre facilement adapt chacun des profils dutilisateur. Au del du catalogue dans sa globalit, loutil doit donc permettre de dfinir des droits sur chacun de ses lments en restreignant le nombre de tables ou de colonnes disponibles ou, par un critre de recherche, le nombre de lignes accessibles. Au del des droits concernant laccs aux donnes, la possibilit daffecter des privilges sur les requtes et rapports prdfinis est un facteur essentiel dans la dfinition dune stratgie de diffusion.

01/07/2012

94/151

ITS Formation Base B.I.

1.3 Gestion des performances


La possibilit de limiter les accs aux ressources permet ladministrateur de mieux contrler les requtes mises par lutilisateur. Ce besoin est surtout essentiel pour les outils qui peuvent offrir lutilisateur un espace de libert et dautonomie important. En effet contrairement aux outils bass sur un modle multidimensionnel, les utilisateurs accdent aux informations non selon un schma prdfini mais selon leurs besoins. Ils gnrent ainsi les requtes quils veulent et naccdent pas toujours un serveur optimis en consquence. Ce contrle des ressources peut prendre plusieurs formes : limitation du temps dexcution ; cette fonctionnalit ne sera nanmoins pas gr de manire optimale par loutil qui, moins davoir dj effectu une requte identique, na pas moyen de connatre priori le temps quelle prendra. Lidal est donc davoir un outil capable de demander au serveur le temps que va mettre une requte et dagir ensuite en consquence (par exemple, refuser la demande selon lutilisateur). Sinon, loutil peut permettre labandon de requtes trop longues. limitation du nombre de lignes rcupres ; loutil peut soit permettre de ramener les lignes par paquets, soit ne rapatrier quun certain nombre denregistrements, soit abandonner une requte ramenant un volume trop important de donnes. Loutil, en cas de dpassement des limites, peut soit prvenir lutilisateur et lui demander si il souhaite continuer, soit abandonner la demande. Le contrle du corps des requtes permet de limiter considrablement le nombre de demandes coteuses. Ce contrle peut sexercer sur diffrents paramtres : le nombre de tables interroges. les jointures, ladministrateur peut notamment interdire tout produit cartsien. Il peut de plus tre intressant dimposer dutiliser que les colonnes indexes ou dinterdire un nombre trop important de thta-jointures, Le contrle du modle de donnes est un bon axe damlioration de la performance : index, format des colonnes (en particulier celle cls) Ce besoin de contrler les performances est d lautonomie laisse aux utilisateurs. En effet, ladministrateur na que trs peu de matrise sur ce que vont faire les utilisateurs et le modle de donnes ne peut tre ds le dpart optimis pour un type dutilisation particulier. Des fonctions daudit permettent de remdier cela en donnant ladministrateur une vision des demandes les plus et les moins frquemment utilises. Il peut alors paramtrer et optimiser son environnement (serveur, client) en consquence. Loutil doit donc offrir la possibilit de journaliser le texte des requtes, leur dure dexcution, le nom de lutilisateur les ayant envoyes.

01/07/2012

95/151

ITS Formation Base B.I.

2 ARCHITECTURE DCISIONNELLE
2.1 Description des bases intermdiaires au DWH
Comme le montre le schma ci-dessous, il est frquent davoir recours la cration dun Staging et/ou dun Oprational Data Storage (ODS) pour transfrer les donnes sources vers le DWH.

2.1.1 Le staging
Ce dpt de donnes doit permettre dacclrer et de synchroniser le processus dextraction des donnes oprationnelles. Cest une structure intermdiaire qui stocke les donnes issues des systmes htrognes de production oprationnelle dans un format proche de ces derniers sur un modle homogne. Ce sas assure l'isolation des mondes "oprationnel" et "dcisionnel" afin de minimiser les perturbations du systme de production oprationnel (performances et exploitation) et permet galement de reconstituer toute ou une partie de lODS partir de donnes lmentaires. Le staging ne contient pas lhistorique de chargement. Son alimentation doit se faire en purge puis insertion des donnes sources.

2.1.2 LODS
LODS est un environnement qui sert la prise de dcisions tactiques, qui contient des donnes dtailles, extraites en presque temps rels des systmes oprationnels pour rpondre des besoins de reporting immdiat et qui peut tre mis jour par les utilisateurs

01/07/2012

96/151

ITS Formation Base B.I. La ralisation dun ODS a pour objectif de nettoyer les donnes provenant du Staging et de les stocker historises, figes et rfrences afin de mettre disposition de l'utilisateur ces informations pour la construction du DWH. Ce processus aboutit intgrer ces donnes dans un modle normalis. La normalisation est un processus qui mne des structures, flexibles, efficaces et maintenance aise, de base de donnes. Une base de donnes relationnelle normalise fournit plusieurs atouts : limination des redondances sur les donnes provenant du STA, modlisation proche de la ralit des entits mondiales et de leurs relations, structuration des donnes pour que le modle soit flexible. Ce sas de transit a pour vocation d'historiser les donnes lmentaires dans un format assez proche du systme source avec un minimum de transformations et d'agrgations afin de prserver des possibilits de reengineering ; lODS permet de reconstruire toute ou une partie du DataWarehouse final, par exemple en cas de modification du rfrentiel (restructuration du rseau commercial, des filires produits, ...). On rapatrie lhistorique en un coup partir de lancien systme dalimentation via le STA Ainsi, il nest pas rare de voir des reporting oprationnels ce plugger cette base propre et vierge de tout filtrage.

2.2 Architecture ODS -> DWH


2.2.1 Schma

2.2.2 Critres de choix


Avantages Limitation de la redondance dinformation Stockage limit aux besoins. 01/07/2012 97/151

ITS Formation Base B.I. Centralisation totale de linformation. Inconvnients Lorientation Mtier devient particulirement complexe dfinir. La phase danalyse dvient prdominante. Lvolutivit complexe car dpend dans des besoins fonctionnels aval et des sources de donnes en Amont. Orientation Solution de restitution multidimensionnelle, o le cube joue le rle de DM.

2.3 Architecture ODS -> DWH -> DTM


2.3.1 Schma

2.3.2 Critres de choix


Avantages Indpendance des DM => facilit de mise en uvre. Evolutivit plus souple, pour rpondre aux besoins fonctionnels et de modifications des sources de donnes. Stockage limit aux besoins. Facilit dans la modlisation de DWH qui devient une zone tampon de stockage et dhistorisation => possibilit danticiper sur les besoins futurs Allie un fin niveau de dtails dans DWH aux performances dune base rpondant aux besoins dans le DM. Inconvnients Mise en oeuvre plus longue Volume de stockage et flux dalimentation importants

01/07/2012

98/151

ITS Formation Base B.I. Orientation Base forte volumtrie.

2.4 Architecture ODS -> DTM


2.4.1 Schma

2.4.2 Critres de choix


Avantages Indpendance des DM => facilit de mise en uvre DM indpendants orient vers un mtier spcifique Mise en uvre rapide et progressive. Evolutivit plus rapide et plus facile. Stockage limit aux besoins. Cots Faibles (projets de plus petites tailles successifs). Inconvnients Adaptabilit moins importantes vis--vis des sources de donnes. La modification dune seule source de donnes peut engendrer la modification de lensemble des DataMart. Liaisons entre les DM moins videntes.

01/07/2012

99/151

ITS Formation Base B.I. Orientation Premire mise en place de solutions dcisionnelles.

01/07/2012

100/151

ITS Formation Base B.I.

3 LA MODLISATION
3.1 Dfinition des lments constituants
La modlisation multidimensionnelle t introduite par Ralph Kimball. Elle consiste en deux nouveaux concepts tels que les faits et les dimensions. Chaque modle multidimensionnel est compos dune table contenant une cl, la table des faits qui permettent de mesurer lactivit et dun ensemble de tables dimensionnelles qui contiennent les informations contextuelles faisant varier les mesures de lactivit en question. Chaque table de faits possde une cl qui la relie avec la cl primaire de chaque table de dimension. Cinq axes permettent de qualifier un modle dcisionnel : Lisibilit du point de vue de l'utilisateur final Performances de chargement Performances d'excution Administration, c'est dire faire vivre le DataWarehouse Evolutivit, que tous les autres projets dcisionnels s'intgrent facilement Parmi ces objectifs, beaucoup sont antagonistes : Optimiser les performances lexcution implique souvent dajouter des redondances, des agrgations physiques dont le calcul alourdira les phases de chargement, De mme, plus il existe de redondances, plus le modle risque dtre complexe administrer. Selon, le contexte du projet, il sagira dassocier un poids chacun de ces objectifs et de dfinir son architecture de manire avoir le meilleur quilibre possible.

3.1.1 Les dimensions


Une dimension est une table qui contient les axes d'analyse (les dimensions) selon lesquels on veut tudier des donnes observables (les faits) qui, soumises une analyse multidimensionnelle, donnent aux utilisateurs des renseignements ncessaires la prise de dcision. On appelle donc dimension un axe d'analyse. Il peut s'agir des clients ou des produits d'une entreprise, d'une priode de temps comme un exercice financier, des activits menes au sein d'une socit, etc Caractristiques : Une table de dimension contient le dtail sur les faits; Une table de dimension contient les informations descriptives des valeurs numriques de la table de faits; Une table de dimension contient en gnral beaucoup moins denregistrement quune table de faits; Les attributs dune table de dimension sont souvent utiliss comme Lignes et Colonne dans un rapport ou rsultat de requte. Structure de base dune dimension

01/07/2012

101/151

ITS Formation Base B.I.


Cl Primaire (PK) Cl Naturelle (NK) Attribut 1 Attribut N Date de cration Date de maj Indicateur activit Cl de subtitution Cl fonctionnelle (peut tre compose de plusieurs colonnes) Attributs de la dimension

Cls spciales pour la gestion de l'hitorisque

3.1.1.1 Les composants


Une cl de substitution (Surrogate key) est une cl non intelligente utilise afin de substituer la cl fonctionnelle (Business Key) qui provient des systmes oprationnels. Elle est de type numrique Avantages : Performance : acclre laccs aux donnes du moment o lon va utiliser un index numrique. Indpendance du systme source : on ne peut garantir que la cl fonctionnelle ne change pas dans les systmes sources. En plus de la cl de substitution et de la cl naturelle, dautres attributs sont ajouts la dimension. Ces attributs sont descriptifs et reprsentent linformation utile sur la dimension (Le salaire dun employ, ladresse dun client...) Chaque table de dimension devrait contenir les colonnes suivantes : Date de cration : cest la date la quelle lenregistrement t cre, de prfrence dans le systme denregistrements (System of records). Date de maj : cest la date laquelle lenregistrement a t mis jour. Indicateur activit : En gnral est O si lenregistrement est toujours actif N sinon.

3.1.1.2 Les diffrents types de dimension


La dimension dgnre est une cl de dimension dans la table de fait qui est en gnral sans attribut. Par exemple No de bon de commande, No dinterruption de service, etc. Vu quil sagit dune seule cl de dimension, nous vitons alors de crer une table de dimension, ce qui fait que cette table de dimension a dgnr dans la table de fait, cest pour cette raison que cette cl est appele dimension dgnre La dimension de genre Junk dimension est une dimension qui contient toutes sorte de flags, statuts, codes qui ne font partie daucune dimension rgulire. Dans le domaine de la distribution de lnergie, une interruption de service peut tre de type Basse tension ou Moyenne tension . Ce genre de code est donc stock dans une table spciale appele Junk dimension . Les autres dimensions sont plus classiques et sont diffrencies uniquement par la frquence de changement de leurs attributs. Nous grons la situation en choisissant entre 3 solutions : crasement de lancienne valeur (pas dhistorique) Versionnement (historique complet) Valeur dorigine / valeur courante (valeur initiale historise)

01/07/2012

102/151

ITS Formation Base B.I.

3.1.2 Les faits


Une table de fait est une table qui contient les donnes observables (les faits) que l'on possde sur un sujet et que l'on veut tudier, selon divers axes d'analyse (les dimensions). Les faits , dans un entrept de donnes, sont normalement numriques, puisque d'ordre quantitatif. Il peut s'agir du montant en argent des ventes, du nombre d'units vendues d'un produit, etc.

Caractristiques : Une table de faits contient les valeurs numriques de ce quon dsire mesurer; Une table de fait contient les cls associes aux dimensions. Il sagit des cls trangres dans la table de faits; Une table de fait contient plus denregistrements quune table de dimension; Les informations dans une table de fait sont caractrises par : o Elles sont numriques et sont utilises pour faire des SUM, AVG... o Les donnes doivent tre additives ou semi-additives o Toutes les colonnes reprsentant les faits (mesure1, mesure2.. dans la figure 1) dans la table de fait doivent rfrer et avoir un lien direct aux cls de dimensions (Date Cal, ID Dim1... dans la figure 1) dans la mme table; Structure de base dune table de faits

Date Cal (FK) Id Dim1 (FK) Id DimN (FK) Code Dim Deg 1 Code Dim Deg N Mesure1 MesureN

Cls trangres vers les dimensions

Dimensions dgnres

Faits ou mesures

3.2 Les diffrents types de modlisation dcisionnelle


3.2.1 Modlisation en toile
La modlisation dimensionnelle structure les donnes d'une faon trs diffrente de la structure en 3FN (3me forme normale) frquemment utilise par les modlisateurs des systmes OLTP. La modlisation dimensionnelle produit ce qu'on appelle le modle dimensionnel ou communment le schma en toile. C'est la structure de donnes la plus utilise et la plus approprie aux requtes et analyses des utilisateurs d'entrepts de donnes. Elle est simple crer, stable et intuitivement comprhensible par les utilisateurs finaux.

01/07/2012

103/151

ITS Formation Base B.I. Elle consiste en une grande table de faits (fact table) et un cercle dautres tables qui contient les lments descriptifs du fait, appeles dimensions . Quand illustr, le modle ressemble une toile, cest dailleurs lorigine du terme En toile . La figure suivante illustre le schma en toile (star schema)

Avantages : Lisibilit : Ce modle est trs parlant pour lutilisateur car il prsente de manire claire sa finalit. Il est orient sujet et dfinit clairement les indicateurs danalyse. Performances : Les chemins daccs la base sont prvisibles. Mme si la table de faits comporte des millions de lignes, les tables de dimensions seront plus rduites. Par une indexation, il est possible davoir des temps de rponse proportionnels au rsultat attendu. De plus, les tables de faits ne possdent que des informations numriques et des identifiants et si elles sont importantes en nombre de lignes, la taille de chacune des lignes est rduite. Inconvnients : Manque de compltude volution du modle trs problmatique due une orientation du modle rapidement trs mtier. Il est donc plus adapt aux datamarts.

3.2.2 Modlisation en flocon


Le schma en flocons de neige est une variante du schma en toile. Dans la thorie la diffrence rside dans la simple normalisation des tables de dimensions. Il est donc tout simplement question de mettre les attributs de chaque niveau hirarchique dans une table de dimension part.

01/07/2012

104/151

ITS Formation Base B.I. La figure suivante illustre le schma en flocons de neige (snowflake schema)

Explication du schma :

Table de la dimension produit. Cette table du schma en toile est compose de plusieurs niveaux

Tous les attributs des niveaux hirarchiques se retrouvent dans une table isole

Avantages : Normalisation des dimensions, rduisant la taille de chacune des tables. Formalisation de la notion de hirarchie au sein dune dimension. Gestion des diffrents niveaux dagrgation Inconvnients : 01/07/2012 105/151

ITS Formation Base B.I. Plus complexe grer que les modles en toile Jointures reconstruire

3.2.3 Schma en toile versus schma en flocons


3.2.3.1 La technologie
Certaines technologies telle que MicroStrategy requirent un schma en flocons de neige alors que dautres comme Cognos requirent le schma en toile.

3.2.3.2 La nature des requtes


Certaines requtes se prtent mieux la structure dimension-fait. Pas forcment toutes les requtes mais quand cest le cas un schma en toile est le meilleur choix.

3.2.3.3 Besoins daffaires spcifiques


Ils existent des besoins daffaires qui ne peuvent tout simplement pas tre structurs en schma en toile. La relation entre lentit client et lentit compte dans le domaine bancaire, celle entre lentit client et lentit police dassurance dans le domaine des assurances ne peuvent tre reprsentes par un schma en toile cause de la relation n m qui lie ces entits.

3.2.3.4 Besoin de flexibilit


Le schma en flocons de neige devrait tre utilis lorsque lon a besoin dune plus grande flexibilit dans la corrlation travers les niveaux et les composantes dune dimension. L'avantage principal d'un flocon de neige est la plus grande flexibilit dans les donnes.

3.2.3.5 Ratio Attributs Matre : Nombre de ranges Dtail


Lorsque le ratio entre deux niveaux de hirarchie dune dimension est lev, il est prfrable dutiliser un modle en flocon ce qui permettra de diminuer la volumtrie stocker (au del dun rapport 1:5 par exemple)

3.2.3.6 Gestion complexe de dimension


Quand il sagit de cas complexe de gestion de lvolution de dimension, un schma en flocons de neige est prfrable. Les cas complexes peuvent tre la gestion de lhistorisation des liens, la gestion de lhistorisation des attributs

3.2.3.7 Difficult de navigation dans les hirarchies


Le constat que le schma en toile est plus comprhensible que le schma en flocons de neige est compltement subjectif. En particulier quand la dimension est compose de plusieurs colonnes.

3.2.4 3me forme de modlisation dcisionnelle


La modlisation est similaire une modlisation en flocon. Les tables de dimension prsentent une redondance des cls des niveaux suprieurs de la hirarchie. Les tables de faits ne sont pas modifies.

01/07/2012

106/151

ITS Formation Base B.I. Avantages : Relation Directe entre les lments dune dimension et ses lments parents dans une mme hirarchie Filtre et recherche plus rapide et plus efficace. Inconvnients : Augmentation de la taille des tables de dimension. Cette modlisation est conseille pour les outils de type ROLAP.

3.3 Gestion de lintgrit des donnes


Les informations des tables de dimensions sont principalement alimentes partir des tables de rfrentiels (issues des diffrents systmes applicatifs). Malheureusement, il est trs courant que ces systmes applicatifs prsentent des incohrences (non intgrit des donnes). Ces problmes se rpercutent sur le systme dcisionnel engendrant des erreurs dans les restitutions. Un contrle dintgrit de donnes est ncessaire au niveau des dimensions pour corriger ou au moins prsenter ces incohrences. Lintgrit des donnes est obtenue habituellement en appliquant les mthodes suivantes : Option 1 : Les lignes non cohrentes sont exclues de lalimentation. Option 2 : Mise en place dune Gestion des Orphelins automatise Le choix est dpendant du type danalyse et doit tre valid avec le mtier.

3.3.1 Gestion des rfrences manquantes


Les rfrences manquantes sont les enregistrements qui nont pas de parents connus dans les tables de dimensions.

Exemple :
Une ligne de faits qui a comme rfrence Produit un produit qui nest pas prsent dans la table de dimension Produit. Une ligne de dimension Produit qui a comme rfrence Marque une marque qui nest pas prsent dans la table de dimension Marque. Il existe 2 mthodes de gestion Les rfrences manquantes sont remplaces de manire unique par un code arbitrairement cr. Les rfrences manquantes sont insres dans les tables des dimensions.

3.3.1.1 Mthode 1
On remplace les rfrences manquantes par un code unique Cette gestion implique que lon cre dans les tables parentes ce code unique avec le libell correspondant (sur tous les niveaux de la hirarchie)

01/07/2012

107/151

ITS Formation Base B.I.


N Commande Ligne Cmd 000123 1 Cmd 000123 2 Date Commande 01/02/2005 01/02/2205 N Produit Produit AAAAA Produit AABAA N Produit AAAAA AAAAB AAAAC . Libell Produit produit AAAAA produit AAAAB Produit AAAAC

N Commande Ligne Cmd 000123 1 Cmd 000123 2

Date Commande 01/02/2005 01/02/2205

N Produit AAAAA ??????

N Produit ?????? AAAAA AAAAB AAAAC .

Libell Produit Produit Non Rfrenc produit AAAAA produit AAAAB Produit AAAAC

Avantages : Facilit de dfinition des orphelins des Hirarchies Inconvnients : Pertes dinformations si cette dernire est incohrente

3.3.1.2 Mthode 2
Les rfrences manquantes sont insres dans les tables des dimensions. Les autres informations de la table sont alimentes par des valeurs fictives. En cas de hirarchie plusieurs niveaux, cette gestion implique que lon cre dans les tables de niveaux suprieures un code unique permettant un rattachement du code cr aux niveaux suprieurs.
N Produit AAAAA AAAAB AAAAC . N Commande Ligne Cmd 000123 1 Cmd 000123 2 Date Commande 01/02/2005 01/02/2205 N Produit Produit AAAAA Produit AABAA Libell Produit produit AAAAA produit AAAAB Produit AAAAC

N Produit AAAAA AAAAB AAAAC AABAA .

Libell Produit produit AAAAA produit AAAAB Produit AAAAC Libell rf AABAA

Avantages : Conservation de la totalit de linformation. Le choix nest quarbitraire au niveau de la prsentation Inconvnients : Peut-tre complexe grer au niveau dans une Hirarchie prsentant plusieurs niveaux. Facteur de complexit galement dans le cas dune conservation de lhistorique des dimensions.

01/07/2012

108/151

ITS Formation Base B.I.

3.3.2 Gestion des valeurs nulles


2 types de valeurs nulles sont grer : Des valeurs nulles dans des colonnes cl trangre Des valeurs nulles dans des colonnes Not Null Pour le premier cas, il faut utiliser la mthode 1 vue ci-dessus. Pour les colonnes Not null , il faut prvoir une valeur par dfaut utiliser partout suivant le type de donne.

Exemple :
Numrique : -1 Code : NA Libell : Not Affected Date : 99/99/9999

Le but est de : Faciliter une analyse et simplifier la comprhension des donnes en assurant la compltude de linformation. Permettre des jointures directes entre les diffrentes tables et amliorer les performances. Dans le cas de la mise en place dun systme multi-dimensionnelle, la gestion des valeurs nulles nest pas ncessaire. En effet, la plupart de ces outils intgre cette fonctionnalit.

01/07/2012

109/151

ITS Formation Base B.I.

4 OPTIMISATION
4.1 Agrgation de tables de faits
Les tables dagrgation sont des tables supplmentaires ajoutes au modle de donnes pour rpondre des problmatiques de performance. Elles sont gnralement utilises pour les bases prsentant une forte volumtrie. Elles sont dfinies suivant des niveaux dagrgation suprieurs de dimensions et en fonction des besoins finaux dutilisateurs. Pour tre efficaces, elles doivent apporter une diminution notable des lignes traites par une requte SQL. Il est donc important de calculer le Facteur dagrgation. Le facteur dagrgation reprsente le ratio entre le nombre de lignes de la table initiale et le nombre de ligne de la table agrge. < 5 lagrgation na pas dintrt. 10 lagrgation apporte un rel plus.

Exemple :
On cre une table des ventes mensuelles reprsentant la somme des ventes journalires par magasin et cela sur chacun des mois.

ventes journalires

VENTES

Ventes mensuelles

Ventes annuelles

Cette technique d'optimisation trouve ses limites lorsque les bases des donnes atteignent un volume important.

4.2 Partitionnement de tables de faits


Un partitionnement physique des tables en plus petites units selon le critre temps apporte des performances stables dans le temps, des facilits pour les reprises, les indexations, les restructurations et larchivage. Notre table des ventes sera clate en 12 tables, soit une par mois. 01/07/2012 110/151

ITS Formation Base B.I. On peut aussi imaginer un clatement des tables de fait suivant toute autre dimension.

Exemple :

ventes Ile de France

Ventes Prigord

VENTES
Ventes Provence

Ventes Autres

Cette technique n'est pas simple administrer.

01/07/2012

111/151

ITS Formation Base B.I.

5 EXERCICE SUR LA MODLISATION


Dans cette partie, nous allons pas pas raliser un DataWareHouse partir du modle de donnes initial prsent ci-dessous :
JOUER CINEMA Cinema Cinema Ville Cinema Cinema Code Nom int <pk> varchar(64) varchar(128) Type varchar(2) Groupe varchar(64) PROJECTION Jour datetime <pk> Film Code int <pk> Cinema Code int <pk> Jouer Code Film Code Titre Genre Date Acteur Code Acteur Nom Acteur Prnom Rle int <pk> int varchar(128) varchar(64) datetime int varchar(64) varchar(64) varchar(128)

GEOGRAPHIE Ville varchar(128) Postal Code integer Transport Code char(1) Transport Type varchar(64) Frequence Transport Paris integer Region Code varchar(5) Region Description varchar(164)

Ce schma reprsente la base oprationnelle. Maintenant que nous avons identifi la base oprationnelle, nous allons lister les axes danalyses et les diffrents indicateurs de manire raliser un staging. Axes danalyses Temps (anne, mois, jour) Cinma (Cinema, Groupe) Gographie (Cinema, Ville, Rgion) Film/Acteur Indicateurs Nombre de spectateurs Recette Dure du Film

5.1 Ralisation du Staging


Raliser le staging partir du modle oprationnel en faisant attention aux points suivants Cls primaires de prfrence avec un type de donnes numrique Cls spciales pour gestion historique

01/07/2012

112/151

ITS Formation Base B.I. Rappel : le staging a une structure identique aux bases oprationnelles (ajout/suppression dinformations) et ne contient pas de cls trangres. Base STG
JOUER CINEMA Cinema Code Cinema Nom Ville Cinema Type Cinema Groupe Date Creation Date MAJ Indicateur Activite int <pk> varchar(64) varchar(128) varchar(2) varchar(64) datetime datetime int Jouer Code Film Code Titre Genre Date Acteur Code Acteur Nom Acteur Prnom Rle Date Creation Date MAJ Indicateur Activite int <pk> int varchar(128) varchar(64) datetime int varchar(64) varchar(64) varchar(128) datetime datetime int

PROJECTION Jour Film Code Cinema Code Nombre Spectateurs Recette Duree Film Date Creation Date MAJ datetime <pk> int <pk> int <pk> int int int datetime datetime

GEOGRAPHIE Postal Code Ville Region Code Region Description Date Creation Date MAJ Indicateur Activite integer <pk> varchar(128) varchar(5) varchar(164) datetime datetime int

Script STG
/*==============================================================*/ /* Table : CINEMA */ /*==============================================================*/ create table CINEMA ( CINEMA_CODE int not null, CINEMA_NOM varchar(64) null, VILLE varchar(128) null, CINEMA_TYPE varchar(2) null, CINEMA_GROUPE varchar(64) null, DATE_CREATION datetime not null, DATE_MAJ datetime not null, INDICATEUR_ACTIVITE int not null, constraint PK_CINEMA primary key (CINEMA_CODE) ) go /*==============================================================*/ /* Table : GEOGRAPHIE */ /*==============================================================*/ create table GEOGRAPHIE ( POSTAL_CODE integer not null, VILLE varchar(128) null, REGION_CODE varchar(5) null, REGION_DESCRIPTION varchar(164) null, DATE_CREATION datetime not null, DATE_MAJ datetime not null, INDICATEUR_ACTIVITE int not null,

01/07/2012

113/151

ITS Formation Base B.I.


constraint PK_GEOGRAPHIE primary key ) go /*==============================================================*/ /* Table : JOUER */ /*==============================================================*/ create table JOUER ( JOUER_CODE int not null, FILM_CODE int not null, TITRE varchar(128) null, GENRE varchar(64) null, DATE datetime null, ACTEUR_CODE int not null, ACTEUR_NOM varchar(64) null, ACTEUR_PRENOM varchar(64) null, ROLE varchar(128) null, DATE_CREATION datetime not null, DATE_MAJ datetime not null, INDICATEUR_ACTIVITE int not null, constraint PK_JOUER primary key (JOUER_CODE) ) go /*==============================================================*/ /* Table : PROJECTION */ /*==============================================================*/ create table PROJECTION ( JOUR datetime not null, FILM_CODE int not null, CINEMA_CODE int not null, NB_SPEC int not null, RECETTE int not null, DUREE_FILM int not null, DATE_CREATION datetime not null, DATE_MAJ datetime not null, constraint PK_PROJECTION primary key (JOUR, FILM_CODE, CINEMA_CODE) ) go (POSTAL_CODE)

5.2 Ralisation du DataWarehouse


Remarque : dans ce DWH, nous ne prenons pas en compte les tables de scurit ni les tables de rejets

5.2.1 Schma en toile


Remarque : la table temps est rarement modlise nous lajoutons pour la comprhension globale. Base DWH Etoile

01/07/2012

114/151

ITS Formation Base B.I.


ACTEUR Acteur Code Acteur Nom Acteur Prnom Date Creation Date MAJ Indicateur Activi te FK_JOUER_ACT EUR_JO_ACT EUR JOUER Acteur Code Film Code Rol e Date Creation Date Modification int <pk,fk2> int <pk,fk1> varchar(128) datetime datetime int <pk> varchar(64) varchar(64) datetime datetime int

FK_FILM_ACTEUR_FI_ACT EUR

FK_JOUER_FILM_JOUE_FILM CINEMA Cinema Code Cinema Nom Cinema Groupe Vil le Region Description Date Creati on Date MAJ Indicateur Activite PROJECT ION FILM int <pk> int <fk> varchar(128) varchar(64) datetime int datetime datetime

int <pk> Jour varchar(64) Film Code varchar(64) Cinema Code varchar(128) Nombre Spectateurs FK_PROJECTI_CINEMA_PR_CINEMA varchar(128) Recette datetime Duree Film datetime Date Creation int Date MAJ

datetime <pk,fk3> Film Code int <pk,fk1> Acteur Code int <pk,fk2> T FK_PROJECTI_FILM_PROJ_FILMitre int Genre int Date int Indicateur Activite datetime Date Creation datetime Date MAJ

FK_PROJECTI_TEMPS_PRO_T EMPS

TEMPS Jour datetime <pk> Mois integer Annee integer

Script DWH Etoile


/*==============================================================*/ /* Table : ACTEUR */ /*==============================================================*/ create table ACTEUR ( ACTEUR_CODE int not null, ACTEUR_NOM varchar(64) null, ACTEUR_PRENOM varchar(64) null, DATE_CREATION datetime not null, DATE_MAJ datetime not null, INDICATEUR_ACTIVITE int not null, constraint PK_ACTEUR primary key (ACTEUR_CODE) ) go /*==============================================================*/ /* Table : CINEMA */ /*==============================================================*/ create table CINEMA ( CINEMA_CODE int not null, CINEMA_NOM varchar(64) null, CINEMA_GROUPE varchar(64) null, VILLE varchar(128) null, REGION_DESCRIPTION varchar(128) null, DATE_CREATION datetime not null, DATE_MAJ datetime not null, INDICATEUR_ACTIVITE int not null, constraint PK_CINEMA primary key (CINEMA_CODE) ) go

01/07/2012

115/151

ITS Formation Base B.I.


/*==============================================================*/ /* Table : FILM */ /*==============================================================*/ create table FILM ( FILM_CODE int not null, ACTEUR_CODE int not null, TITRE varchar(128) null, GENRE varchar(64) null, DATE datetime null, INDICATEUR_ACTIVITE int not null, DATE_CREATION datetime not null, DATE_MAJ datetime not null, constraint PK_FILM primary key (FILM_CODE) ) go /*==============================================================*/ /* Table : JOUER */ /*==============================================================*/ create table JOUER ( ACTEUR_CODE int not null, FILM_CODE int not null, ROLE varchar(128) null, DATE_CREATION datetime null, DATE_MODIFICATION datetime null, constraint PK_JOUER primary key (ACTEUR_CODE, FILM_CODE) ) go /*==============================================================*/ /* Table : PROJECTION */ /*==============================================================*/ create table PROJECTION ( JOUR datetime not null, FILM_CODE int not null, CINEMA_CODE int not null, NB_SPEC int not null, RECETTE int not null, DUREE_FILM int not null, DATE_CREATION datetime not null, DATE_MAJ datetime not null, constraint PK_PROJECTION primary key (JOUR, FILM_CODE, CINEMA_CODE) ) go /*==============================================================*/ /* Table : TEMPS */ /*==============================================================*/ create table TEMPS ( JOUR datetime not null, MOIS integer not null, ANNEE integer not null, constraint PK_TEMPS primary key (JOUR) ) go alter table FILM

01/07/2012

116/151

ITS Formation Base B.I.


go add constraint FK_FILM_ACTEUR_FI_ACTEUR foreign key (ACTEUR_CODE) references ACTEUR (ACTEUR_CODE)

alter table JOUER add constraint FK_JOUER_ACTEUR_JO_ACTEUR foreign key (ACTEUR_CODE) references ACTEUR (ACTEUR_CODE) go alter table JOUER add constraint FK_JOUER_FILM_JOUE_FILM foreign key (FILM_CODE) references FILM (FILM_CODE) go alter table PROJECTION add constraint FK_PROJECTI_CINEMA_PR_CINEMA foreign key (CINEMA_CODE) references CINEMA (CINEMA_CODE) go alter table PROJECTION add constraint FK_PROJECTI_FILM_PROJ_FILM foreign key (FILM_CODE) references FILM (FILM_CODE) go alter table PROJECTION add constraint FK_PROJECTI_TEMPS_PRO_TEMPS foreign key (JOUR) references TEMPS (JOUR) go

5.2.2 Schma en flocon


Base DWH Flocon

01/07/2012

117/151

ITS Formation Base B.I.


ACTEUR Acteur Code Acteur Nom Acteur Prnom Date Creation Date MAJ Indicateur Activite FK_JOUER_ACTEUR_JO_ACTEUR JOUER Acteur Code Film Code Role Date Creation Date Modification int <pk,fk2> int <pk,fk1> varchar(128) datetime datetime int <pk> varchar(64) varchar(64) datetime datetime int

CINEMA GROUPE Cinema Type Cinema Groupe Date Creation Date MAJ Indicateur Activite int <pk> varchar(64) datetime datetime int

FK_FILM_ACTEUR_FI_ACTEUR

FK_CINEMA_GROUPE_CI_CINEMA_G FK_JOUER_FILM_JOUE_FILM CINEMA Cinema Code Postal Code Cinema Type Cinema Nom Date Creation Date MAJ Indicateur Activite PROJECTION FILM int <pk> int <fk> varchar(128) varchar(64) datetime int datetime datetime

int <pk> Jour int <fk2> Film Code int <fk1> Cinema Code varchar(64) Nombre Spectateurs FK_PROJECTI_CINEMA_PR_CINEMA datetime Recette datetime Duree Film int Date Creation Date MAJ

datetime <pk,fk3> Film Code int <pk,fk1> Acteur Code int <pk,fk2> Titre FK_PROJECTI_FILM_PROJ_FILM int Genre int Date int Indicateur Activite datetime Date Creation datetime Date MAJ

FK_CINEMA_VILLE_CIN_VILLE FK_PROJECT I_TEMPS_PRO_TEMPS VILLE Postal Code Region Code Ville Date Creation Date MAJ Indicateur Activite int <pk> int <fk> varchar(64) datetime datetime int TEMPS Jour datetime <pk> Mois integer Annee integer

FK_VILLE_REGION_VI_REGION

REGION Region Code Region Description Date Creation Date MAJ Indicateur Activite int <pk> varchar(64) datetime datetime int

Script DWH Flocon


/*==============================================================*/ /* Table : ACTEUR */ /*==============================================================*/ create table ACTEUR ( ACTEUR_CODE int not null, ACTEUR_NOM varchar(64) null, ACTEUR_PRENOM varchar(64) null, DATE_CREATION datetime not null, DATE_MAJ datetime not null, INDICATEUR_ACTIVITE int not null, constraint PK_ACTEUR primary key (ACTEUR_CODE) ) go /*==============================================================*/ /* Table : CINEMA */ /*==============================================================*/ create table CINEMA ( CINEMA_CODE int not null,

01/07/2012

118/151

ITS Formation Base B.I.


POSTAL_CODE CINEMA_TYPE CINEMA_NOM DATE_CREATION DATE_MAJ INDICATEUR_ACTIVITE constraint PK_CINEMA ) go /*==============================================================*/ /* Table : CINEMA_GROUPE */ /*==============================================================*/ create table CINEMA_GROUPE ( CINEMA_TYPE int not null, CINEMA_GROUPE varchar(64) null, DATE_CREATION datetime not null, DATE_MAJ datetime not null, INDICATEUR_ACTIVITE int not null, constraint PK_CINEMA_GROUPE primary key (CINEMA_TYPE) ) go /*==============================================================*/ /* Table : FILM */ /*==============================================================*/ create table FILM ( FILM_CODE int not null, ACTEUR_CODE int not null, TITRE varchar(128) null, GENRE varchar(64) null, DATE datetime null, INDICATEUR_ACTIVITE int not null, DATE_CREATION datetime not null, DATE_MAJ datetime not null, constraint PK_FILM primary key (FILM_CODE) ) go /*==============================================================*/ /* Table : JOUER */ /*==============================================================*/ create table JOUER ( ACTEUR_CODE int not null, FILM_CODE int not null, ROLE varchar(128) null, DATE_CREATION datetime null, DATE_MODIFICATION datetime null, constraint PK_JOUER primary key (ACTEUR_CODE, FILM_CODE) ) go /*==============================================================*/ /* Table : JOUER_BIS */ /*==============================================================*/ create table JOUER_BIS ( JOUER_CODE int not null, int int varchar(64) datetime datetime int primary key not null, not null, null, not null, not null, not null, (CINEMA_CODE)

01/07/2012

119/151

ITS Formation Base B.I.


FILM_CODE int TITRE varchar(128) GENRE varchar(64) DATE datetime ACTEUR_CODE int ACTEUR_NOM varchar(64) ACTEUR_PRENOM varchar(64) ROLE varchar(128) DATE_CREATION datetime DATE_MAJ datetime INDICATEUR_ACTIVITE int constraint PK_JOUER_BIS primary key not null, null, null, null, not null, null, null, null, not null, not null, not null, (JOUER_CODE)

) go

/*==============================================================*/ /* Table : PROJECTION */ /*==============================================================*/ create table PROJECTION ( JOUR datetime not null, FILM_CODE int not null, CINEMA_CODE int not null, NB_SPEC int not null, RECETTE int not null, DUREE_FILM int not null, DATE_CREATION datetime not null, DATE_MAJ datetime not null, constraint PK_PROJECTION primary key (JOUR, FILM_CODE, CINEMA_CODE) ) go /*==============================================================*/ /* Table : REGION */ /*==============================================================*/ create table REGION ( REGION_CODE int not null, REGION_DESCRIPTION varchar(64) null, DATE_CREATION datetime not null, DATE_MAJ datetime not null, INDICATEUR_ACTIVITE int not null, constraint PK_REGION primary key (REGION_CODE) ) go /*==============================================================*/ /* Table : TEMPS */ /*==============================================================*/ create table TEMPS ( JOUR datetime not null, MOIS integer not null, ANNEE integer not null, constraint PK_TEMPS primary key (JOUR) ) go /*==============================================================*/ /* Table : VILLE */

01/07/2012

120/151

ITS Formation Base B.I.


/*==============================================================*/ create table VILLE ( POSTAL_CODE int not null, REGION_CODE int not null, VILLE varchar(64) null, DATE_CREATION datetime not null, DATE_MAJ datetime not null, INDICATEUR_ACTIVITE int not null, constraint PK_VILLE primary key (POSTAL_CODE) ) go alter table CINEMA add constraint FK_CINEMA_GROUPE_CI_CINEMA_G foreign key (CINEMA_TYPE) references CINEMA_GROUPE (CINEMA_TYPE) go alter table CINEMA add constraint FK_CINEMA_VILLE_CIN_VILLE foreign key (POSTAL_CODE) references VILLE (POSTAL_CODE) go alter table FILM add constraint FK_FILM_ACTEUR_FI_ACTEUR foreign key (ACTEUR_CODE) references ACTEUR (ACTEUR_CODE) go alter table JOUER add constraint FK_JOUER_ACTEUR_JO_ACTEUR foreign key (ACTEUR_CODE) references ACTEUR (ACTEUR_CODE) go alter table JOUER add constraint FK_JOUER_FILM_JOUE_FILM foreign key (FILM_CODE) references FILM (FILM_CODE) go alter table PROJECTION add constraint FK_PROJECTI_CINEMA_PR_CINEMA foreign key (CINEMA_CODE) references CINEMA (CINEMA_CODE) go alter table PROJECTION add constraint FK_PROJECTI_FILM_PROJ_FILM foreign key (FILM_CODE) references FILM (FILM_CODE) go alter table PROJECTION add constraint FK_PROJECTI_TEMPS_PRO_TEMPS foreign key (JOUR) references TEMPS (JOUR) go

01/07/2012

121/151

ITS Formation Base B.I.


alter table VILLE add constraint FK_VILLE_REGION_VI_REGION foreign key (REGION_CODE) references REGION (REGION_CODE) go

5.2.3 Schma en 3me forme de modlisation dcisionnelle


ACTEUR Acteur Code Acteur Nom Acteur Prnom Date Creation Date MAJ Indicateur Activite FK_JOUER_ACTEUR_JO_ACTEUR JOUER Acteur Code Film Code Role Date Creation Date Modification int <pk,fk2> int <pk,fk1> varchar(128) datetime datetime int <pk> varchar(64) varchar(64) datetime datetime int

CINEMA GROUPE Cinema Type Cinema Groupe Date Creation Date MAJ Indicateur Activite int <pk> varchar(64) datetime datetime int

FK_FILM_ACTEUR_FI_ACTEUR

FK_CINEMA_GROUPE_CI_CINEMA_G FK_JOUER_FILM_JOUE_FILM CINEMA Cinema Code Postal Code Region Code Cinema Type Cinema Nom Date Creation Date MAJ Indicateur Activite PROJECTION FILM int <pk> int <fk> varchar(128) varchar(64) datetime int datetime datetime

int <pk> Jour int <fk2> Film Code int Cinema Code int <fk1> Nombre Spectateurs FK_PROJECTI_CINEMA_PR_CINEMA varchar(64) Recette datetime Duree Film datetime Date Creation int Date MAJ

datetime <pk,fk3> Film Code int <pk,fk1> Acteur Code int <pk,fk2> Titre FK_PROJECTI_FILM_PROJ_FILM int Genre int Date int Indicateur Activite datetime Date Creation datetime Date MAJ

FK_CINEMA_VILLE_CIN_VILLE FK_PROJECTI_TEMPS_PRO_TEMPS VILLE Postal Code Region Code Ville Date Creation Date MAJ Indicateur Activite int <pk> int <fk> varchar(64) datetime datetime int TEMPS Jour datetime <pk> Mois integer Annee integer

FK_VILLE_REGION_VI_REGION

REGION Region Code Region Description Date Creation Date MAJ Indicateur Activite int <pk> varchar(64) datetime datetime int

Seule la table Cinema a t modifie avec lajout dune rfrence directe au niveau Rgion.

01/07/2012

122/151

ITS Formation Base B.I.

Chapitre 4

Les outils dcisionnels

01/07/2012

123/151

ITS Formation Base B.I.

S O M M A I R E HISTORIQUE DES VOLUTIONS..........................................................................................2 SOMMAIRE..................................................................................................................................2 SOMMAIRE..................................................................................................................................4 1 LA BASE DE DONNE.............................................................................................................7


1.1 Introduction : langage SQL...............................................................................................7 1.2 Gnralits sur les bases de donnes (BDD)..................................................................7 1.3 Les schmas.....................................................................................................................8 1.4 Les types de donnes.......................................................................................................9 1.5 Les contraintes champs..................................................................................................12 1.6 Prsentation de la base de donnes..............................................................................13

2 CONCEPTS DU RELATIONNEL.........................................................................................14
2.1 2.2 2.3 2.4 2.5 Domaine et relation........................................................................................................14 Dpendance fonctionnelle.............................................................................................15 Les diffrentes cls........................................................................................................15 Normalisation.................................................................................................................16 Exercice sur les concepts du relationnel.......................................................................20

3 LE LANGAGE SQL.................................................................................................................21
3.1 Les oprateurs................................................................................................................21 3.2 Le langage de dfinition..................................................................................................24 3.3 Le langage de requte....................................................................................................30 3.4 Le langage de manipulation............................................................................................35 3.5 Le langage de contrle (Commandes DCL) => Cf Annexe...........................................37 3.6 Optimisation des requtes..............................................................................................38 3.7 Initiation aux procdures stockes.................................................................................40

4 EXERCICE SUR LE LANGAGE SQL................................................................................42 5 ANNEXES SQL........................................................................................................................44


5.1 Les commandes DCL......................................................................................................44 5.2 Les commandes transactionnelles.................................................................................55 5.3 Les fonctions SQL...........................................................................................................56 5.4 Les dclencheurs (Triggers)...........................................................................................66

SOMMAIRE................................................................................................................................74 1 ENJEUX ET DFINITION.....................................................................................................77


1.1 Enjeux du dcisionnel.....................................................................................................77 1.2 Le dcisionnel.................................................................................................................78

2 LE PROCESSUS DCISIONNEL.........................................................................................79
2.1 La ralit des systmes dinformations..........................................................................79 2.2 Vue globale.....................................................................................................................80

3 LE DATAWAREHOUSE........................................................................................................81
3.1 Objectifs...........................................................................................................................81 3.2 Dfinition..........................................................................................................................81

01/07/2012

124/151

ITS Formation Base B.I.

4 LES DATAMARTS..................................................................................................................83
4.1 Objectif............................................................................................................................83 4.2 Dfinition..........................................................................................................................83 4.3 Mise en place..................................................................................................................84

5 ANALYSE MULTIDIMENTIONNELLE.............................................................................85
5.1 Les axes danalyses........................................................................................................85 5.2 Les indicateurs................................................................................................................86 5.3 Navigation dans les donnes..........................................................................................87

6 LANALYSE DES INFORMATIONS...................................................................................88 SOMMAIRE................................................................................................................................90 1 LA CONCEPTION...................................................................................................................93


1.1 Gnralits......................................................................................................................93 1.2 Zoom sur la scurit........................................................................................................94 1.3 Gestion des performances..............................................................................................95

2 ARCHITECTURE DCISIONNELLE.................................................................................96
2.1 Description des bases intermdiaires au DWH .............................................................96 2.2 Architecture ODS -> DWH..............................................................................................97 2.3 Architecture ODS -> DWH -> DTM.................................................................................98 2.4 Architecture ODS -> DTM...............................................................................................99

3 LA MODLISATION............................................................................................................101
3.1 Dfinition des lments constituants............................................................................101 3.2 Les diffrents types de modlisation dcisionnelle......................................................103 3.3 Gestion de lintgrit des donnes...............................................................................107

4 OPTIMISATION....................................................................................................................110
4.1 Agrgation de tables de faits........................................................................................110 4.2 Partitionnement de tables de faits................................................................................110

5 EXERCICE SUR LA MODLISATION............................................................................112


5.1 Ralisation du Staging..................................................................................................112 5.2 Ralisation du DataWarehouse....................................................................................114

SOMMAIRE..............................................................................................................................124 1 ALIMENTATION DUN DATAWAREHOUSE : LES ETL...........................................127


1.1 Dfinition........................................................................................................................127 1.2 Description des composantes d'un systme ETL........................................................128 1.3 Suites ETL versus ETL maison ..............................................................................130 1.4 Exemple : IBM Datastage.............................................................................................131

2 STOCKAGE DES DONNES..............................................................................................135


2.1 SGBD Relationnel.........................................................................................................135 2.2 Les bases OLAP...........................................................................................................135 2.3 Exemple : Powerplay Transformer...............................................................................141

3 REPORTING..........................................................................................................................144
3.1 Degrs danalyse..........................................................................................................144 3.2 Cibles.............................................................................................................................145 3.3 Mtiers...........................................................................................................................145

01/07/2012

125/151

ITS Formation Base B.I. 3.4 Type utilisateurs............................................................................................................145 3.5 Exemple : Cognos ReportNet.......................................................................................146

01/07/2012

126/151

ITS Formation Base B.I.

1 ALIMENTATION DUN DATAWAREHOUSE : LES ETL


1.1 Dfinition
Extract-Transform-Load est connu sous le terme ETL. Il s'agit d'une technologie informatique intergicielle permettant d'effectuer des synchronisations massives d'information d'une banque de donnes vers une autre. Lalimentation des bases dcisionnelles ncessite dextraire la matire vive des bases oprationnelles. Cette opration consiste migrer et prparer les donnes issues des systmes oprationnels. Pour cela, il faut pralablement identifier les donnes intressantes de celles qui ne le sont pas. Le passage des donnes sources vers les systmes cibles, situs trs probablement sur des machines diffrentes, ncessite le transport des donnes mais aussi la phase de conversion de celles-ci. Enfin, il ne faut pas oublier que cette migration des donnes est un processus part entire et donc priodique. Dans certains cas, il peut mme tre effectu au fil de leau. Cette phase doit donc tre optimise et automatique.

Mtadonnes

Fdrer

Dcouvrir

Extraire

Transformer

Transporter

Charger

La problmatique de lalimentation1 dun Data Warehouse peut tre dcoupe en cinq phases : Dcouvrir : Identification et puration des donnes, Extraire : Extraction des donnes des diffrentes bases de production, Transformer : Prparation des donnes la structure du systme dcisionnel. Transporter : Transport des donnes des machines de production lenvironnement dcisionnel cible.
1

UNILOG propose des mthodes formalises pour rpondre ces problmatiques, notamment avec la dmarche CLT Les 5A ou la mise en place de capteurs pour les ERP .

01/07/2012

127/151

ITS Formation Base B.I. Charger : Chargement des donnes dans la base dcisionnelle cible. Actuellement il existe trois catgories doutils ETL : Engine-based : les transformations sont excutes sur un serveur ETL, disposant en gnral dun rfrentiel. Ce genre de doutil dispose dun moteur de transformation (Ex : Informatica, Datastage) Database-embedded (Procdures Stockes) : les transformations sont intgres dans la BD (Ex : PL/SQL sous oracle) Code-generators (ELT) : les transformations sont conues et un code est gnr. Ce code est dployabe indpendamment de la base de donnes (Ex : Sunopsis, Genio).

1.2 Description des composantes d'un systme ETL


En gnral les entrepts de donnes sont aliments partir des systmes oprationnels dans le but de transformer les donnes transactionnelles (Ou oprationnelles) d'un processus d'affaire en information qui sera utile la prise de dcision.

1.2.1 Extraction des donnes sources


Il faut commencer par identifier les donnes, cest dire choisir les donnes intressantes, les localiser dans le SI, puis les purer. Epurer consiste rsoudre les problmes de conflit et de redondance et lire les sources de donnes de meilleure qualit. Selon la nature de ces systmes sources, l'extraction peut s'avrer critique et trs exigeante dans le sens ou il faut la raliser le plus rapidement et ce en exploitant au minimum les ressources du systme source. Les donnes sont : htrognes (diffrents SGBD et diffrentes mthodes daccs), diffuses (diffrents environnements matriels et diffrents rseaux interconnects ou non), complexes (diffrents modles logiques et physiques principalement orients vers les traitements transactionnels). La synthse de ces donnes sources a pour but de les enrichir. De plus, une fois le systme dcisionnel aliment pour la premire fois, les flux de donnes vont venir rafrachir la base dcisionnelle priodiquement. Lidal dans ce cas est de ne recharger le DataWarehouse quavec les donnes modifies ou ajoutes depuis la dernire extraction. Lide consiste raliser une extraction diffrentielle en utilisant un mcanisme de marquage des donnes, souvent en utilisant la date de dernire modification associe la donne. Plus les volumes de donnes manipuls sont imposants, plus cette fonctionnalit devient incontournable En gnral les extractions sont lances la nuit durant ce l'on appelle un Extract Window sur lequel on s'est mis d'accord. La complexit de l'extraction n'est pas dans le processus de lecture, mais surtout dans le respect de l'extract window. C'est pour cette raison que l'on effectue rarement des transformations lors de l'extraction d'une part. D'autre part, on essaye au maximum d'extraire seulement les donnes utiles (Mise jour ou ajoute aprs la dernire extraction). Pour ce faire, il faut prvoir soit un flag ou encore des dates dans chacune des tables extraites : date de cration de l'enregistrement et la date de mise jour (En gnral la plupart des systmes sources disposent de ces deux dates). Par ailleurs pour ne pas perdre des donnes suites des problmes d'extraction, il est important de s'assurer que le systme source ne purge pas les donnes avant que l'entrept ne les aies extraits.

01/07/2012

128/151

ITS Formation Base B.I.

1.2.2 Transformation
Cest une suite doprations qui a pour but de rendre les donnes cibles homognes pour ainsi tre traites de faon cohrente : donnes aberrantes, donnes sans valeurs ou avec des valeurs manquantes, donnes smantiquement faussesIl faut avoir une bonne connaissance des donnes entreposer et des rgles qui les rgissent. Il est souvent ncessaire galement de pouvoir synchroniser des donnes provenant de fichiers diffrents (plusieurs fichiers clients par exemple) et dont les cls ne sont pas forcment identiques. Il faut alors, soit recrer les cls partir dun des formats existants, soit calculer une nouvelle cl pour chaque occurrence du fichier cible Voici les grandes fonctionnalits de transformation : Nettoyage des donnes Standardisation des donnes Conformance des donnes Gestion des tables de fait Gestion des dimensions Gestion de lintgrit Affectations des cls de substitution (surrogate key) Gestion de l'volution lente (Slowly changing dimension) Gestion des lookups Il faut grer les anomalies en les traitant et en gardant une trace.

1.2.3 Chargement
Le chargement est la dernire phase de lalimentation du DataWarehouse. Cest une phase dlicate notamment lorsque les volumes sont importants. Pour obtenir de bonnes performances en chargement, il est impratif de matriser les structures du SGBD (tables et index) associes aux donnes charges afin doptimiser au mieux ces processus. Les techniques de paralllisation optimisent les chargements lourds. Pour les mettre en uvre, des utilitaires particuliers existent chez la majorit des diteurs de bases de donnes. Il faut dfinir en particulier le type daction de chargement : purge et insert, insert et mise jour, mise jour uniquement. Il faut grer les anomalies de chargement en les traitant et en gardant une trace

1.2.4 Monitoring
En complment, on trouve des outils d'audit et d'analyse pour assurer le suivi du processus afin notamment de contrler les rejets. Il faut prvoir dans la modlisation une table de monitoring de suivi des processus et une ou plusieurs tables de gestion des rejets. A la demande du client, il est assez frquent de mettre en place un utilitaire (en WEB ou autres) pour suivre le monitoring et visualiser les rejets.

01/07/2012

129/151

ITS Formation Base B.I.

1.3 Suites ETL versus ETL maison


1.3.1 Lalimentation par des dveloppements spcifiques
Les dveloppements spcifiques sappuient sur des produits livrs en standard avec la base de donnes utilise et sur lcriture de programmes permettant lextraction des donnes des bases de production. Avantages Le cot trs faible de cette solution, il ny a pas de logiciels dextraction souvent trs coteux acqurir, La souplesse de cette solution, aucunes contraintes lies lutilisation dun logiciel spcifique. Inconvnients Il y a souvent beaucoup plus redvelopper en spcifique que ce qui avait t prvu initialement : o Extraction et transformations complexes, o Cycle de mises jour et dveloppement des outils ncessaires leur automatisation (y compris les enchanements entre les diffrents processus dextraction, de transfert et de mise jour pouvant se situer sur des machines distinctes), o Visualisation des journaux dexcution des diffrents processus permettant la mise jour du Data Warehouse. En spcifique, il sera plus difficile de dfinir un dictionnaire de meta-donnes permettant entre autre de bien connatre le cycle de vie de chaque donnes. Les rgles de traductions seront alors implmentes en dur dans le code. De nouveaux dveloppements sont ncessaires pour chaque nouvelle application intgrer ou chaque modification dune application source existante.

1.3.2 Lalimentation par des outils spcifiques


De nombreux outils permettant la matrise des phases dextraction, de transformation, et de chargement des donnes ont vu le jour sur le march. Avantages Le stockage des mtadonnes au sein dun rfrentiel unique, facilitant grandement lvolution du systme, Lextraction des donnes de la majorit des bases du march sans programmation via un accs souvent natif, Le traitement et la transformation des donnes (fusion, nettoyage, rejets, ) par des fonctions et des transformations standards intgres aux outils, Lordonnancement des traitements (extraction, transfert, transformation, chargement, ). Inconvnients Le cot de ces solutions est assez lev (>15k, voire 50k et plus). Cependant, ce cot est relativiser par rapport au cot global du projet. Ainsi, si un projet commence par un simple DataMart, il a souvent tendance voluer vers un Data Warehouse structurant et alimentant plusieurs DataMarts. Notre exprience dans le domaine nous a dmontr que mme pour les projets de petite envergure, il est conseill de dvelopper un systme ETL en utilisant une suite ETL.

01/07/2012

130/151

ITS Formation Base B.I.

1.4 Exemple : IBM Datastage


1.4.1 Prsentation
Type de projet informatique utilisant Datastage. Interfaage de progiciels : les bases de donnes sources et cibles sont prexistantes. Dcisionnel : automatisation du processus dalimentation dun datawarehouse (schma relationnel). Ltape suivante est la restitution des donnes dcisionnelles sous forme de tableaux, cubes, pages Web Architecture Datastage : Datastage sintgre dans un environnement Client/Serveur. Le dveloppement des traitements ETL se fait au niveau du poste client connect au serveur Datastage.

Lexcution des jobs se fait au niveau du moteur : il tablit les connexions aux diffrentes bases de donnes adresses avant dexcuter le code stock dans le rfrentiel. Les machines sur lesquelles les modules client et le moteur Datastage sont installes doivent tre visibles entre elles : elles sont identifies par leur nom ou leur adresse IP et doivent tre lies via le rseau (TCP/IP) Seul le serveur communique avec les bases de donnes. Cette liaison seffectue soit par des canaux natifs (Oracle,Sysbase,DB2) soit au travers dun pilote ODBC

01/07/2012

131/151

ITS Formation Base B.I.

1.4.2 Les composants

Les 4 composants clients sont accessibles avec des accs restreints suivant le profil de lutilisateur : Dveloppeur, oprateur. Administrator : Interface graphique dadministration des projets installs sur un serveur Datastage donn. Manager : Interface graphique de cration, de visualisation et de mise jour du contenu du Rfrentiel au travers dune structure arborescente. Designer : Interface de modlisation qui permet de crer les jobs Datastage. Director : Interface graphique dexcution, de contrle et de tests des traitements ETL.

1.4.3 Vue de jobs ETL


La fentre ci dessous donne une vue de linterface de dveloppement

01/07/2012

132/151

ITS Formation Base B.I. Zoom sur la palette des stages disponibles : Annotation : permet dinsrer des bulles explicatives au design. Container : reprsente un groupe de stages et de liens. Link : stage de lien. DB2 : stage entre/sortie DB2/UDB. Oracle : stage entre/sortie Oracle (avec toutes les versions). ODBC : stage entre/sortie pour pilote ODBC Folder : permet daccder en lecture/criture une liste de fichiers. Hashed File : extrait ou charge des donnes dans des fichiers cods. Sequential File : extrait ou crit des donnes dans des fichiers textes. Aggregator : stage dagrgation de donnes. Sort : stage de tri de donnes. Transformer : applique des transformations sur un flux de donnes. Real Time : utiliser dans le cadre dun besoin de temps rel . Favorites : cet onglet permet de regrouper les stages que le dveloppeur utilise le plus frquemment. Job ETL Simple : Source : Oracle Cible : fichier texte Rfrences : Oracle (bases de donnes diffrentes) Les sources tant sur des bases de donnes diffrentes, une jointure SQL en source est impossible. Il faut donc utiliser une jointure ETL avec des rfrences. Gestion des rejets

REFERENCES

SOURCES

TRANSFORMATIONS

CIBLES

REJETS

01/07/2012

133/151

ITS Formation Base B.I. Jobs ETL Complexes : 1 job ET & 1 job TL

JOB 1

JOB 2

01/07/2012

134/151

ITS Formation Base B.I.

2 STOCKAGE DES DONNES


Il existe, comme dj expliqu pour la modlisation, deux grands types de bases : les bases relationnelles et les bases multidimensionnelles (dont la ralit physique est OLAP). Le stockage est INDEPENDANT du modle : on peut trs bien modliser la base en toile et la stocker en relationnel. Nous verrons quil existe dailleurs un type de OLAP particulier qui utilise ce principe.

2.1 SGBD Relationnel


Les bases de donnes relationnelles sont des implmentations des concepts relationnels dfinis par E. Codd en 1970 et comprennent un certain nombre de points communs. Elles sont portables dune machine une autre, voire dun SGBD/R un autre, mme si certaines interprtations sont diffrentes selon les diteurs. SQL permet aussi bien de manipuler les objets de la base de donnes elle-mme (mta donnes) que les donnes quelle contient. Les SGBD/R les plus connus sont : Oracle avec Oracle Server, IBM avec DB2 Microsoft avec Sql-Server Avantages Les bases de donnes relationnelles : Savent grer de trs gros volumes de donnes (plusieurs tera-octets), notamment avec de puissants mcanismes de partitionnement. Sont adaptes aux machines possdant des architectures parallles, Evoluent de plus en plus pour rpondre aux besoins du dcisionnel (index Bitmaps, nouveaux oprateurs dcisionnels, ), Permettent daccder aux donnes via le langage normalis SQL, Evoluent et peuvent sadapter assez rapidement grce leurs diteurs qui possdent un pouvoir dinvestissement trs important. Inconvnients Les bases de donnes relationnelles : Sont moins rapides que les bases multidimensionnelles puisque les calculs dagrgats doivent tre effectus en dynamique, moins quils naient t dfinis lors de la phase danalyse, auquel cas, ils sont stocks en table. Ncessitent plus de travail et de comptences de type DBA que les bases multidimensionnelles.

2.2 Les bases OLAP


La lenteur des SGBD/R classiques sur des requtes un peu lourdes (agrgats,) a prcipit la cration de bases adaptes au dcisionnel, des bases avec des agrgats dj effectus, cest dire des bases multidimensionnelles. Le systme technique qui sert de support ce type de systme sappelle OLAP (Online Analytical Process), et a t dfini par E.F.Codd suivant 12 rgles en 1993. Ces rgles ont t compltes par 6 autres en 1995 et rorganises pour mieux reflter lutilisation dOLAP.

01/07/2012

135/151

ITS Formation Base B.I.

2.2.1 Rgles OLAP


2.2.1.1 Principes de bases
Multidimensionnalit : le systme doit permettre une vue multidimensionnelle des donnes. Cest le centre du systme OLAP, et vous remarquerez que cest la vue qui doit tre multidimensionnelle, pas forcment le stockage en lui mme. Intuitivit : la manipulation des donnes doit tre simple et intuitive. Accessibilit : OLAP est un middleware, se situant entre des bases htrognes et un utilisateur OLAP (reporting, requeteur,). Un maximum de types de source doit tre support. Accs calculs ou interprts : cette rgle impose que le systme permette daccder aux donnes de la base OLAP aussi bien que daccder directement aux donnes sources. Modles danalyse OLAP : les produits OLAP doivent supporter les quatre modles de visualisation et danalyse dcris par Codd. Architecture Client-Server : non seulement OLAP doit adopter une architecture clientserver, mais il doit aussi permettre un maximum de clients de se connecter de la manire la plus simple possible (sans programmation,). Transparence : le moteur OLAP doit tre transparent, cest dire quun client peut rcuprer des donnes sur un serveur via une feuille de calcul par exemple, sans se rendre compte de leur provenance. Support multi-utilisateurs : il doit pouvoir grer le multi-utilisateurs, cest dire les problmes dintgrit des donnes, de scurit,

2.2.1.2 Principes spciaux


Traitement des donnes non normalises : Les sources de donnes non normalises doivent pouvoir tre traites. Toutefois, les bases dnormalises ne doivent pas pouvoir tre modifies. Stocker sparment les donnes produites par OLAP et les donnes sources : autrement dit, ne pas implmenter dapplication OLAP directement sur les bases de productions. Extraction des donnes manquantes : lobjectif est de distinguer une donne manquante dune valeur zro. Traitement des donnes manquantes : les donnes manquantes doivent tre ignores du serveur quelle que soit leur source.

2.2.1.3 Principes lis au reporting


Reporting flexible : les utilisateurs doivent pouvoir naviguer entre les dimensions selon leur besoin. Performance de reporting stable : la performance ne doit pas tre altre par le nombre de dimensions ou la taille de la base.

01/07/2012

136/151

ITS Formation Base B.I. Ajustement physique automatique : Les systmes OLAP doivent ajuster leur modle physique en fonction du modle, de la taille des donnes,

2.2.1.4 Principes lis aux dimensions


Dimensionnalit gnrique : toutes les dimensions doivent tre accessibles pour chacune des donnes. Nombre illimit de dimensions et daggregation : on notera que techniquement, le respect de cette rgle est impossible ; on demandera donc plutt un nombre suffisant. Pas de restriction sur le croisement des dimensions : les oprations doivent tre autorises sur toutes les dimensions, qui doivent tre toutes accessibles.

2.2.1.5 Synthse et mthode FASMI


Il est vident que toutes les rgles ne peuvent pas tre respectes la lettre, ne seraitce que parce que tous les diteurs ne sont pas daccord sur ces dernires. Certaines rgles peuvent tre ignores (17 et 18) si les limites sont suffisamment leves ; dautres apparaissent comme antagonistes dans un contexte o linformatique nest pas toute puissante (proposer la fois un accs stable et multi-utilisateurs). Enfin, et surtout, certaines rgles portant sur larchitecture du systme ne conviennent pas forcment aux besoins de lutilisateur. Il nest donc pas utile de vrifier toutes ces rgles lors du choix dune plate-forme OLAP. Le site OLAP Report a publi en 1995 un test qui a largement fait ses preuves pour ce choix : le test FASMI, ou Fast Analysis of Shared Multidimensional Information. Fast : le systme doit dlivrer une rponse la plupart des oprations dans les cinq secondes. Au del de 20 secondes, la plupart des utilisateurs finaux considrent le programme plant. Analysis : le programme doit proposer les outils danalyses ncessaire pour lutilisateur sans quils ncessitent une configuration complexe (programmation par exemple). Shared : la plate-forme doit pouvoir grer les options de partage : scurit, intgrit si il y a plusieurs autorisations dcriture, confidentialit, Multidimensional : il doit bien sr proposer une vue multidimensionnelle des donnes. Cest le point central dOLAP. Information : il doit avoir des capacits de traitement de linformation (en terme de quantit) suffisantes. Suffisant est videmment spcifique chaque problme donn.

2.2.2 Le cube OLAP


Une base de donnes traditionnelle ne permet aux utilisateurs que des visions en deux dimensions comme par exemple ltude des produits par client. Une base de donnes multidimensionnelle, souvent reprsente sous forme de cube ou dhypercube, permet aux utilisateurs une analyse intgrant plusieurs dimensions comme par exemple le chiffre daffaires en fonction des axes ou dimensions clients , produits , temps . En outre, des hirarchies seront dfinies pour chaque axe d'analyse (par exemple, l'anne, puis la saison, le mois et la semaine, pour l'axe temps). Une fois cette structure multidimensionnelle

01/07/2012

137/151

ITS Formation Base B.I. tablie, l'outil OLAP propose des mthodes de navigation dans les donnes, comme le "drill-down" pour aller vers les informations dtailles dans une hirarchie, le "slice and dice" pour changer d'axe d'analyse. Comme son nom lindique, lanalyse multidimensionnelle est base sur le concept de dimensions. Chaque dimension peut possder une hirarchie associe des niveaux de consolidation. Chaque position dans un tableau multidimensionnel, correspondant une intersection de toutes les dimensions est appele une cellule. Ces dimensions peuvent tre affines, dcomposes en hirarchies, afin de permettre lutilisateur dexaminer ses indicateurs diffrents niveaux de dtail, de " descendre " dans les donnes, allant du niveau global au niveau le plus fin.

2.2.2.1 Les outils MOLAP


MOLAP est conue exclusivement pour lanalyse multidimensionnelle, avec un stockage optimis par rapport aux chemins prdfinis. Ainsi, toute valeur dindicateur associe laxe temps sera prcalcule au chargement pour toutes ses valeurs hebdomadaires, mensuelles, etc MOLAP agrge tout par dfaut.

Data Warehouse

Moteur MOLAP

Aide la dcision

Donnes Stockage des donnes dtailles (et agrges)

Traitements

Prsentation Rapports Multi-Dimensionnel

Les donnes sont stockes dans une base de donnes multidimensionnelles le plus souvent propritaires. Cependant il ya des limitations quand la quantit de donnes. Du point de vue de laccs aux donnes, MOLAP se rapproche du squentiel index. Pour accder aux donnes de ce cube, on ne peut pas utiliser le langage de requte standard SQL, il faut utiliser une API spcifique. Cette technique est notamment utilise par : Hyperion Essbase dOracle Powerplay de Cognos Analysis Services de Microsoft Avantages Plus rapide tant que le volume du cube manipuler reste raisonnable. Plus puissant que ROLAP pour les fonctionnalits avances comme la prvision ou la mise jour des donnes pour la simulation.

01/07/2012

138/151

ITS Formation Base B.I. Inconvnients Plus le volume de donnes grer est important, plus les principes dagrgations implicites proposs par MOLAP sont pnalisants dans la phase de chargement de la base, tant en performances quen volume. Selon les offres et lapplication concerne, la limite pourra se situer entre quelques centaines de Mo et quelques Go de donnes brutes. Incompatible avec dautres modes daccs aux donnes, cependant des outils spcifiques (requteurs, Data Mining, ) savent accder ces donnes soit en natif, soit frquemment via une API spcifique de type OLE DB. Sans quoi, il peut tre ncessaire de faire cohabiter deux bases de donnes ! A choisir si Base de donnes de taille raisonnable, Temps de rponse trs rapide demands en restitution.

2.2.2.2 Les outils ROLAP


Les bases ROLAP (Relationnal OLAP) sont des bases de donnes OLAP dont linformation est stocke dans une base de donnes relationnelle. Un dictionnaire permet de faire apparatre cette information comme tant multidimensionnelle. Pour cela, ces outils sappuient pour la plupart sur une modlisation particulire des donnes, distinguant les axes danalyse et les faits observer

Data Warehouse

Moteur ROLAP

Aide la dcision

Donnes Stockage des donnes dtailles (et agrges) et des mta-donnes

Traitements Gnration de plans d'excution SQL afin d'obtenir des fonctionnalits OLAP.

Prsentation Rapports Multi-Dimensionnel

ROLAP propose une surcouche dabstraction sur un modle relationnel, qui peut sapparenter une version multidimensionnelle des dictionnaires des requteurs. Les outils ROLAP proposent le plus souvent un composant serveur pour optimiser les performances lors de la navigation dans les donnes ou pour les calculs complexes. Du point de vue de laccs aux donnes, ROLAP sappuie sur les techniques usuelles des SGBDR (jointures, index, ). ROLAP n'agrge rien, mais tire parti des agrgats s'ils existent. De ce fait ROLAP est plus lourd administrer que MOLAP, puisqu'il demande de crer explicitement certains agrgats. En s'appuyant sur les bases relationnelles, rfrence du march, ROLAP tire partie des volutions de celles-ci (adaptation aux architectures hardware sophistiques, extensions objets, etc.). Cette technique est notamment utilise par :

01/07/2012

139/151

ITS Formation Base B.I. MicroStrategy Cartesis Avantages Peut supporter de trs gros volumes en exploitant des techniques de partitionnement de donnes ou daccs en parallle. Tire parti des volutions des bases relationnelles (adaptation aux architectures hardware complexes, extension objet, etc.). Mise en uvre des requtes complexes plus facile. Pas de SGBD multidimensionnel acqurir Inconvnients Plus lent que MOLAP sur de petits volumes. Plus lourd administrer que MOLAP puisquil demande de crer explicitement certains agrgats. Ncessite des efforts de conception, dadministration et de tuning. A choisir si Base de donnes de taille importante

2.2.2.3 Les outils HOLAP


Le modle HOLAP (Hybrid OLAP) fait converger les modles MOLAP et ROLAP. Cette technique permet dexploiter simultanment un SGBD/R et un SGBD/M (base de donnes multidimensionnelle) pour mettre en uvre des requtes de type OLAP. Les informations pourront tre gres physiquement tantt par le SGBD/M tantt par le SGBD/R. Les informations manipules sont vues par lutilisateur comme des donnes OLAP classiques. Avec cette approche, on ne stocke dans la base multidimensionnelle que certaines donnes, les autres tant gres par une base relationnelle. Cette technique a t adopte par : Oracle Express, SAS Institute,

2.2.2.4 Synthse
La classification en diffrentes catgories OLAP ne suffit pas dterminer les capacits dun produit, elle permet simplement davoir une ide sur les points forts et faibles de ces diffrentes technologies. De plus, ce march volue trs vite, et les grands diteurs de bases relationnelles ne cessent dajouter des fonctionnalits OLAP leurs produits, tandis que les diteurs de bases multidimensionnelles tendent sinterfacer avec les bases relationnelles pour le stockage des informations de dtail. En conclusion, on peut noter que de plus en plus de produits offrent la possibilit de travailler dans les deux mondes, relationnel et multidimensionnel afin de tirer le meilleur de chaque technologie.

01/07/2012

140/151

ITS Formation Base B.I.

2.3 Exemple : Powerplay Transformer


2.3.1 Principes de fonctionnement
Cognos Transformer est un outil de modlisation de modles multidimensionnels partir de donnes sources. Il propose de se connecter un ou plusieurs entrepts de donnes (DWH) afin d'extraire des donnes pertinentes et de les diffuses sous forme de cubes dits OLAP (Online Analytical Processing ) On parle de tableau pour une analyse 2 axes, de cube pour une analyse 3 axes et dHypercube pour une analyse suprieure 3 axes. Powerplay Transformer permet la modlisation de ces hypercubes. L'utilisateur final aura accs selon ses droits accs tout ou partie du cube, pourra dvelopper des tats sur l'interface web ou sur le client Powerplay.

2.3.2 Architecture dcisionnelle

01/07/2012

141/151

ITS Formation Base B.I.

Chaque cube auquel vous accdez dans PowerPlay est bas sur un modle Transformer. Pour crer un modle, vous devez : spcifier les sources de donnes pour le modle, dfinir les dimensions, les niveaux et les mesures dans le modle,

2.3.3 Interface Transformer

01/07/2012

142/151

ITS Formation Base B.I.

2.3.4 Interface PowerPlay (user)

01/07/2012

143/151

ITS Formation Base B.I.

3 REPORTING
Lobjectif mme de linformatique dcisionnelle est partir de donnes brutes, en gnral sous forme de sens le plus large possible), et ainsi tre en mesure va mme jusqu proposer lui-mme un dbut de front users, utilisateurs finaux. de pouvoir produire de linformation rapports (nous prendrons ici ce mot au de prendre une dcision (le datamining solution). Cest donc un outil orient

Le Datawarehouse nest quun outil pour rassembler les donnes des bases de productions et fournir ainsi une information plus complte, de meilleure qualit, etc Le reporting peut aussi bien se servir des bases de production que du Datawarehouse ou des Datamarts. Le reporting nest pas une simple visualisation des donnes ; il offre un dbut danalyse. Par exemple, plus que de pouvoir visualiser les chiffres dun clusters, il doit permettre de les croiser avec dautres donnes pour obtenir une information plus pertinente (dans le sens : utile pour la prise de dcision). A linstar des autres secteurs du dcisionnel, chaque outil de reporting a ses spcificits quil faut tudier en fonction des besoins. Ltude qui suit est divise en quatre parties : la premire tudie le reporting en fonction du degr danalyse souhaite, la suivante en fonction du corps de mtier de lutilisateur, ensuite en fonction de la diffusion vise (Internet, document Excel ou Word, etc) et enfin en fonction du niveau de comptence des cibles.

3.1 Degrs danalyse


Les outils de reporting vont de la simple visualisation de donnes au recoupement, cration de tableau crois, etc Le problme nest videmment pas de choisir le logiciel le plus performant mais le plus adapt, parfois un outil plus simple mais moins cher est suffisant. Certains diteurs proposent dailleurs plusieurs outils dans ce sens : Cognos propose ainsi ReportNet pour la cration de rapports et Powerplay pour la visualisation de donnes multidimensionnelles. Les deux outils ne sont pas destins aux mmes utilisateurs (voir plus bas, diffrent types dutilisateur). La navigation dans une base de donnes relationnelle consiste lire un tableau. Mais pour la lecture de cube, il faut faire face aux multiples dimensions. Celles ci apportent de nombreuses fonctions et le vocabulaire qui va avec. Les oprations qui suivent sont accessibles dans tous les outils de visualisation (comme Powerplay de Cognos), mais avec plus ou moins de facilit et de souplesse. Nesting Type de prsentation permettant de visualiser plusieurs dimensions en un tableau. Les dimensions peuvent tre disposes sur les colonnes ou sur les lignes. Drill Le drill consiste a passer dun niveau dagrgation un autre. Par exemple passer dune somme par anne une somme par mois. On distingue les drill up (monter dun niveau, de mois anne par exemple), le drill down (dans lautre sens, de anne mois) et le drill through (de semaine anne sans passer par jours). Rotation

01/07/2012

144/151

ITS Formation Base B.I. Consiste passer une ou plusieurs dimensions des colonnes vers les lignes ou vice-versa. Slice and Dice Slice ou tranche indique une portion dun cube. Slice & Dice est le fait de slectionner une portion en particulier pour la visualiser via des oprations de drill et de rotation.

3.2 Cibles
La publication des rapports peut se faire sur de multiples supports. Selon le nombre de destinataires, il est mme fort possible dutiliser plusieurs supports dans un mme projet. Les canaux de distribution peuvent aussi varier : envoie par e-mail, diffusion intranet ou Internet, stockage en local Tous les outils de reporting ne grent pas les mmes formats, et peu proposent un systme de diffusion via de multiples canaux. Cette partie dpend des utilisateurs finaux, il faut donc bien savoir qui sadressent les rapports et o sont accessibles ces personnes pour dterminer dans un premier temps le(s) format(s) ncessaire(s), les moyens de diffusion employer, et ainsi complter la liste des critres pour le choix dun outil de reporting.

3.3 Mtiers
Aprs tre restes quelques temps gnralistes, les applications dcisionnelles, pour tre plus proche des besoins des utilisateurs, se sont spcialises. On trouve maintenant un certain nombre de modules et dapplications ddis un corps de mtier en particulier. Bien que le dcisionnel trouve cho dans de nombreux domaines, certains secteurs sont beaucoup plus demandeurs que dautre : les assurances, les banques, la grande distribution, chacun ayant des besoins propres. Certains logiciels proposent un ensemble de modules spcialiss dans le domaine de la Finance (Ex : Hyperion Planning). Chacun apporte des outils danalyse utiliss spcifiquement dans le secteur auquel il est destin.

3.4 Type utilisateurs


Les applications utilisateurs sont destines, dune manire gnrale, permettre aux utilisateurs finaux daccder aux donnes autrement quen allant lire les tables. Ils ne doivent normalement pas avoir besoin dtre des techniciens ; il peut sagir par exemple dun DRH. On distingue trois types dutilisateurs : Les utilisateurs dtats standards : On a fait pour eux des rapports tous prts qui se mettent jour automatiquement. Les informations ainsi obtenues sont toujours les mme. Il peut sagir par exemple dun tat bon de commande utilis par un acheteur. Outil typique : Business Objects. Les utilisateurs pousse-boutons : Ceux l slectionnent les informations quils dsirent via des boites de dialogue. Ils peuvent ainsi aisment crer de nombreuses requtes simples et les prsenter comme ils le dsirent (graph en tout genre, etc). Outil typique : Impromptu de Cognos. Les utilisateurs Ad-Hoc :

01/07/2012

145/151

ITS Formation Base B.I. Ils sont capables de rdiger des requtes complexes (rfrences croises, jointures) en fonction des besoins. Les requtes ainsi cres peuvent tre migres vers une application utilisateur pour servir dans un rapport. Les applications permettant des requtes Ad-Hoc, via un wizard ou directement en SQL, proposent de rapatrier des donnes sans passer par un masque. Cela implique que de tels utilisateurs connaissent la structure de la base de donnes source, ce qui en gnral inclut une connaissance du SQL.

3.5 Exemple : Cognos ReportNet


3.5.1 Principes de fonctionnement
ReportNet sinsre dans un modle dcisionnel classique. Il propose de se connecter un ou plusieurs entrepts de donnes (DWH) afin dextraire des donnes pertinentes et de les mettre sous forme de rapports ou de graphique. Lutilisateur final, en fonction de son profil, sera capable de crer ces propres analyses et rapports. Afin de pouvoir restituer linformation, ReportNet se base sur une base de mtadonnes (Content Store) qui va contenir les informations techniques comme le dictionnaire des donnes, les relations entre les tables de DWH, les descriptions des rapports, Remarque : Le fonctionnement optimum de ReportNet impose dadapter le DWH au besoin de loutil. Ce point sera dautant plus important que la volumtrie de la base sera importante. Il sera par exemple ncessaire de crer des agrgats.

3.5.2 Architecture dcisionnelle

DWH

MtaData Content Store

Serveur ReportNet

Web

Sources Dauthentification

01/07/2012

146/151

ITS Formation Base B.I. TROIS TIERS : ce fonctionnement utilise le module Intelligence Server comme moteur SQL et Moteur Analytique. Contrairement au prcdent, ce fonctionnement centralise les connexions aux bases de donnes. Il peut donc possible damliorer les performances de loutil en mettent en place des stratgies de cache

3.5.3 Presentation de Report Studio


3.5.3.1 Interface utilisateur
L'interface de Cognos Report Studio se compose de deux volets, d'une barre d'exploration et d'une zone de travail.

3.5.3.2 Volet Objets insrables


Le volet Objets insrables contient des objets que vous pouvez ajouter un rapport. Il contient les onglets suivants : L'onglet Source contient des lments du pack slectionns pour le rapport, tels que des lments de requte et des calculs. L'onglet Donnes lmentaires dcrit les requtes cres dans le rapport. L'onglet Bote outils contient divers objets que vous pouvez ajouter au rapport, tels que des textes et des images.

3.5.3.3 Volet Proprits


Le volet Proprits prsente les proprits que vous pouvez dfinir pour un objet dans un rapport. Vous pouvez obtenir des informations complmentaires sur une proprit en la slectionnant, puis en cliquant sur F1. Conseil : Affichez une description de la proprit slectionne au bas du volet. Dans le menu Affichage, cliquez sur l'option Descriptions des proprits. 01/07/2012 147/151

ITS Formation Base B.I.

3.5.3.4 Barre d'exploration


La barre d'exploration contient les boutons suivants permettant de travailler sur les diffrentes parties d'un rapport : Positionnez le pointeur sur le bouton Explorateur de pages pour accder une page de rapport ou une page d'invite spcifique. Conseil : Vous pouvez galement ajouter une nouvelle page de rapport ou une page d'invite . Positionnez le pointeur sur le bouton Explorateur de requtes pour travailler sur les requtes. L'Explorateur de requtes permet de crer ou de modifier des requtes, ainsi que d'excuter des tches complexes, telles que la dfinition de jointures d'union et l'criture d'instructions SQL. Positionnez le pointeur sur le bouton Explorateur de conditions pour travailler sur les variables. Les variables permettent d'ajouter une mise en forme conditionnelle un rapport.

3.5.3.5 Zone de travail


La zone de travail est l'emplacement o vous concevez les rapports.

01/07/2012

148/151

ITS Formation Base B.I.

GLOSSAIRE

01/07/2012

149/151

ITS Formation Base B.I.

GLOSSAIRE
Analyse multidimensionnelle : concept qui dfinit les analyses effectues par croisement de plus de trois dimensions (ou ensemble de donnes du mme type ou encore axes). Applications analytiques : applications dcisionnelles prtes lemploi (livres avec un modle de donnes, des requtes pr paramtrs, etc. pour lanalyse dun domaine spcifique : CRM, budget, etc. Axe danalyse : ou dimension. Les ventes dun produit peuvent par exemple tre analyses par rgion (axe 1), poque (axe 2), magasin (axe 3), etc. Cube : Structure multidimensionnelle permettant lanalyse dinformations factuelles en les segmentant sur un ensemble daxes danalyses. Datamart : base de donnes, spcifique au monde dcisionnel, oriente sujet ou mtier. Un Datamart peut contenir des donnes dupliques dun Datawarehouse et/ou des donnes locales. Datamining : Traitement et analyse statistiques de bases de donnes permettant dtablir des relations et des comportements types. Avec lanalyse multidimensionnelle classique, on sait ce que l on cherche tandis quavec le datamining, on ne sait pas forcment ce que lon cherche. On essaye plutt dtablir des corrlations entre des donnes afin den tirer des renseignements, des indicateurs, des anomalies, des correspondances, etc. qui peuvent mettre en vidence des tendances. Datawarehouse : ou entrept de donnes. Base dans laquelle les donnes sont centralises et organises pour le support dun processus d aide la dcision. Dcisionnel : Processus dutilisation de connaissances extraites par analyse des informations et des donnes gnres par les processus mtiers de lentreprise pour dterminer la meilleure action entreprendre, la meilleure dcision prendre. Dimension : ou axe. Les ventes dun produit peuvent par exemple tre analyses par rgion (axe 1), poque (axe 2), magasin (axe 3), etc. Il existe plusieurs type de dimension ( Dgnre, Junk...) Drill down (ou drill through) : mcanisme de navigation dans une structure multidimensionnelle permettant daller du plus global au plus dtaill laide de requtes de type hirarchique. ETL : Extract Transform Loading. Serveur charg dextraire, nettoyer et transformer les donnes manant de sources diverses pour ensuite les insrer dans une base de donnes (datawarehouse, datamart, etc.). Fait : Mesure, que l'on veut analyser, exemple le total des ventes. Il existe plusieurs type de faits, additive, semi-additive, de couverture... Indicateur : statistique, suivie au fil du temps, qui prsente les tendances dune condition ou dun phnomne, au-del des proprits de la statistique elle-mme. Les indicateurs permettent dobtenir de linformation supplmentaire. Ils offrent un moyen dvaluer les progrs en vue dun objectif. On peut concevoir toutes sortes dindicateurs : mesure de la rentabilit, des ventes, de lvolution des clients, etc. Intgrit : Ensemble de contraintes appliques aux mises jour dune base de donne permettant de garantir la cohrence des donnes. Ces contraintes peuvent tre des listes de valeurs respecter (non nullit et intgrit de domaine) ou bien des liens entre des tables (intgrit rfrentielle). Par exemple, une commande doit forcment rfrencer un client : le numro de client insr dans une ligne de la table commande doit exister dans la table client.

01/07/2012

150/151

ITS Formation Base B.I.


Jointure : Rapprochement entre deux tables par comparaison de valeurs communes, sur la base dun attribut commun. Jointure externe : Jointure prservant les lignes dune premire table, mme si lattribut de jointure n'apparat pas dans la seconde. Meta-donnes : Les mta-donnes sont des informations qui renseignent sur la nature de certaines donnes. Les mta-donnes que lon peut par exemple associer un document sont : son titre, son auteur, sa date de cration, etc. Dans le cadre du dcisionnel, elles constituent une sorte de dictionnaire sur lequel le systme sappuie pour comprendre des donnes utilises par les diffrentes applications qui alimentent le datawarehouse. Les intituls "Client" dun PGI et "nom" dune application comptable peuvent contenir les mmes informations mais le systme ne peut le savoir que si un dictionnaire a t conu pour lui indiquer quil sagit de la mme nature dinformations. Les mta-donnes englobent galement lensemble des informations relatives la provenance, l historique et aux traitements associs aux donnes dun datawarehouse. Modle de donnes : organisation des donnes dans une base dans une structure de tables, colonnes, champs etc. pour lunivers relationnel, autre pour les bases OLAP dont la structure est souvent propritaire. Nettoyage de donnes : Processus visant homogniser les donnes pour les rendre exploitables. Le nettoyage des donnes assure leur intgrit en liminant les doublons, en corrigeant lorthographe et en supprimant ou compltant les champs non renseigns. Les oprations de nettoyage peuvent galement couvrir le filtrage, lagrgation, la vrification de relations, etc. OLAP : On-Line Analytical Processing. Procd permettant de pr-calculer certains croisements de donnes afin doptimiser les performances de lapplication dcisionnelle. Des variantes de lOLAP existent. Outil de restitution : ensemble des outils (requteurs, tableaux de bord, etc.) permettant de restituer le rsultat dune analyse. Qualit des donnes : Conformit structurelle des donnes lutilisation quon souhaite en faire. Amliorer la qualit peut consister par exemple en la correction des occurrences multiples dun mme objet, ou le renseignement de champs vides. Requteur : Un requteur permet lutilisateur final daccder aux donnes de lentreprise de manire autonome, dans un langage proche de celui de son mtier, pour effectuer des analyses, croiser des donnes, etc. Dans la plupart des cas aujourdhui, ces requteurs sappuient sur les mta-donnes pour proposer lutilisateur final des intituls qui correspondent aux mots quil utilise habituellement en lieu et place des intituls des colonnes des bases de donnes, le systme dcisionnel se chargeant de convertir ensuite les requtes dans un langage compris par la base de donnes ou le datawarehouse. SGBDR (Systme de Gestion de Base de Donnes Relationnelle) : On dialogue avec le SGBDR grce des requtes crites en SQL, langage assez bien standardis. Les SGBDR (certains disent Serveur de bases de donnes) les plus avancs disposent de mcanismes de gestion des contraintes d'intgrit appels les Triggers, et aussi de capacit de traitements lis aux donnes: les Procdures Stockes.

01/07/2012

151/151

Anda mungkin juga menyukai