2. Présentation : Dictionnaire de données Les tables du dicti

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,…
 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;
Page : 1
S.Euschi
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.
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 : 2
S.Euschi
Téléchargement