Rabu, 08 Maret 2023

BASIS DATA TERDISTRIBUSI

 PENGERTIAN


Basisdata 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.





Transaksi Lokal dan Global


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.

Ada 2 jenis transaksi yang diproses:

1. Transaksi Lokal
Sebuah transaksi yang mengakses data pada satu site di mana
transaksi telah ditentukan.

2. Transaksi Global
Transaksi yang mengakses data pada site yang berbeda di
mana transaksi telah ditentukan, atau transaksi yang
mengakses data pada beberapa site yang berbeda.


Contoh Transaksi

- Transaksi untuk menambahkan $50 pada nomor
rekening 177 yang berada di cabang Valleyview.

- Jika transaksi telah ditentukan pada cabang
Valleyview, maka transaksi ini dianggap transaksi
lokal.

- Jika sebuah transaksi untuk mentransfer $50 dari
rekening 177 ke rekening 305 yang berlokasi di
cabang Hillside, maka transaksi ini dikatakan
transaksi global karena rekening di dua site yang
berbeda telah diakses sebagai hasil dari
eksekusinya.

Topologi Database Terdistribusi

  1. Fully Connected Network
  2. Partially Connected Network
  3. Tree Structured Network
  4. Ring Network
  5. Star Network

Topologi Database Terdistribusi





Topologi Database Terdistribusi


Fully Connected network :
- Keuntungan : kalau salah satu node rusak, yang lainnya masih
dapat berjalan (tetapi biaya mahal).
- Kerugian : control management tidak terjamin

Partially connected network :
- Keuntungan : reliability rendah, biaya dapat ditekan
- Kerugian : control management tidak terjamin

Tree structure network :
- Keuntungan : bersifat sentral, control management lebih
terjamin
- Kerugian : kalau node pusat (A) rusak, semua akan rusak.
Cat : setiap proses dimulai dari bawah.

Ring Network (LAN):
- Keuntungan : rusak satu, yang lain masih berjalan
- Kerugian : Control management kurang terjamin
karena bersifat desentralisasi

Star Network (LAN):
- Keuntungan : - control management lebih terjamin,
karena bersifat sentral - reliability rendah
- Kerugian : kalau pusat rusak, yang lainnya rusak


Keuntungan Basis Data Terdistribusi

1. Pengawasan distribusi dan pengambilan data
Jika sejumlah site yang berbeda dihubungkan satu sama
lain, lalu seorang pemakai yang berada pada satu site dapat
mengakses data yang tersedia pada site lain.

Sebagai contoh : sistem distribusi pada sebuah bank
memungkinkan seorang pemakai pada salah satu cabang
dapat mengakses data cabang lain.


2. Reliability dan availability
Sistem distribusi dapat terus menerus berfungsi dalam
menghadapi kegagalan dari site individu atau mata rantai
komunikasi antar site.

Misal : jika site-site gagal dalam sebuah sistem distribusi,

site-site lainnya dapat melanjutkan operasi jika data telah
direplikasi pada beberapa site

3. Kecepatan pemrosesan query
Jika sebuah query melibatkan data pada beberapa site,
memungkinkan membagi query ke dalam sub query yang dapat
dieksekusi dalam bentuk paralel oleh beberapa site. Perhitungan
secara paralel mempercepat pemrosesan dari seorang pemakai query

4. Otonomi lokal
Pendistribusian sistem mengizinkan sekelompok individu dalam
sebuah perusahaan untuk melatih pengawasan lokal melalui data
mereka sendiri. Dengan kemampuan ini dapat mengurangi
ketergantungan pada pusat pemrosesan.

5. Efisien dan fleksibel
Data dalam sistem distribusi dapat disimpan dekat dengan titik di
mana data tersebut dipergunakan. Data dapat secara dinamik
bergerak atau disalin, atau salinannya dapat dihapus.


Kerugian Basis Data Terdistribusi

1. Harga software yang mahal
Hal ini disebabkan sangat sulit untuk membuat sistem
database distribusi

2. Kemungkinan kesalahan lebih besar
Site-site yang termasuk dalam sistem distribusi
beroperasi secara paralel sehingga menjadi lebih sulit
untuk menjamin kebenaran dari algoritma. Adanya
kesalahan mungkin tak dapat diketahui

3. Biaya pemrosesan tinggi
Perubahan pesan-pesan dan penambahan perhitungan
dibutuhkan untuk mencapai koordinasi antar site.

Penyimpanan Data pada Sistem

Terdistribusi
Pada basisdata terdistribusi, relasi dapat
disimpan pada beberapa tempat.

A. FRAGMENTASI DATA
Fragmentasi terdiri dari relasi yang dibagi ke
relasi atau fragmen yang lebih kecil dan
mengirim fragmen pada beberapa tempat.

B. REPLIKASI
DDBMS dapat membuat suatu copy dari
fragmen pada beberapa situs yang berbeda.

FRAGMENTASI

Fragmentasi data memisahkan relasi ke dalam
beberapa fragment. Tiap-tiap fragment
disimpan pada site yang berbeda.

3 Jenis Fragmentasi: 1

1. Fragmentasi
Horizontal

2. Fragmentasi Vertical

3. Fragmentasi
Campuran (Hybrid) \

Fragmentasi horisontal


lem || = || ==



Fragmentasi vertikal
Aturan dalam Fragmentasi:
$$ Kondisi lengkap.
Seluruh data dari relasi global harus dipetakan ke dalam fragment.

Fragmentasi tidak akan terjadi jika sebuah data item yang dimiliki
oleh relasi global, tidak dimiliki oleh beberapa fragment.

$$ Kondisi penyusunan kembali.

Harus selalu mungkin untuk menyusun kembali tiap-tiap relasi
global dari fragmentfragmentnya. Hanya fragment-fragment yang

isimpan dalam database terdistribusi yang dapat membangun
relasi global kembali melalui operasi penyusunan kembali jika
diperlukan.

$$ Kondisi disjoin.
Kondisi ini sangat berguna terutama untuk fragmentasi horizontal,

sementara untuk fragmentasi vertikal kondisi ini kadang-kadang
dilanggar.

FRAGMENTASI HORIZONTAL

« Fragmentasi horizontal berisikan tuple-tuple yang partis
dari sebuah relasi global ke dalam sejumlah subset ri, r2,
rn.

- Tiap-tiap subset berisikan sejumlah tuple dari r. Tiap-tiap
tuple dari r harus memiliki satu fragment, sehingga relasi
yang asli dapat disusun kembali.

- Sebuah fragment dalam fragmentasi horizontal dapat
didefinisikan sebagai sebuah seleksi pada relasi global r.

-« Oleh karena itu sebuah predikat Pi digunakan untuk
menyusun fragment ri seperti berikut :

ri = oi(r)

- Penyusunan kembali dari relasi r dapat diperoleh dengan
mengambil gabungan dari seluruh fragment :

n
r= Url
1=1

FRAGMENTASI VERTICAL

- Dalam fragmentasi vertikal, tiap-tiap fragment ri
didefinisikan sebagai :
rl = 7ti(r)
- Relasi global dapat disusun kembali dari fragment-
fragment dengan mengambil natural join:
r=rira2r.... Rn

- Fragmentasi vertikal disempurnakan dengan
menambahkan sebuah atribut yang disebut tuple
identifier (tuple-id) ke dalam skema r. Sebuah tuple-
id adalah sebuah alamat logik dari sebuah tuple.

- Tiap-tiap tuple dalam r harus memiliki sebuah
alamat yang unik, atribut tuple-id sebagai kunci
untuk penambahan skema.


FRAGMENTASI CAMPURAN

- Relasi r (global) dibagi-bagi ke dalam sejumlah
relasi fragment ri, r2, r3, ..., rn.

- Tiap-tiap fragment diperoleh sebagai hasil baik dari
skema fragmentasi horizontal ataupun skema
fragmentasi vertikal pada relasi r, atau dari sebuah
fragment r yang diperoleh sebelumnya.

Cara membangun fragmentasi campuran :

a.Menggunakan fragmentasi horizontal pada
fragmentasi vertikal.

b.Menggunakan fragmentasi vertikal pada
fragmentasi horizontal.
Contoh Fragmentasi

Relasi: Deposit (branch name, account number,
customer name, balance)

Branch-name account- Customer- | balance
number name

Hillside 305 Lowman 500
Hillside 226 Camp 336
Valleyview 177 Camp 205
Valleyview 402 Khan 10000
Hillside 115 Khan 62
Valleyview 408 Khan 1123
Valleyview 639 Green 750

Horizontal

- Jika bank hanya memiliki dua cabang, Hillside dan
Valleyview maka ada dua fragment yang berbeda.

- Kemudian fragmentasi horizontal dapat diuraikan
sbb :

Deposit1 = o branch-name = "Hillside” (Deposit)
Deposit2 = o branch-name = "Valleyview" (Deposit)

Fragment deposit1 disimpan pada site Hiilside dan
fragment deposit2 disimpan pada site Valleyview.
Horizontal

Dua Fragmen tersebut digambarkan Sbb:

customer-name
Hillside 305 Lowman 500
Hillside 226 Camp 336
Hillside 115 Khan 62
(a) depositq

| pranch-name | account-number | customer-name || balance
Valleyview 177 Camp 205
Valleyview 402 Khan 10000
Valleyview 408 Khan 1123
Valleyview 639 Green 750

(b) deposito
Horizontal

- Kondisi penyusunan kembali sangat mudah
untuk diperiksa karena selalu mungkin untuk
disusun kembali relasi global deposit melalui
operasi berikut:

Deposit = deposit1 U deposit2
Vertical

Pada fragmentasi vertikal, relasi deposit
memerlukan penambahan tuple-id

- Berikut ini adalah relasi deposit dengan
penambahan tuple-id :

branch-name | account- | customer- | balance | tuple-id

number name
Hillside 305 Lowman 500 1
Hillside 226 Camp 336 2
Valleyview 177 Camp 205 3
Valleyview 402 Khan 10000 4
Hillside 115 Khan 62 5
Valleyview 408 Khan 1123 6
Valleyview 639 Green 750 7

Vertical

Sebuah fragmentasi vertikal dari relasi ini dapat diuraikan
sebagai berikut :

Deposits = 1 branch-name,customer-name,tuple-id
(deposit)
Deposit4 = m account-number,balance,tuple-id (deposit)

branch-name | customer-name | tuple-id | account-number | Balance | tuple-id
Hillside Lowman 1
Hilside | Camp 2 305 SL
226 336 2
Valleyview | Camp 3 177 oT EE
Valleyview Khan 4 400 10000 4
Hillside Khan 0 115 62 5
Valleyview Khan 6 408 1123 6
Valleyview | Green 7 639 190p 7

(a) relasi deposits (b) relasi deposits
Vertical

- Untuk menyusun kembali relasi deposit yang asli
dari fragment-fragment, kita dapat menggunakan:

1 Deposit-scheme(deposit3 deposit4)

- Atribut join dari ekspresi di atas adalah tuple-id.
Karena tuple-id menggambarkan sebuah alamat, hal
ini memungkinkan untuk memasangkan sebuah
tuple dari deposit3 yang berhubungan dengan tuple
dari deposit4 dengan menggunakan alamat yang
diberikan oleh harga tuple-id.
Campuran

- Misalkan relasi r adalah relasi deposit dari contoh
sebelumnya. Relasi ini dibagi ke dalam fragment
deposit3 dan deposit4 (Vertical).

- Selanjutnya kita dapat membagi fragment deposit3
menjadi fragment deposit3a dan fragment deposit3b
dengan menggunakan skema fragmentasi horizontal
ke dalam dua fragment berikut :

Deposit3a = o branch-name = "Hillside" (Deposit3)
Deposit3b = o branch-name = "Valleyview"
(Deposits)
branch-name | customer-name |  tuple-id |

Hillside Lowman 1
Hillside Camp
Hillside Khan 5

(a)Relasi deposit3g

branch-name customer-name tuple-id
Valleyview Camp 3
Valleyview Khan 4
Valleyview Khan 6
Valleyview Green 7

(b) relasi deposit3p


Share: