Anda di halaman 1dari 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 B C D
1 88 80 0
45 23 89
25 87 23 43
46 26 39 55
53 23 33 43
16 57 48 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 B C D
1 88 80 0
16 57 48 48
25 87 23 43
46 26 39 55
53 23 33 43
16 57 48 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 B C D
23WEE 88 80 0
16 57 48 48
25WE 87 23 43
46RE 26 39 55
53WT 23 33 43
16E 57 48 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-Last-
Name 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
4. Dari keempat tabel yang dibentuk oleh masing masing
England tuple dari kolom Customer pada tabel TRAVELLER,
maka satu-satunya tuple yang memiliki semua record
Brazil seperti yang dihasilkan dari proyeksi pada relasi pembagi
diatas adalah tuple Jones, maka jawaban dari pertanyaan
Spain 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

eskul_futsal

nis nama telepon namasekolah

100004 imran 0893299924 smu percobaan

100008 hermawan 0274593993 smu 1

100009 andres 0274222356 smu 1

100015 ferdy 0876232333 smu percobaan

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

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

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