• Tidak ada hasil yang ditemukan

BAB I PENDAHULUAN

2.3 Desain Sistem Basis Data Terdistribusi

Dalam perencanaan dan pembuatan sistem basis data terdistribusi terdapat tiga cara yaitu replikasi, fragmentasi, dan alokasi. Meskipun proses yang digunakan oleh ketiga cara ini untuk mendistribusikan data berbeda, tetapi tujuannya sama yaitu :

1. Referensi lokalitas

2. Meningkatkan kehandalan dan ketersediaan data 3. Meningkatkan unjuk kerja

4. Keseimbangan kapasitas penyimpanan dan biaya 5. Biaya Komunikasi Minimal

Perbedaannya terletak pada proses pendistribusiannya. Replikasi merupakan penduplikasian atau pengkopian basis data di dua atau labih lokasi server

sudah terpecah menjadi beberapa bagian dimana masing-masing basis data yang tersimpan di tempat yang berbeda-beda [H.F. Korth dan Silberscatz. Ambraham, 1986]. Ada dua strategi dasar fragmentasi yaitu fragmentasi vertikal dan fragmentasi horizontal yang secara lengkap akan dibahasi pada sub bab berikutnya. Sedangkan alokasi adalah penempatan fragmen data di suatu tempat.

2.3.1 Fragmentasi

Salah satu cara untuk mendistribusikan basis data adalah dengan metode fragmentasi. Pada sistem basis data terdistribusi relasi diletakkan pada beberapa lokasi basis data server. Alasan yang menyebabkan data dalam suatu tabel dibagi menjadi fragmen data untuk didistribusikan adalah :

a. Penggunaan. Dalam realitas, data yang sering digunakan bukanlah data dalam seluruh tabel, tetapi hanyalah sebagian data atau sering disebut view.

b. Efisiensi. Data disimpan di lokasi yang paling dekat dengan pengguna yang sering mengakses. Sehingga data yang tidak sering dibutuhkan oleh lokasi tertentu tidak disimpan di lokasi yang bersangkutan.

c. Paralel. Karena data yang didistribusikan berupa fragmen data, maka transaksi yang berupa kueri tunggal dapat dipecah menjadi sub-kueri yang dikenakan terhadap fragmen data,

sehingga transaksi dapat dilakukan secara bersamaan (concurrent).

d. 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 yang lain.

Fragmen data akan mendukung beberapa hal seperti diatas, tetapi penggunaan fragmen data juga memiliki beberapa kelemahan, yaitu : a. Menurunnya unjuk kerja. View yang melibatkan lebih dari satu

fragmen data pada lokasi yang berbeda akan mengalami penurunan unjuk kerja.

b. Integritas. Pengendalian integritas lebih sulit jika atribut yang berperan dalam dependensi didistribusikan ke beberapa lokasi.

Fragmentasi tidak dapat dilakukan secara sembarangan. Untuk memastikan bahwa tidak terdapat perubahan data dalam basis data selama menjalani proses fragmentasi.

Proses fragmentasi harus memenuhi 3 aturan berikut ini:

a. Completeness

i. Jika sebuah relasi R dibagi menjadi fragmen-fragmen R1 , R2 , ..., Rn maka fragmentasi dikatakan komplit jika dan hanya jika setiap item data yang dapat ditemukan dalam R dapat juga ditemukan di dalam satu atau lebih fragmen Ri .

ii. Aturan ini diperlukan untuk memastikan bahwa tidak ada data yang hilang selama proses fragmentasi.

b. Reconstruction

i. Jika sebuah relasi R dibagi menjadi fragmen-fragmen R1 , R2 , ..., Rn maka fragmentasi dikatakan rekonstruksi jika dan hanya jika R dapat dibentuk dari fragmen-fragmen Ri.

ii. Dengan kata lain, bahwa dimungkinkan untuk membentuk sebuah relasi R yang terbentuk dari fragmen-fragmen yang ada. iii. Aturan ini diperlukan untuk memastikan bahwa

ketergantungan secara fungsi (functional dependencies) terpenuhi.

c. Disjointness

i. Jika sebuah relasi R dibagi menjadi fragmen-fragmen R1 , R2 ,..., Rn dan data item di berada di dalam fragmen Rj maka fragmentasi dikatakan disjoint jika dan hanya jika data item di tidak berada di dalam fragmen lain Rk dimana k ≠ j.

ii. Dengan kata lain, jika suatu item data sudah muncul dalam sebuah fragmen, maka item data tersebut tidak boleh muncul lagi di fragmen yang lain.

iii. Fragmentasi secara vertikal adalah perkecualian dalam aturan ini, karena atribut-atribut dari primary key harus diulang untuk dapat melakukan rekonstruksi. Aturan ini diperlukan untuk memastikan terjadinya redundansi data seminimal mungkin.

1. Fragmentasi Vertikal

Fragmentasi vertikal dari table R adalah proses untuk mendapatkan fragmen R1, R2,…, Rn sedemikian rupa sehingga setiap fragmen memuat himpunan bagian dari atribut-atribut R dan kunci primer. (Ozsu, 1999).

Tujuan utama dari fragmentasi vertikal adalah membagi sebuah tabel ke dalam tabel-tabel yang lebih kecil sedemikian rupa sehingga aplikasi user hanya berjalan pada satu tabel. Dengan demikian meminimalkan waktu eksekusi aplikasi yang berjalan dalam fragmen-fragmen tersebut. (Ozsu,1999).

Fragmentasi ini lebih sulit daripada fragmentasi horizontal, karena lebih banyak alternatif hasil yang dapat dibuat dari fragmentasi vertikal ini. Jika sebuah relasi memiliki m atribut bukan kunci primer, maka fragmen yang mungkin adalah B(m), dalam urutan kebenaran dari Bell Number. Untuk nilai yang besarnya m, maka B(m) ≈ mm. ; sebagai contoh, untuk m = 100,

B(m) ≈115,000, untuk m = 15, B(m) 109, untuk m = 30, B(m) ≈

1023. (Ozsu, 1999).

Terdapat dua pendekatan untuk memperoleh penyelesaian terbaik dari fragmentasi vertikal yaitu :

a. Pendekatan Kelompok (Grouping)

Dimulai dengan menempatkan setiap atribut ke dalam sebuah fragmen. Kemudian setahap demi setahap dilakukan join

dengan beberapa fragmen sampai kriteria yang diinginkan terpenuhi.

b. Pendekatan Pemecahan (Splitting)

Dimulai dengan sebuah tabel dan memutuskan manfaat dari pembagian yang berlandaskan pada jalannya aplikasi yang mengakses atribut-atribut.

Kebutuhan informasi dalam fragmentasi vertikal adalah informasi yang berhubungan dengan aplikasi.

a. Attribute Affinities adalah ukuran yang mengindikasikan

bagaimana relasi antar atribut.

b. Attribute Usage Value apabila diberikan himpunan kueri Q =

{q1, q2, …, qq} yang akan dijalankan pada tabel R[A1, A2, …, An], maka attribute usage value (use) adalah :

Use(qi,Aj) = {1 jika atribut Aj diakses oleh kueri qi

0 jika sebaliknya}

Dalam skripsi ini hanya akan dibahas mengenai fragmentasi yang menggunakan pendekatan pemecahan (splitting).

1.2 Tahap-Tahap Proses Fragmentasi Vertikal

Sebagai gambaran untuk kemudahan dan kejelasan dalam tahap-tahap fragmentasi vertikal akan diberikan contoh kasus. Bila terdapat tabel PROJ sebagai berikut :

Tabel 2.1. Tabel PROJ

Dari tabel tersebut akan dilakukan fragmentasi vertikal. Misalkan terdapat kueri yang dijalankan terhadap tabel PROJ adalah sebagai berikut :

q1 : SELECT Budget FROM PROJ WHERE Pno = Value q2 : SELECT Pname,Budget FROM PROJ

q3 : SELECT Pname FROM PROJ WHERE Loc = Value

q4 : SELECT SUM(Budget) FROM PROJ WHERE Loc = Value

Tahap 1 : Menentukan bagaimana akses kueri (q1) pada setiap atribut (Aj)

Dalam tahap ini akan dibuat matriks use(qi,Aj), matriks tersebut sering disebut Muse, pada baris ke q1 dari kolom A1, isikan angka1 atau 0 :

a. 1 : jika kueri q1 mengakses atribut A1

b. 0 : jika kueri q1 tidak mengakses atribut A1

Dari empat kueri yang dijalankan pada table PROJ akan didapat

Muse sebagai berikut : andaikan A1= Pno, A2= Pname, A3= Budget, A4= Loc

Muse A1 A2 A3 A4 q1 1 0 1 0 q2 0 1 1 0 q3 0 1 0 1 q4 0 0 1 1

Gambar 2.3 . Matrik Muse

Tahap 2 : Menentukan frekuensi akses query qi pada setiap lokasi Lk.

Tahap ini akan dibuat sebuah matrik baru yang menggambarkan berapakali setiap lokasi mengakses kueri-kueri yang ada, matrik ini sering disebut Macc. Dalam kasus ini diandaikan terdapat tiga lokasi yang mengakses, setiap kueri (acci(qi)) di setiap lokasinya adalah sebagai berikut :

L1 L2 L3

q1 15 20 10

q2 5 0 0

q3 25 25 25

q4 3 0 0

Gambar 2.4. Matrik Macc

Tahap 3 : Menentukan seberapa dekat hubungan antar atribut

Matrik Affinitas atau sering disebut Maff ini didapat dari Muse

dari relasi R(A1,A2,…,An) dengan sekumpulan aplikasi Q = {q1,q2,…qn} didefinisikan sebagai berikut :

Aff(Ai Aj,) =

∑ ∑

= =1 ( , ) 1∀ , ( | ) ( ) ( Aj qk use Ai qk use k Sl qk accl qk ref

Dimana refl(qk) adalah nilai yang terakses ke atribut (Ai,Aj)

untuk setiap penerapan dari aplikasi qk di lokasi Ll dan accl(qk)

adalah ukuran frekuensi aplikasi terakses yang telah dijabarkan dan dimodifikasi untuk mencantumkan frekuensi di lokasi berbeda.

Hasil dari penghitungan adalah matrik n x n, setiap elemen dimana setiap ukuran dijabarkan ke atas. Kita menyebutnya matrik attribute affinity (Maff). Dalam tahap ini berlaku juga sifat simetris, (Ai,Aj) = (Aj,Ai).

A1 A2 A3 A4 A1 45 0 45 0

A2 0 80 5 75

A3 45 5 53 48 A4 0 75 48 78 Gambar 2.5. Matrik Affinitas (Maff)

Dari persamaan di atas dicari ukuran persamaan antara atribut A1 dan A3 sebagai berikut :

aff(A1,A3)=

∑ ∑

1= = = + + = 1 3 1 l ( ) ( 1) ( 2) ( 3) 45

k acc qk acc q acc q acc q

Tahap 4 : Menentukan Seberapa Dekat Hubungan Atribut Dengan Bond Energy Algorithm (BEA).

Tugas yang paling mendasar dalam mendesain perhitungan fragmentasi vertikal adalah menemukan beberapa sarana pengelompokan atribut dari sebuah hubungan berdasar pada atribut affinity nilai dalam AA. Bond Energy Algorithm (BEA)

untuk mendapatkan matrik pengelompokan (Mcluster) melakukan tiga langkah :

a. Initialization. Meletakkan dan memperbaiki salah satu kolom

dari AA secara adak ke dalam CA. kolom 1 dipilih dalam algoritma.

b. Iteration. Ambil tiap n yang tersisa dari kolom n-i, dimana i

adalah jumlah kolom-kolom yang telah diletakkan di CA dan meletakkan CA ke dalam partisi i+1 yang tersisa dalam matrik CA. Pilih peletakan yang memberikan nilai yang paling besar kepada penghitungan persamaan global tergambar di atas. Lanjutkan langkah ini sampai tidak ada lagi kolom tersisa untuk ditempati.

c. Row Ordering. Sekali pengaturan kolom ditentukan

penempatan dari baris harus juga diubah sehingga posisi relatif mereka cocok dengan posisi relatif kolom.

Untuk mencari nilai bond antara dua atribut x dan y

didefinisikan sebagai berikut :

bond(Ax,Ay) =

= n z Ay Az aff Ax Az aff 1 ) , ( ) , (

cont digunakan untuk mendefinisikan kontribusi dari atribut untuk penempatan setiap atributnya. Didefinisikan dengan rumus :

cont(Ai,Ak,Aj) = 2bond(Ai,Ak)+2bond(Ak,Aj)-2bond(Ai,Aj)

Berdasar langkah initialization, kita mengkopi kolom1 dan 2 matrik AA ke matrik CA dan memulai dengan kolom 3

(contoh : atribut A3). Ada tiga tempat alternatif dimana kolom 3 dapat ditempatkan : di kiri kolom 1, menghasilkan urutan (3-1-2) di antara kolom 1 dan 2 menghasilkan (1-3-2) dan di sebelah kanan kolom 2 menghasilkan (1-2-3). Untuk menghitung kontribusi dari susunan terakhir kita harus menghitung cont(A2,A3,A4) dari pada cont(A1,A2,A3). Lebih jauh lagi dalam konteks ini A4 mengacu pada indeks posisi dalam matrik CA yang kosong (gbr) tidak pada kolom atribut A4 dari matrik AA.

Perhitungan kontribusi dari susunan (0-3-1) adalah sebagai berikut :

cont(A0,A3,A1) = 2bond(A0,A3)+2bond(A3,A1

)-2bond(A0,A1)

dimana kita ketahui nilai bond :

bond(A0,A3) = bond(A0,A1) = 0

bond(A3,A1) = ((45*45)+(5*0)+(53*45)+(3*0)) = 4410

cont(A0,A3,A1) = ((2*0)+(2*4410)-(2*0)) = 8820 Perhitungan kontribusi dari susunan (1-3-2) :

cont(A1,A3,A2) = 2bond(A1,A3)+2bond(A3,A2)-2bond(A1,A2)

dimana kita ketahui nilai bond :

bond(A1,A3) = bond(A3,A1) = 4410

bond(A3,A2) = ((45*0)+(80*5)+(5*53)+(75*3)) = 890

bond(A1,A2) = ((40*0)+(80*0)+(45*5)+(75*0)) = 225

dapat diperoleh nilai cont :

cont(A2,A3,A4) = ((2*890)+(2*0)-(2*0)) = 1780

Kontribusi dari susunan (1-3-2) adalah yang terbesar, kita memilih untuk meletakkan A3 di sebelah kanan A1

(Gambar 2.6b.). Selanjutnya menyisipkan kolom 4. Kontribusi susunan (0-4-1) adalah sebagai berikut :

cont(A0,A4,A1) = 2bond(A0,A4)+2bond(A1,A4)-2bond(A1,A0)

dimana kita ketahui nilai bond :

bond(A0,A4) = bond(A4,A0) = 0

bond(A4,A1) = ((45*0)+(75*0)+(3*45)+(78*0)) = 135

dapat diperoleh nilai cont :

cont(A0,A4,A1) = ((2*0)+(2*135)-(2*0)) = 270

Perhitungan kontribusi susunan (1-4-3) adalah sebagai berikut :

cont(A1,A4,A3) = 2bond(A1,A4)+2bond(A3,A4)-2bond(A1,A3)

dimana kita ketahui nilai bond :

bond(A3,A4) = ((45*0)+(75*5)+(3*53)+(78*3)) = 768

bond(A1,A3) = bond(A3,A1) = 4410 dapat diperoleh nilai cont :

cont(A1,A4,A3) = ((2*135)+(2*768)-(2*4410)) = -7014

Perhitungan dari susunan (3-4-2) adalah sebagai berikut :

cont(A3,A4,A2) = 2bond(A3,A4)+2bond(A2,A4)-2bond(A2,A3)

dimana kita ketahui nilai bond :

bond(A3,A4) = ((45*0)+(75*5)+(3*53)+(78*3)) = 768

bond(A2,A4) = ((0*0)+(75*80)+(3*5)+(78*75)) = 11865

bond(A2,A3) = bond(A3,A2) = 890 dapat diperoleh nilai cont :

cont(A3,A4,A2) = ((2*768)+(2*11865)-(2*890)) = 23486

Perhitungan kontribusi dari susunan (2-4-5) adalah sebagai berikut

cont(A2,A4,A5) = 2bond(A2,A4)+2bond(A5,A4)-2bond(A2,A5)

dimana kita ketahui nilai bond :

bond(A2,A4) = bond(A4,A2) = 11865

bond(A5,A4) = 0

bond(A2,A5) = 0 dapat diperoleh nilai cont :

cont(A2,A4,A5) = ((2*0)+(2*11865)-(2*0)) = 23730

Dari perhitungan kontribusi di atas (2-4-5) memberikan nilai cont terbesar (Gambar 2.6c.). Selanjutnya baris tersusun dalam

susunan yang sama seperti kolom dan hasilnya dapat dilihat dalam gambar . A1 A2 A3 A4 A1 45 0 A2 0 80 A3 45 5 A4 45 75 A1 A3 A2 A4 A1 45 45 0 A2 0 5 80 A3 45 53 5 A4 45 48 75

Gambar 2.6a. Matrik CA(a) Gambar 2.6b. Matrik CA(b)

A1 A3 A2 A4 A1 45 45 0 0 A2 0 5 80 75 A3 45 53 5 3 A4 0 3 75 78 A1 A2 A3 A4 A1 45 45 0 0 A3 45 53 5 3 A2 0 5 80 75 A4 0 3 75 78

Gambar 2.6c. Matrik CA(c) Gambar 2.6d. Matrik CA(d)

Tahap 5 : Menentukan Pemisahan Tabel dengan Mengacu pada Matrik Cluster

Tujuan dari aktifitas pemisahan adalah untuk menemukan pasangan atribut yang diakses atau pada sebagian besar pasangan aplikasi tertentu. Adapun langkah-langkah yang dilakukan pada tahap ini adalah sebagai berikut :

a. Mencari Himpunan Atribut yang Diakses oleh aplikasi qi.

AQ(qi) = {Aj|use (qi,Aj) =1}

Dari contoh matrik use di atas akan dihasilkan atribut untuk setiap aplikasi qi sebagai berikut :

q1= {A1,A3}, q2= {A2,A3}, q3= {A2,A4}, q4= {A3,A4}

b. Mencari Jumlah total frekuensi akses untuk setiap aplikasi qi

pada semua lokasi. Dari matrik acc akan didapat total acc

sebagai berikut :

q1 = 45, q2 = 5, q3 = 75, q4= 3

c. Mencari nilai terbesar partisi dengan menggunakan algoritma partisi. Matrik cluster akan dibagi menjadi 4 dengan 3 macam cara yaitu :

Gambar 2.7. Lokasi pemisahan ke-1

Gambar 2.9. Lokasi pemisahan ke-3 Kemudian mencari TQ, BQ, dan OQ yaitu :

TQ : Aplikasi qi dimana himpunan atribut yang diakses oleh apliaksi qi merupakan himpunan bagian dari TA.

TQ = {qi|AQ(qi) TA}

BQ : Aplikasi qi dimana himpunan atribut yang diakses oleh apliaksi qi merupakan himpunan bagian dari BA.

BQ = {qi|AQ(qi) BA}

OQ : Aplikasi qi selain TQ dan BQ OQ = Q - {TQ ∪ BQ}

Dari 3 lokasi pemisahan di atas (gambar 2.7; 2.8; 2.9 ) akan didapat TQ, BQ, dan OQ sebagai berikut :

Untuk lokasi pemisahan ke-1 :

TQ : {q1,q2}; BQ : 0 ; OQ : {q3,q4} Untuk lokasi pemisahan ke-2 :

TQ : {q1}; BQ : {q3} ; OQ : {q2,q4} Untuk lokasi pemisahan ke-3 :

d. Hitung jumlah akses total atribut setiap aplikasi dengan mencari : CTQ, CBQ, dan COQ. CTQ adalah jumlah akses total untuk aplikasi qi dari himpunan TQ, CBQ adalah jumlah akses total untuk aplikasi qi dari himpunan BQ, dan COQ adalah jumlah akses total untuk aplikasi qi dari himpunan OQ. Dimana :

CQ =

∑∑

∈ ∀Q qi Sj ) ( ) (qi accj qi refj CTQ =

∑∑

∈ ∀Q qi Sj ) ( ) (qi accj qi refj CBQ =

∑∑

∈ ∀Q qi Sj ) ( ) (qi accj qi refj COQ =

∑∑

∈ ∀Q qi Sj ) ( ) (qi accj qi refj

Dari 3 lokasi pemisahan diatas didapat CTQ, CBQ, dan COQ sebagai berikut :

Untuk lokasi pemisahan ke-1 :

CTQ = 45+5 = 50; CBQ = 0; COQ = 128-50 = 78 Untuk lokasi pemisahan ke-2 :

CTQ = 45; CBQ = 75; COQ = 128-120 = 8 Untuk lokasi pemisahan ke-3 :

CTQ = 0; CBQ = 5+75+3 = 83; COQ = 128-83 = 50 e. Untuk setiap matrik pemisahan diatas cari nilai matrik

Z = CTQ * CBQ – COQ2

Kemudian nilai z yang terbesar akan menjadi dasar penentuan atribut untuk pembagian matrik secara vertikal. Dari kasus diatas didapat nilai z sebagai berikut :

i. Untuk lokasi pemisahan ke-1 : 50 * 0 – (78)2 = -6084 ii. Untuk lokasi pemisahan ke-2 : 45 * 75 – (8)2 = 3311 iii. Untuk lokasi pemisahan ke-3 : 0 * 83 – (50)2 = -2500

Karena lokasi pemisahan ke-2 menghasilkan nilai z yang terbesar maka fragmentasi yang terbentuk adalah : PROJ1 = {A1,A3}, dan PROJ2 = {A1,A2,A4}.

Setelah didapat fragmen-fragmen data, langkah berikutnya adalah menguji kebenaran fragmentasi, yaitu apakah memenuhi syarat completeness, reconstruction, dan disjoint.

a. Completeness

Hasil fragmentasi diatas sudah memenuhi syarat

completeness, karena tidak ada data yang hilang selama

proses fragmentasi.

b. Recontruction

Syarat reconstruction sudah dipenuhi, karena dari hasil fragmen-fragmen data di atas dapat dibentuk kembali sebuah relasi seperti semula.

c. Disjoint

Langkah pemecahan tabel di atas sudah memenuhi syarat

disjoint, karena tidak ada atribut yang berada pada dua

fragmen, kecuali kunci primer.

2. Fragmentasi Horizontal

Dua syarat informasi untuk fragmentasi horizontal, yaitu:

a. Database information

Database information terdiri dari dua macam informasi yaitu relasi dan kardinalitas. Untuk lebih jelasnya dapat dilihat pada gambar 2.10.

Gambar 2.10. Ekspresi Relasi Antar Tabel Menggunakan Link (Li)

Dengan memberikan link L1 pada gambar, fungsi owner dan

member bernilai :

Owner (L1) = PAY

b. Application information

Informasi kualitatif yang paling mendasar dari sebuah aplikasi adalah predicate yang digunakan dalam kueri. Dari predikat dapat dibentuk :

i. Simple Predicates

Untuk relasi R[A1,A2,A3,…,An], maka simple predicate P, adalah Pj : Ai θ Value. Dimana Ai adalah atribut, θ∈{<, >, ≤, ≥, =, ≠} adalah operasi pembanding, dan Value adalah nilai domain. Untuk relasi R didefinisikan Pr = {P1,P2,P3,…,Pm} (Ozsu, 1999).

Contoh :

p1 : Pname = “ Maintenance” p2 : Budget ≤ 200000

Maka domain dari atribut Pname adalah “Maintenance”, dan domain dari atribut Budget adalah 200000.

ii. Minterm Predicates

Kombinasi atau kumpulan dari simple predicates akan membentuk minterm predicates. Diberikan R dan Pr = {P1,P2,P3,…,Pm}, didefinisikan M= {m1,m2,m3,...,mn} sebagai :

M = {mij|mij = P*ik}, l ≤ k ≤ m , l ≤ j ≤ z Pik∈Pri

Contoh :

m1 : PNAME="Maintenance" ^ BUDGET ≤ 200000 m2 : NOT(PNAME="Maintenance") ^ BUDGET ≤ 200000

m3 : PNAME= "Maintenance" ^ NOT(BUDGET ≤ 200000)

m4 : NOT(PNAME="Maintenance") ^ NOT(BUDGET ≤ 200000)

Dalam hal ini, m1 dan m4 adalah contradictory dengan implikasi l dan dapat di eliminasi dari M [Otzu, 1999]. Informasi kuantitatif dari aplikasi adalah :

i. Selektivitas Minterm (Minterm selectivity)

Jumlah tuple dari relasi yang akan diakses oleh user

berdasarkan minterm predicate.

Contoh : dari minterm pada contoh diatas maka sel(m2 ) = 0, sedangkan sel(m2 ) = 2.

ii. Frekuensi Akses (Access frequency)

Frekuensi aplikasi mengakses mengakses data. Jika Q = {q1,q2,q3,…,qz} adalah himpunan kueri user, maka Acc(qi)

2.A Primary Horizontal Fragmentation (PHF)

1. PHF adalah sebuah fragmentasi dari tabel R yang difragmen menjadi tabel-tabel {R1,R2,, Rw} menurut kueri Fj, dimana kueri Fj adalah minterm predicates (mi) (Ozsu, 1999). 2. Algoritma PHF :

Input : Sebuah table R, dan himpunan simple predicates Pr

Output : Himpunan fragmen R = {R1,R2,…,Rw} yang memenuhi aturan fragmentasi.

Syarat : Pr harus complete, dan Pr harus minimal.

3. Aturan pada himpunan simple predicates

a) complete

Sebuah himpunan simple predicates Pr dikatakan

complete jika dan hanya jika setiap dua tuple pada

fragmen yang sama mempunyai probabilitas yang sama untuk diakses oleh setiap transaksi.

Contoh :

Asumsikan bahwa relasi PROJ [PNO, PNAME, BUDGET, LOC] diakses oleh dua aplikasi :

a. Aplikasi 1 : temukan budget dari setiap project pada masing-masing lokasi

b. Aplikasi 2 : temukan project dengan budget < $200000

Jika berdasar aplikasi 1 maka didapat :

Pr={LOC=”Montreal”,LOC=”New York”, LOC= ”Paris”}

Tetapi tidak complete untuk aplikasi 2. Maka Pr dimodifikasi menjadi :

Pr={LOC=”Montreal”,LOC=”New York”, LOC= ”Paris”, BUDGET ≤ 200000, BUDGET > 200000}

Yang memenuhi sifat complete. b) Minimal

Sebuah simple predicates dikatakan minimal jika dan hanya jika terdapat paling sedikit ada satu transaksi yang mengakses akan menghasilkan akses pada fragmen-fragmen yang berbeda.

Sebagai contoh, jika terdapat dua buah fragmen yang berbeda fi dan fj maka paling sedikit terdapat sebuah aplikasi yang dapat mengakses dua fragmen yang berbeda tersebut.

Contoh :

Pr = {LOC=”Montreal”, LOC=”New York”, LOC=”Paris”, BUDGET ≤ 200000, BUDGET > 200000}

Namun, jika kita tambahkan simple predikat berikut ke Pr :

PNAME =”Instrumentation” maka Pr menjadi tidak minimal.

Contoh Primary Horizontal Fragmentation (PHF)

Sebagai gambaran untuk kemudahan dan kejelasan dalam tahap-tahap fragmentasi horizontal primer (PHF) akan diberikan contoh kasus. Bila terdapat tabel PAY dan PROJ sebagai berikut :

Fragmentasi dari relasi PAY : Relasi PAY adalah sebagai berikut :

Tabel 2.2. Tabel PAY

Aplikasi akan meminta : a. Melihat info gaji.

b. Daftar pegawai berada pada dua aplikasi yang berjalan di dua lokasi

Simple predicates :

p1 : SAL ≤ 30000 p2 : SAL > 30000

Minterm predicates : m1 : (SAL ≤ 30000)

m2 : NOT(SAL ≤ 30000) = (SAL > 30000)

hasil fragmentasi :

Tabel 2.3(a). Tabel PAY1 Tabel 2.3(b). Tabel PAY2

Fragmentasi dari relasi PROJ Aplikasi akan meminta :

a. Cari nama dan budget project yang berada pada tiga lokasi (1)

b. Akses informasi project untuk budget pada satu lokasi ≤ 200000 dan yang lain > 200000 (2)

Simple predicates

Untuk aplikasi (1)

p1 : LOC = “Montreal” p2 : LOC =”New York” p3 : LOC = “Paris” Untuk aplikasi (2)

p4 : BUDGET = 200000 p5 : BUDGET > 200000 Pr = Pr' = {p1,p2,p3,p4,p5}

m1 : (LOC = “Montreal”) ^ (BUDGET ≤ 200000) m2 : (LOC = “Montreal”) ^ (BUDGET > 200000) m3 : (LOC = “New York”) ^ (BUDGET ≤ 200000) m4 : (LOC = “New York”) ^ (BUDGET > 200000) m5 : (LOC = “Paris”) ^ (BUDGET ≤ 200000) m6 : (LOC = “Paris”) ^ (BUDGET > 200000) Hasil Fragmentasi

Tabel 2.4. Tabel Hasil Fragmentasi Horizontal Primer (PHF) PROJ1 PROJ2 PROJ3 PROJ4 Uji kebenaran PHF a. Completeness

Karena Pr' complete dan minimal, maka selection

b. Reconstruction

Jika relasi R dibuat menjadi fragmen FR = {R1,R2,…,Rr} maka R = ∪∀Ri∈FRRi adalah reconstruction.

c. Disjointness

Minterm predicates untuk setiap fragmen adalah mutually exclusive.

2.B Derived Horizontal Fragmentation (DHF)

Derived Horizontal Fragmentation dari tabel R

didefinisikan sebagai :

Dengan R adalah tabel member, Si = σ Fi(S),dimana Fi

merupakan formula yang berdasarkan pada Primary

Horizontal Fragmentation Si mana yang didefinisikan, serta w

adalah jumlah maksimun fragmentasi yang akan didefinisikan pada R.

Derived Horizontal Fragmentation didefinisikan pada link

relasi tabel member menurut pilihan operasi yang spesifik dari tabel owner [Otzu, 1999]. Ada dua poin yang perlu diingat. Pertama, link diantara relasi owner dan member terdefinisi sebagai equi-join. Poin yang kedua menjadi sangat penting ketika akan dilakukan partisi dari dari sebuah relasi member

juga jika diinginkan hasil fragmentasi yang didefinisikan hanya pada attribut relasi tabel member. Link yang dimaksud adalah primary key pada tabel owner kemudian juga menjadi

foreign key pada tabel member. Berikut adalah gambar relasi

tebel owner dan tabel member menurut :

Gambar 2.11 Ekspresi dari relasi tabel owner dan tabel member menggunakan link (Li)

Algoritma DHF :

Input : Tabel member R, fragmen PHF S ={S1,S2,…,Sw} dan atribut penghubung tabel

member R dan tabel owner S.

Output : Himpunan fragmen R ={R1,R2,…,Rw} yang memenuhi aturan fragmentasi.

Syarat : a. Pr harus complete

b. Pr harus minimal

Dari contoh fragmen horisontal primer, kita telah mendapatkan fragmen horisontal dari tabel EMP dan PROJ. Dan dari

gambar 2.11., kita memiliki tabel owner PAY dan tabel member EMP.

Contoh 1 Derived Horizontal Fragmentation

Aplikasi : Diasumsikan bahwa user ingin mengelompokkan data pegawai berdasar gaji yang diterima.

Simple predicates table PAY p1 : SAL ≤30000 p2 : SAL > 30000 PHF tabel PAY

PAY1 = σSAL ≤ 30000 (PAY) PAY2 = σSAL > 30000 (PAY) Derived Fragment table PAY

Hasilnya adalah :

Tabel 2.5. Tabel Hasil Derived Horizontal Fragmentation (DHF) EMP1

EMP2

Contoh 2 Derived Horizontal Fragmentation

Aplikasi :

a. Menemukan data pegawai yang bekerja di suatu lokasi. b. Menampilkan data pegawai yang mengakses proyek

pada lokasi dimana data pegawai di fragmen. PHF tabel PROJ

PROJ1 :σ(LOC=“Montreal”) ^ (BUDGET ≤ 200000) PROJ

PROJ3 :σ (LOC=“New York”) ^ (BUDGET ≤ 200000) PROJ

PROJ4 :σ (LOC=“New York“) ^ (BUDGET > 200000) PROJ

PROJ6 :σ (LOC =“Paris”) ^ (BUDGET > 200000) PROJ Derived Fragment table ASG berdasar PHF PROJ

Hasilnya adalah :

Tabel 2.6. Tabel Derived Fragment ASG berdasar PHF PROJ

ASG1

ASG2

ASG3

ASG4

Derived fragmen tabel ASG berdasar derived fragmen

Hasilnya adalah :

Tabel 2.7. Tabel derived fragmen ASG berdasar derived fragmen EMP

ASG1

ASG2

Uji kebenaran PHF a. Completeness

Karena Pr' complete dan minimal, maka selection

predicates adalah komplit.

b. Reconstruction

Jika relasi R dibuat menjadi fragmen FR = {R1 ,R2 ,…,Rr} maka R = ∪∀RiFRRi adalah reconstruction.

c. Disjointness

Minterm predicates untuk setiap fragmen adalah mutually exclusive.

Aturan Pemilihan Derived Fragmentasi

Terkadang sebuah tabel memiliki lebih dari satu tabel

owner (seperti ASG memiliki table owner EMP dan PROJ),

sehingga akan mendapatkan dua derived fragment.

Jika terdapat lebih dari satu derived fragment maka dapat dipilih salah satu dengan menggunakan kriteria :

a. Fragmentasi akan menghasilkan sifat join yang lebih baik.

b. Fragmentasi digunakan pada lebih banyak aplikasi.

2. Alokasi

Alokasi dalam sistem terdistribusi dapat diartikan dengan peletakan tiap-tiap fragmen pada suatu lokasi dengan distribusi yang optimal (Ozsu, 1999). Ketika kita sudah memfragmen data, masih ada yang perlu dipertimbangkan, yaitu alokasi fragmen data tersebut. Dalam menentukan alokasi, Fragmen(F), lokasi data(S), dan aplikasi(Q) yang ingin ditentukan adalah distribusi paling optimal fragmen F pada lokasi S.

Ukuran optimal yang digunakan adalah : a. Biaya Paling Minimal

Yang dimaksud biaya disini adalah biaya penyimpanan fragmen pada lokasi, biaya kueri fragmen pada setiap lokasi,

Dokumen terkait