Apakah Pengawalan Serentak?
Pengendalian Serentak dalam Sistem Pengurusan Pangkalan Data adalah prosedur menguruskan operasi serentak tanpa bertentangan antara satu sama lain. Ia memastikan bahawa transaksi Pangkalan Data dilakukan secara serentak dan tepat untuk menghasilkan hasil yang betul tanpa melanggar integriti data Pangkalan Data masing-masing.
Akses serentak cukup mudah jika semua pengguna hanya membaca data. Tidak mungkin mereka boleh saling mengganggu. Walaupun untuk setiap Pangkalan Data praktikal, ia akan mempunyai gabungan operasi BACA dan TULIS dan oleh itu kesesuaian adalah satu cabaran.
DBMS Concurrency Control digunakan untuk mengatasi konflik tersebut, yang kebanyakannya terjadi dengan sistem multi-pengguna. Oleh itu, Concurrency Control adalah elemen terpenting untuk berfungsi dengan betul Sistem Pengurusan Pangkalan Data di mana dua atau lebih transaksi pangkalan data dilaksanakan secara serentak, yang memerlukan akses ke data yang sama.
Dalam tutorial ini, anda akan belajar
- Apakah Pengawalan Serentak?
- Masalah Berpotensi Serentak
- Mengapa menggunakan kaedah Concurrency?
- Protokol Kawalan Serentak
- Protokol berasaskan kunci
- Protokol Penguncian Dua Fasa (2PL)
- Protokol berdasarkan cap waktu
- Protokol Berasaskan Pengesahan
- Ciri-ciri Protokol Kesesuaian yang Baik
Masalah Berpotensi Serentak
Berikut adalah beberapa masalah yang mungkin akan anda hadapi semasa menggunakan kaedah DBMS Concurrency Control:
- Kehilangan Kemas kini berlaku apabila banyak transaksi memilih baris yang sama dan mengemas kini baris berdasarkan nilai yang dipilih
- Masalah kebergantungan yang tidak dapat diatasi berlaku apabila transaksi kedua memilih baris yang diperbaharui oleh transaksi lain ( baca kotor )
- Pembacaan Tidak Berulang berlaku apabila transaksi kedua cuba mengakses baris yang sama beberapa kali dan membaca data yang berbeza setiap kali.
- Masalah Ringkasan yang salah berlaku apabila satu transaksi mengambil ringkasan atas nilai semua contoh item-item berulang, dan transaksi kedua mengemas kini beberapa contoh item-data tertentu itu. Dalam keadaan itu, ringkasan yang dihasilkan tidak menggambarkan hasil yang betul.
Mengapa menggunakan kaedah Concurrency?
Sebab untuk menggunakan kaedah kawalan Concurrency adalah DBMS:
- Untuk menerapkan Pengasingan melalui pengecualian antara transaksi yang bertentangan
- Untuk menyelesaikan masalah konflik baca-tulis dan tulis-tulis
- Untuk mengekalkan konsistensi pangkalan data dengan sentiasa menghalang halangan pelaksanaan
- Sistem perlu mengawal interaksi antara urus niaga serentak. Kawalan ini dicapai dengan menggunakan skema kawalan serentak.
- Kawalan serentak membantu memastikan kebolehterusan
Contohnya
Andaikan dua orang yang pergi ke kios elektronik pada masa yang sama untuk membeli tiket filem untuk filem yang sama dan masa tayangan yang sama.
Namun, hanya tinggal satu tempat duduk untuk tayangan filem di teater tersebut. Tanpa kawalan serentak dalam DBMS, ada kemungkinan kedua penonton filem itu akhirnya membeli tiket. Walau bagaimanapun, kaedah kawalan serentak tidak membenarkan perkara ini berlaku. Kedua-dua penonton filem masih boleh mengakses maklumat yang ditulis dalam pangkalan data tempat duduk filem. Tetapi kawalan serentak hanya memberikan tiket kepada pembeli yang telah menyelesaikan proses transaksi terlebih dahulu.
Protokol Kawalan Serentak
Protokol kawalan serentak yang berbeza menawarkan faedah yang berbeza antara jumlah serentak yang mereka izinkan dan jumlah overhed yang dikenakan. Berikut adalah teknik-teknik Pengendalian Serentak dalam DBMS:
- Protokol Berasaskan Kunci
- Protokol Penguncian Dua Fasa
- Protokol Berasaskan Cap Masa
- Protokol Berasaskan Pengesahan
Protokol berasaskan kunci
Protokol Berasaskan Kunci dalam DBMS adalah mekanisme di mana transaksi tidak dapat Membaca atau Menulis data sehingga memperoleh kunci yang sesuai. Protokol berasaskan kunci membantu menghilangkan masalah serentak dalam DBMS untuk transaksi serentak dengan mengunci atau mengasingkan transaksi tertentu kepada satu pengguna.
Kunci adalah pemboleh ubah data yang dikaitkan dengan item data. Kunci ini menandakan bahawa operasi yang dapat dilakukan pada item data. Kunci dalam DBMS membantu menyegerakkan akses ke item pangkalan data dengan transaksi serentak.
Semua permintaan kunci dibuat kepada pengurus kawalan bersamaan. Transaksi hanya dilakukan setelah permintaan kunci diberikan.
Kunci Binari: Kunci binari pada item data sama ada keadaan terkunci atau tidak terkunci.
Dikongsi / eksklusif: Mekanisme penguncian jenis ini memisahkan kunci dalam DBMS berdasarkan kegunaannya. Sekiranya kunci diperoleh pada item data untuk melakukan operasi menulis, ia dipanggil kunci eksklusif.
1. Kunci Dikongsi (S):
Kunci bersama juga dipanggil kunci Baca sahaja. Dengan kunci bersama, item data dapat dikongsi antara transaksi. Ini kerana anda tidak akan pernah mendapat kebenaran untuk mengemas kini data pada item data.
Sebagai contoh, pertimbangkan kes di mana dua transaksi membaca baki akaun seseorang. Pangkalan data akan membolehkan mereka membaca dengan meletakkan kunci bersama. Namun, jika transaksi lain ingin mengemas kini baki akaun itu, kunci bersama menghalangnya sehingga proses pembacaan selesai.
2. Kunci Eksklusif (X):
Dengan Kunci Eksklusif, item data dapat dibaca dan juga ditulis. Ini adalah eksklusif dan tidak dapat diadakan bersamaan pada item data yang sama. X-lock diminta menggunakan arahan lock-x. Transaksi mungkin membuka kunci item data setelah menyelesaikan operasi 'tulis'.
Contohnya, apabila transaksi perlu mengemas kini baki akaun seseorang. Anda boleh membenarkan transaksi ini dengan meletakkan kunci X di atasnya. Oleh itu, apabila transaksi kedua ingin membaca atau menulis, kunci eksklusif menghalang operasi ini.
3. Protokol Kunci Sederhana
Jenis protokol berasaskan kunci ini membolehkan transaksi memperoleh kunci pada setiap objek sebelum memulakan operasi. Transaksi mungkin membuka kunci item data setelah menyelesaikan operasi 'tulis'.
4. Mengunci Pra-tuntutan
Protokol kunci pra-tuntutan membantu menilai operasi dan membuat senarai item data yang diperlukan yang diperlukan untuk memulakan proses pelaksanaan. Dalam keadaan ketika semua kunci diberikan, transaksi akan dilaksanakan. Selepas itu, semua kunci dilepaskan apabila semua operasinya selesai.
Kelaparan
Kelaparan adalah keadaan ketika urus niaga perlu menunggu masa yang tidak ditentukan untuk memperoleh kunci.
Berikut adalah sebab-sebab kelaparan:
- Ketika menunggu skema barang terkunci tidak diuruskan dengan betul
- Sekiranya berlaku kebocoran sumber
- Transaksi yang sama dipilih sebagai mangsa berulang kali
Kebuntuan
Kebuntuan merujuk kepada situasi tertentu di mana dua atau lebih proses saling menunggu untuk melepaskan sumber atau lebih daripada dua proses menunggu sumber dalam rantai pekeliling.
Protokol Penguncian Dua Fasa
Two Phase Locking Protocol juga dikenali sebagai protokol 2PL adalah kaedah pengendalian serentak dalam DBMS yang memastikan kebolehpasaran dengan menerapkan kunci pada data transaksi yang menghalang transaksi lain untuk mengakses data yang sama secara serentak. Protokol Penguncian Dua Fasa membantu menghilangkan masalah serentak dalam DBMS.
Protokol penguncian ini membahagikan fasa pelaksanaan transaksi menjadi tiga bahagian yang berbeza.
- Pada fasa pertama, ketika transaksi mulai dijalankan, ia memerlukan izin untuk kunci yang diperlukannya.
- Bahagian kedua adalah di mana transaksi memperoleh semua kunci. Apabila transaksi melepaskan kunci pertama, fasa ketiga bermula.
- Pada fasa ketiga ini, transaksi tidak dapat menuntut kunci baru. Sebaliknya, ia hanya melepaskan kunci yang diperoleh.
Protokol Penguncian Dua Fasa membolehkan setiap transaksi membuat permintaan kunci atau buka kunci dalam dua langkah:
- Fasa Berkembang : Dalam fasa ini transaksi mungkin memperoleh kunci tetapi mungkin tidak melepaskan kunci.
- Fasa Pengecutan : Pada fasa ini, transaksi dapat melepaskan kunci tetapi tidak memperoleh kunci baru
Memang benar bahawa protokol 2PL menawarkan kebolehpasaran. Walau bagaimanapun, ia tidak memastikan bahawa kebuntuan tidak berlaku.
Dalam rajah yang diberikan di atas, anda dapat melihat bahawa pengesan kebuntuan tempatan dan global sedang mencari jalan buntu dan menyelesaikannya dengan meneruskan urus niaga ke keadaan awalnya.
Kaedah Mengunci Dua Fasa Ketat
String-Two phase locking system hampir serupa dengan 2PL. Satu-satunya perbezaan adalah bahawa Strict-2PL tidak pernah melepaskan kunci setelah menggunakannya. Ia memegang semua kunci sehingga titik komit dan melepaskan semua kunci sekaligus apabila prosesnya selesai.
2PL berpusat
Di Centralized 2 PL, satu laman web bertanggungjawab untuk proses pengurusan kunci. Ia hanya mempunyai satu pengurus kunci untuk keseluruhan DBMS.
Salinan utama 2PL
Mekanisme salinan 2PL utama, banyak pengurus kunci diedarkan ke laman web yang berbeza. Selepas itu, pengurus kunci tertentu bertanggungjawab menguruskan kunci untuk sekumpulan item data. Apabila salinan utama telah diperbaharui, perubahan disebarkan kepada budak.
Diagihkan 2PL
Dalam mekanisme penguncian dua fasa seperti ini, pengurus Kunci diedarkan ke semua laman web. Mereka bertanggungjawab menguruskan kunci data di laman web tersebut. Sekiranya tidak ada data yang ditiru, ia sama dengan salinan utama 2PL. Kos komunikasi Distribusi 2PL jauh lebih tinggi daripada salinan utama 2PL
Protokol berdasarkan cap waktu
Protokol berdasarkan cap waktu dalam DBMS adalah algoritma yang menggunakan Sistem Waktu atau Pembilang Logik sebagai cap waktu untuk membuat siri pelaksanaan transaksi serentak. Protokol berdasarkan Cap Waktu memastikan bahawa setiap operasi membaca dan menulis yang bertentangan dilaksanakan dalam urutan cap waktu.
Urus niaga lama selalu diberi keutamaan dalam kaedah ini. Ia menggunakan masa sistem untuk menentukan cap waktu transaksi. Ini adalah protokol serentak yang paling biasa digunakan.
Protokol berasaskan kunci membantu anda menguruskan pesanan antara transaksi yang bertentangan ketika mereka akan melaksanakannya. Protokol berdasarkan cap waktu menguruskan konflik sebaik sahaja operasi dibuat.
Contoh:
Suppose there are there transactions T1, T2, and T3.T1 has entered the system at time 0010T2 has entered the system at 0020T3 has entered the system at 0030Priority will be given to transaction T1, then transaction T2 and lastly Transaction T3.
Kelebihan :
- Jadual boleh diselaraskan seperti protokol 2PL
- Tidak menunggu transaksi, yang menghilangkan kemungkinan kebuntuan!
Kekurangan:
Kelaparan mungkin berlaku jika transaksi yang sama dimulakan semula dan dibatalkan secara berterusan
Protokol Berasaskan Pengesahan
Protokol berasaskan pengesahan dalam DBMS juga dikenal sebagai Optimistic Concurrency Control Technique adalah kaedah untuk mengelakkan serentak dalam transaksi. Dalam protokol ini, salinan data transaksi tempatan diperbaharui dan bukan data itu sendiri, yang mengakibatkan kurang gangguan ketika pelaksanaan transaksi.
Protokol berasaskan Pengesahan dilakukan dalam tiga fasa berikut:
- Baca Fasa
- Fasa Pengesahan
- Tulis Fasa
Baca Fasa
Dalam Fasa Baca, nilai data dari pangkalan data dapat dibaca melalui transaksi tetapi operasi penulisan atau kemas kini hanya diterapkan pada salinan data lokal, bukan pangkalan data yang sebenarnya.
Fasa Pengesahan
Dalam Fasa Pengesahan, data diperiksa untuk memastikan tidak ada pelanggaran keterlanjutan semasa menerapkan kemas kini transaksi ke pangkalan data.
Tulis Fasa
Dalam Fasa Tulis, kemas kini diterapkan ke pangkalan data jika pengesahan berjaya, jika tidak; kemas kini tidak digunakan, dan urus niaga dilancarkan kembali.
Ciri-ciri Protokol Kesesuaian yang Baik
Mekanisme DBMS kawalan bersamaan yang ideal mempunyai objektif berikut:
- Harus tahan terhadap kegagalan laman web dan komunikasi.
- Ia membolehkan pelaksanaan urus niaga secara selari mencapai kesesuaian maksimum.
- Mekanisme penyimpanan dan kaedah pengiraannya harus sederhana untuk mengurangkan overhead.
- Ia mesti menerapkan beberapa kekangan pada struktur tindakan transaksi atom.
Ringkasan
- Kawalan serentak adalah prosedur dalam DBMS untuk menguruskan operasi serentak tanpa bertentangan antara satu sama lain.
- Kehilangan Kemas Kini, pembacaan kotor, Bacaan Tidak Berulang, dan Ringkasan yang Tidak betul Isu adalah masalah yang dihadapi kerana kurangnya kawalan serentak.
- Berasaskan Kunci, Dua Fasa, Berasaskan Cap Waktu, Berasaskan Pengesahan adalah jenis protokol pengendalian Serentak
- Kunci boleh Dikongsi (S) atau Eksklusif (X)
- Protokol penguncian Dua Fasa yang juga dikenali sebagai protokol 2PL memerlukan transaksi harus memperoleh kunci setelah melepaskan salah satu kunci. Ia mempunyai 2 fasa tumbuh dan menyusut.
- Algoritma berdasarkan cap waktu menggunakan cap waktu untuk membuat siri pelaksanaan transaksi serentak. Protokol menggunakan Sistem Waktu atau Kiraan Logik sebagai Cap Waktu.