Replikasi dan fragmentasi data

From OnnoWiki
Revision as of 11:13, 6 May 2025 by Onnowpurbo (talk | contribs) (→‎Kesimpulan)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Berikut adalah Modu: Sistem Basis Data Terdistribusi, dengan fokus pada Replikasi dan Fragmentasi Data, serta contoh implementasi di MySQL Ubuntu 24.04.

Sistem Basis Data Terdistribusi

Replikasi dan Fragmentasi Data

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.

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

> Sudah dibahas di Modul sebelumnya. 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`

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:

-- 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

-- 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

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

Pranala Menarik