IK203 Sistem Basis Data Suryo Widiantoro, ST, MMSI, M.Com(IS) Latihan Soal IK203 Sistem Basis Data Suryo Widiantoro, ST, MMSI, M.Com(IS)
Soal #1 PT Sinar Surya bergerak di bidang alihdaya yang memberikan jasa keamanan dan kebersihan kepada customer personal maupun perusahaan. Beberapa dari customernya bisa memiliki lebih dari satu properti seperti rumah, apartemen, gedung , dll.
Buat sebuah daftar (5 saja) untuk pemilik dan properti sekurangnya berisi nama pemilik, telpon, alamat penagihan, nama properti, jenis, dan alamat. Jelaskan apa saja modification problem yang mungkin terjadi bila daftar dibuat dengan menggunakan spreadsheet.
Pisahkan daftar tersebut menjadi tabel yang hanya memiliki 1 tema saja Pisahkan daftar tersebut menjadi tabel yang hanya memiliki 1 tema saja. Tambahkan kolom ID bila perlu. Buatlah hubungan antar tabel pada kolom yang dirasa tepat. Jelaskan apakah modification problem pada soal B masih dijumpai atau telah hilang.
Tambahkan pada daftar soal A dengan daftar layanan yang berisi sekurangnya tanggal, jenis layanan, dan jumlah tagihan untuk setiap layanan. Jelaskan modification problem yang mungkin terjadi bila daftar pada soal E dibuat pada spreadsheet.
Pisahkan daftar pada soal E menjadi tabel yang hanya memiliki 1 tema saja. Tambahkan kolom ID bila perlu. Buat hubungan antar tabel pada kolom yang sesuai. Jelaskan apakah modification problem masih terjadi atau tidak.
Soal #2 Tuliskan struktur relasi (relational schema) untuk semua tabel yang sudah dibuat sebelumnya pada Soal #1
Soal #3 Perhatikan persamaan berikut ini: Luas = Panjang x Lebar Tuliskan functional dependency persamaan tersebut. Sebutkan apa variabel determinantnya.
Soal #4 Perhatikan relational schema berikut ini: MAHASISWA (MhsID, MhsNamaDpn, MhsNamaBlk, MhsNoHp, MhsProdi) Asumsi: nilai dari MhsNoHp adalah semua nomor Hp yang dimiliki oleh mahasiswa tersebut, dan setiap mahasiswa hanya boleh mengambil 1 Prodi saja
Buat contoh relasi untuk 2 mahasiswa, yang pertama memiliki 2 no Hp dan yang kedua 3 no Hp. Buat daftar candidate key untuk relasi di atas. Nyatakan functional dependency untuk relasi di atas. Jelaskan mengapa relasi tersebut tidak memenuhi kriteria tabel relational. Pisahkan relasi supaya memenuhi kriteria tabel relational.
Aljabar Relational IK203 Sistem Basis Data Pertemuan #4 Suryo Widiantoro, ST, MMSI, M.Com(IS)
Aljabar Relational Menjelaskan secara teori cara untuk memanipulasi konten dari tabel menggunakan delapan operator relational Unary: SELECT, PROJECT, Set: UNION, INTERSECT, DIFFERENCE, PRODUCT, Join: JOIN, Division: DIVIDE
1# SELECT SELECT, disebut juga RESTRICT, memberikan nilai untuk semua baris yang memenuhi kondisi tertentu dalam sebuah tabel. SELECT dapat digunakan untuk mendata seluruh nilai pada baris, atau memberikan nilai hanya pada baris yang memenuhi kriteria tertentu. Dengan kata lain, SELECT menghasilkan sebuah subset horizontal dari sebuah table.
Semua operator relational memiliki sifat closure; yaitu penggunaan operator aljabar relational pada relation (tabel) yang sudah ada akan menghasilkan relation baru
2# PROJECT PROJECT memberikan semua nilai untuk attribute yang dipilih. Dengan kata lain, PROJECT menghasilkan sebuah subset vertikal dari sebuah tabel.
3# UNION UNION mengombinasikan seluruh baris dari 2 tabel, dengan tidak menyertakan baris yang duplikasi. Tabel harus memiliki karakteristik attribute yang sama (kolom dan domain harus kompatibel) untuk bisa digunakan pada UNION. Saat 2 atau lebih tabel memiliki jumlah kolom yang sama, dan saat kolom yang saling berkoresponden memiliki domain yang sama (atau kompatibel), maka tabel dikatakan sebagai union-compatible.
4# INTERSECT INTERSECT memberikan hanya baris yang muncul pada dua tabel. Sebagaimana pada UNION, tabel harus union-compatible untuk memberikan hasil yang valid.
Sebagai contoh, INTERSECT tidak dapat digunakan apabila salah satu attribute adalah numerik dan satu lainnya adalah berbasis karakter.
5# DIFFERENCE DIFFERENCE memberikan seluruh baris pada satu tabel yang tidak terdapat pada tabel lainnya; atau dengan kata lain, mengurangi satu tabel dengan tabel lainnya. Seperti pada UNION, tabelnya harus union-compatible untuk mendapatkan hasil yang valid.
Perhatikan bahwa mengurangi tabel pertama dengan tabel kedua adalah tidak sama dengan mengurangi tabel kedua dengan tabel pertama.
6# PRODUCT PRODUCT memberikan seluruh pasangan baris yang memungkinkan dari 2 tabel—juga disebut sebagai produk Cartesian. Sehingga, bila ada tabel memiliki 6 baris dan tabel lainnya memiliki 3 baris, maka PRODUCT menghasilkan sebuah daftar yang berisi 6 ×3 =18 baris.
7# JOIN JOIN memungkinkan informasi untuk dikombinasikan dari 2 atau lebih tabel. JOIN adalah kekuatan utama dibalik database relational, memungkinkan penggunaan tabel yang independen yang terhubung melalui attribute yang sama.
Natural join menghubungkan tabel dengan memilih hanya baris yang memiliki nilai sama pada attribute yang sama, dan merupakan hasil dari proses 3-tahap berikut ini: Lakukan PRODUCT dari tabel-tabel tersebut Lakukan SELECT pada hasil langkah a) untuk menghasilkan hanya baris dengan nilai attribute yang sama. Kolom yang sama disebut sebagai kolom join. Lakukan PROJECT pada hasil langkah b) untuk menghasilkan satu saja attribute yang sama, sehingga menghilangkan duplikasi kolom. Hasil akhir dari natural join adalah sebuah tabel yang tidak menyertakan pasangan yang tidak sesuai, dan hanya menampilkan pasangan yang sesuai saja.
Perhatikan kedua relation berikut sebagai contoh untuk natural join
Lakukan operasi PRODUCT
Lakukan operasi SELECT Terhadap semua kolom/attribute yang memiliki nilai yang sama
Lakukan operasi PROJECT Untuk menghilangkan duplikasi kolom/attribute yang bernilai sama
Inner join adalah join yang hanya mengembalikan record yang sesuai dari tabel yang sedang di-join. Pada outer join, pasangan nilai yang sesuai akan dipertahankan, dan nilai yang tidak berpasangan pada tabel lainnya akan dibiarkan null.
Left outer join menghasilkan seluruh baris pada tabel CUSTOMER, termasuk yang tidak memiliki pasangan pada tabel AGENT.
Right outer join menghasilkan seluruh baris pada tabel AGENT, termasuk yang tidak memiliki pasangan pada tabel CUSTOMER.
8# DIVIDE Operasi DIVIDE menggunakan 1 tabel kolom tunggal (kolom “a”) sebagai pembagi dan 1 tabel kolom ganda (kolom “a” and “b”) sebagai yang terbagi. Kedua tabel harus memiliki kolom yang sama (misal kolom “a”). Hasil dari operasi DIVIDE adalah sebuah tabel kolom tunggal dengan nilai pada kolom “a” dari baris pada tabel yang terbagi dimana nilai pada kolom yang sama (misal kolom “a”) dalam kedua tabel adalah sesuai.
Table 1 is “divided” by Table 2 to produce Table 3 Table 1 is “divided” by Table 2 to produce Table 3.Tables 1 and 2 both contain the column CODE but do not share LOC. To be included in the resulting Table 3, a value in the unshared column (LOC) must be associated (in the dividing Table 2) with every value in Table 1. The only value associated with both A and B is 5
penutup
Tugas pengganti quiz #2
Soal #1 PT Wadah Widih bergerak di bidang rental mobil yang menyewakan kendaraan mobil milik orang lain kepada customer personal maupun perusahaan. Customernya dimungkinkan untuk menyewa lebih dari satu mobil, baik dengan supir maupun tanpa supir.
Buat sebuah daftar (minimal 5) yang berisi data-data mengenai pemilik dan mobilnya. Jelaskan apa saja modification problem yang mungkin terjadi bila daftar dibuat dengan menggunakan spreadsheet.
Pisahkan daftar tersebut menjadi tabel-tabel yang hanya memiliki 1 tema saja. Tambahkan kolom ID bila perlu. Buatlah hubungan antar tabel pada kolom yang dirasa tepat. Jelaskan apakah modification problem pada soal B masih dijumpai atau telah hilang.
Tambahkan pada daftar soal A dengan daftar yang berisi data mengenai penyewaan mobil. Jelaskan modification problem yang mungkin terjadi bila daftar pada soal E dibuat pada spreadsheet.
Pisahkan daftar pada soal E menjadi tabel-tabel yang hanya memiliki 1 tema saja. Tambahkan kolom ID bila perlu. Buat hubungan antar tabel pada kolom yang sesuai. Jelaskan apakah modification problem masih terjadi atau tidak.
Soal #2 Tuliskan struktur relasi (relational schema) untuk semua tabel yang sudah dibuat sebelumnya pada Soal #1
Soal #3 Perhatikan persamaan berikut ini: Luas = Tinggi x Alas 2 Tuliskan functional dependency persamaan tersebut. Sebutkan apa variabel determinantnya.
Soal #4 Perhatikan relational schema berikut ini: MAHASISWA (MhsID, MhsNamaDpn, MhsNamaBlk, MhsNoHp, MhsProdi) Asumsi: nilai dari MhsNoHp adalah semua nomor Hp yang dimiliki oleh mahasiswa tersebut, dan setiap mahasiswa boleh mengambil banyak Prodi
Buat contoh relasi untuk 2 mahasiswa, yang pertama memiliki 2 no Hp dan yang kedua 1 no Hp. Tambahkan lagi masing-masing 1 prodi pada mahasiswa pertama dan kedua. Jelaskan masalah apa yang terjadi pada relasi ini. Pisahkan relasi supaya memenuhi kriteria tabel relational.
Kerjakan masing-masing di rumah dengan menggunakan file excel Kerjakan masing-masing di rumah dengan menggunakan file excel. Save file word dengan format NIM-SDB2.xls (misal 201501001-SBD2.xls). Kirim via email ke kaprodisi.uvers@gmail.com selambat-lambatnya Kamis 31-3-2016 jam 23.59