Transactions et concurrence
Les transactions protègent la cohérence des données quand plusieurs actions s’exécutent en parallèle.
Transaction et ACID
Définition
Une transaction est une suite d’opérations exécutées comme une seule unité.
- Elle commence, s’exécute, puis se valide ou s’annule.
- L’état final doit rester cohérent malgré les incidents.
ACID
- Atomicité : tout réussir ou tout annuler.
- Cohérence : les règles de la base restent vraies.
Mémo
ACID = le contrat de fiabilité des transactions.
Validation et annulation
Commit ou rollback
`commit`
- Valide la transaction.
- Rend l’effet définitif.
- Laisse la base dans l’état final prévu.
`rollback`
- Annule la transaction.
- Revient à l’état initial.
- Supprime les effets partiels.
Processus
- 1
Démarrer la transaction.
- 2
Exécuter les opérations.
Piège fréquent
Une erreur sur une opération peut imposer l’annulation complète
Concurrence d’accès et verrous
Idée générale
Verrous
| Type | Usage |
|---|---|
| Partagé | Lecture simultanée. |
| Exclusif | Écriture ou modification. |
| Conflit | Deux écritures concurrentes. |
Ordonnancement et isolation
Comparaison
Ordonnancement
- Ordre réel des opérations concurrentes.
- Le SGBD entrelace les actions.
- Le résultat doit rester cohérent.
Sérialisabilité
- Équivalent à un ordre séquentiel.
- Comportement sûr malgré l’entrelacement.
- Objectif de correction en concurrence.
Niveaux d’isolation
| Niveau | Effet |
|---|---|
| Faible | Plus rapide, plus d’anomalies. |
| Élevé | Moins d’anomalies, moins de performance. |
| Compromis | Choix entre sécurité et vitesse. |
Anomalies de lecture
Lecture sale, non répétable, fantôme
Lecture sale
- Lire une donnée non validée.
- Dépendre d’un état peut-être annulé.
Autres anomalies
- Lecture non répétable : la valeur change.
- Lecture fantôme : de nouvelles lignes apparaissent.
À retenir
- Plus l’isolation augmente, moins les anomalies apparaissent.
- Un niveau élevé n’est pas toujours le meilleur choix
Reprise sur panne
Reprise
- 1
Avant validation, la transaction est annulée.
- 2
Après validation, l’effet est conservé.
Mini-défi
- Définis
commiten une phrase. - Associe
rollbackà son effet.
Synthèse finale
- Une transaction protège la cohérence grâce à ACID.
- Verrous, isolation et ordonnancement gèrent la concurrence.
