Dictionnaire de données Oracle 1. Objectif du TP - E

publicité
Université Kasdi Merbah Ouargla
Département informatique
MASTER RCS
Module BDA
Décembre 2013
TP n° 3 : Dictionnaire de données Oracle
1. Objectif du TP :
Ce TP va nous permettre d’étudier la structure centralisée (dictionnaire de données) sur
laquelle repose Oracle. La compréhension du fonctionnement du dictionnaire est essentielle à
l’administration des bases de données Oracle. Elle vous sera utile pour contrôler votre travail
lors de la création d’un schéma de base de données Oracle.
2. Présentation : Dictionnaire de données
Le dictionnaire de données ORACLE est une structure centralisée qui contient la description
de tous les objets (tables, vues, utilisateurs, …) gérés par le SGBD. Il présente la particularité
d’être lui-même organisé comme une base de données (on parle de méta-base) et d’être par
conséquent accessible directement à travers SQL. Pour des raisons d’intégrité, la plupart des
tables du dictionnaire ne sont pas modifiables par les utilisateurs (seul l'administrateur de la
base SYS, a accès à ces dernières). A l’opposé, l’accès à leur contenu est généralement
autorisé.
Les tables du dictionnaire de données
Le dictionnaire de données est un ensemble de tables appartenant à l’utilisateur SYS. Ces
tables contiennent la définition complète de la base de données.
Il est maintenu à jour automatiquement par le SGBD Oracle lors de l’exécution d’ordres LDD
(create, drop, alter,...).
Exemple : SELECT sur une table de dictionnaire de données
Select * from SYS.OBJ$ where NAME in (‘EMP’,’DEPT’);
(Résultat n’est pas très lisible)
Les vues du dictionnaire de données
Le contenu des tables du dictionnaire de données est accessible par l’intermédiaire de vues.
Elles sont de quatre grands types :
- Vues relatives aux objets d’un utilisateur : USER_*
-
Vues relatives aux objets accessibles à un utilisateur : ALL_*
-
Vues relatives aux administrateurs : DBA_*
-
Vues relatives aux suivi des performances : V$*
 USER : l’environnement propre de l’utilisateur, il ne peut voir que ce qui lui appartient
Exemple : SELECT sur une vue USER du dictionnaire
Select * from USER_OBJECTS;
Exemples de vues USER : USER_TABLES (synonyme TABS), USER_INDEXES
(synonyme IND), USER_VIEWS, USER_SYNONYMS,…
Page : 1
S.Euschi
 ALL : l’environnement propre de l’utilisateur plus les objets auquel il a accès.
Exemple : SELECT sur une vue ALL du dictionnaire
Select * from ALL_OBJECTS;
Exemples de vues ALL : ALL_TABLES, ALL_INDEXES,…
 DBA : informations générales sur la base, ne peuvent être accédés que par un utilisateur
de type DBA et doivent être préfixées par SYS.DBA.
Exemple : SELECT sur une vue DBA du dictionnaire
Select * from SYS.DBA_DATA_FILES;
 Autres vues
DICTIONARY (synonyme DICT) : liste des tables, vues , synonymes et séquences du
dictionnaire de données accessibles à l’utilisateur.
Exemple : SELECT sur DICTIONARY
Select * from DICTIONARY;
DICT_COLUMNS : description des colonnes pour chaque table du dictionnaire de
données.
Exemple : SELECT sur DICT_COLUMNS;
Select * from DICT_COLUMNS;
Au cours de ce TP, nous allons nous intéresser plus particulièrement aux vues de type ALL et
USER.
3. Travail demandé
Les requêtes SQL que vous allez définir au cours du TP sont particulièrement simples
(commande DESCRIBE ou simples SELECT FROM WHERE). Votre objectif ici doit être de
comprendre le rôle de chaque table ou vue principale du dictionnaire. C’est le contenu de ces
tables d’administration qui vous permettra de vérifier la validité de vos requêtes LDD SQL
(création de tables, d’index…).
Compte-rendu est demandé pour ce TP.
L’ensemble des tables du dictionnaire de données est recensé dans la table principale DICT.
Vues relatives aux objets accessibles à tous les utilisateurs
1. Donner le schéma de la relation correspondant à DICT et préciser le rôle de chacun de ses
attributs. On utilisera pour cela la commande SQL de description DESCRIBE.
2. Visualiser le contenu complet du dictionnaire DICT à l'aide de la commande de sélection
SELECT.
3. Donner le rôle et la structure des tables (ou vues) suivantes : ALL_CATALOG,
ALL_USERS, ALL_COL_COMMENTS, ALL_CONSTRAINTS et ALL_TAB_PRIVS.
Lorsque le rôle d’un attribut n’est pas clair a priori, aidez-vous le cas échéant du contenu
de la table ALL_COL_COMMENTS.
4. Quels sont les différents types d'objets (attribut TABLE_TYPE) reconnus par Oracle. A
chacun de ces types va correspondre une table spécifique dans le dictionnaire :
ALL_TABLES, ALL_VIEWS, ALL_SYNONYMS, ALL_SEQUENCES.
Page : 2
S.Euschi
5. Combien y a t il d'objets référencés dans la table ALL_CATALOG. Comparer ce résultat
avec le nombre d'enregistrements dans les tables ALL_TABLES, ALL_VIEWS,
ALL_SYNONYMS, ALL_SEQUENCES.
Vues relatives aux objets d'un utilisateur
1. Donner le schéma de relation correspondant à la table USER_USERS. Quel est votre nom
d'utilisateur Oracle ?
2. Comparer le contenu des tables ALL_CATALOG et USER_CATALOG. Commentaires ?
3. Chercher l’ensemble des tables ayant un même propriétaire.
Page : 3
S.Euschi
Téléchargement