Advertisement
Guest User

bdddddddddddddd

a guest
Oct 15th, 2019
276
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.90 KB | None | 0 0
  1. (A)tomicité : Une transaction doit effectuer toutes ses mises à
  2. jour ou ne rien faire du tout
  3. (C)ohérence : Une transaction doit faire passer la base de
  4. données d’un état cohérent à un autre état cohérent
  5. (I)solation : Les résultats d’une transaction ne doivent être
  6. visibles aux autres transactions qu’une fois validée
  7. (D)urabilité : Le système doit garantir que les modifications
  8. apportées par une transaction sont conservées en cas de panne
  9.  
  10. Granule : Un granule de concurrence est l’unité de données
  11. contrôlée par le SGBD (il s’agit, par exemple, d’un tuple ou
  12. d’une table).
  13.  
  14. Action : Une action est l’unité indivisible exécutée par le
  15. SGBD sur un granule. Il s’agit généralement d’une lecture ou
  16. d’une écriture.
  17.  
  18. Exécution de transactions : Exécution d’actions obtenues en
  19. intercalant les actions des transactions tout en respectant
  20. l’ordre interne de chaque transaction.
  21.  
  22. Opérations permutables : Oi et Oj sont deux opérations
  23. permutables si le résultat de l’exécution de Oi suivi de Oj est le
  24. même que celui de Oj suivi de Oi.
  25.  
  26. Succession : Une succession est une exécution successive de
  27. transactions (sans simultanéité entre transactions).
  28.  
  29. Exécution sérialisable : Une exécution sérialisable est une
  30. exécution de transactions donnant le même résultat qu’une
  31. succession de transactions.
  32.  
  33. Précédence : On dit qu’une transaction Ti précède Tj si : Ti
  34. accomplit une opération Oi avant la transaction Tj qui veut
  35. accomplir une opération Oj sur un même granule où Oi et Oj sont
  36. en conflits : lecture puis écriture, écriture puis lecture ou écriture
  37. puis écriture.
  38.  
  39. Graphe de précédence : Graphe dont les noeuds sont des
  40. transactions et un arc de Ti vers Tj signifie que Ti précède Tj dans
  41. l’exécution d’une opération concernant le même granule.
  42. Une condition pour qu’une exécution de transactions soit
  43. sérialisable : le graphe de précédence est sans circuit.
  44.  
  45. Pour pallier aux problèmes de pertes de mise à jour provoquées par
  46. l’annulation d’une transaction (exemple 1), le protocole PXE étend
  47. PX dans le sens où les verrous sont maintenus jusqu’à la fin de la
  48. transaction.
  49.  
  50. Si une transaction possède un verrou partagé sur un granule alors
  51. une autre transaction peut acquérir un verrou partagé sur ce granule
  52. mais aucune transaction ne peut acquérir un verrou exclusif sur le
  53. même granule jusqu’à ce que les verrous partagés soient libérés.
  54. L’acquisition d’un verrou partagé est réalisée par la commande
  55. SFIND.
  56.  
  57. Toute transaction qui veut mettre à jour un granule doit exécuter la
  58. commande SFIND pour obtenir un verrou partagé.
  59. Toute tentative de mise à jour de ce granule (par l’opération
  60. UPDATE) transforme le verrou partagé en verrou exclusif et
  61. provoque sa mise à jour.
  62. Les systèmes supportant le protocole PS montrent qu’il se produit
  63. de nombreux interblocages.
  64.  
  65. Le protocole PSE étend le protocole PS dans le sens où les verrous
  66. sont libérés à la fin de la transaction (idem que PXE pour PX).
  67.  
  68. Pour résoudre le problème d’interblocage il suffit de choisir une
  69. transaction victime pour laquelle on doit annuler les actions
  70. effectuées par cette transaction (ROLLBACK). Le choix de cette
  71. transaction peut se faire selon différents critères : la plus récente,
  72. ou celle qui mobilise le plus petit nombre de verrous etc.
  73. Concernant la transaction annulée, plusieurs solutions : on peut
  74. décider de la redémarrer immédiatement après avoir fait disparaître
  75. le circuit du graphe ou après avoir laissé s’écouler un certain laps de
  76. temps.
  77.  
  78. X S X : Verrou exclusif
  79. X N N S : Verrou partagé
  80. S N O N : Demande non satisfaite
  81. O : Demande accordée
  82.  
  83. Un verrou de mise à jour donne une indication sur l’intention de
  84. mise à jour d’un granule par une transaction.
  85. Ce type de verrou est incompatible avec des verrous de mise à jour
  86. et des verrous exclusifs mais reste compatible avec des verrous
  87. partagés.
  88. Ce type de verrou permet d’éviter des situations d’interblocage.
  89.  
  90. Toute transaction qui souhaite mettre à jour un granule doit
  91. exécuter la commande UFIND pour obtenir un verrou. Toute mise
  92. à jour du granule transforme le verrou en verrou exclusif.
  93.  
  94. Le protocole PUE étend PU comme c’était le cas pour les
  95. protocoles précédents en conservant les verrous exclusifs jusqu’à la
  96. fin de la transaction.
  97.  
  98. X U S
  99. X N N N X : Verrou exclusif S : Verrou partagé U : Mise à jour
  100. U N N O N : Demande non satisfaite
  101. S N O O O : Demande accordée
  102.  
  103. Le verrouillage à deux phases consiste à verrouiller les granules au
  104. fur et à mesure des accès par une transaction et à relacher les
  105. verrous seulement après obtention de tous les verrous.
  106.  
  107. Deux règles à respecter :
  108. Règle 1 : avant de lire ou mettre à jour un granule, la
  109. transaction doit obtenir un verrou sur ce granule
  110. Règle 2 : après la libération du verrou, la transaction ne peut
  111. plus acquérir aucun verrou.
  112. Si toutes les transactions obéissent aux deux règles, alors toute
  113. exécution imbriquée de ces transactions est sérialisable.
  114.  
  115. Wait-Die : Il garantit que les transactions en attente attendent des
  116. transactions plus jeunes :
  117. Lorsqu’une transaction A demande un verrou déjà verrouillé par une
  118. autre transaction B alors A attend si elle est plus vieille que B,
  119. autrement A est annulée et redémarrée
  120.  
  121. Wound-Wait : Il garantit que les transactions en attente attendent des
  122. transactions plus vieilles :
  123. Lorsqu’une transaction A demande un verrou déjà verrouillé par une
  124. autre transaction B alors A attend si elle est plus jeune que B,
  125. autrement B est annulée et redémarrée
  126.  
  127. Read Uncommited : Ce mode d’isolation correspond à l’absence du contrôle de
  128. concurrence entre transactions. Dans ce mode, il est possible de
  129. rencontrer des lectures sales, des lectures non répétables ou des
  130. tuples fantômes.
  131.  
  132. Read Commited :
  133. Ce mode d’isolation est adopté par défaut dans ORACLE. Il
  134. empêche la lecture des tuples qui ne sont pas encore validés. Ce
  135. mode n’empêche pas des lectures non répétables ou des tuples
  136. fantômes.
  137.  
  138. Repeatable Read : Ce mode d’isolation est adopté par défaut dans MYSQL.
  139. Il garantit que l’exécution successive d’une requête dans une
  140. transaction retourne le même résultat qu’au début de la transaction.
  141. Il empêche la lecture des tuples qui ne sont pas encore validés.
  142. Il n’empêche pas la création de tuples fantômes.
  143.  
  144. Serializable : Ce mode d’isolation est total. Il retourne un résultat équivalent à
  145. une exécution séquentielle des transactions. Cette garantie se fait
  146. au prix d’un blocage élevé entre les transactions.
  147.  
  148. ROW SHARE (RS) : accès simultané à la table en vue de
  149. modifier ces lignes et en interdisant de verrouiller la table en
  150. exclusif (X)
  151. ROW EXCLUSIVE (RX) : similaire à RS mais en interdisant
  152. tout accès partagé (S) ou exclusif (X ou SRX) sur la table. Ce
  153. mode est positionné automatiquement dans les cas suivants :
  154. updating, inserting, or deleting sur la table
  155. SHARE (S) : accès interdit en mode exclusive (RX, SRX, X) à
  156. la table. Il autorise des verrous partagés (RS ou S) en
  157. interdisant aux transactions des opérations de mise à jour
  158. SHARE ROW EXCLUSIVE (SRX) : il pose un verrou exclusif
  159. sur la table en partageant ses lignes avec les autres
  160. transactions.
  161. EXCLUSIVE (X) : il pose un verrou exclusif sur la table en
  162. interdisant aux autres transactions toutes les opérations de
  163. mise à jour des lignes de la table
  164.  
  165.  
  166. RS RX S SRX X
  167. RS O O O O N
  168. RX O O N N N
  169. S O N O N N
  170. SRXO N N N N
  171. X N N N N N
  172.  
  173.  
  174. SET TRANSACTION ISOLATION LEVEL <option>
  175. SET TRANSACTION READ ONLY
  176. Deux possibilités pour placer des verrous explicites sous Oracle avec:
  177. l’instruction select avec l’option For Update : select from
  178. employe where nuempl=20 for update
  179. l’instruction lock : LOCK TABLE nom-table IN mode-verrou
  180. MODE [NOWAIT]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement