Vous êtes sur la page 1sur 23

TP °3 ASGBD

M1 IL
KHICHA INES
181831013057
RAPPORT TP
ASGBD

Introduction :

Le dictionnaire de données (DD) est le référentiel unique qui décrit tous les objets
physiques et logiques d'une base de données Oracle. Il est accédé implicitement par le
noyau Oracle et explicitement par les utilisateurs DBA ou non.
Par exemple lorsque l'on crée une table le noyau insère automatiquement une ligne
descriptive dans la table des tables.
Le dictionnaire est organisé en tables et en vues, ce qui implique que son
interrogation peut se faire en SQL !

Réponses :
1. On se connecte en tant que « system » :
a. Lister le catalogue «DICT»
La Requête :
SELECT * FROM DICT ;
Résultat :
b.Nombre d’instances de « DICT » :
Requête :
SELECT * FROM DICT ;
Résultat :
SELECT COUNT(*) FROM DICT ;

Le dictionnaire contient 1821 lignes.

c. STRUCTURE DE « DICT » : Requête :


DESC DICT ;
Résultat :
Le dictionnaire est représenté sous la forme d’un tableau contenant les noms de toutes les
structures de la base de données, ainsi que des commentaires sur ces dernières. On le voit bien
dans sur le résultat obtenu, le tableau contient « TABLE_NAME » et « COMMENTS ».

2. Le rôle des structures


• ALL_TAB_COLUMNS décrit les colonnes des tables, des vues et des grappes
accessibles à l’utilisateur actuel.
• USERS_USER contient des informations sur l’utilisateur courant.

• ALL_CONSTRAINTS contient les définitions de contraintes sur les tables


accessibles à l’utilisateur actuel.
• USER_TAB_PRIVS décrit les droits pour les objets pour lesquels l’utilisateur
courant est le propriétaire de l’objet.

3. Nom d’utilisateur connecté :


Requête :
SELECT USER FROM USER_USERS;
Résultat :

4. Comparaison de « ALL_TAB_COLUMNS » ET « USER_TAB_COLUMNS » :


Comme on peut le remarqué les deux structures sont exactement les mêmes sauf que
ALL_TAB_COLUMNS contient l’attribut OWNER en plus.
5. Vérifions que les tables du TP1 ont bien été créées :
Requête :
SELECT DISTINCT TABLE_NAME FROM ALL_TABLES where owner=
‘DBACOMPTOIRS’;
Résultat :
Maintenant on affiche les informations sur ces dernières:
Requête :
SELECT * FROM USER_TABLES ;

6. Listons les tables des utilisateurs « SYSTEM » et « DBACCOMPTOIRS »


Requêtes:
SELECT DISTINCT TABLE_NAME FROM ALL_TABLES WHERE
OWNER='SYSTEM';
SELECT DISTINCT TABLE_NAME FROM ALL_TABLES WHERE
OWNER=’DBACOMPTOIRS';
Résultats :
Les tables system contiennent des informations sur le SGBD mais les tables user
contiennent des données crées par l’utilisateur.
7. Description des tables « CLIENT » et « commande »
On affiche les attributs de chaque table, leurs types ainsi que leurs tailles à l’aide de
USER_TAB_COLUMNS
Requêtes :
SELECT COLUMN_NAME, DATA_TYPE, DATA_LENGTH FROM
USER_TAB_COLUMNS
WHERE TABLE_NAME='COMMANDE';
SELECT COLUMN_NAME, DATA_TYPE, DATA_LENGTH FROM
USER_TAB_COLUMNS
WHERE TABLE_NAME='CLIENT';
Résultats:
TABLE COMMANDE :

TABLE CLIENT :
8. Vérifions qu’il y a une référence de clé étrangère entre la table « PRODUIT »
et « CATEGORIE»
Pour cela on devrait lister les contraintes de la table produit là où se trouve la clé étrangère
qui fait référence à la clé primaire dans la table catégorie
Requête :
SELECT CONSTRAINT_NAME, CONSTRAINT_TYPE FROM
USER_CONSTRAINTS WHERE TABLE_NAME='PRODUIT';
Résultat:
9. Toutes les contraintes créées lors du TP1 et les informations qui les
caractérisent (Exploitez la table USER_CONSTRAINTS);
On peut afficher tous les attributs de la table user_constraints comme on peut afficher que
le nom de la contrainte, son type et le nom de la table associée pour que l’affichage soit
plus clair.
Requête :
SELECT TABLE_NAME, CONSTRAINT_NAME, CONSTRAINT_TYPE FROM
USER_CONSTRAINTS;
Résultat:
10. Les informations qui permettent la recréation de la table
Pour pouvoir recréer la table on doit savoir les attributs de cette table ainsi leurs type et
longueur en exploitant la table USER_TAB_COLUMNS, sans oublier les contraintes et
leurs type également avec USER_CONSTRAINTS
Requête :
// Les attributs
SELECT COLUMN_NAME, DATA_TYPE, DATA_LENGTH
FROM USER_TAB_COLUMNS
WHERE TABLE_NAME='COMMANDE';
// Les contraintes

SQL> SELECT
CONSTRAINT_NAME,R_CONSTRAINT_NAME,CONSTRAINT_TYPE FROM
USER_CONSTRAI
NTS WHERE TABLE_NAME='COMMANDE';
Resultats :
Les attributes :

Les constraints:
11.Les privilèges accordés à l’utilisateur « ADMINCOMPTOIRS»
Afin de pouvoir afficher les privilèges accordés à cet utilisateur on peut faire appel
à la table USER_TAB_PRIVS avec le privilégié « ADMINCOMPTOIRS »
Requête :
SELECT PRIVILEGE, TABLE_NAME FROM USER_TAB_PRIVS WHERE
GRANTEE='ADMINCOMPTOIRS';
Résultat:

Vu que l’utilisateur n’a pas le privilège de créer une session on ne peut pas lister les
privilèges en
connectant a ce dernier

12.Les rôles donnés à « ADMINCOMPTOIRS»


Requête :
SELECT GRANTEE, GRANTED_ROLE FROM DBA_ROLE_PRIVS WHERE
GRANTEE='ADMINCOMPTOIRS'
Résultat:

Comme indiqué, le seul rôle attribué à cet utilisateur était le rôle que nous lui
avons affecté dans le dernier TP

13.Les objets appartenant à « ADMINCOMPTOIRS»


Requête :
SELECT OBJECT_NAME FROM ALL_OBJECTS WHERE
OWNER='ADMINCOMPTOIRS';
Résultat:

Les objets de cet utilisateur sont la table test, la vue view1 et l’index NP_IX crées
dans le TP précédent
14. Le propriétaire de la table «MESSAGER» :
Requête :
SELECT OWNER FROM ALL_TABLES WHERE
TABLE_NAME='MESSAGER';
Résultat:

Le propriétaire de la table messager est DBACOMPTOIRS


15.Taille en KO de la table « EMPLOYE »
La taille sera affiché en bytes (1024 bytes = 1 KO) donc on divise la taille par 1024
comme
suit :
Requête :
SELECT BYTES/1024 AS SIZE_TABLE_KO FROM USER_SEGMENTS
WHERE SEGMENT_NAME='EMPLOYE';
Résultat:

16. L’effet produit par chacune des commandes de définition de données du TP1 sur
le dictionnaire.
Afin de montrer clairement l'effet de la définition des données sur le dictionnaire nous
allons créer un nouvel utilisateur et un nouveau tablespace afin de montrer l'état des
tables : relations, colonnes et contraintes avant et après l'exécution des différentes
commandes de tp1
- Apres la création, on veut savoir l’état initial des catalogues avant toutes
modifications
Comme le montre les figures ci-dessus les tables catalogue sont toutes vides car on
rien crée ou inséré comme données

- On passe à la création des tables du tp1


- Après la création, le dictionnaire contient désormais les informations sur les tables
créées, les colonnes, les contraintes…
Comme le montre ces figures la création des tables produit un effet sur les trois
catalogues relation ; chaque table représente une instance du catalogue relation. Le
catalogue attributs contient tous les attributs de différentes tables et finalement le
catalogue contraintes qui contient les contraintes définies lors de la création des
tables

- Apres la création vient la modification, il nous demande comme question de


rajouter l’attribut illustration, donc ce dernier va être rajouté au catalogue des
attributs et le degré de la table commande sera incrémenté par 1

Vous aimerez peut-être aussi