Ini adalah pertanyaan sederhana yang diajukan dalam semangat meningkatkan pengetahuan saya; mohon bersikap lembut dalam tanggapan Anda.
Sebagai pengembang aplikasi lama, saya tahu pada tingkat tertentu apa transaksi itu (saya menggunakannya sepanjang waktu). Mengesampingkan tingkat isolasi transaksi untuk saat ini, pada tingkat tinggi transaksi memungkinkan blok pekerjaan diselesaikan seluruhnya atau tidak sama sekali, dan memungkinkan sejumlah isolasi dari aktivitas pengubah basis data lainnya.
Saya juga tahu apa (dalam berbagai database) kunci adalah, atau setidaknya bagaimana seseorang berperilaku (jika saya mengunci tabel dengan cara tertentu secara eksplisit, maka tidak ada proses atau utas lain yang dapat memperbarui apa pun tentang tabel itu).
Yang paling jelas saya tidak jelas tentang adalah: dalam berbagai database, ketika saya secara eksplisit mengunci baris atau tabel, apakah saya menggunakan konstruksi yang sama persis yang digunakan oleh fasilitas transaksi database di bawah selimut untuk membuat transaksi berfungsi dengan baik?
Yaitu, terpikir oleh saya bahwa agar suatu transaksi bersifat atomik dan terisolasi, ia harus melakukan penguncian. Apakah transaksi ini diprakarsai, penguncian yang tersembunyi penguncian dengan jenis penguncian yang sama yang memungkinkan saya mengakses berbagai basis data melalui konstruksi seperti SELECT FOR UPDATE
atau LOCK
perintah eksplisit ? Atau apakah kedua konsep ini sangat berbeda?
Sekali lagi, saya minta maaf atas ketelanjangan pertanyaan ini; Saya senang bisa diarahkan ke sumber yang lebih mendasar.