Pert 13 - DDBMS

Download Report

Transcript Pert 13 - DDBMS

DDBMS
(Distributed Database Management System)
Pertemuan Minggu Ke-13
Kompetensi Khusus
• Mahasiswa mampu menjelaskan tentang
DDBMS, transparansi database terdistribusi,
dan desain database terdistribusi (C2)
Evolusi dari DDBMS
• DDBMS mengatur penyimpanan & pemrosesan dari data yang terkait
secara logis melalui sistem komputer yang saling berhubungan dimana
baik data maupun pemrosesan didistribusikan ke beberapa situs.
• Dua dekade terakhir melahirkan serangkaian perubahan sosial & teknologi
penting yang mempengaruhi sifat sistem & penggunaan data:
– Operasi bisnis menjadi global sehingga kompetisi berkembang dari toko
menjadi web.
– Permintaan pelanggan & kebutuhan pasar lebih menyukai jenis transaksi
sesuai permintaan, kebanyakan melalui layanan web.
– Perubahan sosial & teknologi yang pesat dipicu oleh perangkat mobile pintar
& murah sehingga meningkatkan permintaan untuk jaringan rumit & cepat
yang menghubungkannya.
– Aplikasi harus menangani berbagai jenis data seperti suara, video, musik, &
gambar. Data tersebut tersebar secara geografis & diakses secara remote dari
berbagai lokasi via perangkat mobile.
• Melihat faktor di atas maka 2 kebutuhan
database ini diperlukan:
– Rapid ad hoc data access : penting dalam lingkungan
pembuatan keputusan yang membutuhkan respon
cepat.
– Distributed data access : dibutuhkan untuk
mendukung unit bisnis yang tersebar secara geografis.
• Berikut faktor pendorong dari faktor di atas:
– Pertumbuhan internet sebagai platform untuk akses &
distribusi data.
– Revolusi mobile wireless.
– Pertumbuhan perusahaan yang menggunakan
“applications as a service”.
– Peningkatan fokus pada mobile business intelligence.
• Database terdistribusi diminati karena
manajemen database terpusat mengalami
masalah berikut:
– Penurunan kinerja
– Biaya tinggi
– Masalah reliabilitas
– Masalah skalabilitas
– Organisasi yang kaku
Kekurangan & Kelebihan DDBMS
Kelebihan
Kekurangan
Lokasi data dekat dengan tempat yang
memiliki permintaan tinggi
Manajemen & pengendalian yang rumit
Akses data lebih cepat
Kesulitan teknologi
Pemrosesan data lebih cepat
Keamanan
Memfasilitasi pertumbuhan
Kurangnya standar
Komunikasi yang lebih baik
Kebutuhan penyimpanan & infrastruktur
yang meningkat
Biaya operasi menurun
Biaya pelatihan meningkat
Antarmuka yang user friendly
Biaya
Menurunkan bahaya kegagalan di satu
titik
Tidak bergantung pada prosesor
Pemrosesan Terdistribusi
• Pemrosesan database terbagi di antara 2 atau
lebih situs fisik yang terhubung melalui
jaringan.
• Menggunakan 1 situs database tetapi
membagi pemrosesan ke beberapa situs.
Lingkungan Pemrosesan Terdistribusi
Database Terdistribusi
• Database disimpan dalam 2 atau lebih situs
fisik yang terhubung melalui jaringan.
• Database dipecah menjadi beberapa bagian
yang disebut dengan database fragment.
• Database fragment diletakkan di situs yang
berbeda & dapat direplikasi antar beberapa
situs.
• Tiap database fragment dikelola oleh proses
database lokal.
Lingkungan Database Terdistribusi
• Dari 2 gambar di atas terdapat beberapa hal
yang perlu diingat:
– Pemrosesan terdistribusi tidak membutuhkan
database
terdistribusi,
tetapi
database
terdistribusi
membutuhkan
pemrosesan
terdistribusi (tiap database fragment dikelola oleh
proses database lokal).
– Pemrosesan terdistribusi mungkin berdasarkan
pada database tunggal yang berada pada
komputer tunggal.
– Baik pemrosesan terdistribusi maupun database
terdistribusi membutuhkan jaringan komponen
yang terhubung.
Karakteristik DDBMS
•
•
•
•
•
•
•
•
•
•
•
•
Antarmuka aplikasi untuk berinteraksi dengan end user, program aplikasi, & DBMS
lain dalam database terdistribusi.
Validasi untuk menganalisa permintaan data untuk perbaikan sintaks.
Transformasi untuk memecah permintaan rumit menjadi komponen permintaan
data tunggal.
Optimasi query untuk menemukan strategi akses terbaik.
Mapping untuk menentukan lokasi data dari fragmen lokal & remote.
Antarmuka I/O untuk membaca atau menulis data dari atau ke penyimpanan lokal
permanen.
Formatting untuk menyiapkan data yang ditampilkan ke end user atau program
aplikasi.
Keamanan untuk menyediakan privasi data pada database lokal & remote.
Backup & pemulihan untuk memastikan ketersediaan & pemulihan database jika
terjadi kegagalan.
Fitur administrasi DB untuk administrator database.
Kontrol konkurensi untuk menangani akses data secara simultan & memastikan
konsistensi data pada fragment database dalam DDBMS.
Manajemen transaksi untuk memastikan data tetap konsisten; aktivitas ini
mencakup sinkronisasi dari transaksi lokal & remote, juga transaksi pada beberapa
segmen terdistribusi.
• DBMS yang terdistribusi penuh harus melakukan
semua fungsi dari DBMS terpusat sbb:
–
–
–
–
–
Menerima permintaan dari aplikasi atau end user.
Memvalidasi, menganalisis, & memecah permintaan.
Memetakan komponen data permintaan logis ke fisik.
Membagi permintaan ke beberapa operasi disk I/O.
Mencari, menemukan, membaca, & memvalidasi
data.
– Memastikan konsistensi, keamanan, & integritas
database.
– Memvalidasi data untuk kondisi, jika ada yang
diminta.
– Menampilkan data terpilih dalam format yang
dibutuhkan.
Sistem Manajemen Database yang
Terdistribusi Penuh
Komponen DDBMS
• Computer workstations atau remote devices (sites
atau nodes) yang membentuk sistem jaringan.
• Komponen hardware & software jaringan yang ada
dalam tiap workstation atau perangkat.
• Media komunikasi yang membawa data dari 1 titik ke
lainnya.
• Transaction processor (TP) atau application processor
(AP) atau transaction manager (TM), yaitu komponen
software yang ditemukan dalam tiap komputer atau
perangkat yang meminta data.
• Data processor (DP) atau data manager (DM), yaitu
komponen software yang berada di tiap komputer atau
perangkat yang menyimpan & mengambil data yang
ada di situs.
Komponen Manajemen Sistem Database
Terdistribusi
• Gambar di atas menunjukkan posisi komponen &
interaksi antar komponen tersebut. Komunikasi
antar TP & DP diatur melalui serangkaian aturan,
atau protokol, yang digunakan oleh DDBMS.
• Protokol menentukan bagaimana sistem database
terdistribusi akan:
– Interface dengan jaringan untuk mengangkut data &
perintah antara DP & TP.
– Sinkronisasi semua data yang diterima dari DP (TP) &
mengarahkan data ke TP (DP).
– Memastikan fungsi database umum dalam sistem
terdistribusi, mencakup keamanan data, manajemen
transaksi & kontrol konkurensi, partisi & sinkronisasi
data, backup & pemulihan data.
Tingkat Distribusi Data & Proses
Single-site Data
Multiple-site Data
Single-site process
Host DBMS
Not applicable
(Requires multiple
processes)
Multiple-site process
File server
Client/ server DBMS (LAN
DBMS)
Fully distributed
Client/ server DDBMS
Single-site Processing, Single-site data (SPSD)
• Semua pemrosesan dilakukan pada komputer
host tunggal & semua data disimpan dalam
sistem disk lokal komputer host.
• Pemrosesan tidak dapat dilakukan pada sisi
sistem end user.
• DBMS terdapat pada komputer host, yang
diakses oleh terminal yang terhubung ke
komputer host tersebut.
SPSD (Terpusat)
Multiple-Site Processing, Single-Site Data (MPSD)
• Beberapa proses berjalan pada komputer berbeda yang berbagi
penyimpanan data tunggal.
• Membutuhkan server file jaringan yang menjalankan aplikasi konvensional
yang diakses melalui jaringan.
• Dari gambar di bawah, terlihat bahwa:
– TP pada tiap workstation bertindak hanya sebagai pengarah yang
mengarahkan semua permintaan data jaringan ke server file.
– End user melihat server file sebagai hard disk lain. Karena hanya input/
output penyimpanan data yang ditangani oleh komputer server file, MPSD
menawarkan kemampuan terbatas untuk pemrosesan terdistribusi.
– End user harus membuat referensi langsung ke server file untuk mengakses
data remote. Semua aktivitas penguncian record & file dilakukan di lokasi end
user.
– Semua fungsi pemilihan data, pencarian, & update terjadi pada workstation,
sehingga membutuhkan semua file melewati jaringan untuk pemrosesan di
workstation. Hal tsb meningkatkan lalu lintas jaringan, memperlambat waktu
respon, & meningkatkan biaya komunikasi.
MPSD
Multiple-Site Processing, Multiple-Site Data (MPMD)
• Mendeskripsikan DBMS yang terdistribusi penuh dengan dukungan
untuk beberapa prosesor data & prosesor transaksi pada beberapa
situs.
• Bergantung pada tingkat dukungan untuk berbagai jenis database,
DDBMS diklasifikasikan sebagai homogeneous atau heterogeneous.
• Homogeneous DDBMS menggabungkan beberapa instance dari
DBMS yang sama melalui jaringan.
• Heterogeneous DDBMS menggabungkan jenis DBMS yang berbeda
melalui jaringan, tetapi semuanya mendukung model data yang
sama.
• Fully heterogeneous DDBMS akan mendukung DBMS yang
berbeda, masing-masing mendukung model data yang berbeda,
berjalan di sistem komputer yang berbeda.
Fitur Transparansi Database Terdistribusi
• Transparansi distribusi: database terdistribusi diperlakukan sebagai
database tunggal. User tidak perlu mengetahui bahwa:
– Data dipartisi – artinya baris & kolom tabel dipisahkan secara vertikal
atau horizontal & disimpan di beberapa situs.
– Data tersebar secara geografis di beberapa situs.
– Data direplikasi ke beberapa situs.
• Transparansi transaksi: transaksi dapat mengupdate data di lebih
dari satu situs jaringan.
• Transparansi kegagalan: memastikan sistem akan terus beroperasi
jika terjadi kegagalan jaringan atau node.
• Transparansi kinerja: sistem dapat bekerja seolah-olah adalah
DBMS terpusat.
• Transparansi heterogenitas: integrasi dari beberapa DBMS lokal
yang berbeda (relasional, jaringan, & hierarki) di bawah satu skema
umum atau global.
Transparansi Distribusi
• Database yang tersebar secara fisik dapat ditangani
seolah-olah adalah database terpusat.
• Terdiri dari 3 tingkat:
– Transparansi fragmentasi  tingkat tertinggi dari
transparansi. End user atau programer tidak perlu tahu
bahwa database dipartisi sehingga nama atau lokasi
fragmen tidak disebutkan.
– Transparansi lokasi  muncul ketika end user atau
programer harus menyebutkan nama fragmen database
tetapi tidak perlu menyebutkan lokasi fragmen tersebut.
– Transparansi pemetaan lokal  muncul ketika end user
atau programer harus menyebutkan baik nama maupun
lokasi fragmen.
• Transparansi distribusi didukung oleh distributed
data dictionary (DDD) atau distributed data
catalog (DDC).
• DDC berisi deskripsi dari keseluruhan database
yang dilihat oleh administrator database.
• Deskripsi database, dikenal dengan distributed
global schema, adalah skema database umum
yang digunakan oleh TP lokal untuk
menerjemahkan permintaan user menjadi
subquery (permintaan remote) yang akan
diproses oleh DP yang berbeda.
• DDC itu sendiri tersebar, & direplikasi di node
jaringan. Oleh karena itu, DDC harus memelihara
konsistensi dengan mengupdate semua situs.
Transparansi Transaksi
• Properti DDBMS yang memastikan transaksi database akan
memelihara integritas & konsistensi database terdistribusi.
• Permintaan Terdistribusi & Transaksi Terdistribusi
– Permintaan remote memperbolehkan pernyataan SQL sederhana
mengakses data yang akan diproses oleh prosesor database remote
tunggal.
– Transaksi remote terdiri dari beberapa permintaan, mengakses data
pada situs remote tunggal.
– Transaksi terdistribusi dapat menggunakan beberapa situs DP lokal
atau remote yang berbeda. Walaupun tiap permintaan tunggal hanya
dapat menggunakan 1 situs DP lokal atau remote, secara keseluruhan
transaksi dapat menggunakan beberapa situs DP karena tiap
permintaan dapat menggunakan situs yang berbeda.
– Permintaan terdistribusi memperbolehkan pernyataan SQL tunggal
menggunakan data di beberapa situs DP lokal atau remote yang
berbeda.
Permintaan Remote
Transaksi Remote
Transaksi Terdistribusi
Permintaan Terdistribusi
• Kontrol Konkurensi Terdistribusi
– Kontrol konkurensi sangat penting dalam database
terdistribusi karena beberapa operasi proses di lebih dari 1
situs dapat menciptakan inkonsistensi data & transaksi
deadlock.
– Two-Phase Commit Protocol (2PC)
• 2PC menjamin bahwa jika sebagian dari operasi transaksi tidak
dapat dicommit, semua perubahan di situs lain dalam transaksi
akan dibatalkan untuk memelihara kondisi database yang
konsisten.
• 2PC memerlukan protokol DO-UNDO-REDO & write-ahead.
• Protokol DO-UNDO-REDO digunakan oleh DP untuk memajukan &
memundurkan transaksi dengan bantuan dari entri log transaksi
sistem. Berikut operasinya:
– DO melakukan operasi & merekam nilai sebelum & sesudah dalam log
transaksi.
– UNDO membalikkan operasi, menggunakan entri log yang ditulis oleh
porsi DO dari urutan.
– REDO memajukan operasi, menggunakan entri log yang ditulis oleh porsi
DO dari urutan.
• Untuk memastikan operasi DO, UNDO, & REDO dapat
bertahan saat tabrakan sistem ketika dieksekusi, maka
protokol write-ahead digunakan. Protokol write-ahead
memaksa entri log ditulis ke penyimpanan permanen
sebelum operasi sebenarnya berjalan.
• 2PC mendefinisikan operasi antara 2 jenis node, yaitu
coordinator, & 1 atau lebih subordinates, atau cohorts.
• Umumnya, peran coordinator diberikan ke node yang
memulai transaksi. Node yang berpartisipasi mengikuti
coordinator.
• 2PC diimplementasikan dalam 2 tahap yaitu:
– Tahap 1: Persiapan  coordinator mengirimkan pesan PREPARE
TO COMMIT ke semua subordinates. Subordinates menerima
pesan, menulis log transaksi menggunakan protokol write-ahead,
& mengirimkan pesan (YES/ PREPARED TO COMMIT atau NO/
NOT PREPARED) ke coordinator. Coordinator memastikan semua
node siap dicommit atau dibatalkan. Jika semua node PREPARED
TO COMMIT, maka transaksi berlanjut ke Tahap 2. Jika ada 1 atau
lebih node merespon NO/ NOT PREPARED, coordinator
mengumumkan pesan ABORT ke semua subordinates.
– Tahap 2: Final COMMIT  coordinator mengumumkan pesan
COMMIT ke semua subordinates & menunggu balasannya. Tiap
subordinate menerima pesan COMMIT kemudian mengupdate
database menggunakan protokol DO. Subordinates membalas
dengan pesan COMMITTED atau NOT COMMITTED ke
coordinator. Jika ada 1 atau lebih subordinates tidak commit,
maka coordinator mengirimkan pesan ABORT, yang memaksa
mereka untuk UNDO semua perubahan.
Transparansi Kinerja & Kegagalan
• Transparansi kinerja membuat DDBMS bekerja seolah-olah
adalah database terpusat sehingga tidak terjadi penurunan
kinerja terkait dengan distribusi data.
• Transparansi kegagalan memastikan sistem akan terus
beroperasi jika terjadi kegagalan node atau jaringan.
• Tujuan dari optimasi query adalah untuk meminimalkan
total biaya yang berhubungan dengan eksekusi permintaan.
Biaya tsb berupa:
– Biaya waktu akses (I/O) berupa akses data dari beberapa situs
remote.
– Biaya komunikasi yang berhubungan dengan transmisi data di
antara node dalam sistem database terdistribusi.
– Biaya waktu CPU yang berhubungan dengan overhead
pemrosesan dari pengaturan transaksi terdistribusi.
• Memecah permintaan data dalam lingkungan data
terdistribusi harus mempertimbangkan beberapa poin
berikut:
– Distribusi data.
– Replikasi data. Karakteristik penting dari optimasi query
dalam sistem database terdistribusi adalah transparansi
replika. Transparasi replika mengacu pada kemampuan
DDBMS untuk menyembunyikan beberapa salinan data
dari user.
– Ketersediaan jaringan & node. Untuk mencapai
transparansi
kinerja,
DDBMS
seharusnya
mempertimbangkan masalah seperti network latency,
penundaan yang disebabkan oleh waktu yang dibutuhkan
oleh paket data untuk melakukan perjalanan dari titik A ke
B; atau network partitioning, penundaan yang terjadi
ketika node tiba-tiba menjadi tidak tersedia karena
kegagalan jaringan.
Desain Database Terdistribusi
• Desain
database
terdistribusi
memperkenalkan 3 masalah baru:
– Bagaimana mempartisi database menjadi
fragmen.
– Fragmen mana yang direplikasi.
– Dimana harus menempatkan fragmen &
replikanya.
Fragmentasi Data
• Suatu objek dapat dipecah menjadi 2 atau lebih
segmen atau fragmen.
• Objek dapat berupa database user, database sistem,
atau tabel.
• Tiap fragmen dapat disimpan di situs manapun melalui
jaringan komputer.
• Informasi mengenai fragmentasi data disimpan dalam
DDC, yang diakses oleh TP untuk memproses
permintaan user.
• Strategi fragmentasi data yang dibahas adalah
berdasarkan tingkat tabel & membagi tabel menjadi
fragmen logis.
• Terdapat 3 jenis strategi fragmentasi data:
– Fragmentasi horizontal mengacu pada pembagian relasi
menjadi subset (fragmen) dari tuple (baris). Tiap fragmen
disimpan dalam node berbeda, & tiap fragmen memiliki
baris unik. Baris unik semuanya memiliki atribut (kolom)
yang sama. Terbagi menjadi:
• Round-robin partitioning
• Range partitioning based on a partition key
– Fragmentasi vertikal mengacu pada pembagian relasi
menjadi subset atribut (kolom). Tiap fragmen disimpan
dalam node berbeda, & memiliki kolom unik – dengan
pengecualian kolom kunci yang ada di semua fragmen.
– Fragmentasi campuran mengacu pada kombinasi dari
strategi horizontal & vertikal. Tabel mungkin dibagi
menjadi beberapa subset baris, tiap baris memiliki subset
dari atribut (kolom).
Replikasi Data
• Mengacu pada penyimpanan salinan data pada beberapa situs yang
dilayani oleh jaringan komputer.
• Data yang direplikasi mengikuti mutual consistency rule, yaitu semua
salinan fragmen data harus identik. Oleh karena itu, untuk memelihara
konsistensi data di antara replika, DDBMS harus memastikan update
database dilakukan di semua situs dimana replika ada.
• Terdapat 2 jenis replikasi:
– Push replication. Setelah update data, node DP asli mengirimkan perubahan
ke node replika untuk memastikan data segera diupdate. Akan tetapi, ia
menurunkan ketersediaan data karena adanya latensi untuk memastikan
konsistensi data di semua node.
– Pull replication. Setelah update data, node DP asli mengirimkan pesan ke
node replika untuk menotifikasi adanya update. Node replika memutuskan
kapan untuk mengaplikasikan update ke fragmen lokal. Update data tidak
segera dilakukan ke replika sehingga data tidak konsisten sementara. Fokusnya
adalah pada ketersediaan data.
Replikasi Data
• Terdapat 3 skenario replikasi:
– Fully replicated database menyimpan beberapa
salinan dari tiap fragmen database di beberapa situs.
– Partially replicated database menyimpan beberapa
salinan dari beberapa fragmen database di beberapa
situs.
– Unreplicated database menyimpan tiap fragmen
database di situs tunggal.
• Beberapa faktor yang mendorong penggunaan
replikasi data:
– Ukuran database
– Frekuensi pemakaian
– Biaya
Alokasi Data
• Mendeskripsikan proses dalam memutuskan
lokasi data.
• Berikut strategi alokasi data:
– Centralized data allocation  seluruh database
disimpan di 1 situs.
– Partitioned data allocation  database dibagi
menjadi 2 atau lebih bagian (fragmen) & disimpan di 2
atau lebih situs.
– Replicated data allocation  salinan dari 1 atau lebih
fragmen database disimpan di beberapa situs.
• Algoritma alokasi data mempertimbangkan
beragam faktor seperti:
– Kinerja & ketersediaan data.
– Ukuran, jumlah baris, & jumlah relasi yang
dipelihara suatu entitas dengan entitas lain.
– Jenis transaksi yang diaplikasikan ke database &
atribut yang diakses oleh tiap transaksi.
– Terputusnya operasi untuk user mobile.
• Kebanyakan algoritma mencakup data seperti
topologi jaringan, bandwidth & throughput
jaringan, ukuran data, & lokasi.
Teorem CAP
• Consistency. Dalam database terdistribusi, konsistensi
mengambil peran yang lebih besar. Semua node harus
melihat data yang sama pada waktu yang sama, artinya
replika harus segera diupdate. Ini berhubungan dengan
latensi & penundaan partisi jaringan.
• Availability. Semua permintaan selalu dipenuhi oleh
sistem.
• Partition tolerance. Sistem tetap beroperasi walaupun
terjadi kegagalan node. Ini sama dengan transparansi
kegagalan dalam database terdistribusi. Sistem akan
gagal hanya jika semua node gagal.
Spektrum Database Terdistribusi
C. J. Date’s 12 Commandments for Distributed Databases
Review Materi
• Mahasiswa mengerjakan tugas yang ada di
portal.