Topik 05
Basis Data Relasional Terdistribusi
Fragmentasi horizontal, vertikal, turunan, dan campuran; aturan kebenaran; alokasi dan replikasi.
Kemampuan akhir yang diharapkan. Memahami penerapan basis data relasional dalam sistem terdistribusi.
Mengapa relasi dipecah
Pada DBMS terdistribusi, relasi disimpan di beberapa tempat. Mengakses relasi yang disimpan di sisi jauh menimbulkan biaya pengiriman pesan. Untuk menguranginya, relasi dipartisi atau difragmentasi, lalu fragmen dikirim ke tempat fragmen itu paling sering diakses.
Empat jenis fragmentasi
| Jenis | Operator | Isi fragmen | Rekonstruksi |
|---|---|---|---|
| Horizontal primer | σ (selection) | Subset baris dari relasi asal | UNION seluruh fragmen |
| Vertikal | π (projection) | Subset kolom, selalu memuat kunci | NATURAL JOIN atas kunci |
| Horizontal turunan | ⋉ (semijoin) | Baris anak yang induknya ada di fragmen induk | UNION seluruh fragmen |
| Campuran (hybrid) | σ∘π | Vertikal lalu horizontal, atau sebaliknya | Kebalikan urutan pembentukannya |
Tiga aturan kebenaran fragmentasi
| Aturan | Horizontal | Vertikal |
|---|---|---|
| Kelengkapan | Setiap tupel relasi asal ada di minimal satu fragmen | Setiap atribut relasi asal ada di minimal satu fragmen |
| Rekonstruksi | R = F₁ ∪ F₂ ∪ … ∪ Fₙ | R = F₁ ⋈ F₂ ⋈ … ⋈ Fₙ atas kunci |
| Kedisjoinan | Fragmen tidak tumpang tindih (disjoint) | Hanya atribut kunci yang boleh berulang |
Untuk menjamin fragmentasi vertikal bersifat lossless-join, sistem wajib menyediakan id tupel yang unik pada setiap fragmen. Tanpa kunci di setiap fragmen, hasil join kembali bukan relasi aslinya.
Contoh dari Modul 6 dan 7
STAFF dipecah vertikal menjadi S1 dan S2, lalu S2 dipecah horizontal per cabang menjadi S21, S22, dan S23. Inilah fragmentasi campuran. Lab Fragmentasi menjalankan skema persis ini atas data sungguhan dan memeriksa ketiga aturan kebenarannya.
S1 = π staffno, position, sex, DOB, salary (STAFF) ditempatkan di site 3
S2 = π staffno, fname, lname, branchno, sex, DOB, salary (STAFF)
S21 = σ Bno = B3 (S2) ditempatkan di site 3
S22 = σ Bno = B5 (S2) ditempatkan di site 5
S23 = σ Bno = B7 (S2) ditempatkan di site 7
Alokasi dan replikasi
Setelah relasi dipecah, tiap fragmen harus ditempatkan. Keputusannya menyangkut tiga hal sekaligus: di situs mana, berapa salinan, dan siapa yang menanggung biaya pembaruan.
| Strategi | Biaya baca | Biaya tulis | Ketersediaan | Cocok untuk |
|---|---|---|---|---|
| Terpusat (satu situs) | Mahal untuk situs jauh | Murah — satu salinan | Rendah | Sistem kecil, satu lokasi dominan |
| Terfragmentasi tanpa replika | Murah bila akses lokal | Murah | Sedang | Data yang jelas terpisah per wilayah |
| Replikasi penuh | Sangat murah | Sangat mahal — semua salinan disentuh | Tinggi | Tabel referensi yang jarang berubah |
| Replikasi selektif | Murah untuk fragmen panas | Sedang | Tinggi untuk yang direplikasi | Pilihan praktis pada hampir semua kasus |
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.
Kelengkapan: gabungan fragmen = relasi global
Aturan kelengkapan dan rekonstruksi: UNION ALL ketiga fragmen harus sama dengan pasien. terdistribusi
SELECT COUNT(*) AS global FROM pasien;
SELECT COUNT(*) AS jumlah_fragmen FROM (
SELECT id_pasien FROM pasien@jakarta
UNION ALL SELECT id_pasien FROM pasien@bandung
UNION ALL SELECT id_pasien FROM pasien@surabaya
) f;
Kedisjoinan: tidak ada pasien di dua fragmen
Irisan antarfragmen horizontal harus kosong. terdistribusi
SELECT id_pasien FROM pasien@jakarta
INTERSECT
SELECT id_pasien FROM pasien@bandung;
Fragmentasi vertikal lewat CREATE TABLE AS
Kunci primer disalin ke setiap fragmen vertikal agar join rekonstruksinya lossless. rumahsakit
CREATE TABLE pasien_v1 AS SELECT id_pasien, nama_pasien, kota FROM pasien;
CREATE TABLE pasien_v2 AS SELECT id_pasien, penyakit, no_hp FROM pasien;
SELECT COUNT(*) AS hasil_join FROM pasien_v1 a JOIN pasien_v2 b ON a.id_pasien = b.id_pasien;
Jalankan sendiri
Perancang Fragmentasi
Horizontal, vertikal, turunan, campuran — dengan audit kelengkapan, rekonstruksi, dan kedisjoinan.
Alokasi & Replikasi
Model biaya empat kelompok informasi, pencarian alokasi optimal, dan hitungan ketersediaan.
Sumber: Modul 1 (RPS pekan 5), Modul Pertemuan 7 bagian Alokasi Data