ALJABAR RELASIONAL
Menyambung data diatas referensinya:
Aljabar relasional adalah sebuah
bahasa query prosedural yang terdiri
dari sekumpulan operasi dimana masukannya adalah satu atau dua relasi dan
keluarannya adalah sebuah relasi baru sebagai hasil dari operasi tersebut.
Operasi-operasi dalam aljabar relasional di antaranya : selection, projection, union, set difference, cartesian product, intersection, dan join.
a. Selection
Operasi selection
dapat didefiniskan sebagai ”Kumpulan semua tuple-tuple/record-record dalam
suatu tabel yang memenuhi kondisi P”. Operasi selection berfungsi untuk
menyeleksi tuple-tuple yang memenuhi predikat yang diberikan dari sebuah tabel
relasi. Simbol sigma “σ” digunakan untuk menunjukkan operasi select. Predikat muncul sebagai subscript dari σ dan kondisi yang
diinginkan yang ditulis dalam predikat. Argumen diberikan dalam tanda kurung
yang mengikuti σ dan berisi tabel relasi yang dimaksud.
Contoh penggunaan operasi selection :
Misalkan ada 3 tabel, yaitu tabel dosen,
tabel matakuliah seperti berikut:
Tabel Dosen
NIP
|
Nama_dosen
|
Jenis_kelamin
|
Alamat
|
Kota
|
95001
|
Bambang
|
Pria
|
Jl. Mawar
|
Jakarta Selatan
|
95002
|
Asri
|
Wanita
|
Jl. Anggrek
|
Jakarta Selatan
|
95003
|
Hesti
|
Wanita
|
Jl. Bungur
|
Jakarta Timur
|
95004
|
Dimas
|
Pria
|
Jl. Kemuning
|
Cikarang
|
Tabel Matakuliah Tabel Mengajar
Kd_mk
|
Nama_mk
|
Sks
|
|
NIP
|
Kd_mk
|
Kelas
|
MPK1
|
PKN
|
2
|
|
95002
|
MKB3
|
A
|
MKB3
|
BDT
|
3
|
|
95002
|
MKB4
|
A
|
MKB4
|
ASD
|
3
|
|
95003
|
MPK1
|
A
|
|
|
|
|
95003
|
MPK1
|
B
|
|
|
|
|
95004
|
MKB4
|
B
|
Tampilkan daftar dosen yang berjenis
kelamin pria dari tabel Dosen.
Aljabar relasional : σJenis_kelamin=Pria(Dosen)
Hasil:
NIP
|
Nama_dosen
|
Jenis_kelamin
|
Alamat
|
Kota
|
95001
|
Bambang
|
Pria
|
Jl. Mawar
|
Jakarta Selatan
|
95004
|
Dimas
|
Pria
|
Jl. Kemuning
|
Cikarang
|
b. Projection
Operasi projection
berfungsi untuk memilih nilai atribut-atribut tertentu saja dari sebuah tabel
relasi. Simbol phi “Ï€” digunakan untuk menunjukkan operasi projection. 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 projection :
1. Tampilkan
NIP dan Nama_dosen dari tabel Dosen
Aljabar
relasional : πNIP,Nama_dosen(Dosen)
Hasil:
NIP
|
Nama_dosen
|
95001
|
Bambang
|
95002
|
Asri
|
95003
|
Hesti
|
95004
|
Dimas
|
2. Tampilkan
NIP, Nama_dosen, dan kota dari tabel Dosen dari dosen-dosen yang bertempat
tinggal di kota Jakarta Selatan.
Aljabar
relasional : πNIP,Nama_dosen,Kota(σKota=Jakarta
Selatan(Dosen)
Hasil
:
NIP
|
Nama_dosen
|
Jenis_kelamin
|
Kota
|
95001
|
Bambang
|
Pria
|
Jakarta Selatan
|
95002
|
Asri
|
Wanita
|
Jakarta Selatan
|
c. 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 :
Tampilkan NIP( dari relasi Dosen) Union
dari NIP (dari tabel Mengajar)
Aljabar Relasional: πNIP
(Dosen) ∪ NIP
(Mengajar)
Hasil:
NIP
|
95001
|
95002
|
95003
|
95004
|
d. 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 :
Tampilkan
NIP (dari tabel Dosen) Set-difference dari NIP (dari tabel
Mengajar).
Aljabar
relasional: πNIP
(Dosen) - NIP (Mengajar)
Hasil
:
e. 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 cartesian product.
Contoh penggunaan operasi cartesian product :
Tampilkan
Kode_mk, Nama_mk, Sks (dari tabel Matakuliah), Kelas (dari tabel Mengajar)
dimana kelas yang diajar adalah kelas A.
Aljabar
relasional: πKode_mk,Nama_mk,Sks,Kelas
(σKelas=A ˄ Mengajar.Kode_mk=Matakuliah.Kode_mk(Mengajar x
Matakuliah))
atau
σMengajar.Kode_mk=Matakuliah.Kode_mk ˄ Kelas=A ((Ï€Kode_mk,Nama_mk,Sks
(Matakuliah)) x πKelas(Mengajar))
Hasil:
Kd_mk
|
Nama_mk
|
Sks
|
Kelas
|
MPK1
|
PKN
|
2
|
A
|
MKB3
|
BDT
|
3
|
A
|
MKB4
|
ASD
|
3
|
A
|
f. Intersection
Set intersection / Intersection (∩) termasuk ke dalam
operator tambahan, karena operator ini dapat diderivikasi dari operator dasar
seperti berikut:
A ∩
B = A - ( A – B ), atau A ∩ B = B - ( B – A )
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 :
Tampilkan NIP (dari tabel Dosen) Set
Intersection dengan NIP (dari tabel Mengajar).
Aljabar relasional: πNIP
(Dosen) ∩ Ï€NIP (Mengajar)
Hasil:
g. Natural
Join
Operasi natural join berfungsi untuk menggabungkan
operasi selection 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 :
Tampilkan
seluruh data yang ada pada tabel Matakuliah dan tabel Mengajar.
Aljabar
relasional : Matakuliah ⋈ Mengajar.Kode_mk=Matakuliah.Kode_mk Mengajar
Hasil:
Kd_mk
|
Nama_mk
|
Sks
|
NIP
|
Kelas
|
MKB3
|
BDT
|
3
|
95002
|
A
|
MKB4
|
ASD
|
3
|
95002
|
A
|
MPK1
|
PKN
|
2
|
95003
|
A
|
MPK1
|
PKN
|
2
|
95003
|
B
|
MKB4
|
ASD
|
3
|
95004
|
B
|
h. Theta
Join
Operasi theta join berfungsi untuk mengkombinasikan
tupel dari 2 tabel relasi dimana kondisi dari kombinasi tersebut tidak hanya
nilai dari 2 atribut bernama sama, tetapi kondisi yang diinginkan juga bisa
menggunakan operator relasional (≤, <, =, >, ≥). Operasi theta join merupakan ekstensi dari natural join.
Contoh penggunaan operasi theta join:
Tampilkan
seluruh data yang ada pada tabel Matakuliah dan tabel Mengajar.
Aljabar relasional : Matakuliah ⋈ Mengajar.Kode_mk=Matakuliah.Kode_mk
Mengajar
Hasil:
Kd_mk
|
Nama_mk
|
Sks
|
NIP
|
Kd_mk
|
Kelas
|
MKB3
|
BDT
|
3
|
95002
|
MKB3
|
A
|
MKB4
|
ASD
|
3
|
95002
|
MKB4
|
A
|
MPK1
|
PKN
|
2
|
95003
|
MPK1
|
A
|
MPK1
|
PKN
|
2
|
95003
|
MPK1
|
B
|
MKB4
|
ASD
|
3
|
95004
|
MKB4
|
B
|