Sebuah system informasi mengenai buku tamu dibuat oleh perusahaan consultant di Kota J.
pada design databasenya menggunakan class diagram sebagai berikut ini:
Setelah dianalisis ulang ternyata desain tersebut masih belum normal, cara pembuktian bahwa
design tersebut belum normal bisa menggunakan sifat dari 3 anomali yang terjadi yaitu
insertion anomaly, update anomali dan deletion anomaly. Anda bisa melakukan percobaan
sebagai berikut:
1. Siapkan dua jenis data satu untuk input dan satu lagi untuk update atau delete untuk
setiap tabel.
7. Gunakan join untuk memperlihatkan isi data secara baik tanpa adanya foreign key.
Jawaban :
Melakukan inner join percobaan ke dua setelah dilakukan update pada tabel bagian,
ruang dan level.
SELECT pegawai.id_pegawai, pegawai.nama_pegawai, pegawai.status, bagi
an.nama_bagian,levels.levels,ruang.nama_ruang FROM (((pegawai INNER J
OIN bagian ON pegawai.id_bagian = bagian.id_bagian) INNER JOIN levels
ON pegawai.id_level = levels.id_level) INNER JOIN ruang ON pegawai.i
d_ruang = ruang.id_ruang)
9. Lakukan analisis apakah ada pengaruh atau tidak terhadap tabel ruang, bagian dan level.
Jawaban :
9.1. Melakukan pengecekan terhadap tabel ruang, tabel bagian, tabel levels.
Pada saat dilakukan operasi gabungan inner join pertama dan ke dua id_pegawai,
nama_bagian, levels, nama_ruang, id_pegawai digunakan sebagai data patokan/unique. Ketika
dilakukan inner join maka hasilnya dapat dilihat pada jawaban nomor 5, namun jika
id_pegawai dilakukan update dan delete dengan posisi foreign key yaitu id_bagian, id_levels,
id ruang yang masih berkaitan maka perintah update dan delete tersebut akan gagal. Berbeda
apabila id_pegawai tersebut dilaukan penghapusan dengan posisi foreign key yang tidak pada
posisi running maka perintah hapus tersebut berhasil dilakukan.
11. Jika terjadi perubahan gambarkan perubahannya dan tuliskan SQL DDL yang baru
berdasarkan perubahan desain class diagram yang telah dilakukan.
Jawaban :
11.1. Perubahan duplicate id_levelpada tabel pegawai dan diganti dengan id_ruang.
Pada saat dilakukan pembuatan tabel pegawai seperti class diagram diatas
Ketika akan di eksekusi perintah create tabel akan gagal karena adanya duplicate pada
field id_level. Sehingga dilakukan perubahan DDL sebagai berikut :
11.2. Perubahan nama tabel dan filed level dengan ditambahkan akhiran -s menjadi
levels.
Pada SQL level merupakan sebuah perintah Query sehingga apabila pada pembuatan
tabel level tidak ditambahkan dengan akhiran -s maka pada saat dilakukan query akan
memunculkan hasil yang berbeda.
CREATE TABLE levels (id_level varchar(10) NOT NULL AUTO_INCREMENT,
levels varchar(20) NOT NULL, keterangan varchar(50) NOT NULL, PRIMARY KEY
(`id_level`(10)));
Karena pada tabel tamu sudah terdapat id_pegawai sebagai foreign key terhadap Primay
key id_pegawai pada tabel pegawai. Field nama_pegawai pada tabel tamu
menyebabkan redudansi data apabila tidak dilakukan penghapusan.
12. Tuliskan SQL DML untuk setiap tabel class diagram baru.
Jawaban :
Data Manipulation Language atau yang biasanya disingkat DML merupakan perintah
yang digunakan untuk melakukan manipulasi data.
Perintah DML terbagi ke dalam empat jenis yaitu sebagai berikut :
1. SELECT berfungsi untuk menampilkan data dari database.
2. INSERT berfungsi untuk menambahakan data dari tabel pada database.
3. UPDATE berfungsi untuk merubah data dari tabel pada database.
4. DELETE berfungsi untuk menghapus data dari tabel pada database.
12.5. Perintah DML SELECT, INSERT, UPDATE pada tabel bagian, ruang, dan
levels sama dengan jawaban pada nomor 1,2, dan 6.
13. Tuliskan SQL untuk pembuatan laporan jika terdiri dari nama tamu, jumlah tamu, nama
institusi, nama pegawai dan bagian pegawai, detail keperluan, notulen, berdasarkan
bagian pegawai.
Jawaban :
SELECT tamu.nama_tamu, tamu.jumlah_tamu, tamu.nama_instansi, pegawai.nama_pegawai, ba
ON tamu.id_pegawai = pegawai.id_pegawai)
INNER JOIN bagian ON pegawai.id_bagian = bagian.id_bagian) WHERE nama_bagian ="Niaga
Pelayanan"
Berikut tampilan hasil query yang terdiri dari nama tamu, jumlah tamu, nama institusi,
nama pegawai dan bagian pegawai, detail keperluan, notulen, berdasarkan bagian
pegawai.
Berikut tampilan hasil query yang terdiri dari nama tamu, jumlah tamu, nama institusi,
nama pegawai dan bagian pegawai, detail keperluan, notulen, berdasarkan keperluan
“Konsultasi”.
Referensi :
1. Lectur Note
2. https://www.w3schools.com/
---oOo---