Kunci adalah bahagian penting dalam mengekalkan kawalan serentak dalam DBMS. Transaksi dalam mana-mana sistem yang melaksanakan kawalan konkurensi berasaskan kunci tidak boleh membaca atau menulis penyata sehingga mereka memperoleh kunci yang diperlukan.
Terdapat dua jenis kunci dalam protokol berasaskan kunci. Ia adalah:
Protokol penguncian yang berbeza ialah -
Transaksi memperoleh kunci pada nilai data sebelum melakukan operasi tulis. Selepas operasi tulis selesai, kunci boleh dilepaskan. Contoh protokol penguncian mudah ialah:
T1 | T2 |
---|---|
R(A) | |
Kunci( B ) | |
R(B) | |
W(B) | |
Kunci (C) |
|
R (C) | |
W(C) |
|
Serah |
|
|
Dua transaksi T1 dan T2 ditunjukkan di atas. Operasi baca tidak memerlukan kunci, tetapi setiap transaksi memperoleh kunci sebelum operasi tulis dan melepaskan kunci selepas itu.
S(A) | tr>|
. | |
Buka Kunci (C ) | |
Buka Kunci (A) | Buka Kunci (B) |
|
Serah |
Komit | Dalam contoh di atas, T1 dan T2 berkongsi kunci menggunakan pembolehubah kongsi A kerana hanya operasi baca dilakukan pada A. T1 memperoleh kunci eksklusif pada B untuk operasi tulis dan melepaskannya tidak lama kemudian. T2 melakukan perkara yang sama seperti C. |
Protokol penguncian dua fasa yang ketat adalah serupa dengan protokol penguncian dua fasa. Satu-satunya perbezaan ialah dalam protokol 2PL yang ketat, semua kunci eksklusif yang diperoleh oleh protokol perlu dikekalkan sehingga protokol itu dilakukan atau dibatalkan. Contoh protokol penguncian dua peringkat yang ketat ialah: | |
T2 | |
X(B) | tr>|
---|---|
W (B) |
|
W(C) | |
Buka Kunci( A)
|
|
Serah | Buka kunci (B) |
T1 | T2 | tr>
---|---|
S(A) | |
|
|
S(A) |
|
R(A) | |
W(C) |
|
Serah | |
Buka Kunci(A) | |
Buka Kunci(B)
|
|
Serah |
|
Buka Kunci (A) | |
Buka Kunci(C) | Dalam contoh di atas, T1 dan T2 menggunakan kunci kongsi untuk berkongsi pembolehubah A kerana hanya operasi baca dilakukan pada perolehan A. T1 kunci eksklusif pada B untuk operasi tulis, dan T2 pada C Lakukan perkara yang sama pada . Kedua-dua kunci kongsi dan kunci eksklusif hanya akan dikeluarkan selepas transaksi dilakukan. |
Atas ialah kandungan terperinci Menggunakan kunci untuk kawalan konkurensi dalam DBMS. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!