I.PENGENALAN SISTEM BASIS DATABASE TERDISTRIBUSI
PENDAHULUAN
Distribusi DBMS harusnya dapat mengatasi sekumpulan permasalahan informasi (islands of information ). Basis data terkadang dianggap sebagai kumpulan elektronik saja yang terbatas dan tidak dapat di akses, seperti daerah yang terpencil. Dan DDBMS merupakan jawaban dari masalah geografi, masalah arsitektur komputer , masalah protokol komunikasi dan lain- lainnya.
KONSEP
Untuk membahas mengenai DBMS terdistribusi , terlebih dahulu mengetahui apa yang di maksud dengan basis data terdistribusi dan DBMS terdistribusi.
Basis data terdistribusi : Secara logik keterhubungan dari kumpulan-kumpulan data yang digunakan bersama-sama, dan didistribusikan melalui suatu jaringan komputer.
DBMS Terdistribusi :Sebuah sistem perangkat lunak yang mengatur basis
data terdistribusi dan membuat pendistribusian data
secara transparan.
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 :
Kumpulan dari data logik yang digunakan bersama-sama
•Data di bagi menjadi beberapa fragment
•Fragment mungkin mempunyai copy ( replika )
•Fragment / replika nya di alokasikan pada yang digunakan
•Setiap site berhubungan dengan jaringan komunikasi
•Data pada masing-masing site dibawah pengawasan DBMS
•DBMS pada masing-masing site dapat mengatasi aplikasi lokal, secara otonomi
•Masing-masing DBMS berpastisipasi paling tidak satu global aplikasi.
Dari definisi tersebut , sistem diharapkan membuat suatu distribusi yang transparan. Basis data terdistribusi terbagi menjadi beberapa fragment yang disimpan di beberapa komputer dan mungkin di replikasi, dan alokasi penyimpanan tidak diketahui pengguna . Adanya Transparansi di dalam basis data terdistribusi agar terlihat sistem ini seperti basis data tersentralisasi. Hal Ini mengacu pada prinsip dasar dari DBMS (Date,1987b). Transparansi memberikan fungsional yang baik untuk pengguna tetapi sayangnya mengakibatkan banyak permasalahan yang timbul dan harus diatasi oleh DDBMS.
Paralel DBMSs
DDBMS memiliki perbedaan dengan paralel DBMS.
Paralel DBMSs ; Sistem manajemen basis data ini menggunakan beberapa prosesor dan disk yang dirancang untuk dijalankan secara paralel , apabila di mungkinkan, selama hal tersebut digunakan untuk memperbaiki kinerja dari DBMS
Sistem DBMS berbasis pada sistem prosesor tunggal dimana sistem prosesor tunggal tidak memiliki kemampuan untuk berkembang, untuk menghitung skala efektifitas dan biaya, keandalan dan kinerja dari sistem. Paralel DBMS di jalankan oleh berbagai multi prosesor . Paralel DBMS menghubungkan beberapa mesin yang berukuran kecil untuk menghasilkan keluaran sebuah mesin yang berukuran besar dengan skalabilitas yang lebih besar dan keandalan dari basis datanya.
Untuk menopang beberapa prosesor dengan akses yang sama pada satu basis data, DBMS paralel harus menyediakan manajemen sumber daya yang dapat diakses bersama. Sumber daya apa yang dapat digunakan bersama, dan bagaimana sumber daya tersebut di implementasikan, mempunyai efek langsung pada kinerja dan skalabilitas dari sistem , hal ini tergantung dari aplikasi atau lingkungan yang digunakan.
Ada tiga arsitektur yang digunakan pada paralel DBMS yaitu :
a. Penggunaan memory bersama ( share memory )
b. Penggunaan disk bersama ( share disk )
c. Penggunaan secara sendiri-sendiri ( share nothing )
Arsitektur pada penggunaan secara sendiri – sendiri ( share nothing ) hampir sama dengan DBMS terdistribusi, namun pendistribusian data pada paralel DBMS hanya berbasis pada kinerja nya saja. Node pada DDBMS adalah merupakan pendistribusian secara geographic, administrasi yang terpisah , dan jaringan komunikasi yang lambat, sedangkan node pada paralel DBMS adalah hubungan dengan komputer yang sama atau site yang sama.
Penggunaan Memori Bersama ( Share Memory ) adalah sebuah arsitektur yang menghubungkan beberapa prosesor di dalam sistem tunggal yang menggunakan memori secara bersama – sama ( gbr 1.3 ). Dikenal dengan SMP (Symmetric Multiprocessing ), metode ini sering digunakan dalam bentuk workstation personal yang mensupport beberapa mikroprosesor dalam paralel dbms, RISC ( Reduced Instruction Set Computer ) yang besar berbasis mesin sampai bentuk mainframe yang besar. Arsitektur ini menghasilkan pengaksesan data yang sangat cepat yang dibatasi oleh beberapa prosesor , tetapi tidak dapat digunakan untuk 64 prosesor dimana jaringan komunikasi menjadi masalah ( terjadinya bottleneck).
Penggunaan Disk Bersama ( Share Disk ) adalah sebuah arsitektur yang mengoptimalkan jalannya suatu aplikasi yang tersentrallisasi dan membutuhkan keberadaan data dan kinerja yang tinggi ( Gbr 1.4 ). Setiap prosesor dapat mengakses langsung semua disk , tetapi prosesor tersebut memiliki memorinya sendiri – sendiri. Seperti halnya penggunaan secara sendiri – sendiri arsitektur ini menghapus masalah pada penggunaan memori bersama tanpa harus mengetahui sebuah basis data di partisi. Arsitektur ini di kenal dengan cluster
Penggunaan Secara sendiri – sendiri ( Share nothing ) ; sering di kenal dengan Massively parallel processing ( MPP ) yaitu arsitektur dari beberapa prosesor di mana setiap prosesor adalah bagian dari sistem yang lengkap , yang memiliki memori dan disk ( Gbr 1.5 ). Basis data ini di partisi untuk semua disk pada masing – masing sistem yang berhubungan dengan basis data dan data di berikan secara transparan untuk semua pengguna yang menggunakan sistem . Arsitektur ini lebih dapat di hitung skalabilitasnya dibandingkan dengan share memory dan dapat dengan mudah mensupport prosesor yang berukuran besar. Kinerja dapat optimal jika data di simpan di lokal dbms.
Paralel teknologi ini biasanya digunakan untuk basis data yang berukuran sangat besar ( terabites ) atau sistem yang memproses ribuan transaksi perdetik. Paralel DBMS dapat menggunakan arsitektur yang diinginkan untuk memperbaiki kinerja yang kompleks untuk mengeksekusi kueri dengan menggunakan paralel scan, join dan teknik sort yang memperbolehkan node dari banyak prosesor untuk menggunakan bersama pemrosesan kerja yang di gunakan.
KEUNTUNGAN DAN KERUGIAN DARI DDBMS
Data dan aplikasi terdistribusi mempunyai kelebihan di bandingkan dengan sistem sentralisasi basis data. Sayangnya , DDBMS ini juga memiliki kelemahan.
KEUNTUNGAN:
• Merefleksikan pada bentuk dari struktur organisasinya
Ada suatu organisasi yang memiliki sub organisasi di lokasi yang tersebar di beberapa tempat,.sehingga basis data yang digunakan pun tersebar sesuai lokasi dari sub organisasi berada.
• Penggunaan bersama dan lokal otonomi
Distribusi secara geografis dari sebuah organisasi dapat terlihat dari data terdistribusinya, pengguna pada masing-masing site dapat mengakses data yang disimpan pada site yang lain. Data dapat dialokasikan dekat dengan pengguna yang biasa menggunakannya pada sebuah site, sehingga pengguna mempunyai kontrol terhadap data dan mereka dapat secara konsekuen memperbaharui dan memiliki kebijakkan untuk data tersebut. DBA global mempunyai tanggung jawab untuk semua sistem. Umumnya sebagian dari tanggung jawab tersebut di serahkan kepada tingkat lokal, sehingga DBA lokal dapat mengatur lokal DBMS secara otonomi.
• Keberadaan data yang ditingkatkan
Pada DBMS yang tersentralisasi kegagalan pada suatu site akan mematikan seluruh operasional DBMS. Namun pada DDBMS kegagalan pada salah satu site, atau kegagalan pada hubungan komunikasi dapat membuat beberapa site tidak dapat di akses, tetapi tidak membuat operasional DBMS tidak dapat dijalankan.
• Keandalan yang ditingkatkan
Sebuah basis data dapat di replikasi ke dalam beberapa fragmen sehingga keberadaanya dapat di simpan di beberapa lokasi juga. Jika terjadi kegagalan dalam pengaksesan data pada suatu site di karenakan jaringan komunikasi terputus maka site yang ingin mengakses data tersebut dapat mengakses pada site yang tidak mengalami kerusakan.
• Kinerja yang ditingkatkan
Sebuah data ditempatkan pada suatu site dimana data tersebut banyak di akses oleh pengguna, dan hal ini mempunyai dampak yang baik untuk paralel DBMS yaitu memiliki kecepatan dalam pengkasesan data yang lebih baik dibandingkan dengan basis data tersentralisasi Selanjutnya, sejak masing-masing site hanya menangani sebagian dari seluruh basis data , mengakibakan perbedaan pada pelayanan CPU dan I/O seperti yang di karakteristikan pada DBMS tersentralisasi.
• Ekonomi
Grosch's Law menyatakan daya listrik dari sebuah komputer di hitung menurut biaya yang dihabiskan dari penggunaan peralatannya, tiga kali biaya peralatan, 9 kali nya dari daya listrik . Sehingga lebih murah jika membuat sebuah sistem yang terdiri dari beberapa mini komputer yang mempunyai daya yang sama jika dibandingkan dengan memiliki satu buah super komputer. Oleh karena itu lebih efektif untuk menambah beberapa workstation untuk sebuah jaringan dibandingkan dengan memperbaharui sistem mainframe. Potensi yang juga menekan biaya yaitu menginstall aplikasi dan menyimpan basis data yang diperlukan secara geografi sehingga mempermudah operasional pada setiap situs.
• Perkembangan modular
Di dalam lingkungan terdistribusi, lebih mudah untuk menangani ekspansi .Site yang baru dapat di tambahkan ke suatu jaringan tanpa mempengaruhi operational dari site - site yang ada. Penambahan ukuran basis data dapat di tangani dengan menambahkan pemrosesan dan daya tampung penyimpanan pada suatu jaringan. Pada DBMS yang tersentralisasi perkembangan akan di ikuti dengan mengubah perangkat keras dan perangkat lunak.
KERUGIAN
• Kompleksitas
Pada distribusi DBMS yang digunakan adalah replikasinya, DBMS yang asli tidak digunakan untuk operasional, hal ini untuk menjaga reliabilitas dari suatu data. Karena yang digunakan replikasinya maka hal ini menimbulkan berbagai macam masalah yang sangat kompleks dimana DBA harus dapat menyediakan pengaksesan dengan cepat , keandalan dan keberadaan dari basis data yang up to date . Jika aplikasi di dalam DBMS yang digunakan tidak dapat menangani hal - hal tersebut maka akan terjadi penurunan pada tingkat kinerja , keandalan dan kerberadaan dari DBMS tersebut, sehingga keuntungan dari DDBMS tidak akan terjadi.
• Biaya
Meningkatnya kekompleksan pada suatu DDBMS berarti biaya untuk perawatan dari DDBMS akan lebih besar dibandingkan dengan DBMS yang tersentralisasi, seperti biaya untuk membuat jaringannya, biaya komunikasi yang berjalan , orang-orang yang ahli dalam penggunaan, pengaturan dan pengawasan dari DDBMS.
• Keamanan
Pada DBMS yang tersentralisasi, pengaksesan data lebih terkontrol. Sedangkan pada DDBMS bukan hanya replikasi data yang harus di kontrol tetapi jaringan juga harus dapat di kontrol keamanannya.
• Pengontrolan Integritas lebih sulit
Kesatuan basis data yang mengacu pada keabsahan dan kekonsistenan dari data yang disimpan. Kesatuan biasanya di ekspresikan pada batasan, dimana berisi aturan untuk basis data yang tidak boleh diubah. Membuat batasan untuk integrity, umumnya memerlukan pengaksesan ke sejumlah data yang sangat besar untuk mendefinisikan batasan tersebut, namun hal ini tidak termasuk di dalam operasional update itu sendiri. Dalam DDBMS, komunikasi dan biaya pemrosesan yang dibutuhkan untuk membuat suatu batasan integrity mungkin tidak diperbolehkan.
PERANCANGAN RELASIONAL BASIS DATA TERDISTRIBUSI
Faktor - faktor yang dianjurkan untuk digunakan pada basis data terdistribusi yaitu :
1. Fragmentasi : Sebuah relasi yang terbagi menjadi beberapa sub-sub relasi yang disebut dengan fragment, sehingga disebut juga distribusi. Ada dua buah fragmentasi yaitu horisontal dan vertikal. Horisontal fragmentasi yaitu subset dari tupel sedangkan vertikal fragmentasi subset dari atribut.
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.
Definisi dan alokasi dari fragmen harus berdasarkan pada bagaimana basis data tersebut digunakan.
Perancangan harus berdasarkan kuantitatif dan kualitatif informasi. Kuantitatif informasi digunakan pada alokasi data sedangkan kualitatif informasi digunakan untuk fragmentasi.
Kuantitatif informasi termasuk :
• Seberapa sering aplikasi di jalankan
• Situs mana yang aplikasinya dijalankan
• Kriteria kinerja untuk transaksi dan aplikasi
Kualitatif informasi termasuk transaksi yang dieksekusi pada aplikasi, termasuk pengaksesan relasi, atribut dan tuple , tipe pengaksesan( R atau W ) dan predikat dari operasional.
Definisi dan alokasi dari fragment menggunakan strategi untuk mencapai obyektifitas yang diinginkan :
1. Referensi Lokal
Jika memungkinkan data harus disimpan dekat dengan yang menggunakan. Bila suatu fragmen digunakan di beberapa lokasi , akan menguntungkan jika fragmen data tersebut disimpan di beberapa lokasi juga.
2. Reliabilitas dan Availabilitas yang ditingkatkan
Keandalan dan ketersediaan data ditingkatkan dengan replikasi. Ada salinan lain yang disimpan di lokasi yang lain.
3. Kinerja yang di terima
Alokasi yang tidak baik dapat mengakibatkan bottleneck terjadi, sehingga akan mengakibatkan banyaknya permintaan dari beberapa lokasi yang tidak dapat dilayani dan data yang diminta menjadi tidak up to date menyebabkan kinerja turun.
4. Seimbang antara kapasitas penyimpanan dan biaya
Pertimbangan harus diberikan pada ketersediaan infrastruktur dan biaya untuk penyimpanan di setiap lokasi, sehingga untuk efisiensi dapat digunakan tempat penyimpanan yang tidak mahal.
5. Biaya komunikasi yang minimal
Pertimbangan harus diberikan untuk biaya akses jarak jauh. Biaya akan minimal ketika kebutuhan lokal maksimal atau ketika setiap site menduplikasi data nya sendiri. Bagaimanapun ketika data yang di replikasi telah di update. Maka data yang ter-update tersebut harus diduplikasi ke seluruh site, hal ini yang menyebabkan naiknya biaya komunikasi.
ALOKASI DATA
Ada empat strategis menurut penempatan data : sentralisasi, pembagian partisi, replikasi yang lengkap dan replikasi yang dipilih.
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 biaya komunikasi tinggi.
Keandalan dan keberadaan rendah, 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. 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 . 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.
FRAGMENTASI
Kenapa harus dilakukan fragmentasi ?
Ada empat alasan untuk fragmentasi :
1. Kebiasaan ; 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. Efisien ; data disimpan dekat dengan yang menggunakan. Dengan tambahan data yang tidak sering digunakan tidak usah disimpan.
3. Paralel ; dengan fragmen-fragmen 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.
Fragmentasi mempunyai dua kelemahan, seperti yang disebutkan sebelumnya :
1. Kinerja; cara kerja dari aplikasi yang membutuhkan data dari beberapa lokasi fragmen di beberapa situs akan berjalan dengan lambat.
2. Integritas; pengawasan inteegritas akan lebih sulit jika data dan fungsional ketergantungan di fragmentasi dan dilokasi pada beberapa situs yang berbeda.
Pembetulan dari fragmentasi
Fragmentasi tidak bisa di buat secara serampangan, ada tiga buah aturan yang harus dilakukan untuk pembuatan fragmentasi yaitu :
1. Kelengkapan ; 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. Penguraian; 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.
Tipe dari Fragmentasi
Ada dua tipe utama yang dimiliki oleh fragmentasi yaitu horisontal dan vertikal , tetapi ada juga dua tipe fragmentasi lainnya yaitu : mixed dan derived fragmentasi .
1. Horisontal fragmentasi ;
Fragmentasi ini merupakan relasi yang terdiri dari subset sebuah tuple . Sebuah horisontal fragmentasi di hasilkan dari menspesifikasikan predikat yang muncul dari sebuah batasan pada sebuah tuple didalam sebuah relasi. Hal ini di definisikan dengan menggunakan operasi SELECT dari aljabar relasional . Operasi SELECT mengumpulkan tuple yang memiliki kesamaan kepunyaan; sebagai contoh, tuple yang semua nya menggunakan aplikasi yang sama atau pada situs yang sama. Berikan relasi R sebuah horisontal fragmentasi yang didefinisikan :
P ( R )
dimana P adalah sebuah predikat yang berdasarkan atas satu atau lebih atribut didalam suatu relasi.
Contoh : Diasumsikan hanya mempunyai dua tipe properti yaitu tipe flat dan rumah, horisontal fragmentasi dari properti untuk di sewa dari tipe properti dapat di peroleh sebagai berikut :
P1 : tipe = 'Rumah'( properti sewa)
P2; tipe = 'Flat'(properti sewa)
Hasil dari operasi tersebut akan memiliki dua fragmentasi , yang satu terdiri dari tipe yang mempunyai nilai 'Rumah' dan yang satunya yang mempunyai nilai "Flat'.
Fragment P1
Pno Street Area City Pcode Type Rooms Rent Cno Sno Bno
PA14 16 Holl Dee Aber AB75S Rumah 6 650 CO46 SA9 B7
PG21 18 Dell Hynd Glas G12 Rumah 4 500 CO87 SG37 B3
Fragment P2
Pno Street Area City Pcode Type Rooms Rent Cno Sno Bno
PL94 6 Arg Dee Aber AB74S Flat 4 450 CO67 SL41 B5
PG4 8 Law Hynd Glas G50 Flat 4 400 CO70 SG14 B3
PG16 2 Man Part Glas G67 Flat 3 300 CO90 SG14 B3
Fragmentasi seperti ini mempunyai keuntungan jika terjadi transaksi pada beberapa aplikasi yang berbeda dengan Flat ataupun Rumah.
Fragmentasi skema memuaskan aturan pembetulan (Correctness rules) :
1. Kelengkapan ; setiap tuple pada relasi muncul pada fragment
P1 atau P2
2. Rekonstruksi ; relasi Properti sewa dapat di rekonstruksi dari fragmentasi menggunakan operasi Union , yakni :
P1 U P2 = Properti sewa
3. Penguraian ; fragmen di uraikan maka tidak ada tipe properti yang mempunyai tipe flat ataupun rumah.
Terkadang pemilihan dari strategi horisontal fragmentasi terlihat jelas. Bagaimanapun pada kasus yang lain, diperlukan penganalisaan secara detail pada aplikasi. Analisa tersebut termasuk dalam menguji predikat atau mencari kondisi yang digunakan oleh transaksi atau queri pada aplikasi. Predikat dapat berbentuk sederhana (atribut tunggal) ataupun kompleks (banyak atribut). Predikat setiap atribut mungkin mempunyai nilai tunggal ataupun nilai yang banyak. Untuk kasus selanjutnya nilai mungkin diskrit atau mempunyai range.
Fragmentasi mencari group predikat minimal yang dapat digunakan sebagai basis dari fragmentasi skema. Set dari predikat disebut lengkap jika dan hanya jika ada dua tuple pada fragmen yang sama bereferensi pada kemungkinan yang sama oleh beberapa aplikasi . Sebuah predikat dinyatakan relevan jika ada paling tidak satu aplikasi yang dapat mengakses hasil dari fragment yang berbeda.
2. Vertikal Fragmentasi
Adalah relasi yang terdiri dari subset pada atribut
Fragmentasi vertikal ini mengumpulkan atribut yang digunakan oleh beberapa aplikasi. Di definisikan menggunakan operasi PROJECT pada aljabar relasional. Relasi R sebuah vertikal fragmentasi di definisikan :
a1,a2,…an (R)
dimana a1,a2,…an merupakan atribut dari relasi R
contoh :Aplikasi Payroll untuk PT. Dream Home membutuhkan nomor pokok daari Staff ( Sno) dan Posisi, Sex, DOB,Gaji dan NIN atribut setiap anggota dari staff tersebut; departemen kepegawaian membutuhkan ; Sno,Fname,Lname, Alamat,Tel_no dan Bno atribut, Vertikal fragmentasi dari
staff untuk contoh ini diperlukan sebagai berikut :
S1 = Sno,posisi,sex,dob,gaji,nin(Staff)
S2 = Sno,Fname,Lname,Alamat,Tel_no,Bno(Staff)
Akan menghasilkan dua buah fragmen , kedua buah fragmen tersebut berisi kunci utama ( Sno ) untuk memberi kesempatan yang aslinya untuk di rekonstruksi. Keuntungan dari vertikal fragmentasi ini yaitu fragmen-fragmen tersebut dapat disimpan pada situs yang memerlukannya. Sebagai tambahan kinerja yang di tingkatkan, seperti fragmen yang diperkecil di bandingkan dengan yang aslinya.
Fragmentasi ini sesuai dengan skema kepuasan pada aturan pembetulan (Correcness Rules):
1. Kelengkapan ; setiap atribut di dalam relasi staff muncul pada setiap fragmen S1 dan S2
2. Rekonstruksi ; relasi staff dapat di rekonstruksi dari fragmen menggunakan operasi natural join , yakni :
S1 S2 = Staff
3. Penguraian ; fragment akan diuraikan kecuali kunci utama, karena diperlukan untuk rekonstruksi .
Fragment S1
Sno Posisi Sex DOB Salary NIN
SL21 Manager M 1-oct-60 300000 WK44201B
SG37 Snr Ass F 10-nov-65 150000 WL43251C
SG14 Deputy M 24-mar-70 100000 WL22065B
SA9 Assistant F 20-jan-70 90000 WM53218D
Fragment S2
Sno Fname Lname Alamat Tel_no Bno
SL21 John White 19 Taylor London 0171-884-5112 B5
SG37 Ann Beech 81 George Glasgow 0141-848-3345 B3
SG14 David Ford 63 Ashby Glasgow 0141-339-2177 B3
SA9 Marie Howe 2 Elm Abeerdeen B7
3. Campuran Fragmentasi
Fragmentasi ini terdiri dari horisontal fragmentasi setelah itu vertikal fragmentasi, atau vertikal fragmentasi lalu horisontal fragmentasi.
Fragmentasi campuran ini di definisikan menggunakan operasi SELECT dan PROJECT pada aljabar relasional.
Relasi R adalah fragmentasi campuran yang didefinisikan sbb :
P ( a1,a2,…an (R)) atau a1,a2,…an (P (R))
dimana p adalah predikat berdasarkan satu atau lebih atribut R dan a1,a2,…an adalah atribut dari R
contoh :
Vertikal fragmentasi staff dari aplikasi payroll dan departemen kepegawaian kedalam :
S1 = Sno,posisi,sex,dob,gaji,nin(Staff)
S2 = Sno,Fname,Lname,Alamat,Tel_no,Bno(Staff)
Lalu lakukan horisontal fragmentasi pada fragmen S2 menurut nomor cabang:
S21 = Bno = B3(S2)
S22 = Bno = B5(S2)
S23 = Bno = B7(S2)
Fragment S1
Sno Posisi Sex DOB Salary NIN
SL21 Manager M 1-oct-60 300000 WK44201B
SG37 Snr Ass F 10-nov-65 150000 WL43251C
SG14 Deputy M 24-mar-70 100000 WL22065B
SA9 Assistant F 20-jan-70 90000 WM53218D
Fragment S21
Sno Fname Lname Alamat Tel_no Bno
SG37 Ann Beech 81 George Glasgow 0141-848-3345 B3
SG14 David Ford 63 Ashby Glasgow 0141-339-2177 B3
Fragment S22
Sno Fname Lname Alamat Tel_no Bno
SL21 John White 19 Taylor London 0171-884-5112 B5
Fragment S23
Sno Fname Lname Alamat Tel_no Bno
SA9 Marie Howe 2 Elm Abeerdeen B7
Dari fragmentasi tersebut akan menghasilkan tiga buah fragmen yang baru berdasarkan nomor cabang. Fragmentasi tersebut sesuai dengan aturan pembetulan.(Correction rules)
1. Kelengkapan ; Setiap atribut pada relasi staff muncul pada fragmentasi S1 dan S2 dimana setiap tupel akan mencul pada fragmen S1 dan juga fragmen S21 ,S22 dan S23 .
2. Rekonstruksi ; relasi staff dapat di rekonstruksi dari fragmen menggunakan operasi Union dan Natural Join , yakni: S1 (S21 U S22 U S23 ) = Staff
3. Penguraian ; penguraian fragmen ; tidak akan ada Sno yang akan muncul di lebih dari satu cabang dan S1 dan S2 adalah hasil penguraian kecuali untuk keperluan duplikasi kunci utama.
4. Derived Horisontal Fragmentation
Beberapa aplikasi melibatkan dua atau lebih relasi gabungan. Jika relasi disimpan ditempat yang berbeda, mungkin akan memiliki perbedaan yang siginifikan di dalam proses penggabungan tersebut. Di dalam fragmentasi ini akan lebih pasti keberadaan relasi atau fragmen dari relasi di tempat yang sama.
Derived fragmen : horisontal fragmen yang berdasarkan fragmen dari relasi yang utama
Istilah anak akan muncul kepada relasi yang mengandung foreign key dan parent pada relasi yang mengandung primari key. Derived fragmentasi di jabarkan dengan menggunakan operasi semijoin dari aljabar relasional.
Misalkan relasi anak adalah R dari relasi parent adalah S, maka fragmentasi derived digambarkan sebagai berikut :
RI = R Sf L I w
Dimana w adalah nomor dari fragmen horisontal yang telah digambarkan pada S dan f adalah atribut join
Contoh :
Suatu perusahan mempunyai aplikasi yang menggabungkan relasi staff dan PropertyForRent secara bersamaan. Untuk contoh ini di asumsikan staff telah terfragmentasi secara horisontal berdasarkan nomor cabang. Jadi data yang berhubungan dengan cabang disimpan di tempat :
S3 = Bno = B3(Stsff)
S4 = Bno = B5(Staff)
S5 = Bno = B7(Staff)
Diasumsikan bahwa properti PG4 diatur oleh SG14. Ini seharusnya berguna untukmenyimpan data propetri yang menggunakan strategi fragmentasi sama. Ini di peroleh dengan menggunakan derived fragmentasi untuk menfragmentasi secara horisontal relasi PropertiForRent berdasarkan nomor cabang :
PI = PropertiForRent staffno Sf 3 I 5
Menghasilkan 3 fragmen ( P3,P4 dan P5) . satu terdiri dari proreprti yang diatur oleh staff dengan nomor cabang B3 (P3), yang satunya terdiri dari properti yang diatur oleh staf dengan nomor cabang B5 ( P5) dan yangterakhir terdiri dari properti yang diatur oleh staff dengna nomro cabang B7 (P7) . Akan mudah dilihat skema fragmentasi ini sesuai dengan peraturan fragmentasi.
Fragment P3
Pno Street City Pcode Type Rooms Rent Cno Sno
PG4 6Law Glas G11 Flat 3 350 CO40 SG149
PG36 2 Mann Glas G32 Flat 3 375 C093 SG37
PG21 18 Dell Glas G12 House 4 500 CO87 SG37
PG16 5 Nov Glas G12X Flat 4 450 C093 SG14
Fragment P4
Pno Street City Pcode Type Rooms Rent Cno Sno
PL94 6 Arg Lon NW1 Flat 4 400 CO87 SL41
Fragment P5
Pno Street City Pcode Type Rooms Rent Cno Sno
PA14 16Holl Aber AB74S House 6 650 CO46 SA9
5. Tidak Terdapat Fragmentasi
Strategi final adalah tidak memfragmentasikan relasi. Sebagai contoh, relasi cabang hanya mengandung sejumlah update secara berkala . Daripada mencoba untuk menfragmentasikan relasi secara horisontal, misalnya nomor cabang akal lebih masuk akal lagi untuk membiarkan relasi keseluruhan dan mereplikasi relasi cabang pada setiap sisinya.