Filosofi dari Transaksi ACID
Tantangan Menulis Hari ke-129
Oleh: Bernardus Ari Kuncoro
Beberapa hari ini saya mulai geregetan. Bukan karena lagunya Sherina, sampai bingung apa yang harus kulakukan. Tetapi, lebih kepada terjadinya peristiwa yang tidak diinginkan. Sudah dipersiapkan tetapi kok kecolongan. Sudah ada rencana-rencana strategi yang dipersiapkan untuk berperang, tetapi masih ada saja missed. Butuh tambahan persiapan. Tetapi biarlah ini menjadi pembelajaran.
Dalam kita bekerja atau mengusahakan sesuatu, terkadang hasilnya kurang pas. Ada saja permasalahan. Ada aja error-error nya. Makanya, pengalaman jadi gudang pembelajaran.
Ngomong-ngomong tentang belajar, terkait dengan data, mari kita telaah proses transaksi ACID yang mesti dibangun ketika membuat Relational Database Management System (RDBMS). Transaksi asem, Mas? Yes! Seperti hidup, kita mesti pernah dan mencoba keasaman dunia ini.
Apa itu Transaksi ACID?
Properties of database transactions intended to guarantee validity even in the event of errors or power failures. Artinya setiap transaksi dalam sebuah database harus VALID. Meskipun ketika ada event error atau 'mati lampu'.
Mari kita Tilik Bu Lurah. Eh, maksud saya kata-kata yang membangun singkatan ACID yang terdiri dari Atomicity, Consistency, Isolations, dan Durability.
1. Atomicity: Hanya ada yes atau no untuk keseluruhan transaksi yang diproses. Jangan cuma sebagian. Contoh nyata transaksi atomic ini adalah transaksi transfer uang yang melibatkan dua nomor rekening. Transaksi ini melibatkan dua operasi. Pertama menarik uang dari satu rekening. Kedua memasukkan uang tersebut ke rekening kedua. Sebuah transaksi yang atomic, akan menjaga database dalam keadaan yang konsisten. Hal ini menjamin bahwa jika dari dua transaksi tadi, salah satunya gagal, maka ada kejadian uang hilang atau justru ada uang yang terbentuk.
2. Consistency: Hanya transaksi yang mematuhi constrains dan peraturan lah yang tertulis di database. Jika tidak, database akan tetap berada pada keadaan sebelumnya. Data mesti benar untuk keseluruhan baris dan tabel.
3. Isolations: Setiap transaksi diproses secara independen dan secure. Urutan tidak jadi soal. Isolasi yang rendah akan menyebabkan banyak user mengakses data secara simultan. Akan tetapi hal ini juga akan meningkatkan kemungkinan efek concurrency, seperti kehilangan update, pembacaan yang kurang pas. Sementara itu isolasi tingkat tinggi menurunkan efek concurrency, tetapi juga membuat keleluasaan sumber daya dan transaksi menjadi terbatas.
4. Durability: Transaksi yang lengkap disimpan dalam database meskipun ada kegagalan sistem. Contoh yang umum adalah ketika Anda melakukan tracking pemesanan tempat duduk dalam sebuah pesawat. Jika Anda sudah mengkonfirmasikan kursi Anda, meskipun ada kegagalan sistem, nomor kursi Anda tetap tersimpan.
Saya yakin. ACID ini juga punya perumpamaan dan Filosofi yang pantas diangkat. Seperti penerapan nilai kehidupan setiap insan. Anda harus menerima hidup ini secara utuh. Jangan sebagian saja. Mau manis-manis aja, tanpa ada pahit atau pedas. Hal itu dinamakan Atomicity. Kalau salah, ya salah. Tidak tercatat dalam sistem, tetapi masuk log list pengakuan dosa. Kalau benar, ya benar. Baru bisa masuk ke database untuk diolah menjadi Insight.
Konsisten. Supaya tidak mengganggu atau diganggu orang lain, setiap hal baik yang kita lakukan, atau 'transaksi' kita mesti taat aturan atau hukum yang berlaku. Di mana langit dipijak, di situ bumi dijunjung. Tolong, koreksi kalau saya salah dan tidak konsisten.
Isolasi. Anggap masa pandemi ini untuk merefleksikan diri. Makin terisolasi, makin sulit dan terbatas. Makin tidak terisolasi alias bergaul di sana dan di sini, makin riweh dan ribet, karena makin ramai orang-orang yang masuk dalam kehidupan kita. Asal Anda sanggup mengatur, ya tidak masalah.
Durability. Tangguh dan tahan lama. Saat ada error atau kegagalan dalam sistem kehidupan Anda, Anda siap kembali lagi ke masa sebelum gagal untuk bangkit.
Semoga Anda makin ACID, sama seperti transaksi perbankan yang akan mencapai titik sibuk atau tertingginya pada kisaran tanggal 25-28 setiap bulannya untuk transaksi gajian kepada para karyawan.
(Disadur dan diterjemahkan dari sebuah bab di Kursus Daring Udacity: Data Engineering Nanodegree)
Kalideres, 07 Desember 2020
Jadi ingat album Sheila On 7 pada saat saya masih duduk di bangku SMP: 07 Des.
Konten pada website ini merupakan konten yang di tulis oleh user. Tanggung jawab isi adalah sepenuhnya oleh user/penulis. Pihak pengelola web tidak memiliki tanggung jawab apapun atas hal hal yang dapat ditimbulkan dari penerbitan artikel di website ini, namun setiap orang bisa mengirimkan surat aduan yang akan ditindak lanjuti oleh pengelola sebaik mungkin. Pengelola website berhak untuk membatalkan penayangan artikel, penghapusan artikel hingga penonaktifan akun penulis bila terdapat konten yang tidak seharusnya ditayangkan di web ini.
Laporkan Penyalahgunaan
Komentar