::: BELAJAR SQL (LANJUT) 3 :::
Kadangkala kita dihadapkan pada redudansi data (data rangkap) dimana terdapat data-data yang sama yang membuat suatu tabel menjadi tidak efektif dan efisien. Contohnya terlihat dalam tabel dibawah ini:
ID | Nama | Alamat | Tgl_beli | Barang | Harga |
003 | Fitri | Mugas | 010902 | Buku | 20000 |
002 | Lutfi | Mataram | 020902 | Tas | 80000 |
001 | Evi | Bukitsari | 020902 | Buku | 20000 |
004 | Agung | Kalideres | 030902 | Pulpen | 10000 |
001 | Evi | Bukitsari | 030902 | Majalah | 20000 |
002 | Lutfi | Mataram | 040902 | Pulpen | 10000 |
001 | Evi | Bukitsari | 050902 | Buku | 20000 |
005 | Asri | Kauman | 050902 | Buku | 20000 |
003 | Fitri | Mugas | 050902 | Tas | 80000 |
Melihat tabel diatas memang memusingkan. Anda harus menginput Nama dan Alamat setiap terjadi transaksi. Untuk lebih memudahkan, tabel diatas dapat kita bagi menjadi dua tabel yakni tabel Pelanggan dan tabel Transaksi. Prosesnya sering disebut sebagai normalisasi.
Pelanggan
ID | Nama | Alamat |
001 | Evi | Bukitsari |
002 | Lutfi | Mataram |
003 | Fitri | Mugas |
004 | Agung | Kalideres |
005 | Asri | Kauman |
Transaksi
ID | Tgl_beli | Barang | Harga |
003 | 010902 | Buku | 20000 |
002 | 020902 | Tas | 80000 |
001 | 020902 | Buku | 20000 |
004 | 030902 | Pulpen | 10000 |
001 | 030902 | Majalah | 20000 |
002 | 040902 | Pulpen | 10000 |
001 | 050902 | Buku | 20000 |
005 | 050902 | Buku | 20000 |
003 | 050902 | Tas | 80000 |
Dengan begitu, maka tiap terjadi transaksi baru, kita cukup menginput data baru di tabel Transaksi saja dan kita tidak perlu menuliskan Nama maupun Alamat karena telah disimpan pada tabel Pelanggan. Perhatikan! tabel Pelanggan dan Transaksi memiliki penghubung (primary key) yang sama yaitu ID.
Untuk menggabungkan kembali tabel Pelanggan dan tabel Transaksi seperti semula kita gunakan perintah ini :
SELECT Pelanggan.ID,Pelanggan.Nama,Pelanggan.Alamat,
Transaksi.Tgl_beli,Transaksi.Barang,Transaksi.Harga
FROM Pelanggan,Transaksi
WHERE Pelanggan.ID=Transaksi.ID;
Bila kita ingin mengurutkan tabel berdasarkan tanggal belinya maka perintahnya menjadi:
SELECT Pelanggan.ID,Pelanggan.Nama,Pelanggan.Alamat,
Transaksi.Tgl_beli,Transaksi.Barang,Transaksi.Harga
FROM Pelanggan,Transaksi
WHERE Pelanggan.ID=Transaksi.ID;
Nah, selesai sudah kursus tutorial SQL tahap lanjut ini. Secara garis besar, anda telah menguasai teknik-teknik SQL namun belum cukup sampai disini. Anda harus mempelajari teknik-teknik lainnya agar anda dapat lebih mahir dalam memecahkan masalah pada SQL. Anda dapat mempelajari teknik lainnya di situs lain atau artikel saya yang lain.
Created at Sep 6 2002