Lewati ke isi
ORACLEDECK

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

JenisIsiYang disembunyikan
Transparansi DistribusiFragmentasi, lokasi, replikasi, pemetaan lokal, penamaanBahwa data dipecah dan tersebar
Transparansi TransaksiKonkurensi dan kegagalanBahwa transaksi dipecah menjadi subtransaksi di banyak situs
Transparansi KinerjaDistributed Query Processor dan fungsi biayaBahwa sebagian data harus diambil lewat jaringan
Transparansi DBMSIndependensi data logis dan fisik, transparansi jaringanBahwa DBMS di tiap situs bisa berbeda

Lima tingkat transparansi distribusi

TingkatNamaYang harus diketahui pengguna
1 (tertinggi)Transparansi fragmentasiTidak ada — menulis kueri seperti basis data terpusat
2Transparansi lokasiNama fragmen, tetapi bukan lokasinya
3Transparansi replikasiTidak tahu ada berapa salinan maupun salinan mana yang dipakai
4 (terendah)Transparansi pemetaan lokalNama fragmen dan situs penyimpanannya
Tanpa transparansiSeluruh 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.

PendekatanContohKendala
Server nama terpusatBranchOtonomi lokal berkurang, bottleneck kinerja, ketersediaan rendah
Awalan situs pembuatS1.Branch.F3.C2Transparansi distribusi hilang — letak terbaca di namanya
Alias / sinonimLocalbranch → S1.Branch.F3.C2Perlu 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

TingkatNamaIsi
1Remote RequestSatu perintah SQL dikirim ke satu situs jauh, dieksekusi utuh di sana
2Remote Unit of WorkSeluruh perintah SQL satu transaksi dikirim ke satu situs jauh; situs lokal memutuskan commit atau rollback
3Distributed Unit of WorkPerintah SQL boleh tersebar ke beberapa situs, tetapi tiap perintah dieksekusi utuh di satu situs
4Distributed RequestSatu 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)