ACMA - Mairie de Paris. Cours Base de données Oracle. Année 2007/2008Norme SPARC-ANSI, propriétés « acides », transactions...
ACMA - Mairie de Paris. Cours Base de données Oracle. Année 2007/2008Norme SPARC-ANSI, propriétés « acides », transactions...
ACMA - Mairie de Paris. Cours Base de données Oracle. Année 2007/2008Norme SPARC-ANSI, propriétés « acides », transactions...
ACMA - Mairie de Paris. Cours Base de données Oracle. Année 2007/2008Norme SPARC-ANSI, propriétés « acides », transactions...
ACMA - Mairie de Paris. Cours Base de données Oracle. Année 2007/2008Norme SPARC-ANSI, propriétés « acides », transactions...
ACMA - Mairie de Paris. Cours Base de données Oracle. Année 2007/2008Norme SPARC-ANSI, propriétés « acides », transactions...
ACMA - Mairie de Paris. Cours Base de données Oracle. Année 2007/2008Norme SPARC-ANSI, propriétés « acides », transactions...
ACMA - Mairie de Paris. Cours Base de données Oracle. Année 2007/2008Norme SPARC-ANSI, propriétés « acides », transactions...
ACMA - Mairie de Paris. Cours Base de données Oracle. Année 2007/2008Norme SPARC-ANSI, propriétés « acides », transactions...
ACMA - Mairie de Paris. Cours Base de données Oracle. Année 2007/2008Norme SPARC-ANSI, propriétés « acides », transactions...
ACMA - Mairie de Paris. Cours Base de données Oracle. Année 2007/2008Norme SPARC-ANSI, propriétés « acides », transactions...
ACMA - Mairie de Paris. Cours Base de données Oracle. Année 2007/2008Norme SPARC-ANSI, propriétés « acides », transactions...
ACMA - Mairie de Paris. Cours Base de données Oracle. Année 2007/2008Norme SPARC-ANSI, propriétés « acides », transactions...
Upcoming SlideShare
Loading in …5
×

Jp perez correction quizz oracle mairie de paris acma 2007 2008

867 views

Published on

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
867
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
0
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Jp perez correction quizz oracle mairie de paris acma 2007 2008

  1. 1. ACMA - Mairie de Paris. Cours Base de données Oracle. Année 2007/2008Norme SPARC-ANSI, propriétés « acides », transactions, PL/SQL Objet, Paquetage, Architecture et administration. Jean-Pierre Perez 1/13Nom :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.2Afin d’effectuer une tâche de maintenance sur une base en production, vous émettez unecommande qui placera la base en mode OPEN dans le statut MOUNT. Mais un messaged’erreur apparaît!SQL> ALTER DATABASE CLOSE;alter database closeORA-01093: ALTER DATABASE CLOSE only permitted with no sessions connectedNéanmoins, une note technique vous apprend qu’il peut exister des JOB qui établissent desconnections à 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 deproduction utilise des JOBS. C’est en mémoire seulement qu’ilfaut supprimer les sessions.Question n°2. Le nombre entier associé à chaque transaction dans la base est :A) Sequence numberB) Sequence numberC) System change numberD) Userid numberQuestion n°3. Lorsqu’un utilisateur démarre une instance, le serveur Oracle exécuteles tâches suivantes (il y a 3 bonnes réponses).A) Il lit le fichier de paramètres d’initialisation de la base
  2. 2. ACMA - Mairie de Paris. Cours Base de données Oracle. Année 2007/2008Norme SPARC-ANSI, propriétés « acides », transactions, PL/SQL Objet, Paquetage, Architecture et administration. Jean-Pierre Perez 2/13B) Il lance les processus d’arrière-plan requis et alloue des zones mémoireC) Il consigne des informations dans le journal d’alerteD) Il accède au fichier de contrôleQuestion 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 lesfichiers 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 destableaux 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 PoolQuestion 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 lesutilisateurs.D) Stocker des données issues de transactions avant qu’elles ne soient copiées dansles fichiers de reprise REDO LOG.Question n°7. Marinette a une connexion ouverte sur la base de données lorsqu’ellepart déjeuner.Elle n’a pas validé ses transactions de sorte que la table EMPLOYEE a des verroustable posés dessus. Que suggérez-vous pour libérer les verrous de façon à permettreaux 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. 3. ACMA - Mairie de Paris. Cours Base de données Oracle. Année 2007/2008Norme SPARC-ANSI, propriétés « acides », transactions, PL/SQL Objet, Paquetage, Architecture et administration. Jean-Pierre Perez 3/13C) « Tuer » la session de Marinette au moyen d’une commande du systèmed’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) DELETEB) INSERTC) UPDATEQuestion n°9. A quel niveau Oracle résout-il les étreintes fatales (verrous mortels ouDEAK 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 (parexemple, 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 pasarrê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 IMMEDIATEB) SHUTDOWN NORMALC) SHUTDOWN ABORTC) SUTDOWN TRANSACTIONALQuestion 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. 4. ACMA - Mairie de Paris. Cours Base de données Oracle. Année 2007/2008Norme SPARC-ANSI, propriétés « acides », transactions, PL/SQL Objet, Paquetage, Architecture et administration. Jean-Pierre Perez 4/13Question n°13. Un verrou mortel est détecté par l’ordre B d’une grande transaction quicontient 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 desutilisateurs accèdent en lecture et en écriture à la base durant l’opération d’export decelle-ci?A) DIRECT=YB) IGNORE=YC) CONSISTENTS=YD) CONSTRAINTS=YQuestion n°15. Pour effectuer un arrêt comptable de fin de mois, vous avez élaboré unbatch qui est lancé à 22H du soir, le dernier jour de chaque mois. Malheureusement, ilarrive quelque fois que le batch se termine à 2H du matin. Les transactions surInternet qui se sont alors déroulées après minuit sont prises en compte, faussantl’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 seindu 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 élaborentdes requêtes « ad hoc » pour produire leurs éditions. En tant que DBA vous êtesconvié à une réunion pour parler de ce problème de performance. Quel est le pointvous allez aborder en tout premier?A) PGAB) SQLC) I/OD) SGA
  5. 5. ACMA - Mairie de Paris. Cours Base de données Oracle. Année 2007/2008Norme SPARC-ANSI, propriétés « acides », transactions, PL/SQL Objet, Paquetage, Architecture et administration. Jean-Pierre Perez 5/13Question n°17. Vous venez de recevoir de la part du service Clientèle un fichier Excelavec de nouveaux clients à ajouter dans la table CLIENTS de la base. Cette tablepossè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 demanquantes. Elles sont chacune placées dans un cadre vide ci-dessous.Complétez les espaces vides.APPEND CHR(10) et ‘YYYYMMDD’ comme masque de formatageQuestion n°18. Quel est le meilleur moment pour « tuner » une application base dedonné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 afinde calculer la moyenne des salaires des employés avec une précision de deuxdécimales. Conservez les noms des objets utilisés dans le code d’origine.DECLARECURSOR c1 IS SELECT empno,sal FROM emp;
  6. 6. ACMA - Mairie de Paris. Cours Base de données Oracle. Année 2007/2008Norme SPARC-ANSI, propriétés « acides », transactions, PL/SQL Objet, Paquetage, Architecture et administration. Jean-Pierre Perez 6/13TYPE empArrayType IS TABLE OF c1%ROWTYPENOT NULL INDEX BY BINARY_INTEGER;empArray empArrayType;z NUMBER DEFAULT 0;BEGINFOR v1 IN c1 LOOPEXIT WHEN c1%NOTFOUND;empArray(empArray.COUNT+1) := v1;END LOOP;FOR k IN empArray.FIRST..empArray.LAST LOOPz := 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 renvoiele message d’erreur suivant :ERROR at line 1:ORA-01422: exact fetch returns more than requested number of rowsORA-06512: at line 5Selon 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 Rn1[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. 7. ACMA - Mairie de Paris. Cours Base de données Oracle. Année 2007/2008Norme SPARC-ANSI, propriétés « acides », transactions, PL/SQL Objet, Paquetage, Architecture et administration. Jean-Pierre Perez 7/13Question 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) afind’é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 vuerelationnelle et une vue matérialisée dont voici un exemple?CREATE MATERIALIZED VIEW report1REFRESH ON DEMANDASSELECT 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_sumFROM scott.empGROUP BY deptno) a,(SELECT COUNT(*) total_count,SUM(sal) total_salFROM 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 dessegments de données comme une table. Ces données peuvent néanmoins être rafraîchies.SALES#* sales_id* ordero shippingCLIENTS#*client_id* nameo phoneOops?
  8. 8. ACMA - Mairie de Paris. Cours Base de données Oracle. Année 2007/2008Norme SPARC-ANSI, propriétés « acides », transactions, PL/SQL Objet, Paquetage, Architecture et administration. Jean-Pierre Perez 8/13Dans ce cas l’utilisateur accèdent à des données apprêtées (agrégats) avec accélérateursdédiés. Les temps de réponses sont alors constants.Question n°25. Votre client se plaint des performances des éditions. Quelle est lafonctionnalité 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_STATSQuestion n°26. Ecrire une requête qui permet d’afficher l’employé le plusanciennement embauché de chaque département. Cette requête s’appuie sur lesrelations EMP et DEPT utilisées en cours.SELECT e.enameFROM emp eWHERE e.hiredate = (SELECT MAX(a.hiredate)FROM emp a --jointure synchroniséeWHERE a.deptno = e.deptno);Question n°27. Les utilisateurs se plaignent des temps de réponse lorsqu’ils élaborentdes requêtes « ad hoc » pour produire leurs éditions. En tant que DBA vous êtesconvié à une réunion pour parler de ce problème de performance. Quel est le pointvous allez aborder en tout premier?A) PGAB) SQLC) I/OD) SGAQuestion n°28. Lorsque l’on passe formellement un paramètre IN OUT dans lepaquetage suivant :CREATE OR REPLACE PACKAGE mathISPROCEDURE 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 lectureseule, et ne peut donc être modifiée.
  9. 9. ACMA - Mairie de Paris. Cours Base de données Oracle. Année 2007/2008Norme SPARC-ANSI, propriétés « acides », transactions, PL/SQL Objet, Paquetage, Architecture et administration. Jean-Pierre Perez 9/13B) dans ce mode le paramètre se comporte comme une variable PL non initialisée, etpossè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 seinde cette procédure, le paramètre agît comme une variable initialisée qui peut êtremodifiée.Question n°29.SET SERVEROUTPUT ONDECLARETYPE ConstantesTabTyp IS TABLE OF NUMBER(3)NOT NULL INDEX BY BINARY_INTEGER;arrayOfCst ConstantesTabTyp;BEGINarrayOfCst(1) := 45;arrayOfCst(2) := 12;arrayOfCst(3) := 15;arrayOfCst(4) := 20;DBMS_OUTPUT.PUT_LINE( …… ); <-- code manquant iciEND;/Ecrire l’instruction incomplète ci-dessus qui renvoie la valeur du tableau qui précèdele 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 uneexception définie « applicative » de l’utilisateur. Cette exception ne laisse pas voir lesdonnées du département n°40 car personne n’est affecté à celui-ci pour le moment.SQL> DECLARE2 v_deptno NUMBER(2,0);3 INVALID_DEPT EXCEPTION1;4 CURSOR c1 IS SELECT deptno FROM dept WHERE ROWNUM = 1;5 BEGIN6 OPEN c1;7 FETCH c1 INTO v_deptno;8 CLOSE c1;9 IF v_deptno = 40 THEN10 RAISE_APPLICATION_ERROR(-20001,NOT AUTHORIZED);11 END IF;12 DBMS_OUTPUT.PUT_LINE(EVERYTHING IS OK);13 EXCEPTION14 WHEN INVALID_DEPT THEN15 DBMS_OUTPUT.PUT_LINE(NOT AUTHORIZED);16 END;17 /1PRAGMA EXCEPTION_INIT(INVALID_DEPT,-20001) serait mieux. Non demandé.
  10. 10. ACMA - Mairie de Paris. Cours Base de données Oracle. Année 2007/2008Norme SPARC-ANSI, propriétés « acides », transactions, PL/SQL Objet, Paquetage, Architecture et administration. Jean-Pierre Perez10/13Question n°31 – Le résultat d’une la sauvegarde d’une base de données ouverte,également appelée sauvegarde à chaud, est :A) CohérentB) IncohérentQuestion n°32 – Pourquoi devra t-on procéder à une phase de récupération à l’issued’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 quiconvient pour effectuer une sauvegarde à froid. Cette procédure devra trouver lesinformations nécessaires en consultant les vues dynamiques de performancesV$DATAFILE. Par ailleurs, elle fait appel à la commande HOST (Windows) ou ! (Unix).CONNECT / AS SYSDBASHUTDOWN IMMEDIATESTARTUP %MOUNTSET ECHO OFFSET PAGESIZE 0SET FEEDBACK OFF HEADING OFF VERIFY OFF TAB OFF TRIMSPOOL ON TERMOUTOFFSET LINESIZE 250SPOOL c:backupbackup.kshSELECT HOST COPY || d.name || || c:backupFROM V$DATAFILE dSPOOL OFFQuestion 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 ONCREATE OR REPLACE PROCEDURE p1(p_deptno NUMBER DEFAULT 10) ISCURSOR c1 (in_deptno NUMBER) ISSELECT ename, job, salFROM emp WHERE deptno = in_deptno;BEGINFOR i IN c1 (p_deptno) LOOPDBMS_OUTPUT.PUT_LINE(i.ename);END LOOP;END;/Question n°35. Quelle est la principale différence entre le Web Toolkit d’Oracle et lafonctionnalité PSP. Connaissez-vous des procédés non-Oracle similaires à PSP ?
  11. 11. ACMA - Mairie de Paris. Cours Base de données Oracle. Année 2007/2008Norme SPARC-ANSI, propriétés « acides », transactions, PL/SQL Objet, Paquetage, Architecture et administration. Jean-Pierre Perez11/13Web toolkit : PL génère un fichier HTMLPSP : On écrit du PL au sein d’une feuille HTML.Oui : ASP (M$), JSP (Java), BSP (SAP)Question 2n°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 lamé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 ASMEMBER FUNCTION getTVA RETURN VARCHAR2ISrate NUMBER DEFAULT 19.6;BEGINRETURN SELF.price*rate;END getTVA;END;/Question n°37. Le code ci-dessous utilise une collection de type TABLEAUASSOCIATIF. Complétez les parties manquantes sachant que la note demathématiques et de littérature de l’élève Jean y seront consignées. Le total despoints devra également être affiché.DECLAREFhandle UTL_FILE.FILE_TYPE;math note_type;litterature note_type;howmany NUMBER;BEGINmath(Jean) := 12;litterature(Jean) := 14;2SCOTT@prmy> declare2 x options_obj := options_obj(banane,100);3 begin4 dbms_output.put_line(x.gettva);5 end;6 /1960
  12. 12. ACMA - Mairie de Paris. Cours Base de données Oracle. Année 2007/2008Norme SPARC-ANSI, propriétés « acides », transactions, PL/SQL Objet, Paquetage, Architecture et administration. Jean-Pierre Perez12/13howmany := 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 (lignes12, 17 et 19). La procédure décharge des données de la base dans le système defichier. Le fichier généré doit être suffixé par .csv tandis que les enregistrements sontséparés par un point-virgule « ; » afin de pouvoir éditer le fichier depuis un tableur. Lecode utilise des répertoires virtuels.CONNECT / AS SYSDBACREATE OR REPLACE DIRECTORY spool AS c:temp;GRANT READ ON DIRECTORY spool TO scott;GRANT WRITE ON DIRECTORY spool TO scott;CONNECT scott/tigerSET SERVEROUTPUT ONSQL> DECLARE2 Fhandle UTL_FILE.FILE_TYPE;3 CURSOR c1 IS4 SELECT e.ename,d.loc,d.dname,e.job5 FROM emp e NATURAL JOIN dept d;67 FUNCTION getSemiColon (str IN VARCHAR2) RETURN CHAR IS8 BEGIN9 RETURN str || ; ;10 END getSemiColon;11 BEGIN12 Fhandle := UTL_FILE.FOPEN(SPOOL,employee.csv,w);13 FOR i IN c1 LOOP14 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 EXCEPTION21 WHEN OTHERS THEN22 DBMS_OUTPUT.PUT_LINE(SQLERRM);23 END;24 /Annexe 1: Architecture du serveur de données Oracle10g
  13. 13. ACMA - Mairie de Paris. Cours Base de données Oracle. Année 2007/2008Norme SPARC-ANSI, propriétés « acides », transactions, PL/SQL Objet, Paquetage, Architecture et administration. Jean-Pierre Perez13/13Annexe 2 : Mécanisme d’une transaction1. 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 modificationapportée au bloc (BEFORE IMAGE). Auparavant, des vecteurs de changement sont générés pour cetteaction.5. Oracle met à jour le bloc de données en mémoire avec la nouvelle valeur6. Oracle génère une entrée de validation dans le tampon REDO et associe à la transaction un SCN devalidation.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 informationsd’annulation de la transaction.9. Il enregistre le bloc modifié dans un fichier de données.Instance OracleShared Pool SGALibraryCacheDataDictionarycacheDatabasebufferCacheRedo LogbufferJava PoolLarge PoolPMON SMON DBW0 LGWR CKPT ARCHParameterSPFILEPassordFileControl fileTEMP UNDODATAFILEREDOMultiplexés LOGSIDDatabaseArchiveModeSYSTEMSYSAUXStreamsOptionnels

×