Anda di halaman 1dari 11

Tugas 2: Distributed Database

Waktu: 2 minggu

Kelompok 4 MTI UI 2010 SA

A. Fauzi Firdaus AS 1006747933


Aeron Krisnadi 1006747971
Fiona 1006748122
Rahmatina Pakpahan 1006748242
Imas Suwangsih 1006769650

FRAGMENTASI DALAM DATABASE TERDISTRIBUSI


Kebenaran (correctness) aturan fragmentasi:
(A) Kelengkapan (completeness). Jika relasi R didekomposisi menjadi fragmen R1, R2, ..., Rn,
tiap-tiap item data yang dapat ditemukan dalam R juga harus dapat ditemukan dalam satu atau
lebih Ri. Properti ini identik dengan dekomposisi yang bersifat lossless dalam normalisasi. Sifat
lossless ini juga penting dalam fragmentasi untuk memastikan bahwa data dalam relasi global
dapat dipetakan ke dalam fragmen-fragmen tanpa ada data yang hilang. Perhatikan bahwa
dalam kasus fragmentasi horizontal, "item" biasanya mengacu pada tuple/record, sementara
dalam kasus fragmentasi vertikal, “item” mengacu pada atribut.
(B) Rekonstruksi. Jika relasi R didekomposisi menjadi fragmen R1, R2, ..., Rn, seharusnya bisa
didefinisikan operator relasional ▼ sedemikian hingga:
R = ▼ Ri, Ri
Operator ▼ akan berbeda untuk berbagai bentuk fragmentasi. Reconstructability relasi dari
fragmen-fragmen diperlukan untuk memastikan bahwa constraint yang didefinisikan pada data
dalam bentuk dependensi dapat dipertahankan.
(C) Disjointness. Jika relasi R didekomposisi secara horizontal menjadi fragmen R1, R2, ..., Rn,
dan data item di berada di Rj, maka data item di tersebut tidak boleh berada dalam fragmen
lain Rk (k ≠ j). Kriteria ini memastikan bahwa fragmen horizontal bersifat disjoint (tidak saling
beririsan). Jika relasi R didekomposisi secara vertikal, atribut primary key biasanya akan
diulang dalam semua fragmen tersebut (atau yang memenuhi prinsip losless join). Oleh karena
itu, dalam kasus fragmentasi vertikal, disjointness didefinisikan hanya pada atribut non primer
dari relasi.

1|Page
BAGIAN A: PEMAHAMAN FRAGMENTASI

Soal 1:
Diberikan relasi berikut ini, dan dua buah predikat yang dipergunakan untuk melakukan
fragmentasi (menjadi dua buah fragmen yaitu p1 dan p2) yaitu p1: Nilai < 50 dan p2: Nilai > 50.
Asumsikan tidak ada pengulangan mata kuliah.

NPM IDMK Nilai


001 IKI001 30
001 IKI002 80
001 IKI003 80
002 IKI002 20
002 IKI004 70
003 IKI001 80
004 IKI003 30

a) Lakukan fragmentasi horizontal terhadap tabel di atas berdasarkan predikat yang diberikan.
b) Apakah fragmentasi yang dihasilkan benar?
c) Jika jawaban untuk (b) tidak, jelaskan mengapa, dan berikan predikat yang akan menghasilkan
fragmentasi yang benar.

Jawab 1:

a)

p1: Nilai<50(R)

NPM IDMK Nilai


001 IKI001 30
002 IKI002 20
004 IKI003 30

p2: Nilai>50(R)

NPM IDMK Nilai


001 IKI002 80
001 IKI003 80
002 IKI004 70
003 IKI001 80

b)
Fragmentasi menggunakan predikat di atas tidak benar, karena jika contoh tuple di atas diperluas
dan terdapat Nilai=50 maka menyalahi salah satu kriteria correctness fragmentasi yaitu
Completeness. Akan ada tuple yang tidak muncul baik dalam fragment p1 maupun p2, yaitu yang
memiliki atribut Nilai=50.

c)
Predikat p1: Nilai<50 dan p2: Nilai>50 tidak complete. Predikat yang benar adalah:

p1: Nilai <= 50 dan p2: Nilai>50,

atau

p1: Nilai<50 dan p2: Nilai>=50.

2|Page
Soal 2:
Diberikan skema database SEA GAMES berikut ini:
Hasil (IDPertandingan, IDAtlit, Posisi, Waktu)
Atlit (IDAtlit, Negara, NamaAtlit, JumlahMedali, JumlahPertandinganDiikuti)
Rekor (IDPertandingan, Negara, NamaAtlit)

Perhatikan bahwa {Negara, NamaAtlit} merupakan alternate key dari tabel Atlit. Misalkan, skema
di atas dibuat menjadi sebuah skema yang didistribusikan dalam 2 site sebagai berikut:

Site1
Hasil1(IDPertandingan, IDAtlit, Posisi)
Atlit1(IDAtlit, NamaAtlit, JumlahMedali)
Rekor1(IDPertandingan, Negara)

Site2
Hasil2(IDPertandingan, IDAtlit, Waktu)
Atlit2(IDAtlit, Negara, JumlahPertandinganDiikuti)
Rekor2(IDPertandingan, NamaAtlit)

Berdasarkan keterangan di atas, jawablah pertanyan berikut ini:


a. Berikan referential integrity yang ada dalam skema terpusat di atas
b. Apakah hasil fragmentasi di atas sudah benar? Jika belum berikan alasan kenapa menurut
anda fragmentasi atas masih salah

Jawab 2:

a)

Referential integrity untuk skema terpusat:

Hasil (IDPertandingan, IDAtlit, Posisi, Waktu)


 Primary Key: IDPertandingan, IDAtlit
 Foreign Key: IDAtlit references Atlit(IDAtlit)

Atlit (IDAtlit, Negara, NamaAtlit, JumlahMedali, JumlahPertandinganDiikuti)


 Primary Key: IDAtlit
 Alternate Key: Negara, NamaAtlit

Rekor (IDPertandingan, Negara, NamaAtlit)


 Primary Key: IDPertandingan

Contoh data untuk skema terpusat database:

Tabel: Hasil
IDPertandingan IDAtlit Posisi Waktu
SEAG1 BBG 1 02:30
SEAG1 PMK 2 03:10
SEAG2 GNZ 1 02:40

Tabel: Atlit
IDAtlit Negara NamaAtlit JumlahMedali JumlahPertandinganDiikuti
BBG INA Bambang 2 2
PMK INA Roger 1 3
GNZ SPA Gonzales 1 3

3|Page
Tabel: Rekor
IDPertandingan Negara NamaAtlit
SEAG1 INA Bambang

Atribut {Negara, NamaAtlit} pada tabel Atlit adalah alternate key, karenanya kombinasi kedua nilai
atribut tersebut bersifat unik.

Asumsi tabel Rekor digunakan untuk mencatat prestasi (dalam hal ini waktu terendah/tercepat)
oleh atlit tertentu pada setiap pertandingan.

Bermula dari tabel Rekor akan ditampikan pencapaian rekor (berupa waktu terendah), maka bisa
dilakukan natural join yang melibatkan dua tabel lainnya yaitu Atlit dan Hasil. Salah satu proyeksi
yang bisa digunakan setelah melakukan natural join adalah sebagai berikut:

IDPertandingan ,Negara ,Waktu (Rekor ⋈ Atlit ⋈ Hasil)

yang menghasilkan data:

IDPertandingan Negara Waktu


SEAG1 INA 02:30

Hasil tersebut diperoleh dengan terlebih dulu melakukan natural join menggunakan atribut
{Negara,NamaAtlit} pada tabel Rekor dengan alternate key pada tabel Atlit {Negara,NamaAtlit},
dihasilkan tuple sebagai berikut (dipilih atribut tertentu):

IDPertandingan IDAtlit Negara NamaAtlit


SEAG1 BBG INA Bambang

Hasil join tersebut kemudian dilakukan natural join dengan tabel Hasil menggunakan atribut
{IDPertandingan,IDAtlit} yang menjadi primary key pada tabel tersebut, sehingga diperoleh tuple
berikut (dipilih atribut tertentu):

IDPertandingan Negara Waktu


SEAG1 INA 02:30

b)

Hasil fragmentasi vertikal adalah sebagai berikut:

Site1
Hasil1(IDPertandingan, IDAtlit, Posisi)
Atlit1(IDAtlit, NamaAtlit, JumlahMedali)
Rekor1(IDPertandingan, Negara)

Site2
Hasil2(IDPertandingan, IDAtlit, Waktu)
Atlit2(IDAtlit, Negara, JumlahPertandinganDiikuti)
Rekor2(IDPertandingan, NamaAtlit)

4|Page
Melanjutkan contoh data di atas, maka data hasil fragmentasi adalah sebagai berikut:

Site1

Hasil1
IDPertandingan IDAtlit Posisi
SEAG1 BBG 1
SEAG1 PMK 2
SEAG2 GNZ 1

Atlit1
IDAtlit NamaAtlit JumlahMedali
BBG Bambang 2
PMK Pamungkas 1
GNZ Gonzales 1

Rekor1
IDPertandingan Negara
SEAG1 INA

Site2

Hasil2
IDPertandingan IDAtlit Waktu
SEAG1 BBG 02:30
SEAG1 PMK 03:10
SEAG2 GNZ 02:40

Atlit2
IDAtlit Negara JumlahPertandinganDiikuti
BBG INA 2
PMK INA 3
GNZ SPA 3

Rekor2
IDPertandingan NamaAtlit
SEAG1 Bambang

Jika kemudian ingin dihasilkan tuple yang sama seperti pada kasus sebelum difragmentasi, yaitu
untuk memilih nilai dari atribut {IDPertandingan,Negara,Waktu}, maka bisa dilakukan proyeksi
sebagai berikut:

IDPertandingan ,Negara ,Waktu (Rekor1 ⋈ Atlit2 ⋈ Hasil2)

yang menghasilkan data:

IDPertandingan Negara Waktu


SEAG1 INA 02:30
SEAG1 INA 03:10

Tuple di atas diperoleh dengan langkah yang sama seperti pada proses natural join skema
terpusat yang telah dijelaskan dalam 2a.

Tampak bahwa ada penambahan baris tuple (baris 2), dari yang seharusnya hanya satu baris.
Artinya hasil fragmentasi ini tidak memenuhi kriteria correctness karena untuk satu proyeksi join
tertentu tidak bisa direkonstruksi dengan benar sebagaimana pada skema terpusat. Hal ini karena

5|Page
disebabkan fragmentasi yang dirancang memecah 2 atribut yang menjadi alternate key
{Negara,NamaAtlit} dari tabel Atlit, ke dalam 2 site yang berbeda.

Pemisahan 2 atribut alternate key tersebut menyalahi aturan karena IDAtlit berkorespondensi satu-
satu dengan {Negara,NamaAtlit}, atau bisa dituliskan:

IDAtlit  {Negara,NamaAtlit}
{Negara,NamaAtlit}  IDAtlit

dimana, IDAtlit adalah primary key dari tabel Atlit.

Dari tabel Hasil:

{IDPertandingan,IDAtlit}  Waktu
IDAtlit  Waktu

Jadi karena:

{Negara,NamaAtlit}  IDAtlit
IDAtlit  Waktu

Maka berdasarkan sifat transitif:

{Negara,NamaAtlit}  Waktu

6|Page
BAGIAN B: STUDI KASUS

Soal 3:
Sebuah perusahaan multinasional telah memutuskan untuk mendistribusikan databasenya di
berbagai daerah. Skema relasional terpusat yang saat ini dimiliki adalah sebagai berikut:

Pegawai (NIP, Nama, Alamat, TglLahir, JenisKelamin, Gaji, Pajak, NoDept)


Departemen (NoDept, NamaDept, NIPManager, NoAreaBisnis, NoWilayah)
Proyek (NoProyek, NamaProyek, NilaiKontrak, NIPManagerProyek, NoDept)
BekerjaPada(NIP, NoProyek, JumlahJamKerja)
AreaBisnis (NoAreaBisnis, NamaAreaBisnis)
Wilayah(NoWilayah, NamaWilayah)

Dimana:
 Pegawai berisi detil informasi pegawai dan No Induk Pegawai (NIP) sebagai key dari relasi
Pegawai.
 Departemen berisi detil tentang departemen dan NoDept adalah key dari relasi Depatemen.
NIPManager menunjukkan NIP dari pegawai yang menjadi manajer departemen. Hanya ada
satu manajer untuk setiap departemen. Setiap departemen hanya menjalankan satu area
bisnis dan berlokasi di satu wilayah tertentu.
 Proyek berisi detil proyek di perusahaan dan NoProyek adalah key dari relasi Proyek. Manajer
proyek disimpan dalam atribut NIPManagerProyek, dan departemen yang bertanggung jawab
terhadap proyek tersebut bisa dilihat melalui NoDept.
 BekerjaPada berisi detil dari jam kerja pegawai pada setiap proyek dan (NIP, NoProyek)
membentuk key dari relasi ini.
 AreaBisnis berisi informasi area bisnis dari perusahaan dan key-nya NoAreaBisnis.
 Wilayah berisi wilayah operasional dari perusahaan dan key-nya adalah NoWilayah.

Departemen dikelompokkan dalam wilayah sebagai berikut:


Wilayah 1: Surabaya; Wilayah 2: Jakarta; Wilayah 3: Medan

Sedangkan area bisnis dari perusahaan tersebut meliputi: Software, Hardware dan Konsultasi.
Tidak ada area bisnis Software di Jakarta dan semua area bisnis Hardware berada di Medan.
Proyek-proyek dikelola oleh kantor departemen lokal.

Selain penyebaran data ke berbagai wilayah, terdapat persyaratan tambahan lainnya untuk
mengakses data karyawan, baik informasi pribadinya atau informasi terkait pekerjaannya (dalam
hal ini terkait Penggajiannya).

Terkait hal di atas, kerjakan hal berikut ini:


a) Buat ER Diagram untuk skema di atas.
b) Dengan menggunakan ER Diagram tersebut, buatlah rancangan database terdistribusi untuk
sistem ini, yang mencakup:
 skema fragmentasi yang cocok untuk sistem;
 predikat minimal yang harus dibuat dalam kasus fragmentasi horizontal;
 rumusan rekonstruksi global yang bisa dilakukan dari fragmen-fragmen yang sudah anda
buat

7|Page
Jawab 3:

a) ER Diagram:

class Logical View

Bekerj aPada

*PK NIP
*pfK NoProyek
1..* 0..*
JumlahJamKerja
(NIP = NIP)
(NoProyek = NoProyek)

1
1
Proyek
Pegaw ai
*PK NoProyek
NamaProyek *PK NIP
NilaiKontrak Nama
NIPManagerProyek Alamat
FK NoDept TglLahir
1..* JenisKelamin
0..* Gaji
Pajak
(NoDept = NoDept)
FK NoDept

(NoDept = NoDept)
1
1

(NIPManager = NIP)
Departemen

*PK NoDept
NamaDept 1
1 FK NIPManager
FK NoAreaBisnis
FK NoWilayah 1

1 (NoWilayah = NoWilayah)

(NoAreaBisnis = NoAreaBisnis) 1

AreaBisnis Wilayah

*PK NoAreaBisnis *PK NoWilayah


NamaAreaBisnis 1 NamaWilayah

8|Page
b) Rancangan Database Terdistribusi:

 Skema fragmentasi yang cocok untuk kasus ini adalah fragmentasi horisontal, karena
penyebaran data berdasarkan kriteria tertentu. Yaitu setiap Departemen hanya
menjalankan satu Area Bisnis tertentu dan berlokasi di satu Wilayah tertentu.
 Berdasarkan informasi kasus, akan dibuat skema relasional di 3 site (Wilayah), yaitu:

1) Wilayah Surabaya, dengan Area Bisnis: Software, dan ditangani oleh Departemen
1.

Asumsi pengkodean atribut sebagai berikut:

{NoDept,NamaDept} = {D1,Departemen 1}
{NoWilayah,NamaWilayah} = {SUB,Surabaya}
{NoAreaBisnis,NamaAreaBisnis} = {SW,Software}

2) Wilayah Jakarta, dengan Area Bisnis: Konsultasi, dan ditangani oleh Departemen 2.

Asumsi pengkodean atribut sebagai berikut:

{NoDept,NamaDept} = {D2,Departemen 2}
{NoWilayah,NamaWilayah} = {JKT,Jakarta}
{NoAreaBisnis,NamaAreaBisnis} = {KS,Konsultasi}

3) Wilayah Medan, dengan Area Bisnis: Hardware, dan ditangani oleh Departemen 3.

Asumsi pengkodean atribut sebagai berikut:

{NoDept,NamaDept} = {D3,Departemen 3}
{NoWilayah,NamaWilayah} = {MDN,Medan}
{NoAreaBisnis,NamaAreaBisnis} = {HW,Hardware}

Skema Relasional Wilayah Surabaya

Pegawai1 (NIP, Nama, Alamat, TglLahir, JenisKelamin, Gaji, Pajak, NoDept)


Predikat: NoDept = „D1‟

Departemen1 (NoDept, NamaDept, NIPManager, NoAreaBisnis, NoWilayah)


Predikat: NoDept = „D1‟  NoAreaBisnis = „SW‟  NoWilayah = „SUB‟

Proyek1 (NoProyek, NamaProyek, NilaiKontrak, NIPManagerProyek, NoDept)


Predikat: NoDept = „D1‟

BekerjaPada1(NIP, NoProyek, JumlahJamKerja)

AreaBisnis1 (NoAreaBisnis, NamaAreaBisnis)


Predikat: NoAreaBisnis = „SW‟

Wilayah1(NoWilayah, NamaWilayah)
Predikat: NoWilayah = „SUB‟

9|Page
Berdasarkan deskripsi di atas, fragmen-fragmen untuk site Surabaya dapat ditulis dalam
bentuk notasi matematika sebagai berikut:

Pegawai1: NoDept=‟D1‟(Pegawai)
Departemen1: NoDept = „D1‟  NoAreaBisnis = „SW‟  NoWilayah = „SUB‟ (Departemen)
Proyek1: NoDept=‟D1‟(Proyek)
BekerjaPada1: BekerjaPada.NoProyek=Proyek.NoProyek(BekerjaPada  NoProyek(NoDept=‟D1‟(Proyek)))
AreaBisnis1: NoAreaBisnis=‟SW‟(AreaBisnis)
Wilayah1: NoWilayah=‟SUB‟(Wilayah)

Skema Relasional Wilayah Jakarta

Pegawai2 (NIP, Nama, Alamat, TglLahir, JenisKelamin, Gaji, Pajak, NoDept)


Predikat: NoDept = „D2‟

Departemen2 (NoDept, NamaDept, NIPManager, NoAreaBisnis, NoWilayah)


Predikat: NoDept = „D2‟  NoAreaBisnis = „KS‟  NoWilayah = „JKT‟

Proyek2 (NoProyek, NamaProyek, NilaiKontrak, NIPManagerProyek, NoDept)


Predikat: NoDept = „D2‟

BekerjaPada2(NIP, NoProyek, JumlahJamKerja)

AreaBisnis2 (NoAreaBisnis, NamaAreaBisnis)


Predikat: NoAreaBisnis = „KS‟

Wilayah2(NoWilayah, NamaWilayah)
Predikat: NoWilayah = „JKT‟

Berdasarkan deskripsi di atas, fragmen-fragmen untuk site Jakarta dapat ditulis dalam
bentuk notasi matematika sebagai berikut:

Pegawai2: NoDept=‟D2‟(Pegawai)
Departemen2:  NoDept = „D2‟  NoAreaBisnis = „KS‟  NoWilayah = „JKT‟ (Departemen)
Proyek2: NoDept=‟D2‟(Proyek)
BekerjaPada2: BekerjaPada.NoProyek=Proyek.NoProyek(BekerjaPada  NoProyek(NoDept=‟D2‟(Proyek)))
AreaBisnis2: NoAreaBisnis=‟KS‟(AreaBisnis)
Wilayah2: NoWilayah=‟JKT‟(Wilayah)

Skema Relasional Wilayah Medan

Pegawai3 (NIP, Nama, Alamat, TglLahir, JenisKelamin, Gaji, Pajak, NoDept)


Predikat: NoDept = „D3‟

Departemen3 (NoDept, NamaDept, NIPManager, NoAreaBisnis, NoWilayah)


Predikat: NoDept = „D3‟  NoAreaBisnis = „HW‟  NoWilayah = „MDN‟

Proyek3 (NoProyek, NamaProyek, NilaiKontrak, NIPManagerProyek, NoDept)


Predikat: NoDept = „D3‟

BekerjaPada3(NIP, NoProyek, JumlahJamKerja)

AreaBisnis3 (NoAreaBisnis, NamaAreaBisnis)


Predikat: NoAreaBisnis = „HW‟
10 | P a g e
Wilayah3(NoWilayah, NamaWilayah)
Predikat: NoWilayah = „MDN‟

Berdasarkan deskripsi di atas, fragmen-fragmen untuk site Medan dapat ditulis dalam
bentuk notasi matematika sebagai berikut:

Pegawai3: NoDept=‟D3‟(Pegawai)
Departemen3:  NoDept = „D3‟  NoAreaBisnis = „HW‟  NoWilayah = „MDN‟ (Departemen)
Proyek3: NoDept=‟D3‟(Proyek)
BekerjaPada3: BekerjaPada.NoProyek=Proyek.NoProyek(BekerjaPada  NoProyek(NoDept=‟D3‟(Proyek)))
AreaBisnis3: NoAreaBisnis=‟HW‟(AreaBisnis)
Wilayah3: NoWilayah=‟MDN‟(Wilayah)

 Rumusan rekonstruksi global untuk fragmen-fragmen yang dibuat sebagai berikut:

Pegawai: Pegawai1  Pegawai2  Pegawai3


Departemen: Departemen1  Departemen2  Departemen3
Proyek: Proyek1  Proyek2  Proyek3
BekerjaPada: BekerjaPada1  BekerjaPada2  BekerjaPada3
AreaBisnis: AreaBisnis1  AreaBisnis2  AreaBisnis3
Wilayah: Wilayah1  Wilayah2  Wilayah3

11 | P a g e

Anda mungkin juga menyukai