Aljabar Relasional
Bahasa Query Relasional Bahasa Query : memungkinkan untuk manipulasi dan pemanggilan data dari suatu basis data. Model Relasional mendukung kesederhanaan, dengan kemampuannya untuk melakukan bahasa Query. Bahasa Query tidak sama dengan bahasa pemrograman Bahasa Query tidak dimaksudkan untuk digunakan pada proses kalkulasi yang kompleks. Bahasa Query bisa dilakukan dengan mudah, mempunyai akses yang efisien terhadap himpunan data yang besar.
Relasi Formal dari Bahasa Query Terdapat dua macam bentuk bahasa Query : Aljabar Relasional : lebih bersifat operasional, sangat berguna untuk merepresentasikan eksekusi perencanaan. Kalkulus Relasional : Memungkinkan user menggambarkan apa yang mereka inginkan, tidak pada bagaimana cara melakukan komputasi terhadap apa yang mereka inginkan tersebut. (tidak bersifat operasional, tapi bersifat deklaratif). Memahami Aljabar dan Kalkulus Relasional adalah kunci dalam memahami SQL (Structured Query Language).
Aljabar Relasional Operasi dasar : Operasi tambahan : Selection : Memilih sub himpunan baris dari suatu relasi. Simbol : (σ) Projection : Menghapus kolom yang tidak dikehendaki dari relasi. Simbol : (∏) Cross-product : Memungkinkan kita untuk mengkombinasikan dua relasi. Simbol : (×) Set-difference : Mendapatkan tupel yang terdapat dalam relasi satu, tapi tidak terdapat dalam relasi dua. Simbol : (−) Union : Mendapatkan tupel yang terdapat dalam relasi satu dan relasi dua. Simbol : (U) Operasi tambahan : Intersection, join, division, renaming.
Selection (σ)
Projection (π)
Projection (π)
Union () r s
Intersection () r s
Set difference ( - ) r – s =
Cross product (X) r x s =
Komposisi cross product Contoh: σA=C(r x s)
Aljabar Relasional
Simbol σ Selection π Projection Union Intersection
Operasi Aljabar Relasional Untuk mengimplementasikan kedalam operasi aljabar relasional, berikut ini diberikan contoh relasi : Pelaut(pid:integer,pnama:string,rating:integer,umur:real) Kapal(kid:integer,knama:string,kwarna:string) Jadwal(pid:integer,kid:integer,hari:date)
Tabel pelaut Nama Field Tipe data Keterangan pid Integer Pelaut_id pnama String Pelaut_nama rating Peringkat umur Real Umur_pelaut
Tabel Kapal Nama field Tipe data Keterangan kid Integer Kapal_id knama String Kapal_nama kwarna Kapal_warna kid knama kwarna 111 Marcopolo Hitam 113 Dewaruci Biru
Tabel jadwal Nama field Tipe data Keterangan pid Integer Pelaut_id kid Kapal_id jhari Date Jadwal_Hari _berangkat
Projection Jika diinputkan query : Menghapus atribut yang tidak dikehendaki dari relasi. Simbol : (∏) Misal terdapat relasi berikut : Jika diinputkan query : Maka table relasi yang dihasilkan dari query diatas adalah :
Projection Jika, diberikan query : Maka table relasi yang dihasilkan dari query diatas adalah : Dari hasil tersebut, dapat dilihat bahwa operasi projection, dapat mengeleminasi duplikat (field yang bernilai sama).
Selection maka table relasi yang dihasilkan : Memilih kolom pada relasi, sesuai dengan kondisi yang sudah ditentukan. Simbol : (σ) Untuk contoh relasi seperti pada table sebelumnya, jika diberikan query : maka table relasi yang dihasilkan :
Selection Dan jika diberikan query berikut : maka table relasi yang dihasilkan :
Union, Intersection, Set-Difference Semua operasi ini membutuhkan dua relasi, syarat yang harus dipenuhi adalah : Mempunyai jumlah field yang sama Field yang berkorespondensi memiliki tipe yang sama. Untuk dua table sebagai berikut : Pelaut Pelautk
Union, Intersection, Set-Difference pelaut U pelautk Intersection pelaut п pelautk
Union, Intersection, Set-Difference Pelaut - Pelautk
Cross-Product Contoh dipakai dua relasi berikut untuk operator cross-product maka tiap kolom tabel pelaut dipasangkan dengan tiap kolom tabel jadwal. Pelaut X jadwal
Rename Skema hasil memiliki satu field per field dari pelaut dan kapal. Akan terjadi konflik jika kedua relasi memiliki nama field yang sama seperti pada contoh diatas. Ρ(C(1 → idpelaut, 5 → pidjadwal))