Isolation de transaction bd
Isolation de transaction L ? isolation est l ? une des quatre propriétés ACID elle permet d'isoler les opérations faites par une transaction de celles faite par d ? autres transactions simultanément sur les mêmes tables Exemple de problème qui peut avoir lieu quand deux transactions sont concurrentes Soit la table vols Vols Numéro de vol V V Nombre de places réservée X Y On considère une transaction T qui consiste à annuler N réservations sur un vol V et à réserver N places sur un vol V La transaction T réserve M places sur le vol V Donc le résultat attendu est X X-N M Ici nous montrons quelques problèmes qu ? on peut rencontrer lors de l ? exécution des transaction au même moment sur les mêmes données T - lire X - X X-N - écrire X - lire Y - Y Y N - écrire Y T - - - lire X - X X M - - - écrire X -- écrire X X-N est - perdu par T - Dans cette exemple les deux transactions modi ?ent le même enregistrement en parallèle sans tenir compte l'une de l'autre donc une sera écrasée et n'aura aucun e ?et Puisque T est la dernière transaction à modi ?er X la transaction T n ? est pas prise en compte Donc au lieu d ? avoir X-N M comme valeur ?nal de X on aura X M comme valeur ?nal Ce genre de problème est appelé perte d ? opération ? ou mise à jour perdu ? Les solutions mises en place pour résoudre ce problème CComme solution on peut utiliser un ordonnancement sériel c ? est-à-dire que les transactions ne s ? exécutent pas en parallèle donc aucune transaction ne peut gaspiller le travail de l ? autre Le problème qui se pose est le fait qu ? il n ? y a pas de parallélisme peut ralentir le travail C ? est pourquoi on utilise la ? ? notion de verrouillage qui permet d ? avoir plusieurs transactions en parallèle tout en évitant les opérations con ictuels comme T fait une écriture et T une lecture ou T et T font une écriture en même temps Un verrou est un mécanisme utilisé pour contrôler l ? accès à une même donnée par plusieurs utilisateurs Lorsqu ? il y a des transactions SQL les verrous sont nécessairement utilisés On utilise alors les instructions COMMIT et ROLLBACK pour libérer les verrous après avoir validé invalidé la suite d ? opérations SQL On utilise l ? instruction LOCK TABLES en SQL pour verrouiller une ou plusieurs tables On utilise UNLOCK TABLES pour déverrouiller une ou plusieurs tables On peut réaliser des verrous exclusifs EXCLUSIVE partagés SHARE que ce soit sur une table ou sur une ligne Niveaux d ? isolation Read Uncommited Les instructions peuvent lire les lignes qui ont été modi ?ées par d ? autres transactions mais pas encore validées Les valeurs des données peuvent être
Documents similaires










-
37
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Mai 28, 2021
- Catégorie Business / Finance
- Langue French
- Taille du fichier 32.7kB