Minggu, 06 Oktober 2019

BAB 6 MULTIPLE RELATIONS


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

Kemudian kita akan rancang database relasional sederhana untuk kasus sistem informasi, seperti yang digambarkan pada ERD berikut:

Gambar 6. 1 sederhana untuk database perpustakaan

6.1     DDL untuk Multiple Relations
Perhatikan pada Gambar 6.1, entitas desa dan entitas penduduk memiliki atribut foreign key (FK) di dalamnya. Anda bisa membuat tabel  kegiatan dan pemberitahuan terlebih dahulu.

 
Gambar 6. 2 Pembangunan tabel kegiatan kasus multiple relations

 
Gambar 6. 3 Pembangunan tabel pemberitahuan kasus multiple relations

Selanjutnya dibangunlah tabel-tabel yang terdapat foreign key di dalamnya. Pertama akan dibangun tabel desa. Di dalam tabel tersebut terdapat foreign key idkegiatan yang mana referensinya adalah idkegiatan  pada tabel kegiatan. Berikut query yang digunakan:

Gambar 6. 4 Pembangunan tabel desa kasus multiple relation
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.

6.2     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 kegiatan masih kosong. Sekarang kita akan mengisikan tabel desa dimana terdapat FK idkegiatan. Kita akan isikan idkegiatan dengan nilai 1:

Gambar 6. 5 Peringatan kesalahan diberikan karena batasan FK
Seperti terlihat pada gambar di atas, akan keluar pesan kesalahan akibat nilai idkegiatan yang dimasukkan pada tabel desa tidak ada pada tabel kegiatan (tabel master). 
Lain halnya jika Anda menginputkan nilai NULL untuk idkegiatan, walaupun pada tabel kegiatan belum memiliki data, tidak menjadi masalah.

Gambar 6. 6 Penginputan dengan FK bernilai NULL
Langkah yang tepat adalah dengan mengisikan terlebih dahulu tabel masternya. Di sini akan dinputkan data-data untuk tabel pemberitahuan:

Gambar 6. 7 Penginputan tabel pemberitahuan
Pada Gambar 6.7 nilai idpenerbit adalah NULL. Nilai tersebut dapat diubah dengan nilai referensi (Primary Key) pada tabel penerbit.
Gambar 6. 8 Mengupdate nilai FK pada tabel buku


Gambar 6. 9 Penginputan tabel desa


Gambar 6. 10 Penginputan tabel kegiatan
6.3     SELECT dengan Klausa Where
Jika melihat tampilan tabel desa dan tabel 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 desa dan kegiatan menggunakan bahasa SQL standar. Agar dapat menampilkan id desa di setiap kegiatan, kita bisa menghubungkan antara idkegiatan pada tabel desa (sebagai FK) dengan idkegiatan pada tabel kegiatan (sebagai PK). Tapi sebelumnya harus ditentukan terlebih dahulu atribut apa saja yang ingin ditampilkan. Misalkan kita ingin menampilkan atribut iddesa, namadesa maka query yang dapat digunakan adalah sebagai berikut:

Gambar 6. 11 Menampilkan data id desa

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 iddesa pada tabel desa dan idkegiatan pada tabel kegiatan. Nama tabel disebutkan agar tidak terjadi ambiguitas dari sistem, karena kedua atribut yang disamakan nilainya memiliki nama yang sama.


Tidak ada komentar:

Posting Komentar

TUGAS BESAR PPEMROGRAMAN VISUAL