5. Accès concurrent et transactions
La notion d'accès concurrent décrit la situation où plusieurs applications veulent accéder à la même donnée en même temps. Par exemple, il est possible que deux applications bancaires accèdent simultanément au compte du même client (à la même donnée). Si les accès sont conflictuels, c'est-à-dire si au moins une des deux applications veut modifier le compte, le S.G.B.D. doit réagir afin d'éviter que la base de données se trouve dans un état incohérent à la fin des opérations. Le groupement d'opérations en transactions permet une vision cohérente des données.
Une transaction rassemble un ensemble d'opérations qui doivent toutes avoir la même vision d'une base de données. Ainsi, deux opérations successives de lecture du compte d'un client à l'intérieur d'une transaction doivent retourner la même valeur sans être dérangées par des opérations d'écriture par une autre transaction.
Les applications sont ainsi perçues par le S.G.B.D. comme un ensemble de transactions indépendantes auxquelles il doit fournir un accès cohérent aux données. Cette cohérence est formalisée par la notion de sérialisabilité.
L'exécution des opérations d'un ensemble de transactions est sérialisable s'il existe un ordre (partiel) < entre les transactions tel que toutes les opérations d'une transaction T qui sont en conflit avec les opérations d'une autre transaction T' < T, sont exécutées après ces opérations (deux opérations, comme on l'a dit, sont en conflit si elles accèdent à la même donnée et si au moins une opération est une écriture).
On peut montrer que chaque transaction dans un ensemble sérialisable peut posséder une vision différente des données, mais que chacune de ces visions est cohérente. Pour augmenter le débit transactionnel et réduire l'attente des utilisateurs, les opérations de transactions concurrentes sont interclassées, mais, pour une transaction, tout se passe comme si l'exécution des transactions concurrentes était séquentielle. Pour vérifier la sérialisabilité d […]
… pour nos abonnés, l'article se prolonge sur 9 pages…



