8.1 Natural Join
Jika diperhatikan, penulisan query
menggunakan SELECT untuk menampilkan data yang berrelasi menggunakan klausa
WHERE memerlukan banyak energi. Query yang dituliskan panjang sehingga
kemungkinan kesalahan dalam penulisan query pun semakin besar. Sebagai contoh
perhatikan query berikut yang menggunakan klausa WHERE:
Gambar 8. 1 Menampilkan data desa dan kegiatan
menggunakan klausa WHERE
Sekarang Anda dapat membuat
tampilan yang sama dengan query yang lebih singkat, yaitu menggunakan NATURAL
JOIN. Seperti yang ditunjukkan pada gambar berikut:
Gambar
8. 2
Menampilkan
data kegiatan dan desa menggunakan NATURAL JOIN
Anda tidak perlu lagi menyamakan
FK dengan PK nya, karena NATURAL JOIN memastikan atribut yang bernama sama
pasti berhubungan. Sehingga Anda dapat menghemat waktu dan energi dengan
menggunakan NATURAL JOIN. Walaupun demikian, ada paling tidak dua kondisi yang
harus diperhatikan jika Anda memutuskan menggunakan NATURAL JOIN:
1. Pastikan
untuk atribut-atribut yang berhubungan/berrelasi memiliki nama yang sama.
2. Pastikan
untuk atribut-atribut yang tidak saling berhubungan/berrelasi tidak memiliki
nama yang sama.
Untuk membuktikan kondisi
tersebut, di sini akan diberikan tambahan tabel yaitu tabel petugas. Dimana tabel petugas berrelasi dengan tabel lainnya
dalam hal pengelolaan sehingga database memiliki tabel yang mencatat history
pengelolaan data. Lebih jelasnya digambarkan pada ERD berikut:
Gambar
8. 3 ERD
yang menampilkan tabel histori pada database si_desa
Perhatikan pada tabel admin
PK nya berubah menjadi idadmin (silakan
diubah dengan menggunakan ALTER). Selain itu terdapat juga tambahan entitas
yang lain, Berikut akan ditunjukkan pembuatan tabel ADMIN
Gambar
8. 4 Pembuatan
tabel admin
Sedangkan untuk tabel lainnya hanya
akan dicontohkan pembuatan tabel kelola_pengarang
saja. Silakan tabel lainnya juga dibuat dengan cara yang sama.
Gambar
8. 5 Pembuatan
tabel penduduk
Kemudian isikan tabel admin dan tabel penduduk yang telah dibuat tadi dengan data sebagai
berikut (tabel lainnya silakan diisi sendiri):
Perhatikan bahwa tabel admin dan tabel penduduk memiliki atribut yang bernama sama, Akan
tetapi jika kita gunakan natural join untuk menampilkan id
desa dan id desa pada tabel penduduk
Himpunan kosong dihasilkan dari natural join karena tidak
memperhatikan kondisi dan syarat untuk natural join. Hal ini diakibatkan
karena pada tabel admin memiliki
atribut nama Untuk mengatasi
permasalahan ini, dapat digunakan klausa where
Selain dengan klausa where,
dapat juga digunakan left join, right join dan inner
join untuk memecahkan permasalah di atas, yang dijabarkan pada sub bab
beikutnya.
8.2 Left Join dan Right Join
Left
Join akan menampilkan semua record
dari tabel sebelah kiri, dan record dari
tabel sebelah kanan yang cocok. Hasilnya akan NULL untuk bagian kanan jika
tidak ada kecocokan. Misal diminta untuk ditampilkan tabel adminyang menampilkan juga no HP admin yang mencatat. Query yang
tepat jika menggunakan left join adalah sebagai berikut:
Akan tetapi jika posisi kedua tabel yang berhubungan
diubah, maka tampilan datanya pun akan memiliki arti yang lain.
Right join adalah join yang serupa
dengan left join, hanya saja posisi tabel yang kanan akan ditampilkan
semua record nya. Sedangkan tabel
yang kiri hanya record yang
bersesuaian saja.
8.3 Inner Join
Versi aman dari left join maupun right
join adalah inner join. Inner join tidak mementingkan posisi
tabel pada query dan fungsinya sama dengan klausa where.
Tidak ada komentar:
Posting Komentar