Sunday, 2 April 2017

Database: Bahasa Query

Bahasa Query adalah suatu bahasa komputer yang digunakan untuk melakukan permintaan terhadap basis data dan sistem informasi. Bahasa query merupakan salah satu bahasa kategori tingkat tinggi. Ada dua macam bahasa query, yaitu:

1. Bahasa Query Formal

Adalah bahasa query yang diterjemahkan dengan menggunakan simbol-simbol matematis. Bahasa query formal merupakan bahasa yang dapat meminta informasi dari sebuah database tanpa harus memikirkan kerumitan algoritma pengambilannya, sehingga tidak seperti yang sering dijumpai dalam bahasa pemrograman konvensional. Contoh penggunaannya dalam basis data ialah SQL yang dikonversi menjadi bahasa query formal, sehingga didapatkan sekumpulan informasi untuk memperoleh query paling efisien. Bahasa query formal dibagi menjadi dua, yaitu: 


1)   Prosedural, yaitu bahasa yang memampukan pemakai memberi spesifikasi data yang dibutuhkan dan bagaimana cara mendapatkannya. Contoh: 

a. Aljabar Relasional → Kumpulan operasi terhadap relasi dimana setiap operasi menggunakan satu atau lebih relasi untuk menghasilkan sebuah relasi baru. Query diekspresikan dengan menerapkan operator tertentu terhadap suatu tabel atau relasi. Aljabar relasional merupakan bahasa query prosedural yang dapat menginstruksikan sistem komputer agar melakukan sederet operasi untuk diperoleh hasil yang diinginkan. Karena termasuk kategori prosedural, aljabar relasional tentu menyediakan seperangkat operator untuk memanipulasi data. Operasi pada aljabar relasional dibagi menjadi dua, antara lain:

a) Operasi Tunggal (Unary Operation), adalah operasi yang hanya memanfaatkan satu tabel saja. Ada lima operasi yang termasuk dalam operasi tunggal:
  • Select (Restrict 
    • Adalah operasi yang memperoleh tuple-tuple dari suatu relasi yang memenuhi predikat tertentu.
    • Simbol: σ (Sigma).
    • Akan melibatkan:
      • Operand: Konstanta/bilangan.
      • Operator aritmatika: (>, <, =, ≤, ≥, dan ≠)
      • Operator Logika: ˄ (and), ˅ (or), dan not.
    • Predikat muncul sebagai subscript dari σ dan kondisi yang diinginkan yang ditulis dalam predikat. Argumen diberikan dalam tanda kurung yang mengikuti σ dan berisi tabel relasi yang dimaksud.
  • Project
    • Adalah operasi yang memperoleh atribut-atribut tertentu dari suatu relasi.
    • Simbol: 𝝅 (Pi).
    • Predikat muncul sebagai subscript dari 𝝅dan hanya menulis nama atribut yang diinginkan ke dalam predikat. Argumen diberikan dalam tanda kurung yang mengikuti 𝝅 dan berisi tabel relasi yang dimaksud.
  • Cartesian Product 
    • Adalah operasi yang membentuk relasi dari dua relasi yang terdiri atas kombinasi tuple-tuple yang mungkin.
    • Simbol: X (Cross).
  • Union    
    • Adalah operasi yang membentuk relasi yang terdiri atas tuple-tuple  yang ada dalam salah satu atau kedua relasi, dengan syarat:
      • Jika ada relasi A dan B, jumlah atribut relasi A dan B harus sama.
      • Domain dari atribut ke i dari A harus sama dengan domain dari atribut ke i dari B.
    • Simbol: ∪ (Union).
    • Operasi Union bernilai benar bila memenuhi dua kondisi, yaitu derajat dari dua tabel relasi yang dioperasikan harus sama dan domain dari atribut yang dioperasikan juga harus sama.  
  • Set Difference  
    • Berfungsi untuk mendapatkan nilai yang ada dalam sebuah tabel relasi, tapi tidak ada dalam tabel relasi lainnya.
    • Simbol: ( - ).
b) Operasi Biner (Binary Operation), adalah operasi yang memanfaatkan beberapa tabel. Ada empat operasi yang termasuk dalam operasi biner:
  • Natural Join
    • Adalah operasi yang membentuk relasi dari dua relasi yang terdiri atas kombinasi relasi-relasi yang mungkin.
    • Simbol: X.
  • Theta Join  
    • Adalah operasi yang membentuk relasi dari dua relasi yang terdiri atas kombinasi relasi-relasi yang mungkin dengan kondisi tertentu.
    • Merupakan ekstensi dari Natural Join. 
    • Simbol: X
    •             𝛳 
  • Intersection
    • Berfungsi untuk mendapatkan nilai yang ada dalam sebuah tabel relasi dan juga ada dalam tabel relasi lainnya.
    • Simbol: ∩.
  • Division  
    • Berfungsi untuk query yang memasukkan frase “untuk semua/seluruh”.
    • Simbol ( ÷ ). 
2) Nonprosedural, yaitu bahasa yang memampukan pemakai untuk memberi spesifikasi data yang dibutuhkan tanpa memberi spesifikasi cara untuk mendapatkannya. Contoh: 

a. Kalkulus Relasional → Bahasa query yang menjelaskan set tuple yang diinginkan dengan cara menjelaskan predikat tuple yang diharapkan. Dibagi menjadi dua:

a) Kalkulus Relasional Tuple, mendeskripsikan informasi yang diinginkan tanpa memberi prosedur yang mendetail dalam mendapatkan informasi. Kalkulus relasional tuple merupakan basis untuk bahasa query QUEL.
b)  Kalkulus Relasional Domain, bahasa ini menggunakan variabel domain yang mengambil nilai dari domain atribut, bukan dari nilai seluruh tuple. Kalkulus relasional domain merupakan basis untuk bahasa query QBE.

Bahasa Query Komersial 

Adalah bahasa query yang dirancang sendiri oleh programmer menjadi suatu program aplikasi agar pemakai lebih mudah menggunakannya (user friendly). Ada tiga bahasa query komersial, antara lain:
  • QUEL → Berbasis pada bahasa kalkulus relasional..
  • QBE → Berbasis pada bahasa kalkulus relasional.
  • SQL → Berbasis pada bahasa kalkulus relasional dan aljabar relasional. Selengkapnya lihat di sini.

Sumber:


Amanda Linhan

 

No comments:

Post a Comment