Anda di halaman 1dari 7

ALJABAR RELASIONAL

Relational Algebra (aljabar relasional) merupakan kumpulan operasi terhadap relasi dimana
setiap operasi menggunakan satu atau lebih relasi untuk menghasilkan satu relasi yang baru dan
termasuk kategori prosedural dan juga menyediakan seperangkat operator untuk memanipulasi
data.
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 : ( X )
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.

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 :

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 : 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 tabel relasi S1 dan S2 berikut :

berikut ini adalah contoh dari ketiga operasi diatas :


Union :

Intersection :

Set-Different :

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

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 :

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

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 :


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

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 :

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 :
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

Cari nama sailor yang mempunyai reserved boat =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.

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

Anda mungkin juga menyukai