Topik 06
Manajemen Data Terdistribusi: Transparansi
Empat jenis transparansi, lima tingkat transparansi distribusi, dan klasifikasi transaksi DRDA.
Kemampuan akhir yang diharapkan. Memahami konsep-konsep transparansi dalam pengelolaan basis data terdistribusi.
Apa itu transparansi
Transparansi pada basis data terdistribusi berarti menyembunyikan rincian implementasi dari pengguna. Basis data yang sebenarnya terpecah dan tersebar harus terlihat dan terasa seperti satu basis data tunggal yang dioperasikan pada satu komputer.
Empat jenis transparansi
| Jenis | Isi | Yang disembunyikan |
|---|---|---|
| Transparansi Distribusi | Fragmentasi, lokasi, replikasi, pemetaan lokal, penamaan | Bahwa data dipecah dan tersebar |
| Transparansi Transaksi | Konkurensi dan kegagalan | Bahwa transaksi dipecah menjadi subtransaksi di banyak situs |
| Transparansi Kinerja | Distributed Query Processor dan fungsi biaya | Bahwa sebagian data harus diambil lewat jaringan |
| Transparansi DBMS | Independensi data logis dan fisik, transparansi jaringan | Bahwa DBMS di tiap situs bisa berbeda |
Lima tingkat transparansi distribusi
| Tingkat | Nama | Yang harus diketahui pengguna |
|---|---|---|
| 1 (tertinggi) | Transparansi fragmentasi | Tidak ada — menulis kueri seperti basis data terpusat |
| 2 | Transparansi lokasi | Nama fragmen, tetapi bukan lokasinya |
| 3 | Transparansi replikasi | Tidak tahu ada berapa salinan maupun salinan mana yang dipakai |
| 4 (terendah) | Transparansi pemetaan lokal | Nama fragmen dan situs penyimpanannya |
| — | Tanpa transparansi | Seluruh rute akses, termasuk nama database link |
Keuntungan utama transparansi lokasi: basis data dapat diorganisasi ulang secara fisik tanpa memengaruhi aplikasi yang mengaksesnya. Lab Transparansi menunjukkan berapa kali lipat SQL memanjang tiap kali satu tingkat transparansi dilepas.
Transparansi penamaan
Setiap objek basis data terdistribusi harus punya nama unik. Ada tiga pendekatan, masing-masing dengan harganya sendiri.
| Pendekatan | Contoh | Kendala |
|---|---|---|
| Server nama terpusat | Branch | Otonomi lokal berkurang, bottleneck kinerja, ketersediaan rendah |
| Awalan situs pembuat | S1.Branch.F3.C2 | Transparansi distribusi hilang — letak terbaca di namanya |
| Alias / sinonim | Localbranch → S1.Branch.F3.C2 | Perlu katalog pemetaan yang konsisten di semua situs |
Sistem R* membedakan printname (yang dipakai pengguna) dari system-wide name (identifier internal yang dijamin tidak pernah berubah). System-wide name terdiri dari empat bagian: Creator ID, Creator site ID, Local name, dan Birth-site ID — contohnya Manager@London.localbranch@glasgow.
Transparansi transaksi
Transaksi terdistribusi dipecah menjadi beberapa subtransaksi, satu untuk setiap situs yang harus diakses. Setiap subtransaksi diwakili sebuah agent. DDBMS wajib menjamin bukan hanya kesatuan transaksi global, tetapi juga sinkronisasi tiap subtransaksi dengan transaksi lokal lain yang berjalan bersamaan di situs yang sama.
Empat tipe transaksi menurut IBM DRDA
| Tingkat | Nama | Isi |
|---|---|---|
| 1 | Remote Request | Satu perintah SQL dikirim ke satu situs jauh, dieksekusi utuh di sana |
| 2 | Remote Unit of Work | Seluruh perintah SQL satu transaksi dikirim ke satu situs jauh; situs lokal memutuskan commit atau rollback |
| 3 | Distributed Unit of Work | Perintah SQL boleh tersebar ke beberapa situs, tetapi tiap perintah dieksekusi utuh di satu situs |
| 4 | Distributed Request | Satu perintah SQL saja dapat mengakses data di beberapa situs — join atau union lintas fragmen |
Transparansi kinerja
Distributed Query Processor (DQP) memetakan permintaan data menjadi urutan operasi pada basis data lokal. DQP harus memutuskan tiga hal: fragmen mana yang diakses, salinan fragmen mana yang dipakai bila direplikasi, dan situs mana yang mengerjakannya.
- Biaya I/O — waktu akses data fisik pada disk
- Biaya CPU — waktu melaksanakan operasi di memori utama
- Biaya komunikasi — transmisi data melalui jaringan
Pada sistem tersentralisasi hanya faktor pertama yang dipertimbangkan. Pada WAN dengan bandwidth kecil, biaya komunikasi mendominasi sampai-sampai optimasi boleh mengabaikan I/O dan CPU. Pada LAN, tidak boleh.
Tugas Modul 6 — contoh jawaban
1. Apa yang dimaksud dengan transparansi basis data?
Transparansi adalah penyembunyian rincian implementasi dari pengguna. Pada basis data terdistribusi, yang disembunyikan adalah fakta bahwa data dipecah menjadi fragmen, disimpan di situs berbeda, mungkin punya beberapa salinan, dan diproses oleh DBMS lokal yang terpisah. Pengguna menulis kueri terhadap skema global seolah-olah semuanya berada di satu basis data.
2. Apa keuntungan dari transparansi?
Pertama, aplikasi tidak perlu diubah ketika data dipindahkan, dipecah ulang, atau direplikasi — cukup pemetaannya yang diubah (di Oracle: sinonim atau view). Kedua, kueri menjadi jauh lebih pendek dan tidak rawan salah sebut situs; Lab Tangga Transparansi menunjukkan SQL memanjang berlipat saat transparansi dilepas. Ketiga, DDBMS bebas memilih fragmen, salinan, dan situs termurah untuk setiap kueri, karena keputusan itu tidak dikunci di kode aplikasi.
3. Definisikan implementasi transparansi basis data pada proyek kelompok.
Untuk proyek rumah sakit: (1) transparansi fragmentasi — tabel PASIEN dipartisi per kota (PARTITION BY LIST), tetapi aplikasi tetap menulis SELECT ... FROM PASIEN; (2) transparansi lokasi — partisi Bandung dan Surabaya diakses lewat database link yang dibungkus sinonim PASIEN_BANDUNG dan PASIEN_SURABAYA; (3) transparansi replikasi — tabel DOKTER direplikasi ke tiap situs sebagai materialized view, dan aplikasi tidak pernah memilih salinan; (4) transparansi transaksi — rujukan pasien lintas kota ditulis sebagai satu transaksi dengan satu COMMIT, dan Oracle menjalankan 2PC sendiri. Skripnya ada di folder oracle/, berkas 03, 06, 07, dan 08.
Coba di terminal
Kueri di bawah memperagakan konsep topik ini pada data sungguhan. Tekan ▶ Jalankan untuk membukanya di Terminal SQL, lalu ubah sesuka hati — sesi terminal adalah salinan pribadi di peramban Anda.
Tingkat transparansi lokasi
Tanpa @: pengguna tidak tahu lokasi. Dengan @bandung: pengguna harus tahu fragmen dan situsnya. terdistribusi
SELECT nama_pasien FROM pasien WHERE kota = 'Bandung';
SELECT nama_pasien FROM pasien@bandung;
Transparansi transaksi: satu COMMIT, dua situs
Pengguna cukup COMMIT; sistem menjalankan two-phase commit di belakang layar. terdistribusi
UPDATE dokter@jakarta SET waktu_kerja = 'Senin-Jumat' WHERE id_dokter = 1;
UPDATE dokter@bandung SET waktu_kerja = 'Senin-Jumat' WHERE id_dokter = 3;
COMMIT;
Jalankan sendiri
Sumber: Modul 6 — CTI313 Manajemen Basis Data Terdistribusi (Ir. Nixon Erzed, MT)