Vous êtes sur la page 1sur 31

BASES DE DONNEES AVANCEES

Lotfi NAJDI
Année Universitaire 2020 / 2021
Licence Professionnelle Génie Informatique
Faculté Polydisciplinaire de Taroudant
Data Dictionary
Data Dictionary

 Tables créées par l'utilisateur (User tables) et contenant les données métier (business data)

 Autre collection de tables et de vues créée et maintenue par le serveur Oracle, connue sous le
nom de dictionnaire de données (Data dictionary).

 Cette collection contient des informations sur la base de données.

 Constitue un outil important pour les utilisateurs, concepteurs d'applications et administrateurs


de bases de données.

Oracle server

User tables Data dictionary views:


EMPLOYEES DICTIONARY
DEPARTMENTS USER_OBJECTS
LOCATIONS USER_TABLES
JOB_HISTORY USER_TAB_COLUMNS
... ...
Data Dictionary

Les instructions SQL peuvent être utilisées pour interroger le dictionnaire de données.

On peut interroger les vues du dictionnaire pour avoir un ensemble d’informations intéressantes comme :

 Définitions des objets du schéma (tables, vues , indexes, synonymes, séquences, procédures,
fonctions, packages, triggers, ..etc. )

 Valeurs par défauts des colonnes

 Informations relatives aux contraintes d'intégrité

 Noms des utilisateurs de la base de données

 Privilèges et rôles accordés à chaque utilisateur


Data Dictionary Structure

• Les données du Data Dictionary sont accessibles à travers un ensemble de vues qui résument les
informations stockées dans les tables de base du Data Dictionary .

• Ces vues permettent de simplifier et de masquer la complexité des requêtes (en utilisant des clauses
JOIN et WHERE )

Oracle server

Consiste en :
 Tables de base
 Vues accessibles aux utilisateurs
Convention de nommage des vues

• Le dictionnaire de données est organisé sous frome de collections de vues.

• Par exemple, il existe une vue nommée USER_OBJECTS, une autre nommée ALL_OBJECTS et une

troisième nommée DBA_OBJECTS.

• Ces trois vues contiennent des informations similaires sur les objets de la base de données, sauf que

le périmètre est différent.


Convention de nommage des vues

 USER_OBJECTS : contient des informations sur les objets dont l’utilisateur est propriétaire (Owner) .

 ALL_OBJECTS : contient des informations sur tous les objets auxquels l’utilisateur a accès.

 DBA_OBJECTS : contient des informations sur tous les objets de tous les utilisateurs.

 Les vues préfixées par ALL ou DBA contiennent généralement une colonne supplémentaire nommée

OWNER pour identifier le propriétaire de l'objet.


Data Dictionary Structure

Prefixe Objet

USER Vue utilisateur (Object du schéma dont l’utilisateur est owner )

ALL Vue étendue (objets auxquels l’utilisateur à accès)

DBA Vue de l'administrateur de la BD (objets des schéma de tous les utilisateurs )

V$ Données relatives aux performances


Comment utiliser les vues du Data Dictionary
 Pour se familiariser avec les vues du dictionnaire, on peut utiliser la vue nommée DICTIONARY.

 Cette vue contient le nom et une brève description de chaque vue du dictionnaire à laquelle vous
avez accès.

DESCRIBE DICTIONARY;
Comment utiliser les vues du data dictionary
les noms et les descriptions des tables et des vues du dictionnaire de données.
Les noms des objets dans le
dictionnaire de données sont
SELECT * en majuscules
FROM dictionary
WHERE table_name = 'USER_OBJECTS';
Vues USER_OBJECTS et ALL_OBJECTS

 Interrogez USER_OBJECTS pour consulter tous les objets que vous possédez

 Moyen pratique pour obtenir une liste des d'objets dans votre schéma :

• OBJECT_NAME

• OBJECT_TYPE

• CREATED (Date)

• LAST_DDL_TIME

• Status (VALID or INVALID)

 Interrogez ALL_OBJECTS pour voir tous les objets auxquels vous avez accès
Informations sur les objets
USER_OBJECTS
SELECT object_name, object_type, created, status
FROM user_objects
ORDER BY object_type ;


Informations sur les tables
USER_TABLES
Interrogez USER_TABLES pour obtenir les noms de toutes vos tables.

SELECT table_name
FROM user_tables;

TABS est un synonyme de la vue USER_TABLES

SELECT table_name
FROM tabs;
Informations sur les colonnes
USER_TAB_COLUMNS
Interrogez USER_TAB_COLUMNS pour avoir des informations détaillées sur les colonnes
de vos tables.

DESCRIBE user_tab_columns;
Informations sur les colonnes EMPLOYEES en majuscules
user_tab_columns

SELECT column_name, data_type, data_length, data_precision, data_scale,


nullable
FROM user_tab_columns
WHERE table_name = 'EMPLOYEES';
Informations sur les contraintes
USER_CONSTRAINTS
USER_CONSTRAINTS décrit les définitions des contraintes sur les tables.

DESCRIBE user_constraints;
Informations sur les contraintes
USER_CONSTRAINTS

SELECT constraint_name, constraint_type, search_condition,


r_constraint_name, delete_rule, status C (check constraint on a table)
P (primary key)
FROM user_constraints U (unique key)
R (referential integrity)
WHERE table_name = 'EMPLOYEES'; V (with check option, on a view)
O (with read-only, on a view)
Informations sur les contraintes
USER_CONS_COLUMNS
USER_CONS_COLUMNS décrit les colonnes auxquelles s'applique une contrainte.

DESCRIBE user_cons_columns;
Informations sur les contraintes
USER_CONS_COLUMNS
USER_CONS_COLUMNS décrit les colonnes auxquelles s'applique une contrainte.

SELECT constraint_name, column_name


FROM user_cons_columns
WHERE table_name = 'EMPLOYEES';
Informations sur les vues
user_views

DESCRIBE user_views
Informations sur les vues
user_views

SELECT view_name FROM user_views;


Informations sur les vues
user_views

SELECT text FROM user_views


WHERE view_name = 'EMP_DETAILS_VIEW';
Informations sur les séquences
user_sequences

DESCRIBE user_sequences
Informations sur les séquences
user_sequences

SELECT sequence_name, min_value, max_value,increment_by,


last_number
FROM user_sequences;

Permet de vérifier les valeurs des séquences.


La colonne LAST_NUMBER affiche le prochain numéro de séquence disponible si NOCACHE est spécifié.
Informations sur les indexes
USER_INDEXES

Permet d’avoir les informations sur les index.

DESCRIBE user_indexes;
Informations sur les indexes
USER_INDEXES

SELECT index_name, table_name,uniqueness


FROM user_indexes
WHERE table_name = 'EMPLOYEES';
Informations sur les indexes
USER_IND_COLUMNS

Permet de vérifier les colonnes comprenant des indexes

DESCRIBE
user_ind_columns;

SELECT INDEX_NAME, COLUMN_NAME,TABLE_NAME


FROM user_ind_columns
WHERE table_name = 'EMPLOYEES';
Informations sur les synonymes

DESCRIBE
user_synonyms;

SELECT *
FROM user_synonyms;
Ajout de commentaires à une table
Oracle donne la possibilité d’ajouter des commentaires à une table avec l’instruction COMMENT:

COMMENT ON TABLE employees IS ‘This table contains Employee Information';

SELECT *
FROM USER_TAB_COMMENTS;
Ajout de commentaires à une colonne
Possibilité d’ajouter un commentaire à une colonne avec COMMENT :

COMMENT ON COLUMN employees.first_name


IS 'this column is related to the First name of the employee';

select * from USER_COL_COMMENTS;

Vous aimerez peut-être aussi