Tujuan Instruksional Umum
Mahasiswa dapat mengerti Bahasa Query (Query Language).
Tujuan Instruksional Khusus
Mahasiswa dapat mengerti tentang aljabar relational.
Mahasiswa dapat mengerti operator dasar dan operator tambahan
BAHASA QUERY (QUERY LANGUAGE)
uery Language adalah language yang digunakan oleh user untuk mendapatkan
informasi dari basis data. Query Language umumnya berupa high–level language,
yang levelnya lebih tinggi dari programming language standard.
Q
Query Language terbagi menjadi 2 kategori, yaitu : 1. PROCEDURAL LANGUAGE
User memerintah system/DBMS untuk melaksanakan urutan–urutan operasi/prosedur untuk mendapatkan informasi yang diinginkan.
2. NON–PROCEDURAL LANGUAGE
User tidak menggunakan prosedur/urutan–urutan operasi tertentu untuk mendapatkan informasi yang diinginkan.
5.1 Aljabar Relational (Relational Algebra)
Aljabar relational adalah kumpulan operasi terhadap relasi. Setiap operasi menggunakan satu atau lebih untuk menghasilkan satu relasi yang baru. Termasuk bahasa queri dengan prosedur yang menyediakan sejumlah operator untuk memanipulasi data pada seluruh relasi. Aljabar relasi terdiri dari suatu himpunan operasi yang menggunakan satu atau dua relasi sebagai input dan menghasilkan suatu relasi baru sebagai hasilnya.
Operator Dasar :
1. Operasi Seleksi / Select Operation 2. Operasi Proyeksi / Project Operation 3. Cartesian Product Operation
4. Union Operation
5. Set Difference Operation
Relasi/tabel untuk contoh penggunaan bahasa query :
Nasabah
Nama No_KTP Alamat Kota
Santi Anasari Setiawan
Trijaya Ardian
12345 23456 34567 45678 56789
Jl. Intan No. 90 Jl. Mutiara No. 45 Jl. Permata No. 12 Jl. Tembaga No. 50 Jl. Perunggu No. 67
Bandung Semarang Semarang Jakarta Semarang
Rekening
No_Rek Status Saldo
987.654 876.543 765.432 654.321 543.210 432.109 321.098
Checking Checking Checking Saving Saving Checking
Saving
8.000.000 3.500.000 6.500.000 4.750.000 1.250.000 2.750.000 9.500.000
R1
No_KTP No_Rek
12345 12345 23456 34567 45678 45678 56789
987.654 876.543 765.432 654.321 543.210 432.109 321.098
5.2 Operator Dasar :
1. Operasi Selection / Select Operational
Operasi ini menggunakan simbol
(Lower–Case Omega)Operasi selection menyeleksi tuple–tuple di sebuah relation, yaitu tuple–tuple yang memenuhi predicate/syarat yang sudah ditentukan sebelumnya.
Operasi selection dituliskan dengan bentuk umum sebagai berikut :
F
(R)Catatan :
Predikat/kondisi seleksi menggunakan operator boolean (=, <, >, ≤, ≥, ≠) untuk nilai atribut tabel. Kondisi dengan operator Boolean juga dapat dihubungkan dengan operator AND (^) dan OR (v).
Contoh :
Kota = “Semarang” (NASABAH)
Berarti : mencari semua record dari table NASABAH yang kotanya di ‘Semarang’.
Tabel hasil seleksi :
Nama No_KTP Alamat Kota
Anasari Setiawan
Ardian
23456 34567 56789
Jl. Mutiara No. 45 Jl. Permata No. 12 Jl. Perunggu No. 67
Semarang Semarang Semarang
Saldo ≥ 4.000.000 ^ Status =”Saving” (REKENING)
Berarti : mencari semua record dari table REKENING yang saldonya ≥ 4.000.000 dan status rekeningnya adalah ‘Saving’.
Tabel hasil seleksi :
No_Rek Status Saldo
654.321 321.098
Saving Saving
4.750.000 9.500.000
Saldo ≤ 4.000.000 v Status =”Saving” (REKENING)
Berarti : mencari semua record dari table REKENING yang saldonya ≤ 4.000.000 atau status rekeningnya adalah ‘Saving’.
Tabel hasil seleksi :
No_Rek Status Saldo
876.543 654.321 543.210 432.109 321.098
Checking Saving Saving Checking
Saving
3.500.000 4.750.000 1.250.000 2.750.000 8.500.000
2. Operasi Proyeksi / Project Operation Operasi ini menggunakan simbol
(phi)Operator projection beroperasi di sebuah relation, yaitu membentuk relation baru dengan mengcopy atribut–atribut dan domain–domain dari relation tersebut berdasarkan argument–argument pada operator tersebut.
Operasi proyeksi dituliskan dengan bentuk umum sebagai berikut :
a1, a2, …, an(R)
Catatan :
a1, a2, …, an : atribut yang dipilih (argument)
R : relatioan yang dikenakan operasi project
Contoh :
Nama, No_KTP(NASABAH)
Berarti : menampilkan semua record dari file NASABAH dengan hanya memilih atribut nama dan No_KTP saja. Kolom/atribut Alamat dan Kota tidak ditampilkan.
Tabel hasil proyeksi :
Nama No_KTP
Santi Anasari Setiawan
Trijaya Ardian
12345 23456 34567 45678 56789
Nama, No_KTP( Kota=”Semarang”(NASABAH))
Berarti : menampilkan Nama dan No_KTP semua record yang ada di table NASABAH yang tinggalnya di Kota =’Semarang.
Table hasil proyeksi :
Nama No_KTP
Anasari Setiawan
Ardian
23456 34567 56789
No_Rek, Saldo( Saldo ≤ 3.500.000 ^ Status=”Checking”(REKENING))
Berarti : menampilkan semua record dari file REKENING dengan hanya memilih atribut No_Rek dan Saldo saja. Dengan ketentuan yang saldonya ≤ 3.500.000 dan status rekeningya “Checking”.
Table hasil proyeksi :
No_Rek Saldo
876.543 432.109
3.500.000 2.750.000
3. Operasi Perkalian Kartesian / Cartesian–Product Operation Operator ini menggunakan simbol (X).
Operator ini merupakan operator untuk binary operation, yaitu operator yang beroperasi di dua relation.
Operasi perkalian kartesian dituliskan dengan bentuk umum sebagai berikut :
R1 X R2
Catatan :
Operator cartesian–product akan merangkai setiap tuple di R1 dengan setiap tuple
di R2 sehingga jika R1 terdiri dari n–tupke dan R2 terdiri dari m–tuple, maka :
R = R1 X R2, akan terdiri dari mn tuple
Contoh :
Jika diketahui dua tabel seperti berikut ini :
A B
Maka operasi A X B akan menghasilkan 3 x 3 = 9 tuple sehingga didapat tabel sebagai berikut :
A X Y Z B X W
Tampilkan No_KTP NASABAH yang memiliki saldo diatas 3.500.000.
Jawab :
Table hasil perkalian kartesian yaitu R1 X REKENING mempunyai 7 x 7
baris/record.
R1 X REKENING
No_KTP R1.No_Rek REKENING.No_Rek Status Saldo
12345
Sehingga :
No_KTP( Saldo 3.500.000 REKENING.No_Rek = R1.No_Rek(R1 X REKENING))
Menghasilkan tabel baru yaitu :
No_KTP
23456 56789
4. Union Operation
Operator ini menggunakan simbol (
)Operator union juga digunakan untuk operasi binary. Operator ini akan membentuk relation baru dengan tuple–tuple yang terdapat di relation R1, R2 atau
tuple–tuple yang terdapat dikedua relation tersebut.
Operasi union dituliskan dengan bentuk umum sebagai berikut :
R = R1 R2
Catatan :
Dimana R, R1 dan R2 adalah table/relasi
Contoh :
Cari/tampilkan No_KTP dan Saldo yang statusnya ‘Saving’ atau ‘Checking’
Jawab :
Langkah pertama cari product cartesius R1 X REKENING (sudah terjawab di
halaman sebelumnya)
Cari/tampilkan No_KTP dan Saldo yang statusnya “Saving”
No_KTP, Saldo( Status =”Saving” REKENING.No_Rek = R1.No_Rek(R1 X REKENING))
Hasil Tabelnya :
No_KTP Saldo
34567 45678 56789
4.750.000 1.250.000 9.500.000
Cari/tampilkan No_KTP dan Saldo yang statusnya “Checking”
No_KTP, Saldo( Status =”Checking” REKENING.No_Rek = R1.No_Rek(R1 X REKENING)) Hasil Tabelnya :
No_KTP Saldo
12345 12345 23456 45678
8.000.000 3.500.000 6.500.000 2.750.000
Lakukan Union Operation pada kedua table baru di atas :
No_KTP, Saldo( Status =”Saving” REKENING.No_Rek = R1.No_Rek(R1 X REKENING))
No_KTP Saldo
34567 45678 56789 12345 12345 23456 45678
4.750.000 1.250.000 9.500.000 8.000.000 3.500.000 6.500.000 2.750.000
5. Set–Difference Operation
Operator ini menggunakan simbol (
–
)Operator ini juga merupakan operator operasi binary, merupakan operator yang beroperasi pada dua table/relasi.
Operasi set–difference dituliskan dengan bentuk umum sebagai berikut :
R = R1 – R2
Catatan :
Dimana R, R1, dan R2 adalah table/relasi
Operasi set difference akan membentuk table/relasi baru dengan record–record yang terdapat pada relasi R1 dan tidak terdapat relasi R2.
Contoh :
Cari/tampilkan No_KTP seluruh Nasabah yang mempunyai rekening Saving saja (yang hanya mempunyai rekening Saving saja).
Jawab :
Langkah pertama cari product R1 X REKENING (sudah terjawab di halaman
sebelumnya)
Cari/tampilkan No_KTP yang statusnya “Saving”
No_KTP( Status =”Saving” REKENING.No_Rek = R1.No_Rek(R1 X REKENING))
Hasil Tabelnya :
No_KTP
34567 45678 56789
Cari/tampilkan No_KTP yang statusnya “Checking”
No_KTP( Status =”Checking” REKENING.No_Rek = R1.No_Rek(R1 X REKENING))
.
Hasil Tabelnya :
12345 12345 23456 45678
Lakukan Set Difference Operatioan pada kedua table baru diatas :
No_KTP( Status =”Saving” REKENING.No_Rek = R1.No_Rek(R1 X REKENING))
–
No_KTP( Status =”Checking” REKENING.No_Rek = R1.No_Rek(R1 X REKENING))
Hasil Tabelnya :
No_KTP
34567 56789
5.3 Operator Tambahan :
1. Set Intersection
Operator ini menggunakan simbol (
)Merupakan binary operation untuk membentuk sebuah relation baru dengan tuple– tuple yang berasal dari kedua relation yang dihubungkan.
Misal :
R1 adalah relation dengan elemen E1, E2, …, En
R2 adalah relation dengan elemen T1, T2, …, Tn
Operasi intersection R = R1
R2 akan menghasilkan relation R dengan elemen–elemen yang terdapat di R1, juga terdapat di R2.
Catatan :
Operator intersection tidak termasuk operator dasar karena operator tersebut dapat dituliskan dengan menggunakan operatior dasar SET DIFFERENCE, sebagai berikut :
R1
R2 = R1 – (R1 – R2)Jadi, intersection tidak memberikan operasi yang baru. Keuntungannya, penulisan R1
R2 lebih sederhana dibandingkan menuliskan R1 – (R1 – R2)2. Theta Join
Operator ini menggunakan simbol ( )
Merupakan operator yang menggabungkan operasi Cartesian Product dengan operasi Selection.
Dimana :
adalah simbol join
Bentuk umum Theta Join adalah : R1 R2 =
(R1 X R2)3. Natural Join
Operator ini menggunakan simbol ( )
Merupakan operator yang melakukan operasi penggabungan terhadap tuple–tuple dari relation–relation yang dioperasikan.
Misal, R1 dan R2 adalah relation yang mempunyai beberapa atribut/kolom yang
sama. Hasil operasi natural join adalah operasi cartesian product dari tuple–tuple di relation R1 & R2 yang atribut dan valuenya sama yang dikenakan operasi tersebut.
Natural join dapat digambarkan sebagai berikut :
A B C A B C A B C D
a d b c
b b b a
c c f d
b b a a
c c d d
d e b b
a a d d e
b b b b a
c c c c d
d e d e b
4. Division
Operator ini menggunakan simbol (
)Merupakan operasi pembagian atas tuple–tuple dari dua relation misal R1 sebuah
relation dengan arity R dan R2 sebuah relation dengan arity S, dapat dituliskan
dengan operator sebagai berikut : R
S =
r-s (R) –
r-s (R) x S) – R)Disederhanakan menjadi : R