Anda di halaman 1dari 9

Diktat Kuliah Basis Data PENS ITS

BAB 4 ALJABAR RELASIONAL

Bahasa Query Relasional (Relational Query Language) Bahasa Query : memungkinkan manipulasi dan pemanggilan data dari suatu basis data. Model Relasional mendukung kesederhanaan, dengan kemampuannya untuk melakukan bahasa Query. o Dasar formal yang kuat berdasarkan logika o Bisa dioptimasi Bahasa Query tidak sama dengan bahasa pemrograman o Bahasa Query tidak dimaksudkan untuk digunakan pada proses kalkulasi yang kompleks. o 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 : o Aljabar Relasional : lebih bersifat operasional, sangat berguna untuk merepresentasikan eksekusi perencanaan. o 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). Pendahuluan Query diaplikasikan ke instance relasi, dan hasil dari query itu sendiri adalah instance relasi. o Skema dari input relasi untuk suatu query bersifat pasti. o Skema untuk hasil dari query yang diberikan juga bersifat pasti. Ditentukan oleh definisi konstruksi bahasa query yang diberikan. Contoh Instance Berikut ini adalah contoh relasi Sailors dan Reserves.

Iwan Syarif

Diktat Kuliah Basis Data PENS ITS

Digunakan notasi dengan nama field pada hasil query yang diturunkan dari nama fields dalam relasi input query.

Aljabar Relasional Operasi dasar : o Selection : Memilih sub himpunan baris dari suatu relasi Simbol : o Projection : Menghapus kolom yang tidak dikehendaki dari relasi Simbol : o Cross-product : Memungkinkan kita untuk mengkombinasikan dua relasi Simbol : o Set-difference : Mendapatkan tupel yang terdapat dalam relasi satu, tapi tidak terdapat dalam relasi dua. Simbol : o Union : Mendapatkan tupel yang terdapat dalam relasi satu dan relasi dua. Simbol : Operasi tambahan : Intersection, join, division, renaming.

Iwan Syarif

Diktat Kuliah Basis Data PENS ITS

Projection Menghapus atribut yang tidak dikehendaki dari relasi Misal terdapat relasi S1 berikut :

Jika diberikan query :

Maka table relasi yang dihasilkan dari query diatas adalah :

Jika pada relasi S2, 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 Memilih kolom pada relasi, sesuai dengan kondisi yang sudah ditentukan. Untuk contoh relasi S2 seperti pada table sebelumnya, jika diberikan query :

maka table relasi yang dihasilkan :

Iwan Syarif

Diktat Kuliah Basis Data PENS ITS

Dan jika diberikan query berikut untuk relasi S2 :

maka table relasi yang dihasilkan :

Union, Intersection, Set-Difference Semua operasi ini membutuhkan dua relasi, syarat yang harus dipenuhi adalah : o Mempunyai jumlah field yang sama o Field yang berkorespondensi memiliki tipe yang sama. Untuk dua table relasi S1 dan S2 berikut :

berikut ini adalah contoh dari ketiga operasi diatas : Union :

Iwan Syarif

Diktat Kuliah Basis Data PENS ITS

Intersection :

Set-Difference :

Cross-Product Contoh dipakai dua relasi berikut untuk operator cross-product maka kolom S1 dipasangkan dengan tiap kolom R1.

Iwan Syarif

Diktat Kuliah Basis Data PENS ITS

Skema hasil memiliki satu field per field dari S1 dan R1. o Akan terjadi konflik jika kedua relasi memiliki nama field yang sama seperti pada contoh dibawah ini.

o Maka perlu dipakai operator renaming pada query berikut :

Join

Condition Join / Theta Join : Jadi untuk table cross product S1 x R1 sebelumnya, jika diberikan query berikut :

maka table relasi yang dihasilkan :

Skema hasil mirip dengan cross-product, hanya diberi kondisi tertentu Lebih sedikit tupel yang dihasilkan, dibandingkan dengan menggunakan operator cross-product, karena komputasinya lebih efisien Seringkali disebut dengan operator theta-join. Equi-Join : Kasus khusus dari condition join dimana kondisi c hanya berisi kesamaan (nilai yang sama dari kedua relasi). Contoh query berikut :

Tabel relasi yang dihasilkan :

Iwan Syarif

Diktat Kuliah Basis Data PENS ITS

Skema hasil hampir sama dengan cross-product, tapi hanya berisi satu copy field yang mempunyai kesamaan dari field yang sudah ditentukan. Natural join : Equi-join pada semua fields.

Division Tidak mendukung operator primitif, tapi sangat berguna untuk mengekspresikan query seperti ini : Find sailors who have reserved all boats. Misal A memiliki 2 fields yaitu x dan y; sedangkan B hanya memiliki 1 field yaitu y : Misal A/B berisi semua tupel x (sailors) dimana untuk setiap tupel y (boat) dalam B, terdapat tupel xy dalam A. Pada umumnya, x dan y dapat menjadi anggota fields; y adalah daftar fields dalam B, dan x U y adalah daftar fields dari A. Contoh-contoh operator Division A/B -

Menyatakan A/B dengan menggunakan Operator Dasar

Iwan Syarif

Diktat Kuliah Basis Data PENS ITS

Cari nama sailor yang mempunyai reserved boar #103 Solusi 1 : Solusi 2 :

Solusi 3 :

Cari nama Sailor yang mempunyai reserved a red boat Informasi tentang color hanya ada dalam relasi Boats; sehingga diperlukan extra join : Solusi yang lebih efisien :

Cari nama Sailor yang memiliki reserved boat red atau green Identifikasi semua red dan green boats, kemudian cari sailor yang memiliki salah satu dari dua warna boat tersebut.

Iwan Syarif

Diktat Kuliah Basis Data PENS ITS

Tempboats juga dapat didefinisikan dengan menggunakan operator Union (bagaimana caranya ?) Apa yang didapatkan jika operator v diganti dengan ^ dalam query diatas ?

Cari Sailor yang memiliki red dan green boat Harus diidentifikasi sailor yang memiliki red boat dan sailor yang memiliki green boat, kemudian lakukan intersection (catatan : sid adalah kunci pada relasi Sailors) :

Cari nama semua Sailors yang memiliki reserved boat Gunakan division; skema dari relasi input harus dipilih dengan hati hati. -

Untuk mendapatkan semua Sailors yang memiliki reserved boat Interlake

Ringkasan Model relasional secara detail didefinisikan oleh bahasa query yang bersifat simple dan powerful Aljabar relasional lebih operasional; berguna untuk representasi internal dari evaluasi perencanaan suatu query. Beberapa cara dapat dipakai untuk mengekspresikan suatu query, dan dipilih cara yang paling efisien.

Iwan Syarif