PERTEMUAN 13 Sistem Basis Data Presented by : Sity Aisyah Nasution, M.Kom Email : dryesha@gmail.com Blog : yeshasalsabila.blogspot.com
Aljabar Relasional Query Procedural Beberapa query yang murni adalah aljabar relasional (relational algebra) yang merupakan bahasa query bersifat procedural. Aljabar relasional merupakan bahasa query formal yang dipenuhi dengan aneka ekspresi matematis. Aljabar relasional adalah sebuah query procedural yang terdiri dari sekumpulan operasi-operasi yang dimasukkannya adalah satu atau dua relasi dan keluarannya adalah sebuah relasi atau tabel baru sebagai hasil dari operasi tersebut.
Simbol Aljabar Relasional Aljabar relasional memiliki simbol yang terdiri dari suatu perintah atau susunan perintah yang dijalankan pada satu atau lebih input relasi dan menghasilkan relasi atau tabel baru sebagai output. Ada beberapa perintah atau operasi pada aljabar relasional, kemudian operasi-operasi tersebut dibedakan menjadi operasi unari (unary relation) dan operasi bineri (binary relation), yaitu :
Select : menggunakan simbol sigma () Project : menggunakan simbol phi () Cartesian Product : menggunakan simbol tanda silang (x) Union : menggunakan simbol () Set Intersection : menggunakan simbol () Set Difference : menggunakan simbol () Operasi select dan project merupakan unary operation, sedangkan cartesian product, union, set intersection dan set difference disebut binary operation.
Operasi Unari (Unary Operation) Merupakan operasi atau perintah yang hanya memerlukan satu relasi atau tabel. Operasi Seleksi (Select) Digunakan untuk menyeleksi atau mencari record-record yang memenuhi predikat atau syarat yang sudah ditentukan, kemudian hasilnya dituliskan pada relasi baru sebagai hasil operasi select. Operasi select menggunakan simbol sigma (), sedangkan predikat ditulis sebagai subscript dari notasi tersebut. Sintaks : Dimana : P adalah predikat pd atribut2 E1 E1 adalah tabel atau relasi P (E1)
Diketahui relasi Suplier A sbb : Misalkan untuk memilih atau mencari record-record dari tabel Suplier A dimana S# adalah “S1” ditulis : S# = “S1”, “Snama”, “Status”, “Skota” (Suplier A) Hasil dari query diatas adalah :
Tanda kutip tunggal (‘) atau tanda kutip ganda (“) digunakan untuk mengapit sebuah konstanta teks. Hasil query tersebut juga berupa tabel, tetapi hanya berisi record-record yang memenuhi kondisi tersebut. Pada operasi select diperbolehkan menggunakan perbandingan, misalnya ; =, , <, , >, ≥ pada predikat dari operasi tersebut. Demikian juga halnya kombinasi dari beberapa predikat untuk membentuk predikat yang lebih kompleks dengan menggunakan notasi atau .
Operasi Projeksi (Project) Digunakan untuk memilih kolom atau atribut tertentu untuk ditampilkan. Operasi ini beroperasi disebuah tabel, yaitu dengan membentuk tabel baru dengan melengkapi atribut-atribut dan domain-domain dari tabel berdasarkan argumen-argumen pada operator tersebut. Simbol yang digunakan operasi project adalah phi (). Sintaks : Dimana : S adalah daftar (list) yang berisi satu atau lebih field yg ada di E1 E1 adalah tabel atau relasi S (E1)
Misalkan untuk menampilkan seluruh Snama, Status,kota tanpa S# dari relasi Suplier A ditulis : Snama, Status, Kota (Suplier A) Hasil dari query diatas adalah :
Operasi Bineri (Binary Operation) Merupakan operasi atau perintah yang memerlukan sepasang tabel atau dua tabel. Union Operasi penggabungan (union) dalam aljabar relasional sama halnya operasi union pada aritmatika. Operasi ini memungkinkan untuk menggabungkan data dari dua baris (row) yang sejenis. Simbol yang digunakan operasi union adalah ()
Contoh operasi Union pada aritmatika adalah : Misalkan : A = {1, 2, 3} B = {3, 5, 7} A B = {1, 2, 3, 5, 7} Sintaks yang digunakan adalah : E1 E2. Dimana E1 dan E2 adalah relasi atau tabel.
Jika diketahui Tabel Suplier A dan B sbb : Untuk menampilkan tabel Suplier A dan B dimana adalah “Snama”, “Kota” ditulis : Snama, Kota (Suplier A) Snama, Kota (Suplier B)
Maka hasil dari query di atas adalah :
Set Difference Operasi pengurangan himpunan (set difference) digunakan untuk menemukan record-record yang berada pada satu tabel tetapi tidak pada tabel lainnya. Operasi ini dalam aljabar relasional sama halnya operasi pengurangan himpunan pada aritmatika. Simbol yang digunakan set difference adalah(-).
Contoh operasi pada aritmatika adalah : Misalkan : A = {1, 2, 3} B = {3, 5, 7} A - B = {1, 2} Misalkan : A = {1, 2, 3} B = {3, 5, 7} B - A = {5, 7} Sintaks yang digunakan adalah : E1 - E2. Dimana E1 dan E2 adalah relasi atau tabel.
Misalkan untuk menemukan Snama (A minus B) ditulis : Snama, Kota (Suplier A) - Snama, Kota (Suplier B) Hasil dari query diatas adalah : Misalkan untuk menemukan Snama (B minus A) ditulis : Snama, Kota (Suplier B) - Snama, Kota (Suplier A) Hasil dari query diatas adalah :
Set Intersection Operasi irisan himpunan (set intersection) digunakan untuk mendapatkan irisan (kesamaan anggota) dari dua buah kelompok data dari suatu tabel atau hasil query. Simbol yang digunakan set intersection adalah (). Misalkan : A = {1, 2, 3} B = {3, 5, 7} A B = {3} Sintaks yang digunakan adalah : E1 E2. Dimana E1 dan E2 adalah relasi atau tabel.
Misalkan untuk menemukan Snama, Kota (A irisan B) ditulis : Snama, Kota (Suplier A) Snama, Kota (Suplier B) Hasil dari query diatas adalah :
Cartesian Product digunakan untuk merelasikan semua record-record yang berasal dari dua tabel. Tabel suplier A dan B dinyatakan dengan A X B adalah himpunan semua elemen atau record yang dibentuk dari anggota Suplier A sebagai elemen pertama dan anggota Suplier B. Simbol yang digunakan cartesian product adalah (X).
Operasi cartesian product umumnya tidak berdiri sendiri tetapi digunakan bersama dengan operasi lainnya seperti select dan project. Semua record E1 akan dipasangkan dengan semua record E2. Operasi ini bersifat komutatif yaitu : E1 X E2 akan sama dengan E2 X E1. Contoh operasi pada aritmatika adalah : A = {1, 2, 3} B = {5,7} A X B = {(1,5), (1,7), (2,5), (2,7), (3,5), (3,7)}
Jika diketahui dua tabel A dan B seperti berikut : Maka operasi A X B akan menghasilkan :
Hasil dari A X B adalah sbb : Jika diketahui ada query Y, Z, W ( a.x = b.x (axb)) Hasil dari query di atas adalah sbb :
Jika diketahui dua tabel Suplier dan Quality seperti berikut :
Y, Z, W ( a.x = b.x (axb)) Hasil perkalian Jika diketahui ada query Hasil dari query di atas adalah sbb :
Terima Kasih