Sabtu, 05 Oktober 2019

BAB VI MULTIPLE RELATIONS


6.1 MATERI

Pada pertemuan sebelumnya, telah dibangun dan diisi tabel buku dan tabel buku_rusak. Pada pertemuan kali ini, kedua tabel tersebut akan dihapus terlebih dahulu karena kedua tabel tersebut tidak dibangun atas dasar database relasional:

6.2 DDL UNTUK MULTIPLE RELATIONS

entitas buku dan entitas buku_pengarang memiliki atribut foreign key (FK) di dalamnya. Sedangkan entitas lainnya, penerbit dan pengarang tidak memiliki FK. Anda bisa membuat tabel penerbit dan pengarang terlebih dahulu.
 
Selanjutnya dibangunlah tabel-tabel yang terdapat foreign key di dalamnya. Pertama akan dibangun tabel buku. Di dalam tabel tersebut terdapat foreign key idpenerbit yang mana referensinya adalah idpenerbit pada tabel penerbit. Berikut query yang digunakan:
 
CONSTRAINT berarti menambahkan batasan berupa Foreign Key yang pada Gambar 6.4 diberikan nama foreign key nya. Nama foreign key haruslah unique, sehingga jika ada pemakaian dua foreign key atau lebih, maka berikanlah nama yang berbeda. Setelah CONSTRAINT diberikan kemudian diikuti dengan FOREIGN KEY yang menunjukkan atribut mana pada tabel tersebut yang menjadi FK. REFERENCES adalah merujuk pada Primary Key atau atribut yang menjadi referensi dari FK yang dibuat, dengan format REFERENCES nama_tabel(nama_atribut_referensi). ON UPDATE CASCADE berarti jika nilai atribut referensi berubah (diupdate), maka perubahan tersebut terjadi pula pada semua atribut FK nya. ON DELETE CASCADE berarti jika data dengan nilai atribut referensi dihapus, maka demikian pula dengan data yang memiliki atribut FK nya. Selain CASCADE, dapat juga menggunakan RESTRICT dan SET NULL. Tentunya dengan kasus dan kepentingan yang berbeda.
       Selanjutnya dengan cara yang sama kita dapat membuat tabel buku_pengarang. Kode pada buku_pengarang direncanakan merupakan gabungan dari idbuku dan idpengarang. Misalkan untuk hubungan buku dengan idbuku = 5, dan pengarang dengan idpengarang = 15, maka id pada buku_pengarang adalah BP_5_15. Berarti tipe data dari id adalah char (atau varchar) dengan length sebesar 12 (dengan asumsi panjang karakter maksimal idbuku adalah 4 atau sebanyak 9999 buku dan panjang karakter maksimal idpengarang adalah 4 atau sebanyak 9999 pengarang).

6.3 DML UNTUK MULTIPLE RELATION

Untuk menginputkan data pada tabel yang memiliki atribut Foreign Key, harus dipastikan terlebih dahulu apakah pada tabel masternya sudah terisi atau belum. Dipastikan juga apakah nilai FK yang akan dimasukkan sudah ada pada tabel master atau belum. Misal, tabel penerbit masih kosong. Sekarang kita akan mengisikan tabel buku dimana terdapat FK idpenerbit. Kita akan isikan idpenerbit dengan nilai 1:
Seperti terlihat pada gambar di atas, akan keluar pesan kesalahan akibat nilai idpenerbit yang dimasukkan pada tabel buku tidak ada pada tabel penerbit (tabel master).
       Lain halnya jika Anda menginputkan nilai NULL untuk idpenerbit, walaupun pada tabel penerbit belum memiliki data, tidak menjadi masalah.
       Langkah yang tepat adalah dengan mengisikan terlebih dahulu tabel masternya. Di sini akan dinputkan data-data untuk tabel penerbit:
 
nilai idpenerbit adalah NULL. Nilai tersebut dapat diubah dengan nilai referensi (Primary Key) pada tabel penerbit.
Selanjutnya kita selesaikan penginputan untuk tabel-tabel lainnya.
 
 

6.4 SELECT DENGAN KLAUSA WHERE

Jika melihat tampilan tabel buku dan tabel buku_pengarang seperti pada Gambar 6.11 dan Gambar 6.12, cukup tidak user friendly karena pengguna hanya mendapatkan informasi nomor ID untuk penerbit dan pengarang buku. Hal itu terjadi karena untuk menampilkan data pada tabel buku dan buku_pengarang menggunakan bahasa SQL standar. Agar dapat menampilkan nama penerbit di setiap daftar buku, kita bisa menghubungkan antara idpenerbit pada tabel buku (sebagai FK) dengan idpenerbit pada tabel penerbit (sebagai PK). Tapi sebelumnya harus ditentukan terlebih dahulu atribut apa saja yang ingin ditampilkan. Misalkan kita ingin menampilkan atribut idbuku, judul, penerbit, tahun dan stok, maka query yang dapat digunakan adalah sebagai berikut :
 
Perhatikan pada Gambar 6.13 tersebut, FROM diikuti oleh dua tabel. Hal ini dikarenakan yang ingin ditampilkan kepada pengguna adalah atribut-atribut yang berasal dari dua tabel tersebut. Sementara WHERE diikuti dengan menyamakan atribut FK dan PK, yaitu idpenerbit pada tabel buku dan idpenerbit pada tabel penerbit. Nama tabel disebutkan agar tidak terjadi ambiguitas dari sistem, karena kedua atribut yang disamakan nilainya memiliki nama yang sama.
Anda juga dapat menampilkan hubungan antara buku dan pengarang buku. Query yang digunakan adalah sebagai berikut:
Share this post
  • Share to Facebook
  • Share to Twitter
  • Share to Google+
  • Share to Stumble Upon
  • Share to Evernote
  • Share to Blogger
  • Share to Email
  • Share to Yahoo Messenger
  • More...

0 komentar

:) :-) :)) =)) :( :-( :(( :d :-d @-) :p :o :>) (o) [-( :-? (p) :-s (m) 8-) :-t :-b b-( :-# =p~ :-$ (b) (f) x-) (k) (h) (c) cheer

 
© 2011 NORDIAN_TI_MEDIA
Designed by Blog Thiet Ke
Posts RSSComments RSS
Back to top