Penguncian Optimis adalah strategi di mana Anda membaca catatan, mencatat nomor versi (metode lain untuk melakukan ini melibatkan tanggal, stempel waktu atau checksum/hash) dan memeriksa apakah versi tidak berubah sebelum Anda menulis catatan kembali. Saat Anda menulis kembali catatan, Anda memfilter pembaruan pada versi untuk memastikan itu atomik. (yaitu belum diperbarui antara saat Anda memeriksa versi dan menulis catatan ke disk) dan memperbarui versi dalam satu klik.
Jika catatan kotor (yaitu versi yang berbeda dengan milik Anda), Anda membatalkan transaksi dan pengguna dapat memulainya kembali.
Strategi ini paling berlaku untuk sistem volume tinggi dan arsitektur tiga tingkat di mana Anda tidak perlu memelihara koneksi ke database untuk sesi Anda. Dalam situasi ini, klien tidak dapat benar-benar memelihara kunci basis data karena koneksi diambil dari kumpulan dan Anda mungkin tidak menggunakan koneksi yang sama dari satu akses ke akses berikutnya.
Penguncian Pesimistis adalah saat Anda mengunci rekaman untuk penggunaan eksklusif Anda sampai Anda selesai menggunakannya. Ini memiliki integritas yang jauh lebih baik daripada penguncian optimis tetapi mengharuskan Anda untuk berhati-hati dengan desain aplikasi Anda untuk menghindari Deadlock. Untuk menggunakan penguncian pesimistis, Anda memerlukan koneksi langsung ke database (seperti yang biasanya terjadi pada aplikasi server klien dua tingkat) atau ID transaksi yang tersedia secara eksternal yang dapat digunakan secara independen dari koneksi.
Dalam kasus terakhir, Anda membuka transaksi dengan TxID dan kemudian menghubungkan kembali menggunakan ID itu. DBMS memelihara kunci dan memungkinkan Anda untuk memilih sesi kembali melalui TxID. Beginilah cara kerja transaksi terdistribusi menggunakan protokol komit dua fase (seperti Transaksi XA atau COM+).