Difference between revisions of "Replikasi dan fragmentasi data"
Jump to navigation
Jump to search
Onnowpurbo (talk | contribs) (Created page with "Berikut adalah **Modul 11 (Lanjutan): Sistem Basis Data Terdistribusi**, dengan fokus pada **Replikasi dan Fragmentasi Data**, serta **contoh implementasi di MySQL Ubuntu 24.0...") |
Onnowpurbo (talk | contribs) |
||
(One intermediate revision by the same user not shown) | |||
Line 1: | Line 1: | ||
− | Berikut adalah | + | 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: | 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:== | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | --- | + | {| class="wikitable" |
+ | ! 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:''' | |
− | + | {| class="wikitable" | |
+ | ! 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: | Misalnya, data mahasiswa dibagi berdasarkan lokasi kampus: | ||
− | + | -- Kampus A | |
− | -- Kampus A | + | CREATE DATABASE kampus_a; |
− | CREATE DATABASE kampus_a; | + | USE kampus_a; |
− | USE kampus_a; | + | CREATE TABLE mahasiswa ( |
− | CREATE TABLE mahasiswa ( | + | nim VARCHAR(10), nama VARCHAR(100), prodi VARCHAR(50) |
− | + | ); | |
− | ); | + | INSERT INTO mahasiswa VALUES ('A101', 'Andi', 'TI'); |
− | 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 | + | -- Tabel data pribadi |
− | CREATE TABLE | + | 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 | + | {| class="wikitable" |
− | |- | + | | 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== | |
− | + | * [[Database]] | |
+ | * [[Database | Kuliah]] |
Latest revision as of 11:13, 6 May 2025
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 |