Université Tunis El Manar
Faculté des Sciences Economiques et de Gestion de Tunis
Responsable du cours : F. Kboubi
Niveau : 2LFIG
Matière : SGBD
ADMINISTRATION DE BASES DE DONNEES
TP – DICTIONNAIRE DE DONNEES
OBJECTIFS
• Consultation des divers paramètres liés à une base Oracle existante.
• Etudier 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.
PRESENTATION
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. Ce
dictionnaire regroupe donc toutes les informations nécessaires au fonctionnement
du 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é aisément compréhensibles, la plupart des
Publicité
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é. D’une manière plus précise, les tables du dictionnaire
sont généralement cryptées. Leur contenu est par contre 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$*
EN PRATIQUE
L’ensemble des tables du dictionnaire de données est recensé dans la table principale
DICT ou DICTIONARY.
La commande DESCRIBE ou DESC
describe nom d’objet : rend le schéma de l’objet indiqué
1
• Exemple : DESCRIBE dictionary : rend les noms et les types des colonnes de
la table dictionary.
Recherche à l’aide d’un modèle
Par exemple, trouver toutes les tables du dictionnaire qui peuvent avoir trait au log :
select table name, comments from dictionary
Publicité
where upper(table name) like upper(’%log%’);
Le dictionnaire comprenant plus de 1000 (mille) tables et vues (voir le nombre exact en
faisant “select count(*) from dictionary”), il est préférable d’utiliser des
expressions comme celle ci-dessus en lieu et place d’un “select * from
dictionary”.
Par ailleurs, la table dict_columns permet de connaître la
signification des colonnes des tables du dictionnaire.
Attention : Dans la comparaison de chaînes de caractères, Oracle est sensible aux
majuscules/minuscules : d’où l’utilisation de la fonction upper ci-dessus.
TRAVAIL DEMANDE
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…) au cours des TP
suivants.
Après avoir lancé sqlplus, réaliser les opérations ci-dessous.
1. Se connecter comme administrateur.
2. 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
Publicité
DESCRIBE.
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. Donner le schéma de relation correspondant à la table USER_USERS. Quel
est votre nom d'utilisateur Oracle ?
6. Quel est le nom de l’instance Oracle, sa version, sa machine de résidence et l’état
de la base (voir v$instance) ?
7. Quel est le nom de la base et son mode d’ouverture (voir v$database) ?
8. Voir aussi v$parameters ou encore exécuter show parameter ;
2
9. Quels sont les noms et les emplacements des fichiers de contrôle de la base
(control file) ?
10. Quels sont les noms et les emplacements des fichiers du journal (redo log) des
images après modification (voir v$logfile) ?
Publicité
11. Quels sont les noms et les numéros des espaces de stockage (tablespace) ?
12. Quels sont les noms des fichiers de données (datafile) et la taille de leurs
blocs (v$datafile) ?
13. Dans quel espace de stockage (tablespace) est localisé chaque fichier de
données (datafile) ?
14. Créer un espace de stockage ayant un seul fichier de 2M et comme clause de
stockage par défaut (default storage) pour tous ses objets.
15. Vérifier le résultat.
16. Créer un espace de stockage temporaire (create temporary tablespace . . .
tempfiles ou create tablespace . . . temporary datafile) ayant un seul fichier de
2M ;
17. Vérifier le résultat.
18. Se déconnecter (exit ou disconnect) et se reconnecter. Quels sont les espaces de
stockage existants ? Expliquer.
19. Supprimer les objets créés dans les questions précédentes. A cet effet, voir
notamment drop tablespace . . . including contents and datafiles. Vérifier le
résultat.
3