Distributed Relational Database Design Tiga hal utama dalam desain database terdistribusi : Pembagian (Fragmentation) Relasi dapat dibagi menjadi beberapa bagian relasi , yang kemudian didistribusikan. Ada 2 jenis fragmentasi : Horizontal dan Vertical. Alokasi (Allocation) Setiap fragment disimpan pada tempat (site) dengan distribusi yang optimal. Perbanyakan (Replikasi) Salinan dari fragmen yang terdapat/dipelihara pada beberapa tempat/site. Fragmentation Definisi dan alokasi dari fragmen dilaksanakan secara strategis untuk mencapai tujuan :
Locality of reference, jika memungkinkan sebaiknya data disimpan dekat
kejadian bottleneck sehingga menyebabkan suatu site menjadi terbanjiri request/permintaan dari site lain, sehingga menyebabkan penurunan performa yang cukup signifikan.
Balanced storage capacities and cost, pertimbangan terhadap ketersedian
(remote request). Definisi dan alokasi fragmen harus berdasarkan kepada bagaimana database tersebut akan digunakan. Desain berdasarkan pada informasi kuantitatif atau kualitatif. Informasi kuantitatif digunakan dalam pengalokasian, dapat berisi : Frekuensi dimana suatu aplikasi dijalankan. Tempat/site dimana suatu aplikasi dijalankan.
Kriteria atau syarat syarat performa untuk transaksi transaksi. Informasi kualitatif digunakan dalam fragmentasi, dapat berisi informasi mengenai transaksi transaksi yang dieksekusi atau dijalankan seperti : Relasi, atribut dan tuple yang diakses. Tipe pengaksesan ( baca atau tulis ). Predikat dari operasi operasi baca. Terdapat 4 alasan mengapa dilakukan fragmentasi : Usage Pada umumnya, aplikasi bekerja menggunakan view daripada keseluruhan relasi. Oleh karena itu untuk data terdistribusi lebih tepat bekerja dengan himpunan bagian dari relasi sebagai unit dari distribusi Efficiency Data disimpan lebih dekat dengan bagian yang lebih sering menggunakannya Parallelism Dengan fragmen sebagai unit distribusi, transaksi dapat dibagi menjadi beberapa subquery yang beroperasi pada fragmen. Sehingga dapat meningkatkan konkurensi atau parallelism dalam sistem Security Data yang tidak dibutuhkan oleh aplikasi lokal tidak disimpan dan tidak tersedia untuk user yang tidak berwenang
Ketepatan dalam fragmentasi teratasi dengan 3 aturan berikut : Completeness Jika relasi R didekomposisikan menjadi R1, R2,, Rn. maka setiap data item yang ditemukan dalam R harus ada dalam sedikitnya 1 fragmen. Aturan ini untuk memastikan bahwa tidak ada data yang hilang selama fragmentasi. Reconstruction Harus memungkinkan mendefinisikan operasi relasional yang akan merekonstruksi relasi R dari fragmen-fragmen. Aturan ini memastikan terdapatnya ketergantungan fungsional. Disjointness
Jika data item di muncul dalam fragmen Ri maka tidak boleh muncul pada fragmen lainnya. Fragmentasi vertikal merupakan pengecualian, dimana atribut primary key harus diulang untuk memungkinkan rekonstruksi. Aturan ini memastikan kerangkapan data menjasi minimal.
Macam-macam Fragmentasi :
Horizontal fragment, terdiri dari himpunan bagian dari tuple-tuple dalam Vertical fragment, terdiri dari himpunan bagian dari atribut-atribut dalam Mixed fragment, terdiri dari fragmen horizontal yang kemudian difragmen Derived horizontal fragment, merupakan fragmen horizontal yang
relasi relasi vertikal atau kebalikannya dihasilkan dari fragmen horizontal relasi parent. Alokasi Data Empat strategi alternatif mengenai alokasi data yaitu: Centralized (Terpusat) Terdiri dari database tunggal dan penyimpanan DBMS di satu tempat dengan user (pengguna) terbagi bagi melalui jaringan. Partitioned (Partisi) Database dipartisi menjadi fragmen yang terpisah pisah, tiap fragmen ditempatkan ke dalam satu tempat/site. Complete Replication (Replikasi lengkap) Terdiri dari pemeliharaan secara lengkap replikasi dari database pada setiap tempat. Selective Replication (Replikasi selektif) Kombinasi dari partitioning, replication, dan centralization. Transparansi dalam DDBMS Diidentifikasikan 4 jenis transparansi dalam DDBMS, yaitu :
Memungkinkan user untuk menganggap database sebagai entitas logical tunggal. Ada 5 tingkatan transparansi, yaitu : o Fragmentation Transparency
tarnsparansi fragmentasi disediakan oleh DDBMS maka user tidak perlu tahu bahwa data difragmentasi. Sebagai hasilnya akses database berdasarkan pada skema global. o Location Transparency Merupakan tingkatan menengah dari transparansi distribusi. Dengan transparansi ini user harus mengetahui bahwa data telah difragmentasi tetapi tidak perlu mengetahui ditempatkan dimana data tersebut. o Replication Transparency Terkait erat dengan transparansi lokasi, dimana user tidak mengetahui replikasi dari fragmen. o Local Mapping Transparency Merupakan tingkatan terendah dari transparansi distribusi. Dengan transparansi pemetaan lokal, user perlu untuk mespesifikasikan nama fragmen dan lokasi data item, dengan pertimbangan terdapat replikasi. o Naming Transparency Sebagai akibat dari transparansi distribusi diatas. Seperti dalam database terpusat, setiap data item dalam database terdistribusi harus mempunyai nama yang unik. Karena itu DDBMS harus memastikan tidak ada 2 site yang membuat objek database dengan nama yang sama. Salah satu solusi untuk masalah ini dengan membuat pusat Name server, yang bertanggung jawab untuk memastikan keunikan setiap nama dalam sistem.
Memastikan bahwa seluruh transaksi terdistribusi memelihara integritas dan konsistensi dari database. Transaksi terdistribusi mengakses data yang disimpan pada lebih dari 1 lokasi. Setiap transaksi dibagi menjadi subtransaksi, satu untuk setiap site yang harus diakses. Terdapat 2 aspek yang harus dipertimbangkan dalam transparansi transaksi : concurency transparency dan failure transparency.
o
seluruh transaksi yang konkuren ( terdistribusi ataupun tidak ) dieksekusi secara independen dan secara logika konsisten dengan hasil yang didapatkan jika transaksi dieksekusi pada waktu yang bersamaan.
Failure
Transparency,
selain
dapat
memenuhi
mekanisme
recovery dan mengatasi failure seperti pada DBMS terpusat, DDBMS juga harus dapat mengatasi : hilangnya pesan, kegagalan jalur komunikasi, kegagalan site, dan partisi jaringan. DDBMS harus memastikan keutuhan (atomicity) dari transaksi global, dimana memastikan bahwa subtransaksi dari global transaksi seluruhnya COMMIT atau ABORT. Terdapat 4 macam transaksi dengan tingkat kerumitan dalam interaksi dengan DBMS, yaitu :
o
request (perintah SQL) ke beberapa remote site untuk eksekusi. Request tersebut dieksekusi seluruhnya di remote site dan hanya dapat mengacu pada data yang terdapat pada site tersebut.
o
mengirimkan seluruh perintah SQL dalam transaksi ke beberapa remote site untuk eksekusi. Seluruh perintah SQL dieksekusi seluruhnya di remote site dan hanya dapat mengacu pada data yang ada pada site tersebut. Site lokal dapat menetapkan apakah transaksi tersebut COMMITED atau ROLLED BACK.
o
mengirimkan sebagian atau seluruh perintah SQL dalam transaksi ke satu atau beberapa remote site untuk eksekusi. Setiap perintah SQL dieksekusi seluruhnya pada remote site dan hanya dapat mengacu pada data yang ada pada site tersebut. Perintah SQL lainnya dapat dieksekusi pada site yang lain. Site lokal dapat me netapkan apakah transaksi tersebut COMMITED atau ROLLED BACK.
o
mengirimkan sebagian atau seluruh perintah SQL dalam transaksi ke satu atau beberapa remote site untuk eksekusi. Perintah SQL dapat meminta akses data pada satu atau lebih site.
Transparansi performa meminta DDBMS untuk bekerja seperti DBMS terpusat. Terdapat Distributed Query Processing (DQP) yang memetakan
permintaan data kedalam perintah operasi terurut pada database lokal. DQP harus memutuskan : o o o DQP Fragmen mana yang harus diakses Salinan fragmen yang mana yang harus digunakan, jika fragmen Lokasi mana yang digunakan menghasilkan strategi eksekusi yang dioptimalkan dengan
telah diperbanyak
pertimbangan fungsi biaya. Biaya yang biasanya terkait dengan distributed request diantaranya : o disk o o
Biaya waktu akses (I/O) termasuk pengaksesan data fisik pada Adanya biaya waktu CPU ketika menjalankan operasi terhadap Biaya komunikasi terkait dengan perpindahan data melalui jaringan
Transparansi DBMS menyembunyikan pengetahuan bahwa DBMS lokal mungkin dapt berbeda dan karena itu hanya diaplikasikan untuk DDBMS yang heterogen. Merupakan Transparansi yang paling rumit untuk penyediaan sebagai generalisasi. Perbandingan Strategis untuk Distribusi Data
Terhadap pengguna, sistem terdistribusi harus kelihatan seperti bukan sistem terdistribusi. 1. Autonomy Lokal, maksudnya : 2. Data lokal dimiliki dan diatur secara lokal. Operasi lokal berlangsung di lokal. Semua operasi yang berlangsung di suatu site dikontrol oleh site tersebut.
Tidak ada ketergantungan pada site pusat. Tidak ada sistem yang tidak dapat beroperasi di suatu site. Artinya tidak ada jaringan yang terpusat.
3.
Operasi yang terus berlanjut. Tidak perlu ada rencana untuk membuat sistem dimatikan, untuk operasi seperti : Menambah atau menghapus site dari sistem. Membuat dan menghapus fragmen pada satu atau lebih site.
4. 5. 6.
Location Independence. Pengguna harus dapat mengakses data dari berbagai tempat. Fragment Independence. User harus dapat mengakses data pada berbagai fragmen. Replication Independence. Pengguna tidak boleh mengetahui bahwa data telah direplikasi. Walaupun, pengguna tidak dapat mengakses copy dari data tersebut secara langsung, tidak juga dapat mengupdate semua copy dari jenis jenis data tersebut.
7.
Distributed Query Processing. Sistem harus dapat mampu mengolah query query yang menghubungkan data pada lebih dari satu tempat.
8.
Distributed Transaction Processing. Sistem harus dapat mendukung transaksi sebagai unit dari recovery. Sistem harus dapat menyakinkan bahwa kedua local dan global transaksi mengacu ke aturan ACID untuk transaksi secara atomik, konsisten, lokasi dan durasi.
9.
Hardware Independence. DDBMS harus dapat dijalankan pada berbagai platform hardware.
10. Operating System Independence. DDBMS harus dapat dijalankan pada berbagai sistem operasi. 11. Network Independence.
DDBMS harus dapat dijalankan pada berbagai hubungan jaringan yang berbeda. 12. Database Independence. DDBMS harus dapat dimungkinkan dibangun dari DBMSs lokal, mendukung data model yang berbeda. Dengan kata lain, sistem harus dapat mendukung keaneka ragaman.
Catatan : Empat aturan yang terakhir di atas adalah yang paling ideal atau paling bagus diterapkan untuk suatu DDBMS.