Rabu, 26 Oktober 2011

DDB dan Perancangannya, Transparansi pada DDBMS, Client-Server


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 :
  1. Data dikirim ke komputer pengolahan (yang melakukan transaksi).
  2. 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 :

  1. Menerima permintaan pemakai dan menentukan node pengolahnya.
  2. Mengakses directory jaringan untuk tujuan satu.
  3. Mengkoordinasi penggunaan node-node, jika data ada pada banyak node.
  4. Mengatur komunikasi antar node NDBMS dan DBMS di node lain.
  5. 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 :
  1. 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.
  2. Efisiensi, data disimpan dekat dengan yang menggunakan. Dengan tambahan data yang tidak sering digunakan tidak usah disimpan.
  3. 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.
  4. Keamanan, data yang tidak dibutuhkan oleh aplikasi tidak disimpan dan konsukuen tidak boleh di ambil oleh pengguna yang tidak mempunyai otoritas.
Kerugian-kerugian fragmentasi :
  1. Kinerja, cara kerja dari aplikasi yang membutuhkan data dari beberapa lokasi fragmen di beberapa situs akan berjalan dengan lambat.
  2. Integritas, pengawasan integritas akan lebih sulit jika data dan fungsional ketergantungan di fragmentasi dan dilokasi pada beberapa situs yang berbeda.
Beberapa peraturan yang harus diidentifikasikan ketika mendefinisikan fragment : 
  1. 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.
  2. 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.
  3. 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.
Ada tiga strategi fragmentasi, yaitu : 
  1. 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

    
     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 :
ri = Π Ri (r)
Pembentukan kembali dengan menggunakan join natural : r = r1|x| r2 |x|…|x| rn
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.
 
   Deposit-scheme-3 = (branch-name, customer-name, 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)

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 :
  1. 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.
  2. 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.
  3. 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
Kebebasan data menjadi bentuk dasar transparansi yang terlihat di DBMS.Kebebasan data berarti kekebalan dari aplikasi user untuk mengubah definisi dan organisasi data dan sebaliknya.
 
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 :
  1. 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.
  2. 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
Dalam sistem terpusat, hanya satu sumber yang dipelihara user yaitu data (sistem penyimpanan). Dalam manajemen DB terdistribusi, ada sumber kedua yagn perlu dipelihara yaitu jaringan. User perlu dilindungi dari detail operasi jaringan. Tidak perlu ada perbedaan antara aplikasi database yang berjalan di DB terpusat dan DB terdistribusi. Akan baik jika memiliki keseragaman dalam operasi yang diakses.
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
Data yang mudah diakses oleh user dapat ditempatkan pada mesin local user seperti mesin user lain dengan akses data yang sama. Jika satu mesin gagal, salinan data masih ada pada lokasi mesin yang lain dalam jaringan. Keputusan direplikasikan atau tidak, dan berapa banyak salinan dari objek database, bergantung pada tingkatan aplikasi user. Tetapi replikasi menyebabkan masalah dalam meng-update DB. Jika apllikasi user berorientasi pada update, sebaiknya tidak perlu ada banyak salinan data.
  • Transparansi fragmentasi
Fragmentasi dapat mengurangi efek negatif dari repllikasi. Setiap salinan tidak merupakan salinan penuh tetapi hanya sebuah subset, jadi ruang yang dibutuhkan lebih sedikit dan item data lebih sedikit untuk dipelihara. Saat objek DB difragment, masalah menangani queri user timbul. Masalah menangani strategi memproses queri berdasarkan fragment dibandingkan relasi meskipun query dibuat kemudian. Bentuk translasi ini disebut sebagai query global ke beberapa query fragment.
  • Siapa yang menyediakan transparansi
Penyediaan transparansi perlu melihat lapisan transparansi. Ada 3 lapisan transparansi yang berbeda yang dapat saling menguntungkan secara eksklusif dalam penyediaan service meskipun lebih sesuai untuk ditinjau sebagai tambahan. Tanggungjawab dalam menyediakan akses data yang transparan adalah akses lapisan. Transparansi dimulai dari transparansi bahasa yang menterjemahkan service yang diminta ke operasi yang dibutuhkan. Compiler atau interpreter mengambil alih tugas dan tidak ada service transparan disediakan untuk compiler atau interpreter. Lapis kedua adalah transparansi di level sistem operasi. Penyediaan akses transparan ke sumber daya di level OS diperluas ke distribusi, dimana manajemen jaringan diambil alih oleh OS terdistribusi.
 
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' ;

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 :
  1. Adanya lalulintas network.
  2. Salinan DBMS dibutuhkan pada masing - masing workstation.
  3. Concurency, recovery dan integrity kontrol lebih kompleks karena pada multiple DBMS mengakses file yang dapat dipakai bersama.
 
 
 

Tidak ada komentar:

Posting Komentar