Terdapat tiga pendekatan alternatif untuk membagi fungsi pada proses DBMS
yang berbeda. Dua arsitektur alternatif DBMS terdistribusi adalah Client/Server dan
Collaboration Server.
1. 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. Arsitektur
ini menjadi sangat popular untuk beberapa alasan. Pertama, implementasi
yang relatif sederhana karena pembagian fungis yang baik dank arena
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 pemakai lebih mudah dibandingkan antar muka pada server yang
tidak user-friendly.
2.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 .
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.
Strategi Desain Alternatif
Terdapat dua strategi utama dalam mendesain database terdistribusi
yaitu pendekatan top-down dan pendekatan bottom-up, namun pendekatan
bottom up baru dapat dilakukan jika sudah ada database yang tersebar di
beberapa lokasi.
Dalam “Distrubution Design” dilakukan desain untuk mendistribusikan
relasi ke semua lokasi dalam sistem terdistribusi. Kelemahan
mendistribusikan sebuah relasi adalah harus menangani data yang besar,
maka relasi dipecah-pecah menjadi sub relasi yang disebut fragmen.
Desain untuk sistem terdistribusi dapat melalui langkah fragmentasi,
penempatan data atau alokasi dan replikasi.
Distribusi data dengan cara fragmentasi, alokasi dan replikasi mempunyai tujuan :
1. Referensi lokalitas. Data harus diletakkan sedekat mungkin
dengan lokasi pengakses data. Jika fragmen data digunakan pada beberapa
lokasi maka akan lebih menguntungkan jika fragmen disimpan pada
lokasi-lokasi tersebut.
2. Meningkatkan reliabitilas/kehandalan dan
availabilitas/ketersediaan. Hal ini dapat dilakukan dengan replikasi :
yaitu terdapat salinan data di lokasi lain jika salah satu lokasi
mengalami kegagalan data.
3. Meningkatnya unjuk kerja. Penempatan data/alokasi yang sembarangan
akan menghasilkan kemacetan, yaitu misalkan sebuah lokasi kebanjiran
permintaan data sehingga menurunkan unjuk kerja.
4. Keseimbangan kapasitas penyimpanan dan biaya. Meskipun harus
menjamin ketersediaan data, dan mempertimbangkan referensi lokalitas
tetapi harus dipertimbangkan juga kapasitas penyimpanan yang tidak besar
sehingga menjamin biaya penyimpanan lebih murah.
Biaya komunikasi minimal. Harus dipertimbangkan biaya komunikasi anta
lokasi penyimpanan. Biaya pengambilan data minimal jika lokalitas
maksimum (fragmen data ada di banyak lokasi). Tetapi jika terjadi
update, maka harus dilakukan terhadap data di semua lokasi salinan
fragmen data, sehingga biaya akan membengkak.
Fragmentasi
Alasan yang menyebabkan data dalam satu tabel dibagi-bagi menjadi fragmen data untuk didistribusikan yaitu :
1. Penggunaan. Dalam kenyataan, data yang sering digunakan
bukanlah data dalam seluruh tabel, tetapi hanyalah sebagian data atau
sering disebut view
2. Efisien. Data disimpan di lokasi yang paling dekat dengan pengguna
yang sering mengakses sehingga data yang tidak sering dibutuhkan oleh
lokasi tertentu tidak akan disimpan di lokasi yang bersangkutan
3. Paralel. Karena data yang didistribusikan berupa fragmen data,
maka transaksi yang berupa query tunggal dapat dipecah menjadi subquery
yang dikenakan terhadap fragmen data, sehingga transaksi dapat dilakukan
secara bersamaan (concurrent).
4. Keamanan. Data yang tidak dibutuhkan oleh aplikasi lokal tidak
akan disimpan dalam lokasi tersebut, sehingga user yang tidak memiliki
hak untuk mengakses tidak akan bisa mengakses data lain.
Fragmentasi juga memiliki beberapa kelemahan yaitu :
1. Menurunnya unjuk kerja. View yang melibatkan lebih dari satu
fragmen data pada lokasi yang berbeda akan mengalami penurunan unjuk
kerja
2. Integritas. Pengendalian integritas lebih sulit jika atribut yang
berperan dalam dependency didistribusikan ke beberapa lokasi.
Terdapat dua fragmentasi data yaitu :
Fragmentasi Horizontal
Terdapat syarat informasi untuk fragmentasi horizontal, yaitu :
Application Information Informasi kualitatif dari aplikasi paling
mendasar adalah predicate yang digunakan dalam query. Dari predicate
dapat dibentuk :
Fragmentasi Vertikal
Fragmentasi vertical dari tabel R adalah proses untuk mendapatkan
fragmen R1, R2, …, Rn sedemikian rupa sehingga setiap fragmen memuat
himpunan bagian dari atribut-atribut R dan kunci primer. Fragmentasi ini
lebih sulit dibandingkan dengan fragmentasi horizontal, karena lebih
banyak alternative hasil yang dimuat.
Tujuan utama fragmentasi vertical adalah membagi sebuah tabel ke
dalam tabel-tabel yang lebih kecil sedemikian rupa sehingga user
aplikasi hanya berjalan dalam satu tabel. Dengan demikian akan
meminimalkan waktu eksekusi aplikasi yang berjalan dalam fragmen-fragmen
tersebut.
Terdapat dua pendekatan, yaitu :
1. Pendekatan kelompok (Grouping)
Dimulai dengan menempatkan setiap atribut ke dalam sebuah fragmen.
Kemudian setahap demi setahap dilakukan terhadap fragmen yang lain
sampai kriteria yang diinginkan terpenuhi.
2. Pendekatan pemecahan (Splitting)
Dimulai dengan sebuah tabel kemudian proses pembagiannya dilakukan berdasarkan pada pola akses aplikasi terhadap setiap atribut.
Dengan alasan kemudahan untuk menjalankan dependensi fungsional
sehingga menjamin keutuhan dalam koreksi data, maka pendekatan yang akan
dipakai adalah pendekatan Splitting.
Tidak ada komentar:
Posting Komentar