1 transactionstransactions witold litwin. 2 introductionintroduction n beaucoup d'opérations...
TRANSCRIPT
![Page 1: 1 TransactionsTransactions Witold Litwin. 2 IntroductionIntroduction n Beaucoup d'opérations sur une BD doivent être atomiques: n Transfert d'argent entre](https://reader036.vdocuments.site/reader036/viewer/2022062621/551d9d85497959293b8c07c5/html5/thumbnails/1.jpg)
1
TransactionsTransactionsTransactionsTransactions
Witold LitwinWitold Litwin
![Page 2: 1 TransactionsTransactions Witold Litwin. 2 IntroductionIntroduction n Beaucoup d'opérations sur une BD doivent être atomiques: n Transfert d'argent entre](https://reader036.vdocuments.site/reader036/viewer/2022062621/551d9d85497959293b8c07c5/html5/thumbnails/2.jpg)
2
IntroductionIntroductionIntroductionIntroduction
Beaucoup d'opérations sur une BD doivent Beaucoup d'opérations sur une BD doivent être atomiques:être atomiques:
Transfert d'argent entre les comptes:Transfert d'argent entre les comptes:UPDATE Compte1UPDATE Compte1
Val = Val -100Val = Val -100
UPDATE Compte2UPDATE Compte2
Val = Val + 100Val = Val + 100
Si seulement une de ces requêtes est Si seulement une de ces requêtes est exécutée, la BD perd sa consistanceexécutée, la BD perd sa consistance
![Page 3: 1 TransactionsTransactions Witold Litwin. 2 IntroductionIntroduction n Beaucoup d'opérations sur une BD doivent être atomiques: n Transfert d'argent entre](https://reader036.vdocuments.site/reader036/viewer/2022062621/551d9d85497959293b8c07c5/html5/thumbnails/3.jpg)
3
TransactionsTransactionsTransactionsTransactions
Opérations Opérations aatomiquestomiques inexprimables avec une inexprimables avec une requête relationnelle.requête relationnelle.– entièrement ou pas du toutentièrement ou pas du tout
Préservant la Préservant la cconsistance onsistance de la BDde la BD comme si l'usager était comme si l'usager était iisolé solé sur la BDsur la BD A effet A effet ddurableurable sur la BD, une fois terminées sur la BD, une fois terminées
comme prévucomme prévu
Modèle Modèle ACIDACID de transactions de transactions
![Page 4: 1 TransactionsTransactions Witold Litwin. 2 IntroductionIntroduction n Beaucoup d'opérations sur une BD doivent être atomiques: n Transfert d'argent entre](https://reader036.vdocuments.site/reader036/viewer/2022062621/551d9d85497959293b8c07c5/html5/thumbnails/4.jpg)
4
Primitives de gestion de transactionsPrimitives de gestion de transactionsPrimitives de gestion de transactionsPrimitives de gestion de transactions
BEGIN, COMMIT, ROLLBACKBEGIN, COMMIT, ROLLBACKBEGIN TRANSACTIONBEGIN TRANSACTION
UPDATE Compte1UPDATE Compte1
Val = Val -100Val = Val -100
IF SQLCODE <> 0 ROLLBACK ; EXIT ;IF SQLCODE <> 0 ROLLBACK ; EXIT ;
UPDATE Compte2UPDATE Compte2
Val = Val + 100Val = Val + 100
IF SQLCODE <> 0 ROLLBACK ; EXIT;IF SQLCODE <> 0 ROLLBACK ; EXIT;
COMMITCOMMIT
![Page 5: 1 TransactionsTransactions Witold Litwin. 2 IntroductionIntroduction n Beaucoup d'opérations sur une BD doivent être atomiques: n Transfert d'argent entre](https://reader036.vdocuments.site/reader036/viewer/2022062621/551d9d85497959293b8c07c5/html5/thumbnails/5.jpg)
5
Implémentation de transactionsImplémentation de transactionsImplémentation de transactionsImplémentation de transactions
TID : Identificateur de transactionTID : Identificateur de transaction Inscription dans la BD seulement après le COMMITInscription dans la BD seulement après le COMMIT Journalisation:Journalisation:
– Toute opération d'une transaction est notée avant et après Toute opération d'une transaction est notée avant et après l'exécution dans un fichier l'exécution dans un fichier journaljournal présumé à l'abris de pannes présumé à l'abris de pannes
– Les opérations de commitement sont notées avant d'être Les opérations de commitement sont notées avant d'être exécutées sur la BD exécutées sur la BD (write- ahead log protocol)(write- ahead log protocol)
Points de reprise (checkpoints)Points de reprise (checkpoints)– sauvegardes de l'état de la BD et notamment de TIDs de sauvegardes de l'état de la BD et notamment de TIDs de
transactions en cours à intervalles régulierstransactions en cours à intervalles réguliers
![Page 6: 1 TransactionsTransactions Witold Litwin. 2 IntroductionIntroduction n Beaucoup d'opérations sur une BD doivent être atomiques: n Transfert d'argent entre](https://reader036.vdocuments.site/reader036/viewer/2022062621/551d9d85497959293b8c07c5/html5/thumbnails/6.jpg)
6
Et si la casse arrive...Et si la casse arrive...Et si la casse arrive...Et si la casse arrive...
On ferme l'accès à la baseOn ferme l'accès à la base On reprend le dernier checkpointOn reprend le dernier checkpoint On retrouve sur le journal toutes les On retrouve sur le journal toutes les
transactions transactions commises commises aprèsaprès– commencées avant ou après le checkpointcommencées avant ou après le checkpoint
On reexécute chronologiquement ces On reexécute chronologiquement ces transactionstransactions– et seulement ces transactionset seulement ces transactions
On rouvre la base aux usagersOn rouvre la base aux usagers
![Page 7: 1 TransactionsTransactions Witold Litwin. 2 IntroductionIntroduction n Beaucoup d'opérations sur une BD doivent être atomiques: n Transfert d'argent entre](https://reader036.vdocuments.site/reader036/viewer/2022062621/551d9d85497959293b8c07c5/html5/thumbnails/7.jpg)
7
Transactions non-ACIDTransactions non-ACIDTransactions non-ACIDTransactions non-ACID
Transactions imbriquéesTransactions imbriquées Transactions longuesTransactions longues Transactions distribuéesTransactions distribuées
– exigent un commitement à 2 phases (2 PC)exigent un commitement à 2 phases (2 PC)
![Page 8: 1 TransactionsTransactions Witold Litwin. 2 IntroductionIntroduction n Beaucoup d'opérations sur une BD doivent être atomiques: n Transfert d'argent entre](https://reader036.vdocuments.site/reader036/viewer/2022062621/551d9d85497959293b8c07c5/html5/thumbnails/8.jpg)
8
ConcurrenceConcurrenceConcurrenceConcurrence
Les BDs étant partagées, les transactions Les BDs étant partagées, les transactions pourraient être exécutées:pourraient être exécutées:– l'une après l'autrel'une après l'autre– simultanémentsimultanément
» meilleures performancesmeilleures performances
» possibilités d'inconsistances dans la basepossibilités d'inconsistances dans la base
Théorie de concurrence analyse les Théorie de concurrence analyse les problèmes d'accès simultanéproblèmes d'accès simultané
![Page 9: 1 TransactionsTransactions Witold Litwin. 2 IntroductionIntroduction n Beaucoup d'opérations sur une BD doivent être atomiques: n Transfert d'argent entre](https://reader036.vdocuments.site/reader036/viewer/2022062621/551d9d85497959293b8c07c5/html5/thumbnails/9.jpg)
9
ExempleExempleExempleExemple
A = 100
R1 (A) R2 (A)
A := A +100
W1 (A) A = 200
A := A +200
La base
![Page 10: 1 TransactionsTransactions Witold Litwin. 2 IntroductionIntroduction n Beaucoup d'opérations sur une BD doivent être atomiques: n Transfert d'argent entre](https://reader036.vdocuments.site/reader036/viewer/2022062621/551d9d85497959293b8c07c5/html5/thumbnails/10.jpg)
10
ExempleExempleExempleExemple
A = 100
R1 (A) R2 (A)
A := A +100
W1 (A) A = 200
A := A +200
W2 (A)A = 300
La base
![Page 11: 1 TransactionsTransactions Witold Litwin. 2 IntroductionIntroduction n Beaucoup d'opérations sur une BD doivent être atomiques: n Transfert d'argent entre](https://reader036.vdocuments.site/reader036/viewer/2022062621/551d9d85497959293b8c07c5/html5/thumbnails/11.jpg)
11
Gestion de la concurrenceGestion de la concurrenceGestion de la concurrenceGestion de la concurrence
Verrouillage exclusifVerrouillage exclusif– toute opération d'une transaction T sur une donnée toute opération d'une transaction T sur une donnée
D ne peut fait que si T obtient un D ne peut fait que si T obtient un verrouverrou sur D sur D– si D est déjà verrouillé par T' quand T le demande, si D est déjà verrouillé par T' quand T le demande,
alors T est mis en attentealors T est mis en attente Ce type de verrou est dit Ce type de verrou est dit exclusifexclusif On vient de définir un On vient de définir un protocoleprotocole de gestion de de gestion de
concurrenceconcurrence– Protocole 1Protocole 1
![Page 12: 1 TransactionsTransactions Witold Litwin. 2 IntroductionIntroduction n Beaucoup d'opérations sur une BD doivent être atomiques: n Transfert d'argent entre](https://reader036.vdocuments.site/reader036/viewer/2022062621/551d9d85497959293b8c07c5/html5/thumbnails/12.jpg)
12
ExempleExempleExempleExemple
A = 100
R1 (A)
A := A +100
W1 (A) A = 200
La base
L (A)L (A)
U (A)
![Page 13: 1 TransactionsTransactions Witold Litwin. 2 IntroductionIntroduction n Beaucoup d'opérations sur une BD doivent être atomiques: n Transfert d'argent entre](https://reader036.vdocuments.site/reader036/viewer/2022062621/551d9d85497959293b8c07c5/html5/thumbnails/13.jpg)
13
ExempleExempleExempleExemple
A = 100
R1 (A)
R2 (A)
A := A +100
W1 (A) A = 200
A := A +200
La base
L (A)L (A)
U (A)
A = 400
![Page 14: 1 TransactionsTransactions Witold Litwin. 2 IntroductionIntroduction n Beaucoup d'opérations sur une BD doivent être atomiques: n Transfert d'argent entre](https://reader036.vdocuments.site/reader036/viewer/2022062621/551d9d85497959293b8c07c5/html5/thumbnails/14.jpg)
14
Verrouillage partagéVerrouillage partagéVerrouillage partagéVerrouillage partagé
les lectures ont les les lectures ont les verrous partagésverrous partagés– T et T' peuvent T et T' peuvent lirelire D simultanément D simultanément
les écritures doivent obtenir les les écritures doivent obtenir les verrous exclusifsverrous exclusifs– si D est déjà verrouillé par T', alors T est mis en attentesi D est déjà verrouillé par T', alors T est mis en attente
Avantage:Avantage:– meilleures performances, mais...meilleures performances, mais...
C'est la méthode la plus usitéC'est la méthode la plus usité– Protocole 2Protocole 2
![Page 15: 1 TransactionsTransactions Witold Litwin. 2 IntroductionIntroduction n Beaucoup d'opérations sur une BD doivent être atomiques: n Transfert d'argent entre](https://reader036.vdocuments.site/reader036/viewer/2022062621/551d9d85497959293b8c07c5/html5/thumbnails/15.jpg)
15
ExempleExempleExempleExemple
A = 100R1 (A)
R2 (A)A := A +100
A := A +200
La base
Lr (A)Lr (A)
Lw (A)
![Page 16: 1 TransactionsTransactions Witold Litwin. 2 IntroductionIntroduction n Beaucoup d'opérations sur une BD doivent être atomiques: n Transfert d'argent entre](https://reader036.vdocuments.site/reader036/viewer/2022062621/551d9d85497959293b8c07c5/html5/thumbnails/16.jpg)
16
ExempleExempleExempleExemple
A = 100R1 (A)
R2 (A)A := A +100
A := A +200
La base
Lr (A)Lr (A)
Lw (A)Lw (A)
![Page 17: 1 TransactionsTransactions Witold Litwin. 2 IntroductionIntroduction n Beaucoup d'opérations sur une BD doivent être atomiques: n Transfert d'argent entre](https://reader036.vdocuments.site/reader036/viewer/2022062621/551d9d85497959293b8c07c5/html5/thumbnails/17.jpg)
17
Verrou mortelVerrou mortelVerrou mortelVerrou mortel
Les transactions s'attendent mutuellement Les transactions s'attendent mutuellement (deadlock)(deadlock)
Solution typique:Solution typique:– avorter une de transactions (la avorter une de transactions (la victimevictime))– le choix est fait par le le choix est fait par le gestionnaire des verrousgestionnaire des verrous
(lock manager)(lock manager)
![Page 18: 1 TransactionsTransactions Witold Litwin. 2 IntroductionIntroduction n Beaucoup d'opérations sur une BD doivent être atomiques: n Transfert d'argent entre](https://reader036.vdocuments.site/reader036/viewer/2022062621/551d9d85497959293b8c07c5/html5/thumbnails/18.jpg)
18
ExempleExempleExempleExemple
A = 100R1 (A)
R2 (A)A := A +100
A := A +200
A = 300
La base
Lr (A)Lr (A)
Lw (A)Lw (A)
A
W2 (A)
![Page 19: 1 TransactionsTransactions Witold Litwin. 2 IntroductionIntroduction n Beaucoup d'opérations sur une BD doivent être atomiques: n Transfert d'argent entre](https://reader036.vdocuments.site/reader036/viewer/2022062621/551d9d85497959293b8c07c5/html5/thumbnails/19.jpg)
19
A = 300R1 (A)
A := A +100
A = 400
La base
Lr (A)
Lw (A)
W1 (A)
![Page 20: 1 TransactionsTransactions Witold Litwin. 2 IntroductionIntroduction n Beaucoup d'opérations sur une BD doivent être atomiques: n Transfert d'argent entre](https://reader036.vdocuments.site/reader036/viewer/2022062621/551d9d85497959293b8c07c5/html5/thumbnails/20.jpg)
20
Les exécutions correctesLes exécutions correctesLes exécutions correctesLes exécutions correctes
SérialisabilitéSérialisabilitéLes exécutions concurrentes sont correctes ssi
leur résultat est équivalent à celui d'une exécution sérielle
Le critère naturel et le plus populaireLe critère naturel et le plus populaire– débattu néanmoins pour les systèmes débattu néanmoins pour les systèmes
multibases distribuésmultibases distribués» pourquoi ?pourquoi ?
![Page 21: 1 TransactionsTransactions Witold Litwin. 2 IntroductionIntroduction n Beaucoup d'opérations sur une BD doivent être atomiques: n Transfert d'argent entre](https://reader036.vdocuments.site/reader036/viewer/2022062621/551d9d85497959293b8c07c5/html5/thumbnails/21.jpg)
21
T1
T3x := x+2
x := x*2
x := x/2
x := 10 x := ?
T2
![Page 22: 1 TransactionsTransactions Witold Litwin. 2 IntroductionIntroduction n Beaucoup d'opérations sur une BD doivent être atomiques: n Transfert d'argent entre](https://reader036.vdocuments.site/reader036/viewer/2022062621/551d9d85497959293b8c07c5/html5/thumbnails/22.jpg)
22
T1
T2
T3
T1 T2 T3
T1T2 T3
T1 T2T3
T3 T1 T2
Exécutions sérielles équivalentes
x := x+2
x := x*2
x := x/2
x := 10 x := ?
![Page 23: 1 TransactionsTransactions Witold Litwin. 2 IntroductionIntroduction n Beaucoup d'opérations sur une BD doivent être atomiques: n Transfert d'argent entre](https://reader036.vdocuments.site/reader036/viewer/2022062621/551d9d85497959293b8c07c5/html5/thumbnails/23.jpg)
23
Les verrous / la sérialisabilité Les verrous / la sérialisabilité Les verrous / la sérialisabilité Les verrous / la sérialisabilité
Problème de "fantôme"Problème de "fantôme"– existe pour les deux protocoles: 1 et 2existe pour les deux protocoles: 1 et 2
102030405060
T1R
L[R(1)], S := S + R(1), U[R(1)]L[R(2)], S := S + R(2), U[R(2)]L[R(3)], S := S + R(3), U[R(3)]........L[R(6)], S := S + R(6), U[R(6)]
T2
L[R((3) R(3) := R(3) + 5, U[R(3)]L[R((6) R(6) := R(6) - 5, U[R(6)]
• Le résultat de T1 ? Temps
![Page 24: 1 TransactionsTransactions Witold Litwin. 2 IntroductionIntroduction n Beaucoup d'opérations sur une BD doivent être atomiques: n Transfert d'argent entre](https://reader036.vdocuments.site/reader036/viewer/2022062621/551d9d85497959293b8c07c5/html5/thumbnails/24.jpg)
24
Verrouillage à 2 PhasesVerrouillage à 2 PhasesVerrouillage à 2 PhasesVerrouillage à 2 Phases
1-ère phase : tous les verrouillages2-ème phase : tous les déverouillages
2-ème phase est le +souvent après lecommit (strict 2-PL). Pourquoi ?
Problème:Verrou mortelMal adapté aux transactions longues
les estampilles semblent meilleurs dans ce but
![Page 25: 1 TransactionsTransactions Witold Litwin. 2 IntroductionIntroduction n Beaucoup d'opérations sur une BD doivent être atomiques: n Transfert d'argent entre](https://reader036.vdocuments.site/reader036/viewer/2022062621/551d9d85497959293b8c07c5/html5/thumbnails/25.jpg)
25
L(a)
U(b)
U(a,b)
L(a)
L(b)
U(a)
L(b)
CC
L(a)
U(a,b)
C
L(b)
Schedules 2PLSchedules 2PL
![Page 26: 1 TransactionsTransactions Witold Litwin. 2 IntroductionIntroduction n Beaucoup d'opérations sur une BD doivent être atomiques: n Transfert d'argent entre](https://reader036.vdocuments.site/reader036/viewer/2022062621/551d9d85497959293b8c07c5/html5/thumbnails/26.jpg)
26
L(a)
U(b)
U(a,b)
L(a)
L(b)
U(a)
L(b)
CC
L(a)
U(a,b)
C
L(b)
U(b)
L(a)
L(b)
C
U(a)
![Page 27: 1 TransactionsTransactions Witold Litwin. 2 IntroductionIntroduction n Beaucoup d'opérations sur une BD doivent être atomiques: n Transfert d'argent entre](https://reader036.vdocuments.site/reader036/viewer/2022062621/551d9d85497959293b8c07c5/html5/thumbnails/27.jpg)
27
Problème de "fantôme"Problème de "fantôme"Problème de "fantôme"Problème de "fantôme"
Est-ce que l'exécution discutée est conforme Est-ce que l'exécution discutée est conforme à 2PL ?à 2PL ?
Sinon comment la rendre conforme ?Sinon comment la rendre conforme ? Le résultat, serait-il alors correct ?Le résultat, serait-il alors correct ?
![Page 28: 1 TransactionsTransactions Witold Litwin. 2 IntroductionIntroduction n Beaucoup d'opérations sur une BD doivent être atomiques: n Transfert d'argent entre](https://reader036.vdocuments.site/reader036/viewer/2022062621/551d9d85497959293b8c07c5/html5/thumbnails/28.jpg)
28
Dans les exemples on a verrouillé des tuplesDans les exemples on a verrouillé des tuples Une table peut contenir des millions de Une table peut contenir des millions de
tuplestuples 2-PL peut alors conduire à la gestion de 2-PL peut alors conduire à la gestion de
millions de verrousmillions de verrous Est-ce la solution la plus performante ?Est-ce la solution la plus performante ? Pas toujoursPas toujours
Granularité de verrousGranularité de verrousGranularité de verrousGranularité de verrous
![Page 29: 1 TransactionsTransactions Witold Litwin. 2 IntroductionIntroduction n Beaucoup d'opérations sur une BD doivent être atomiques: n Transfert d'argent entre](https://reader036.vdocuments.site/reader036/viewer/2022062621/551d9d85497959293b8c07c5/html5/thumbnails/29.jpg)
29
Granularité de verrousGranularité de verrousGranularité de verrousGranularité de verrous
attributattribut tupletuple pagepage table définie par un predicattable définie par un predicat table de basetable de base base de donnéesbase de données
– impossible d'inserer/supprimer MAJ un tuple d'une page impossible d'inserer/supprimer MAJ un tuple d'une page ou table ou base vérouilléeou table ou base vérouillée
![Page 30: 1 TransactionsTransactions Witold Litwin. 2 IntroductionIntroduction n Beaucoup d'opérations sur une BD doivent être atomiques: n Transfert d'argent entre](https://reader036.vdocuments.site/reader036/viewer/2022062621/551d9d85497959293b8c07c5/html5/thumbnails/30.jpg)
30
Granularité de verrousGranularité de verrousGranularité de verrousGranularité de verrous
Granularité fine offre + de concurrenceGranularité fine offre + de concurrence Mais aussi plus délicats à gérerMais aussi plus délicats à gérer
– tables de verrous + grandestables de verrous + grandes– + de possibilités de verrou mortel+ de possibilités de verrou mortel
En pratique en général on verrouilleEn pratique en général on verrouille– tuplestuples– pagespages
Elargissement d'un verrou (lock escalation) :Elargissement d'un verrou (lock escalation) :– un verrou fin est remplacé par un verrou moins finun verrou fin est remplacé par un verrou moins fin
– tuple -> tabletuple -> table
![Page 31: 1 TransactionsTransactions Witold Litwin. 2 IntroductionIntroduction n Beaucoup d'opérations sur une BD doivent être atomiques: n Transfert d'argent entre](https://reader036.vdocuments.site/reader036/viewer/2022062621/551d9d85497959293b8c07c5/html5/thumbnails/31.jpg)
31
Niveaux d'isolationNiveaux d'isolationNiveaux d'isolationNiveaux d'isolation
Sérialisabilité totale coûte cherSérialisabilité totale coûte cher N'est pas nécessaires pour toutes transactionsN'est pas nécessaires pour toutes transactions Les SGBD et SQL-3 offrent dès lors différents Les SGBD et SQL-3 offrent dès lors différents
niveaux d'isolation niveaux d'isolation de transactionsde transactions– à utiliser avec des précautionsà utiliser avec des précautions
![Page 32: 1 TransactionsTransactions Witold Litwin. 2 IntroductionIntroduction n Beaucoup d'opérations sur une BD doivent être atomiques: n Transfert d'argent entre](https://reader036.vdocuments.site/reader036/viewer/2022062621/551d9d85497959293b8c07c5/html5/thumbnails/32.jpg)
32
Niveaux d'isolationNiveaux d'isolationNiveaux d'isolationNiveaux d'isolation
LongsW-locksde tuples
LongsR-locks de
tuples
LongsR et W-locksde predicats
R-Uncommitted(dirty reads)
N.A(R-only) N N
R-Committed(cursor stability) O N N
R- Repeatable O O NSerializable O O O
Les locks courts (short-term locks), latches, sont lâchés tout-de-suiteLes locks longs sont maintenus jusqu'à la fin de la transaction
dégréede concurrence
![Page 33: 1 TransactionsTransactions Witold Litwin. 2 IntroductionIntroduction n Beaucoup d'opérations sur une BD doivent être atomiques: n Transfert d'argent entre](https://reader036.vdocuments.site/reader036/viewer/2022062621/551d9d85497959293b8c07c5/html5/thumbnails/33.jpg)
33
Read UncommittedRead UncommittedRead UncommittedRead Uncommitted
exec sql set transaction exec sql set transaction read uncommittedread uncommitted En SQL-3, une telle transaction est par défaut En SQL-3, une telle transaction est par défaut Read OnlyRead Only
– pour prévenir les MAJs perduespour prévenir les MAJs perdues» les Write ne sont possibles que par une transaction de les Write ne sont possibles que par une transaction de
niveau R-Committed au moinsniveau R-Committed au moins» une telle transaction est par défaut Read Write une telle transaction est par défaut Read Write
– sauf une déclaration Read Only dans l'ordre Set sauf une déclaration Read Only dans l'ordre Set TransactionTransaction
fausses valeurs de fonctions agrégat. sont possiblesfausses valeurs de fonctions agrégat. sont possibles valeurs erronées dérivées de celles non-commises peuvent se valeurs erronées dérivées de celles non-commises peuvent se
propager entre les transactions propager entre les transactions
![Page 34: 1 TransactionsTransactions Witold Litwin. 2 IntroductionIntroduction n Beaucoup d'opérations sur une BD doivent être atomiques: n Transfert d'argent entre](https://reader036.vdocuments.site/reader036/viewer/2022062621/551d9d85497959293b8c07c5/html5/thumbnails/34.jpg)
34
Read CommittedRead CommittedRead CommittedRead Committed
exec sql set transaction exec sql set transaction read committedread committed Seules les valeurs commises sont lues Seules les valeurs commises sont lues
– en utilisent R-latches de tuplesen utilisent R-latches de tuples Les écritures utilisent W-locks de tuplesLes écritures utilisent W-locks de tuples Les lectures successives d'une donnée positionnée par le Les lectures successives d'une donnée positionnée par le
curseur lisent toujours une même valeurcurseur lisent toujours une même valeur– d'où le nom d'où le nom cursor stabilitycursor stability
Un retour du curseur sur une donnée dans une même Un retour du curseur sur une donnée dans une même transaction peut par contre lire une valeur différentetransaction peut par contre lire une valeur différente
Il n'y a pas de MAJ perduesIl n'y a pas de MAJ perdues
– sauf si on le veut profondémentsauf si on le veut profondément Le calcul d'une fonction agrégat peut être erronéeLe calcul d'une fonction agrégat peut être erronée
![Page 35: 1 TransactionsTransactions Witold Litwin. 2 IntroductionIntroduction n Beaucoup d'opérations sur une BD doivent être atomiques: n Transfert d'argent entre](https://reader036.vdocuments.site/reader036/viewer/2022062621/551d9d85497959293b8c07c5/html5/thumbnails/35.jpg)
35
Pas de MAJ perduePas de MAJ perduePas de MAJ perduePas de MAJ perdue
branch est la clébranch est la clé Le tuple '123' est verrouillé jusqu'à commitLe tuple '123' est verrouillé jusqu'à commit
exec sql declare cursor d for exec sql declare cursor d for
select bal from acc where branch = '123' for update of bal ;select bal from acc where branch = '123' for update of bal ;
exec sql set transaction exec sql set transaction read committedread committed ; ;
exec sql open d ;exec sql open d ;
exec sql exec sql fetchfetch d into :bal ; d into :bal ;
bal = bal +5 ;bal = bal +5 ; /* lang. source/* lang. source
exec sql set bal = :bal where current of d ;exec sql set bal = :bal where current of d ;
exec sql close d ;exec sql close d ;
exec sql commit work ;exec sql commit work ;
![Page 36: 1 TransactionsTransactions Witold Litwin. 2 IntroductionIntroduction n Beaucoup d'opérations sur une BD doivent être atomiques: n Transfert d'argent entre](https://reader036.vdocuments.site/reader036/viewer/2022062621/551d9d85497959293b8c07c5/html5/thumbnails/36.jpg)
36
MAJ perdue MAJ perdue MAJ perdue MAJ perdue
exec sql set transaction exec sql set transaction read committedread committed ; ;
exec sql select bal into :bal from acc where branch = '123' ;exec sql select bal into :bal from acc where branch = '123' ;
bal = bal +5 ;bal = bal +5 ; /* lang. source/* lang. source
exec sql update acc set bal = :bal where branch = '123' ;exec sql update acc set bal = :bal where branch = '123' ;
exec sql commit work ;exec sql commit work ;
Pourquoi ? Pourquoi ?
![Page 37: 1 TransactionsTransactions Witold Litwin. 2 IntroductionIntroduction n Beaucoup d'opérations sur une BD doivent être atomiques: n Transfert d'argent entre](https://reader036.vdocuments.site/reader036/viewer/2022062621/551d9d85497959293b8c07c5/html5/thumbnails/37.jpg)
37
Read RepeatableRead RepeatableRead RepeatableRead Repeatable
exec sql set transaction exec sql set transaction read repeatableread repeatable
On utilise R-locks et W-locks de tuplesOn utilise R-locks et W-locks de tuples Les lectures d'une donnée peuvent être répétées Les lectures d'une donnée peuvent être répétées
dans une transactiondans une transaction Une fonction agrégat peut-être correctement Une fonction agrégat peut-être correctement
évaluéeévaluée Pas de MAJ perduesPas de MAJ perdues
![Page 38: 1 TransactionsTransactions Witold Litwin. 2 IntroductionIntroduction n Beaucoup d'opérations sur une BD doivent être atomiques: n Transfert d'argent entre](https://reader036.vdocuments.site/reader036/viewer/2022062621/551d9d85497959293b8c07c5/html5/thumbnails/38.jpg)
38
MAJ OKMAJ OKMAJ OKMAJ OK
exec sql set transaction exec sql set transaction read repeatableread repeatable ; ;
exec sql select bal into :bal from acc where branch = '123' ;exec sql select bal into :bal from acc where branch = '123' ;
bal = bal +5 ;bal = bal +5 ; /* lang. source/* lang. source
exec sql update acc set bal = :bal where branch = '123' ;exec sql update acc set bal = :bal where branch = '123' ;
exec sql commit work ;exec sql commit work ;
Pourquoi ? Pourquoi ?
![Page 39: 1 TransactionsTransactions Witold Litwin. 2 IntroductionIntroduction n Beaucoup d'opérations sur une BD doivent être atomiques: n Transfert d'argent entre](https://reader036.vdocuments.site/reader036/viewer/2022062621/551d9d85497959293b8c07c5/html5/thumbnails/39.jpg)
39
Read RepeatableRead Repeatable(problème)(problème)
Read RepeatableRead Repeatable(problème)(problème)
Une insertion durant l'évaluation d'une fonction agrégat Une insertion durant l'évaluation d'une fonction agrégat F F est possibleest possible
– le tuple correspondant n'est pas verrouilléle tuple correspondant n'est pas verrouillé
– une deuxième évaluation de une deuxième évaluation de F dans une même transaction F dans une même transaction peut peut donner un résultat différent donner un résultat différent
Ces exécutions seraient non-sérialisablesCes exécutions seraient non-sérialisables– Pourquoi ?Pourquoi ?
Considère que chaque transaction doit lire un tuple avec Considère que chaque transaction doit lire un tuple avec bal_totbal_tot fait par fait par une autre transaction et signaler si une autre transaction et signaler si bal_totalbal_total n'est pas le résultat de n'est pas le résultat de FF
– alors on pourrait avoir une fausse alerte alors on pourrait avoir une fausse alerte
– Pourquoi ?Pourquoi ?
![Page 40: 1 TransactionsTransactions Witold Litwin. 2 IntroductionIntroduction n Beaucoup d'opérations sur une BD doivent être atomiques: n Transfert d'argent entre](https://reader036.vdocuments.site/reader036/viewer/2022062621/551d9d85497959293b8c07c5/html5/thumbnails/40.jpg)
40
SerializableSerializableSerializableSerializable
exec sql set transaction exec sql set transaction serializableserializable on utilise des on utilise des verrous prédicatifsverrous prédicatifs
» predicate lockpredicate lock
– un tel verrou s'applique à tous les tuples un tel verrou s'applique à tous les tuples concernés par une requêteconcernés par une requête
» même ceux non-existant encoremême ceux non-existant encore
l'anomalie de bal_tot devient impossiblel'anomalie de bal_tot devient impossible– on violerait le verrous prédicatifson violerait le verrous prédicatifs
on obtient la sérialisation dans tous les cason obtient la sérialisation dans tous les cas
![Page 41: 1 TransactionsTransactions Witold Litwin. 2 IntroductionIntroduction n Beaucoup d'opérations sur une BD doivent être atomiques: n Transfert d'argent entre](https://reader036.vdocuments.site/reader036/viewer/2022062621/551d9d85497959293b8c07c5/html5/thumbnails/41.jpg)
41
Predicate locks / Tuple lock Predicate locks / Tuple lock Predicate locks / Tuple lock Predicate locks / Tuple lock
Le predicattuples
verrouillées
![Page 42: 1 TransactionsTransactions Witold Litwin. 2 IntroductionIntroduction n Beaucoup d'opérations sur une BD doivent être atomiques: n Transfert d'argent entre](https://reader036.vdocuments.site/reader036/viewer/2022062621/551d9d85497959293b8c07c5/html5/thumbnails/42.jpg)
42
Predicate locks / Tuple lock Predicate locks / Tuple lock Predicate locks / Tuple lock Predicate locks / Tuple lock
Le predicattuples
verrouillées
![Page 43: 1 TransactionsTransactions Witold Litwin. 2 IntroductionIntroduction n Beaucoup d'opérations sur une BD doivent être atomiques: n Transfert d'argent entre](https://reader036.vdocuments.site/reader036/viewer/2022062621/551d9d85497959293b8c07c5/html5/thumbnails/43.jpg)
43
Predicate locks / Tuple lock Predicate locks / Tuple lock Predicate locks / Tuple lock Predicate locks / Tuple lock
Le verroupredicatif
![Page 44: 1 TransactionsTransactions Witold Litwin. 2 IntroductionIntroduction n Beaucoup d'opérations sur une BD doivent être atomiques: n Transfert d'argent entre](https://reader036.vdocuments.site/reader036/viewer/2022062621/551d9d85497959293b8c07c5/html5/thumbnails/44.jpg)
44
Predicate locks / Tuple lock Predicate locks / Tuple lock Predicate locks / Tuple lock Predicate locks / Tuple lock
Le verroupredicatif
![Page 45: 1 TransactionsTransactions Witold Litwin. 2 IntroductionIntroduction n Beaucoup d'opérations sur une BD doivent être atomiques: n Transfert d'argent entre](https://reader036.vdocuments.site/reader036/viewer/2022062621/551d9d85497959293b8c07c5/html5/thumbnails/45.jpg)
45
SerializableSerializableSerializableSerializable
Les SGBD actuels n'offrent pas de verrous Les SGBD actuels n'offrent pas de verrous prédicatifsprédicatifs– SQL-3 est en avanceSQL-3 est en avance
On peut néanmoins verrouiller toute la tableOn peut néanmoins verrouiller toute la table Le cas d'anomalie citée est fort rare en Le cas d'anomalie citée est fort rare en
pratiquepratique
![Page 46: 1 TransactionsTransactions Witold Litwin. 2 IntroductionIntroduction n Beaucoup d'opérations sur une BD doivent être atomiques: n Transfert d'argent entre](https://reader036.vdocuments.site/reader036/viewer/2022062621/551d9d85497959293b8c07c5/html5/thumbnails/46.jpg)
46
Concurrence sous MsAccessConcurrence sous MsAccessConcurrence sous MsAccessConcurrence sous MsAccess Conçue pour les transactions longues (interactives)Conçue pour les transactions longues (interactives) Trois modes d'accès : positionnement, édit, MAJTrois modes d'accès : positionnement, édit, MAJ
– ces deux dernières sont symb. par le crayonces deux dernières sont symb. par le crayon On utilise des loquets et des verrous (et estampilles)On utilise des loquets et des verrous (et estampilles)
– partagés et exclusifspartagés et exclusifs
Trois granularités Trois granularités – page (n * 2048 octets)page (n * 2048 octets)– tabletable– basebase
NotificationsNotifications– d'une MAJ concurrente faited'une MAJ concurrente faite– d'un verrou en écriture en coursd'un verrou en écriture en cours
Pas d'attentes, mais des relances Pas d'attentes, mais des relances RafraîchissementsRafraîchissements
![Page 47: 1 TransactionsTransactions Witold Litwin. 2 IntroductionIntroduction n Beaucoup d'opérations sur une BD doivent être atomiques: n Transfert d'argent entre](https://reader036.vdocuments.site/reader036/viewer/2022062621/551d9d85497959293b8c07c5/html5/thumbnails/47.jpg)
47
MsAccessMsAccessMsAccessMsAccess Mode pessimiste (Edited Records)Mode pessimiste (Edited Records)
– Le positionnement sur un tuple (la lecture) crée un verrous LLe positionnement sur un tuple (la lecture) crée un verrous Lrr de la de la pagepage
– La demande d'édition signifie une demande d'un verrou LLa demande d'édition signifie une demande d'un verrou Lww sur la sur la pagepage
– obtenu, sauf si un autre Lobtenu, sauf si un autre Lww est en cours est en cours» alors il y a une notification (err. 3260 sous Access B.)alors il y a une notification (err. 3260 sous Access B.)» et, si on veut, jusqu'à 10 re-essais automatiqueset, si on veut, jusqu'à 10 re-essais automatiques
– "Retry Interval" est réglable entre 0 - 1000 msec"Retry Interval" est réglable entre 0 - 1000 msec– défaut = 250 msec (les options multiusager)défaut = 250 msec (les options multiusager)
– si la page a été modifiée depuis Lsi la page a été modifiée depuis Lr r
» il y a une notification (err. 3197 sous Access B.)il y a une notification (err. 3197 sous Access B.)» on peut écraser la MAJ de l'autre, si on veut !on peut écraser la MAJ de l'autre, si on veut !
![Page 48: 1 TransactionsTransactions Witold Litwin. 2 IntroductionIntroduction n Beaucoup d'opérations sur une BD doivent être atomiques: n Transfert d'argent entre](https://reader036.vdocuments.site/reader036/viewer/2022062621/551d9d85497959293b8c07c5/html5/thumbnails/48.jpg)
48
MsAccess : mode optimisteMsAccess : mode optimisteMsAccess : mode optimisteMsAccess : mode optimiste Correspond au choix "No locks" dans les propriétés d'une Correspond au choix "No locks" dans les propriétés d'une
forme ou les optionsforme ou les options L'édition correspond à LL'édition correspond à Lrr seulement seulement
– donc plusieurs usagers peuvent éditer la même page et tupledonc plusieurs usagers peuvent éditer la même page et tuple la page est verrouillée en écriture seulement pour la MAJ la page est verrouillée en écriture seulement pour la MAJ
(durant la "update method"), par un (durant la "update method"), par un loquetloquet Si un conflit alorsSi un conflit alors
– la notification et les re-essais comme pour la méthode pessimiste la notification et les re-essais comme pour la méthode pessimiste (err. 3186 sous Access B.)(err. 3186 sous Access B.)
Si la page a été modifiée depuis LSi la page a été modifiée depuis Lrr par une autre transaction par une autre transaction– alors la notification d'une MAJ concurrentealors la notification d'une MAJ concurrente
![Page 49: 1 TransactionsTransactions Witold Litwin. 2 IntroductionIntroduction n Beaucoup d'opérations sur une BD doivent être atomiques: n Transfert d'argent entre](https://reader036.vdocuments.site/reader036/viewer/2022062621/551d9d85497959293b8c07c5/html5/thumbnails/49.jpg)
49
MsAccess :MsAccess : LLww d'une tabled'une tableMsAccess :MsAccess : LLww d'une tabled'une table
Mode "All records"Mode "All records" A utiliser prudemmentA utiliser prudemment L'accès est L'accès est refusérefusé si une autre transaction a si une autre transaction a
un Lun Lww même sur une page de la table même sur une page de la table– cas fort probable car les insertions ne se font cas fort probable car les insertions ne se font
que dans la que dans la dernièredernière page (Access 2) page (Access 2)
![Page 50: 1 TransactionsTransactions Witold Litwin. 2 IntroductionIntroduction n Beaucoup d'opérations sur une BD doivent être atomiques: n Transfert d'argent entre](https://reader036.vdocuments.site/reader036/viewer/2022062621/551d9d85497959293b8c07c5/html5/thumbnails/50.jpg)
50
Concurrence sous MsAcces Concurrence sous MsAcces Propriétés globales et particularitésPropriétés globales et particularitésConcurrence sous MsAcces Concurrence sous MsAcces Propriétés globales et particularitésPropriétés globales et particularités
Les requêtes ne tiennent pas compte de données non-Les requêtes ne tiennent pas compte de données non-commises (en édition)commises (en édition)
Les requêtes en lecture ne tiiennent pas compte de LLes requêtes en lecture ne tiiennent pas compte de Lww (posés (posés par d'autres transactions)par d'autres transactions)– particularité de MsAccess / SQL standardparticularité de MsAccess / SQL standard
2-PL doit être généré par l'usager2-PL doit être généré par l'usager– en Access Basicen Access Basic
Fantômes peuvent se créer Verrou mortel peut arriverVerrou mortel peut arriver
– mais pas dans les applications simplesmais pas dans les applications simples» l'accès à un tuple à la fois par une forme typiquel'accès à un tuple à la fois par une forme typique
![Page 51: 1 TransactionsTransactions Witold Litwin. 2 IntroductionIntroduction n Beaucoup d'opérations sur une BD doivent être atomiques: n Transfert d'argent entre](https://reader036.vdocuments.site/reader036/viewer/2022062621/551d9d85497959293b8c07c5/html5/thumbnails/51.jpg)
51
Concurrence sous MsAcces Concurrence sous MsAcces Propriétés globales et particularitésPropriétés globales et particularités
Concurrence sous MsAcces Concurrence sous MsAcces Propriétés globales et particularitésPropriétés globales et particularités
Il ya une possibilité de Il ya une possibilité de rafraîchissementrafraîchissement d'une forme ouverte à la d'une forme ouverte à la suite d'une MAJ concurrente suite d'une MAJ concurrente (donc ouvrez l'oeil !)(donc ouvrez l'oeil !)– toutes les 1 : 32 766 sec, défaut 60 sec toutes les 1 : 32 766 sec, défaut 60 sec
» voir les options multiusagervoir les options multiusager Les paramètres de gestion de la concurrence sont ceuxLes paramètres de gestion de la concurrence sont ceux
– par défaut ceux des optionspar défaut ceux des options– sauf si on a déclare un choix différentsauf si on a déclare un choix différent
» dans les propriétés d'une forme ou dans le programme Access Basicdans les propriétés d'une forme ou dans le programme Access Basic L'approche MsAccess mélange au niveau physique les verrous et les L'approche MsAccess mélange au niveau physique les verrous et les
estampilles estampilles – logiques ou peut-être physiques (voir plus loin)logiques ou peut-être physiques (voir plus loin)
Il y a une confusion regrettable de la terminologie de deux approches Il y a une confusion regrettable de la terminologie de deux approches
– les modes "optimiste" et "pessimiste"les modes "optimiste" et "pessimiste"
![Page 52: 1 TransactionsTransactions Witold Litwin. 2 IntroductionIntroduction n Beaucoup d'opérations sur une BD doivent être atomiques: n Transfert d'argent entre](https://reader036.vdocuments.site/reader036/viewer/2022062621/551d9d85497959293b8c07c5/html5/thumbnails/52.jpg)
52
MsAccessMsAccessConcurrence monousagerConcurrence monousager
MsAccessMsAccessConcurrence monousagerConcurrence monousager
Mode pessimisteMode pessimiste– même si l'on choisit "No Locks'"même si l'on choisit "No Locks'"
» donc pas de mode optimiste donc pas de mode optimiste – sans avertissementsans avertissement
Mode exclusif (All Records) possibleMode exclusif (All Records) possible– Aussi bien entre les formes qu'entre les tables et Aussi bien entre les formes qu'entre les tables et
entre les formes et les tablesentre les formes et les tables Les requêtes ne tiennent pas compte de Les requêtes ne tiennent pas compte de
données en éditiondonnées en édition
![Page 53: 1 TransactionsTransactions Witold Litwin. 2 IntroductionIntroduction n Beaucoup d'opérations sur une BD doivent être atomiques: n Transfert d'argent entre](https://reader036.vdocuments.site/reader036/viewer/2022062621/551d9d85497959293b8c07c5/html5/thumbnails/53.jpg)
53
Autres paradigmes pour gérer la Autres paradigmes pour gérer la concurrenceconcurrence
Autres paradigmes pour gérer la Autres paradigmes pour gérer la concurrenceconcurrence
Estampilles (timestamps)Estampilles (timestamps)
– toute transaction est estampillée avec son temps toute transaction est estampillée avec son temps t t de de commencementcommencement
» temps logique ou physiquetemps logique ou physique
– en principe, plus petit en principe, plus petit t t gagne s'il y a un conflitgagne s'il y a un conflit» l'autre transaction est avortée et relancéel'autre transaction est avortée et relancée
– peut-être indéfiniment (peut-être indéfiniment (livelocklivelock)) Avantages/désavantagesAvantages/désavantages
– pas d'interblocage (deadlock)pas d'interblocage (deadlock)
– performances en général moins bonnes que pour le performances en général moins bonnes que pour le verrouillageverrouillage
![Page 54: 1 TransactionsTransactions Witold Litwin. 2 IntroductionIntroduction n Beaucoup d'opérations sur une BD doivent être atomiques: n Transfert d'argent entre](https://reader036.vdocuments.site/reader036/viewer/2022062621/551d9d85497959293b8c07c5/html5/thumbnails/54.jpg)
54
Autres paradigmes pour gérer la Autres paradigmes pour gérer la concurrenceconcurrence
Autres paradigmes pour gérer la Autres paradigmes pour gérer la concurrenceconcurrence
Deux approchesDeux approches
– optimiste (meilleure quand peu d'écritures)optimiste (meilleure quand peu d'écritures)
» vérif. de conflits a posteriori à la fin de la vérif. de conflits a posteriori à la fin de la transactiontransaction
– phase de certificationphase de certification
» si l'exec. incorrecte, alors l'une ou les deux si l'exec. incorrecte, alors l'une ou les deux transactions sont avortéestransactions sont avortées
– pessimistepessimiste
» les conflits sont vérifiés tout de suiteles conflits sont vérifiés tout de suite
» les avortements sont faits aussitôtles avortements sont faits aussitôt
![Page 55: 1 TransactionsTransactions Witold Litwin. 2 IntroductionIntroduction n Beaucoup d'opérations sur une BD doivent être atomiques: n Transfert d'argent entre](https://reader036.vdocuments.site/reader036/viewer/2022062621/551d9d85497959293b8c07c5/html5/thumbnails/55.jpg)
55
2
2(b)
1(a)
1
1(b)
C
5
5(b)
C
...
Sch. Pessimiste
![Page 56: 1 TransactionsTransactions Witold Litwin. 2 IntroductionIntroduction n Beaucoup d'opérations sur une BD doivent être atomiques: n Transfert d'argent entre](https://reader036.vdocuments.site/reader036/viewer/2022062621/551d9d85497959293b8c07c5/html5/thumbnails/56.jpg)
56
2
2(b)
1(a)
1
1(b)
C
5
5(b)
C
...
1(a)
1
1(b)
2
2(b)
...AA
4(a)
4(b)
C
4
7
7(b)
C
...
Sch. Pessimiste Sch. Optimiste
![Page 57: 1 TransactionsTransactions Witold Litwin. 2 IntroductionIntroduction n Beaucoup d'opérations sur une BD doivent être atomiques: n Transfert d'argent entre](https://reader036.vdocuments.site/reader036/viewer/2022062621/551d9d85497959293b8c07c5/html5/thumbnails/57.jpg)
57
Dates de valeurDates de valeurDates de valeurDates de valeur Toute transaction Toute transaction T T est estampillée avec son temps-est estampillée avec son temps-
fin fin VV (date de valeur)(date de valeur) prévu prévu– en principe, le plus petit en principe, le plus petit V V gagne le conflitgagne le conflit
» l'autre transaction l'autre transaction T' T' est avortée et relancée ou est avortée et relancée ou mise en attentemise en attente
– selon le temps de conflit / à selon le temps de conflit / à V'V' Pas de dead-lock (Pas de dead-lock (pourquoi ?)pourquoi ?) Potentiellement + efficace que estampillesPotentiellement + efficace que estampilles
ApplicationsApplications– temps-réel (transactions avec deadlines)temps-réel (transactions avec deadlines)– systèmes multibasessystèmes multibases
» commit implicitecommit implicite
![Page 58: 1 TransactionsTransactions Witold Litwin. 2 IntroductionIntroduction n Beaucoup d'opérations sur une BD doivent être atomiques: n Transfert d'argent entre](https://reader036.vdocuments.site/reader036/viewer/2022062621/551d9d85497959293b8c07c5/html5/thumbnails/58.jpg)
58
6 (a)
V = 6
Dates de valeurDates de valeurDates de valeurDates de valeur
![Page 59: 1 TransactionsTransactions Witold Litwin. 2 IntroductionIntroduction n Beaucoup d'opérations sur une BD doivent être atomiques: n Transfert d'argent entre](https://reader036.vdocuments.site/reader036/viewer/2022062621/551d9d85497959293b8c07c5/html5/thumbnails/59.jpg)
59
V = 8
8 (b)
6 (a)
V = 6
6 (b)A
Dates de valeurDates de valeurDates de valeurDates de valeur
![Page 60: 1 TransactionsTransactions Witold Litwin. 2 IntroductionIntroduction n Beaucoup d'opérations sur une BD doivent être atomiques: n Transfert d'argent entre](https://reader036.vdocuments.site/reader036/viewer/2022062621/551d9d85497959293b8c07c5/html5/thumbnails/60.jpg)
60
V = 8
8 (b)
6 (a)
V = 6
6 (b)
C
V = 16
16 (b)
C
...
Relance
A
Dates de valeurDates de valeurDates de valeurDates de valeur
![Page 61: 1 TransactionsTransactions Witold Litwin. 2 IntroductionIntroduction n Beaucoup d'opérations sur une BD doivent être atomiques: n Transfert d'argent entre](https://reader036.vdocuments.site/reader036/viewer/2022062621/551d9d85497959293b8c07c5/html5/thumbnails/61.jpg)
61
6 (a)
V = 6
Dates de valeurDates de valeurDates de valeurDates de valeur
![Page 62: 1 TransactionsTransactions Witold Litwin. 2 IntroductionIntroduction n Beaucoup d'opérations sur une BD doivent être atomiques: n Transfert d'argent entre](https://reader036.vdocuments.site/reader036/viewer/2022062621/551d9d85497959293b8c07c5/html5/thumbnails/62.jpg)
62
6 (a)
V = 6
6 (b)
V = 13
13 (b)
... W
Dates de valeurDates de valeurDates de valeurDates de valeur
Attente
![Page 63: 1 TransactionsTransactions Witold Litwin. 2 IntroductionIntroduction n Beaucoup d'opérations sur une BD doivent être atomiques: n Transfert d'argent entre](https://reader036.vdocuments.site/reader036/viewer/2022062621/551d9d85497959293b8c07c5/html5/thumbnails/63.jpg)
63
6 (a)
V = 6
6 (b)
V = 13
13 (b)
...C
W
Dates de valeurDates de valeurDates de valeurDates de valeur
C
Attente
![Page 64: 1 TransactionsTransactions Witold Litwin. 2 IntroductionIntroduction n Beaucoup d'opérations sur une BD doivent être atomiques: n Transfert d'argent entre](https://reader036.vdocuments.site/reader036/viewer/2022062621/551d9d85497959293b8c07c5/html5/thumbnails/64.jpg)
64
COMMIT ?COMMIT ?COMMIT ?COMMIT ?