Écris les requêtes dans la zone, puis ouvre la réponse pour comparer. Pour les autres questions, réponds avant d’ouvrir : c’est l’effort de rappel qui fait retenir.

Rappel actif

Restitue de mémoire, sans support.

  1. Quatre faits sur le dictionnaire de données : quand est-il créé, à qui appartient-il, quand est-il mis à jour, et comment y accède-t-on ?

  2. Pour chaque besoin, nomme la vue : objets de mon schéma ; colonnes de mes tables ; mes contraintes ; colonnes concernées par mes contraintes ; mes séquences ; mes synonymes ; mes vues ; la liste des vues du dictionnaire.

Écris-le

Rédige la requête, la configuration ou le code, puis compare avec la réponse.

  1. Écris la requête qui liste le nom, le type, la date de création et le statut de tous tes objets, triés par type.

  2. Écris la requête qui affiche, pour la table EMPLOYEES, chaque colonne avec son type, sa longueur, sa précision, son échelle et si elle accepte NULL.

  3. Écris la requête qui affiche les contraintes de EMPLOYEES : nom, type, condition, contrainte référencée, règle de suppression et statut.

  4. Trouve dans DICTIONARY la description de la vue USER_OBJECTS.

  5. Écris la requête qui affiche, pour toutes tes séquences, le nom, le minimum, le maximum, le pas et le prochain numéro disponible.

Distingue

Deux notions proches : dis ce qui les sépare vraiment.

  1. USER_OBJECTS et ALL_OBJECTS : un utilisateur a reçu SELECT sur la table HR.EMPLOYEES. Dans laquelle des deux vues la voit-il ?

  2. Vues statiques (USER_*, DBA_*) et vues dynamiques (V$) : d’où viennent leurs informations, et quand changent-elles ?

  3. USER_CONSTRAINTS et USER_CONS_COLUMNS : pourquoi a-t-on besoin des deux pour connaître la clé primaire d’une table ?

Explique pourquoi

Le mécanisme derrière la règle.

  1. Pourquoi Oracle ne donne-t-il pas d’accès direct aux tables de base du dictionnaire, même à un développeur qui sait ce qu’il fait ?

  2. Pourquoi WHERE table_name = 'employees' ne renvoie-t-il rien, alors que la table existe ?

Cas pratique

Choisis et justifie avec les critères du cours.

  1. Une application plante après une modification de table, et le DBA soupçonne des vues devenues invalides. Quelle requête écris-tu ?

  2. Le DBA veut savoir qui est connecté en ce moment, puis vérifier l’état de ses fichiers journaux. Quelles vues ?

Vrai ou faux, justifie

La justification compte plus que le verdict.

  1. « LAST_NUMBER dans USER_SEQUENCES donne le dernier numéro déjà distribué par la séquence. »

  2. « Les vues V$ restent consultables quand la base est arrêtée, puisqu’elles sont en mémoire. »