Pemrograman Basis Data Relational Algebra (Aljabar Relasional) Teknik Informatika FIKOM Univ. Duta Bangsa Surakarta Muslim Heri K, INTRODUCE 2 3 Pengantar Al Jabar 4 ditemukan oleh Abu Abdullah Muhammad Ibn Musa alKhwarizmi. bahasa arab "al-jabr" hubungan atau penyelesaian. Aljabar dapat didefinisikan sebagai suatu cabang ilmu matematika yang mempelajari konsep atau prinsip penyederhanaan serta pemecahan masalah dengan menggunakan simbol atau huruf tertentu. Bahasa Query Bahasa yang digunakan user untuk melakukan request informasi dari basis data Kategori Bahasa : Prosedural Non-prosedural Bahasa “Murni” (“Pure” Aljabar Relasional languages) : Tuple Relational Calculus Domain Relational Calculus Pure languages membentuk dasar bahasa query yang digunakan user. Aljabar Relasional (Bahasa Prosedural) 6 Kumpulan operasi terhadap tabel, dimana setiap operasi menggunakan satu atau lebih tabel untuk menghasilkan satu tabel yang baru. Lebih bersifat operasional, sangat berguna untuk merepresentasikan eksekusi perencanaan. Masukannya >1 tabel relasi Keluarannya tabel baru Operasi dasar Aljabar Relasional 7 Operasi-operasi Dasar a) Selection b) Projection c) Union d) Set difference e) Cross Product f) Rename σ π ᴗ X ᵨ Operasi Tambahan Aljabar Relasional 8 Operasi-operasi Dasar : a) Intersection b) Natural Join c) Division ᴖ ( ) ÷ Jenis Operasi 9 Unary terdiri dari selection, projection. Disebut operasi unary, karena dapat digunakan hanya Operasi pada satu tabel. Operasi Binary terdiri dari union, intersection, set difference, cartesian product, join dan division. Disebut operasi binary, karena memerlukan sepasang tabel. Logika Penghubung 10 Unary (1 tabel) Operasi Aljabar Relasional Selection Projection Union Binary (>1 tabel) Intersction Cross Product Set defference Operasi Selection (σ) 11 Operasi yang digunakan untuk memilih subset dari tuple- tuple (record) pada suatu tabel. Notasi : σp(t) p disebut selection predicate (yang menentukan pemilihan) p merupakan formula dari kalkulus perbandingan (proportional calculus) yang berisi terms yang dihubungkan oleh : ^ (and), v (or), ~ (not) setiap term salah satu dari : <atribut> op <atribut> or <konstanta> atau <atribut> op <atribut> dengan op salah satu dari : =, ≠, >, ≥, <, ≤ Operasi Selection (lanj) 12 Contoh : tabel Siswa σprodi=“MI” (siswa) NIM Nama Prodi Smtr Kota A001 Naufal TI 2 Solo A002 Haikal TI 4 Klaten B001 Fadilla SI 6 Yogya C001 Nayla MI 2 Solo C002 Zafran MI 4 Wonogiri D001 Gibran TI 4 Solo Operasi Selection (lanj) 13 Hasilnya : suatu relasi dengan tuple-tuple yang memiliki jenis sama dengan action, yaitu prodi “MI” NIM Nama Prodi Smtr Kota C002 Nayla MI 2 Solo C002 Zafran MI 4 Wonogiri Operasi Selection (lanj) 14 Contoh lain: σprodi=“MI” v NIM Kota=“Solo”(siswa) Nama Prodi Smtr Kota A001 Naufal TI 2 Solo C001 Nayla MI 2 Solo C002 Zafran MI 4 Wonogiri D001 Gibran TI 4 Solo σprodi=“MI” NIM C001 ^ Kota=“Solo”(siswa) Nama Nayla Prodi MI Smtr Kota 2 Solo Operasi Projection (p) 15 Operasi yang digunakan untuk memilih subset (field) dari kolom-kolom pada suatu tabel Notasi : pA1,A2,…,An(t), dimana A1, A2, …, An adalah daftar nama atribut dan t adalah nama suatu tabel. Hasilnya : suatu tabel dengan atribut yang tercantum pada daftar nama atribut pada operasi. Operasi Projection (lanj) 16 Contoh : dilakukan operasi σ (pNIM, Nama, Kota(Siswa) )pada tabel Siswa sebagai berikut : NIM Nama Prodi Smtr Kota A001 Naufal TI 2 Solo A002 Haikal TI 4 Klaten B001 Fadilla SI 6 Yogya C002 Nayla MI 2 C002 Zafran MI D001 Gibran TI Hasilnya : NIM Nama Kota Solo A001 Naufal Solo 4 Wonogiri A002 Haikal Klaten 4 Solo B001 Fadilla Yogya C002 Nayla Solo C002 Zafran Wonogiri D001 Gibran Solo Contoh Operasi Projection (lanj) 17 p Nama,prodi(σ prodi=“SI”(Siswa)) Nama Fadilla Prodi SI p Nama,prodi,Kota(σ prodi=“TI” ^ Kota=“Solo” (Siswa)) Nama Prodi Kota Naufal TI Solo Gibran TI Solo Latihan Operasi Selection + Rejection 18 1. Tampilkan Nim,nama,prodi,smtr khusus untuk prodi TI atau SI yang smtr >2! 2. Tampilkan NIM,nama,prodi,Kota khusus untuk Kota Solo atau Yogya yang prodi TI NIM A001 A002 B001 C001 C002 D001 Nama Naufal Haikal Fadilla Nayla Zafran Gibran Prodi TI TI SI MI MI TI Smtr 2 4 6 2 4 4 Kota Solo Klaten Yogya Solo Wonogiri Solo Operasi Binary (lebih dari satu table) 19 NIM Nama Prodi Smtr Kota A001 Naufal TI 2 Solo A002 Haikal TI 4 Klaten B001 Fadilla SI 6 Yogya C001 Nayla MI 2 Solo C002 Zafran MI 4 Wonogiri D001 Gibran TI 4 Solo NIM Kd_mk Nilai A001 M001 A A001 M005 C A001 M003 A A002 M001 B A002 M003 B B001 M002 C Smtr B001 M003 B Kd_mk Nm_matkul SKS M001 Bhs. Inggris 2 2 C002 M002 B M002 Simbada 3 4 C002 M003 A M003 Algorithma 3 6 C002 M001 A M004 Akuntansi 2 2 D001 M001 C M005 Jarkom 1 3 4 Operasi Union/Gabungan () 20 Operasi yang digunakan untuk menggabungkan hasil dari beberapa query. Notasi : r s, menghasilkan suatu tabel baru yang elemen barisnya merupakan elemen dari r dan s, tidak ada duplikasi data. Untuk r s harus valid : r, s harus memiliki jumlah atribut yang sama. Operasi Union/Gabungan (lanj) 21 tabel r tabel s A B C A B C aa 1 7 aa 5 7 bb 5 7 cc 4 4 bb 12 7 dd 10 7 dd 23 10 aa 6 10 pA(r) pA(s) A aa bb dd cc Contoh Operasi Union () 22 pNIM(siswa) pNIM (krs) p kd_mk(matkul) p kd_mk (krs) NIM Kd_mk A001 M001 A002 M005 B001 M003 C002 M002 D001 M004 C001 Operasi Intersection/Irisan () 23 r s, menghasilkan suatu tabel baru dengan elemen barisnya merupakan elemen yang terdapat pada tabel r dan elemen tersebut juga terdapat pada tabel s, tidak ada duplikasi data. r dan s harus memiliki jumlah atribut yang Notasi : sama. tabel r tabel s A B a 1 a 2 b 1 rs A B a 2 b 3 A B a 2 Contoh Operasi Intersection () 24 pNIM(siswa) pNIM (krs) p kd_mk(matkul) p kd_mk (krs) NIM A001 A002 Kd_mk M001 B001 M005 C002 M003 D001 M002 Operasi Set Difference (–) 25 r – s, hasilnya tabel yang elemen barisnya terdapat pada r tetapi tidak terdapat di s. r dan s Notasi harus memiliki jumlah atribut yang sama. tabel r tabel s A B C A B C aa 1 7 aa 5 7 bb 5 7 cc 4 4 bb 12 7 dd 10 7 dd 23 10 aa 6 10 pA(r) - pA(s) A bb Contoh Operasi Set Difference (-) 26 pNIM(siswa) - pNIM (krs) Menampilkan data siswa yg tidak terdapat pada tabel KRS p kd_mk(matkul) - p kd_mk (krs) Menampilkan data matkul yg tidak terdapat pada tabel KRS NIM C001 Kd_mk M004 Operasi Cross/Cartesian-Product (X) 27 r x s, menghasilkan semua kombinasi baris/tuple dari 2 buah tabel, yaitu tabel r dan s. Jumlah atribut tidak harus sama. Notasi Mendapatkan record yang terdapat dalam relasi 1, tapi tidak terdapat pada relas 2 Contoh : tabel r : tabel s : A B a 1 b 3 maka r x s : A B C D a 1 a 6 a 1 b 5 a 1 c 12 b 3 a 6 C D b 3 b 5 a 6 b 3 c 12 b 5 c 12 Contoh1 Operasi Cross/Cartesian-Product (X) 28 Biasanya diikuti operasi lainnya Menampilkan NIM, Nama, Prodi (tabel Siswa), kd_mk,Nilai(tabel KRS) khusus yang nilai A pNIM,Nama,Prodi,kd_mk,nilai(σ nilai=“A” ^ KRS.NIM=siswa.NIM(KRS x Siswa)) NIM A001 A001 C002 C002 Nama Naufal Naufal Zafran Zafran Prodi Kd_mk M001 TI M003 TI M003 MI M001 MI Nilai A A A A Contoh2 Operasi Cartesin/Cross-Product (X) 29 Menampilkan kd_mk,nilai(tabel KRS),NIM,nama(tabel Siswa), khusus yang Nim-nya A001 pNIM,Nama,kd_mk,nilai, (σ NIM=“A001” ^ krs.NIM=siswa.NIM(krs x siswa)) NIM ATAU Nama Kd_mk Nilai A001 Naufal M001 A A001 Naufal M005 C A001 Naufal M003 A σ NIM=“A001” ^ krs.NIM=siswa.NIM((pNIM,Nama(siswa) x pkd_mk,nilai(krs)) Latihan Cross-Product 30 Dari ke3 tabel di atas, tuliskan aljabar relasional utk: 1. Tampilkan kd_mk,nim,nilai (tabel krs), nm_mk,smtr(tabel matkul) khusus yang smtr-nya 4! 2. Tampilkan kd_mk,nim,nilai (tabel krs), nm_mk,sks(tabel matkul) khusus yang NIM-nya ”A001”!