Replikasi dan fragmentasi data
Berikut adalah **Modul 11 (Lanjutan): Sistem Basis Data Terdistribusi**, dengan fokus pada **Replikasi dan Fragmentasi Data**, serta **contoh implementasi di MySQL Ubuntu 24.04**.
---
- 🌐 **Modul 11: Sistem Basis Data Terdistribusi**
- 📌 Topik: Replikasi dan Fragmentasi Data
- 🌐 **Modul 11: Sistem Basis Data Terdistribusi**
---
- 🎯 **Tujuan Pembelajaran**
Setelah mempelajari bagian ini, mahasiswa diharapkan mampu: - Menjelaskan konsep replikasi dan fragmentasi data dalam sistem terdistribusi. - Membedakan jenis-jenis fragmentasi dan replikasi. - Mengimplementasikan contoh replikasi dan fragmentasi di MySQL Ubuntu 24.04.
---
- 🔁 **11.6 Replikasi Data (Data Replication)**
- Replikasi** adalah proses menyalin dan menyinkronkan data dari satu node ke node lain agar tetap konsisten.
- 🧩 Tujuan:
- Meningkatkan **ketersediaan** - Menyediakan **backup real-time** - Mempercepat akses baca (read scalability)
- ⚙️ Jenis Replikasi:
| Jenis Replikasi | Penjelasan | |-------------------|------------------------------------------------------------------------------| | **Master-Slave** | Master menerima tulis; slave hanya baca | | **Master-Master** | Dua node saling sinkron (dua arah) | | **Asynchronous** | Slave menyalin data dengan keterlambatan | | **Synchronous** | Master menunggu semua slave menyelesaikan update sebelum commit (tidak umum di MySQL Community)
---
- ✅ **Contoh: MySQL Master–Slave Replikasi** (ringkasan)
> Sudah dibahas di Modul 11.4. Langkah utama: - Konfigurasi `server-id`, `log_bin`, dan `relay-log` - Buat user `REPLICATION SLAVE` - Gunakan `CHANGE MASTER TO` pada slave - Periksa status `SHOW SLAVE STATUS\G`
---
- 🧩 **11.7 Fragmentasi Data (Data Fragmentation)**
- Fragmentasi** adalah pemecahan satu tabel menjadi beberapa bagian agar dapat disimpan di lokasi berbeda.
- 🧠 Tujuan:
- Meningkatkan efisiensi query - Mengurangi transfer data antarlokasi - Menyesuaikan data dengan lokasi geografis pengguna
---
- 📂 Jenis Fragmentasi:
| Jenis Fragmentasi | Penjelasan | |--------------------------|------------------------------------------------------------------------------| | **Horizontal** | Setiap fragmen menyimpan subset baris (ROW) | | **Vertical** | Setiap fragmen menyimpan subset kolom | | **Hybrid/Mixed** | Gabungan horizontal dan vertical | | **Derived Fragmentation**| Fragment berdasarkan entitas lain (misalnya foreign key)
---
- ✅ **Contoh Fragmentasi Horizontal di MySQL**
Misalnya, data mahasiswa dibagi berdasarkan lokasi kampus:
```sql -- Kampus A CREATE DATABASE kampus_a; USE kampus_a; CREATE TABLE mahasiswa (
nim VARCHAR(10), nama VARCHAR(100), prodi VARCHAR(50)
); INSERT INTO mahasiswa VALUES ('A101', 'Andi', 'TI');
-- Kampus B CREATE DATABASE kampus_b; USE kampus_b; CREATE TABLE mahasiswa (
nim VARCHAR(10), nama VARCHAR(100), prodi VARCHAR(50)
); INSERT INTO mahasiswa VALUES ('B101', 'Budi', 'SI'); ```
---
- ✅ **Contoh Fragmentasi Vertical di MySQL**
```sql -- Tabel data pribadi CREATE TABLE mahasiswa_pribadi (
nim VARCHAR(10) PRIMARY KEY, nama VARCHAR(100), alamat TEXT
);
-- Tabel data akademik CREATE TABLE mahasiswa_akademik (
nim VARCHAR(10) PRIMARY KEY, prodi VARCHAR(50), ipk DECIMAL(3,2)
);
-- Bisa digabung dengan JOIN SELECT p.nama, a.ipk FROM mahasiswa_pribadi p JOIN mahasiswa_akademik a ON p.nim = a.nim; ```
---
- ⚠️ **Tantangan Fragmentasi:**
- Kompleksitas query lintas fragmen - Konsistensi antar node - Desain awal harus dipikirkan matang
---
- 📌 **11.8 Kesimpulan**
| Konsep | Penjelasan | |--------------------|--------------------------------------------------------------------------| | **Replikasi** | Menyalin data dari satu node ke node lain untuk ketersediaan dan kecepatan | | **Fragmentasi** | Memecah data menjadi bagian (baris/kolom) untuk efisiensi dan lokalisasi | | **MySQL** | Mendukung replikasi master-slave dan fragmentasi manual |
---
Kalau kamu ingin saya bantu buatkan **simulasi replikasi master-master** atau **arsitektur basis data terdistribusi lengkap antar kota/kampus**, tinggal bilang ya!