Desain BASIS DATA TERDISTRIBUSI Fatoni, MM.,M.Kom. PENDAHULUAN Desain suatu organisasi dapat dipandang dari sudut tiga dimensi, yaitu : 1. Tingkat Sharing 2. Jenis Pola Akses 3. Tingkat Pengetahuan pada Jenis Pola Akses 1. TINGKAT SHARING 1. Tidak ada sharing : aplikasi dan data dijalankan dari setiap lokasi dan tidak ada komunikasi dengan program atau akses ke data di lokasi lain. 2. Sharing data : semua program disalin / replika di semua lokasi, tetapi data tidak disalin. Permintaan data dari user diolah oleh komputer dimana user mengakses dan file data akan dikirim melalui jaringan. 3. Sharing data dan program : user dari suatu lokasi dapat meminta layanan baik program maupun data dari lokasi lain dan juga sebaliknya. 2. JENIS POLA AKSES 1. Statik. Pola akses tidak berubah dari waktu ke waktu. 2. Dinamik. Pola akses berubah dari waktu ke waktu. (sangat sulit dijumpai sistem dengan pola akses dinamis) 3. TINGKAT PENGETAHUAN JENIS POLA AKSES Tingkat pengetahuan diukur dari seberapa banyak desainer memiliki informasi tentang bagaimana user akan mengakses data. 1. Informasi lengkap : tidak ada penyimpangan yang signifikan dari prediksi tentang pola akses user. 2. Informasi sebagian : ada penyimpangan dari prediksi STRATEGI DESAIN ALTERNATIF Terdapat dua strategi utama database terdistribusi yaitu : 1. Pendekatan top-down dan 2. Pendekatan bottom-up, dalam mendesain Namun pendekatan bottom up baru dapat dilakukan jika sudah ada database yang tersebar di beberapa lokasi. STRATEGI DESAIN ALTERNATIF 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 : 1. Fragmentasi, 2. Penempatan data atau alokasi dan 3. Replikasi. STRATEGI DESAIN ALTERNATIF 1. Fragmentasi : Sebuah relasi yang terbagi menjadi beberapa sub-sub relasi yang disebut dengan fragment, sehingga disebut juga distribusi. 2. Alokasi, setiap fragmen disimpan pada situs dengan distribusi yang optimal. 3. Replikasi, DDBMS dapat membuat suatu copy dari fragmen pada beberapa situs yang berbeda. TUJUAN DESAIN ALTERNATIF 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. TUJUAN DESAIN ALTERNATIF 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. TUJUAN DESAIN ALTERNATIF 5. 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 dibagibagi 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 FRAGMENTASI 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 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/kesatuan secara utuh lebih sulit jika atribut yang berperan dalam dependency/ketergantungan didistribusikan ke beberapa lokasi. FRAGMENTASI Terdapat dua fragmentasi data yaitu : 1. Fragmentasi Horizontal, yaitu subset dari tupel/Baris 2. Fragmentasi Vertical, subset dari atribut/kolom. CONTOH FRAGMENTASI HORIZONTAL Terdapat tabel PROJ yang dipecah menjadi fragmen PROJ1 dan PROJ2 PROJ1 : project dengan budget < 200,000 PROJ2 : project dengan budget > atau = 200,000 CONTOH FRAGMENTASI HORIZONTAL CONTOH FRAGMENTASI VERTIKAL Tabel PROJ dipecah menjadi dua PROJ1 dan PROJ2 PROJ1 : informasi tentang budget project PROJ2 : informasi tentang nama project dan lokasi CONTOH FRAGMENTASI VERTIKAL Fragmentasi Data Dapat diterapkan operasi union/ Gabungan ataupun operasi natural join/ menggabungkan dua tabel berdasarkan nama kolom yang sama. Contoh Tabel nasabah bank dengan struktur dan data sebagai berikut : nasabah = (no_nas, nama_nas, alamat_nas, kota, saldo_simpan, saldo pinjam) Fragmentasi Data Tabel Nasabah No_nas Nama_nas Alamat Kota Saldo_simp an Saldo_pinj am 2001001 Jamaludin Jl. Suci 10 Medan 100000 0 2001002 Nurhaliza Jl. Abdi 22 Medan 2300000 1450000 2001003 Nur Alam Jl. Aceh 10 Medan 1200000 3500000 2001004 Setia Jl.Jawa 112 Medan 1500000 1000000 2002001 Tini Jl. Adil 20 Padang 50000 0 2002002 Ahmad Jl. Taat 12 Padang 750000 0 2002003 Wisnu Jl Damai 11 Padang 2600000 5000000 2002004 Alif Jl. Mulia 1 100000 12000000 Padang Fragmentasi Data Horizontal nasabah1 = kota=‘Medan’ (nasabah) nasabah2 = kota=‘Padang’ (nasabah) Fragmentasi Data Horizontal Akan diperoleh 2 buah fragemen o Fragmen Nasabah1 o Fragmen Nasabah2 Terapkan operasi union nasabah = nasabah1 nasabah2 Fragmentasi Data Vertikal nasabah1 = no_nas, nama_nas, alamat, kota(nasabah) nasabah2 = no_nas, saldo_simpan (nasabah) nasabah3 = no_nas, saldo_pinjam (nasabah) Fragmentasi Data Replikasi dan Fragmentasi Upaya untuk replikasi dan fragmentasi data dapat dilakukan sekaligus pada sebuah tabel, yaitu dengan mereplikasi fragmenfragmen yang telah terbentuk. Misalnya, dalam sebuah sistem terdistribusi terdapat 5 buah simpul S1, S2, S3, S4 dan S5. Kita dapat memilah tabel nasabah sesuai dengan kota dimana nasabah mengajukan permohonan menjadi nasabah1, nasabah2 dan nasabah3. Kemudian dengan pertimbangan tertentu, fragmen nasabah1 disimpan di simpul S1, S2 dan S3. lalu fragmen nasabah2 disimpan disimpul S3 dan S4 dan fragmen nasabah3 disimpan di simpul S1 dan S3. ATURAN FRAGMENTASI Fragmentasi tidak dapat dilakukan secara sembarangan, untuk memastikan bahwa tidak terdapat perubahan database selama menjalani proses fragmentasi, proses fragmentasi harus mememuhi 3 aturan berikut ini : 1. Completeness (kelengkapan) 2. Reconstruction (Rekonstruksi) 3. Disjoinness (Dibuat dalam beberapa bagian). ATURAN FRAGMENTASI 1. Completeness (kelengkapan) Digunakan untuk memastika data tidak hilang saat proses fragmentasi 2. Reconstruction (Rekonstruksi) Aturan ini digunakan untuk memastikan bahwa ketergantungan secara fungsi terpenuhi. 3. Disjoinness (Dibuat dalam beberapa bagian). Digunakan untuk memastika terjadinya redudancy seminimal mungkin. REPLIKASI Replikasi adalah suatu teknik untuk melakukan copy dan pendistribusian data dan objek-objek database dari satu database ke database lain dan melaksanakan sinkronisasi antara database sehingga konsistensi data dapat terjamin. Secara sederhana replikasi database adalah proses automatik perintah dari database satu ke database lain yang tentunya terhubung dalam jaringan. ALOKASI DATA Ada empat strategis menurut penempatan data : 1. Sentralisasi 2. Partisi ( Fragmentasi ) 3. Replikasi yang lengkap 4. Replikasi yang selektif 1. SENTRALISASI Strategi ini berisi satu basis data dan DBMS yang disimpan pada satu situs dengan pengguna yang didistribusikan pada jaringan (Pemrosesan distribusi). Referensi lokal paling rendah di semua situs, kecuali situs pusat, harus menggunakan jaringan untuk pengaksesan semua data. Hal ini berarti juga : 1. Biaya komunikasi tinggi. 2. Keandalan dan keberadaan rendah, 3. kesalahan pada situs pusat akan mempengaruhi semua sistem basis data. 2. PARTISI(FRAGMENTASI) Strategi ini mempartisi basis data yang dipisahkan ke dalam fragmen-fragmen, dimana setiap fragmen di alokasikan pada satu site. Jika data yang dilokasikan pada suatu site, dimana data tersebut sering digunakan maka referensi lokal akan meningkat. Namun tidak akan ada replikasi, dan biaya penyimpanan nya rendah, sehingga keandalan dan keberadaannya juga rendah, walaupun pemrosesan distribusi lebih baik dari pada sentralisasi. 2. PARTISI(FRAGMENTASI) ... Ada satu kelebihan pada sentralisasi yaitu dalam hal kehilangan data, yang hilang hanya ada pada site yang bersangkutan dan aslinya masih ada pada basis data pusat. Kinerja harus bagus dan biaya komunikasi rendah jika distribusi di rancang dengan sedemikian rupa.. 3. REPLIKASI YANG LENGKAP Strategi ini berisi pemeliharaan salinan yang lengkap dari suatu basis data di setiap site. Dimana referensi lokal, keberadaan dan keandalan dan kinerja adalah maksimal. Bagaimanapun biaya penyimpanan dan biaya komunikasi untuk mengupdate besar sekali biayanya. Untuk mengatasi masalah ini, biasanya digunakan snapshot (adalah fungsi sesaat beberapa penyimpanan). 3. REPLIKASI YANG LENGKAP Snapshot digunakan untuk menyalin data pada waktu yang telah ditentukan. Data yang disalin adalah hasil update per periode , misalkan per minggu atau perjam, sehingga data salinan tersebut tidak selalu up to date. Snapshot juga digunakan untuk mengimplementasikan table view di dalam data terdistribusi untuk memperbaiki waktu yang digunakan untuk kinerja operasional dari suatu basis data. 4. REPLIKASI YANG SELEKTIF Strategi yang merupakan kombinasi antara partisi,replikasi dan sentralisasi. Beberapa item data di partisi untuk mendapatkan referensi lokal yang tinggi dan lainnya, yang digunakan di banyak lokasi dan tidak selalu di update adalah replikasi ;selain dari itu di lakukan sentralisasi. Obyektifitas dari strategi ini untuk mendapatkan semua keuntungan yang dimiliki oleh semua strategi dan bukan kelemahannya. Strategi ini biasa digunakan karena fleksibelitasnya. REPLIKASI Replikasi adalah suatu teknik untuk melakukan copy dan pendistribusian data dan objek-objek database dari satu database ke database lain dan melaksanakan sinkronisasi antara database sehingga konsistensi data dapat terjamin. Secara sederhana replikasi database adalah proses automatik perintah dari database satu ke database lain yang tentunya terhubung dalam jaringan. KEGUNAAN REPLIKASI Kegunaan dari proses replikasi ini adalah bila suatu database satu mengalami kerusakan maka secara otomatis semua data yang telah disimpan pada database satu dapat dilihat kembali di database lain. Proses Backup dan Restore agak kurang praktis, maka konsep inilah solusi keefektifan dalam menjawab kekurang praktisan kedua proses diatas. Konsep ini merupakan konsep teknologi yang unik, karena secara otomatis segala perintah yang ada pada database satu akan tersimpan pada database lain sehingga bila kehilangan data pada database satu, database masih tersimpan rapih di database lain. KEUNTUNGAN REPLIKASI 1. Memungkinkan beberapa lokasi menyimpan data yang sama 2. Aplikasi transaksi online terpisah dari aplikasi pembacaan 3. Memungkinkan otonomi yang besar. Pengguna dapat bekerja dengan mengcopy data pada saat tidak terkoneksi kemudian melakukan perubahan untuk dibuat database baru pada saat terkoneksi 4. Data dapat ditampilkan seperti layaknya melihat data tersebut dengan menggunakan aplikasi berbasis Web KEUNTUNGAN REPLIKASI 5. Meningkatkan kinerja pembacaan 6. Membawa data mendekati lokasi individu atau kelompok pengguna. Hal ini akan membantu mengurangi masalah karena modifikasi data dan pemrosesan query yang dilakukan oleh banyak pengguna karena data dapat didistribusikan melalui jaringan dan data dapat dibagi berdasarkan kebutuhan masing-masing unit atau pengguna. 7. Penggunaan replikasi sebagai bagian dari strategi standby server. KELEMAHAN REPLIKASI 1. Kompleksitas, adanya pekerjaan ekstra untuk memaintain multi sistem yang terpisah 2. Ekonomis, semakin tinggi kompleksitas, infrastruktur semakin ekstensif dan keamanan harus terjamin JENIS REPLIKASI 1. Snapshot replication Mendistribusikan data yang dapat dilihat pada saat tertentu tanpa melakukan update. Biasanya digunakan pada saat memerlukan tampilan data seperti : • Daftar harga, • katalog, • data yang digunakan untuk pengambilan keputusan. • Data-data ini sifatnya hanya ‘read only’. JENIS REPLIKASI Replikasi ini membantu pada saat : • Data sebagian besar statis dan tidak sering berubah • Dapat menerima copy data yang telah melewati batas waktu yang ditentukan • Datanya sedikit JENIS REPLIKASI 2. Transactional replication Memelihara kekonsistenan transaksi yang terjadi 3. Merge replication Merge replication memungkinkan pengguna bekerja dan merubah data sesuai dengan Wewenangnya. Pada saat server tidak dikoneksikan keseluruh lokasi dalam topologi, replikasi merubah ke nilai data yang sama. TIGA TUJUAN UTAMA REPLIKASI A. Performance Enchancements (Meningkatkan kinerja) B. Increased Availability (Meningkatkan ketersediaan) C. Fault Tolerance (Toleransi Kesalahan)