Vous êtes sur la page 1sur 4

Université Kasdi Merbah Ouargla

Département d‟Informatique et des Technologies de l‟Information


3 eme Licence SI Module ABD
14/05/2018
Corrigé Contrôle ABD
(Durée 1 H 30)
Répondre aux questions suivantes :
BD Oracle : Gestion des transactions (5pts)
1. Quelle doit être la valeur de la colonne « SALARY » 2. Quelle doit être la valeur de la colonne « SALARY
après l'exécution du script suivant ? » après l'exécution du script suivant ?
SQL> UPDATE HR.EMPLOYEES SET SALARY=4000 SQL> SELECT FIRST_NAME, LAST_NAME, SALARY
2 WHERE EMPLOYEE_ID = 200; 2 FROM HR.EMPLOYEES
1 ligne mise à jour. 3 WHERE EMPLOYEE_ID = 200;
SQL> SAVEPOINT SP1; FIRST_NAME LAST_NAME SALARY
Savepoint créé. Jennifer Whalen 4400
SQL> UPDATE HR.EMPLOYEES SET SALARY=5000 SQL> UPDATE HR.EMPLOYEES SET SALARY=7000
2 WHERE EMPLOYEE_ID = 200; 2 WHERE EMPLOYEE_ID = 200;
1 ligne mise à jour. 1 ligne mise à jour.
SQL> ROLLBACK TO SAVEPOINT SP1; SQL> DROP TABLE SCOTT.EMP;
Annulation (rollback) effectuée. Table supprimée.
SQL> SELECT FIRST_NAME, LAST_NAME, SALARY SQL> ROLLBACK;
2 FROM HR.EMPLOYEES Annulation (rollback) effectuée.
3 WHERE EMPLOYEE_ID = 200; SQL> SELECT FIRST_NAME, LAST_NAME, SALARY
FIRST_NAME LAST_NAME SALARY 2 FROM HR.EMPLOYEES
Jennifer Whalen ? 3 WHERE EMPLOYEE_ID = 200;
FIRST_NAME LAST_NAME SALARY
4000 Jennifer Whalen ?

7000
3. Quelles sont les commandes SQL qui peuvent être 4. Quelles sont les commandes SQL qui valident
annulées dans une transaction ? automatiquement une transaction ?
a. INSERT X b. CREATE c. ALTER a. INSERT b. CREATE X c. ALTER X
d. TRUNCATE e. DROP f. DELETE X d. TRUNCATE X e. DROP X f. DELETE
g. UPDATE X g. UPDATE
5. Dans une seule transaction, je suis en train de modifier 6. Est-ce que l'administrateur de la base de données
une table avec plusieurs commandes 'update' et 'insert' peut voir les données en train d'être modifiées dans
les unes après les autres. Que peut faire un autre une transaction par les utilisateurs de la base ?
utilisateur pendant cette transaction? a. Oui
a) Il ne peut plus lire la table parce que je la bloque. b. Non X
b) Il peut lire toute la table sans problème et s'il fait 7. Peut-on annuler partiellement une transaction ?
plusieurs 'select' les uns après les autres, il voit les a. Oui X
modifications ou les nouvelles lignes. b. Non
c) Il peut lire toute la table sans problème mais ne voit 8. Vous avez ouvert deux sessions avec le même
pas les modifications; par contre, il voit les utilisateur. Dans la première session, vous modifiez
nouvelles lignes. un enregistrement d'une table. Est-ce que dans la
d) Il peut lire toute la table sans problème mais ne voit deuxième session, connectée avec le même
ni les modifications ni les nouvelles lignes. X utilisateur, vous pouvez voir la modification
effectuée dans l'autre session ?
a. Oui
b. Non X

Nom : …………………………………... Prénom : …………………………………… Page 1


BD Oracle : Instance, Base de données, Dictionnaire de données, Tablespaces, Segment,
Extent, Bloc (6 pts)
1. Quels sont les processus indispensables à une 2. Une instance Oracle, c‟est:
instance Oracle : a. L‟ensemble des fichiers utiles au fonctionnement
a. DBWR (DatabaseWriter) X d‟une base de données Oracle.
b. Listenerou listenerNet b. Les processus d‟arrière plan et la zone mémoire SGA
c. LGWR (Log Writer) X utiles au fonctionnement d‟une base de données
d. ARCH ou Archiver Oracle. X
e. CKPT (Checkpoint) X c. La phase d'installation du logiciel Oracle.
f. PMON (ProcessMonitor) X d. Une base de données qui ne veut plus démarrer.
g. RECO ou Recover
h. Dnnnn et Snnnn (Dispatcher et Server)
i. SMON (System Monitor) X
3. A propos d‟une tablespace, indiquez quelles 4. Qu'est-ce qui nous permet de récupérer les données qui
propositions sont vraies (2 réponses). n'ont pas été mises à jour dans les fichiers de données
a. Une tablespace ne peut pas contenir plus d'une suite à l'arrêt brutal du serveur BD Oracle?
table. a. Les fichiers RedoLogs X
b. Une tablespace contient soit des tables, soit b. Les segments UNDO
des index. c. La tablespace « SYSTEM »
c. Une tablespace peut en même temps contenir
des tables et des index. X 5. Mettez dans l'ordre, suivant la règle “contient”.
d. Une tablespace peut-être étendue sur plusieurs a. Tablespace - Segment - Extent – Bloc X
fichiers. X b. Segment – Tablespace – Extent – Bloc
e. Une tablespace a une taille fixe et ne peut pas c. Extent – Segment – Bloc – Tablespace
être agrandie. d. Bloc – Tablespace – Segment – Extent
6. Quels sont les trois composants physiques qui 7. Quels sont les composants qui font partis de la structure
constituent la base de données Oracle ? logique d‟une base de données Oracle ?
a. Table b. Extent c. Fichier de a. Bloc X b. Extent X c. Fichier de
données X données
d. Fichier e. Segment f. Tablespace d. Fichier e. Segment X f. Tablespace X
RedoLog X RedoLog
g. Fichier de g. Fichier de
contrôle X contrôle
8. En tant que simple utilisateur, quelles sont les 9. Parmi les différents privilèges suivants, lequel est
tables du dictionnaire de données que je peux considéré comme un privilège „objet‟?
consulter? (3 réponses) a. create session
a. user_tables X b. select any table
b. v$datafiles c. delete on EMP X
c. dba_tables d. grant any object privilege
d. all_tables X
e. all_catalog (synonyme cat) X
10. Mettez dans l'ordre, suivant la règle “contient” ou 11. Quelle est la méthode de rafraîchissement des blocs dans
“gère”. le Database buffer cache?
a. Instance - Tablespace - Database - Table – a. LIFO
Rows b. LRU (Least-Recently Used) X
b. Instance - Database - Tablespace - Table – c. FIFO
Rows X 12. Quels sont les fichiers mis à jour par le processus «
c. Instance - Database - Table - Tablespace – DBWn » pour écrire les blocs modifiés ?
Rows a. Les fichiers de données X
d. Database - Instance - Tablespace - Table - b. Les fichiers de données et les fichiers de contrôles
Rows

Nom : …………………………………... Prénom : …………………………………… Page 2


BD Oracle : Tables, Vues, Index… (5pts)
1. Quels types de données n‟existent pas ou ne peuvent 2. Que pouvez-vous certifier à propos de XYZ dans la
pas être utilisés pour une colonne dans une table commande suivante?
ORACLE? (2 réponses) select * from XYZ
a. BigInteger X a. XYZ est une table, une vue ou un synonyme
b. number d‟une table ou d‟une vue. X
c. varchar2 b. XYZ est une table ou une vue.
d. boolean X c. XYZ peut seulement être une table.
e. date
3. Vous avez besoin pour une colonne de vérifier qu'il 4. Un utilisateur a créé une table (EMP) ainsi qu'une
n'existe pas deux fois la même valeur dans la table en procédure stockée (PINSERT) grâce à laquelle il est
même temps, la colonne ne doit pas contenir des possible d'ajouter des lignes dans la table. Pour qu‟il
valeurs nulles. Quel est le type de contrainte que me soit possible d‟ajouter des lignes dans cette table,
vous devez utiliser pour satisfaire les deux conditions que doit faire l'utilisateur en question? (2 réponses)
? a. grant execute on PINSERT to MYUSERNAME X
a. CHECK b. grant execute on MYUSERNAME.PINSERT to
b. UNIQUE MYUSERNAME
c. NOT NULL c. grant select on EMP to MYUSERNAME
d. PRIMARY KEY X d. grant insert on EMP to MYUSERNAME X
e. FOREIGN KEY e. grant select on EMP, execute on PINSERT to
MYUSERNAME
5. Pour quelle tâche peut-on utiliser l‟utilitaire „sqlldr‟? 6. Pour quelle(s) tâche(s) peut-on utiliser l‟utilitaire
a. Exporter une table Oracle vers un fichier texte „exp/imp‟? (2 réponses)
plat sur mon disque. a. Exporter une table Oracle vers un fichier texte
b. Déplacer une table d'un schéma à un autre. plat sur mon disque.
c. Importer un fichier texte qui contient les b. Déplacer une table d'un schéma à un autre. X
enregistrements de mes clients dans une table c. Importer un fichier texte qui contient les
Oracle. X enregistrements de mes clients dans une table
d. Déplacer tous les objets d'un utilisateur vers un Oracle.
autre serveur Oracle. d. Déplacer tous les objets d'un utilisateur vers un
autre serveur Oracle. X
7. A propos des caractéristiques des vues (views). 8. Considérez l‟instruction suivante.
Quelle affirmation est fausse? alter table sales_item
a. Une seule vue peut être générée sur plusieurs add constraint fk1 foreign key (sno) references sales;
tables. Je reçois le message suivant qui m‟indique une erreur
b. Il est souvent possible, pas toujours, de modifier, - que signifie cette errreur?
par le biais de vues, des lignes des tables sous- ORA-xxxx: parent key not found
jacentes (la commande update). a. Une des valeurs dans la table sales_item, colonne
c. La suppression d‟une table entraîne sno, qui est la clé étrangère (foreign key) n‟a pas
automatiquement la suppression de toutes les de valeur qui correspond dans la table sales, qui
vues sur cette table. X est la clé primaire (primary key). X
d. Quand on essaie d‟ajouter des rlignes à une vue, b. La table sales n‟a pas de clé primaire - et une clé
c‟est la définition de la vue et la définition de la étrangère peut seulement renvoyer à une clé
table qui déterminent si ce sera possible ou non. primaire.
9. Une colonne d‟une table est définie NOT NULL à la 10. A propos des tables, indiquez les propositions qui
création de la table. Cette contrainte est de type : sont vraies. (3 réponses)
a. CHECK X a. Une table doit toujours contenir une clé primaire.
b. PRIMARY KEY b. Une clé primaire utilise un index unique. X
c. FOREIGN KEY c. La structure d'une table est définie une fois pour
d. UNIQUE toutes et ne peut plus être modifiée par la suite.
e. NOT NULL X d. Il est possible de définir plusieurs contraintes sur
une même colonne. X
e. Il est possible de désactiver une clé primaire
temporairement. X

Nom : …………………………………... Prénom : …………………………………… Page 3


Exercice 1 : Dictionnaire de données (4 pts)
1) Utiliser les vues du dictionnaire de données Oracle (ALL_TABLES, ALL_VIEWS,
ALL_SEQENCES, ALL_SYNONYMS) pour afficher :
a. Le nombre des tables de l‟utilisateur coursABD
b. Le nombre des vues de l‟utilisateur coursABD
c. Le nombre des séquences de l‟utilisateur coursABD
d. Le nombre des synonymes de l‟utilisateur coursABD
2) Le nombre des tables, vues, séquences et synonymes de l‟utilisateur coursABD groupés par
l‟attribut TABLE_TYPE de la vue ALL_CATALOG
3) Comment afficher les vues du dictionnaire de données Oracle accessible à l‟utilisateur ?
Remarque : Nous rappelons que toutes les vues ALL_TABLES, ALL_VIEWS, ALL_SEQENCES,
ALL_SYNONYMS et ALL_CATALOG contiennent la colonne OWNER.

Réponses :
R1.
a. (0.5pt) select count(*) from ALL_TABLES where OWNER=’coursABD’;
b. (0.5pt) select count(*) from ALL_VIEWS where OWNER=’coursABD’;
c. (0.5pt) select count(*) from ALL_SEQUENCES where OWNER=’coursABD’;
d. (0.5pt) select count(*) from ALL_SYNONYMS where OWNER=’coursABD’;
R2. (1 pt) select TABLE_TYPE, count(*) from ALL_CATALOG where OWNER=’coursABD’ group
by TABLE_TYPE;
R3. (1 pt) Select * from DICT; ou bien select * from DICTIONARY;

Nom : …………………………………... Prénom : …………………………………… Page 4

Vous aimerez peut-être aussi