Physical Database Design

advertisement
Database Terdistribusi
Disusun Oleh:
Dr. Lily Wulandari
1
Distributed Database System
 Sebuah sistem basis data terdistribusi
terdiri dari database bebas yang
digabungkan
 Muncul di pengguna sebagai sistem tunggal
 Sistem database yang berjalan independen
satu sama lain
 Pengolahan mungkin dilakukan di lokasi
lain selain pencetus permintaan
 Transaksi dapat mengakses data pada satu
atau lebih situs
Sistem Database Terdistribusi
Homogen
 Semua pihak/lokasi memiliki perangkat
lunak yang identik
 Mereka mengenali satu sama lain dan
setuju untuk bekerja sama dalam
mengolah permintaan pengguna
 Setiap situs menyerahkan bagian dari
otonomi dalam hal hak untuk mengubah
skema atau perangkat lunak
pengguna sebagai sistem tunggal
Sebuah Contoh Sistem Database
Terdistribusi Homogen


Sebuah sistem terdistribusi menghubungkan tiga database :
headquarters, manufacturing, dan sales
Sebuah aplikasi secara bersamaan dapat mengakses atau
memodifikasi data dalam beberapa database dalam lingkungan
terdistribusi tunggal.
Apa yang dapat dilakukan?
 Sebuah query tunggal dari klien
Manufaktur pada database
manufacturing lokal dapat mengambil
data yang merupakan gabungan dari
tabel produk di database lokal dan
tabel dept pada database
headquarter secara jarak jauh.
 Untuk aplikasi client, lokasi dan
platform database jelas
Memudahkan!!
 Misalnya, jika Anda terhubung ke database
manufacturing tetapi ingin mengakses data
pada database headquarters, menciptakan
sinonim pada manufacturing untuk tabel dept
secara jarak jauh memungkinkan untuk
melakukan query ini:
SELECT
*
FROM
dept
 Dengan cara ini, sistem terdistribusi
memberikan tampilan akses data asli.
 Pengguna di manufacturing tidak perlu tahu
bahwa data yang mereka akses berada pada
remote database.
Sistem Database Terdistribusi
Heterogen
 Dalam sistem database terdistribusi heterogen,
setidaknya salah satu database menggunakan
skema dan perangkat lunak yang berbeda.
 Sebuah sistem database yang memiliki skema yang
berbeda dapat menyebabkan masalah besar bagi
pemrosesan query.
 Sebuah sistem database yang memiliki perangkat
lunak yang berbeda dapat menyebabkan masalah
besar bagi proses transaksi.
 Setiap pihak mungkin tidak mengenal satu
sama lain dan mungkin hanya memberikan
Fasilitas terbatas untuk kerjasama dalam
proses transaksi
Arsitektur Database
Terdistribusi
Dua arsitektur alternatif DBMS
terdistribusi adalah :
- Client/Server
- Collaboration Server.
8
Client-Server
 Sistem client-server mempunyai satu atau
lebih proses client dan satu atau lebih proses
server, dan sebuah proses client dapat
mengirim query ke sembarang proses server.
 Client bertanggung jawab pada antar muka
untuk user, sedangkan server mengatur data
dan mengeksekusi transaksi.
 Sehingga suatu proses client berjalan pada
sebuah personal computer dan mengirim query
ke sebuah server yang berjalan pada
mainframe (sebagai contoh).
9
Client-Server
Sistem Client Server
10
Client-Server
Arsitektur ini menjadi sangat popular
untuk beberapa alasan.
 Pertama, implementasi yang relatif sederhana
karena pembagian fungsi yang baik dan karena
server tersentralisasi.
 Kedua, mesin server yang mahal utilisasinya
tidak terpengaruh pada interaksi pemakai,
meskipun mesin client tidak mahal.
 Ketiga, pemakai dapat menjalankan antarmuka
berbasis grafis sehingga pemakaian lebih
mudah dibandingkan antar muka pada server
yang tidak user-friendly.
11
Collaboration Server
 Arsitektur client-server tidak mengijinkan satu query
mengakses banyak server karena proses client harus
dapat membagi sebuah query ke dalam beberapa
subquery untuk dieksekusi pada tempat yang berbeda
dan kemudian membagi jawaban ke subquery.
 Proses client cukup komplek dan terjadi overlap dengan
server; sehingga perbedaan antara client dan server
menjadi jelas.
 Untuk mengurangi perbedaan digunakan alternatif
arsitektur client-server yaitu sistem Collaboration
Server. Pada sistem ini terdapat sekumpulan server
basis data, yang menjalankan transaksi data lokal yang
bekerjasama mengeksekusi transaksi pada beberapa
server
12
Collaboration Server
 Jika server menerima query yang
membutuhkan akses ke data pada server lain,
sistem membangkitkan subquery yang
dieksekusi server lain dan mengambil hasilnya
bersama-sama untuk menggabungkan jawaban
menjadi query asal.
Collaboration System
13
Keuntungan Sistem
Database terdistribusi
 Pengelolaan secara transparan data
yang terdistribusi
 Mengacu pada struktur organisasi
 Meningkatkan untuk berbagi dan
otonomi lokal
 Meningkatkan ketersediaan data
 Meningkatkan kehandalan
 Meningkatkan performasi kerja
 Memudahkan pengembangan sistem
14
Kerugian Sistem Database
Terdistribusi
 Kompleksitas manajemen
 Kontrol integritas lebih sulit
 Biaya pengembangan
 Keamanan
 Sulitnya standarisasi
 Menambah kebutuhan
penyimpanan
 Lebih sulit dalam mengatur
lingkungan data
15
Penyimpanan Data Terdistribusi
 Replication
 Sistem memelihara beberapa salinan data, yang
disimpan di lokasi yang berbeda, untuk temu kembali
informasi lebih cepat dan toleransi terhadap kesalahan .
 Fragmentation
 Hubungan dipartisi menjadi beberapa fragmen
disimpan di lokasi yang berbeda
 Replication dan fragmentation dapat
dikombinasikan
• Hubungan dipartisi menjadi beberapa
fragmen: Sistem memelihara beberapa
replika yang identik dari setiap fragmen
tersebut.
Keuntungan Replication
 Ketersediaan: kegagalan database
pada lokasi yang berisi relasi r tidak
mengakibatkan tidak tersedianya r ini
karena ada replika.
 Paralelisme: query pada r dapat
diproses oleh beberapa node secara
paralel.
 Transfer data berkurang: relasi r
tersedia secara lokal di tiap lokasi yang
berisi replika r.
Kerugian Replication
 Peningkatan biaya update: setiap replika
dari relasi r harus diperbarui.
 Meningkatnya kompleksitas kontrol
konkurensi: update bersamaan ke
replika yang berbeda dapat
menyebabkan data yang tidak konsisten
kecuali mekanisme kontrol konkurensi
khusus dilaksanakan.
 Salah satu solusi: memilih satu salinan
sebagai copy primer dan menerapkan
operasi kontrol konkurensi pada salinan
primer tsb
Fragmentation
 Data dapat didistribusikan dengan
menyimpan tabel individu di lokasi yang
berbeda
 Data juga dapat didistribusikan dengan
membagi sebuah tabel dan menyimpan
bagian-bagian tsb di lokasi yang
berbeda - disebut Fragmentasi
 Fragmentasi dapat horizontal atau
vertikal
Mengapa menggunakan
Fragmentation?
 Penggunaan - dalam aplikasi umum menggunakan view
sehingga tepat untuk bekerja dengan subset/himpunan
 Efisiensi - data disimpan dekat dengan tempat yang paling
sering digunakan
 Paralelisme - transaksi dapat dibagi menjadi beberapa
sub-query untuk meningkatkan tingkat konkurensi
 Keamanan - data lebih aman - hanya disimpan ketika
dibutuhkan
Disadvantages:
Kinerja - mungkin lebih lambat
Integritas - lebih sulit
Horizontal Fragmentation
 Setiap fragmen, Ti, dari table T berisi
subset dari baris
 Setiap tuple dari T diberikan untuk satu
atau lebih fragmen.
 Fragmentasi horizontal adalah lossless
Contoh Horizontal Fragmentation
account1 = branch_name=“Hillside” (account)
 Sebuah skema rekening bank memiliki suatu relasi
Account-schema = (branch-name, account-number,
balance).
 Ia dilakukan fragmen hubungan dengan location dan store
setiap fragmen secara lokal: record dengan branch-name
= `Hillside` disimpan di Hillside di sebuah fragmen
Contoh Horizontal Fragmentation
account2 = branch_name=“Valleyview” (account)
account_number
branch_name
A-177
A-402
A-408
A-639
Valleyview
Valleyview
Valleyview
Valleyview
balance
205
10000
1123
750
Vertical Fragmentation
 Setiap fragmen, Ti, dari T berisi
subset/himpunan bagian dari kolom, setiap
kolom setidaknya dalam satu fragmen, dan
setiap fragmen termasuk kunci:
Ti = attr_listi (T)
T = T1
T2 …..
Tn
 Semua skema harus berisi calon kunci umum (dan
superkey) untuk memastikan penggabungan
property yang lossless.
 Sebuah atribut khusus, atribut tuple-id dapat
ditambahkan ke setiap skema untuk melayani
sebagai kunci kandidat.
Vertical Fragmentation of employee_info Relation
branch_name
Hillside
Hillside
Valleyview
Valleyview
Hillside
Valleyview
Valleyview
customer_name
Lowman
Camp
Camp
Kahn
Kahn
Kahn
Green
tuple_id
1
2
3
4
5
6
7
deposit1 = branch_name, customer_name, tuple_id (employee_info )
Vertical Fragmentation of employee_info Relation
account_number
A-305
A-226
A-177
A-402
A-155
A-408
A-639
balance
500
336
205
10000
62
1123
750
tuple_id
1
2
3
4
5
6
7
deposit2 = account_number, balance, tuple_id (employee_info )
Data Transparency
 Transparansi Data: Tingkat dimana
pengguna sistem tidak menyadari
rincian tentang bagaimana dan di
mana item data disimpan dalam
sistem terdistribusi
 Pertimbangkan isu-isu transparansi
dalam kaitannya dengan:
 Fragmentation transparency
 Replication transparency
 Location transparency
Data Transparency
 Penamaan item-item data : Kriteria
1.Setiap item data harus memiliki nama
yang unik
2.Harus dimungkinkan untuk menemukan
lokasi item data secara efisien.
3.Harus dimungkinkan untuk mengubah
lokasi dari item data secara transparan.
4.Setiap pihak harus dapat membuat item
data baru secara mandiri.
Commit Protocols
 Protokol commit digunakan untuk
memastikan atomicity di berbagai
lokasi
 Atomicity menyatakan bahwa modifikasi
database harus mengikuti aturan "semua
atau tidak".
 Suatu transaksi yang mengeksekusi
beberapa lokasi harus di-commit di semua
lokasi, atau dibatalkan di semua lokasi.
Two-Phase Commit (2 PC) Protocol
 Apakah itu?
 Two-phase commit adalah sebuah protokol
transaksi dirancang untuk komplikasi yang
timbul dengan manajer sumber daya
terdistribusi.
 Teknologi Two-phase commit digunakan
untuk sistem reservasi hotel dan
penerbangan, transaksi stock market,
aplikasi perbankan, dan credit card.
 Dengan protokol two-phase commit,
manajer transaksi terdistribusi
mempekerjakan koordinator untuk
mengelola sumber daya individu. Hasil
proses commit sebagai berikut:
Phase1: Obtaining a Decision
 Langkah 1  Coordinator meminta
semua participants untuk
mempersiapkan commit transaksi Ti.
 Ci menambahkan records <prepare T>
ke log dan memaksa log to stable
storage (log adalah file yang mengelola
sebuah record dari seluruh perubahan
terhadap database)
 Kirim pesan prepare T ke semua lokasi
dimana T dieksekusi
Phase1: Making a Decision
 Langkah 2  Setelah menerima pesan,
manajer transaksi di lokasi menentukan
apakah bisa melakukan transaksi
 jika tidak:
tambahkan sebuah record <no T> ke log dan
kirim pesan abort T ke Ci
 Jika transaksi dapat di-commit, maka :
1). Tambahkan record <ready T> ke log
2). Memaksa semua record T untuk disimpan
permanen
3). Kirim pesan ready T ke Ci
Phase 2: Recording the Decision
 Langah 1  T dapat di-commit dari Ci yang
menerima pesan ready T dari semua lokasi
yang berpartisipasi: jika tidak T harus
dibatalkan
 Langkah 2  Coordinator menambahkan
sebuah keputusan record, <commit T> atau
<abort T>, ke log dan memaksa record ke
penyimpanan permanen. Setelah record ini
dalam penyimpanan permanen, tidak dapat
dibatalkan (bahkan jika kegagalan terjadi)
 Langkah 3  Coordinator mengirim sebuah
pesan ke masing-masing participant
menginformasikan pesan keputusan tsb
(commit atau abort).
 Langkah 4  Participants mengambil tindakan
yang tepat secara lokal.
Two-Phase Commit Diagram
Query Terdistribusi
 Dalam sistem terpusat, kriteria utama
untuk mengetahui cost dari sebuah
strategi query adalah jumlah/waktu
akses ke disk.
 Faktor-fakor yang perlu
dipertimbangkan:
1. Biaya/waktu untuk transmisi data
2. Potensi peningkatan karena adanya
sejumlah simpul yang dapat
melaksanakan query secara paralel.
35
Transformasi Query
 Jika tabel telah direplikasi atau
difragmentasi atau sekaligus direplikasi
dan fragmentasi maka kita dapat
memenuhi query tersebut dengan
memilih salah satu simpul tempat suatu
tabel berada kemudian mengeksekusi
query.
 Jika tabel tidak direplikasi atau
difragmentasi, pemilihan simpul akan
didasarkan pada simpul yang
memberikan ongkos transmisi data yang
paling rendah.
Transformasi Query
 Jika tabel difragmentasi dan
ditempatkan di berbagai simpul yang
berbeda, maka kita harus melakukan
operasi Join atau Union untuk
merekonstruksi isi seluruh ini
disamping tergantung pada query,
juga tergantung pada jenis
fragmentasi yang diterapkan
terhadap tabel yang terlibat dalam
query.
Transformasi Query
 Jika fragmentasi yang dilakukan
horizontal maka operasi Union dapat
dilakukan.
 Jika fragmentasi vertikal tdan query
menghendaki penayangan semua
atribut maka operasi Natural Join
yang harus digunakan.
Contoh :
 Tabel Mahasiswa
 Ekspresi Standar dari query :
kota = ‘Bandung (mahasiswa)
 Jika tabel mahasiswa difragmentasi secara
horizontal di dua fragmen (diberi nama
mahasiswa1 dan mahasiswa2) sehingga tabel
mahasiswa sesungguhnya merupakan hasil
operasi Union dari keduanya.
mahasiswa1  mahasiswa2
Contoh :
 Maka query di atas dapat kita translasi menjadi
:
kota=‘Bandung’ (mahasiswa1 
mahasiswa2)
Contoh Query Terdistribusi
Misalnya pada dua relasi :
Sailors(sid: integer, sname: string, rating:
integer, age: real)
Reserves(sid: integer, bid: integer, day: date,
rname: string)
Kemudian dilakukan query berikut :
SELECT AVG(S.age) FROM Sailors S WHERE
S.rating > 3 AND S.rating < 7
41
Contoh Query Terdistribusi
 Fragmentasi horisontal : tupel
dengan rating < 5 pada Shanghai,
>= 5 pada Tokyo. Harus menghitung
SUM(age), COUNT(age) pada kedua
tempat. Jika WHERE berisi hanya
S.rating>6, maka hanya satu tempat.
42
Contoh Query Terdistribusi
 Fragmentasi vertikal : sid dan rating
pada Shanghai, sname dan age pada
Tokyo, tid pada kedua tempat. Harus
melakukan rekonstruksi relasi dengan
join pada tid kemudian mengevaluasi
query.
 Replikasi : Sailor di-copy kan pada
kedua tempat.
43
Locking Pada Sistem Terdistribusi
Untuk menangani penguncian obyek pada beberapa
tempat digunakan cara :
 Sentralisasi : satu tempat melakukan semua
penguncian dan membuka kunci untuk semua
obyek
 Primary Copy : semua penguncian untuk suatu
obyek dikerjakan pada tempat primary copy dari
obyek tersebut. Untuk pembacaan membutuhkan
akses ke tempat terkunci sebaik tempat dimana
obyek disimpan.
 Terdistribusi penuh : penguncian untuk suatu copy
dilakukan pada tempat dimana copy disimpan. Hal
in akan mengunci semua tempat pada saat menulis
obyek.
44
TUGAS
 Jelaskan secara singkat apa yang dimaksud
dengan jaringan komputer.
 Bagaimana konsep database terdistribusi
 Apa pengertian dari :
a. Distributed Database
b. Database Management System Terdistribusi
 Berikan contoh penerapan database
terdistribusi di lingkungan sekitar anda
 Jelaskan keuntungan dan kerugian dalam
menggunakan DBMS.
Download