Administration de Bases de Données

SGBD, Oracle, Bases de Données · course

Voir tous les documents en bases de données

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