Kompleksitas
Masing-masing database menjadi lebih kecil, bersifat lokal dan sederhana. Namun, software yang dibutuhkan sangat kompleks, perlu mempertimbangkan kebebasan data (data independence) secara logis, fisik dan geografis.
Lokasi
Pencarian lokasi data bervariasi dari sangat mudah hingga yang sangat rumit. Cara sederhana untuk melokasikan data adalah pemakai menspesifikasikan lokasi data ketika hendak menggunakan data tersebut.
Cara yang lebih rumit adalah pemakai menspesifikasikan informasi mengenai data untuk menentukan dimana lokasinya.
Pada konfigurasi hirarkis, data selalu disimpan di lokasi peripheral atau di pusat saja. Sedangkan pada konfigurasi horisontal, pemakai tidak mengetahui dimana data berada. Sistem harus mempunyai katalog/directory untuk mencari data. Directory dapat ditempatkan pada satu komputer tertentu, dan diakses melalui jaringan, atau difragmentasi atau direplikasi pada setiap komputer. Kerugian pada cara yang terakhir yaitu storage yang dibutuhkan, pemeliharaan data agar selalu up-to-date, dan komputer tidak selalu dapat melakukan searching pada directory dengan cepat. Masalah lain, bila katalog difragmentasi atau direplikasi, maka sistem harus mengetahui dimana katalog itu sendiri disimpan.
Transmisi Data/File
Ada dua kemungkinan bila transaksi yang diproses oleh komputer yang tidak memiliki data yang diperlukan, yaitu :
- Data dikirim ke komputer pengolahan (yang melakukan transaksi).
- Transaksi dikirim ke dan diolah di lokasi data.
Hal ini tergantung dari mesin dan softwarenya. Namun, yang kedua mungkin lebih baik bila data yang diperlukan sangat besar (menurunkan biaya transmisi, mempercepat pengolahan).
Pertimbangan lain yaitu kadang-kadang suatu transaksi membutuhkan data yang berada pada banyak lokasi.
Implementasi
Sistem ini tetap menggunakan DMS dengan tambahan software untuk directory, interface jaringan dan penghindaran masalah.
Setiap lokasi mempunyai manajer data lokal yang mengatur data hanya pada lokasinya, dan manajer data jaringan (global) yang bergantung pada manajer data lokal untuk mengakses data, dan menangani semua hal dalam distribusi data (menggunakan directory dan protokol).
Manajer data jaringan dapat terpisah dari semua DBMS yang berhubungan atau terintegrasi dengan keseluruhan arsitekturnya. Kebanyakan pembuat software membuat bentuk yang kedua.
CODASYL, Mempunyai software layer NDBMS (Network Data Base Management System) yang merupakan perluasan dari DBMS, yaitu yang mengerjakan fungsi manajemen data jaringan, dan dapat berintegrasi dengan DBMS.
Fungsi NDBMS adalah :
- Menerima permintaan pemakai dan menentukan node pengolahnya.
- Mengakses directory jaringan untuk tujuan satu.
- Mengkoordinasi penggunaan node-node, jika data ada pada banyak node.
- Mengatur komunikasi antar node NDBMS dan DBMS di node lain.
- Menyediakan konversi, jika databasenya heterogen.
SDD.1 (System for Distributed Database) mempunyai struktur arsitektur yang dirancang untuk menempatkan database dalam suatu konfigurasi yang sangat besar dan bebas (world-wide). Untuk jaringannya digunakan ARPANET, atau jaringan packet-switching X.25. semua DBMS yang dihubungkan kompatibel. SDD.1 menunjang replikasi data dalam jumlah besar yang bertujuan untuk mengurangi transmisi data.
Struktur database yang digunakan relasional : terdiri dari matriks field dua-dimensi. Setiap matriks disebut relasi. Tidak ada struktur free, himpunan CODASYL, atau pointer ke pointer. Beberapa field rangkap pada deskripsi data logis.
Pengolahan Query
Sistem database terdistribusi biasanya menangani permintaan informasi yang diambil dari data pada suatu database. Hal ini yang dapat terjadi (SDD.1 dapat melakukannya), data perlu diambil dari banyak database. Ini membutuhkan perencanaan pengaksesan dan operasi yang lebih rumit. Penanganan yang diperlukan adalah :
- Directory dari data
- Pencegahan masalah
- Pengaksesan data yang harus optimal (paling tidak efisien)
Sistem Homogen & Heterogen
Sistem homogen artinya sistem database terdistribusi yang menghubungkan DBMS yang bertipe sama, kompatibel, struktur dan deskripsi datanya sama. Sedangkan yang menghubungkan DBMS yang tidak kompatibel adalah sistem yang heterogen.
Sistem heterogen membutuhkan standar yang dapat menginterkoneksi database dari pembuat yang berbeda.
Pertimbangan
Keuntungan yang diketahui secara teoritis sangat sulit dicapai karena pengerjaannya rumit. Membuat sistem yang sederhana tentunya akan memudahkan pelaksanaannya.
Pada sistem database terdistribusi, data disimpan pada beberapa komputer. Komputer dalam sebuah sistem terdistribusi berbeda dalam ukuran dan fungsi. Prosesor mungkin mencakup mikrokomputer workstation, minikomputer atau sistem komputer besar. Prosesor-prosesor ini dapat dikaitkan dengan sejumlah nama yang berbeda seperti site, node, komputer dan sebagainya.
Sistem database terdistribusi terdiri dari kumpulan tempat, masing-masing turut serta dalam pengeksekusian transaksi yang dapat mengakses data pada sebuah tempat atau beberapa tempat. Perbedaan utama antara centralized dan database terdistribusi adalah pada sistem terpusat (centralized) data berada pada satu lokasi, sedangkan pada database terdistribusi data berada pada beberapa lokasi.
PERANCANGAN DATABASE TERDISTRIBUSI
Alokasi Data
Ada beberapa alternatif dasar untuk menyimpan atau menempatkan data : fragmentasi (partisi) dan replikasi. Dalam skema partisi, database dibagi ke dalam sejumlah partisi yang disjoin yang masing-masing ditempatkan di site yang berbeda. Perancangan replikasi dibedakan atas fully replication atau fully duplicated dimana seluruh database ditempatkan di masing-masing site, atau partially replicated yaitu masing-masing partisi dari database disimpan di lebih dari satu site tetapi tidak di semua site.
Ada 2 perancangan dasar yaitu fragmentasi dan replikasi.
Fragmentasi
Fragmentasi adalah relasi dipartisikan ke dalam beberapa bagian, setiap bagian disimpan pada lokasi (site) yang berbeda.
Fragmentasi diperlukan karena ada beberapa alasan :
- Penggunaan, umumnya aplikasi bekerja dengan tabel views dibandingkan dengan semua hubungan data. Oleh karenanya untuk distribusi data , yang cocok digunakan adalah bekerja dengan subset dari sebuah relasi sebagai unit dari distribusi.
- Efisiensi, data disimpan dekat dengan yang menggunakan. Dengan tambahan data yang tidak sering digunakan tidak usah disimpan.
- Pararelisme, dengan fragment-fragment tersebut sebagai unit dari suatu distribusi , sebuah transaksi dapat di bagi kedalam beberapa sub queri yang dioperasikan pada fragmen tersebut. Hal ini meningkatkan konkurensi atau paralelisme dalam sistem, sehingga memeperbolehkan transaksi mengeksekusi secara aman dan paralel.
- Keamanan, data yang tidak dibutuhkan oleh aplikasi tidak disimpan dan konsukuen tidak boleh di ambil oleh pengguna yang tidak mempunyai otoritas.
- Kinerja, cara kerja dari aplikasi yang membutuhkan data dari beberapa lokasi fragmen di beberapa situs akan berjalan dengan lambat.
- Integritas, pengawasan integritas akan lebih sulit jika data dan fungsional ketergantungan di fragmentasi dan dilokasi pada beberapa situs yang berbeda.
- Kondisi lengkap, jika relasi contoh R di dekomposisi ke dalam fragment R1 , R2 ,R3 , … Rn , masing-masing data yang dapat ditemukan pada relasi R harus muncul paling tidak di salah satu fragmen. Aturan ini di perlukan untuk meyakinkan bahwa tidak ada data yang hilang selama fragmentasi.
- Rekonstruksi, Jika memungkinkan untuk mendefinisikan operasional relasi yang akan dibentuk kembali relasi R dari fragmen-fragmen. Aturan ini untuk meyakinkan bahwa fungsional ketergantungan di perbolehkan.
- Disjointness, Jika item data di muncul pada fragment Ri , maka tidak boleh muncul di fragmen yang lain. Vertikal fragmentasi diperbolehkan untuk aturan yang satu ini, dimana kunci utama dari atribut harus diulanmg untuk melakukan rekonstruksi. Aturan ini untuk meminimalkan redudansi.
- Fragmentasi Horizontal, Fragmentasi berdasarkan tupel. Setiap fragment memilki subset dari tupel relasi. Relasi r dibagi ke dalam sejumlah subset r1, r2,.., rn, masing2 berisi dari sejumlah tupel relasi r. Masing2 tupel relasi r harus merupakan satu dari fragment2 tersebut sehingga relasi awalnya dapat dibentuk kembali. Suatu fragmen didefinisikan sebagai seleksi pada relasi global r. Sebuah predikat Pi digunakan untuk menyusun fragmen ri :
ri = σ Pi (r)
Pembentukan kembali dilakukan dengan menggabungkan seluruh fragment :
n
R = U ri
i=1
n
R = U ri
i=1
2. Fragmentasi Vertical, Fragmentasi vertikal dari r(R) melibatkan beberapa subset R1, R2, R3,…, Rn dari R sedemikian sehingga :
n
U Ri = R
i=1
Setiap fragment ri dari r didefinisikan sebagai :
Fragmentasi vertikal dibuat dengan menambahkan atribut khusus yaitu tuple-id, yang merupakan alamat fisik atau logika untuk tupel dan menjadi kunci pada skema. Tetapi tuple-id tidak diperlihatkan ke user.
n
U Ri = R
i=1
Setiap fragment ri dari r didefinisikan sebagai :
ri = Î Ri (r)
Pembentukan kembali dengan menggunakan join natural : r = r1|x| r2 |x|…|x| rnFragmentasi vertikal dibuat dengan menambahkan atribut khusus yaitu tuple-id, yang merupakan alamat fisik atau logika untuk tupel dan menjadi kunci pada skema. Tetapi tuple-id tidak diperlihatkan ke user.
Deposit-scheme-3 = (branch-name, customer-name, tuple-id)
Deposit-scheme-4 = (account-number, balance, tuple-id)
Deposit-scheme-4 = (account-number, balance, tuple-id)
Pembentukan kembalinya Î deposit-scheme (deposit3 |x| deposit4)
3. Fragmentasi Campuran, rancangan ini merupakan kombinasi dari fragmentasi dan replikasi. Relasi dipartisikan ke dalam beberapa bagian sistem memelihara salinan yang identik untuk setiap bagian.
Fragmentasi campuran terdiri dari :
a. Mengaplikasikan fragmentasi horizontal terhadap fragment vertikal
A1 | A2 | A3 | A4 | A5 |
| | |||
| ||||
|
b. Mengaplikasikan fragmentasi vertikal terhadap fragment horizontal
A1 | A2 | A3 | A4 | A5 |
| | |||
|
Deposit3a = σ branch-name = “Hillside” (deposit3)
Deposit3b = σ branch-name = “Valleyview” (deposit3)
Deposit3b = σ branch-name = “Valleyview” (deposit3)
Relasi r dibagi ke dalam 3 fragment deposit3a , deposit3b dan deposit4. Masing-masing disimpan di site yang berbeda.
Replikasi
Replikasi dalam database terdistribusi merupakan pemisahan database ke berbagai lokasi (site) yang mana database satu dengan yang lainnya memiliki struktur dan data yang sama.
Sistem memelihara beberapa salinan (copy) dari relasi. Setiap salinan disimpan pada beberapa lokasi (site) yang berbeda.
Jika relasi r direplikasi, maka sebuah salinan dari relasi r disimpan pada dua atau lebih site. Dalam kasus yang ekstrim, kita bisa juga memiliki replikasi penuh (full replication), dimana sebuah salinan dari relasi r dapat disimpan pada setiap site dalam sistem.
Fragment dapat direplikasi. Misal ada sistem terdistribusi terdiri dari S1, S2, …, S10. Salinan fragment deposit3a pada site S1, S3 dan S7. Salinan deposit3b pada site S7 dan S10 dan salinan deposit4 ada pada site S2, S8 dan S9.
Kelebihan dan Kekurangan Replikasi :
- Availability, jika salah satu dari site yang berisi relasi r mengalami kegagalan, maka relasi r dapat ditemukan pada site lain, sehingga sistem dapat melanjutkan memproses query yang berisi r walaupun terjadi kegagalan.
- Meningkatnya pemrosesan paralel, dalam hal sebagian besar pengaksesan terhadap relasi r hanya menghasilkan pembacaan relasi, maka beberapa site dapat memproses query yang berisi r dalam bentuk paralel. Makin banyak replikasi r, maka makin besar kemungkinan data yang dibutuhkan dapat ditemukan pada site dimana transaksi dieksekusi. Sehingga replikasi data meminimalkan perpindahan data antar site.
- Meningkatnya overhead terhadap update, sistem harus menjamin bahwa seluruh replikasi dari sebuah relasi r adalah konsisten, jika tidak kekeliruan perhitungan akan terjadi. Oleh karena itu, bilamana r di up-to-date maka update-an tersebut harus disebarkan ke seluruh site yang berisi replikasi. Akibatnya, akan meningkatkan overhead. Sebagai contoh : pada sebuah sistem perbankan dimana informasi rekening direplikasikan pada berbagai site, diperlukan jaminan bahwa saldo rekening sesuai pada seluruh site.
Secara umum, replikasi meningkatkan unjuk kerja operasi baca dan meningkatkan keberadaan data terhadap transaksi baca. Tetapi transaksi update menimbulkan overhead yang lebih besar. Masalah pengontrolan konkurensi untuk mengatasi update oleh beberapa transaksi untuk replikasi data adalah jauh lebih kompleks dibanding pendekatan sentralisasi untuk mengontrol konkurensi tersebut. Kita dapat menyederhanakan manajemen replikasi dari relasi r dengan memilih salah satu replikasi sebagai salinan primer dari r (primary copy of r). Sebagai contoh : pada sebuah sistem perbankan, sebuah rekening dapat dihubungkan dengan site dimana rekening tersebut sudah dibuka. Hal yang sama pada sebuah sistem pemesanan tiket pesawat (airline reservation system), sebuah flight dapat dihubungkan dengan site dimana fligth tersebut berasal.
TRANSPARASI PADA DDBMS
Merupakan pemisahan dari semantic level tingkat tinggi dari implementasi level rendah. Atau sistem transparansi menyembunyikan rincian implementasi dari user.
Tidak mudah dalam menggambarkan tingkat transparansi yang jelas. Dengan adanya transparansi bahasa sebagai lapisan generik, membuat user memiliki akses terhadap data bertingkat tinggi (4th GL, GUI, akses bahasa natural, dll).
Bentuk-bentuk Transparansi
- Data independence
Definisi data dapat terjadi dalam 2 tahap. Pada satu level, struktur logika dari data dispesifikasikan (schema definition) dan pada level yang lain struktur fisik dari data didefinisikan (physical data description).
Ada 2 tipe kebebasan data :
- Kebebasan data secara logic : kekebalan aplikasi user untuk mengubah struktur logika database. Secara umum, jika aplikasi user dioperasikan pada sebuah subset atribut relasi, tidak ada pengaruh yang terjadi jika atribut baru ditambahkan ke relasi yang sama.
- Kebebasan data secara fisik : berhubungan dengan penyembunyian rincian struktur penyimpanan dari aplikasi user. Saat aplikasi user ditulis, rincian dari organisasi data secara fisik tidak perlu diperhatikan. Organisasi data apa pun dapat dipakai.
- Transparansi jaringan/ terdistribusi
Jika ingin mengkopi sebuah file, perintah yang digunakan seharusnya sama untuk pengkopian dalam satu mesin atau antar mesin yang terhubung dengan jaringan. Sayangnya banyak OS untuk jaringan yang belum menyediakan transparansi ini.
cp <source file> <target file> ; satu mesin
rcp <machine-name:source file> <machine-name:target file> ; mesin berbeda
Transparansi lokasi merupakan transparansi terhadap perintah yang bebas digunakan pada lokasi data maupun pada sistem dimana operasi berjalan.
Transparansi penamaan (naming tranparancy) berarti nama yang unik diberikan ke setiap objek database. Caranya dengan menambahkan nama lokasi (identifier) sebagai bagian dari nama objek. Sistem yang bertanggungjawab memberikan penamaan terhadap objek agar menjadi unik.
- Transparansi replikasi
- Transparansi fragmentasi
- Siapa yang menyediakan transparansi
Sayangnya tidak semua OS memiliki manajemen jaringan ini. Lapis ketiga ada pada DBMS. DBMS bertindak sebagai operasi yang terintegrasi dan sistem manajemen DB. Yang khas adalah pembuatan DBMS pada komputer generalpurpose yang berjalan di beberapa OS. Pada lingkungan ini, transparansi dan dukungan fungsi DB yang disediakan untuk perancang DBMS sangat minimal dan khas ke operasi dasar untuk menjalankan tugas khusus.
DBMS bertanggungjawab untuk membuat semua translasi yang berarti dari OS ke interface user yang lebih tinggi.
CLIENT-SERVER
Di lingkungan file-server, pemrosesan didistribusikan ke jaringan yang Local Area Network (LAN). File-Server menunjang kebutuhan file dengan aplikasi-aplikasi dan DBMS. Aplikasi dan DBMS bekerja pada masing-masing workstation.
Permintaan file dari file-server diilustrasikan pada gambar di atas. File-server bertindak sebagai sebuah drive hard-disk yang dapat dipakai bersama. DBMS pada masing - masing workstation mengirimkan permintaan ke file-server untuk seluruh data yang dibutuhkan DBMS yang disimpan di disk.
Contoh :
SELECT fname, lname
FROM b, staff s
WHERE b.bno = s.sno AND b.street = '163 Main St' ;
SELECT fname, lname
FROM b, staff s
WHERE b.bno = s.sno AND b.street = '163 Main St' ;
File-server tidak mempunyai pengetahuan SQL, DBMS harus meminta file-file untuk berhubungan dengan relasi Branch dan Staff dari file-server.
Kerugian arsitektur file-server :
- Adanya lalulintas network.
- Salinan DBMS dibutuhkan pada masing - masing workstation.
- Concurency, recovery dan integrity kontrol lebih kompleks karena pada multiple DBMS mengakses file yang dapat dipakai bersama.
Artikel terkait : 9_Database Terdistribusi, bab19_dbt, DATABASE TERDISTRIBUSI, Pertemuan-5-Database-terdistribusi
Tidak ada komentar:
Posting Komentar