Materi tentang Aljabar Relasional (Database)
Assalamu‘alaikum wr. wb.
Hello gais! Jika sebelumnya sudah membahas tentang ERD dan EER mengenai Basis Data atau Database, sekarang giliran kita masuk ke pembahasan tentang Aljabar Relasional atau disebut juga dengan Relational Algebra. Aljabar Relasional merupakan gabungan dari Logika dan Himpunan dalam Matematika, tetapi lebih ke Ilmu Komputer (Computer Science). Jika kita sudah memahami Aljabar Relasional, tentunya kita bisa mengetahui tentang Query yang ada di dalam Database seperti SQL.
Sumber Materi : Tutorialspoint.com, Guru99.com, Share28s.com, Rizarulham.wordpress.com, Databasewannabe.wordpress.com, dan Radekisti.blogspot.com
A. Rumus Aljabar Relasional
Sistem Database Relasional diharapkan dilengkapi dengan bahasa query yang dapat membantu penggunanya untuk melakukan query terhadap instance database. Ada dua jenis Bahasa Query aljabar relasional dan kalkulus relasional.
1. Aljabar Relasional
Aljabar Relasional adalah bahasa query prosedural, yang mengambil contoh hubungan sebagai input dan menghasilkan contoh hubungan sebagai output. Ini menggunakan operator untuk melakukan Kueri. Operator dapat berupa unary atau biner. Mereka menerima hubungan sebagai input mereka dan menghasilkan hubungan sebagai output mereka. Aljabar relasional dilakukan secara Rekursif pada suatu relasi dan hasil antara juga dianggap sebagai relasi.
Operasi Dasar Aljabar Relasional adalah sebagai berikut :
- Selection (Ļ)
- Projection (Ļ)
- Union (∪)
- Set-difference (-)
- Cartesian-product (X, disebut juga cross product)
- Rename (Ļ)
Operasi Tambahan Aljabar Relasional adalah sebagai berikut :
- Set Intersection (∩)
- Natural join (∞)
- Theta join (Īø)
- Division (÷)
Kita akan membahas semua operasi ini di bagian berikut.
2. Select Operation (Ļ)
Ini memilih Tupel/Baris yang memenuhi predikat yang diberikan dari suatu relasi.
Notasi : Ļp(r)
Dimana singkatan dari seleksi predikat dan r singkatan dari relasi. p adalah rumus logika preposisi yang dapat menggunakan penghubung seperti dan, atau, dan bukan. Istilah-istilah ini dapat menggunakan operator relasional seperti =, ≠, ≥, < , >, ≤.
Contohnya :
Ļsubjek = "database" (Buku)
Output Memilih Tupel dari buku di mana subjeknya adalah 'database'.
Ļsubjek = "database" ∧ harga = 450 (Buku)
Output Memilih Tupel dari buku dengan subjek 'database' dan 'price' adalah 450.
Ļsubjek = "database" ∧ harga = 450 ∧ tahun > 2010 (Buku)
Output Memilih Tupel dari buku-buku dengan subjek 'database' dan 'price' 450 atau buku-buku yang diterbitkan setelah 2010.
3. Project Operation (∏)
Ini memproyeksikan Kolom yang memenuhi predikat yang diberikan.
Ini memproyeksikan kolom yang memenuhi predikat yang diberikan.
Notasi ∏A1, A2, An (r) Dimana A1, A2 , An adalah nama atribut dari relasi r.
Baris duplikat secara otomatis dihilangkan, karena relasi adalah himpunan.
Contohnya :
∏subjek, penulis (Buku)
Memilih dan memproyeksikan kolom yang dinamai sebagai subjek dan penulis dari relasi Buku.
4. Union Operation (∪)
Operasi Union adalah operasi untuk menghasilkan Gabungan Tabel maka dibutuhkan Sepasang atau Dua Tabel, dengan syarat kedua tabel terdapat atribut yang sama. Operasi ini memungkinkan untuk menggabungkan data dari dua baris yang sejenis dan sama halnya operasi union pada Aritmatika. Dia melakukan penyatuan biner antara dua hubungan yang diberikan dan didefinisikan sebagai :
r ∪ s = { t | t ∈ r ∨ t ∈ s}
Notasi : r U s
Di mana r dan s adalah relasi database atau himpunan hasil relasi (relasi sementara).
Agar operasi serikat menjadi valid, kondisi berikut harus memenuhi :
- r, dan s harus memiliki jumlah atribut yang sama.
- Domain atribut harus kompatibel.
- Tuple duplikat secara otomatis dihilangkan.
Contoh :
∏penulis (Buku) ∪ ∏penulis
Output : Memproyeksikan nama-nama penulis yang telah menulis buku atau artikel atau keduanya.
4. Intersection Operation (∩)
Operasi Intersection adalah operasi untuk menghasilkan Irisan Tabel maka dibutuhkan Sepasang atau Dua Tabel, dengan syarat kedua tabel terdapat atribut yang sama. Operasi ini memungkinkan untuk menyaring data dari dua baris yang sejenis dan sama halnya operasi union pada Aritmatika. Dia melakukan penyatuan biner antara dua hubungan yang diberikan dan didefinisikan sebagai :
r ∩ s = {t | t ∈ r ∧ t ∈ s}
Notasi : r ∩ s
Di mana r dan s adalah relasi database atau himpunan hasil relasi (relasi sementara).
Agar operasi serikat menjadi valid, kondisi berikut harus memenuhi :
- r, dan s harus memiliki jumlah atribut yang sama.
- Domain atribut harus kompatibel.
- Tuple duplikat secara otomatis dihilangkan.
Contoh :
∏penulis (Buku) ∩ ∏penulis
Output : Memproyeksikan nama-nama penulis yang telah menulis buku dan artikel atau keduanya.
5. Set Difference (−)
Hasil dari operasi beda Himpunan adalah Tupel, yang ada pada satu relasi tetapi tidak ada pada relasi kedua.
Notasi : r - s
Menemukan semua Tupel yang ada di r tetapi tidak di s.
∏penulis (Buku) - ∏penulis
Output : Memberikan nama penulis yang telah menulis buku tetapi bukan artikel.
5. Cartesian Product (Ī§)
Menggabungkan informasi dari dua relasi yang berbeda menjadi satu.
Notasi : r s
Dimana r dan s adalah relasi dan outputnya akan didefinisikan sebagai
r × s = {q t | q ∈ r ∧ t ∈ s}
Contoh :
Ļpenulis = "Inzaghi" (Buku × Artikel)
Output : Menghasilkan relasi, yang menampilkan semua Buku dan Artikel yang ditulis oleh Inzaghi.
6. Rename Operation (Ļ)
Hasil dari aljabar relasional juga merupakan relasi tetapi tanpa nama. Operasi rename memungkinkan kita untuk mengganti nama relasi output. Operasi 'ganti nama' dilambangkan dengan huruf Yunani kecil Ļ (Rho).
Notasi : Ļ x (E)
Dimana hasil ekspresi E disimpan dengan nama x.
Operasi tambahan adalah :
- Set intersection
- Assignment
- Natural Join
B. Contoh Soal Aljabar Relasional
1. Diberikan 2 Tabel yang bernama Mahasiswa-UKM dan Mahasiswa-Jurusan yang ada di bawah ini :
Tabel Mahasiswa-UKM :
Nama
|
UKM
|
Januar
|
Paduan Suara
|
Budi
|
Paduan Suara
|
Budi
|
Badminton
|
Wahyu
|
Badminton
|
Wahyu
|
Pecinta Alam
|
Tabel Mahasiswa-Jurusan :
Nama
|
Jurusan
|
Januar
|
Fisika
|
Budi
|
TIK
|
Wahyu
|
Kimia
|
Erni
|
Kimia
|
Apa hasil dari Aljabar Relasional berikut terhadap Database tersebut?
- ĻUKM = "Paduan Suara" (Mahasiswa-UKM)
- Ļnama = "Wahyu" (Mahasiswa-UKM)
- Ļnama = "Wahyu" (Mahasiswa-Jurusan)
- Ī jurusan (Mahasiswa-Jurusan)
- Ī nama (Mahasiswa-Jurusan) - Ī nama (Mahasiswa-UKM)
- Ī nama (Mahasiswa-Jurusan) ∩ Ī nama (Mahasiswa-UKM)
- Ļnama = "Budi" ∧ UKM = "Badminton" (Mahasiswa-UKM)
- Mahasiswa-Jurusan ⋈ Mahasiswa-UKM
Jawaban :
ĻUKM = "Paduan Suara" (Mahasiswa-UKM)
Nama
|
UKM
|
Januar
|
Paduan Suara
|
Budi
|
Paduan Suara
|
Ļnama = "Wahyu" (Mahasiswa-UKM)
Nama
|
UKM
|
Wahyu
|
Badminton
|
Wahyu
|
Pecinta Alam
|
Ļnama = "Wahyu" (Mahasiswa-Jurusan)
Nama
|
Jurusan
|
Wahyu
|
Kimia
|
Ī jurusan (Mahasiswa-Jurusan)
Jurusan
|
Fisika
|
TIK
|
Kimia
|
Kimia
|
Ī nama (Mahasiswa-Jurusan) - Ī nama (Mahasiswa-UKM)
Nama
|
Jurusan
|
Erni
|
Kimia
|
Ī nama (Mahasiswa-Jurusan) ∩ Ī nama (Mahasiswa-UKM)
Nama
|
Januar
|
Budi
|
Wahyu
|
Ļnama = "Budi" ∧ UKM = "Badminton" (Mahasiswa-UKM)
Nama
|
UKM
|
Budi
|
Badminton
|
Mahasiswa-Jurusan ⋈ Mahasiswa-UKM
Nama
|
Jurusan
|
UKM
|
Januar
|
Fisika
|
Paduan Suara
|
Budi
|
TIK
|
Badminton
|
Wahyu
|
Kimia
|
Pecinta Alam
|
2. 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
|
Tentukan Aljabar Relasional yang dipergunakan dan hasil yang akan didapat :
- Tampilkan daftar dosen yang berjenis kelamin pria dari tabel Dosen
- Tampilkan NIP dan Nama_dosen dari tabel Dosen
- Tampilkan NIP,Nama_dosen,dan kota dari tabel Dosen dan dosen-dosen yang bertempat tinggal di kota Jakarta Selatan
- Tampilkan NIP (dari relasi dosen) union dari NIP (dari tabel mengajar)
- Tampilkan NIP (dari tabel dosen) Set-Difference dari NIP (dari tabel mengajar)
- Tampilkan Kode_mk,Nama_mk,Sks (dari tabel matakuliah),Kelas (dari tabel mengajar) dimana kelas yang diajar adalah kelas A
- Tampilkan NIP (dari tabel dosen) Set Intersection dengan NIP (dari tabel mengajar)
- Tampilkan seluruh data yang ada pada tabel mengajar
Jawaban :
1.) Aljabar Relasional : Ļjenis_kelamin = "Pria" (Dosen)
NIP
|
Nama_dosen
|
Jenis_kelamin
|
Alamat
|
Kota
|
95001
|
Bambang
|
Pria
|
Jl. Mawar
|
Jakarta Selatan
|
95004
|
Dimas
|
Pria
|
Jl. Kemuning
|
Cikarang
|
2.) Aljabar Relasional : Ļjenis_kelamin = "Pria" (Dosen)
NIP
|
Nama_dosen
|
95001
|
Bambang
|
95002
|
Asri
|
95003
|
Hesti
|
95004
|
Dimas
|
3.) Aljabar Relasional : Ī NIP,Nama_dosen,kota (ĻKota = "Jakarta Selatan"
(Dosen))
NIP
|
Nama_dosen
|
Jenis_kelamin
|
Alamat
|
Kota
|
95001
|
Bambang
|
Pria
|
Jl. Mawar
|
Jakarta Selatan
|
95002
|
Asri
|
Wanita
|
Jl. Anggrek
|
Jakarta Selatan
|
4.) Aljabar Relasional : Ī NIP (Dosen) ∪ Ī NIP (Mengajar)
NIP
|
95001
|
95002
|
95003
|
95004
|
5.) Aljabar Relasional : Ī NIP (Dosen) - Ī NIP (Mengajar)
NIP
|
95001
|
6.) Aljabar Relasional : Ī Kode_mk,Nama_mk,Sks,kelas
(Ļkelas = "A"
∧
mengajar.kode_mk = matakuliah, kode_mk (mengajar × matakuliah))
Kd_mk
|
Nama_mk
|
Sks
|
Kelas
|
MPK1
|
PKN
|
2
|
A
|
MKB3
|
BDT
|
3
|
A
|
MKB4
|
ASD
|
3
|
A
|
7.) Aljabar Relasional : Ī NIP (Dosen) ∩ Ī NIP (Mengajar)
NIP
|
95002
|
95003
|
95004
|
8.) Aljabar Relasional : Matakuliah ⋈Mengajar.Kode_mk
= Matakuliah.Kode_mk
Mengajar
MKd_Mk
|
Nama_Mk
|
Sks
|
Nip
|
Kelas
|
MKB3
|
BDT
|
3
|
95002
|
A
|
MKB4
|
ASD
|
3
|
95002
|
A
|
MPK 1
|
PKN
|
2
|
95003
|
A
|
MPK1
|
PKN
|
2
|
95003
|
B
|
MKB4
|
ASD
|
3
|
95004
|
B
|
Semoga Postingan kali ini bermanfaat bagi Mahasiswa TI. Dan juga nantikan pembahasan selanjutnya tentang Normalisasi dalam Basis Data (Database).
Terima Kasih šššš :)
Wassalamu‘alaikum wr. wb.