Tugas Perancangan Basis Data (DDBMS)

Untuk membahas mengenai DDBMS, terlebih dahulu mengetahui apa yang di maksud dengan basis data terdistribusi dan DBMS terdistribusi.
Basis data terdistribusi yaitu : Secara logik keterhubungan dari kumpulan-kumpulan data yang digunakan bersama-sama, dan didistribusikan melalui suatu jaringan komputer.
sedangkan DBMS Terdistribusi yaitu : Sebuah sistem perangkat lunak yang mengatur basis data terdistribusi dan membuat pendistribusian data secara transparan.
jadi Distributed Data Base Management System (DDBMS) adalah software yang mengelola DDBS dan menyediakan mekanisme agar distribusi tersebut transparan dihadapan user

DDBMS memiliki satu logikal basis data yang dibagi ke dalam beberapa fragment. Dimana setiap fragment disimpan pada satu atau lebih komputer dibawah kontrol dari DBMS yang terpisah , dengan mengkoneksi komputer menggunakan jaringan komunikasi.
Masing- masing site memiliki kemampuan untuk mengakses permintaan pengguna pada data lokal dan juga mampu untuk memproses data yang disimpan pada komputer lain yang terhubung dengan jaringan. Pengguna mengakses basis data terdistribusi dengan menggunakan dua aplikasi yaitu aplikasi lokal dan aplikasi global, sehingga DDBMS memiliki karakteristik yaitu :
a. Kumpulan dari data logik yang digunakan bersama-sama
b. Data di bagi menjadi beberapa fragment
c. Fragment mungkin mempunyai copy ( replika )
d. Fragment / replika nya di alokasikan pada yang digunakan
e. Setiap site berhubungan dengan jaringan komunikasi
f. Data pada masing-masing site dibawah pengawasan DBMS
g. DBMS pada masing-masing site dapat mengatasi aplikasi lokal, secara otonomi
h. Masing-masing DBMS berpastisipasi paling tidak satu global aplikasi.

KEUNTUNGAN DDBMS :
1. Merefleksikan pada bentuk dari struktur organisasinya
2. Penggunaan bersama dan lokal otonomi
3. Keberadaan data yang ditingkatkan
4. Keandalan yang ditingkatkan
5. Kinerja yang ditingkatkan
6. Ekonomi
7. Perkembangan modular
KERUGIAN DDBMS :
1. Kompleksitas
2. Biaya
3. Keamanan
4. Pengontrolan Integritas lebih sulit

Fungsi – fungsi pada DDBMS yaitu :
1. Memberikan pelayanan komunikasi untuk memberikan akses terhadap site- site yang terhubung baik yang site yang jarak dekat maupun yang letak nya cukup jauh dan mengijinkan pencarian data ke site – site yang terhubung.
2. Memiliki sistem katalog untuk menyimpan kumpulan detail data yang telah didstribusikan.
3. Mendistribusikan proses pencarian, termasuk optimasisasi dan pengaksesan dari jarak jauh.
4. Memberikan pengendalian keamanan untuk akses ataupun otoritas yang telah diberikan .
5. Memberikan kontrol konkurensi untuk memelihara data yang telah di replikasi.
6. Memberikan pelayanan recoveri untuk mengambil laporan yang rusak dari setiap site dan kegagalan dalam hubungan komunikasi

SISTEM DDBMS
contoh software DDBMS :

* ORACLE7 SERVER DISTRIBUTE SYSTEM

http://docs.oracle.com/cd/A57673_01/DOC/server/doc/SCN73/ch21.htm
http://docs.oracle.com/cd/A57673_01/DOC/server/doc/SD173/toc.htm#org
http://www.oracle.com/technetwork/documentation/oracle7-091910.html

* DOWNLOAD:

http://www.brothersoft.com/downloads/oracle-7.html

DEADLOCK

Setelah mencari-cari dari berbagai sumber, dan dapat disimpulkan bahwa :
A). Algoritma Banker
Adalah Algoritma resource allocation graph tidak dapat diaplikasikan pada sistem yang mempunyai beberapa anggota pada setiap tipe sumber daya. Setiap proses sebelum
dieksekusi harus menentukan jumlah sumber daya maksimum yang dibutuhkan. Jika
suatu proses meminta sumber daya kemungkinan proses harus menunggu. Jika suatu
proses mendapatkan semua sumber daya maka proses harus mengembalikan semua
sumber daya dalam jangka waktu tertentu.
Struktur data yang digunakan untuk mengimplementasikan algoritma Banker
akan menentukan state dari sumber daya yang dialokasikan oleh sistem. Misalnya n =
jumlah proses dan m = jumlah tipe resource. Struktur data yang diperlukan :
• Available : Vektor panjang m. Jika Available[j] = k, terdapat k anggota tipe sumber daya Rj yang tersedia.
• Max : matrik n x m. Jika Max[i, j] = k, maka proses Pi meminta paling banyak k
anggota tipe resource Rj.
• Allocation : matrik n x m. Jika Allocation[i, j] = k maka Pi sedang dialokasikan k
anggota tipe resource Rj.
• Need : matrik n x m. Jika Need[i, j] = k, maka Pi membutuhkan k anggota tipe
resource Rj untuk menyelesaikan task. Need[i, j] = Max[i, j] – Allocation[i, j].
Beberapa notasi yang perlu diketahui adalah misalnya X dan Y adalah vektor
dengan panjang n. X ≤ Y jika dan hanya jika X[i] ≤ Y[i] untuksemua i = 1, 2, .., n.
Sebagai contoh jika X = (1, 7, 3, 2) dan Y = (0, 3, 2, 1) maka Y ≤ X.

Kelemahan Banker’s algorithm
- Proses kebanyakan belum mengetahui jumlah maksimum resource yang dibutuhkan.
- Jumlah proses tidak tetap.
- Beberapa resource dapat diambil dari sistem sewaktu-waktu.
- Algoritma membuat sistem untuk memenuhi permintaan hingga waktu yang tidak terbatas.


B). Algoritma Safty
adalah Algoritma ini untuk menentukan apakah sistem berada dalam state selamat atau
tidak.
1. Work dan Finish adalah vector dengan panjang m dan n. Inisialisasi : Work =
Available dan Finish[i] = false untuk i = 1,3, …, n.
2. Cari i yang memenuhi kondisi berikut :
(a) Finish [i] = false
(b) Needi ≤ Work
Jika tidak terdapat i ke langkah 4.
3. Work = Work + Allocationi
Finish[i] = true
Kembali ke langkah 2.
4. Jika Finish [i] == true untuk semua i, maka sistem dalam state selamat.
A B C A B C A B C
P0 0 1 0 7 4 3 2 3 0
P1 3 0 2 0 2 0
P2 3 0 1 6 0 0
P3 2 1 1 0 1 1
P4 0 0 2 4 3 1

Kemudian yang harus ditentukan adalah apakah sistem berada dalam state selamat. Setelah mengeksekusi algoritma safety ternyata urutan memenuhi kriteria safety. Setelah sistem berada pada state diatas, permintaan (3,3, 0) oleh P4 tidak dapat dipenuhi karena sumber daya tidak tersedia. Permintaan (0, 2, 0) oleh P1 juga tidak dapat dipenuhi karena meskipun sumber daya tersedia, hasilnya state tidak selamat.

C). Algoritma Ostrich
Adalah adalah strategi mengabaikan masalah yang mungkin terjadi atas dasar bahwa masalah itu mungkin sangat jarang terjadi - "menempel kepala di pasir dan berpura-pura bahwa tidak ada masalah". Dengan mengasumsikan bahwa lebih efektif untuk memungkinkan masalah itu terjadi dibandingkan upaya pencegahannya.
Pendekatan ini dapat digunakan dalam menangani deadlock pada pemrograman concurrent jika deadlock diyakini sangat jarang terjadi, dan jika biaya untuk mendeteksi atau pencegahan lebih tinggi.