Manajemen Transaksi dan Konsep Basis Data Terdistribusi
rangkumanut.my.id
TIPS: Rangkuman ini hanya sebagai pemahaman secara umum. Pastikan Anda juga membaca BMP (Buku Materi Pokok) versi cetak atau digital di Ruang Baca Virtual (RBV) untuk pemahaman lebih mendalam.
DILARANG: Memperjualbelikan seluruh konten atau latihan soal yang terdapat di portal ini. Pelanggaran akan dikenakan sanksi sesuai ketentuan yang berlaku.
Manajemen Transaksi dan Konsep Basis Data Terdistribusi
Kegiatan Belajar 1: Manajemen Transaksi
A. Konsep Transaksi
1. Definisi Transaksi
Transaksi: Eksekusi program oleh pengguna di dalam DBMS sebagai rangkaian proses membaca (read) dan menulis (write) pada objek basis data.
Read: Objek dibawa dari disk ke memori utama, nilainya disalin ke variabel program.
Write: Salinan objek dalam memori dimodifikasi lalu ditulis ke disk.
2. Sifat ACID
Atomicity: Transaksi bersifat "semua atau tidak sama sekali" — tidak boleh dikerjakan sebagian. Jika gagal, data harus tetap tidak berubah.
Consistency: Hanya data valid yang ditulis ke basis data. Jika tidak valid, transaksi dibatalkan. Konsistensi data harus terjamin sebelum dan sesudah transaksi.
Isolation: Transaksi yang berjalan bersamaan tidak boleh saling memengaruhi. Setiap transaksi harus terisolasi satu sama lain.
Durability: Setelah transaksi selesai, perubahan data harus bertahan permanen. Dijamin melalui log transaksi atau backup data.
B. Arsitektur Transaksi dalam Basis Data
1. Komponen Arsitektur
Transaction Manager: Mengkoordinasi transaksi untuk kepentingan program aplikasi.
Scheduler (Penjadwal): Modul bertanggung jawab untuk kontrol konkurensi, disebut juga lock manager jika berbasis locking. Tujuannya memaksimalkan konkurensi tanpa membahayakan integritas data.
Recovery Manager: Memastikan basis data dikembalikan ke kondisi awal jika terjadi kegagalan selama transaksi.
Buffer Manager: Bertanggung jawab agar pertukaran data antara penyimpanan dan memori utama lebih efisien.
C. Transaksi dan Keadaan Transaksi
1. Lima Keadaan Transaksi
Active: Status awal transaksi yang menunjukkan transaksi masih dilaksanakan.
Partially Committed: Keadaan setelah operasi transaksi terakhir selesai dikerjakan.
Failed: Kondisi transaksi gagal atau terhenti sebelum selesai.
Aborted: Transaksi dianggap belum dikerjakan; DBMS mengembalikan data ke kondisi awal.
Committed: Transaksi selesai dan berhasil sempurna; perubahan data dilakukan oleh DBMS. Transaksi yang sudah commit tidak dapat dibatalkan.
2. Contoh Transaksi ATM
Transfer A ke B: read(A) → A=A-50 → write(A) → read(B) → B=B+50 → write(B). Jika gagal di tengah proses, DBMS membatalkan dan mengembalikan kondisi awal.
Non-Serial Schedule: Mengizinkan transaksi berjalan bersamaan tanpa mengganggu satu sama lain.
Serial Schedule: Transaksi berjalan satu per satu secara berurutan.
2. Serializability
Conflict Serializability: Dapat diselesaikan dengan cara "swap" jika terjadi konflik. Dua transaksi hanya read tidak konflik; read-write pada data berbeda tidak konflik; read-write pada data sama berpotensi konflik.
View Serializability: Penjadwalan A' dikatakan view serializability jika memenuhi: Ti membaca nilai awal x sama, Ti membaca x yang ditulis Tj sama, dan Ti melakukan write terakhir pada x sama. Setiap conflict serializability pasti view serializability.
E. Teknik dalam Concurrency Control
1. Penguncian (Locking)
Lock Base Protocols: Mode exclusive (X) untuk read dan write; mode shared (S) hanya untuk read. Lock-X menolak akses transaksi lain; lock-S memperbolehkan akses baca bersamaan.
Two-Phase Locking (2PL): Fase pertumbuhan (growing phase) — transaksi melakukan penguncian tanpa melepaskan; fase pelepasan (shrinking phase) — melepaskan penguncian tanpa mengunci baru.
2. Timestamp
Timestamp: Identifikasi unik dari DBMS menunjukkan waktu relatif mulai transaksi. Transaksi dengan timestamp lebih kecil mendapat prioritas.
Timestamping: Protokol yang memberikan prioritas pada transaksi lebih lama jika terjadi konflik. Transaksi dengan timestamp lebih besar yang melanggar aturan akan dibatalkan dan dimulai ulang.
F. Deadlock
1. Definisi
Deadlock: Kebuntuan ketika dua atau lebih transaksi masing-masing menunggu kunci yang dipegang transaksi lain.
2. Teknik Mengatasi Deadlock
Timeout: Jika kunci belum diberikan dalam periode tertentu, transaksi kehabisan waktu tunggu dan DBMS menggagalkan serta mengulang transaksi.
Deadlock Prevention: Transaksi baru harus memiliki timestamp lebih kecil dari transaksi lama. Jika tidak, transaksi digagalkan.
Deadlock Recovery: Rollback pada transaksi deadlock. Cari posisi rollback terdekat dengan deadlock. Pengembalian harus memperhatikan sifat ACID.
Kegiatan Belajar 2: Konsep Basis Data Terdistribusi
A. Konsep Basis Data Terdistribusi
1. Definisi
Basis Data Terdistribusi: Basis data tunggal yang tersebar secara fisik di seluruh komputer di beberapa lokasi yang dihubungkan oleh jaringan komunikasi data.
2. Alasan Penerapan
Unit Bisnis Terdistribusi: Organisasi modern tersebar di beberapa lokasi dengan kewenangan tersendiri.
Berbagi Data: Informasi harus dapat diakses mudah oleh seluruh unit yang tersebar.
Biaya dan Keandalan: Lebih ekonomis dan handal dibanding basis data terpusat yang memiliki risiko crash.
Multi-Vendor: Basis data terdistribusi menyatukan aplikasi dari pengembang berbeda.
Database Recovery: Replikasi data memastikan basis data rusak dapat segera dipulihkan.
Sinkronisasi Data: Menjaga integritas data di seluruh DBMS yang tersebar.
3. Lingkungan Basis Data Terdistribusi
Homogeneous: DBMS sama di setiap node. Terdiri dari autonomous (DBMS bekerja independen) dan nonautonomous (DBMS mengoordinasikan akses di seluruh node).
Heterogeneous: DBMS berbeda di setiap node. Terdiri dari system (full DBMS functionality, partial-multidatabase) dan gateways.
B. Opsi Basis Data Terdistribusi
1. Replikasi Data
Keuntungan: Keandalan (salinan di tempat lain), respon cepat (query lokal), decoupling node, mengurangi lalu lintas jaringan.
Kelemahan: Penyimpanan besar, kompleksitas pemeliharaan dan pembaruan.
Snapshot Replication: Replikasi sederhana untuk data statis/read-only. Membaca basis data lalu membuat salinan.
Near Real Time Replication: Mendekati realtime menggunakan trigger pada basis data lokal. Pesan disimpan dalam antrian jika jaringan terganggu.
Pull Replication: Server penerima mengatur pesan pembaruan untuk diproses. Sinkronisasi terjadi saat server lokal membutuhkan pembaruan.
2. Partisi Horizontal
Partisi Horizontal: Baris tabel ditempatkan di server sesuai lokasi asal. Transaksi diproses secara lokal sehingga waktu respons minim.
Keunggulan: Efisiensi, optimasi data lokal, keamanan, kemudahan query.
Kelemahan: Kecepatan akses tidak konsisten, kerentanan cadangan (tidak ada replikasi).
3. Partisi Vertikal
Partisi Vertikal: Kolom tabel diproyeksikan ke server berbeda sesuai kebutuhan departemen. Menggabungkan data lebih sulit dari partisi horizontal.
4. Kombinasi
Kombinasi: Gabungan partisi horizontal dan vertikal. Beberapa data terpusat, lainnya direplikasi atau dipartisi sesuai kebutuhan.
C. Memilih Strategi Basis Data Terdistribusi
1. Lima Strategi Dasar
Terpusat di satu lokasi, diakses dari banyak server geografis.
Direplikasi sebagian/seluruhnya dengan pembaruan berkala.
Direplikasi dengan sinkronisasi hampir real-time.
Dipartisi menjadi segmen dalam satu DBMS logis.
Dipartisi menjadi segmen independen tidak terintegrasi.
2. Faktor Pertimbangan
Kekuatan Organisasi: Ketersediaan dana, otonomi unit, keamanan.
Frekuensi Referensi: Data ditempatkan dekat aplikasi pengguna.