2012_IUT_DWH_Iut_20130210UniversitUniversitUniversitUniversitéééé
Paris 13Paris 13Paris 13Paris 13
F. Boufarès & R. Nefoussi {boufares}@lipn.univ-paris13.fr
LIPN : Bureau A109 R. NEFOUSSI
[email protected]
93160 Noisy-Le-Grand - FRANCE
Sommaire I. Quelques SGBD Relationnels (oracle , DB2, Mysql, sql
server ..)
I.1 Pourquoi les Bases de données ?
I.2 Installation de MySql et D'oracle sous Windows
I.3 Rappel
- PL/SQL : Gestion des curseurs, ….
II Administration sous oracle
II.2 Gestion des habilitations
II.3 Présentation des outils d'administration des Base de données
(Toad, sql developper, OEM)
III) Présentation générale des entrepôts de données III.1
Introduction
III.2 Installation et suivi des entrepôts de données
III.3 Présentation des Etls du marché
III.4 Présentation de l’ETL peronnel d’un client (voir Slides
correspondants)
III.5 Présentation Imp,exp,sqlloader
VI) Présentation des outils pour une meilerure gestion des
entrepôts de données « Dwh »
VI.1 Présentation de Talend
VI.2 Présentation d' Oracle Warehouse Builder (OWB)
V) APEX «Oracle application »pour la consultation de notre DWH via
le WEB
VI )Outils de modélisation et de Reporting
VI.1 Présentation générale des outils d’aide à la conception : AMC
DESIGNER
VI.2 Outils de reporting : Business Objects (BO) : Supervisor,
Supervisor, BO
2012 / 2013
Avant les Bases de donnAvant les Bases de donnééeses
systsystèèmes de gestion de fichiers smes de gestion de fichiers
sééquentiels ou indexquentiels ou indexééss ::
Gestion de stockGestion de stock Gestion comptableGestion comptable
EtcEtc ....
Langage de programmationLangage de programmation : :
Essentiellement le CobolEssentiellement le Cobol
ProblProbléématiquematique
Ce type de SystCe type de Systèème dme d’’information
entrainformation entraîîne une difficultne une difficultéé de
communication entre de communication entre les donnles donnéées de
la socies de la sociééttéé * manque d* manque d’’une vision globale
une vision globale * Difficult* Difficultéé dd’’une prise de dune
prise de déécisioncision * redondance de l* redondance de
l’’informationinformation * Gestion difficile de l* Gestion
difficile de l’’archivage et de la restaurationarchivage et de la
restauration
Pourquoi les bases de donnPourquoi les bases de donnééeses ??
2012 / 2013
La nLa néécessitcessitéé d'avoir des BDd'avoir des BD
Avoir des donnAvoir des donnéées globales sous une même basees
globales sous une même base Vue globale des donnVue globale des
donnéées de les de l’’entrepriseentreprise Favoriser une prise des
dFavoriser une prise des déécisions plus facilement et dcisions
plus facilement et d’’une maniune manièère plus re plus
efficaceefficace Administration, archivage et une restauration plus
facile des dAdministration, archivage et une restauration plus
facile des donnonnééeses etc. .. etc. ..
Les SGBD les plus rLes SGBD les plus rééponduspondus
Oracle sous Unix, Linux , Windows, Oracle sous Unix, Linux ,
Windows, etcetc .. .. DB2 sous MVS ou Windows , DB2 sous MVS ou
Windows , etcetc .... SQL SERVER sous WindowsSQL SERVER sous
Windows EtcEtc .. ..
Pourquoi les bases de donnPourquoi les bases de donnééeses ??
2012 / 2013
Oracle Oracle PersonalPersonal Edition;Edition; Oracle Oracle
DatabaseDatabase 10g Express Edition, limit10g Express Edition,
limitéée e àà 4 Go, 1 CPU, 1Go de RAM, 32 bits, Linux/Windows,
gratuit4 Go, 1 CPU, 1Go de RAM, 32 bits, Linux/Windows, gratuit
AvantagesAvantages Richesse fonctionnelleRichesse fonctionnelle
Fonction d'audit Fonction d'audit éévoluvoluéé ProcProcéédures
stockdures stockéés en PLs en PL--SqlSql Assistants performants via
Oracle Entreprise Manager, possibilitAssistants performants via
Oracle Entreprise Manager, possibilitéé de gde géérer en interne
des tâches et des alarmesrer en interne des tâches et des alarmes
Gestion centralisGestion centraliséée de plusieurs instancese de
plusieurs instances Concept unique de retour arriConcept unique de
retour arrièère (Flashback)re (Flashback) PPéérennitrennitéé de
l'de l'ééditeur : avec plus de 40% de part de marchditeur : avec
plus de 40% de part de marchéé, ce n'est pas demain qu'Oracle
dispara, ce n'est pas demain qu'Oracle disparaîîtratra Interface
utilisateur remaniInterface utilisateur remaniéée et extrêmement
riche, permettant e et extrêmement riche, permettant -- enfin !
enfin ! -- le le tuningtuning fin de requêtes par modification fin
de requêtes par modification des plans d'exdes plans
d'exéécution.cution. Services Web, support XML ; et Ordonnanceur
Services Web, support XML ; et Ordonnanceur
intintéégrgréé;ompression;ompression des donndes donnéées et des
sauvegardeses et des sauvegardes InconvInconvéénientsnients Prix
Prix éélevlevéé Administration complexe... liAdministration
complexe... liéée e àà la richesse fonctionnellela richesse
fonctionnelle Fort demandeur de ressources,Fort demandeur de
ressources, MMéétamodtamodèèlele propripropriéétaire, loin de la
norme.taire, loin de la norme. Tables partitionnTables
partitionnéées, RAC... uniquement possible es, RAC... uniquement
possible àà l'aide de modules payants compll'aide de modules
payants compléémentaires sur la version mentaires sur la version
Enterprise.Enterprise. Gestion des verrous mortels mal conGestion
des verrous mortels mal conççue (suppression d'une commande
bloquante sans ue (suppression d'une commande bloquante sans
rollbackrollback)) Faiblesses de l'optimiseur (ne distingue pas les
pages en cache Faiblesses de l'optimiseur (ne distingue pas les
pages en cache ou en disque, n'utilise pas d'index lors de tris ou
en disque, n'utilise pas d'index lors de tris ggéénnééraux,
statistiques rraux, statistiques rééggéénnéérréées par
saccade...)es par saccade...) Nombreuses failles de sNombreuses
failles de séécuritcuritéés lis liéées es àà l'architecture
ellel'architecture elle--mêmemême
AVANTAGES ET INCONVENIENTS DAVANTAGES ET INCONVENIENTS
D’’ORACLEORACLE
2012 / 2013
AvantagesAvantages Monitoring via le Monitoring via le
HealthHealth--centercenter SQL proche de la normeSQL proche de la
norme Nombreux assistants qui auraient Nombreux assistants qui
auraient ddûûss permettre une administration plus aispermettre une
administration plus aiséée (mais tre (mais trèès gourmande s
gourmande en ressource)en ressource) Richesse fonctionnelle du
Richesse fonctionnelle du languagelanguage et des jointureset des
jointures Gestion centralisGestion centraliséée de plusieurs
instancese de plusieurs instances Ordonnanceur intOrdonnanceur
intéégrgréé Compression des donnCompression des donnéées stockes
stockééeses InconvInconvéénientsnients Interface client Java lourd
instable, peu conviviale avec des meInterface client Java lourd
instable, peu conviviale avec des menus contextuels nus contextuels
àà rallonge. Dans les rallonge. Dans les faits, seule la ligne de
commandes semble stable !faits, seule la ligne de commandes semble
stable ! Journalisation gourmande en disques, même avec des
Journalisation gourmande en disques, même avec des jounauxjounaux
tournantstournants ParticuliParticulièèrement instable sous Windows
en configuration mrement instable sous Windows en configuration
méémoire dynamiquemoire dynamique RenommageRenommage de colonnes
impossible = faiblesse de DDL, bien que les assistade colonnes
impossible = faiblesse de DDL, bien que les assistants tentent nts
tentent maladroitement de cacher ces faiblesses en exmaladroitement
de cacher ces faiblesses en exéécutant des cutant des
traitemetnstraitemetns lourdslourds Prix Prix
exhorbitantexhorbitant, tant au point de vue des licences que des
composants mat, tant au point de vue des licences que des
composants matéériels (RAM, CPU) riels (RAM, CPU) àà fournir pour
de bonnes performancesfournir pour de bonnes performances Gestion
des utilisateurs extrêmement limitative, dGestion des utilisateurs
extrêmement limitative, déédidiéée e àà l'OSl'OS
ComplexitComplexitéé du du languagelanguage
procprocééduraldural
AVANTAGES ET INCONVENIENTS DE DB2AVANTAGES ET INCONVENIENTS DE
DB2
2012 / 2013
DisponibilitDisponibilitéé : Linux, Windows, : Linux, Windows,
MacOSXMacOSX, Unix, BSD, OS2, Unix, BSD, OS2
AvantagesAvantages
Solution trSolution trèès courante en hs courante en héébergement
publicbergement public TrTrèès bonne ints bonne intéégration dans
l'environnement Apache/PHPgration dans l'environnement Apache/PHP
OpenSourceOpenSource, bien que les crit, bien que les critèères de
licence soient de plus en plus difficiles res de licence soient de
plus en plus difficiles àà supportersupporter Version cluster
depuis la version 4Version cluster depuis la version 4 ordonnanceur
dordonnanceur dèès la version 5.1s la version 5.1
PartitonnementPartitonnement ddèès la version 5.1s la version 5.1
FacilitFacilitéé de dde dééploiement et de prise en main.ploiement
et de prise en main. Plusieurs moteurs de stockage adaptPlusieurs
moteurs de stockage adaptéés aux diffs aux difféérentes problrentes
probléématiques, configurable au niveau table.matiques,
configurable au niveau table.
InconvInconvéénientsnients
Ne supporte qu'une faible partie des standards SQLNe supporte
qu'une faible partie des standards SQL--9292 Support incomplet des
triggers et procSupport incomplet des triggers et procéédures
stockdures stockééeses Assez peu de richesse fonctionnelleAssez peu
de richesse fonctionnelle Manque de robustesse avec de fortes
volumManque de robustesse avec de fortes voluméétriestries Pas
d'hPas d'hééritage de tableritage de table Pas de vue matPas de vue
matéérialisrialisééee Pas de sauvegarde Pas de sauvegarde
constistanteconstistante àà chaudchaud
AVANTAGES ET INCONVENIENTS MYSQLAVANTAGES ET INCONVENIENTS
MYSQL
2012 / 2013
AvantagesAvantages Administration aisAdministration aisééee
Fonction d'audit Fonction d'audit éévoluvoluéé IndIndéépendance
entre les diverses bases, facilitant l'intpendance entre les
diverses bases, facilitant l'intéégration de plusieurs applicatifs
dans une même gration de plusieurs applicatifs dans une même
instanceinstance Une des bases les plus performantes sous Windows
en configuratioUne des bases les plus performantes sous Windows en
configuration par dn par dééfautfaut SousSous--SELECT possible dans
clause FROMSELECT possible dans clause FROM Gestion de l'indexation
textuelleGestion de l'indexation textuelle Niveau de SQL trNiveau
de SQL trèès prs prèès de la norme SQL et impls de la norme SQL et
impléémente presque toutes les possibilitmente presque toutes les
possibilitéés de SQL.s de SQL. Services WebServices Web Support
XMLSupport XML Ordonnanceur intOrdonnanceur intéégrgréé Supporte
les 4 niveaux d'isolation transactionnelle de la norme Supporte les
4 niveaux d'isolation transactionnelle de la norme SQLSQL
Compression des donnCompression des donnéées et des sauvegardeses
et des sauvegardes InconvInconvéénientsnients Distributions
fortement liDistributions fortement liéées au systes au systèème
d'exploitationme d'exploitation jungle des versions, mais
fonctionnalitjungle des versions, mais fonctionnalitéés cantonns
cantonnéées dans les es dans les ééditions Enterprise, ditions
Enterprise, DeveloperDeveloper et et StandardStandard
MonoMono--plateforme (MS Windows)plateforme (MS Windows) Depuis la
version 2005, plus de prise directe sur les tables sysDepuis la
version 2005, plus de prise directe sur les tables systtèème
(remplacme (remplacéées par de vues systes par de vues systèème)me)
Pas de prise en charge du LDAPPas de prise en charge du LDAP
AVANTAGES ET INCONVENIENTS SQL SEVERAVANTAGES ET INCONVENIENTS SQL
SEVER
2012 / 2013
une installation de type installshield avec des boutons
suivants.. il suffit alors de se laisser guider en répondant
aux diverses questions.
L’administration peut se faire entièrement à partir des
outils
MySQL.
MySQL fonctionne avec un service Windows. Si vous désirez arrêter
le serveur, il suffit de stopper le service MySQL.
Installation de MySql
devez configurer la connexion à la base MySQL.
Après avoir démarrer MySQLAdministrator, vous obtenez
une fenêtre d’identification similaire à celle-ci :
Présentation de MySql : Création d'une connexion
2012 / 2013
Présentation de MySql : Création d'une connexion
Cliquez sur le bouton [...] en haut à droite, cela ouvre la fenêtre
suivante :
2012 / 2013
2012 / 2013
Présentation de MySql : Création d'une connexion
Cliquez sur le bouton « Add new Connection » en bas à gauche afin
de créer une nouvelle
connexion
Sélectionnez dans la liste en haut « New Connection » qui vient
de s’ajouter à la liste. La
partie à droite « Connection Parameters » permet de renseigner
les informations de
connexion à la base MySQL
Dans le champs Connection, saisissez le nom de connexion qui
apparaà®tra dans les listes de
connexion de MySQLAdministrator
Dans le Champs Username, saisissez l’utilisateur qui permet de se
connecter à la base de
données.
Dans le champs Password, saisissez le mot de passe de cet
utilisateur
Dans le champs Hostname, saisissez l’IP ou le nom de l’ordinateur
qui héberge la base de
données MySQL
Pour enregistrer toutes ces informations de connexions, cliquez en
bas sur le bouton « Apply
» puis sur le bouton « Close » pour revenir à la fenêtre
précédente.
La connexion que nous venons de configurer est alors accessible
dans le menu déroulant «
Stored Connection ».
Saissez le mot de passe de l’utilisateur puis cliquez sur le bouton
« OK » pour se connecter à
la base MySQL.
2012 / 2013
Les bases de données
En cliquant donc sur l’onglet Catalogs vous pouvez accéder aux
bases de données existantes du serveur.
Vous pouvez alors visualiser les tables sous forme de liste dans la
partie droite de la fenêtre.
Create Table permet de créer une nouvelle table
Edit Table permet d’éditer la structure de la table
Maintenance permet de réparer/optimiser ou vérifier que la table
n’est pas corrompue
Refresh rafraà®chit l’affichage
En effectuant un clic droit sur l’onglet Catalogs puis New vous
pouvez créer une nouvelle base de données.
2012 / 2013
2012 / 2013
Gestion des utilisateurs
Vous pouvez gérer les utilisateurs qui permettent de se connecter
aux bases de données.
Ces utilisateurs sont spécifiques à MySQL et n’ont rien à voir avec
l’OS ou votre réseau.
Il est conseille de créer un utilisateur par base de données et de
ne jamais, par mesure de
sécurisé, utiliser l’utilisateur root.
2012 / 2013
2012 / 2013
Installation d’une base de données 10g Oracle sous windows
2012 / 2013
Installation d’une base de données 11g Oracle sous windows
2012 / 2013
Installation d’une base de données 11g Oracle sous windows
2012 / 2013
Installation d’une base de données 11g Oracle sous windows
2012 / 2013
Installation d’une base de données 11g Oracle sous windows
2012 / 2013
Installation d’une base de données 11g Oracle sous windows
2012 / 2013
Installation d’une base de données 11g Oracle sous windows
2012 / 2013
Installation d’une base de données 11g Oracle sous windows
2012 / 2013
Installation d’une base de données 11g Oracle sous windows
2012 / 2013
Installation d’une base de données 11g Oracle sous windows
2012 / 2013
2012 / 2013
2012 / 2013
Gestion des objets
- affichez la liste des tables appartenant à votre user
Oracle
- afficher la liste des indexes appartenant à votre user
Oracle
- afficher la liste des tablespaces que compose votre base de
données dw11g
Donnez la commande sous Oracle qui permet la création d'un user :
sil01 et un mot de passe psswrd_sil01 avec USERS comme tablespace
temporaire
Donnez la commande qui permet de rajouter le droit de connexion au
user sil01
Donnez la commande qui permet la création de la table Client dans
le tablespace USERS, avec un INITIAL de 20 MO et un NEXT DE 5
MOe
CLIENT(
ID_DER_DEMAND VARCHAR2( 30), NOTE_CLIENT NUMBER( 10, 3),
POURCENT_PERTE NUMBER( 10, 3)
2012 / 2013
Pensez-vous qu'avec les droits accorder au user sil01, il est
capble de créer cette table ?
Si le user sil01 n'a pas les droits nécessaire ==> Alors donnez
la commande qui permet de rajouter le droit qui manque à SIL01,
pour faire le nécessaire ?
A partir du user sil01, donnez le droit de lecture de suppression
et mise à jour de la table CLIENT aux autres users (Public)
Vous avez constater que votre table a été modiifer à tort. Vouis
décidez de supprimer ces droits à public et de donner uniquement
ces droits au user sil06 uniquement.
Gestion des Ojects sous Oracle (2/2)
2012 / 2013
PL/SQL : Gestion des curseurs ...
ETL Extraction: Génération d'un fichier via PL/SQL
set serveroutput on size 100000
set feedback off
set termout off
OPEN C1;
Exit
spool off 2012 - 2013 M. F. Boufarès & R. NEFOUSSI, UP13
44
ETL Load : Charg. des données après transformation via PL/SQL
DECLARE
Développez un premier programme sous PL/SQL : composé comme suit
:
- créez un curseur qui accède aux lignes de la table financement
générer par la société de Crédit « MA SOCIETE DE CREDIT»
- Créez une nouvelle table w1_Financement avec la même structure de
la table financement
- Copiez les lignes de table financement dans w_financement
Développer un programme sous PL/SQL : : composé comme suit :
- créer un curseur qui accède aux lignes de la table financement
générer par la société de Crédit « MA SOCIETE », durant l'année
2012.
- Créez une nouvelle table w2_Financement avec la même structure de
la table
financement
- Utiliser une boucle « Loop »
Tester la date de création du financement de chaque ligne ramener
par votre curseur
Et ne charger dans la table w2_Financement que la date de création
égale à 2012.
PL/SQL : Gestion des curseurs ...
• Base : une base est un ensemble de fichiers : parmi lequels
– Tablespaces Temporary et Default
– Fichier logs (Oracle, trace, etc ..)
– Parlé de la notion physique (ensemble de fichier qui composent un
TBS)
– etc …
– Une zone mémoire !!!!
Unités logiques : Tablespaces
• Une base de données est composée d’un ensemble d’unités logiques
dites tablespaces
• Un tablespace permet de regrouper un ensemble d’objets logiques
(tables, index...)
• il peut être utilisé pour regrouper des objets logiques d’une
application pour que les opérations de sauvegarde et de
restauration soient efficaces.
2012 / 2013
2012 / 2013
Fichiers de données (Data Files)
• Les fichiers de données assurent le stockage – des objets créés
par les utilisateurs : tables, index, vues,
clusters, etc. – des structures nécessaires au fonctionnement
d’Oracle :
Dictionnaire de données.
• Lors de la création d’une de base données, il doit y avoir au
moins un fichier de données pour stocker le dictionnaire de
données.
• Un fichier de données est associé à une et une seule base de
données
2012 / 2013
• Exprimée en Kilo ou en Méga octets
• Attribuée au moment de la création du fichier, peut être
modifiée.
• Son choix dépend de la taille de la base de données et de son
évolution.
• Le premier fichier de données créé doit avoir une taille
supérieure ou égale à 2Mo.
2012 / 2013
• Peut être modifié, sauf pour le premier fichier.
• La modification se fait en deux étapes :
– modification du nom du fichier en utilisant les commandes
OS
– répercussion de cette modification dans les fichiers de
contrôle.
2012 / 2013
Création d’un Data File
• Lors de la création d’un TBS ou rajout d’un fichier :
• CREATE TABLESPACE tbs
• Deux cas de modifications : – modification du nom et de
localisation
– modification de la taille
• RENAME DATAFILE ‘fich1’, ‘fich2’ TO ‘fich11’, ‘fich22’
• ALTER DATABASE base
2012 / 2013
• Modification de la taille : • ALTER TABLESPACE tbs
• ADD DATAFILE spécification
• [MAXSIZE UNLIMITED | entier [K|M]]
• ALTER DATABASE base
• AUTOEXTEND [OFF | ON [NEXT entier [K|M]]
• [MAXSIZE UNLIMITED | entier [K|M]]
2012 / 2013
Suppression d’un Data File
• Solution N°1 : en deux étapes – Suppression du tablespace associé
au Data file
• DROP TABLESPACE tbs • INCLUDING CONTENTS
– Suppression des fichiers physiques manuellement par commande
OS.
• Solution N°2 : en une seule étape – Suppression du tablespace
associé au Data file – ainsi que les fichiers physiques – DROP
TABLESPACE tbs
• INCLUDING CONTENTS and datafiles
Tablespace
• Chaque objet logique doit être associé à un et un seul
tablespace.
• Chaque tablespace est identifié par un nom.
• Un tablespace peut être supprimé même s’il contient des
données.
• Une base de données doit avoir au moins un tablespace appelé
SYSTEM qui contient le dictionnaire de données.
2012 / 2013
– OnLine
– OffLine
• Le tablespace SYSTEM ne peut jamais être désactivé.
• Il est recommandé de créer d’autres tablespaces pour les objets
de la base.
• Un tablespace peut être créé, modifié et supprimé
2012 / 2013
• [NEXT entier {M|K}]
• [DEFAULT STORAGE clause_stockage]
Modification d’un tablespace
• ALTER TABLESPACE tbs • ADD DATAFILE spec [AUTOEXEND {OFF|ON •
[NEXT entier {M|K}] • [MAXSIZE {UNLIMITED | entier {M|K}]}... •
[RENAME ‘fich’, ... TO ‘fich’, ...] • [COALESCE] • [DEFAULT STORAGE
clause_stockage] • [ONLINE | OFFLINE {NORMAL | TEMPORARY |
IMMEDIATE}] • [{BEGIN | END} BACKUP] • [READ {ONLY | WRITE}] •
[PERMENENT | TEMPORARY]
2012 / 2013
•DROP TABLESPACE tbs •[INCLUDING CONTENTS] •[CASCADE
CONSTRAINTS]
•INCLUDING CONTENTS supprime le contenu de tablespace
•CASCADE CONSTRAINTS supprime les contraintes d’intégrité des
tables d’autres tablespaces qui se réfèrent aux clés primaires des
tables du tablespace spécifié.
2012 / 2013
• Un tablespace peut être attribué par défaut à un
utilisateur.
• Les objets de cet utilisateur seront stockés dans ce tablespace
sauf contre indication.
• CREATE | ALTER user IDENTIFIED [BY mdp | EXTERNALLY] • [DEFAULT
TABLESPACE tbs] • [TEMPORARY TABLESPACE tbs] • [QUOTA {entier {M |
K} | UNLIMITED} ON tbs ]
2012 / 2013
Association entre objets et TBS
• Création d’un User – Create user USR1 identified by psswrd1
default tablespace
USERS temporary tablespace TEMP; – CREATE TABLE tab1 (col1
integer,col2 varchar2) – Select table_name,tablespace_name from
user_tables;
• Création d’un objet (exemple d’une table ou index) – Create table
contrat (id_contrat integer, nom_souscripteur
varchar2(50), prenom_souscripteur varchar2(50)) – tablespace COMPTA
– storage STORAGE – ( INITIAL 50M – NEXT 70M – )
2012 / 2013
– Create unique index IDX_CTR on CONTRAT (id_contrat ) – tablespace
COMPTA – storage STORAGE – ( INITIAL 5 M – NEXT 10M – )
• Déplacement d’un objet d’un TBS à un autre
• Alter table contrat move tablespace USERS; Cela invalide les
indexes de la table Ce qui nécessite leur :
Suppression (drop index) et la création (create index) de
l’index
Ou la reconstruction de l’index (alter index ind_ctr
rebuild);
2012 / 2013
alter tablespace USERS offline;
'c:\datafile\tp\db\gestee_01.dbf'
alter tablespace USERS online
alter tablespace test
create table toto (col1 number,col2 number)
tablespace test
2012 / 2013
• L'administrateur peut consulter les vues du dictionnaire de
données suivantes :
– DBA_USERS
– DBA_TS_QUOTAS
2012 / 2013
1. Connectez vous avec le user system/Orcl
2. Créez les deux TBS TBSMstr1DATA et TBSMstr1INDX :
TBS TBSMstr1DATA avec fichier d:\oracle\product\10.2.0\db_1\
TBSMstr1DATA_1.dbs Taille 50 MO
TBS TBSMstr1INDX avec fichier d:\oracle\product\10.2.0\db_1\
TBSMstr1INDX_1.dbs Taille 20 MO
3. Création d’un user Mstr1_td1/ Mstr1_td1 avec default TBD
«TBSMstr1Td1 » et temporary TBS «TEMP»
4. Donnez le droit DBA au user Mstr1_td1 .
5. Créez les tables dans TBS (TBSMstr1DATA)
EMP (EMPNO NUMBER(4) NOT NULL,ENAME VARCHAR2(10),JOB
VARCHAR2(9),
MGR NUMBER(4),HIREDATE DATE,SAL NUMBER(7, 2),COMM NUMBER(7,
2),
DEPTNO NUMBER(2));
6 Création des indexes dans TBS TBSMstr1INDX)
Création des indexes uniques :
2012 / 2013
7. Insertion des lignes dans les tables EMP et DEPT
Inserrer les lignes suivantes dans la table EMP
(7369, ‘SMITH’, ‘CLERK’, 7902,TO_DATE(’17-DEC-1980′,
‘DD-MON-YYYY’), 800, NULL, 20);
(7499, ‘ALLEN’, ‘SALESMAN’, 7698,TO_DATE(’20-FEB-1981′,
‘DD-MON-YYYY’), 1600, 300, 30);
(7521, ‘WARD’, ‘SALESMAN’, 7698,TO_DATE(’22-FEB-1981′,
‘DD-MON-YYYY’), 1250, 500, 30);
Inserrer les lignes suivantes dans la table DEPT
(10, ‘ACCOUNTING’, ‘NEW YORK’);
8. Consultation du catalogues Oracle
Donnez la vue d’Oracle qui liste les tables et indexes appartenant
au user Mstr1_td1
2012 / 2013
Gestion des habilitations sous Oracle
2012 / 2013
– • un nom utilisateur unique
– • un statut de compte
Compte d’administration prédéfinis
– . Caractéristiques du compte SYS : – – Il bénéficie du rôle
d'administrateur de base de données (DBA) – et de plusieurs autres
rôles. – – Il dispose de tous les privilèges associés à ADMIN
OPTION. – – Il est requis pour les opérations de démarrage et
d'arrêt, ainsi – que pour certaines commandes de maintenance. – –
Il est propriétaire du dictionnaire de données et du référentiel –
AWR (Automatic Workload Repository). – • Le compte SYSTEM reçoit
les rôles DBA, MGMT_USER et – AQ_ADMINISTRATOR_ROLE. – • Le compte
DBSNMP reçoit le rôle OEM_MONITOR. – • Le compte SYSMAN reçoit les
rôles MGMT_USER, RESOURCE – et SELECT_CATALOG_ROLE. – • Ces comptes
ne sont pas utilisés pour les opérations de – routine.
2012 / 2013
Authentification des administrateurs
Sécurité au niveau du système d'exploitation : * Les
administrateurs de base de données doivent disposer des
privilèges de création et de suppression de fichiers au niveau du
système d'exploitation.
* Les utilisateurs de base de données ne bénéficient normalement
pas des privilèges de création ou de suppression de fichiers de
base de données au niveau du système d'exploitation. Sécurité au
niveau de l'administrateur : * Pour les connexions en tant que
SYSDBA, SYSOPER et SYSASM : *Audit du nom utilisateur du DBA pour
les méthodes d'authentification fortes et par fichier de mots de
passe *Audit du nom de compte du système d'exploitation pour
l'authentification par le système d'exploitation * Priorité de
l'authentification par le système d'exploitation sur
l'authentification par fichier de mots de passe pour les
utilisateurs ayant des privilèges importants (exemple de dba)
2012 / 2013
– particulières dans la base de données.
– Exemple :
– Grant resource to user1
– Grant dba to user1
– Grant connect to user1
– Exemple :
– revoke resource from user1
– revoke dba from user1
– revoke connect from user1
– Create role compta_interrogation – Grant select on D_DIM_SECTOR
to
compta_interrogation – Grant select on D_DIM_TEMPS to
compta_interrogation – Grant update,insert,delete on D_DIM_SECTOR
to
compta_maj – Grant update,insert,delete on D_DIM_TEMPS to
compta_maj – Grant compta_interrogation to user1 – Grant compta_maj
to user1
– b) Suppression d’un rôle
– Drop role compta_interrogation
– createcreatecreatecreate profile profile profile profile
appl_profileappl_profileappl_profileappl_profile –
limitlimitlimitlimit –
sessions_per_usersessions_per_usersessions_per_usersessions_per_user
2 2 2 2 – connect_timeconnect_timeconnect_timeconnect_time
unlimitedunlimitedunlimitedunlimited –
private_sgaprivate_sgaprivate_sgaprivate_sga 20M 20M 20M 20M –
failed_login_attemptsfailed_login_attemptsfailed_login_attemptsfailed_login_attempts
3 ;3 ;3 ;3 ;
– drop profile appl_profile ;
– Grant compta_interrogation to user1
– Grant compta_maj to user1
Select * from dba_tables Select * from dba_indexes Select * from
daba_data_files select * from v$datafile select * from dba_users
select * from dba_extents where owner = ‘GESTEE' select * from
user_segments
where tablespace_name = ' USERS' select * from dba_ts_quotas
2012 / 2013
• Utiltaires Import et export
• Les différents mode d’export Au niveau de la base
Exp sytsem/MotDePasse full=yes log-expfull.log file=expfull.dmp
..
Au niveau de l’utilisateur Exp system/MotDePasse owner=propritaire
log-
expOwner.log file=expowner.dmp ..
transpot_tablespace=y tablespace=tbs1,tbs2
log=exptables.log file= exptables.dmp ..
• - full • - tables • - log • - file • - full • - indexes • -
grants • - parfile • - query • - ..
2012 / 2013
• params.dat contient les informations suivantes :
• FILE=blake.dmp SHOW=n IGNORE=n GRANTS=y ROWS=y FROMUSER=blake
TOUSER=scott TABLES=(unit,manager);
2012 / 2013
– Rows – Fromuser – Touser – Tables – File – Ignore – Grants –
Indexes – Show – ….
2012 / 2013
2012 / 2013
Partie 5 Architecture interne dPartie 5 Architecture interne
d’’Oracle Oracle
et outils pour administrer votre baseet outils pour administrer
votre base
-- SGA + PGASGA + PGA -- processus en arriprocessus en arrièère
Planre Plan -- Processus utilisateursProcessus utilisateurs --
Outils :TOAD + OEM + Outils :TOAD + OEM +
SqlDevelopperSqlDevelopper
2012 / 2013
2012 / 2013
Deux types de processus :
•Processus utilisateurs : pour exécuter une application SQL*Plus,
Pro*C, etc.
•Processus Oracle
Processus SERVER : interaction entre processus utilisateur et
l’instance ( mémoire de la SGA).
Processus en arrière plan : effectue des tâches bien définies pour
l’ensemble des utilisateurs
2012 / 2013
* Processus arrières plan obligatoires
•DBWR : Data Base Writer
ExercicesExercices AdmAdm sous Oracle sous Oracle
1. Connectez-vous sous sqlplus avec le user AdmMaster1/ AdmMaster1
(avec les droits dba)
2. Créer 2 users : avec les droits « connect et resource »
(usrMaster1/ usrMaster1)
(usrMaster2/ usrMaster2)
3. Créez un tbs User2011 avec deux fichiers Usr_oem2011_data1.bdf
100 MO et Usr_oem2011_indx1.bdf 50 MO
2012 / 2013
ExercicesExercices AdmAdm sous Oracle sous Oracle
3. créez table suivante dans un tablespace USERS (avec un initial
50 MO et un next de 10 MO) :
D_CLASSE_THERAPEUTIQUE ( ID_CLASSE_THERAPEUTIQUE VARCHAR2(50) NOT N
ULL, DESCRIPTION VARCHAR2(50), TYPE_MEDICAMENT VARCHAR2(50)
)
2012 / 2013
-- Audit optionsAudit options * DDL* DDL(CREATE, ALTER & DROP
of objects(CREATE, ALTER & DROP of objects))
* DML* DML(INSERT UPDATE, DELETE, SELECT, (INSERT UPDATE, DELETE,
SELECT,
EXECUTE).EXECUTE).
2012 / 2013
Audit dAudit d’’une base par lune base par l’’exempleexemple
A. Crétion d’un user sous Oracle
Connect sys/password AS SYSDBA
CREATE USER audit_test IDENTIFIED BY password DEFAULT TABLESPACE
users TEMPORARY TABLESPACE temp QUOTA UNLIMITED ON users;
GRANT connect TO audit_test;
2012 / 2013
Audit dAudit d’’une base par lune base par l’’exempleexemple
B. Auditer toutes les opérations du user audit_test
CONNECT sys/password AS SYSDBA
AUDIT ALL BY audit_test BY ACCESS;
AUDIT SELECT TABLE, UPDATE TABLE, INSERT TABLE, DELETE TABLE BY
audit_test BY ACCESS;
AUDIT EXECUTE PROCEDURE BY audit_test BY ACCESS;
2012 / 2013
Audit dAudit d’’une base par lune base par l’’exempleexemple
C. Appliquer quelques actions avec le user audit_user
CONN audit_test/password
INSERT INTO test_tab (id) VALUES (1);
UPDATE test_tab SET id = id;
SELECT * FROM test_tab; DELETE FROM test_tab;
DROP TABLE test_tab; 2012 / 2013
Audit dAudit d’’une base par lune base par l’’exempleexemple
C. Auditer les actions faites par le user audit_test
COLUMN username FORMAT A10
COLUMN owner FORMAT A10
COLUMN obj_name FORMAT A10
COLUMN extended_timestamp FORMAT A35
FROM dba_audit_trail
2012 / 2013
---------- ----------------------------------- ----------
---------- ----------------------------
AUDIT_TEST 16-FEB-2006 14:16:55.514000 +00:00 AUDIT_TEST TEST_TAB
INSERT AUDIT_TEST 16-FEB-2006 14:16:55.545000 +00:00 AUDIT_TEST
TEST_TAB UPDATE AUDIT_TEST 16-FEB-2006 14:16:55.592000 +00:00
AUDIT_TEST TEST_TAB SELECT AUDIT_TEST 16-FEB-2006 14:16:55.670000
+00:00 AUDIT_TEST TEST_TAB DELETE AUDIT_TEST 16-FEB-2006
14:17:00.045000 +00:00 AUDIT_TEST TEST_TAB DROP TABLE
6 rows selected.
2012 / 2013
Partie 5 Outils pour administrer et Partie 5 Outils pour
administrer et
ggéérer votre baserer votre base
-- RRéépertoire dpertoire d’’installation installation dd’’oracle
10goracle 10g
-- DB Console (OEM)DB Console (OEM) -- TOAD TOAD --
SqlDevelopperSqlDevelopper
2012 / 2013
TOAD
Oracle Entreprise Manager (OEM)
SqlDevelopper
2007 - 2008 M. F. Boufarès & R. NEFOUSSI, UP13 111
1. Introduction Les décideurs d'une entreprise doivent pouvoir
répondre à un certain nombre de question pour diriger leur
entreprise Qui sont mes clients ? Pourquoi sont ils mes clients ?
Comment cibler ma clientèle ? Quel est l'évolution de tel produit ?
Qui sont mes employés ? Quel est le produit le plus vendu Quel est
le produit le moins vendu Quel magasin a le plus faible chiffre
d'affaire hebdomadaire ?
==> L'objectif est donc d'apporter aux décideurs d'une
entreprise les moyens de répondre à ces questions
2007 - 2008 M. F. Boufarès & R. NEFOUSSI, UP13 112
1. Pourquoi un Entrepôt de données ?
Les sources de données d'une entreprise proviennent essentiellement
des bases de production. Ces données sont éparpillées dans des
systèmes multiples, pas nécessairement compatibles entre eux. Ces
bases sont conçues pour être efficaces pour les fonctions sur
lesquelles elles sont spécialistes. Elles sont donc peu structurées
pour l'analyse, avec souvent comme objectif principal de conserver
l'information. Comme bases de production elles sont focalisées sur
les fonctions critiques de l'entreprise, et doivent être en mesure
de servir l'utilisateur avec un temps de réponse rapide et
structurées dans ce but. Ces systèmes sont donc peu adaptés à la
vision à long terme et donc à la prise de décision. Le
datawarehouse va avoir pour objectif d'agréger et de valoriser ces
données provenant de différentes sources. Il va permettre à
l'utilisateur d'y accéder de manière simple et ergonomique.
2007 - 2008 M. F. Boufarès & R. NEFOUSSI, UP13 113
1. Pourquoi la séparation des OLTP des OLAP ?
désavantagesd'avoir une même base: quand le DWH et les application
OLTP se partagent les mêmes BD.
Les DWH doivent accéder en lecture à des données sur plusieurs
années. Et si en mêmes temps ces données sont accéder par les
applications transactionnelles en mise à jour
==> Cela va causer des problèmes de contentions ==> traduit
par des problèmes énormes de dégradation de performances ==>
Retard dans les traitements quotidiens ==> Retard de l'ouverture
des applications de gestions .. ==> Mécontentements des
utilisateurs du DWH à cause des problèmes des
Temps de réponses du DWH ?
2007 - 2008 M. F. Boufarès & R. NEFOUSSI, UP13 114
SOLUTION ?
La solution est de séparer
la BD orientée Transaction de la BD orientée Aide à la Décision
;
d’où la naissance du concept Data Warehouse= Entrepôt de
Données.
Les DW sont physiquement séparés des SGBD opérationnels (BD
opérationnelles).
2007 - 2008 M. F. Boufarès & R. NEFOUSSI, UP13 115
1. Définition d'un DWH
Data Warehouse: Définition de Bill Immon (1996)
Collection de données orientées pour un sujet, intégrées, non
volatiles et historisées, organisées pour le support du processus
d’aide à la décision Il s’agit base de données dans laquelle sont
déposées après nettoyage et homogénéisation les informations en
provenance des différents systèmes de production de
l’entreprise
Datamart:
Est un sous-ensemble de l’entrepôt de données, défini à l’intention
d’un département précis de l’entreprise.
2012 - 2013 M. F. Boufarès & R. NEFOUSSI, UP13 116
1. Définition d'un DWH
Le DW intègre des donnéesà partir de sources multiples et
hétérogènes
afin de répondre aux requêtes du système d’aide à la
décision.
Ce type d’application est appelé “ On-Line Analytical
ProcessingOLAP ”.
OLAP permet la transformation des données en information
stratégiques.