Tugas Basis Data II - Konsep Relasional Basis Data

download Tugas Basis Data II - Konsep Relasional Basis Data

If you can't read please download the document

description

Konsep Relasional Basis Data

Transcript of Tugas Basis Data II - Konsep Relasional Basis Data

TUGAS BASIS DATA IIKONSEP RELASIONAL BASIS DATA

Oleh: 1. Phie Chyan (631) 2. Rajim Laymond.S. (633) 3. Sherly Jayanti (635)

UNIVERSITAS GADJAH MADA JOGJAKARTA

1

Bab 2.KONSEP DATABASE RELASIONAL SOAL SOAL SUPPLEMEN DARI BUKU FUNDAMENTALS OF RELATIONAL DATABASES2.21. Pada tabel-tabel dibawah ini, tentukanlah mana tabel yang dapat mereprenstasikan suatu relasi, jelaskan alasannya Jawaban: Tabel A A 1 25 46 53 16 B 88 45 87 26 23 57 C 80 23 23 39 33 48 D 0 89 43 55 43 48

Tabel A diatas bukan merupakan relasi, karena pada kolom atau attribut A yang menjadi primary key terdapat salah satu row yang NULL atau tidak mempunyai nilai pada kolom A nya, hal ini merupakan suatu pelanggaran disebabkan salah satu syarat dari Primary key adalah tidak boleh bernilai NULL Tabel B A 1 16 25 46 53 16 B 88 57 87 26 23 57 C 80 48 23 39 33 48 D 0 48 43 55 43 48

Tabel B diatas bukan merupakan relasi karena terdapat 2 baris yang identik yaitu baris ke-2 dan baris ke-6, dalam model data Relational Database Management System (RDBMS), setiap record dalam satu tabel harus unik artinya tidak dibolehkan dalam satu tabel mempunyai 2 atau lebih record yang sama 2

Tabel C A 23WEE 16 25WE 46RE 53WT 16E B 88 57 87 26 23 57 C 80 48 23 39 33 48 D 0 48 43 55 43 48

Tabel C diatas dapat merupakan relasi akan tetapi dapat juga bukan merupakan relasi, hal ini akan tergantung dari pemilihan tipe data untuk attribut A, apabila tipe data yang dimiliki oleh Attribut A merupakan tipe karakter maka tabel diatas merupakan relasi sehingga semua angka diatas pada kolom A akan dianggap sebagai karakter dan tidak dapat digunakan dalam operasi matematis, tetapi apabila tipe data yang dimiliki oleh A bertipe numeric maka tabel C diatas bukan merupakan relasi karena pemasukan data selain angka dalam tipe numerik akan ditolak dalam model data RDBMS.

2.22. Asumsikan sebuah contoh relasi mempunyai derajat 7 dan kardinalitas 15. Berapa banyak attribut yang dimiliki oleh relasi ini dan berapa banyak baris yang berbeda yang ada didalam relasi Jawaban: Derajat dari suatu tabel merupakan jumlah kolom atau attribut yang dimiliki oleh sebuah tabel. Kardinalitas suatu tabel merupakan jumlah baris atau record yang berada dalam satu tabel pada suatu waktu. Dalam soal diatas terdapat sebuah relasi yang memiliki derajat 7 dan kardinalitas 15, maka dapat dikatakan relasi tersebut memiliki 7 attribut dan 15 record yang berbeda

2.23. Asumsikan bahwa anda memiliki sebuah relasi r(R) dan bahwa anda melakukan satu proyeksi terhadap relasi ini melalui himpunan atribut X (X R) dari relasi. Jika anda kemudian melakukan Selection terhadap relasi Projection untuk mengambil seluruh tupel yang memenuhi kondisi A = a, bagaimanakah hubungan antara A dan atribut Projection ?

3

Jawaban: R A a a c g B b d e e C c e f a

Melakukan poyeksi dengan himpunan attribut X misalnya X={A,B}

A, B ( R)A a a c g B b d e e

Kemudian melakukan seleksi terhadap relasi proyeksi yang memenuhi kondisi A=a sehingga menghasilkan

A = a (A, B ( R ))A a a B b d

Kesimpulannya: Atribut A harus merupakan salah satu atribut dari himpunan attribut X pada proyeksi yang dilakukan

4

2.24. Bayangkanlah relasi r(ABC) dan s(ACDE), Asumsikan pula bahwa a Dom(A), b Dom(B), c Dom (C) dan d Dom(D). Manakah dari pernyataan berikut yang dapat di penuhi ? a. r s Jawaban : b b = Operasi ini sah di lakukan jika atribut atribut nilainya kompatibel. Operasi B (r) B(r)menghasilkan suatu relasi yang berisi instan instan yang terjadi dalam suatu relasi r atau suatu relasi s. r dan s haruslah Union Compatible dan skema hasil identik dengan skema r. a = Operasi Union tidak sah karena relasi-relasi tidak memiliki jumlah atribut yang sama, di mana jumlah atribut relasi r adalah 3 dan jumlah atribut relasi s adalah 4. c = Operasi ini tidak sah di lakukan karena atribut D bukan merupakan elemen dari skema relasi r, D adalah elemen dari relasi s. b. B (r) B(r) c. D = d(r)

2.25. Carilah key yang tepat untuk skema relasi di bawah ini. Apakah key tersebut berupa key tunggal (single) atau campuran (composite)? Jika himpunan atribut yang sekarang tidak cocok, jelaskan mengapa dan berikanlah solusi. a. ORDER (Order-No, Order-Date, SalesRep, Total-Amount, Discount, Ship-Date). Asumsikan bahwa order number di-reset setiap hari. Masing-masing Customer Id dapat menempatkan lebih dari satu order perhari. b. STORE (Location, No-of-Employees, Total-Monthly-Sales, Manager, City). Asumsikan bahwa terdapat lebih daripada satu toko (store) yang terletak di kota yang sama. c. PAYMENT (Customer-Id, Account, Amount-Paid, Date-Paid, Type-Payment, Discount). Asumsikan bahwa customer dapat memiliki lebih dari satu account dan ia dapat melakukan beberapa pembayaran (payment) setiap harinya namun tidak dapat lebih daripada satu pembayaran per hari yang bisa di lakukan melalui masing-masing account tersebut. Jawaban : a. Key PK untuk relasi ini adalah key campuran. Atribut key ini adalah : Order-No dan Order-Date. b. Himpunan atribut yang ada sekarang tidak memungkinkan kita untuk memilih sebuah key tanpa menetapkan batasan yang tidak di perlukan terhadap relasi. Solusi terbaik adalah dengan menambahkan atribut baru Store-Id dan menggunakannya untuk mengidentifikasi keunikan setiap toko (Store). Pasangan Location dan Manager-LastName bukan merupakan solusi yang mampu bertahan karena solusi ini menetapkan kondisi yang tidak diperlukan terhadap data. Sebelum merekrut manager baru, 5

database harus di periksa untuk melihat apakah ada manager dengan last-name yang serupa. Ini nampaknya bukan merupakan cara perekrutan yang baik. c. Key untuk relasi ini adalah key campuran yang terbentuk dari atribut-atribut berikut: Customer-Id, Account, dan Date-Paid.

2.26. Perhatikanlah relasi-relasi di bawah ini dan atribut-atribut yang di tentukan sebagai PK untuk relasi-relasi tersebut. Lakukanlah penilaian apakah pilihan untuk PK tersebut tepat atau tidak. a. EMPLOYEE (ID, LAST-NAME, SALARY) b. STUDENT (NAME, ADVISOR, MAJOR). Asumsikan bahwa setiap student memiliki advisor yang unik. Seorang advisor dapat memiliki lebih dari satu orang anak didik. c. STUDENT (ID, NAME, ADVISOR). Asumsikan bahwa setiap student memiliki advisor yang unik. Jawaban: a. Atribut campuran ini bukanlah key yang tepat. Key harus tetap menjadi key tanpa terpengaruh data atau beberapa lama relasi ini akan di gunakan. Dalam kasus ini, dimungkinkan bahwa dua employee yang berbeda dapat memiliki last-name dan salary yang sama. b. Key campuran ini juga bukan merupakan key yang tepat. Seorang advisor dapat memiliki dua anak didik yang berbeda dengan nama yang sama. c. Key campuran ini tidak tepat karena melanggar sifat minimal key. Atribut name dapat di abaikan. Disini tidak dibutuhkan pengidentifikasian yang unik terhadap tupel dari relasi. Jadi cukup atribut ID saja yang jadi PK dalam relasi STUDENT

2.27. Diberikan tabel TRAVELER dan RESORT, carilah nama dari pelanggan yang telah mengunjungi semua resort yang saat ini ada dalam tabel RESORT.operasi apa yang anda gunakan? Traveler Customer Alton Russel Jones Martin Country Meksiko Meksiko Meksiko Meksiko 6

Alton Jones Russel Jones Martin Alton Russel Jones

England England Brazil Brazil Brazil Spain Spain Spain

Resort Country Mexico England Brazil Spain Resort Location Cancun Liverpool Rio de Janeiro Marbella Price 1200 1790 1790 2200

Jawaban: Untuk menjawab pertanyaan diatas kita menggunakan operasi dengan operator division, operator division dapat digunakan untuk mencari tuple yang ada pada satu tabel yang mempunyai setiap nilai yang muncul pada satu kolom tertentu dalam tabel lain, dalam contoh kasus diatas kita ingin mencari nama costumer pada tabel TRAVELER yang memiliki setiap nilai yang terdapat pada kolom Country pada tabel RESORT. Berikut ini algoritma untuk mendapatkan hasil dari operasinya: 1. Karena relasi dividen (Traveller) terdiri dari 2 attribute, maka kita dapat membaginya kedalam 2 grup yaitu attribute dividen (Country) dan attribut non dividen (Customer) Proyeksi dari relasi Traveller pada attribut non dividen adalah

2.

7

customer (Traveller )Customer Alton Russel Jones Martin

Operasikan masing masing tuple, dimulai dengan Alton, bentuk tabel baru dengan tuple dari relasi dividen (Traveller) yang mengandung tuple Alton. Sertakan semua attribut dari relasi dividen. Maka menghasilkan tabel baru Customer Alton Alton Alton Country Mexico England Spain

Kemudian untuk tuple Russel dengan operasi yang sama diatas menghasilkan Customer Russel Russel Russel Country Mexico Brazil Spain

Lalu untuk tuple jones dengan operasi yang sama menghasilkan Customer Jones Jones Jones Country Mexico England Brazil 8

Jones

Spain

Dan terakhir untuk tuple Martin menghasilkan Customer Martin Martin Country Mexico Brazil

3. Cari proyeksi dari relasi pembagi (Resort) pada attribut pembagi (Country)

country (RESORT )Country Mexico England Brazil Spain 4. Dari keempat tabel yang dibentuk oleh masing masing tuple dari kolom Customer pada tabel TRAVELLER, maka satu-satunya tuple yang memiliki semua record seperti yang dihasilkan dari proyeksi pada relasi pembagi diatas adalah tuple Jones, maka jawaban dari pertanyaan nama pelanggan yang manakah yang telah mengunjungi semua resort adalah Jones

2.28. Asumsikan anda memiliki 2 relasi seperti pada contoh 2.4. Apa yang akan terjadi jika anda mencoba menghapus tuple dengan id 10 pada tabel DEPARTMENT ? Asumsikan bahwa departemen ini dihapus dan semua karyawan pada departemen tersebut diberhentikan. Bagaimana anda menghindari kesalahan dari sistem ketika anda mencoba menghapus tuple dengan id 10? Jawaban: Apabila tuple dengan id 10 pada tabel DEPARTEMEN akan dihapus sementara beberapa tuple pada table EMPLOYEE merefensi ke tuple tersebut, maka sistem akan menolak aksi ini dan memberikan pesan kesalahan akibat pelanggaran integritas referensial, hal ini bertujuan untuk menjaga integritas data dan menghindari anomali pada basis data. Untuk menghindari kesalahan dalam proses penghapusan tuple diatas beberapa RDBMS mendukung opsi ON DELETE CASCADE untuk diterapkan pada relasi sehingga apabila suatu tuple misalnya tuple pada tabel DEPARMENT dihapus maka semua tuple pada tabel lain misalnya tuple pada tabel EMPLOYEE yang mereferensi ke tuple pada tabel DEPARTMENT yang dihapus tersebut akan ikut dihapus sehingga tidak menyebabkan pelanggaran pada integritas referential, untuk sistem yang tidak mendukung opsi DELETE CASCADE ada cara lain yang meskipun kurang ideal tapi tidak menyebabkan 9

pelanggaran pada integritas referensial adalah dengan menghapus lebih dahulu semua tuple pada tabel EMPLOYEE sebelum menghapus tuple pada tabel DEPARTMENT

2.29. Asumsikan anda mempunyai 2 relasi r dan s yang didefinisikan pada skema yang sama R dan X R. Menggunakan tabel anda sendiri, tuliskan contoh untuk mengilustrasikan bahwa dalam ekspresi dibawah ini bagian kiri dari ekspresi akan selalu disertakan dalam bagian kanan tetapi tidak untuk sebaliknya Jawaban : Contoh tabel : eskul_basket nis 100001 100002 100003 100004 nama Andi Budi Hendra Imran telepon 0832322222 0877232233 0312223458 0893299924 namasekolah smu 1 smu 2 smu pancasila smu percobaan

eskul_futsal nis 100004 100008 100009 100015 nama imran hermawan andres ferdy telepon 0893299924 0274593993 0274222356 0876232333 namasekolah smu percobaan smu 1 smu 1 smu percobaan

a. x ( r s) = x (r ) B ( s ) relasi eskul_basket eskul_futsal 10

nis 100004

nama imran

telepon 0893299924

namasekolah smu percobaan

misalnya kita mengambil set atribut x adalah (nama,telepon) untuk mengerjakan bagian kiri pernyataan maka

nama , telepon(eskul _ basket eskul _ futsal )Hasilnya : nama imran telepon 0893299924

Untuk mengerjakan pernyataan bagian kanan kita mengambil set atribut B= (namasekolah, nis) dari relasi eskul_futsal untuk di intersect dengan set atribut X = (nama,telepon) dari relasi eskul_basket, hal ini dapat dilakukan karena kedua attribut yang akan diintersect kan mempunyai derajat yang sama dan tipe data yang kompatibel meskipun kedua attribut tersebut mempunyai nama yang berbeda

nama , telepon(eskul _ basket )nama Andi Budi Hendra Imran telepon 0832322222 0877232233 0312223458 0893299924

namasekolah , nis (eskul _ futsal )namasekolah smu percobaan smu 1 smu 1 nis 000004 000008 000009 11

smu percobaan

000015

Dari pembahasan diatas dapat dilihat bahwa sisi kiri pernyataan akan selalu disertakan pada sisi kanan pernyataan tapi tidak untuk sebaliknya hal ini disebabkan karena sisi kanan pernyataan membuat masing-masing proyeksi untuk setiap tabel sebelum diiriskan satu sama lain, sedangkan sisi kiri pernyataan membuat proyeksi bersama dari kedua tabel tersebut setelah diiriskan terlebih dahulu

b. x ( r s) = x (r ) B ( s ) relasi eskul_basket eskul_futsal nis 100001 100002 100003 100004 100008 100009 100015 nama Andi Budi Hendra Imran hermawan andres ferdy telepon 0832322222 0877232233 0312223458 0893299924 0274593993 0274222356 0876232333 namasekolah smu 1 smu 2 smu pancasila smu percobaan smu 1 smu 1 smu percobaan

misalnya kita mengambil set atribut x adalah (nama,telepon) untuk mengerjakan bagian kiri pernyataan maka

nama , telepon(eskul _ basket eskul _ futsal )Hasilnya : nama Andi Budi Hendra telepon 0832322222 0877232233 0312223458 12

Imran hermawan andres ferdy

0893299924 0274593993 0274222356 0876232333

Untuk mengerjakan pernyataan bagian kanan kita mengambil set atribut b = (namasekolah, nis) dari relasi eskul_futsal untuk di union dengan set atribut x = (nama,telepon) dari relasi eskul_basket, hal ini dapat dilakukan karena kedua attribut yang akan diunionkan mempunyai derajat yang sama dan tipe data yang kompatibel meskipun kedua attribut tersebut mempunyai nama yang berbeda

nama , telepon(eskul _ basket )nama Andi Budi Hendra Imran telepon 0832322222 0877232233 0312223458 0893299924

namasekolah , nis (eskul _ futsal )namasekolah smu percobaan smu 1 smu 1 smu percobaan nis 000004 000008 000009 000015

Hasil pernyataan sisi kanan nama , telepon(eskul _ basket ) namasekolah , nis (eskul _ futsal )

13

nama _namasekolah Andi Budi Hendra Imran smu percobaan smu 1 smu 1 smu percobaan

telepon _nis 0832322222 0877232233 0312223458 0893299924 000004 000008 000009 000015

Dari pembahasan diatas dapat dilihat bahwa sisi kiri pernyataan akan selalu disertakan pada sisi kanan pernyataan tapi tidak untuk sebaliknya hal ini disebabkan karena sisi kanan pernyataan membuat masing-masing proyeksi untuk setiap tabel sebelum digabungkan satu sama lain, sedangkan sisi kiri pernyataan membuat proyeksi bersama dari kedua tabel tersebut setelah digabungkan terlebih dahulu. 2.30. Menggunakan relasi dibawah cari hasil dari operasi berikut : r A a b a c B 1 1 1 2 C a b c d

s A a a B 1 3 C a d 14

a. A = a (r ) Jawaban : Pernyataan diatas dapat diterjemahkan sebagai Tampilkan semua record yang mempunyai attribut A bernilai a. operasi selection akan menyeleksi record pada sebuah relasi berdasarkan nilai dari satu atau lebih attribut, dalam soal diatas attribut yang akan digunakan adalah A dan nilai yang harus dipenuhi oleh suatu record adalah a Maka hasilnya adalah : A a a B 1 1 C a c

b. A, B (r ) Jawaban: Pernyataan diatas dapat diterjemahkan sebagai Tampilkan semua record yang berbeda pada attribut A dan B pada relasi r Operasi projection akan menyeleksi attribut pada sebuah relasi, dalam penggunaannya operator ini dipakai untuk menampilkan record pada satu atau lebih attribut yang diinginkan, perlu diingat bahwa relasi hasil dari operator projection akan mengeliminasi record yang sama sehingga tidak akan terjadi duplikasi dalam proses ini. Dalam soal diatas attrribut/kolom yang ingin ditampilkan adalah A dan B pada relasi r. Maka hasilnya adalah:

A a b c

B 1 1 2

c. r s 15

Jawaban : Pernyataan diatas dapat diterjemahkan sebagai operasikan relasi r dan s dengan operasi penggabungan (Union) Operasi Union digunakan untuk menggabungkan record dari 2 relasi atau lebih, dalam soal diatas semua record yang ada pada relasi r atau record yang ada pada relasi s atau record yang berada pada kedua relasi tersebut akan digabungkan sehingga menghasilkan satu relasi hasil yang didalamnya terdapat anggota dari masing-masing relasi r dan s. dalam operasi union record yang sama akan dieliminasi sehingga hasil relasi tidak akan mempunyai record yang terduplikasi, perlu diingat dalam melakukan operasi union, relasi yang terlibat dalam penggabungan harus mempunyai derajat yang sama serta tipe data yang kompatibel untuk tiap atribut yang digabungkan Dalam soal diatas relasi r akan digabungkan dengan relasi s, maka hasilnya adalah: A a b a c a B 1 1 1 2 3 C a b c d d

d. r s Jawaban : Pernyataan diatas dapat diterjemahkan sebagai lakukan operasi cartesian product pada kedua relasi r dan s Operasi cartesian product digunakan untuk melakukan penggabungan dengan cara menggabung setiap tuple dari satu relasi (yang dinyatakan pada bagian kiri operator) terhadap setiap tuple dari relasi lain ( yang dinyatakan pada sebelah kanan operator). cartesian product menghasilkan jumlah attribut yang merupakan penjumlahan attribut dari kedua relasi yang terlibat operasi serta jumlah record yang merupakan perkalian dari jumlah record pada kedua relasi yang terlibat operasi Dalam soal diatas setiap tuple dari relasi r akan dioperasikan terhadap tuple dari relasi s dengan operasi cartesian product, maka hasilnya : r.A r.B a 1 r.C a s.A a s.B 1 s.C a 16

a b b a a c c

1 1 1 1 1 2 2

a b b c c d d

a a a a a a a

3 1 3 1 3 1 3

d a d a d a d

e. r s Jawaban: Pernyataan diatas dapat diterjemahkan sebagai lakukan operasi difference terhadap relasi r minus s Dalam soal diatas, operasi difference pada relasi r dan s menghasilkan record yang pada saat tersebut eksis pada tabel r tetapi tidak eksis pada tabel s. sehingga berdasarkan relasi r dan s pada soal diatas maka akan dihasilkan A b a c B 1 1 2 C b c d

17