Tugas - 2 Distributed - Database Resolution v2
Tugas - 2 Distributed - Database Resolution v2
Waktu: 2 minggu
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.
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)
p2: Nilai>50(R)
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:
atau
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)
Jawab 2:
a)
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:
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):
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):
b)
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:
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
{IDPertandingan,IDAtlit} Waktu
IDAtlit Waktu
Jadi karena:
{Negara,NamaAtlit} IDAtlit
IDAtlit Waktu
{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:
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.
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).
7|Page
Jawab 3:
a) ER Diagram:
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
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.
{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.
{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.
{NoDept,NamaDept} = {D3,Departemen 3}
{NoWilayah,NamaWilayah} = {MDN,Medan}
{NoAreaBisnis,NamaAreaBisnis} = {HW,Hardware}
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)
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)
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)
11 | P a g e