Vous êtes sur la page 1sur 15

04/11/2023

LA MÉTA-BASE
(LES CATALOGUES)

ORACLE

PLAN
Concepts de base

Dictionnaire de données Oracle

1
04/11/2023

CONCEPTS DE BASE
Une base de données contient des relations de base, des chemins
d’accès et des vues, etc. qu’on appelle de façon générique les
objets de la BD

Le SGBD, pour fonctionner et assurer ses objectifs doit pouvoir


retrouver les différentes informations sur ces catégories d’objets.

CATALOGUES
Les catalogues sont des relations (tables).

Ces relations contiennent des informations sur tous les objets de


la base de données .

Sans ces informations le SGBD ne peut pas assurer ses objectifs.

Ces informations descriptives sont stockées dans la Méta Base

EXEMPLE DE SCHÉMA DE BD

Soit la BD simplifiée des fournisseurs suivante :

FOURNISSEUR (NUMF, CODEF, NOMF, VILLEF)


PRODUIT (NUMP, COULEUR, MATERIAU)
PROD-FOUR (NUMF,NUMP, QTE)

Remarque : Ce sont des relations d’une Base


de données utilisateur

2
04/11/2023

EXEMPLE DE REQUÊTE
SELECT NUMF
FROM FOURNISSEUR
WHERE VILLEF = ‘ALGER’
Analyse syntaxique: effectuée par le SGBD

SELECT NUMF erreur : Mot clé FROM absent à


WHERE VILLEF = ‘ALGER’ l’emplacement prévu

Analyse sémantique : effectuée par le SGBD

SELECT name erreur: Nom de colonne invalide


FROM FOURNISSEUR
WHERE VILLEF = ‘ALGER’

SELECT NUMF
Erreur : Nom de table invalide
FROM FOURNIS
WHERE VILLEF = ‘ALGER’

A travers cet exemple il faut voir que le SGBD doit avoir


des mécanismes pour assurer cette analyse de requêtes:
Comment pourrait-il exécuter une requête s’il elle
n’est pas écrite correctement?
Comment saura-t-il que tel ou tel attribut, ou telle et
telle relation, existe?
Comment va-t-il accéder aux données pour répondre
à la requête?
Les instruments mis à sa disposition seront les
catalogues appelée Méta Base. Sa gestion est assurée
par le SGBD

3
04/11/2023

PRINCIPAUX CATALOGUES
La relation RELATION (ou méta-relation) : Chacun de ses tuples
décrit une relation de la base de données ainsi que des relations
système ou virtuelle

La relation ATTRIBUT
ATTRIBUT: chacun de ses tuples décrit un attribut
d’une relation de la base

La relation INDEX
INDEX:: chacun de ses tuples décrit une relation index
crée sur une relation de base ou système.

La relation VUE
VUE:: chacun de ses tuples décrit une vue de la base.

La relation AUTORISATION
AUTORISATION:: chacun de ses tuples décrit un
utilisateur avec les droits qui lui sont accordés sur chaque objet de la
base(lecteur/écriture/modification…)

RELATION : « RELATION »

Chaque tuple est un descripteur d’une relation dans la


base de donnée. On distingue trois types de relation :
système, base, virtuelle :
Relation système : pour assurer la gestion de la méta
base: méta-relation des attributs
Relation de base : ce sont les relations résultats de la
conception de la base de données : exemple relation
« FOURNISSEUR »
Relation virtuelle : seule la description existe: exemple
relation « vue FOURNISSEUR-Alger »

4
04/11/2023

RELATION : « RELATION »

Informations générales incluses :


Nom de la relation : nom externe donné à la
relation
Type de la relation : système, base, virtuelle
Taille : taille du descripteur en nombre d’octets
Cardinalité : nombre de tuples de la relation
Degré: nombre d’attributs de la relation
Date de création,
Version
Adresse du premier attribut de la relation

RELATION : « RELATION »
Nom Type Ident Taille Cardinalit Degré Date Versi Adr
relation relation relation tuple é (NBR- création on esse
(nom (nom (nbre (Nbr- attributs 1er
externe) interne) octets tuples) ) attri
) but
Relation système 1 100 50 09 25/03/17 1 @


Fournisseur Base 10 110 1000 04 25/03/17 1 @
Produit Base 11 .. .. .. ..
Prod-Four Base 12 .. .. .. ..
..

..

5
04/11/2023

RELATION : « ATTRIBUT »
Chaque tuple décrit un attribut d’une relation de la
base
Informations incluses :
Nom de l’attribut : externe
Identificateur attribut: interne
Identificateur relation à laquelle appartient
l’attribut
Type attribut
longueur
Position de l’attribut dans la table

RELATION : « ATTRIBUT »
Nom Identificat Identific Type longueur Position
attribut eur ateur attribut attribut
(nom attribut relation dans la
externe) relation
Nom- 001 01 char 6 01
Relation
Type- 002 01 char 2 02
relation
…. …. …. …. …. …
NumF 050 10 Integer 06 01
NomF 051 10 Char 10 03

6
04/11/2023

RELATION : « INDEX »
Chaque tuple décrit un index crée sur une relation de base ou
système
Informations incluses :
Nom de l’index
Identificateur de la relation indexée
Type de l’index
Attributs indexés

Nom index Identification Type Liste arguments


relation (primaire, index
secondaire)
XFOUR 10 P Numf
XSFOUR 10 S villef
:: :: :: ::

RELATION : « VUE »

Chaque tuple décrit une vue créée sur la base.

Informations incluses :

Identificateur de la vue/ Nom de la vue

Identificateurs des relations de base utilisées par la vue

Nom de la vue : externe

Requête définissant la vue : la requête SQL sera


considérée comme une chaine de caractères

7
04/11/2023

RELATION : « VUE »

Identificaeur Identificateur(s) Nom de la Vue Requête qui définit la


de la vue des relations de vue
base

100 10 Four-ALGER Select NumF,Nomf


from Fournisseur
where villef =’ALGER’

GESTION DYNAMIQUE DES CATALOGUES


Les catalogues sont mis à jour dynamiquement et automatiquement
au fur et à mesure que la base de données évolue par :
De nouvelles insertions
Des modifications dans la structure des relations
Des ajouts d’index secondaires
Des créations de vues etc.

EXEMPLE :
ALTER TABLE Fournisseur ADD ADRESSEF …..
Répercussions :
- Ajout d’une ligne ADRESSEF dans le catalogue ATTRIBUT
- Modification du tuple ATTRIBUT dans la méta-relation par la
Modification de l’attribut « cardinalité » du tuple: cardinalité =
cardinalité +1
- Modification du tuple Fournisseur par la modification de l’attribut
« degre » du tuple: degre = degré +1

8
04/11/2023

META RELATION : « RELATION »

Nom Type Ident Taille Cardinalit Degré Date Versi Adr


relation relation relation tuple é (NBR- création on esse
(nom (nom (nbre (Nbr- attributs 1er
externe) interne) octets tuples) ) attri
) but
Relation système 1 100 50 09 25/03/17 1 @
Attribut // 2 100 1001 6 25/03/17 1 @
Index // 3 20 40 4 // // @
Vue // 4 10 30 4 // // @

Fournisseur Base 10 110 1000 05 25/03/17 1 @
Produit Base 11 .. .. .. ..
Prod-Four Base 12 .. .. .. ..
..
Xfour .. .. .. .. .. ..
Four- virtuelle 100 120 5 03 25/03/17 2 @
ALGER
..

CATALOGUES - SGBD

Les catalogues dépendent du SGBD

Chaque SGBD possède une spécificité

Les structures des catalogues peut être différentes selon les

SGBDs.

9
04/11/2023

DICTIONNAIRE DE DONNÉES ORACLE

Définition: C’est un certain nombre de tables


et vues qui contient un ensemble d’information
liée à l’activité et au fonctionnement de la base
de donnée
Et ce pour:
Récupérer les informations nécessaire à
l’exploitation et à l’administration de la base de
donnée Oracle

DICTIONNAIRE DE DONNÉES ORACLE


Caractéristiques

Appartient à l’utilisateur SYS

Stocke les informations sur:

La base de données (structure logique et physique)

Le nom et les définitions des différents objets crées

Les contraintes sur les objets

Les utilisateurs de connexions et leur


caractéristiques (ex: privilèges)

L’audit sur une base de données

10
04/11/2023

DICTIONNAIRE DE DONNÉES ORACLE

Toutes les informations contenues dans les tables


système du dictionnaire des données et accessibles au
travers de vues sont codées en MAJUSCULES.
Exp: select * from all_table Majuscule

where table_name like ‘JOBS’;


Le dictionnaire des données est mis automatiquement à
jour après chaque instruction SQL du LMD (INSERT,
UPDATE, DELETE, …) ou LDD (create table, drop user,...)

DICTIONNAIRE DE DONNÉES ORACLE


Les vues du dictionnaire de données sont :
DBA_* : informations sur les objets de tous les schémas
USER_* : informations sur les objets appartenant au
compte connecté
ALL_* : informations des vues USER_* et des
informations sur les objets pour lesquels des privilèges ont
été octroyés au groupe PUBLIC ou à l’utilisateur
courant
Liste des vues du dictionnaire
• DICTIONARY ou DICT

11
04/11/2023

DICTIONNAIRE DE DONNÉES ORACLE


Démarche à suivre
La démarche à suivre afin d’interroger correctement le dictionnaire
des données à propos d’un objet est la suivante :
Étape 1 : trouver le nom de la vue en consultant DICTIONARY
Étape 2 : choisir les colonnes de la vue à sélectionner (utiliser
DESC) ;
Étape 3 : interroger la vue en exécutant une requête SELECT
contenant les colonnes intéressantes.

NB : Étape 1 peut être omise si on connaît déjà le nom de la vue


(ce sera le cas pour les vues usuelles que vous aurez déjà utilisées à
plusieurs reprises).

DICTIONNAIRE DE DONNÉES ORACLE


RECHERCHE DU NOM D’UNE VUE
L’extraction du nom des vues qui concernent un objet est rendue
possible par l’interrogation de la vue DICTIONARY (de
synonyme DICT)
SQL>DESC DICTIONARY Nom NULL Type
---------- ---- --------------
TABLE_NAME VARCHAR2(30)
COMMENTS VARCHAR2(4000)

SELECT * FROM DICTIONARY TABLE


WHERE table_name LIKE '%SEQUENCE%';
INDEX
TRIGGER
VIEW
TABLE_NAME COMMENTS CONSTRAINT
------------------------- --------------------------------------------------------------------
ALL_ SEQUENCES Description of SEQUENCEs accessible to the user
DBA_ SEQUENCES Description of all SEQUENCEs in the database
USER_ SEQUENCES Description of the user's own SEQUENCEs

12
04/11/2023

DICTIONNAIRE DE DONNÉES ORACLE


INTERROGER LA VUE

L’interrogation de la vue sur la base des colonnes choisies est l’étape finale
de la recherche de données dans le dictionnaire

Interrogeons le dictionnaire des données à travers les quatre premières


colonnes de la vue USER_SEQUENCES pour retrouver les caractéristiques de
ces deux séquences.
La valeur courante de la séquence n’est pas stockée dans cette vue, elle est, en
revanche, accessible via la fonction CURRVAL.

SEQUENCE_NAM MIN_VAL, MAX_VAL


SQL> DEPARTMENTS_SEQ 1 9990
SELECT SEQUENCE_NAME, EMPLOYEES_SEQ 1 9999999999
MIN_VALUE, MAX_VALUE LOCATIONS_SEQ 1 9900
FROM USER_SEQUENCES ; MA_SEQUENCE 1 999999999
MA_SEQUENCE2 1 9999999999
SQ_ID_TRANSACTION 1 10000

DICTIONNAIRE DE DONNÉES ORACLE


PRINCIPALES VUES DU DICTIONNAIRE DES DONNÉES
Nature de l’objet Vues
----------------------- ------ -------------------------------
Objets (au sens général) USER_OBJECTS : objets appartenant à l’utilisateur (synonyme OBJ).
USER_ERRORS : erreurs après compilation des objets PL/SQL stockés
(procédures, fonctions, paquetages, déclencheurs).
USER_STORED_SETTINGS : paramètres des objets PL/SQL stockés.
USER_SOURCE : source des objets PL/SQL stockés.

Tables USER_TABLES : description des tables relationnelles de l’utilisateur


(synonyme TABS).
USER_ALL_TABLES : description des tables relationnelles et objets de
l’utilisateur.

Colonnes USER_TAB_COLUMNS : colonnes des tables et vues (synonyme COLS).


USER_UNUSED_COL_TABS : colonnes éliminées des tables.

Index USER_INDEXES : description des index (synonyme IND).


USER_IND_EXPRESSIONS : expressions fonctionnelles des index.
USER_IND_COLUMNS : colonnes qui composent les index.

Contraintes USER_CONSTRAINTS : définition des contraintes de tables.


USER_CONS_COLUMNS : composition des contraintes (colonnes).

13
04/11/2023

DICTIONNAIRE DE DONNÉES ORACLE


PRINCIPALES VUES DU DICTIONNAIRE DES DONNÉES

Nature de l’objet Vues


----------------------- ------ -------------------------------
Vues USER_VIEWS : description des vues de l’utilisateur
Synonymes USER_SYNONYMS : description des synonymes privés d’un utilisateur
DBA_SYNONYMS et ALL_SYNONYMS : description de tous les
synonymes (privés et publics).
Séquences Déjà étudié en début de section.

Commentaires USER_TAB_COMMENTS : commentaires à propos des tables ou vues.


USER_COL_COMMENTS : commentaires à propos des colonnes des
tables et vues.

Utilisateurs USER_USERS : caractéristiques de l’utilisateur courant.


DBA_USERS et ALL_USERS : caractéristiques de tous les utilisateurs.

DICTIONNAIRE DE DONNÉES ORACLE


PRINCIPALES VUES DU DICTIONNAIRE DES DONNÉES
Privilèges USER_TAB_GRANTS : liste des autorisations sur les tables et les vues pour
lesquelles l’utilisateur est le propriétaire, ou ayant donné ou reçu l’autorisation.
USER_TAB_GRANTS_MADE : liste des autorisations sur les objets appartenant à
l’utilisateur.
USER_COL_GRANTS : colonnes autorisées à l’accès
USER_COL_GRANTS_MADE : liste des autorisations sur les colonnes des tables ou
des vues appartenant à l’utilisateur.
USER_COL_PRIVS_MADE : informations sur les colonnes pour lesquelles l’utilisateur
est propriétaire ou bénéficiaire.
USER_TAB_GRANTS_RECD : liste des objets pour lesquels l’utilisateur a reçu une
autorisation.
USER_COL_PRIVS_RECD : informations sur les colonnes pour lesquelles l’utilisateur a
reçu une autorisation.

Rôles DBA_ROLES : tous les rôles existants.


DBA_ROLE_PRIVS : rôles donnés aux utilisateurs et aux autres rôles.
USER_ROLE_PRIVS : rôles donnés à l’utilisateur.
ROLE_ROLE_PRIVS : rôles donnés aux autres rôles.
ROLE_SYS_PRIVS : privilèges système donnés aux rôles.
ROLE_TAB_PRIVS : privilèges sur les tables donnés aux rôles.
SESSION_ROLES : rôles actifs à un instant t

14
04/11/2023

DICTIONNAIRE DE DONNÉES ORACLE


VUES DYNAMIQUES

Oracle maintient un jeu de tables virtuelles qui


enregistre l’activité courante de la base de données.
Ces tables sont appelées les tables de performances
dynamiques. Elles sont visibles pour les utilisateurs
via les vues dynamiques de performances.
Identifiées avec le préfixe V_$ (synonym V$).
• Accessible uniquement pour l’utilisateur SYS et
pour les utilisateurs ayant le privilège SYSDBA.
Liste des vues dynamiques
• V$FIXED_TABLE

DICTIONNAIRE DE DONNÉES ORACLE


VUES DYNAMIQUES
V$PARAMETER : Liste les informations sur les paramètres d’initialisation avec
leur nom, leur nombre, leur valeur et leur type.
V$SGA : Donne des informations récapitulatives sur la SGA.
V$OPTION : Liste les options installées avec le serveur Oracle.
V$PROCESS : Contient des informations sur les process actifs.
V$SESSION : Donne les informations sur la session courante.
V$VERSION : Liste le numéro de version et les composants du serveur Oracle.
V$INSTANCE : Donne l’état de l’instance courante.
V$THREAD : Présente les informations sur les threads des fichiers de contrôle tel
que les informations sur les groupes de redo log.
V$CONTROLFILE : Fournit les noms des fichiers de contrôle.
V$DATABASE : Contient des informations sur la base de données tel que le nom
ou la date de création.
V$DATAFILE : Donne les informations sur les fichiers de données tel que leur
nom, leur statut et d’autres détails.
V$DATAFILE_HEADER : Donne des informations sur les en-têtes des fichiers de
contrôle.
V$LOGFILE : Contient des informations sur les fichiers de redo log en ligne.

15

Vous aimerez peut-être aussi