ALJABAR RELASIONAL JOIN (Pert. 11) Oleh : Umi Laili Yuhana, S.Kom, M.Sc. Sarwosri, S.Kom, M.T. Dr. Ir. Siti Rochimah INFORMATIKA - ITS GASAL 2010/2011 1 Agenda Review Pembahasan Latihan Aljabar Relasional Join Join Condition Equijoin Natural Join 2 1
Operasi dalam Aljabar Relasional Operasi dalam aljabar relasional secara umum dibagi menjadi 2: Operasi yang dikembangkan secara khusus untuk database relational. (SELECT, PROJECT dan JOIN) Operasi himpunan (UNION, INTERSECTION, DIFFERENCE, dan CARTESIAN PRODUCT) Review Basis Data Teknik Informatika FTIf - ITS Operasi select ( ): untuk memilih baris tertentu dari sebuah himpunan baris data (record) yang memenuhi kondisi dan membuang baris yang lain Contoh: DNO=4 (PEGAWAI) Operasi Project( ): untuk memilih attribut (kolom) tertentu dari himpunan / sub himpunan dan membuang yang lain Contoh: JenisKel, Gaji (Pegawai) Review 4 2
DIAGRAM SKEMA : SKEMA DATABASE RELASIONAL PERUSAHAAN PEGAWAI NmDepan Inisial NmBelakang NoKTP Alamat Gaji JenisKelamin NoKTPKepala DNO DEPARTEMEN Dname Dnomor NOKTP_MGR TglMulai_MGR LOKASI_DEPARTEMEN Dnomor Dlokasi PROYEK Pnama Pnomor Plokasi Dnum BEKERJA_PADA NoKTP Pnomor LamaJam TANGGUNGAN NoKTP Nama_Tanggungan JenisKelamin TglLahir Hubungan INFORMATIKA - ITS GASAL 2010/2011 5 LATIHAN Tuliskan aljabar relasional beserta hasil-hasil dari soal berikut 1. Dapatkan nama, alamat dan gaji pegawai yang berada pada departemen research 2. Dapatkan nama, alamat dan no KTP pegawai yang menjadi menjadi supervisor dari pegawai lain 3. Dapatkan nama dan noktp pegawai beserta nama dan noktp supervisornya 4. dapatkan nama, alamat dan NoKTP dari pegawai yang menjadi manajer departemen 4 6 3
LATIHAN Tuliskan aljabar relasional beserta hasil-hasil dari soal berikut 5. Dapatkan nama, alamat beserta nama proyek dari pegawai yang terlibat di proyek ProductZ 6. Dapatkan nama proyek yang dikedalikan oleh departemen research 7. Dapatkan nama proyek yang berlokasi di houston atau di stafford 8. Dapatkan nama dan lokasi proyek tempat john bekerja 7 LATIHAN Tuliskan aljabar relasional beserta hasil-hasil dari soal berikut 9. Dapatkan nama dan alamat pegawai laki-laki yang memiliki gaji kurang dari 40000 10. Dapatkan nama dan gaji dari manajer departemen Administration 8 4
LATIHAN Tuliskan aljabar relasional beserta hasil-hasil dari soal berikut 1. Dapatkan nama, alamat dan gaji pegawai yang berada pada departemen research DeptResearch Dname= research (Departemen) PegDept DeptResearch x Pegawai PegRes Dnomor=DNO (PegDept) Hasil NmDepan, Alamat, Gaji (PegRes) 9 2. Dapatkan nama, alamat dan no KTP pegawai yang menjadi supervisor dari pegawai lain KTPSupervisor NoKTPKepala (Pegawai) Temp1 KTPSupervisor x Pegawai Temp2 NoKTPKepala=NoKTP (Temp1) Hasil NmDepan, Alamat, NoKTPKepala (Temp2) 10 5
3. Dapatkan nama dan noktp pegawai beserta nama dan noktp supervisornya Temp1 (NAMAPEG, KTPPEG, NOKTPKEPALA) NmDepan, NoKTP, NoKTPKepala (Pegawai) Temp2 (NAMASUPER, NoKTP) NmDepan, NoKTP (Pegawai) Temp3 Temp1 x Temp2 Temp4 NoKTPKepala=NoKTP (Temp3) Hasil NamaPeg, KTPPeg, NamaSuper, NoKTPKepala (Temp4) 11 4. dapatkan nama, alamat dan NoKTP dari pegawai yang menjadi manajer departemen 4 Manajer4 Dnomor=4 (Departemen) PegMjr4 Manajer4 x Pegawai PegRes NoKTP_MGR=NoKTP (PegMjr4) Hasil NmDepan, Alamat, NoKTP (PegRes) 12 6
5. Dapatkan nama, alamat beserta nama proyek dari pegawai yang terlibat di proyek ProductZ Temp1(NMPRO, NOPRO, LOKASI, DNUM) PNama= ProductZ (Proyek) Temp2 Temp1 x Bekerja_Pada Temp3 NoPro=PNomor (Temp2) Temp4 (NMPRO, NOPRO, KTPPEG) NmPro, NoPro, NoKTP (Temp3) Temp5 Temp4 x Pegawai Temp6 NoKTP=KTPPeg (Temp5) Hasil NmDepan, Alamat, NmPro (Temp6) 13 6. Dapatkan nama proyek yang dikendalikan oleh departemen research Temp1 DNama= Research (Departemen) Temp2 Temp1 x Proyek Temp3 Dnomor=DNum (Temp2) Hasil PNama, DNama (Temp3) 14 7
7. Dapatkan nama proyek yang berlokasi di houston atau di stafford Temp1 PLokasi= Houston OR Plokasi= Stafford (Proyek) Hasil PNama, PLokasi (Temp1) 15 8. Dapatkan nama dan lokasi proyek tempat john bekerja Temp1 NmDepan= John (Pegawai) Temp2 (NMDEPAN, NOKTPJOHN) Temp1 x Bekerja_Pada Temp3 NoKTP=NoKTPJohn (Temp2) Temp4 (NMDEPAN, NOKTPJOHN, NOMORPROYEK) NmDepan, NoKTPJohn, PNomor (Temp3) Temp5 Temp4 x Proyek Temp6 NPNomor=NomorProyek (Temp5) Hasil NmDepan, PLokasi (Temp6) 16 8
9. Dapatkan nama dan alamat pegawai laki-laki yang memiliki gaji kurang dari 40000 Temp1 JenisKelamin= L AND Gaji < 40000 (Pegawai) Hasil NmDepan, Alamat (Temp1) 17 10. Dapatkan nama dan gaji dari manajer departemen Administration Temp1 NoKTP_MGR ( DNama= Administrasi (Departemen)) Temp2 Temp1 x PEGAWAI Temp3 NoKTP=NoKTP_MGR (Temp2) Hasil NmDepan, Gaji (Temp3) 18 9
CARTESIAN PRODUCT R X S Relasi yang terdiri dari kombinasi baris yang terdapat di R dan S. Yang mana setiap baris di R digabungkan dengan setiap baris di S. Contoh: TG_PEG NAM_PEG_WAN X TANGGUNGAN Review 19 JOIN 20 10
Join Digunakan untuk mengkombinasikan baris-baris yang berhubungan dari dua relasi menjadi baris-baris tunggal Terdiri dari: Condition Join Equijoin Natural Join 21 Condition Join - Didefinisikan sebagai cartesian product atau cross-product yang diikuti oleh operasi select R c S = σ c (R S) dimana c adalah kondisi - Contoh: Misalnya ada relasi S1 and R1 ( disebut sebagai bow-tie) Condition join S S1.sid<R1.sid R1 menghasilkan 11
Equijoin: Special case of the condition join where the join condition consists solely of equalities between two fields in R and S connected by the logical AND operator ( ). Dengan kata lain, equijoin adalah Condition Join yang operator pembandingannya berupa =, disebut dengan Equivalent Join (Equijoin) Contoh: Relasi S1 dan R1 Operator S1 R.sid=Ssid R1 menghasilkan Natural Join Yakni operasi equijoin yang mana pasangan attribut-attribut yang di join kan memiliki nama yang sama. Jika tidak sama, perlu dilakukan pengubahan nama attribut (rename) terlebih dahulu. Nama yang sama hanya ditulis satu kali Notasi: R *(<list 1>),(<list 2>) S List 1 adalah attribut-attribut R dan list 2 adalah attribut-attribut S. List 1 dan list 2 membentuk pembandingan equality dari pasangan attribut yang memiliki nama yang sama, yang mana semua pembandingan tersebut di AND kan. Misal: DEPT (DNum, Dnama, NoKTP_MGR, TglMulai_MGR) (DEPARTEMEN) PROY_DEPT PROYEK * DEPT Basis Data Teknik Informatika FTIf - ITS 12
13
Contoh 1. Dapatkan nama, alamat dan gaji pegawai yang berada pada departemen research DeptResearch Dname= research (Departemen) PegRes DeptResearch Dnomor=DNO Pegawai Hasil NmDepan, Alamat, Gaji (PegRes) PegDept DeptResearch x Pegawai PegRes Dnomor=DNO (PegDept) PegRes DeptResearch Dnomor=DNO Pegawai 27 TUGAS TAKE HOME Kerjakan soal latihan (no 2 sd no 10) diatas dengan menggunakan join jika bisa 28 14
Pustaka Ramakrishnan, Raghu, Gehrke, Johannes. 2003. Database Management Systems, Third Edition. New York: The McGraw-Hill Companies, Inc. Chapter 4 Relational Algebra and Calculus INFORMATIKA - ITS GASAL 2010/2011 29 15