Membuat Permintaan dalam Database Relasional.

sql-1-surlModel data relasional memungkinkan tiga jenis dasar operasi untuk dilaksanakan dalam tabel, yaitu:

  1. PROJECT mernbuat tabel baru (atau hubungan baru) dengan memilih kolom tertentu dari tabel asli.
  2. RESTRICT membuat table baru dengan memilih dari tabel aslinya baris-baris yang memenuhi syarat tertentu.
  3. JOIN membuat tabel baru dengan memilih kolom yang dipilih dari dua atau lebih tabel, dan kemudian memilih baris-baris yang memenuhi syarat tertentu. JOIN sering dipergunakan, karena sering kali suatu hubungan tidak berisi seluruh data yang dibutuhkan untuk memuas¬kan permintaan pemakai.sql-join-url

Ciri khas utama dari model data relasional adalah masing-masing dari ketiga operasi dasar di atas selalu menghasilkan table baru. Hal ini berarti bahwa hasil sebuah permintaan data dengan mempergunakan ketiga operasi itu sendiri dapat menjadi objek dari permintaan tambahan lainnya. Kemungkinan untuk merangkai permintaan inilah yang membuat bahasa permintaan data menjadi sangat luas.

Bahasa permintaan data relasional dapat diklasifikasikan secara umum menjadi dua kategori yaitu: bahasa permintaan berdasarkan teks (text based query language) dan bahasa permintaan berdasarkan grafis (graphical query language).

Bahasa Permintaan Terstruktur: Bahasa Permintaan Berdasarkan Teks

Standar bahasa permintaan berdasarkan teks umumnya, tetapi tidak semuanya, disediakan oleh DBMS relasional, yang juga disebut sebagai bahasa permintaan terstruktur (structured query language-SQL).

sql-structure-urlBanyak sekali software akuntansi yang terkenal juga menyediakan akses SQL ke buku besar. SQL adalah bahasa permintaan yang luas, tetapi mudah digunakan. Keluasan dan kesederhanaannya me¬mungkinkan pembuatan laporan untuk tujuan tertentu dengan mudah.

Jadi, para akuntan perusahaan memenuhi permintaan informasi manajemen. Dengan cara yang hampir sama, SQL memungkinkan auditor untuk dengan mudah mendapatkan informasi database kliennya. Jadi, merupakan hal yang penting untuk memperoleh pemahaman dasar tentang bagaimana SQL bekerja.

Informasi tambahan tentang SQL dapat dipelajari dari buku petunjuk referensi yang biasanya dilampirkan dalam produk software DBMS.

Sintaksis SQL

sql-syntax-RT-8cAda lima kata kunci dasar yang digunakan untuk membangun sebagian besar permintaan dengan mempergunakan SQL:

  1. SELECT. Digunakan untuk mendaftar kolom-¬kolom yang harus ditampilkan sebagai jawaban dari permintaan. Kata kunci ini mengimple¬mentasikan operasi PROJECT.
  2. FROM. Digunakan untuk mendaftar nama-nama tabel yang merupakan referensi dari jawaban atas permintaan. Apabila terdapat dua atau lebih tabel yang terdaftar, maka operasi JOIN akan diaplikasikan.
  3. WHERE. Digunakan untuk menspesifikasi baris-¬baris mana yang akan diambil sebagai jawaban atas permintaan. Kata kunci ini mengimple¬mentasikan operasi RESTRICT.
  4. ORDER BY’. Digunakan untuk menspesifikasi bagaimana format jawabannya. Kolom yang menjadi dasar pengurutan akan didaftar, bersama dengan urutan yang dikehendaki (semakin besar atau menurun).
  5. GROUP BY. Digunakan untuk menspesifikasi baris-baris mana dalam tabel yang menjadi subjek operasi matematika (seperti SUM, MINIMUM, dan MAXIMUM).

Contoh Permintaan(Query-1).

Permintaan (query)1: Perlihatkan tanggal dan nilai total faktur penjualan, untuk seluruh penjualan di bulan Oktober, disajikan secara menurun (descending order) berdasarkan nilai penjualannya.
Permintaan ini akan ditulis dalam SQL sebagai berikut:
SELECT Tanggal, Nilai Total Faktur Penjualan
FROM Faktur
WHERE Tanggal ANTARA 10/01/ 03 dan 10/31 /03
ORDER BY Nilai Total Faktur ‘Penjualan, DESCENDING

Tabel AA-2 memperlihatkan tabel asli dan hasil dari permintaan ini.
Tabel AA-2.dbase-rls-tbl-AA-2-a

Contoh Permintaan(Query-2).

Permintaan (query) 2: Berapa nomor faktur dari semua penjualan ke D. Ainge, dan siapa yang menyelesaikan penjualan tersebut?
Permintaan ini akan ditulis dalam SQL sebagai berikut:
SELECT No. Faktur Penjualan, Tenaga Penjual, Nama Pelanggan
FROM Faktur, Pelanggan
WHERE. Faktur. Pelanggan # =_ Pelanggan.Pelanggan # DAN Nama Pelanggan = ‘D. Ainge’
Tabel AA-3 memperlihatkan tabel asli dan hasil dari permintaan ini.
Tabel AA-3.dbase-rls-tbl-AA-3-a

Contoh Permintaan(Query-3)

Permintaan (query) 4: Tampilkan nama dan alamat dari semua pelanggan yang membeli televisi pada bulan Oktober.
Permintaan ini akan ditulis dalam SQL sebagai berikut:

SELECT Nama Pelanggan, Alamat, Kota, Negara Bagian
FROM Pelanggan, Faktur, Jenis Barang, Persediaan
WHERE Tanggal ANTARA 10/Ol/03 dan 10/31/03 DAN Deskripsi = `televisi’ DAN Faktur.Pelanggan # = Pelanggan.Pelanggan # DAN Faktur.Faktur Penjualan # = Jenis Barang.Faktur Penjualan # DAN Jenis Barang. Barang # = Persediaan. Barang #

Jawaban dari permintaan ini ditunjukkan dalam Tabel AA-5. Meskipun panjangnya hanya dua baris, DBMS relasional harus menggunakan keempat tabel secara keseluruhan untuk menjawab permintaan ini.
Tabel AA-5.dbase-rls-tbl-AA-5-a

Tabel AA-1dbase-rls-tbl-AA-1-a
Rangkaian Tabel Relasional untuk Penyimpanan Data Penjualan dan seluruh tabel ini digunakan untuk permintaan tersebut daitas:

Contoh Permintaan(Query-4)

Permintaan (query) 4: Tampilkan nama dan alamat dari semua pelanggan yang membeli televisi pada bulan Oktober.
Permintaan ini akan ditulis dalam SQL sebagai berikut:

SELECT Nama Pelanggan, Alamat, Kota, Negara Bagian
FROM Pelanggan, Faktur, Jenis Barang, Persediaan
WHERE Tanggal ANTARA 10/Ol/03 dan 10/31/03 DAN Deskripsi = `televisi’ DAN Faktur.Pelanggan # = Pelanggan.Pelanggan # DAN Faktur.Faktur Penjualan # = Jenis Barang.Faktur Penjualan # DAN Jenis Barang. Barang # = Persediaan. Barang #

Jawaban dari permintaan ini ditunjukkan dalam Tabel AA-5. Meskipun panjangnya hanya dua baris, DBMS relasional harus menggunakan keempat tabel secara keseluruhan untuk menjawab permintaan ini.
Tabel AA-5.dbase-rls-tbl-AA-5-a

Contoh Permintaan(Query-5)

Permintaan (query) 5: Berapa banyak yang dijual oleh setiap tenaga penjual selama tahun ini?
Permintaan ini akan ditulis dalam SQL sebagai berikut:

SELECT Jumlah (total faktur), Tenaga penjual
FROM FAKTUR
GROUP BY Tenaga penjual

Permintaan ini rnenggunakan kata kunci GROUP BY untuk menginstruksikan DBMS untuk menjumlah total faktur secara terpisah untuk setiap nilai yang berbeda dalam kolom tenaga penjual. Tabel AA-6 menunjukkan hasil dari permintaan ini.
Tabel AA-6.dbase-rls-tbl-AA-6-a

Analisis SQL

SqlSeperti yang terlihat dalam lima contoh di atas, SQL mudah digunakan tetapi cukup andal. Kesederhanaan SQL membuat para pemakainya dapat menentukan hasil yang diinginkan tanpa harus menentukan bagaimana data ditelusuri.

Kelima contoh permintaan di atas hanya menentukan kondisi-kondisi yang perlu dipenuhi untuk menyediakan jawaban; tidak ada perputaran atau perintah prosedural yang diperlukan untuk memberitahukan kepada sistem mengenai bagaimana meneari catatan yang diinginkan.

Kesederhanaan SQL meneerminkan ciri khas model data relasional, terutama tidak pentingnya susunan baris dan kolom. Sebaliknya, lokasi suatu bagian data dalam DBMS yang tidak relasional merupakan informasi yang penting. Jadi, para pemakai dan programer aplikasi yang bekerja dengan DBMS yang tidak relasional, harus mengetahui bagaimana menavigasi database untuk mendapatkan jawaban dari permintaan mereka.

DBMSSebagai contoh, DBMS yang didasarkan pada model data hierarkis (atau pohon) (misalnya: IMS dari IBM) menampilkan data sebagaimana disimpan dalam bentuk hierarkis. Para pemakai DBMS hierarkis harus menavigasi dari atas dan ke bawah hierarki DBMS untuk mendapatkan data yang diinginkan.

Walaupun memberikan instruksi navigasi dalam beberapa kasus dapat memperpendek waktu untuk mendapatkan data, pada akhirnya timbul beban ekstra bagi para pemakai untuk memiliki pengetahuan paling tidak atas beberapa aspek struktur database. Model ini juga mensyaratkan adanya operator khusus untuk dimasukkan ke dalam bahasa permintaan agar dapat mempergunakan pointer (petunjuk) atau untuk menavigasi dari satu catatan ke satu catatan lainnya. Hal ini membuat para pemakai lebih sulit menulis perrnintaan khusus, yang akhirnya akan meningkatkan permintaan kepada programer aplikasi untuk menulis ¬permintaan bagi pemakai.

prog-lang-babelSQL disebut luas karena berdasarkan rangkaian setiap permintaan secara melekat membuat suatu sub-rangkaian tabel yang menjadi bahasa pernrograman tradisional seperti COBOL. FORTRAN, dan BASIC beroperasi dengan hanya catatan (baris dalam suatu tabel). Jadi, mempergunakan salah satu bahasa pemrograman tersebut untuk menulis permintaan akan lebih mempersulit pemakai.

Bahasa Permintaan Grafis (Graphical Query Language)

GQLSebagian besar DBMS juga menyediakan bahasa permintaan grafis, yang memungkinkan para pemakai menulis permintaan dengan mendesain sebuah contoh tentang jawaban yang dikehendaki, sebagai ganti dari menulis kode SQL.

Gambar AA-1 memperlihatkan contoh bahasa permintaan grafis dan bentuk SQL-nya untuk permintaan yang sama. Umumnya, DBMS akan menerjemahkan bahasa “permintaan berdasarkan contoh” (query by example) kedalam serangkaian perintah SQL yang sesuai untuk mendapatkan data yang diinginkan.

Permintaan dengan SQL:
SELECT Deskripsi, Jumlah yang dibeli (Qty Pur)
FROM Persediaan yang dibeli (Inv-PUR), Persediaan
WHERE Jenis persediaan# = Jenis persediaan yang dibeli (Inv-Pur Item)#
GROUP BY Deskripsi

Permintaan yang sama ditulis dalam bahasa grafis dalam ACCESS adalah sebagai berikut:
Gambar AA-1.dbase-rls-gbr-AA-1-a