Bahasa Query
Pada postingan sebelumnya, saya sudah membahas
tentang bahasa dalam basis data. Dan pada postingan kali ini, saya akan
membahas tentang bahasa yang juga berkaitan dengan basis data yaitu Bahasa Query. Namun sebelum membahas
tentang Bahasa Query, saya akan membahas sedikit tentang Basis Data Relasional.
Basis data relasional atau dalam bahasa inggris
disebut Relational Database adalah suatu
model database yang disajikan dalam bentuk tabel. Model ini diperkenalkan
pertama kali oleh E.F. Codd. Basis data akan “disebar” atau dipilah ke dalam
berbagai table dua dimensi yang terdiri dari baris (horizontal) dan kolom
(vertical).
Adapun keuntungan menggunakan basis data relatsional
antara lain:
- Bentukya sederhana
- Mudah melakukan berbagai operasi data
Dalam basis data relational, kita mengenal
suatu bahasa yang dinamakan Bahasa Query. Menurut Wikipedia, Bahasa Queri (Bahasa Inggris: query language) adalah suatu bahasa komputer yang digunakan untuk
melakukan permintaan terhadap basis data dan sistem informasi.
Bahasa Query dalam basis data
relational dibagi menjadi 2, yaitu:
- Bahasa Query Formal
- Bahasa Query Komersial
Bahasa
Query Formal
Bahasa Query Formal adalah bahasa query yang diterjemahkan
dengan menggunakan simbol-simbol matematis. Bahasa query formal merupakan
bahasa untuk meminta informasi dari sebuah basis data tanpa harus menghiraukan
kerumitan algoritma pengambilannya.
Bahasa query formal terbagi menjadi dua, yaitu:
- Prosedural, yaitu pemakai memberi spesifikasi data apa yang dibutuhkan dan bagaimana cara untuk mendapatkannya.
- Non Prosedural, yaitu pemakai menspesifikasikan data apa yang dibutuhkan tanpa menspesifikasikan bagaimana untuk mendapatkannya.
Contoh bahasa query formal (procedural):
Aljabar
Relasional adalah kumpulan operasi terhadap relasi
di mana setiap operasi menggunakan satu atau lebih relasi untuk menghasilkan
satu relasi yang baru dan termasuk kategori prosedural dan juga menyediakan
seperangkat operator untuk memanipulasi data.
Terdapat enam operasi dasar dari aljabar relasional,
yaitu:
- Selection :
Operasi untuk menyeleksi tupel-tupel yang memenuhi suatu predikat, dapat digunakan operator perbandingan (<, >, <=, >=, =, !=) pada predikat. Beberapa predikat dapat dikombinasikan menjadi predikat majemuk dengan operator penghubung and (V) atau or (V). - Projection :
Operasi untuk memperoleh kolom-kolom tertentu. Operasi project merupakan operasi unary yang mengirim relasi argumen dengan kolom-kolom tertentu. Dikarenakan relasi adalah himpunan, maka baris-baris duplikasi dihilangkan. - Cartesian - product : Operasi untuk menghasilkan tabel hasil perkalian kartesian
- Union : Operasi untuk menghasilkan gabungan tabel dengan syarat kedua tabel memiliki atribut yang sama, yaitu domain atribut ke-i masing-masing tabel harus sama
- Set - difference :
Operasi untuk mendapatkan tabel pada suatu relasi, tapi tidak ada pada relasi yang lain.R-S = {x|x ER dan X !E S}Operasi ini dapat dilaksanankan apabila R dan S mempunyai atribut yang tidak sama yang akan ditampilkan, artinya adalah atribut R yang tidak ada di S akan ditampilkan, sedangkan yang sama tidak ditampilkan. - Rename :
Operasi untuk menyalin tabel lama ke dalam tabel yang baru
Selain itu, terdapat operasi-operasi turunan dari
operasi-operasi dasar tersebut, yaitu:
- Set
Intersection : Termasuk kedalam operator tambahan, karena operator ini dapat diverifikasi dari operator dasar seperti berikut :A n B = A – ( A – B ), atau A n B = B – ( B – A )
- Theta Join : Operasi untuk menggabungkan operasi selection dan cartesian product dengan suatu kriteriasyarat.
- Natural Join :
Operasi untuk menggabungkan operasi selection dan cartesian product dengan suatu kriteria pada kolom yang sama. - Outer Join :
Operasi untuk menggabungkan operasi selection dan cartesian product dengan suatu kriteria pada kolom yang sama. - Division : Operasi yang banyak digunakan dalam query yang mencakup frase “setiap” atau “untuk semua”, operasi ini juga merupakan pembagian atas tupel-tupel dari dua relasi.
Contoh bahasa query formal ( non prosedural):
Kalkulus
relasional. Pengguna mendeskripsikan informasi
yang dikehendaki tanpa memberitahu prosedur spesifik untuk memperolah
informasi. Pada model relasional, bahasa formal non prosedural adalah bahasa
kalkulus, predikat relasional yang diekspresikan dengan menspesifikasikan
predikan terhadap tupe atau domain yang
harus dipenuhi.
Kalkulus relasional dibagi menjadi 2 :
- Kalkulus Relasional Tupel : Mendeskripsikan informasi tanpa perlu memberikan prosedur spesifik untuk memperoleh informasi tersebut. Konsep dasar kalkulus relasional tupel adalah konsep variabel tupel. Variabel ini merepresentasikan tupel-tupel pada relasi dan digunakan untuk mengekstrak data dari relasi. Komponen – komponen lain rumus kalkulus tupel adalah kulifikasi data dengan membatasi nilai-nilai dari atribut yang dispesifikasikan.Contoh kalkulus relasional tupel yang diterapkan pada SQl :“Select Dosen_id, Dosen_nama from Dosen where Dosen_kelamin=’pria'”
- Kalkulus Relasional Domain :
Menggunakan variabel-variabel pada nilai-nilai domain atribut, bukan nilai-nilai untuk sebuah tupel. Ekspresi pada kalkulus relasional domain berbentuk : {<X1,X2,….,Xn> | P(X1, X2, …., Xn)}Dimana X1, X2, X…, Xn menyatakan variabel-variabel domain.
Bahasa
Query Komersial
Bahasa query komersial adalah bahasa query yang
dirancang sendiri oleh programmer menjadi suatu program aplikasi agar pemakai
lebih mudah menggunakannya atau user friendly.
Contoh bahasa query komersial antara lain:
-
QUEL :
Berbasis bahasa kalkulus relasional
- QBE :
Berbasis bahasa kalkulus relasional
- SQL :
Berbasis bahasa kalkulus relational dan aljabar relasional
SQL
Jenis-jenis SQL:
- Interactive SQL : Perintah SQL yang langsung dapat dioperasikan
- Static SQL : Bersifat embedded (disisipkan ke dalam sebuah program)
- Dynamic SQL : Kombinasi antara interactive SQL dan static SQL
Subdivisi SQL:
- DDL (Data Definition Language)
- DML (Data Manipulation Language)
- DCL (Data Control Language)
Pengelompokan Satement:
- DDL :
CREATE DATABASE, DROP DATABASE,CREATE TABEL, DROP TABEL,CREATE INDEX ,DROP INDEX,CREATE VIEW ,DROP VIEWALTER TABLE - DML :
INSERT, SELECT, UPDATE, DELETE - Data Acces :
GRANT, REVOKE - Data Integrity :
RECOVER TABLE - Auxilary :
SELECT INTO OUTFILE, LOAD, RENAME TABLE
Rizki Ananda
Sumber: Sumber 1, Sumber 2, Sumber 3, Sumber 4
Komentar
Posting Komentar