16/12/2010 ALJABAR RELASIONAL – JOIN (Pert. 11) Oleh : Umi Laili Yuhana, S.Kom, M.Sc. Sarwosri, S.Kom, M.T. Dr. Ir. Siti Rochimah BASIS DATA JURUSAN TEKNIK INFORMATIKA - ITS GASAL 2010/2011 1 Agenda • Review • Pembahasan Latihan Aljabar Relasional • Join – Join Condition – Equijoin – Natural Join BASIS DATA JURUSAN TEKNIK INFORMATIKA - ITS GASAL 2010/2011 2 1 16/12/2010 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 BASIS DATA JURUSAN TEKNIK INFORMATIKA - ITS GASAL 2010/2011 4 2 16/12/2010 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 BASIS DATA JURUSAN TEKNIK 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 BASIS DATA JURUSAN TEKNIK INFORMATIKA - ITS GASAL 2010/2011 6 3 16/12/2010 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 BASIS DATA JURUSAN TEKNIK INFORMATIKA - ITS GASAL 2010/2011 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 BASIS DATA JURUSAN TEKNIK INFORMATIKA - ITS GASAL 2010/2011 8 4 16/12/2010 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) BASIS DATA JURUSAN TEKNIK INFORMATIKA - ITS GASAL 2010/2011 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) BASIS DATA JURUSAN TEKNIK INFORMATIKA - ITS GASAL 2010/2011 10 5 16/12/2010 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) BASIS DATA JURUSAN TEKNIK INFORMATIKA - ITS GASAL 2010/2011 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) BASIS DATA JURUSAN TEKNIK INFORMATIKA - ITS GASAL 2010/2011 12 6 16/12/2010 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) BASIS DATA JURUSAN TEKNIK INFORMATIKA - ITS GASAL 2010/2011 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) BASIS DATA JURUSAN TEKNIK INFORMATIKA - ITS GASAL 2010/2011 14 7 16/12/2010 7. Dapatkan nama proyek yang berlokasi di houston atau di stafford Temp1 PLokasi=‘Houston’ OR Plokasi=‘Stafford’(Proyek) Hasil PNama, PLokasi(Temp1) BASIS DATA JURUSAN TEKNIK INFORMATIKA - ITS GASAL 2010/2011 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) BASIS DATA JURUSAN TEKNIK INFORMATIKA - ITS GASAL 2010/2011 16 8 16/12/2010 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) BASIS DATA JURUSAN TEKNIK INFORMATIKA - ITS GASAL 2010/2011 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) BASIS DATA JURUSAN TEKNIK INFORMATIKA - ITS GASAL 2010/2011 18 9 16/12/2010 • 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 BASIS DATA JURUSAN TEKNIK INFORMATIKA - ITS GASAL 2010/2011 19 BASIS DATA JURUSAN TEKNIK INFORMATIKA - ITS GASAL 2010/2011 20 JOIN 10 16/12/2010 Join • Digunakan untuk mengkombinasikan baris-baris yang berhubungan dari dua relasi menjadi baris-baris tunggal • Terdiri dari: – Condition Join – Equijoin – Natural Join BASIS DATA JURUSAN TEKNIK INFORMATIKA - ITS GASAL 2010/2011 21 Condition Join - Didefinisikan sebagai cartesian product atau cross-product yang diikuti oleh operasi select R ⋈c S = σc(R S) (⋈ disebut sebagai bow-tie) dimana c adalah kondisi - Contoh: Misalnya ada relasi S1 and R1 Condition join S ⋈S1.sid<R1.sid R1 menghasilkan 11 16/12/2010 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 16/12/2010 13 16/12/2010 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 BASIS DATA JURUSAN TEKNIK INFORMATIKA - ITS GASAL 2010/2011 27 TUGAS TAKE HOME • Kerjakan soal latihan (no 2 sd no 10) diatas dengan menggunakan join jika bisa BASIS DATA JURUSAN TEKNIK INFORMATIKA - ITS GASAL 2010/2011 28 14 16/12/2010 Pustaka • Ramakrishnan, Raghu, Gehrke, Johannes. 2003. Database Management Systems, Third Edition. New York: The McGraw-Hill Companies, Inc. “Chapter 4 Relational Algebra and Calculus” BASIS DATA JURUSAN TEKNIK INFORMATIKA - ITS GASAL 2010/2011 29 15