122
Introduction pratique aux bases de données relationnelles
crédits. La contrainte d'intégrité est donc violée car la valeur b+200
n'a pas été prise en compte par la transaction TRX_1 à la lecture du
compte b.
Figure 4-6
Transactions
comptables
susceptibles de
provoquer des
conflits
Le journal garde la
trace des
opérations de
lecture et d’écriture
Comment détecter les situations de conflit ? L'analyse des
transactions révèle que des conflits ont lieu lorsque plusieurs
opérations concurrentes READ et WRITE portent sur un objet
spécifique qui peut être une valeur de donnée, un enregistrement, une
table, voire une base de données toute entière dans le cas extrême. La
granularité (la taille relative) de cet objet détermine dans quelle
mesure il est possible de paralléliser l'exécution des transactions
concernées. Plus la granularité d'un objet est grande, plus le degré de
parallélisation des transactions diminue, et vice versa. C'est pourquoi
toutes les opérations READ et WRITE des transactions portant sur un
objet déterminé x sont rapportées dans un journal (log, en anglais) de
cet objet, LOG(x). En d'autres termes, le journal LOG(x) contient la
chronologie des accès à un objet x en lecture et en écriture.
Temps
BEGIN_OF_TRX_1
READ(a)
a:=a+100
WRITE(a)
READ(b)
b:=b-100
WRITE(b)
END_OF_TRX_1
BEGIN_OF_TRX_2
READ(b)
b:=b+200
WRITE(b)
READ(c)
c:=c-200
WRITE(c)
END_OF_TRX_2
Introduction pratique aux bases de données relationnelles
crédits. La contrainte d'intégrité est donc violée car la valeur b+200
n'a pas été prise en compte par la transaction TRX_1 à la lecture du
compte b.
Figure 4-6
Transactions
comptables
susceptibles de
provoquer des
conflits
Le journal garde la
trace des
opérations de
lecture et d’écriture
Comment détecter les situations de conflit ? L'analyse des
transactions révèle que des conflits ont lieu lorsque plusieurs
opérations concurrentes READ et WRITE portent sur un objet
spécifique qui peut être une valeur de donnée, un enregistrement, une
table, voire une base de données toute entière dans le cas extrême. La
granularité (la taille relative) de cet objet détermine dans quelle
mesure il est possible de paralléliser l'exécution des transactions
concernées. Plus la granularité d'un objet est grande, plus le degré de
parallélisation des transactions diminue, et vice versa. C'est pourquoi
toutes les opérations READ et WRITE des transactions portant sur un
objet déterminé x sont rapportées dans un journal (log, en anglais) de
cet objet, LOG(x). En d'autres termes, le journal LOG(x) contient la
chronologie des accès à un objet x en lecture et en écriture.
Temps
BEGIN_OF_TRX_1
READ(a)
a:=a+100
WRITE(a)
READ(b)
b:=b-100
WRITE(b)
END_OF_TRX_1
BEGIN_OF_TRX_2
READ(b)
b:=b+200
WRITE(b)
READ(c)
c:=c-200
WRITE(c)
END_OF_TRX_2
