Thursday, 8 March 2012

Database: Join Operation

DISCLAIMERHal2 yang saya posting dibawah ini berdasarkan apa yang saya baca di textbook database saya, untuk benar atau salahnya saya tidak tahu. Yang saya posting disini ini cuman ringkasan dari bahasa ilmiah yang saya lihat dibuku untuk mempermudah pembelajaran db. Jadi kalau nilai tugas anda jelek gara2 nyontek post saya, jangan salahin saya :P


Operasi join itu ada berbagai macam jenisnya antara lain:
- Theta Join
- Equijoin
- Natural Join
- Outer Join
- Semijoin

untuk deskripsinya masing-masing saya pake bahasa awam aja biar gampang dimengerti, dan ini jg biar gak ribet-ribet banget ngejelasinnya soalnya rata-rata di web sana penjelasannya ngejelimet, jadi kalo dibawah ada salah bahasa atau salah artinya mohon dikoreksi juga yah :D

Theta Join
 menurut yang tadi saya pelajari sih kayak fungsi kartesian biasa dimana ada kondisi seperti berikut R   S, jadi kayak penggabungan 2 tabel dengan kondisi tertentu
contoh:
Students                                              Courses
stud#                name   course              course#            name
100                  Fred     PH                   PH                   Pharmacy
200                  Dave    CM                  CM                  Computing
300                  Bob     CM

Students stud# = 200  Courses
stud#                Students.name course  course#            Courses.name
200                  Dave                CM      PH                   Pharmacy
200                  Dave                CM      CM                  Computing
Equijoin
Kurang lebih operasi join sederhana dimana primary key a = foreign key b, diinget aja sih kalo Equijoin(inget kata equivalen) disini pake operator = (equal to)
Contohnya:
Students                                                              Courses
stud#    name   course                          course#            name
100                  Fred     PH                   PH                   Pharmacy
200                  Dave    CM                  CM                  Computing
300                  Bob     CM
Students course = course#  Courses
stud#    Students.name             course  course#                        Courses.name
100                  Fred                 PH       PH                   Pharmacy
200                  Dave                CM      CM                  Computing
300                  Bob                 CM      CM                  Computing


Operasi join itu ada berbagai macam jenisnya antara lain:
- Theta Join
- Equijoin
- Natural Join
- Outer Join
- Semijoin

untuk deskripsinya masing-masing saya pake bahasa awam aja biar gampang dimengerti, dan ini jg biar gak ribet-ribet banget ngejelasinnya soalnya rata-rata di web sana penjelasannya ngejelimet, jadi kalo dibawah ada salah bahasa atau salah artinya mohon dikoreksi juga yah :D

Theta Join
 menurut yang tadi saya pelajari sih kayak fungsi kartesian biasa dimana ada kondisi seperti berikut R   S, jadi kayak penggabungan 2 tabel dengan kondisi tertentu
contoh:
Students                                              Courses
stud#                name   course              course#            name
100                  Fred     PH                   PH                   Pharmacy
200                  Dave    CM                  CM                  Computing
300                  Bob     CM

Students stud# = 200  Courses
stud#                Students.name course  course#            Courses.name
200                  Dave                CM      PH                   Pharmacy
200                  Dave                CM      CM                  Computing
Equijoin
Kurang lebih operasi join sederhana dimana primary key a = foreign key b, diinget aja sih kalo Equijoin(inget kata equivalen) disini pake operator = (equal to)
Contohnya:
Students                                               Courses
stud#    name   course                          course#            name
100                  Fred     PH                   PH                   Pharmacy
200                  Dave    CM                  CM                  Computing
300                  Bob     CM
Students course = course#  Courses
stud#    Students.name             course  course#                        Courses.name
100                  Fred                 PH       PH                   Pharmacy
200                  Dave                CM      CM                  Computing
300                  Bob                 CM      CM                  Computing

Natural Join
Kalo natural join ini sih kayak equijoin, minus redundansi data, dimana kalo di equijoin kalo kita liat dari contoh diatas coursenya sampe ada 2x, kalo di natural join hal ini gk terjadi
Contoh:
R1= Students   Courses
R2= p < stud#, Students.name, course, Courses.name > R1

stud#                Students.name course              Courses.name
100                  Fred                 PH                   Pharmacy
200                  Dave                CM                  Computing
300                  Bob                  CM                  Computing

 Outer Join
kayak inner join(equijoin) plus satu row table yang tidak memenuhi kondisi. Outer Join ini ada dua jenis satu yang left outer join, satu lagi right outer join. Kurang lebih sih bedanya cuman padding di row kiri dan kanan yang gak memenuhi kondisi tertentu diisi dengan NULL, jelasnya sih liat contoh sbb:

Left Outer Join
Students                                               Courses
stud#                name    course              course#                        name
100                  Fred     PH                   PH                   Pharmacy
200                  Dave    CM                  CM                  Computing
400                              Peter    EN                   CH                   Chemistry

Students    Courses

stud#    Students.name course              course#                        Courses.name
100                  Fred                 PH                   PH                   Pharmacy
200                  Dave                CM                  CM                  Computing
400                  Peter                EN                   NULL              NULL 


Right Outer Join 
Students      Courses
stud#    Students.name course  course#                        Courses.name
100                     Fred              PH       PH                   Pharmacy
200                     Dave             CM      CM                  Computing
NULL               NULL             NULL  CH                   Chemistry

Semijoin
Semijoin itu kurang lebih sama kayak natural join dan ditulis sebagai  R \ltimes S dimana R dan S berelasi. Hasil dari semijoin ini adalah semua tuple di R yang di tuple S memiliki attribut nama yg sama, mungkin agak gk jelas sih, jadi mending langsung liat contohnya
Employee
Name
EmpId
DeptName
Harry
3415
Finance
Sally
2241
Sales
George
3401
Finance
Harriet
2202
Production
Dept
DeptName
Manager
Sales
Bob
Sales
Thomas
Production
Katie
Production
Mark
Employee \ltimesDept
Name
EmpId
DeptName
Sally
2241
Sales
Harriet
2202
Production













No comments: