Sabtu, 28 September 2013

Arsitektur Database Distribusi

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.






Database distibusi

Database terdistribusi Yaitu kumpulan data yang digunakan bersama yang saling terhubung secara logic tetapi tersebar secara fisik pada suatu jaringan computer.
Dalam sebuah database terdistribusi, database disimpan pada beberapa komputer. Komputer-komputer dalam sebuah sistem terdistribusi berhubungan satu sama lain melalui bermacam-macam media komunikasi seperti high-speed buses atau telephone line.
Sebuah sistem database terdistribusi berisikan sekumpulan site, di mana tiap-tiap site dapat berpartisipasi dalam pengeksekusian transaksi-transaksi yang mengakses data pada satu site atau beberapa site. Tiap-tiap site dapat
memproses transaksi lokal yaitu sebuah transaksi yang mengakses data pada satu site di mana transaksi telah ditentukan.
Sebuah site juga dapat mengambil bagian dalam mengeksekusi transaksi global yaitu transaksi yang mengakses data pada site yang berbeda di mana transaksi telah ditentukan, atau transaksi yang mengakses data pada beberapa site yang berbeda.

Basis data (database) adalah Representasi kumpulan fakta yang saling berhubungan disimpan secara bersama sedemikian rupa dan tanpa pengulangan (redudansi) yang tidak perlu, untuk memenuhi berbagai kebutuhan. Data perlu disimpan dalam basis data untuk keperluan penyediaan informasi lebih lanjut. Data di dalam basis data perlu diorganisasikan sedemikian rupa, supaya informasi yang dihasilkan berkualitas. Organisasi basis data yang baik juga berguna untuk efisiensi kapasitas penyimpanannya. Dalam maksud yang sama, bisa juga diartikan sebagai sekumpulan informasi yang disusun sedemikian rupa untuk dapat diakses oleh sebuah software tertentu.
Database tersusun atas bagian yang disebut field dan record yang tersimpan dalam sebuah file. Sebuah field merupakan kesatuan terkecil dari informasi dalam sebuah database. Sekumpulan field yang saling berkaitan akan membentuk record. 

Tiga faktor utama yang membentuk suatu database adalah sebagai berikut.
  • field di dalam database diartikan sebagai identitas spesifik dari sebuah objek. Misal objeknya mobil, field warnanya biru, field bahan bakar solar, dst
  • record secara umum artinya merekam, atau rekaman. Di dalam database disebut juga sebagai kumpulan identitas dari satu object. Kumpulan dari beberapa field tentang satu objek. Misalnya database tentang mobil, masing-masing mobil memiliki satu record yang datanya disimpan di dalam berbagai field.
  • file adalah arsip yang disimpan dalam suatu media, yang terdiri dari kumpulan karakter, dan didokumentasikan dalam bentuk data digital oleh komputer.

Adapun Struktur Database adalah: Database File/TableRecord Elemen data/Field dari pengertian diatas dapat disimpulkan bahwa basis data mempunyai beberapa kriteria penting, yaitu:
  1. Bersifat data oriented dan bukan program oriented.
  2. Dapat digunakan oleh beberapa program aplikasi tanpa perlu mengubah basis datanya.
  3. Dapat dikembangkan dengan mudah, baik volume maupun strukturnya.
  4. Dapat memenuhi kebutuhan sistem-sistem baru secara mudah
  5. Dapat digunakan dengan cara-cara yang berbeda.

Hubunga logis file dapat diperoleh dengan hubungan eksplisit dan implisit. Hubungan eksplisit, antara record dari beberapa file dengan menyusun record-record tersebut dalam suatu hirarkhis, yang disebut struktur hirarkhis adalah dimana setiap catan pada suatu tingkat dapat dihubungkan ke berbagai record setingkat lebih rendah.Meskipun struktur hirarkhis mempunyai kemampuan luar biasa dalam mengatasi kendala-kendala fisik, namun penggunaan hubungan eksplisit tersebut masih mempunyai kelemahan. Hubungan implisit, hubungan antar record yang tidak harus dinyatakan secara eksplisit, link field khusus tidak perlu disertakan dalam record. Pendekatan ini disebut dengan struktur relasional dan menggunakan hubungan implisit, yaitu hubungan yang dapat dinyatakan secara tidak langsung dari record data yang telah ada. 

Keuntungan dari steruktur relasional bagi CBIS (computer based information system), sistem informasi berbasis kamputer) adalah fleksibilitas yang ditawarkannya dalam rancangan dan penggunaan database. 

Pengguna dan spesialis informasi dibebaskan dari keharusan mengidentifikasi semua informasi yang diperlukan sebelum menciptakan database, dan prinsip utama database adalah pengaturan data dengan tujuan utama fleksibelitas dan kecepatan pada saat pengambilan data kembali. 


Adapun ciri-ciri basis data diantaranya adalah sebagai berikut :
  • Efisiensi meliputi kecepatan, ukuran, dan ketepatan
  • Data dalam jumlah besar.
  • Berbagi Pakai (dipakai bersama sama/Sharebility).
  • Mengurangi bahkan menghilangkan terjadinya duplikasi dan inkonsisten data.

Pengertian dari database terdistribusi adalah, Semua perusahaan atau organisasi yang menggunakan Relation Database Management System (RDBMS) biasanya mempunyai database yang banyak atau tidak hanya satu. Oleh karena itu kenapa mereka biasanya menggunakan konsep sistem terdistribusi dalam implementasinya.


Ada beberapa faktor penyebabnya antara lain:
  1. Perbedaan database biasanya didasarkan pada fungsionalitas dari database itu sendiri, misalkan untuk bagian keuangan, pemasaran ataupun sumberdaya manusia.
  2. Perbedaan database juga biasanya didasarkan pada letak geografis yang ada, semisal untuk dalam satu kota.
  3. Perbedaan database juga biasanya didasarkan pada bagaimana cara mengaksesnya misalkan untuk database transaksi atau untuk penggudangan data (data warehouse).
  4. Database pada internet Commerce biasanya diduplikasi sebagai cadangan dengan skala kemampuan yang sama.
  5. Database juga dibedakan untuk sistem yang sedang berjalan ataupun untuk yang sedang dikembangkan.

Untuk mengakomodasi kebutuhan itu maka oracle membentuk suatu skema yang memungkinkan semuanya bisa terjadi dengan konsep sistem terdisribusi. Selain struktur database juga mempunyai konsep atau rancangan yang biasa di sebut dengan konsep database diantaranya adalah konsep terdistribusi.


Konsep database terdistribusi adalah suatu koleksi data komputer yang terintegrasi, diorganisasikan dan disimpan dengan suatu cara yang memudahkan pengambilan kembali. Integrasi logis dari record-record dalam banyak file ini disebut konsep database yang bertujuan untuk meminimumkan pengulangan data (duplikasi data artinya data yang sama disimpan dalam beberapa file) dan mencapai independensi data (kemampuan untuk membuat perubahan dalam struktur data tanpa membuat perubahan pada program yang memproses data).


Independensi data diperoleh dengan menempatkan spesifikasi data dalam tabel data dan kamus yang terpisah secara fisik dari program. Program mengacu pada tabel untuk mengakses data.


Hirarkhi data dalam konsep system database yaitu Database, File, Record, dan Elemen Data. Teknologi sistem database terdistribusi dimana kuncinya adalah integrasi, bukan sentralisasi, serta teknologi ini mencoba untuk mencapai integrasi tanpa sentralisasi.


Database terdistribusi berbeda dengan database terdesentralisasi, dimana database terdistribusi merupakan suatu database tunggal logik yang secara fisik disebarkan kepada komputer-komputer pada banyak lokasi yang kemudian saling dikoneksikan oleh link data komunikasi. Sedangkan database terdesentralisasi merupakan koleksi database independen pada komputer yang tidak terhubung dalam suatu jaringan. Suatu sistem database terdistribusi terdiri atas situs-situs yang saling berpasangan yang tidak saling membagi komponen fisik. Sistem database akan berjalan pada situs yang independen.
Dalam menyusun suatu data terdistribusi perlu diperhatikan hal-hal sebagai berikut :
  1. Replikasi data, data-data harus tetap up-to-date tanpa kompromisasi pada performansi
  2. Akses yang terjadi secara bersamaan, harus menghindari terjadinya kesalahan pada data
    • Masalah keamanan
    • Masalah reliabilitas.

Sistem database terdistribusi pada Oracle mengijinkan aplikasi-aplikasi untuk mengakses data dari database yang lokal maupun jauh. Dalam sebuah sistem database terdistribusi homogen setiap database merupakan Oracle Database, sedangkan pada sistem database terdistribusi heterogeneous paling sedikit satu diantara sekumpulan database bukan merupakan Oracle Database. Distribusi basis data menggunakan arsitektur client/server untuk memproses permintaan informasi.


Tahap-tahap atau faktor terciptanya database adalah sebagai barikut, dari pengertiannya database sendiri database dapat diartikan sebagai sekumpulan data atau fakta yang saling berhubungan dan di susun menjadi satu kesatuan dan disimpan secara bersamaan. Proses terciptanya suatu database terjadi dari beberapa tahap yaitu, menentukan kebutuhan data, menjelaskan data, dan memasukkan data ke dalam database.
  1. Menentukan kebutuhan data.

    Mendefenisikan kebutuhan data adalah langkah kunci dalam CBIS (computer based information system, sistem informasi berbasis kamputer). Ada dua pendekatan dalam tahap ini yaitu pendekatan berorientasi proses dengan cara mengikuti langkah-langkah yang telah ditetapkan yaitu mendefinisikan masalah, menetapkan data untuk diproses sebagai informasi, kemudian mendefinisikan informasi yang diperlukan selanjutnya memproses dan mengolah informasi, selanjutnya proses terakhir adalah mengambil keputusan dalam pemecahan masalah. Yang kedua adalah pendekatan model perusahaan. Pendekatan ini untuk mengatasi kelemahan pendekatan yang pertama (sukar mengaitkan data suatu sistem ke data sistem lain). Oleh karenanya diatasi dengan menentukan seluruh kebutuhan data perusahaan dan kemudian menyimpan data tersebut dalam database.
  2. Menjelaskan data.

    Setelah elemen-elemen data yang diperlukan ditentukan, maka elemen data tersebut dijelaskan dalam bentuk kamus data (data dictionary). Kamus data adalah suatu ensiklopedi dari informasi yang berkenaan dengan data organisasi/perusahaan, dan penjelasan ini dikomunikasikan kepada komputer melalui data description laguage - DDL, yang menghasilkan skema. Subskema mencerminkan kebutuhan para pemakai individual.
  3. Memasukkan data.

    Setelah skema dan subskema diciptakan data dapat dimasukkan kedalam database. Hal ini dapat dilakukan dengan memasukkan data langsung ke dalam DBMS (database management system), membaca data dari pita atau piringan atau melakukan scan data secara optis. Data siap untuk digunakan setelah berada dalam database.


Setelah tahap penciptaan selesai dan database telah terbentuk maka database tersebut akan digunakan atau dipakai. Pengguna atau pemakai database dapat berupa orang atau program aplikasi. Orang biasanya menggunakan database dari terminal dan mengambil data dan informasi dengan menggunakan query language. Istilah query adalah permintaan informasi dari database, dan arti dari query language adalah bahasa khusus yang user friendly yang memungkinkan komputer menjawab query atau permintaan informasi atau datatersebut. Permintaan-permintaan tersebut akan di eksekusi atau di jalankan oleh database dengan proses sebagai berikut.
  • Data Manipulation Language (DML) menentukan DBMS (database management system) data apa yang diperlukan.
  • DBMS memeriksa skema dan subskema untuk menguji bahwa data ada dalam database.
  • DBMS meneruskan permintaan data ke sistem operasi.
  • DBMS mengambil data dan memasukkannya ke dalam area penyimpanan buffer khusus dalam penyimpanan primer.
  • Data tersebut ditransfer ke dalam area input program aplikasi.
  • DBMS mengembalikan pengendalian ke program aplikasi.
  • Program aplikasi menggunakan data.