Replikasi dan fragmentasi data

From OnnoWiki
Jump to navigation Jump to search

Berikut adalah **Modul 11 (Lanjutan): Sistem Basis Data Terdistribusi**, dengan fokus pada **Replikasi dan Fragmentasi Data**, serta **contoh implementasi di MySQL Ubuntu 24.04**.

---

    1. 🌐 **Modul 11: Sistem Basis Data Terdistribusi**
      1. 📌 Topik: Replikasi dan Fragmentasi Data

---

      1. 🎯 **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.

---

    1. 🔁 **11.6 Replikasi Data (Data Replication)**
    • Replikasi** adalah proses menyalin dan menyinkronkan data dari satu node ke node lain agar tetap konsisten.
      1. 🧩 Tujuan:

- Meningkatkan **ketersediaan** - Menyediakan **backup real-time** - Mempercepat akses baca (read scalability)

      1. ⚙️ 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)

---

      1. ✅ **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`

---

    1. 🧩 **11.7 Fragmentasi Data (Data Fragmentation)**
    • Fragmentasi** adalah pemecahan satu tabel menjadi beberapa bagian agar dapat disimpan di lokasi berbeda.
      1. 🧠 Tujuan:

- Meningkatkan efisiensi query - Mengurangi transfer data antarlokasi - Menyesuaikan data dengan lokasi geografis pengguna

---

      1. 📂 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)

---

      1. ✅ **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'); ```

---

      1. ✅ **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; ```

---

      1. ⚠️ **Tantangan Fragmentasi:**

- Kompleksitas query lintas fragmen - Konsistensi antar node - Desain awal harus dipikirkan matang

---

    1. 📌 **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!