Tugas Basis Data Ii - Konsep Relasional Basis Data

  • Uploaded by: Rajim Laymond.S
  • 0
  • 0
  • May 2020
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Tugas Basis Data Ii - Konsep Relasional Basis Data as PDF for free.

More details

  • Words: 2,828
  • Pages: 17
TUGAS BASIS DATA II KONSEP 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 DATABASES 2.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

B

C

a

b

c

a

d

e

c

e

f

g

e

a

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

πA, B ( R) A

B

a

b

a

d

c

e

g

e

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

σA = a (πA, B ( R )) A

B

a

b

a

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

b. πB (r) ∩ πB(r)

c. σD = d(r)

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.

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

Country

Alton

Meksiko

Russel

Meksiko

Jones

Meksiko

Martin

Meksiko 6

Alton

England

Jones

England

Russel

Brazil

Jones

Brazil

Martin

Brazil

Alton

Spain

Russel

Spain

Jones

Spain

Resort Country

Resort Location

Price

Mexico

Cancun

1200

England

Liverpool

1790

Brazil

Rio de Janeiro

1790

Spain

Marbella

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)

2.

Proyeksi dari relasi Traveller pada attribut non dividen adalah

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

Country

Alton

Mexico

Alton

England

Alton

Spain

Kemudian untuk tuple Russel dengan operasi yang sama diatas menghasilkan Customer

Country

Russel

Mexico

Russel

Brazil

Russel

Spain

Lalu untuk tuple jones dengan operasi yang sama menghasilkan Customer

Country

Jones

Mexico

Jones

England

Jones

Brazil 8

Jones

Spain

Dan terakhir untuk tuple Martin menghasilkan Customer

Country

Martin

Mexico

Martin

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

nama

telepon

namasekolah

100001

Andi

0832322222

smu 1

100002

Budi

0877232233

smu 2

100003

Hendra

0312223458

smu pancasila

100004

Imran

0893299924

smu percobaan

nis

nama

telepon

namasekolah

100004

imran

0893299924

smu percobaan

100008

hermawan

0274593993

smu 1

100009

andres

0274222356

smu 1

100015

ferdy

0876232333

smu percobaan

eskul_futsal

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

nis

nama

telepon

namasekolah

100004

imran

0893299924

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

telepon

imran

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

telepon

Andi

0832322222

Budi

0877232233

Hendra

0312223458

Imran

0893299924

πnamasekolah , nis (eskul _ futsal ) namasekolah

nis

smu percobaan

000004

smu 1

000008

smu 1

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

nama

telepon

namasekolah

100001

Andi

0832322222

smu 1

100002

Budi

0877232233

smu 2

100003

Hendra

0312223458

smu pancasila

100004

Imran

0893299924

smu percobaan

100008

hermawan

0274593993

smu 1

100009

andres

0274222356

smu 1

100015

ferdy

0876232333

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

telepon

Andi

0832322222

Budi

0877232233

Hendra

0312223458 12

Imran

0893299924

hermawan

0274593993

andres

0274222356

ferdy

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

telepon

Andi

0832322222

Budi

0877232233

Hendra

0312223458

Imran

0893299924

πnamasekolah , nis (eskul _ futsal ) namasekolah

nis

smu percobaan

000004

smu 1

000008

smu 1

000009

smu percobaan

000015

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

13

nama _namasekolah

telepon _nis

Andi

0832322222

Budi

0877232233

Hendra

0312223458

Imran

0893299924

smu percobaan

000004

smu 1

000008

smu 1

000009

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

B

C

a

1

a

b

1

b

a

1

c

c

2

d

A

B

C

a

1

a

a

3

d

s

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

B

C

a

1

a

a

1

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

B

a

1

b

1

c

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

B

C

a

1

a

b

1

b

a

1

c

c

2

d

a

3

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

r.C

s.A

s.B

s.C

a

a

a

1

a

1

16

a

1

a

a

3

d

b

1

b

a

1

a

b

1

b

a

3

d

a

1

c

a

1

a

a

1

c

a

3

d

c

2

d

a

1

a

c

2

d

a

3

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

C

b

1

b

a

1

c

c

2

d

17

Related Documents


More Documents from "PUTRA"