BAHASA QUERY FORMAL
Bahasa
query formal basis data relasional adalah bahasa untuk meminta informasidari
basis data.
Bahasa
query relasional formal merupakan bahasa antara yang digunakan basis data,
yaitu SQL dikonversi menjadi bahasa
relasional formal sehingga dapat diterapkan sekumpulan informasi untuk
memperoleh query paling efisien
Aljabar Relasional
Aljabar relasional adalah sebuah bahasa query prosedural yang terdiri dari sekumpulan operasi dimana masukkannya adalah satu atau dua relasi dan keluarannya adalah sebuah relasi baru sebagai hasil dari operasi tersebut. Operasi-operasi dasar dalam aljabar relasional adalah : select, project, union, set difference, dan cartesian product.
1.Operasi Selection ( σ )
Selection / Select (σ ), adalah operasi untuk menyeleksi tupel –
tupel yang memenuhi suatu predikat, kita dapat menggunakan operator
perbandingan(<,>,>=,<=,=,#) pada predikat. Beberapa predikat dapat
dikombinasikan menjadi predikat manjemuk menggunakan penghubung AND (∧) dan OR (∨).
Contoh penggunaan operasi selection :
σNPM = 10296832(NILAI)
Perintah diatas berarti memilih tupel-tupel dari tabel NILAI
yang memiliki atribut NPM bernilai di atas adalah :
10296832
|
KK021
|
60
|
75
|
10296832
|
KD132
|
40
|
30
|
2. Oprasi Projection
Operasi projection berfungsi untuk memilih nilai atribut-atribut
tertentu saja dari sebuah tabel relasi. Simbol phi “Π” digunakan untuk
menunjukkan operasi project. Predikat muncul sebagai subscript dari Π dan hanya
nama atribut yang diinginkan yang ditulis dalam predikat. Argumen diberikan
dalam tanda kurung yang mengikuti Π dan berisi tabel relasi yang dimaksud.
Contoh penggunaan operasi project :
Π KDMK,SKS(MKUL)
Perintah diatas berarti memilih nilai atribut KDMK dan SKS dari
tabel MKUL. Hasil dari operasi diatas adalah :
KK021
|
2
|
KD132
|
3
|
3.Oprasi Himpunan
– union
Operasi union berfungsi untuk mendapatkan gabungan nilai atribut
dari sebuah tabel relasi dengan nilai atribut dari tabel relasi lainnya. Simbol
“∪” digunakan untuk
menunjukkan operasi union. Operasi union bernilai benar bila terpenuhi 2
kondisi, yaitu : Derajat dari 2 tabel relasi yang dioperasikan harus sama dan
domain dari atribut yang dioperasikan juga harus sama.
Contoh penggunaan operasi union :
Misalkan terdapat 2 tabel relasi bernama ASLABSI dan ASLABTI
seperti dibawah :
ASLABSI
NPM
|
Nama
|
Kelas
|
10107591
|
Eko Putra
|
3KA07
|
10107971
|
Keque Irfan
|
3KA07
|
18108012
|
Riza Rulham
|
3KA07
|
ASLABTI
NPM
|
Nama
|
Kelas
|
11107891
|
M. Ali Nurdin
|
3KA07
|
18108012
|
Riza Rulham
|
3KA07
|
11107611
|
Soli Kurniawan
|
3KA07
|
dan dari 2 tabel relasi diatas dilakukan operasi union sebagai
berikut :
Π Nama(ASLABSI) ∪ Π Nama(ASLABTI)
Perintah diatas berarti menggabungkan hasil dari operasi project
terhadap tabel ASLABSI dengan hasil dari operasi project terhadap tabel
ASLABTI. Hasil dari operasi diatas adalah :
Eko Putra
|
Keque Irfan
|
M. Ali Nurdin
|
Riza Rulham
|
Perhatikan bahwa nama Riza Rulham hanya muncul sekali pada hasil
operasi, ini karena relasi adalah set sehingga nilai duplikat dihilangkan.
– Set Difference
Operasi set difference berfungsi untuk mendapatkan nilai yang
ada dalam sebuah tabel relasi, tapi tidak ada dalam tabel relasi lainnya.
Simbol “-“ digunakan untuk menunjukkan operasi set difference.
Contoh penggunaan operasi set difference :
Π Nama(ASLABSI) – Π Nama(ASLABTI)
Perintah diatas berarti mendapatkan nilai atribut Nama yang
terdapat di tabel ASLABSI, tapi tidak terdapat di tabel ASLABTI. Hasil dari
operasi diatas adalah :
Eko Putra
|
Keque Irfan
|
– Cartesian Product
Operasi cartesian product berfungsi untuk mengkombinasikan
informasi yang ada dalam 2 tabel relasi dan menghasilkan sebuah tabel relasi
yang baru. Simbol “x“ digunakan untuk menunjukkan operasi set difference.
Contoh penggunaan operasi cartesian product :
| 11107891 | M. Ali Nurdin | 3KA07 | KK021 | P. Basis Data | 2 |
| 11107891 | M. Ali Nurdin | 3KA07 | KD132 | SIM | 3 |
| 11107891 | M. Ali Nurdin | 3KA07 | KU122 | Pancasila | 2 |
| 18108012 | Riza Rulham | 3KA07 | KK021 | P. Basis Data | 2 |
| 18108012 | Riza Rulham | 3KA07 | KD132 | SIM | 3 |
| 18108012 | Riza Rulham | 3KA07 | KU122 | Pancasila | 2 |
| 11107611 | Soli Kurniawan | 3KA07 | KK021 | P. Basis Data | 2 |
| 11107611 | Soli Kurniawan | 3KA07 | KD132 | SIM | 3 |
| 11107611 | Soli Kurniawan | 3KA07 | KU122 | Pancasila | 2 |
ASLABTI x MKUL ⟹ tabel relasi baru
Perintah diatas berarti mengkombinasikan seluruh tupel yang ada
pada tabel ASLABTI dengan tabel MKUL. Hasil dari operasi diatas adalah :
Operasi-operasi Tambahan
– Set Intersection
Operasi set intersection berfungsi untuk mendapatkan nilai yang
ada dalam sebuah tabel relasi dan juga ada dalam tabel relasi lainnya. Simbol
“∩“ digunakan untuk menunjukkan operasi set intersection.
Contoh penggunaan operasi set intersection :
Π Nama(ASLABSI) ∩ Π Nama(ASLABTI)
Perintah diatas berarti mendapatkan nilai atribut Nama yang
terdapat di tabel ASLABSI dan juga terdapat di tabel ASLABTI. Hasil dari
operasi diatas adalah :
Riza Rulham
|
– Natural Join
Operasi natural join memungkinkan kita untuk menggabungkan
operasi select dan cartesian product menjadi hanya 1 operasi saja. Simbol “⋈“ digunakan untuk menunjukkan operasi natural
join. Operasi natural join hanya menghasilkan tupel yang mempunyai nilai yang
sama pada 2 atribut yang bernama sama pada 2 tabel relasi yang berbeda.
Contoh penggunaan operasi natural join :
Π NPM,KDMK,MID(MHS ⋈ NILAI)
Perintah diatas berarti mendapatkan nilai dari operasi project
dengan predikat NPM, KDMK, dan MID dan argumen hasil dari operasi natural join
antara tabel MHS dengan tabel NILAI. Hasil dari operasi diatas adalah :
10296832
|
KK021
|
60
|
10296832
|
KD132
|
40
|
10296126
|
KD132
|
70
|
31296500
|
KK021
|
55
|
41296525
|
KU122
|
90
|
50096487
|
KD132
|
80
|
21196353
|
KU122
|
75
|
– Division
Operasi division berfungsi untuk query yang memasukkan frase
“untuk semua/seluruh”. Simbol “÷“ digunakan untuk menunjukkan operasi division.
Contoh penggunaan operasi division :
Misalkan terdapat 3 tabel relasi bernama ACCOUNT, BRANCH, dan
DEPOSITOR seperti dibawah :
dan dari 3 tabel relasi diatas dilakukan operasi division
sebagai berikut :
Π customer-name,branch-name(DEPOSITOR ⋈ ACCOUNT) ÷
Π branch-name(σbranch-city=”Brooklyn”(BRANCH))
Dengan asumsi operasi project awal adalah relasi r1 dan
akhir adalah r2, perintah diatas berarti mendapatkan nama pelanggan yang muncul
pada hasil relasi r2 untuk semua nama cabang hasil relasi r1. Hasil dari
operasi diatas adalah :
Johnson
|
– Theta Join
Operasi theta join berfungsi jika kita ingin mengkombinasikan
tupel dari 2 tabel relasi dimana kondisi dari kombinasi tersebut tidak hanya
kesamaan nilai dari 2 atribut bernama sama, tetapi kondisi yang diinginkan juga
bisa menggunakan operator relasional (≤, <, =, >, ≥). Operasi theta join
merupakan ekstensi dari natural join.
thanks for :