Basis Data Terdistribusi 2
Basis Data Terdistribusi 2
June 9, 2009
oleh Christian Hadiwinoto (13507081)
Semua bagian posting telah selesai ditulis. untuk membaca per bagiannya, gunakan
pranala berikut:
1.
2.
3.
4.
5.
aplikasi lokal: aplikasi yang tidak memerlukan data dari tempat lain
aplikasi global: aplikasi dengan kebutuhan akan data dari tempat lain
secara bersamaan dapat saling bertukar informasi dalam satu kesatuan sistem.
Dengan basis data terdistribusi, operasi basis data dapat dikendalikan dari satu
mesin (komputer) dan dijalankan pada mesin-mesin yang lain.
Sistem komputer terdistribusi, tentunya juga dengan basis data terdistribusi, dapat
membantu penyelesaian berbagai masalah, khususnya yang berkaitan dengan bisnis.
Sistem komputer terdistribusi dapat mempercepat aplikasi dengan membagi operasioperasi pada mesin yang berbeda. Selain itu, komputer-komputer yang berpartisipasi
dalam sistem komputer terdistribusi boleh jadi saling berjauhan letaknya. Dengan
demikian, pemanfaatan basis data terdistribusi dapat memudahkan perolehan
informasi dari berbagai lokasi yang berbeda, bahkan berjauhan, di samping
meningkatkan kinerja sistem dengan beberapa komputer yang bekerja bersamaan.
kinerja yang lebih baik karena data ditempatkan di tempat yang sesuai
dengan kebutuhan dan komputer-komputer dalam sistem dapat bekerja
secara paralel, sehingga pembebanan pada komputer (server) menjadi
seimbang.
alasan ekonomis, yaitu bahwa merancang sistem yang terdiri atas jaringan
komputer-komputer
kecil
(sederhana)
dibandingkan
dengan
mengimplementasikan komputer tunggal yang canggih.
alasan modularitas, yaitu bahwa sistem-sistem yang bekerja dalam basis data
terdistribusi dapat dimodifikasi, ditambah, atau dikurangi tanpa memengaruhi
modul lain (sistem lain dalam basis data terdistribusi). Dengan pembagian
lokasi data, jika terjadi masalah atau musibah pada sistem, tidak semua data
terancam, melainkan hanya data pada tempat-tempat tertentu.
alasan organisasi dan otonomi pada sistem-sistem yang berpartisipasi,
misalnya pada suatu kantor perusahaan, terdapat beberapa departemen.
Dengan basis data terdistribusi, data-data perusahaan dapat disebar ke tiaptiap departemen yang bertanggung jawab atasnya.
keamanan data, yaitu bukan hanya satu sistem yang harus diberi proteksi
keamanan data, melainkan juga fragmen-fragmennya yang tersebar di
berbagai lokasi, juga jalur komunikasi antarsistem.
kendala mempertahankan integritas karena dalam menjaga integritas sistem
melalui jaringan juga dapat memakan resource yang besar dari jaringan.
transparansi
perancangan (desain)
pemrosesan query
manajemen transaksi
arsitektur dan middleware
Ilustrasi Fragmentasi
Misalkan ada dua relasi sebagai berikut:
Ketepatan Fragmentasi
Fragmentasi dikatakan tepat apabila memenuhi syarat-syarat berikut:
Alokasi
Dalam basis data terdistribusi, alokasi mengacu kepada distribusi data ke tempat
yang optimal. Ada tiga aspek dalam memastikan alokasi menjadi optimal, antara lain
Replikasi
Sistem basis data terdistribusi dapat menyimpan duplikat dari data yang sama dalam
site yang berbeda agar perolehan informasi yang semakin cepat dan toleransi
kesalahan. Proses ini disebut replikasi. Replikasi pada relasi bersifat redundan pada
dua atau lebih situs.
Replikasi pada relasi disebut replikasi penuh bila relasi tersebut disimpan pada
semua situs. Basis data disebut redundan penuh jika tiap-tiap site mengandung
duplikat dari keseluruhan basis data.
Replikasi dilakukan karena memiliki kelebihan sebagai berikut:
jika situs asli yang menyimpan relasi R mengalami kegagalan, relasi R tetap
dapat diakses melalui replikanya
query pada relasi R dapat berjalan secara paralel di simpul (situs) yang
berbeda
lebih sedikit transfer data, yaitu tidak perlu lagi mengambil data suatu
relasi melalui jaringan karena sudah ada replika dalam situs lokal.
proses update yang lebih rumit karena setiap replika relasi R harus diupdate.
kendali atas konkurensi yang lebih rumit karena update terhadap replika
secara konkuren dapat menyebabkan basis data menjadi tidak konsisten
sehingga diperlukan mekanisme khusus dalam penanganan konkurensi.
penyesuaian dari query relasi global ke query terhadap fragmen, yaitu bahwa
ekspresi relasi global dalam query harus disesuaikan menjadi ekspresi relasi
fragmen; relasi global harus dapat direkonstruksi (dibuat terlihat global) dari
fragmen-fragmennya
penyederhanaan ekspresi aljabar relasional, juga deteksi dan penghilangan
redundant
pemilihan strategi join yang optimal (khususnya pada program yang
melakukan semi-join)
pemilihan rencana pemrosesan query yang optimal
Sebagai contoh, jika dimisalkan terdapat relasi global PARTS(PartNo, OrderNo, Price)
yang dipartisi menjadi
PARTS1:= 0PartNo300(PARTS)
PARTS2:= 301PartNo500(PARTS)
PARTS3:= 501PartNo999(PARTS)
Query Q = 25PartNo350(PARTS) pada relasi global dapat diubah menjadi bentuk query
fragmen berikut:
mengganti
relasi
global
menjadi
definisi
fragmen-fragmennya:
Q1 = 25PartNo350(PARTS1 PARTS2 PARTS3)
melakukan
pushdown
pada
tiap-tiap
fragmen:
Q2 = 25PartNo350(PARTS1) 25PartNo350(PARTS2) 25PartNo350(PARTS3)
(F(R1))
(F(Rn))
attr(R) (attr(R1)) (attr(Rn))
Fungsi-fungsi agregat (query Q(R) diasumsikan menghasilkan relasi satu
kolom)
o min(Q(R)) min(Q(R1), , Q(Rn))
o max(Q(R)) max(Q(R1), , Q(Rn))
o sum(Q(R)) sum(Q(R1)) + + sum(Q(Rn))
Operasi
R
join
S
Jika dimisalkan relasi S difragmentasi berdasarkan fragmentasi relasi R,
sedemikian sehingga R = R1 R2 dan S = S1 S2, setiap fragmen dari R hanya
perlu digabungkan (di-join) dengan fragmen dari S yang bersesuaian
dengannya.
Multidatabase
Suatu sistem basis data terdistribusi adakalanya dibentuk dari beberapa basis data
yang berlainan. Sistem seperti ini disebut multidatabase, yang pembentukannya
dilakukan dengan integrasi basis data. Dalam melakukan integrasi ini, boleh jadi ada
ketidakseragaman antara basis data-basis data yang membentuknya dan
mengakibatkan konflik, baik konflik skema (akibat ketidakseragaman skema relasi)
maupun konflik data (akibat ketidakakuratan isi, misalnya presisi, besaran dan
satuan, juga data yang tidak tepat atau sudah tidak berlaku [obsolete]). Oleh karena
itu, perlu diperhatikan metode penyelesaian konflik yang terjadi.
Penyelesaian konflik saat integrasi basis data harus memerlukan analisis yang
mendalam akan komponen basis data dan tidak dapat diotomatisasi. Adapun
sebelum dilakukan integrasi, komponen basis data harus dipersiapkan terlebih
dahulu, khususnya untuk penanganan konflik. Proses ini disebut restrukturisasi.
Ilustrasi restrukturisasi dan integrasi basis data dapat dilihat pada bagan berikut:
konflik antartabel
o antara dua tabel
nama tabel (homonim/sinonim), dapat diselesaikan dengan
definisi view sendiri
struktur tabel, seperti jumlah atribut berbeda di dua tabel
yang
informasinya
sama,
dapat
diselesaikan
dengan
membuang atribut yang keberadaannya tidak di semua relasi
atau menambahkan atribut yang kurang pada relasi yang
kekurangan atribut (bila perlu dengan nilai default-nya)
integrity constraint, misalnya pada dua situs terdapat tabel
yang sama tetapi isi atribut primary key-nya berbeda, dapat
diselesaikan dengan memberikan primary key tambahan yang
berisi informasi situs relasi itu disimpan
o antara banyak tabel, misalnya pada dua komponen basis data
jumlah relasinya tidak sama tetapi informasinya sama, dapat
diselesaikan dengan penggabungan relasi dengan view
konflik antaratribut
o antara dua atribut
nama atribut (homonim/sinonim), dapat diselesaikan dengan
penggantian nama (rename) atribut di view
integrity constraint, misal tipe data, dapat diselesaikan
dengan fungsi-fungsi konversi, seperti to_char(int) atau
to_int(char), pada view
o antara banyak atribut, misalnya dalam penyimpanan informasi
nama orang dalam tabel yang satu digunakan dua atribut (kolom):
nama depan dan nama belakang, sementara pada tabel yang lain
Arsitektur Klien/Server
Basis data terdistribusi adalah bagian dari sistem komputer terdistribusi. Arsitektur
klien/server adalah model arsitektur perangkat lunak yang umum digunakan dalam
sistem ini. Sistem dipisahkan antara klien dan server; kerjanya adalah sebagai
berikut: sistem klien melakukan permintaan dan sistem server memproses
permintaan tersebut. Fungsionalitas dalam arsitektur klien/server dapat dibagi
menjadi tiga, yaitu:
SQL
atau
application
program
Ada dua jenis sistem server yang umum digunakan, yaitu server transaksi dan server
data. Perbedaannya adalah
= Tamat =