SlideShare ist ein Scribd-Unternehmen logo
1 von 13
ACMA - Mairie de Paris. Cours Base de données Oracle. Année 2007/2008
Norme SPARC-ANSI, propriétés « acides », transactions, PL/SQL Objet, Paquetage, Architecture et administration. Jean-Pierre Perez 1/13
Nom :
Prénom :
Numéro de la carte d’accès :
Cours du Samedi matin) Jeudi soir)
Evaluation et observations :
Correction du QCM.
Introduction aux questions n°1.1 & 1.2
Afin d’effectuer une tâche de maintenance sur une base en production, vous émettez une
commande qui placera la base en mode OPEN dans le statut MOUNT. Mais un message
d’erreur apparaît!
SQL> ALTER DATABASE CLOSE;
alter database close
ORA-01093: ALTER DATABASE CLOSE only permitted with no sessions connected
Néanmoins, une note technique vous apprend qu’il peut exister des JOB qui établissent des
connections à neutraliser.
Question n°1.1 - Parmi les instructions suivantes, laquelle convient ici?
A) ALTER SYSTEM SET job_queue_processes=0 SCOPE=MEMORY;
B) ALTER SYSTEM SET job_queue_processes=0 SCOPE=SPFILE;.
C) ALTER SYSTEM SET job_queue_processes=0 SCOPE=BOTH;
Question n°1.2 - En quelques mots, justifiez le choix effectué à la question n°1.
Les réponses b) et c) ne conviennent pas car la base de
production utilise des JOBS. C’est en mémoire seulement qu’il
faut supprimer les sessions.
Question n°2. Le nombre entier associé à chaque transaction dans la base est :
A) Sequence number
B) Sequence number
C) System change number
D) Userid number
Question n°3. Lorsqu’un utilisateur démarre une instance, le serveur Oracle exécute
les tâches suivantes (il y a 3 bonnes réponses).
A) Il lit le fichier de paramètres d’initialisation de la base
ACMA - Mairie de Paris. Cours Base de données Oracle. Année 2007/2008
Norme SPARC-ANSI, propriétés « acides », transactions, PL/SQL Objet, Paquetage, Architecture et administration. Jean-Pierre Perez 2/13
B) Il lance les processus d’arrière-plan requis et alloue des zones mémoire
C) Il consigne des informations dans le journal d’alerte
D) Il accède au fichier de contrôle
Question n°4. Laquelle de ces affirmations à propos du Log Writer (LGWR) est fausse ?
A. Il y a un processus LGWR par instance.
B. Un COMMIT peut être émis avant qu’une transaction ne soit enregistrée dans les
fichiers de reprise REDO LOG.
C. Les fichiers de reprise REDO LOG fonctionnent de façon circulaire.
D. Une base de peut pas existée sans processus LGWR.
Question n°5. Quel composant d’une instance détient des variables de sessions et des
tableaux de donnée lorsqu’une requête est émise.
A) SGA (System Global Area).
B) SQL AREA.
C) Library Cache.
D) PGA (Program Global Area)
D) Shared Pool
Question n°6. A quoi sert le DATABASE BUFFER CACHE en SGA ?
A) Stocker le code SQL et PL/SQL partagé.
B) Stocker des informations provenant du dictionnaire de données.
C) Stocker des copies de blocs de données qui peuvent être partagées par tous les
utilisateurs.
D) Stocker des données issues de transactions avant qu’elles ne soient copiées dans
les fichiers de reprise REDO LOG.
Question n°7. Marinette a une connexion ouverte sur la base de données lorsqu’elle
part déjeuner.
Elle n’a pas validé ses transactions de sorte que la table EMPLOYEE a des verrous
table posés dessus. Que suggérez-vous pour libérer les verrous de façon à permettre
aux autres utilisateurs d’accéder à cette table?
A) « Tuer » la session de Marinette au moyen d’une commande SQL.
B) Attendre que Marinette revienne de déjeuner.
C) Arrêter puis redémarrer la base.
ACMA - Mairie de Paris. Cours Base de données Oracle. Année 2007/2008
Norme SPARC-ANSI, propriétés « acides », transactions, PL/SQL Objet, Paquetage, Architecture et administration. Jean-Pierre Perez 3/13
C) « Tuer » la session de Marinette au moyen d’une commande du système
d’exploitation.
D) Valider les transactions de Marinette en ouvrant une session SQLPLUS.
Question n°8. Quelle instruction du langage de manipulation de données (DML)
consignera le moins de volume de données dans les segments d’annulation
(TABLESPACE UNDO), ce dernier contenant les images avant (BEFORE IMAGE)?
A) DELETE
B) INSERT
C) UPDATE
Question n°9. A quel niveau Oracle résout-il les étreintes fatales (verrous mortels ou
DEAK LOCK) ?
A) Transaction.
B) Ordres PL/SQL.
C) Ligne.
C) Table.
Question n°10. La base de données nécessite une opération de maintenance (par
exemple, une opération de récupération), aussi avez-vous besoin de l’arrêter.
La commande SHUTDOWN ne fonctionne pas (n’aboutit pas) et vous ne pouvez pas
arrêter le serveur car d’autres services vitaux pour l’entreprise fonctionnent.
Quelle commande du DBA vous paraît la mieux appropriée?
A) SUTDOWN IMMEDIATE
B) SHUTDOWN NORMAL
C) SHUTDOWN ABORT
C) SUTDOWN TRANSACTIONAL
Question n°11. Lorsque vous effectuez une opération d’export de la base de données,
à quel type de sauvegarde avez-vous à faire?
A) Sauvegarde physique de la base.
B) Sauvegarde logique de la base.
C) Ce n’est pas une sauvegarde.
Question n°12- Justifiez votre choix à la réponse n°11 ?
ACMA - Mairie de Paris. Cours Base de données Oracle. Année 2007/2008
Norme SPARC-ANSI, propriétés « acides », transactions, PL/SQL Objet, Paquetage, Architecture et administration. Jean-Pierre Perez 4/13
Question n°13. Un verrou mortel est détecté par l’ordre B d’une grande transaction qui
contient les ordres A et B? Quel est l’état de la transaction ?
A) L’ordre A est défait et un message d’erreur est envoyé à l’ordre B.
B) Les ordres A et B sont défaits. Un message d’erreur est généré pour la transaction.
C) La transaction est défaite.
D) L’ordre B est défait et un message d’erreur est généré pour la transaction.
Question n°14. Quelle option de l’utilitaire EXPORT devriez-vous invoquer si des
utilisateurs accèdent en lecture et en écriture à la base durant l’opération d’export de
celle-ci?
A) DIRECT=Y
B) IGNORE=Y
C) CONSISTENTS=Y
D) CONSTRAINTS=Y
Question n°15. Pour effectuer un arrêt comptable de fin de mois, vous avez élaboré un
batch qui est lancé à 22H du soir, le dernier jour de chaque mois. Malheureusement, il
arrive quelque fois que le batch se termine à 2H du matin. Les transactions sur
Internet qui se sont alors déroulées après minuit sont prises en compte, faussant
l’arrêté comptable.
Vous décidez de lancer le batch à minuit mais en modifiant le niveau d’isolation.
Quelle devrait être la première et la dernière instruction de votre transaction au sein
du batch (deux réponses uniquement) ?
A) SET TRANSACTION READ ONLY;
B) ALTER SESSION SET ISOLATION_LEVEL=READ COMMITTED;
C) ALTER SESSION SET ISOLATION_LEVEL=SERIALIZABLE;
D) COMMIT;
Question n°16. Les utilisateurs se plaignent des temps de réponse lorsqu’ils élaborent
des requêtes « ad hoc » pour produire leurs éditions. En tant que DBA vous êtes
convié à une réunion pour parler de ce problème de performance. Quel est le point
vous allez aborder en tout premier?
A) PGA
B) SQL
C) I/O
D) SGA
ACMA - Mairie de Paris. Cours Base de données Oracle. Année 2007/2008
Norme SPARC-ANSI, propriétés « acides », transactions, PL/SQL Objet, Paquetage, Architecture et administration. Jean-Pierre Perez 5/13
Question n°17. Vous venez de recevoir de la part du service Clientèle un fichier Excel
avec de nouveaux clients à ajouter dans la table CLIENTS de la base. Cette table
possède 4 attributs respectivement (et dans l’ordre) du type NUMBER, VARCHAR2,
NUMBER et DATE. Voici quelques données.
Une note interne vous demande d’utiliser l’utilitaire SQL*Loader. La note contient
également un fichier de contrôle type pour effectuer ce genre de tâche.
Malheureusement, l’imprimante connectée au FAX ne fonctionnait pas bien ce jour là,
aussi vous faut-il compléter les portions manquantes de code. Il y en a 3 de
manquantes. Elles sont chacune placées dans un cadre vide ci-dessous.
Complétez les espaces vides.
APPEND CHR(10) et ‘YYYYMMDD’ comme masque de formatage
Question n°18. Quel est le meilleur moment pour « tuner » une application base de
données?
A) Lors de la conception?
B) Au moment du développement ?
C) Lors de la mise en production ?
D) Lorsqu’un problème survient ?
Question n°19 : Complétez l’espace vide de la procédure PL anonyme ci-dessous afin
de calculer la moyenne des salaires des employés avec une précision de deux
décimales. Conservez les noms des objets utilisés dans le code d’origine.
DECLARE
CURSOR c1 IS SELECT empno,sal FROM emp;
ACMA - Mairie de Paris. Cours Base de données Oracle. Année 2007/2008
Norme SPARC-ANSI, propriétés « acides », transactions, PL/SQL Objet, Paquetage, Architecture et administration. Jean-Pierre Perez 6/13
TYPE empArrayType IS TABLE OF c1%ROWTYPE
NOT NULL INDEX BY BINARY_INTEGER;
empArray empArrayType;
z NUMBER DEFAULT 0;
BEGIN
FOR v1 IN c1 LOOP
EXIT WHEN c1%NOTFOUND;
empArray(empArray.COUNT+1) := v1;
END LOOP;
FOR k IN empArray.FIRST..empArray.LAST LOOP
z := z + empArray(k).sal;
END LOOP;
DBMS_OUTPUT.PUT_LINE('Moyenne des 5 plus hauts salaires:' ||
TO_CHAR(z/empArray.COUNT,'999999.90'));
END;
/
Question n°20 – Vous exécutez une procédure PL qui malheureusement vous renvoie
le message d’erreur suivant :
ERROR at line 1:
ORA-01422: exact fetch returns more than requested number of rows
ORA-06512: at line 5
Selon vous, de quoi s’agit-il ?
A) Les variables déclarées ne correspondent pas aux types de données?
B) Le code tente d’extraire des données alors que le curseur n’est pas ouvert ?
C) La table contient trop d’enregistrements.
D) La requête devrait s’appuyer sur la déclaration d’un curseur.
Question n°21 – Il existe une dépendance fonctionnelle (X Y) pour la relation (table)
R(X, Y, Z) lorsque la proposition suivante est vérifiée :
Y est en dépendance fonctionnelle avec X si :
 n1,n2 deux tuples de R
n1[X] = n2[X]  n1[Y] = n2[Y]
Ici, n1[X] représente la valeur de l’attribut X pour le tuple n.
Bref ! Pouvez reformuler cela en quelques mots de français.
La connaissance d’un champ détermine celle d’un autre.
ACMA - Mairie de Paris. Cours Base de données Oracle. Année 2007/2008
Norme SPARC-ANSI, propriétés « acides », transactions, PL/SQL Objet, Paquetage, Architecture et administration. Jean-Pierre Perez 7/13
Question n°22. Dans une relation R, que représente l’attribut Y?
R = (W, X, {Y}, Z)
A. Clef primaire (PRIMARY KEY).
B. Clef étrangère (FOREIGN KEY)
Question n°23. Comment peut-on concevoir ce schéma entités relations (N x M) afin
d’éviter toute confusion entre vendeurs (SALES) et CLIENTS ?
SALES (sales_id, order, shipping)
TERRITORY (sales_id, client_id)
CLIENTS (client_id,name,phone)
Question n°24. En quelques mots, quelles différences y a t-il entre une vue
relationnelle et une vue matérialisée dont voici un exemple?
CREATE MATERIALIZED VIEW report1
REFRESH ON DEMAND
AS
SELECT a.deptno "Departement",
a.num_emp/b.total_count "%Employees",
a.sal_sum/b.total_sal "%Salary"
FROM
(SELECT deptno,
COUNT(*) num_emp,
SUM(sal) sal_sum
FROM scott.emp
GROUP BY deptno) a,
(SELECT COUNT(*) total_count,
SUM(sal) total_sal
FROM scott.emp) b;
Une vue conserve le principe de normalisation puisqu’elle évite la redondance des données.
Une vue matérialisée conduit à « dénormaliser » puisque la vue matérialisée possède des
segments de données comme une table. Ces données peuvent néanmoins être rafraîchies.
SALES
#* sales_id
* order
o shipping
CLIENTS
#*
clien
t_id
* name
o phone
Oops?
ACMA - Mairie de Paris. Cours Base de données Oracle. Année 2007/2008
Norme SPARC-ANSI, propriétés « acides », transactions, PL/SQL Objet, Paquetage, Architecture et administration. Jean-Pierre Perez 8/13
Dans ce cas l’utilisateur accèdent à des données apprêtées (agrégats) avec accélérateurs
dédiés. Les temps de réponses sont alors constants.
Question n°25. Votre client se plaint des performances des éditions. Quelle est la
fonctionnalité la plus appropriée pour collecter les statistiques nécessaires à
l’optimiseur de requête avec Oracle9i/10g?
A) Commande ANALYZE TABLE, INDEX (Car fausse les statistiques !!)
B) DBMS_STATS
Question n°26. Ecrire une requête qui permet d’afficher l’employé le plus
anciennement embauché de chaque département. Cette requête s’appuie sur les
relations EMP et DEPT utilisées en cours.
SELECT e.ename
FROM emp e
WHERE e.hiredate = (
SELECT MAX(a.hiredate)
FROM emp a --jointure synchronisée
WHERE a.deptno = e.deptno);
Question n°27. Les utilisateurs se plaignent des temps de réponse lorsqu’ils élaborent
des requêtes « ad hoc » pour produire leurs éditions. En tant que DBA vous êtes
convié à une réunion pour parler de ce problème de performance. Quel est le point
vous allez aborder en tout premier?
A) PGA
B) SQL
C) I/O
D) SGA
Question n°28. Lorsque l’on passe formellement un paramètre IN OUT dans le
paquetage suivant :
CREATE OR REPLACE PACKAGE math
IS
PROCEDURE add ( num IN NUMBER,
s IN OUT NOCOPY NUMBER) ;
END math;
/
Le paramètre s :
A) se comporte comme une constante PL/SQL. Elle est considérée comme en lecture
seule, et ne peut donc être modifiée.
ACMA - Mairie de Paris. Cours Base de données Oracle. Année 2007/2008
Norme SPARC-ANSI, propriétés « acides », transactions, PL/SQL Objet, Paquetage, Architecture et administration. Jean-Pierre Perez 9/13
B) dans ce mode le paramètre se comporte comme une variable PL non initialisée, et
possède donc une valeur NULL. Elle peut être lue et peut être modifiée.
C) La valeur effective du paramètre est passée à la procédure qui l’invoque. Au sein
de cette procédure, le paramètre agît comme une variable initialisée qui peut être
modifiée.
Question n°29.
SET SERVEROUTPUT ON
DECLARE
TYPE ConstantesTabTyp IS TABLE OF NUMBER(3)
NOT NULL INDEX BY BINARY_INTEGER;
arrayOfCst ConstantesTabTyp;
BEGIN
arrayOfCst(1) := 45;
arrayOfCst(2) := 12;
arrayOfCst(3) := 15;
arrayOfCst(4) := 20;
DBMS_OUTPUT.PUT_LINE( …… ); <-- code manquant ici
END;
/
Ecrire l’instruction incomplète ci-dessus qui renvoie la valeur du tableau qui précède
le troisième élément de la table PL.
DBMS_OUTPUT.PUT_LINE(arrayOfCst(arrayOfCst.PRIOR(3)));
Question n°30 : Complétez les lignes manquantes de façon à lever explicitement une
exception définie « applicative » de l’utilisateur. Cette exception ne laisse pas voir les
données du département n°40 car personne n’est affecté à celui-ci pour le moment.
SQL> DECLARE
2 v_deptno NUMBER(2,0);
3 INVALID_DEPT EXCEPTION1
;
4 CURSOR c1 IS SELECT deptno FROM dept WHERE ROWNUM = 1;
5 BEGIN
6 OPEN c1;
7 FETCH c1 INTO v_deptno;
8 CLOSE c1;
9 IF v_deptno = 40 THEN
10 RAISE_APPLICATION_ERROR(-20001,'NOT AUTHORIZED');
11 END IF;
12 DBMS_OUTPUT.PUT_LINE('EVERYTHING IS OK');
13 EXCEPTION
14 WHEN INVALID_DEPT THEN
15 DBMS_OUTPUT.PUT_LINE('NOT AUTHORIZED');
16 END;
17 /
1
PRAGMA EXCEPTION_INIT(INVALID_DEPT,-20001) serait mieux. Non demandé.
ACMA - Mairie de Paris. Cours Base de données Oracle. Année 2007/2008
Norme SPARC-ANSI, propriétés « acides », transactions, PL/SQL Objet, Paquetage, Architecture et administration. Jean-Pierre Perez10/13
Question n°31 – Le résultat d’une la sauvegarde d’une base de données ouverte,
également appelée sauvegarde à chaud, est :
A) Cohérent
B) Incohérent
Question n°32 – Pourquoi devra t-on procéder à une phase de récupération à l’issue
d’une sauvegarde effectuée à chaud ?
Justement parce que la base est incohérente sans l’application des derniers journaux.
Question n°33. Complétez la procédure suivante qui permet générer le code qui
convient pour effectuer une sauvegarde à froid. Cette procédure devra trouver les
informations nécessaires en consultant les vues dynamiques de performances
V$DATAFILE. Par ailleurs, elle fait appel à la commande HOST (Windows) ou ! (Unix).
CONNECT / AS SYSDBA
SHUTDOWN IMMEDIATE
STARTUP %MOUNT
SET ECHO OFF
SET PAGESIZE 0
SET FEEDBACK OFF HEADING OFF VERIFY OFF TAB OFF TRIMSPOOL ON TERMOUT
OFF
SET LINESIZE 250
SPOOL c:backupbackup.ksh
SELECT 'HOST COPY ' || d.name || ' ' || ' c:backup'
FROM V$DATAFILE d
SPOOL OFF
Question n°34. Complétez les trois lignes en pointillées de la procédure p1 paramétrée.
Celle-ci prend comme n° de département (DEPTNO) par défaut la valeur 10 :
SET SERVEROUTPUT ON
CREATE OR REPLACE PROCEDURE p1(p_deptno NUMBER DEFAULT 10) IS
CURSOR c1 (in_deptno NUMBER) IS
SELECT ename, job, sal
FROM emp WHERE deptno = in_deptno;
BEGIN
FOR i IN c1 (p_deptno) LOOP
DBMS_OUTPUT.PUT_LINE(i.ename);
END LOOP;
END;
/
Question n°35. Quelle est la principale différence entre le Web Toolkit d’Oracle et la
fonctionnalité PSP. Connaissez-vous des procédés non-Oracle similaires à PSP ?
ACMA - Mairie de Paris. Cours Base de données Oracle. Année 2007/2008
Norme SPARC-ANSI, propriétés « acides », transactions, PL/SQL Objet, Paquetage, Architecture et administration. Jean-Pierre Perez11/13
Web toolkit : PL génère un fichier HTML
PSP : On écrit du PL au sein d’une feuille HTML.
Oui : ASP (M$), JSP (Java), BSP (SAP)
Question 2
n°36. Soit le type abstrait options_obj. Une option possède un nom (name)
et un prix (price). Par ailleurs, cette option possède une méthode « encapsulée »
getVAT qui retourne la T.V.A. Complétez les parties manquantes sachant que la
méthode MEMBER ne possède pas d’argument :
CREATE OR REPLACE TYPE options_obj AS OBJECT (
name VARCHAR2(32),
price NUMBER(7,2),
MEMBER FUNCTION getTVA RETURN VARCHAR2
);
/
CREATE TYPE options_typ AS TABLE OF options_obj;
/
CREATE OR REPLACE TYPE BODY options_obj AS
MEMBER FUNCTION getTVA RETURN VARCHAR2
IS
rate NUMBER DEFAULT 19.6;
BEGIN
RETURN SELF.price*rate;
END getTVA;
END;
/
Question n°37. Le code ci-dessous utilise une collection de type TABLEAU
ASSOCIATIF. Complétez les parties manquantes sachant que la note de
mathématiques et de littérature de l’élève Jean y seront consignées. Le total des
points devra également être affiché.
DECLARE
Fhandle UTL_FILE.FILE_TYPE;
math note_type;
litterature note_type;
howmany NUMBER;
BEGIN
math('Jean') := 12;
litterature('Jean') := 14;
2
SCOTT@prmy> declare
2 x options_obj := options_obj('banane',100);
3 begin
4 dbms_output.put_line(x.gettva);
5 end;
6 /
1960
ACMA - Mairie de Paris. Cours Base de données Oracle. Année 2007/2008
Norme SPARC-ANSI, propriétés « acides », transactions, PL/SQL Objet, Paquetage, Architecture et administration. Jean-Pierre Perez12/13
howmany := math('Jean')+litterature('Jean');
DBMS_OUTPUT.PUT_LINE(howmany);
END;
/
Question n°38. Il vous est demandé de compléter le code PL/SQL ci-dessous (lignes
12, 17 et 19). La procédure décharge des données de la base dans le système de
fichier. Le fichier généré doit être suffixé par .csv tandis que les enregistrements sont
séparés par un point-virgule « ; » afin de pouvoir éditer le fichier depuis un tableur. Le
code utilise des répertoires virtuels.
CONNECT / AS SYSDBA
CREATE OR REPLACE DIRECTORY spool AS 'c:temp';
GRANT READ ON DIRECTORY spool TO scott;
GRANT WRITE ON DIRECTORY spool TO scott;
CONNECT scott/tiger
SET SERVEROUTPUT ON
SQL> DECLARE
2 Fhandle UTL_FILE.FILE_TYPE;
3 CURSOR c1 IS
4 SELECT e.ename,d.loc,d.dname,e.job
5 FROM emp e NATURAL JOIN dept d;
6
7 FUNCTION getSemiColon (str IN VARCHAR2) RETURN CHAR IS
8 BEGIN
9 RETURN str || ';' ;
10 END getSemiColon;
11 BEGIN
12 Fhandle := UTL_FILE.FOPEN('SPOOL','employee.csv','w');
13 FOR i IN c1 LOOP
14 UTL_FILE.PUT(Fhandle,getSemiColon(i.ename));
15 UTL_FILE.PUT(Fhandle,getSemiColon(i.loc));
16 UTL_FILE.PUT(Fhandle,getSemiColon(i.dname));
17 UTL_FILE.PUT_LINE(Fhandle,i.job);
18 END LOOP;
19 UTL_FILE.FCLOSE(Fhandle);
20 EXCEPTION
21 WHEN OTHERS THEN
22 DBMS_OUTPUT.PUT_LINE(SQLERRM);
23 END;
24 /
Annexe 1: Architecture du serveur de données Oracle10g
ACMA - Mairie de Paris. Cours Base de données Oracle. Année 2007/2008
Norme SPARC-ANSI, propriétés « acides », transactions, PL/SQL Objet, Paquetage, Architecture et administration. Jean-Pierre Perez13/13
Annexe 2 : Mécanisme d’une transaction
1. Oracle examine le cache de tampons pour déterminer si le bloc de données cible se trouve en mémoire.
2. Si le bloc de données cible ne se trouve pas en mémoire, Oracle le récupère à partir du disque.
3. Il enregistre une entrée de reprise dans le tampon REDO.
4. Il consigne dans un segment d’annulation, le code et les données requises pour défaire la modification
apportée au bloc (BEFORE IMAGE). Auparavant, des vecteurs de changement sont générés pour cette
action.
5. Oracle met à jour le bloc de données en mémoire avec la nouvelle valeur
6. Oracle génère une entrée de validation dans le tampon REDO et associe à la transaction un SCN de
validation.
7. Il écrit dans le journal de reprise sur disque le contenu du tampon REDO.
8. Il libère les blocs du segment d’annulation (BEFORE IMAGE) qui contenaient les informations
d’annulation de la transaction.
9. Il enregistre le bloc modifié dans un fichier de données.
Instance Oracle
Shared Pool SGA
Library
Cache
Data
Dictionary
cache
Database
buffer
Cache
Redo Log
buffer
Java Pool
Large Pool
PMON SMON DBW0 LGWR CKPT ARCH
Parameter
SPFILE
Passord
File
Control file
TEMP UNDO
DATAFILE
REDO
Multiplexés LOG
SID
Database
Archive
Mode
SYSTEM
SYSAUX
Streams
Optionnels

Weitere ähnliche Inhalte

Was ist angesagt?

UML Part 4- diagrammres de classes et d'objets mansouri
UML Part 4- diagrammres de classes et d'objets mansouriUML Part 4- diagrammres de classes et d'objets mansouri
UML Part 4- diagrammres de classes et d'objets mansouriMansouri Khalifa
 
Chapitre6: Surcharge des opérateurs
Chapitre6:  Surcharge des opérateursChapitre6:  Surcharge des opérateurs
Chapitre6: Surcharge des opérateursAziz Darouichi
 
Examen sybase - Administration base de donnees
Examen sybase - Administration base de donneesExamen sybase - Administration base de donnees
Examen sybase - Administration base de donneeswebreaker
 
Chp5 - Diagramme d'Etat Transition
Chp5 - Diagramme d'Etat TransitionChp5 - Diagramme d'Etat Transition
Chp5 - Diagramme d'Etat TransitionLilia Sfaxi
 
T2 corrections-qc md
T2 corrections-qc mdT2 corrections-qc md
T2 corrections-qc mdinfcom
 
UML Part2- diagramme des uses cases_mansouri
UML Part2- diagramme des uses cases_mansouriUML Part2- diagramme des uses cases_mansouri
UML Part2- diagramme des uses cases_mansouriMansouri Khalifa
 
Analyse merise Prof. Khalifa MANSOURI
Analyse merise Prof. Khalifa MANSOURIAnalyse merise Prof. Khalifa MANSOURI
Analyse merise Prof. Khalifa MANSOURIMansouri Khalifa
 
Architecture réparties et les services web
Architecture réparties et les services webArchitecture réparties et les services web
Architecture réparties et les services webCHOUAIB EL HACHIMI
 
Reporting avec JasperServer & iReport
Reporting avec JasperServer & iReportReporting avec JasperServer & iReport
Reporting avec JasperServer & iReportLilia Sfaxi
 
DataWarehouse
DataWarehouseDataWarehouse
DataWarehousenzuguem
 
Ecole ESMA : Projet Fin de semestre - Application de gestion d'une école - Di...
Ecole ESMA : Projet Fin de semestre - Application de gestion d'une école - Di...Ecole ESMA : Projet Fin de semestre - Application de gestion d'une école - Di...
Ecole ESMA : Projet Fin de semestre - Application de gestion d'une école - Di...Mehdi Hamime
 
Concepts de sauvegarde et de récupération
Concepts de sauvegarde et de récupérationConcepts de sauvegarde et de récupération
Concepts de sauvegarde et de récupérationSoukaina Boujadi
 
Appalications JEE avec Servlet/JSP
Appalications JEE avec Servlet/JSPAppalications JEE avec Servlet/JSP
Appalications JEE avec Servlet/JSPYouness Boukouchi
 
Intégration des données avec Talend ETL
Intégration des données avec Talend ETLIntégration des données avec Talend ETL
Intégration des données avec Talend ETLLilia Sfaxi
 
Chp3 - Les Services Web
Chp3 - Les Services WebChp3 - Les Services Web
Chp3 - Les Services WebLilia Sfaxi
 

Was ist angesagt? (20)

UML Part 4- diagrammres de classes et d'objets mansouri
UML Part 4- diagrammres de classes et d'objets mansouriUML Part 4- diagrammres de classes et d'objets mansouri
UML Part 4- diagrammres de classes et d'objets mansouri
 
Chapitre6: Surcharge des opérateurs
Chapitre6:  Surcharge des opérateursChapitre6:  Surcharge des opérateurs
Chapitre6: Surcharge des opérateurs
 
Plsql
PlsqlPlsql
Plsql
 
Examen sybase - Administration base de donnees
Examen sybase - Administration base de donneesExamen sybase - Administration base de donnees
Examen sybase - Administration base de donnees
 
Chp5 - Diagramme d'Etat Transition
Chp5 - Diagramme d'Etat TransitionChp5 - Diagramme d'Etat Transition
Chp5 - Diagramme d'Etat Transition
 
T2 corrections-qc md
T2 corrections-qc mdT2 corrections-qc md
T2 corrections-qc md
 
Middleware
MiddlewareMiddleware
Middleware
 
La méthode z
La méthode zLa méthode z
La méthode z
 
Introduction à pl/sql
Introduction à pl/sqlIntroduction à pl/sql
Introduction à pl/sql
 
UML Part2- diagramme des uses cases_mansouri
UML Part2- diagramme des uses cases_mansouriUML Part2- diagramme des uses cases_mansouri
UML Part2- diagramme des uses cases_mansouri
 
Support Web Services SOAP et RESTful Mr YOUSSFI
Support Web Services SOAP et RESTful Mr YOUSSFISupport Web Services SOAP et RESTful Mr YOUSSFI
Support Web Services SOAP et RESTful Mr YOUSSFI
 
Analyse merise Prof. Khalifa MANSOURI
Analyse merise Prof. Khalifa MANSOURIAnalyse merise Prof. Khalifa MANSOURI
Analyse merise Prof. Khalifa MANSOURI
 
Architecture réparties et les services web
Architecture réparties et les services webArchitecture réparties et les services web
Architecture réparties et les services web
 
Reporting avec JasperServer & iReport
Reporting avec JasperServer & iReportReporting avec JasperServer & iReport
Reporting avec JasperServer & iReport
 
DataWarehouse
DataWarehouseDataWarehouse
DataWarehouse
 
Ecole ESMA : Projet Fin de semestre - Application de gestion d'une école - Di...
Ecole ESMA : Projet Fin de semestre - Application de gestion d'une école - Di...Ecole ESMA : Projet Fin de semestre - Application de gestion d'une école - Di...
Ecole ESMA : Projet Fin de semestre - Application de gestion d'une école - Di...
 
Concepts de sauvegarde et de récupération
Concepts de sauvegarde et de récupérationConcepts de sauvegarde et de récupération
Concepts de sauvegarde et de récupération
 
Appalications JEE avec Servlet/JSP
Appalications JEE avec Servlet/JSPAppalications JEE avec Servlet/JSP
Appalications JEE avec Servlet/JSP
 
Intégration des données avec Talend ETL
Intégration des données avec Talend ETLIntégration des données avec Talend ETL
Intégration des données avec Talend ETL
 
Chp3 - Les Services Web
Chp3 - Les Services WebChp3 - Les Services Web
Chp3 - Les Services Web
 

Ähnlich wie Jp perez correction quizz oracle mairie de paris acma 2007 2008

Es20 g formation-z-os-system-services-structure
Es20 g formation-z-os-system-services-structureEs20 g formation-z-os-system-services-structure
Es20 g formation-z-os-system-services-structureCERTyou Formation
 
Chapitre-3-Architectures-Haute-Performance-et-embarquées.pdf
Chapitre-3-Architectures-Haute-Performance-et-embarquées.pdfChapitre-3-Architectures-Haute-Performance-et-embarquées.pdf
Chapitre-3-Architectures-Haute-Performance-et-embarquées.pdfSoumayaMabrouk2
 
Es15 g formation-ibm-z-os-facilities
Es15 g formation-ibm-z-os-facilitiesEs15 g formation-ibm-z-os-facilities
Es15 g formation-ibm-z-os-facilitiesCERTyou Formation
 
Decouvrir CQRS (sans Event sourcing) par la pratique
Decouvrir CQRS (sans Event sourcing) par la pratiqueDecouvrir CQRS (sans Event sourcing) par la pratique
Decouvrir CQRS (sans Event sourcing) par la pratiqueThomas Pierrain
 
Retour expérience détection fraude temps réel
Retour expérience détection fraude temps réelRetour expérience détection fraude temps réel
Retour expérience détection fraude temps réelMartin Menestret
 
Deep Dive Performance , le In-Memory dans SQL Server
Deep Dive Performance , le In-Memory dans SQL ServerDeep Dive Performance , le In-Memory dans SQL Server
Deep Dive Performance , le In-Memory dans SQL ServerMicrosoft
 
Sql azure performance et montee en charge (1)
Sql azure   performance et montee en charge (1)Sql azure   performance et montee en charge (1)
Sql azure performance et montee en charge (1)Aymeric Weinbach
 
Stream processing et SQL
Stream processing et SQLStream processing et SQL
Stream processing et SQLBruno Bonnin
 
20160216 - From BigData to BigProcessing
20160216 - From BigData to BigProcessing20160216 - From BigData to BigProcessing
20160216 - From BigData to BigProcessingPierre-Marie Brunet
 
Cv871 g formation-utilitaires-pour-les-administrateurs-de-base-de-donnees-ibm...
Cv871 g formation-utilitaires-pour-les-administrateurs-de-base-de-donnees-ibm...Cv871 g formation-utilitaires-pour-les-administrateurs-de-base-de-donnees-ibm...
Cv871 g formation-utilitaires-pour-les-administrateurs-de-base-de-donnees-ibm...CERTyou Formation
 
Oracle 12c in memory en action
Oracle 12c in memory en actionOracle 12c in memory en action
Oracle 12c in memory en actionLaurent Leturgez
 
Examne sybase corrige
Examne sybase corrigeExamne sybase corrige
Examne sybase corrigewebreaker
 
2008-10-02 Paris - Administration des applications critiques avec SQL Server ...
2008-10-02 Paris - Administration des applications critiques avec SQL Server ...2008-10-02 Paris - Administration des applications critiques avec SQL Server ...
2008-10-02 Paris - Administration des applications critiques avec SQL Server ...Patrick Guimonet
 
SQL Server et les développeurs
SQL Server et les développeurs SQL Server et les développeurs
SQL Server et les développeurs Microsoft
 
Pourquoi & est-ce vrai que Magento 1.x est considéré comme une plateforme lou...
Pourquoi & est-ce vrai que Magento 1.x est considéré comme une plateforme lou...Pourquoi & est-ce vrai que Magento 1.x est considéré comme une plateforme lou...
Pourquoi & est-ce vrai que Magento 1.x est considéré comme une plateforme lou...The e-Commerce Academy
 
Presentation du SGBD Oracle DATABASE.pptx
Presentation du SGBD Oracle DATABASE.pptxPresentation du SGBD Oracle DATABASE.pptx
Presentation du SGBD Oracle DATABASE.pptxPriscilleGANKIA
 

Ähnlich wie Jp perez correction quizz oracle mairie de paris acma 2007 2008 (20)

Es20 g formation-z-os-system-services-structure
Es20 g formation-z-os-system-services-structureEs20 g formation-z-os-system-services-structure
Es20 g formation-z-os-system-services-structure
 
Chapitre-3-Architectures-Haute-Performance-et-embarquées.pdf
Chapitre-3-Architectures-Haute-Performance-et-embarquées.pdfChapitre-3-Architectures-Haute-Performance-et-embarquées.pdf
Chapitre-3-Architectures-Haute-Performance-et-embarquées.pdf
 
Es15 g formation-ibm-z-os-facilities
Es15 g formation-ibm-z-os-facilitiesEs15 g formation-ibm-z-os-facilities
Es15 g formation-ibm-z-os-facilities
 
Decouvrir CQRS (sans Event sourcing) par la pratique
Decouvrir CQRS (sans Event sourcing) par la pratiqueDecouvrir CQRS (sans Event sourcing) par la pratique
Decouvrir CQRS (sans Event sourcing) par la pratique
 
Retour expérience détection fraude temps réel
Retour expérience détection fraude temps réelRetour expérience détection fraude temps réel
Retour expérience détection fraude temps réel
 
Fusion io
Fusion ioFusion io
Fusion io
 
Deep Dive Performance , le In-Memory dans SQL Server
Deep Dive Performance , le In-Memory dans SQL ServerDeep Dive Performance , le In-Memory dans SQL Server
Deep Dive Performance , le In-Memory dans SQL Server
 
Sql azure performance et montee en charge (1)
Sql azure   performance et montee en charge (1)Sql azure   performance et montee en charge (1)
Sql azure performance et montee en charge (1)
 
Stream processing et SQL
Stream processing et SQLStream processing et SQL
Stream processing et SQL
 
20070125wlmdb22
20070125wlmdb2220070125wlmdb22
20070125wlmdb22
 
20160216 - From BigData to BigProcessing
20160216 - From BigData to BigProcessing20160216 - From BigData to BigProcessing
20160216 - From BigData to BigProcessing
 
Cv871 g formation-utilitaires-pour-les-administrateurs-de-base-de-donnees-ibm...
Cv871 g formation-utilitaires-pour-les-administrateurs-de-base-de-donnees-ibm...Cv871 g formation-utilitaires-pour-les-administrateurs-de-base-de-donnees-ibm...
Cv871 g formation-utilitaires-pour-les-administrateurs-de-base-de-donnees-ibm...
 
Atelier2
Atelier2Atelier2
Atelier2
 
Oracle 12c in memory en action
Oracle 12c in memory en actionOracle 12c in memory en action
Oracle 12c in memory en action
 
Examne sybase corrige
Examne sybase corrigeExamne sybase corrige
Examne sybase corrige
 
2008-10-02 Paris - Administration des applications critiques avec SQL Server ...
2008-10-02 Paris - Administration des applications critiques avec SQL Server ...2008-10-02 Paris - Administration des applications critiques avec SQL Server ...
2008-10-02 Paris - Administration des applications critiques avec SQL Server ...
 
SQL Server et les développeurs
SQL Server et les développeurs SQL Server et les développeurs
SQL Server et les développeurs
 
Pourquoi & est-ce vrai que Magento 1.x est considéré comme une plateforme lou...
Pourquoi & est-ce vrai que Magento 1.x est considéré comme une plateforme lou...Pourquoi & est-ce vrai que Magento 1.x est considéré comme une plateforme lou...
Pourquoi & est-ce vrai que Magento 1.x est considéré comme une plateforme lou...
 
Presentation du SGBD Oracle DATABASE.pptx
Presentation du SGBD Oracle DATABASE.pptxPresentation du SGBD Oracle DATABASE.pptx
Presentation du SGBD Oracle DATABASE.pptx
 
Drools et les moteurs de règles
Drools et les moteurs de règlesDrools et les moteurs de règles
Drools et les moteurs de règles
 

Mehr von MRamo2s

Competitivite parqualite_emmanuelcombe
 Competitivite parqualite_emmanuelcombe Competitivite parqualite_emmanuelcombe
Competitivite parqualite_emmanuelcombeMRamo2s
 
Les nouveaux usages de la télévision connectée
Les nouveaux usages de la télévision connectéeLes nouveaux usages de la télévision connectée
Les nouveaux usages de la télévision connectéeMRamo2s
 
Tableau de-bord avec excel
Tableau de-bord avec excelTableau de-bord avec excel
Tableau de-bord avec excelMRamo2s
 
AECEM Whitepaper about E-Commerce.
AECEM Whitepaper about E-Commerce.AECEM Whitepaper about E-Commerce.
AECEM Whitepaper about E-Commerce.MRamo2s
 
Rapport de veille final groupe3 (26 01-14h37)
Rapport de veille final groupe3 (26 01-14h37)Rapport de veille final groupe3 (26 01-14h37)
Rapport de veille final groupe3 (26 01-14h37)MRamo2s
 
Super kebab nfe103
Super kebab nfe103Super kebab nfe103
Super kebab nfe103MRamo2s
 
Presentation hibernate nfe103
Presentation hibernate nfe103Presentation hibernate nfe103
Presentation hibernate nfe103MRamo2s
 
Tennis Evolution cce105_communication_2008
Tennis Evolution cce105_communication_2008Tennis Evolution cce105_communication_2008
Tennis Evolution cce105_communication_2008MRamo2s
 
Centres sportifs nfe103
Centres sportifs nfe103Centres sportifs nfe103
Centres sportifs nfe103MRamo2s
 
E-commerce Use case NFE102
E-commerce Use case NFE102E-commerce Use case NFE102
E-commerce Use case NFE102MRamo2s
 
Work placement bachelor's degree computer science_2009
Work placement bachelor's degree computer science_2009Work placement bachelor's degree computer science_2009
Work placement bachelor's degree computer science_2009MRamo2s
 

Mehr von MRamo2s (11)

Competitivite parqualite_emmanuelcombe
 Competitivite parqualite_emmanuelcombe Competitivite parqualite_emmanuelcombe
Competitivite parqualite_emmanuelcombe
 
Les nouveaux usages de la télévision connectée
Les nouveaux usages de la télévision connectéeLes nouveaux usages de la télévision connectée
Les nouveaux usages de la télévision connectée
 
Tableau de-bord avec excel
Tableau de-bord avec excelTableau de-bord avec excel
Tableau de-bord avec excel
 
AECEM Whitepaper about E-Commerce.
AECEM Whitepaper about E-Commerce.AECEM Whitepaper about E-Commerce.
AECEM Whitepaper about E-Commerce.
 
Rapport de veille final groupe3 (26 01-14h37)
Rapport de veille final groupe3 (26 01-14h37)Rapport de veille final groupe3 (26 01-14h37)
Rapport de veille final groupe3 (26 01-14h37)
 
Super kebab nfe103
Super kebab nfe103Super kebab nfe103
Super kebab nfe103
 
Presentation hibernate nfe103
Presentation hibernate nfe103Presentation hibernate nfe103
Presentation hibernate nfe103
 
Tennis Evolution cce105_communication_2008
Tennis Evolution cce105_communication_2008Tennis Evolution cce105_communication_2008
Tennis Evolution cce105_communication_2008
 
Centres sportifs nfe103
Centres sportifs nfe103Centres sportifs nfe103
Centres sportifs nfe103
 
E-commerce Use case NFE102
E-commerce Use case NFE102E-commerce Use case NFE102
E-commerce Use case NFE102
 
Work placement bachelor's degree computer science_2009
Work placement bachelor's degree computer science_2009Work placement bachelor's degree computer science_2009
Work placement bachelor's degree computer science_2009
 

Jp perez correction quizz oracle mairie de paris acma 2007 2008

  • 1. ACMA - Mairie de Paris. Cours Base de données Oracle. Année 2007/2008 Norme SPARC-ANSI, propriétés « acides », transactions, PL/SQL Objet, Paquetage, Architecture et administration. Jean-Pierre Perez 1/13 Nom : Prénom : Numéro de la carte d’accès : Cours du Samedi matin) Jeudi soir) Evaluation et observations : Correction du QCM. Introduction aux questions n°1.1 & 1.2 Afin d’effectuer une tâche de maintenance sur une base en production, vous émettez une commande qui placera la base en mode OPEN dans le statut MOUNT. Mais un message d’erreur apparaît! SQL> ALTER DATABASE CLOSE; alter database close ORA-01093: ALTER DATABASE CLOSE only permitted with no sessions connected Néanmoins, une note technique vous apprend qu’il peut exister des JOB qui établissent des connections à neutraliser. Question n°1.1 - Parmi les instructions suivantes, laquelle convient ici? A) ALTER SYSTEM SET job_queue_processes=0 SCOPE=MEMORY; B) ALTER SYSTEM SET job_queue_processes=0 SCOPE=SPFILE;. C) ALTER SYSTEM SET job_queue_processes=0 SCOPE=BOTH; Question n°1.2 - En quelques mots, justifiez le choix effectué à la question n°1. Les réponses b) et c) ne conviennent pas car la base de production utilise des JOBS. C’est en mémoire seulement qu’il faut supprimer les sessions. Question n°2. Le nombre entier associé à chaque transaction dans la base est : A) Sequence number B) Sequence number C) System change number D) Userid number Question n°3. Lorsqu’un utilisateur démarre une instance, le serveur Oracle exécute les tâches suivantes (il y a 3 bonnes réponses). A) Il lit le fichier de paramètres d’initialisation de la base
  • 2. ACMA - Mairie de Paris. Cours Base de données Oracle. Année 2007/2008 Norme SPARC-ANSI, propriétés « acides », transactions, PL/SQL Objet, Paquetage, Architecture et administration. Jean-Pierre Perez 2/13 B) Il lance les processus d’arrière-plan requis et alloue des zones mémoire C) Il consigne des informations dans le journal d’alerte D) Il accède au fichier de contrôle Question n°4. Laquelle de ces affirmations à propos du Log Writer (LGWR) est fausse ? A. Il y a un processus LGWR par instance. B. Un COMMIT peut être émis avant qu’une transaction ne soit enregistrée dans les fichiers de reprise REDO LOG. C. Les fichiers de reprise REDO LOG fonctionnent de façon circulaire. D. Une base de peut pas existée sans processus LGWR. Question n°5. Quel composant d’une instance détient des variables de sessions et des tableaux de donnée lorsqu’une requête est émise. A) SGA (System Global Area). B) SQL AREA. C) Library Cache. D) PGA (Program Global Area) D) Shared Pool Question n°6. A quoi sert le DATABASE BUFFER CACHE en SGA ? A) Stocker le code SQL et PL/SQL partagé. B) Stocker des informations provenant du dictionnaire de données. C) Stocker des copies de blocs de données qui peuvent être partagées par tous les utilisateurs. D) Stocker des données issues de transactions avant qu’elles ne soient copiées dans les fichiers de reprise REDO LOG. Question n°7. Marinette a une connexion ouverte sur la base de données lorsqu’elle part déjeuner. Elle n’a pas validé ses transactions de sorte que la table EMPLOYEE a des verrous table posés dessus. Que suggérez-vous pour libérer les verrous de façon à permettre aux autres utilisateurs d’accéder à cette table? A) « Tuer » la session de Marinette au moyen d’une commande SQL. B) Attendre que Marinette revienne de déjeuner. C) Arrêter puis redémarrer la base.
  • 3. ACMA - Mairie de Paris. Cours Base de données Oracle. Année 2007/2008 Norme SPARC-ANSI, propriétés « acides », transactions, PL/SQL Objet, Paquetage, Architecture et administration. Jean-Pierre Perez 3/13 C) « Tuer » la session de Marinette au moyen d’une commande du système d’exploitation. D) Valider les transactions de Marinette en ouvrant une session SQLPLUS. Question n°8. Quelle instruction du langage de manipulation de données (DML) consignera le moins de volume de données dans les segments d’annulation (TABLESPACE UNDO), ce dernier contenant les images avant (BEFORE IMAGE)? A) DELETE B) INSERT C) UPDATE Question n°9. A quel niveau Oracle résout-il les étreintes fatales (verrous mortels ou DEAK LOCK) ? A) Transaction. B) Ordres PL/SQL. C) Ligne. C) Table. Question n°10. La base de données nécessite une opération de maintenance (par exemple, une opération de récupération), aussi avez-vous besoin de l’arrêter. La commande SHUTDOWN ne fonctionne pas (n’aboutit pas) et vous ne pouvez pas arrêter le serveur car d’autres services vitaux pour l’entreprise fonctionnent. Quelle commande du DBA vous paraît la mieux appropriée? A) SUTDOWN IMMEDIATE B) SHUTDOWN NORMAL C) SHUTDOWN ABORT C) SUTDOWN TRANSACTIONAL Question n°11. Lorsque vous effectuez une opération d’export de la base de données, à quel type de sauvegarde avez-vous à faire? A) Sauvegarde physique de la base. B) Sauvegarde logique de la base. C) Ce n’est pas une sauvegarde. Question n°12- Justifiez votre choix à la réponse n°11 ?
  • 4. ACMA - Mairie de Paris. Cours Base de données Oracle. Année 2007/2008 Norme SPARC-ANSI, propriétés « acides », transactions, PL/SQL Objet, Paquetage, Architecture et administration. Jean-Pierre Perez 4/13 Question n°13. Un verrou mortel est détecté par l’ordre B d’une grande transaction qui contient les ordres A et B? Quel est l’état de la transaction ? A) L’ordre A est défait et un message d’erreur est envoyé à l’ordre B. B) Les ordres A et B sont défaits. Un message d’erreur est généré pour la transaction. C) La transaction est défaite. D) L’ordre B est défait et un message d’erreur est généré pour la transaction. Question n°14. Quelle option de l’utilitaire EXPORT devriez-vous invoquer si des utilisateurs accèdent en lecture et en écriture à la base durant l’opération d’export de celle-ci? A) DIRECT=Y B) IGNORE=Y C) CONSISTENTS=Y D) CONSTRAINTS=Y Question n°15. Pour effectuer un arrêt comptable de fin de mois, vous avez élaboré un batch qui est lancé à 22H du soir, le dernier jour de chaque mois. Malheureusement, il arrive quelque fois que le batch se termine à 2H du matin. Les transactions sur Internet qui se sont alors déroulées après minuit sont prises en compte, faussant l’arrêté comptable. Vous décidez de lancer le batch à minuit mais en modifiant le niveau d’isolation. Quelle devrait être la première et la dernière instruction de votre transaction au sein du batch (deux réponses uniquement) ? A) SET TRANSACTION READ ONLY; B) ALTER SESSION SET ISOLATION_LEVEL=READ COMMITTED; C) ALTER SESSION SET ISOLATION_LEVEL=SERIALIZABLE; D) COMMIT; Question n°16. Les utilisateurs se plaignent des temps de réponse lorsqu’ils élaborent des requêtes « ad hoc » pour produire leurs éditions. En tant que DBA vous êtes convié à une réunion pour parler de ce problème de performance. Quel est le point vous allez aborder en tout premier? A) PGA B) SQL C) I/O D) SGA
  • 5. ACMA - Mairie de Paris. Cours Base de données Oracle. Année 2007/2008 Norme SPARC-ANSI, propriétés « acides », transactions, PL/SQL Objet, Paquetage, Architecture et administration. Jean-Pierre Perez 5/13 Question n°17. Vous venez de recevoir de la part du service Clientèle un fichier Excel avec de nouveaux clients à ajouter dans la table CLIENTS de la base. Cette table possède 4 attributs respectivement (et dans l’ordre) du type NUMBER, VARCHAR2, NUMBER et DATE. Voici quelques données. Une note interne vous demande d’utiliser l’utilitaire SQL*Loader. La note contient également un fichier de contrôle type pour effectuer ce genre de tâche. Malheureusement, l’imprimante connectée au FAX ne fonctionnait pas bien ce jour là, aussi vous faut-il compléter les portions manquantes de code. Il y en a 3 de manquantes. Elles sont chacune placées dans un cadre vide ci-dessous. Complétez les espaces vides. APPEND CHR(10) et ‘YYYYMMDD’ comme masque de formatage Question n°18. Quel est le meilleur moment pour « tuner » une application base de données? A) Lors de la conception? B) Au moment du développement ? C) Lors de la mise en production ? D) Lorsqu’un problème survient ? Question n°19 : Complétez l’espace vide de la procédure PL anonyme ci-dessous afin de calculer la moyenne des salaires des employés avec une précision de deux décimales. Conservez les noms des objets utilisés dans le code d’origine. DECLARE CURSOR c1 IS SELECT empno,sal FROM emp;
  • 6. ACMA - Mairie de Paris. Cours Base de données Oracle. Année 2007/2008 Norme SPARC-ANSI, propriétés « acides », transactions, PL/SQL Objet, Paquetage, Architecture et administration. Jean-Pierre Perez 6/13 TYPE empArrayType IS TABLE OF c1%ROWTYPE NOT NULL INDEX BY BINARY_INTEGER; empArray empArrayType; z NUMBER DEFAULT 0; BEGIN FOR v1 IN c1 LOOP EXIT WHEN c1%NOTFOUND; empArray(empArray.COUNT+1) := v1; END LOOP; FOR k IN empArray.FIRST..empArray.LAST LOOP z := z + empArray(k).sal; END LOOP; DBMS_OUTPUT.PUT_LINE('Moyenne des 5 plus hauts salaires:' || TO_CHAR(z/empArray.COUNT,'999999.90')); END; / Question n°20 – Vous exécutez une procédure PL qui malheureusement vous renvoie le message d’erreur suivant : ERROR at line 1: ORA-01422: exact fetch returns more than requested number of rows ORA-06512: at line 5 Selon vous, de quoi s’agit-il ? A) Les variables déclarées ne correspondent pas aux types de données? B) Le code tente d’extraire des données alors que le curseur n’est pas ouvert ? C) La table contient trop d’enregistrements. D) La requête devrait s’appuyer sur la déclaration d’un curseur. Question n°21 – Il existe une dépendance fonctionnelle (X Y) pour la relation (table) R(X, Y, Z) lorsque la proposition suivante est vérifiée : Y est en dépendance fonctionnelle avec X si :  n1,n2 deux tuples de R n1[X] = n2[X]  n1[Y] = n2[Y] Ici, n1[X] représente la valeur de l’attribut X pour le tuple n. Bref ! Pouvez reformuler cela en quelques mots de français. La connaissance d’un champ détermine celle d’un autre.
  • 7. ACMA - Mairie de Paris. Cours Base de données Oracle. Année 2007/2008 Norme SPARC-ANSI, propriétés « acides », transactions, PL/SQL Objet, Paquetage, Architecture et administration. Jean-Pierre Perez 7/13 Question n°22. Dans une relation R, que représente l’attribut Y? R = (W, X, {Y}, Z) A. Clef primaire (PRIMARY KEY). B. Clef étrangère (FOREIGN KEY) Question n°23. Comment peut-on concevoir ce schéma entités relations (N x M) afin d’éviter toute confusion entre vendeurs (SALES) et CLIENTS ? SALES (sales_id, order, shipping) TERRITORY (sales_id, client_id) CLIENTS (client_id,name,phone) Question n°24. En quelques mots, quelles différences y a t-il entre une vue relationnelle et une vue matérialisée dont voici un exemple? CREATE MATERIALIZED VIEW report1 REFRESH ON DEMAND AS SELECT a.deptno "Departement", a.num_emp/b.total_count "%Employees", a.sal_sum/b.total_sal "%Salary" FROM (SELECT deptno, COUNT(*) num_emp, SUM(sal) sal_sum FROM scott.emp GROUP BY deptno) a, (SELECT COUNT(*) total_count, SUM(sal) total_sal FROM scott.emp) b; Une vue conserve le principe de normalisation puisqu’elle évite la redondance des données. Une vue matérialisée conduit à « dénormaliser » puisque la vue matérialisée possède des segments de données comme une table. Ces données peuvent néanmoins être rafraîchies. SALES #* sales_id * order o shipping CLIENTS #* clien t_id * name o phone Oops?
  • 8. ACMA - Mairie de Paris. Cours Base de données Oracle. Année 2007/2008 Norme SPARC-ANSI, propriétés « acides », transactions, PL/SQL Objet, Paquetage, Architecture et administration. Jean-Pierre Perez 8/13 Dans ce cas l’utilisateur accèdent à des données apprêtées (agrégats) avec accélérateurs dédiés. Les temps de réponses sont alors constants. Question n°25. Votre client se plaint des performances des éditions. Quelle est la fonctionnalité la plus appropriée pour collecter les statistiques nécessaires à l’optimiseur de requête avec Oracle9i/10g? A) Commande ANALYZE TABLE, INDEX (Car fausse les statistiques !!) B) DBMS_STATS Question n°26. Ecrire une requête qui permet d’afficher l’employé le plus anciennement embauché de chaque département. Cette requête s’appuie sur les relations EMP et DEPT utilisées en cours. SELECT e.ename FROM emp e WHERE e.hiredate = ( SELECT MAX(a.hiredate) FROM emp a --jointure synchronisée WHERE a.deptno = e.deptno); Question n°27. Les utilisateurs se plaignent des temps de réponse lorsqu’ils élaborent des requêtes « ad hoc » pour produire leurs éditions. En tant que DBA vous êtes convié à une réunion pour parler de ce problème de performance. Quel est le point vous allez aborder en tout premier? A) PGA B) SQL C) I/O D) SGA Question n°28. Lorsque l’on passe formellement un paramètre IN OUT dans le paquetage suivant : CREATE OR REPLACE PACKAGE math IS PROCEDURE add ( num IN NUMBER, s IN OUT NOCOPY NUMBER) ; END math; / Le paramètre s : A) se comporte comme une constante PL/SQL. Elle est considérée comme en lecture seule, et ne peut donc être modifiée.
  • 9. ACMA - Mairie de Paris. Cours Base de données Oracle. Année 2007/2008 Norme SPARC-ANSI, propriétés « acides », transactions, PL/SQL Objet, Paquetage, Architecture et administration. Jean-Pierre Perez 9/13 B) dans ce mode le paramètre se comporte comme une variable PL non initialisée, et possède donc une valeur NULL. Elle peut être lue et peut être modifiée. C) La valeur effective du paramètre est passée à la procédure qui l’invoque. Au sein de cette procédure, le paramètre agît comme une variable initialisée qui peut être modifiée. Question n°29. SET SERVEROUTPUT ON DECLARE TYPE ConstantesTabTyp IS TABLE OF NUMBER(3) NOT NULL INDEX BY BINARY_INTEGER; arrayOfCst ConstantesTabTyp; BEGIN arrayOfCst(1) := 45; arrayOfCst(2) := 12; arrayOfCst(3) := 15; arrayOfCst(4) := 20; DBMS_OUTPUT.PUT_LINE( …… ); <-- code manquant ici END; / Ecrire l’instruction incomplète ci-dessus qui renvoie la valeur du tableau qui précède le troisième élément de la table PL. DBMS_OUTPUT.PUT_LINE(arrayOfCst(arrayOfCst.PRIOR(3))); Question n°30 : Complétez les lignes manquantes de façon à lever explicitement une exception définie « applicative » de l’utilisateur. Cette exception ne laisse pas voir les données du département n°40 car personne n’est affecté à celui-ci pour le moment. SQL> DECLARE 2 v_deptno NUMBER(2,0); 3 INVALID_DEPT EXCEPTION1 ; 4 CURSOR c1 IS SELECT deptno FROM dept WHERE ROWNUM = 1; 5 BEGIN 6 OPEN c1; 7 FETCH c1 INTO v_deptno; 8 CLOSE c1; 9 IF v_deptno = 40 THEN 10 RAISE_APPLICATION_ERROR(-20001,'NOT AUTHORIZED'); 11 END IF; 12 DBMS_OUTPUT.PUT_LINE('EVERYTHING IS OK'); 13 EXCEPTION 14 WHEN INVALID_DEPT THEN 15 DBMS_OUTPUT.PUT_LINE('NOT AUTHORIZED'); 16 END; 17 / 1 PRAGMA EXCEPTION_INIT(INVALID_DEPT,-20001) serait mieux. Non demandé.
  • 10. ACMA - Mairie de Paris. Cours Base de données Oracle. Année 2007/2008 Norme SPARC-ANSI, propriétés « acides », transactions, PL/SQL Objet, Paquetage, Architecture et administration. Jean-Pierre Perez10/13 Question n°31 – Le résultat d’une la sauvegarde d’une base de données ouverte, également appelée sauvegarde à chaud, est : A) Cohérent B) Incohérent Question n°32 – Pourquoi devra t-on procéder à une phase de récupération à l’issue d’une sauvegarde effectuée à chaud ? Justement parce que la base est incohérente sans l’application des derniers journaux. Question n°33. Complétez la procédure suivante qui permet générer le code qui convient pour effectuer une sauvegarde à froid. Cette procédure devra trouver les informations nécessaires en consultant les vues dynamiques de performances V$DATAFILE. Par ailleurs, elle fait appel à la commande HOST (Windows) ou ! (Unix). CONNECT / AS SYSDBA SHUTDOWN IMMEDIATE STARTUP %MOUNT SET ECHO OFF SET PAGESIZE 0 SET FEEDBACK OFF HEADING OFF VERIFY OFF TAB OFF TRIMSPOOL ON TERMOUT OFF SET LINESIZE 250 SPOOL c:backupbackup.ksh SELECT 'HOST COPY ' || d.name || ' ' || ' c:backup' FROM V$DATAFILE d SPOOL OFF Question n°34. Complétez les trois lignes en pointillées de la procédure p1 paramétrée. Celle-ci prend comme n° de département (DEPTNO) par défaut la valeur 10 : SET SERVEROUTPUT ON CREATE OR REPLACE PROCEDURE p1(p_deptno NUMBER DEFAULT 10) IS CURSOR c1 (in_deptno NUMBER) IS SELECT ename, job, sal FROM emp WHERE deptno = in_deptno; BEGIN FOR i IN c1 (p_deptno) LOOP DBMS_OUTPUT.PUT_LINE(i.ename); END LOOP; END; / Question n°35. Quelle est la principale différence entre le Web Toolkit d’Oracle et la fonctionnalité PSP. Connaissez-vous des procédés non-Oracle similaires à PSP ?
  • 11. ACMA - Mairie de Paris. Cours Base de données Oracle. Année 2007/2008 Norme SPARC-ANSI, propriétés « acides », transactions, PL/SQL Objet, Paquetage, Architecture et administration. Jean-Pierre Perez11/13 Web toolkit : PL génère un fichier HTML PSP : On écrit du PL au sein d’une feuille HTML. Oui : ASP (M$), JSP (Java), BSP (SAP) Question 2 n°36. Soit le type abstrait options_obj. Une option possède un nom (name) et un prix (price). Par ailleurs, cette option possède une méthode « encapsulée » getVAT qui retourne la T.V.A. Complétez les parties manquantes sachant que la méthode MEMBER ne possède pas d’argument : CREATE OR REPLACE TYPE options_obj AS OBJECT ( name VARCHAR2(32), price NUMBER(7,2), MEMBER FUNCTION getTVA RETURN VARCHAR2 ); / CREATE TYPE options_typ AS TABLE OF options_obj; / CREATE OR REPLACE TYPE BODY options_obj AS MEMBER FUNCTION getTVA RETURN VARCHAR2 IS rate NUMBER DEFAULT 19.6; BEGIN RETURN SELF.price*rate; END getTVA; END; / Question n°37. Le code ci-dessous utilise une collection de type TABLEAU ASSOCIATIF. Complétez les parties manquantes sachant que la note de mathématiques et de littérature de l’élève Jean y seront consignées. Le total des points devra également être affiché. DECLARE Fhandle UTL_FILE.FILE_TYPE; math note_type; litterature note_type; howmany NUMBER; BEGIN math('Jean') := 12; litterature('Jean') := 14; 2 SCOTT@prmy> declare 2 x options_obj := options_obj('banane',100); 3 begin 4 dbms_output.put_line(x.gettva); 5 end; 6 / 1960
  • 12. ACMA - Mairie de Paris. Cours Base de données Oracle. Année 2007/2008 Norme SPARC-ANSI, propriétés « acides », transactions, PL/SQL Objet, Paquetage, Architecture et administration. Jean-Pierre Perez12/13 howmany := math('Jean')+litterature('Jean'); DBMS_OUTPUT.PUT_LINE(howmany); END; / Question n°38. Il vous est demandé de compléter le code PL/SQL ci-dessous (lignes 12, 17 et 19). La procédure décharge des données de la base dans le système de fichier. Le fichier généré doit être suffixé par .csv tandis que les enregistrements sont séparés par un point-virgule « ; » afin de pouvoir éditer le fichier depuis un tableur. Le code utilise des répertoires virtuels. CONNECT / AS SYSDBA CREATE OR REPLACE DIRECTORY spool AS 'c:temp'; GRANT READ ON DIRECTORY spool TO scott; GRANT WRITE ON DIRECTORY spool TO scott; CONNECT scott/tiger SET SERVEROUTPUT ON SQL> DECLARE 2 Fhandle UTL_FILE.FILE_TYPE; 3 CURSOR c1 IS 4 SELECT e.ename,d.loc,d.dname,e.job 5 FROM emp e NATURAL JOIN dept d; 6 7 FUNCTION getSemiColon (str IN VARCHAR2) RETURN CHAR IS 8 BEGIN 9 RETURN str || ';' ; 10 END getSemiColon; 11 BEGIN 12 Fhandle := UTL_FILE.FOPEN('SPOOL','employee.csv','w'); 13 FOR i IN c1 LOOP 14 UTL_FILE.PUT(Fhandle,getSemiColon(i.ename)); 15 UTL_FILE.PUT(Fhandle,getSemiColon(i.loc)); 16 UTL_FILE.PUT(Fhandle,getSemiColon(i.dname)); 17 UTL_FILE.PUT_LINE(Fhandle,i.job); 18 END LOOP; 19 UTL_FILE.FCLOSE(Fhandle); 20 EXCEPTION 21 WHEN OTHERS THEN 22 DBMS_OUTPUT.PUT_LINE(SQLERRM); 23 END; 24 / Annexe 1: Architecture du serveur de données Oracle10g
  • 13. ACMA - Mairie de Paris. Cours Base de données Oracle. Année 2007/2008 Norme SPARC-ANSI, propriétés « acides », transactions, PL/SQL Objet, Paquetage, Architecture et administration. Jean-Pierre Perez13/13 Annexe 2 : Mécanisme d’une transaction 1. Oracle examine le cache de tampons pour déterminer si le bloc de données cible se trouve en mémoire. 2. Si le bloc de données cible ne se trouve pas en mémoire, Oracle le récupère à partir du disque. 3. Il enregistre une entrée de reprise dans le tampon REDO. 4. Il consigne dans un segment d’annulation, le code et les données requises pour défaire la modification apportée au bloc (BEFORE IMAGE). Auparavant, des vecteurs de changement sont générés pour cette action. 5. Oracle met à jour le bloc de données en mémoire avec la nouvelle valeur 6. Oracle génère une entrée de validation dans le tampon REDO et associe à la transaction un SCN de validation. 7. Il écrit dans le journal de reprise sur disque le contenu du tampon REDO. 8. Il libère les blocs du segment d’annulation (BEFORE IMAGE) qui contenaient les informations d’annulation de la transaction. 9. Il enregistre le bloc modifié dans un fichier de données. Instance Oracle Shared Pool SGA Library Cache Data Dictionary cache Database buffer Cache Redo Log buffer Java Pool Large Pool PMON SMON DBW0 LGWR CKPT ARCH Parameter SPFILE Passord File Control file TEMP UNDO DATAFILE REDO Multiplexés LOG SID Database Archive Mode SYSTEM SYSAUX Streams Optionnels