MULTIPLE RELATIONS

Pada pertemuan sebelumnya, telah dibangun dan diisi tabel kpl_marketing dan tabel kpl_produksi. 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 studikasus_transaksi_penjualan, seperti yang digambarkan pada ERD berikut:
Gambar 6. 1 ERD sederhana untuk database studikasus_transaksi_penjualan

6.1. DDL untuk Multiple Relations

Perhatikan pada Gambar 6.1, entitas customer dan entitas transaksi memiliki atribut foreign key (FK) di dalamnya. Anda bisa membuat tabel customer dan transaksi terlebih dahulu.
Gambar 6. 2 Pembangunan tabel customer kasus multiple relations
 
Gambar 6. 3 Pembangunan tabel transaksi kasus multiple relations
Gambar 6. 4 Pembangunan tabel ukuran_barang kasus multiple relations
Gambar 6. 5 Pembangunan tabel barang kasus multiple relations
Gambar 6. 6 Pembangunan tabel kpl_produksi kasus multiple relations
Gambar 6. 7 Pembangunan tabel kpl_marketing kasus multiple relations
Gambar 6. 8 Pembangunan tabel sales kasus multiple relations
Gambar 6. 9 Pembangunan tabel email kasus multiple relations
Gambar 6. 10 Pembangunan tabel pemesanan kasus multiple relations

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 barang masih kosong. Sekarang kita akan mengisikan tabel barang dimana terdapat FK id_barang . Kita akan isikan id_barang dengan nilai 1:
Gambar 6. 11 Peringatan kesalahan diberikan karena batasan FK
Seperti terlihat pada gambar di atas, akan keluar pesan kesalahan akibat nilai id_barang yang dimasukkan pada tabel barang  tidak ada pada tabel barang (tabel master). 
Lain halnya jika Anda menginputkan nilai NULL untuk id_barang, walaupun pada tabel barang belum memiliki data, tidak menjadi masalah.
Gambar 6. 12 Penginputan dengan FK bernilai NULL
     Pada Gambar 6.7 nilai id_barang adalah NULL. Nilai tersebut dapat diubah dengan nilai referensi (Primary Key) pada tabel barang.
Gambar 6. 13 Mengupdate nilai FK pada tabel barang
                Selanjutnya kita selesaikan penginputan untuk tabel-tabel lainnya.

Gambar 6. 14 Penginputan tabel customer
Gambar 6. 15 Penginputan tabel kpl_produksi
Gambar 6. 16 Penginputan ukuran_barang
Gambar 6. 17 Penginputan transaksi
Gambar 6. 18 Penginputan kpl_marketing
Gambar 6. 19 Penginputan email
Gambar 6. 20 Penginputan sales

Gambar 6. 21 Penginputan pemesanan

6.3. SELECT dengan Klausa Where

Jika melihat tampilan tabel barang dan id_barang cukup tidak user friendly karena pengguna hanya mendapatkan informasi nomor ID untuk barang dan ukuran_barang. Hal itu terjadi karena untuk menampilkan data pada tabel barang dan ukuran_barang menggunakan bahasa SQL standar. Agar dapat menampilkan nama barang di setiap daftar barang, kita bisa menghubungkan antara id_barang pada tabel barang (sebagai FK) dengan id_ukuranbarang pada tabel barang (sebagai PK). Tapi sebelumnya harus ditentukan terlebih dahulu atribut apa saja yang ingin ditampilkan. Misalkan kita ingin menampilkan atribut id_barang, nama_barang, harga_barang, stok_barang dan ukuran maka query yang dapat digunakan adalah sebagai berikut:
Gambar 6. 22 Menampilkan data barang dan ukuran_barang
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 id_barang pada tabel barang dan id_ukuranbarang pada tabel barang. 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 barang dan ukuran_barang Query yang digunakan adalah sebagai berikut.
Gambar 6. 23 Menampilkan nama_barang dan ukuran















Tidak ada komentar:

Posting Komentar

BAB VIII JOIN 8.1. Natural Join Sekarang Anda dapat membuat tampilan yang sama dengan query yang lebih singkat, yaitu menggunakan ...