1 C018SA-W1-S2 SEMAINE 1 : Transactions et concurrence BASES DE DONNÉES RELATIO
1 C018SA-W1-S2 SEMAINE 1 : Transactions et concurrence BASES DE DONNÉES RELATIONNELLES Benjamin Nguyen 1. Introduction : les transactions 2. Les problèmes 3. Sérialisabilité 4. Estampillage 5. Verrouillage à 2 phases 6. Degrés d'isolation dans les SGBD 7. Verrouillage hiérarchique 3 Problématique • Une base de données n’est pas interrogée et modifiée par un seul utilisateur. • Des problèmes d’incohérences peuvent apparaître lorsque plusieurs utilisateurs effectuent des opérations conflictuelles, ce qui peut être dû à un défaut d’isolation. 4 Problématique • Une base de données n’est pas interrogée et modifiée par un seul utilisateur. • Des problèmes d’incohérences peuvent apparaître lorsque plusieurs utilisateurs effectuent des opérations conflictuelles, ce qui peut être dû à un défaut d’isolation. • Quels sont ces incohérences ? • Quelles sont ces opérations ? • Comment éviter de se placer dans des situations d’opérations conflictuelles ? 5 Problématique • Des problèmes peuvent survenir lors de l’accès (lecture / écriture) concurrent sur des opérations successives • On aimerait que les opérations puissent se dérouler en isolation • Dans la suite : déterminer les opérations potentiellement conflictuelles entre deux transactions. Nous allons étudier les aspects isolation des transactions. 6 Exemple de Base de Données • 1 table : EMP (NE, Nom, Sal) • 3 nuplets : NE NOM SAL 0 Charlie 2000 1 Diana 2100 2 Eric 1600 7 Exemple de Base de Données • 1 table : EMP (NE, Nom, Sal) • 3 tuples : … et deux utilisateurs : Alice et Bob NE NOM SAL 0 Charlie 2000 1 Diana 2100 2 Eric 1600 8 Base de données SELECT E.SAL FROM EMP E WHERE E.NOM = « Charlie » Alice Bob NE NOM SAL 0 Charlie 2000 1 Diana 2100 2 Eric 1600 Lecture de nuplets distincts 9 Base de données SELECT E.SAL FROM EMP E WHERE E.NOM = « Charlie » Alice Bob « 2000 » Lecture de nuplets distincts NE NOM SAL 0 Charlie 2000 1 Diana 2100 2 Eric 1600 10 Base de données SELECT E.SAL FROM EMP E WHERE E.NOM = « Charlie » Alice Bob SELECT E.SAL FROM EMP E WHERE E.NOM = « Diana » « 2000 » Lecture de nuplets distincts NE NOM SAL 0 Charlie 2000 1 Diana 2100 2 Eric 1600 11 Base de données SELECT E.SAL FROM EMP E WHERE E.NOM = « Charlie » Alice Bob SELECT E.SAL FROM EMP E WHERE E.NOM = « Diana » « 2000 » « 2100 » Lecture de nuplets distincts NE NOM SAL 0 Charlie 2000 1 Diana 2100 2 Eric 1600 12 Base de données SELECT E.SAL FROM EMP E WHERE E.NOM = « Charlie » Alice Bob SELECT E.SAL FROM EMP E WHERE E.NOM = « Diana » « 2000 » « 2100 » Lecture de nuplets distincts NE NOM SAL 0 Charlie 2000 1 Diana 2100 2 Eric 1600 13 Base de données SELECT E.SAL FROM EMP E WHERE E.NOM = « Charlie » Alice Bob SELECT E.SAL FROM EMP E WHERE E.NOM = « Diana » « 2000 » « 2100 » PAS DE PROBLEME SI A ET B LISENT DES N-UPLETS DISTINCTS Lecture de nuplets distincts NE NOM SAL 0 Charlie 2000 1 Diana 2100 2 Eric 1600 14 Lecture de nuplets identiques Base de données SELECT E.SAL FROM EMP E WHERE E.NOM = « Charlie » Alice Bob NE NOM SAL 0 Charlie 2050 1 Diana 2100 2 Eric 1600 15 Base de données SELECT E.SAL FROM EMP E WHERE E.NOM = « Charlie » Alice Bob « 2000 » Lecture de nuplets identiques NE NOM SAL 0 Charlie 2050 1 Diana 2100 2 Eric 1600 16 Base de données SELECT E.SAL FROM EMP E WHERE E.NOM = « Charlie » Alice Bob SELECT E.SAL FROM EMP E WHERE E.NOM = « Charlie » « 2000 » Lecture de nuplets identiques NE NOM SAL 0 Charlie 2050 1 Diana 2100 2 Eric 1600 17 Base de données SELECT E.SAL FROM EMP E WHERE E.NOM = « Charlie » Alice Bob SELECT E.SAL FROM EMP E WHERE E.NOM = « Charlie » « 2000 » « 2000 » Lecture de nuplets identiques NE NOM SAL 0 Charlie 2050 1 Diana 2100 2 Eric 1600 18 Base de données SELECT E.SAL FROM EMP E WHERE E.NOM = « Charlie » Alice Bob SELECT E.SAL FROM EMP E WHERE E.NOM = « Charlie » « 2000 » « 2000 » Lecture de nuplets identiques NE NOM SAL 0 Charlie 2050 1 Diana 2100 2 Eric 1600 19 Base de données SELECT E.SAL FROM EMP E WHERE E.NOM = « Charlie » Alice Bob SELECT E.SAL FROM EMP E WHERE E.NOM = « Charlie » « 2000 » « 2000 » PAS DE PROBLEME SI A ET B LISENT LE MEME N-UPLET Lecture de nuplets identiques NE NOM SAL 0 Charlie 2050 1 Diana 2100 2 Eric 1600 20 Lecture et écriture de nuplets différents Base de données UPDATE EMP SET SAL = 2050 WHERE NOM = « Charlie » Alice Bob NE NOM SAL 0 Charlie 2000 1 Diana 2100 2 Eric 1600 21 Base de données UPDATE EMP SET SAL = 2050 WHERE NOM = « Charlie » Alice Bob 1 nuplet modifié Lecture et écriture de nuplets différents NE NOM SAL 0 Charlie 2050 1 Diana 2100 2 Eric 1600 22 Base de données UPDATE EMP SET SAL = 2050 WHERE NOM = « Charlie » Alice Bob SELECT E.SAL FROM EMP E WHERE E.NOM = « Diana » 1 nuplet modifié Lecture et écriture de nuplets différents NE NOM SAL 0 Charlie 2050 1 Diana 2100 2 Eric 1600 23 Base de données UPDATE EMP SET SAL = 2050 WHERE NOM = « Charlie » Alice Bob SELECT E.SAL FROM EMP E WHERE E.NOM = « Diana » 1 nuplet modifié « 2100 » Lecture et écriture de nuplets différents NE NOM SAL 0 Charlie 2050 1 Diana 2100 2 Eric 1600 24 Base de données UPDATE EMP SET SAL = 2050 WHERE NOM = « Charlie » Alice Bob SELECT E.SAL FROM EMP E WHERE E.NOM = « Diana » 1 nuplet modifié « 2100 » Lecture et écriture de nuplets différents NE NOM SAL 0 Charlie 2050 1 Diana 2100 2 Eric 1600 25 Base de données UPDATE EMP SET SAL = 2050 WHERE NOM = « Charlie » Alice Bob SELECT E.SAL FROM EMP E WHERE E.NOM = « Diana » 1 nuplet modifié « 2100 » PAS DE PROBLEME SI A MODIFIE UN N-UPLET QUE B NE LIT PAS PAR LA SUITE Lecture et écriture de nuplets différents NE NOM SAL 0 Charlie 2050 1 Diana 2100 2 Eric 1600 26 Lecture et écriture de nuplets identiques Base de données UPDATE EMP SET SAL = 2050 WHERE NOM = « Charlie » Alice Bob NE NOM SAL 0 Charlie 2050 1 Diana 2100 2 Eric 1600 27 Base de données UPDATE EMP SET SAL = 2050 WHERE NOM = « Charlie » Alice Bob 1 nuplet modifié Lecture et écriture de nuplets identiques NE NOM SAL 0 Charlie 2050 1 Diana 2100 2 Eric 1600 28 Base de données UPDATE EMP SET SAL = 2050 WHERE NOM = « Charlie » Alice Bob SELECT E.SAL FROM EMP E WHERE E.NOM = « Charlie » 1 nuplet modifié Lecture et écriture de nuplets identiques NE NOM SAL 0 Charlie 2050 1 Diana 2100 2 Eric 1600 29 Base de données UPDATE EMP SET SAL = 2050 WHERE NOM = « Charlie » Alice Bob SELECT E.SAL FROM EMP E WHERE E.NOM = « Charlie » 1 nuplet modifié « 2050 » Lecture et écriture de nuplets identiques Nouvelle valeur ! NE NOM SAL 0 Charlie 2050 1 Diana 2100 2 Eric 1600 30 Base de données UPDATE EMP SET SAL = 2050 WHERE NOM = « Charlie » Alice Bob SELECT E.SAL FROM EMP E WHERE E.NOM = « Charlie » 1 nuplet modifié « 2050 » Lecture et écriture de nuplets identiques Ancienne valeur ! « 2000 » NE NOM SAL 0 Charlie 2000 1 Diana 2100 2 Eric 1600 NE NOM SAL 0 Charlie 2050 1 Diana 2100 2 Eric 1600 31 Base de données UPDATE EMP SET SAL = 2050 WHERE NOM = « Charlie » Alice Bob SELECT E.SAL FROM EMP E WHERE E.NOM = « Charlie » 1 nuplet modifié « 2050 » L’ORDRE EST IMPORTANT SI A MODIFIE UN N-UPLET QUE B A LU OU VA LIRE Lecture et écriture de nuplets identiques 32 Bob TEMPS Alice SELECT E.SAL FROM EMP E WHERE E.NOM = « Charlie » T1 2000 NE NOM SAL 0 Charlie 2000 1 Diana 2100 2 Eric 1600 Anomalie (problème) de la lecture non reproductible 33 Bob TEMPS Alice SELECT E.SAL FROM EMP E WHERE E.NOM = « Charlie » T1 2000 UPDATE EMP SET SAL = 2050 WHERE NOM = « Charlie » T2 NE NOM SAL 0 Charlie 2050 1 Diana 2100 2 Eric 1600 Anomalie (problème) uploads/Finance/ c018sa-w1-s2.pdf
Documents similaires
-
16
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Jui 01, 2021
- Catégorie Business / Finance
- Langue French
- Taille du fichier 0.4694MB