Join adalah penggabungan table yang
dilakukan melalui kolom / key tertentu yang memiliki nilai terkait atau berelasi, untuk
mendapatkan satu set data dengan informasi lengkap. Lengkap disini artinya
kolom data didapatkan dari kolom-kolom hasil join antar table tersebut.
Join diperlukan karena perancangan table pada sistem
transaksional kebanyakan telah melakukan normalisasi, salah satu alasannya
untuk menghindari redundansi.
Operator Relasi
Bahasa query formal basis data
relasional adalah bahasa untuk meminta informasi dari basis data. Sebelum basis
data relasional, query terhadap basis data merupakan tugas yang sangat sukar.
Pemogram harus berususan dengan skema fisik internal dari basis data.
Bahasa query relasional misalkan SQL (sructured query language) berbeda dengan
bahasa pemrograman konvensional. Di SQL, kita menspesifikasikan properti –
properti informasi yang hendak diambil tapi tidak mencantumkan rincian algoritma
pengambilan. SQL adalah deklaratif, yaitu pada query dideklarasikan informasi
yang merupakan jawaban yang dikehendaki bukan cara komputasi.
Query kompleks yag diperlukan
pada kebanyakan aplikasi nyata memerlukan pengetahuan mendalam mengenai bahasa
da semantiknya. Bahasa query relasional formal merupakan bahasa antara yang
digunakan basis data, yaitu SQL dikonversi menjadi bahasa rlasional formal
sehingga dapat diterapkan sekumpulan informasi untuk memperoleh query paling
efisien Terdapat dua jenis bahasa query relasional formal yang utama, yaitu:
1.Relasi Aljabar
1.1. Relasi Aljabar
Relasi
aljabar merupakan kumpulan relasi terhadap operasi dimana setiap operasi
menggunakan satu atau lebih relasi untuk menghasilkan satu relasi yang baru dan
termasuk kategori prosedural dan juga menyediakan seperangkat operator untuk
manipulasi data. Kode mendefenisikan operator relasi terdiri dari delapan
operator, dimana dibagi menjadi dua kelompok sebagai berikut:
1.Operasi Tradisional, terdiri
dari Union, Intersection, Difference, dan Cartesian Product.
2.Operasi rasional khusus,
terdiri dari Restrict, Project, Join, dan Devide.
Untuk kedelapan operator diatas,
akan diuraikan secara detail sebagai berikut:
1.1.1
Operasi Union
Notasi : r s, dimana r s ={t|t atau t s}, yaitu
berupa relasi yang anggota-anggotanya adalah tuple-tuple yang bersal dari r
atau s. bila ada yang terduplikasi, cukup satu saja yang di pertahankan.
Syarat operasi dapat dilangsungkan,
1.r dan s harus
memiliki cacah kolom (arity) yang sama
2.masing-masing
kolom dari kedua relasi harus kompatibel, artinya nilai-nilai didalamnya harus
berasal dari domain yang sama.
Contoh operasi union:
Diberikan relasi (tabel) A
S SNAME STATUS CITY
S2 Aris 20 Semarang
S4 Eko 20 Semarang
Relasi (tabel) B
S SNAME STATUS CITY
S1 Aris 20 Semarang
S2 Heni 10 jakarta
Maka A B adalah menghasilkan
relasi baru:
S SNAME STATUS CITY
S1 Aris 20 Semarang
S4 Heni 10 Jakarta
1.1.2
Operasi Set Intersectionnection
Notasi : r s , dimana r s ={t|t r atau t s},
yaitu berupa relasi yang anggota-anggotanya adalah tuple-tuple yang ada dalam r
da nada dalam s.
Syarat operasi dapat dilangsungkan
1.r dan s
harus memiliki cacah kolom (arity) yang sama
2.masing-masing
kolom dari kedua relasi harus kompatibel,artinya nilai-nilai didalamnya harus
berasal dari domain yang sama.
1.1.3 Operasi Difference (Minus)
Notasi : r-s, dimana r-s = {t|t r atau t s},
yaitu berupa relasi yang anggota-anggotanya anggotanya adalah tuple-tuple yang
ada dalam r da nada dalam s.
Syarat operasi dapat dilangsungkan
1.r dan s
harus memiliki cacah kolom (arity) yang sama
2.masing-masing
kolom dari kedua relasi harus kompatibel,artinya nilai-nilai didalamnya harus
berasal dari domain yang sama.
1.1.4 Operasi Cartesian Product
(x/Times)
Notasi: rxs, dimana rxs = {pq|p
r dan q s}, yaitu hasilnya berupa relasi/ table yang di peroleh dengan
memasangkan setiap tuple pada relasi pertama dengan setiap tuple pada relasi
kedua. Banyaknya kolom sama dengan jumlah kolom kedua relasi/table banyaknya
baris /record sama dengan perkalian banyaknya record pada relasi pertama dan
record pada relasi kedua.
1.1.5 Operasi Restriction
(/Select)
Adalah operasi untuk menyeleksi
tupel-tupel yang memenuhi suatu predikat, kita dapat menggunakan operator
perbandingan (<,>,>=,<=,=,#) pada predikat. Beberapa predikat dapat
dikombinasikan menjasdi predikat majemuk menggunaka penghubung AND (^) dan
OR(v).
1.1.6 Operasi Projection ( )
Untuk mengambil kolom-kolom tertentu dari suatu
relasi/table
Notasi : daftar atribut (r) dimana daftar
atribut adalah atribut-atribut yang ada pada relasi/table r yang akan
ditampilkan
Hasil operasi berupa kolom-kolom yang ada pada r
dengan menghilangkan semua kolom yang tidak ada dalam daftar atribut
Bila ada baris yang sama (terduplikasi), cukup
dituliskan sekali (hilangkan sisanya).
1.1.7 Natural Join (JOIN)
Adalah operasi untuk
menggabungkan operasi selection dan Cartesian-product denhan suatu kriteria
pada kolom yang sama.
Contoh operasi Join:
Conditional join adalah join
yang berdasar pada kriteria tertentu berupa persamaan nilai atribut. Inner join
adalah join yang berdasar pada kriteria tertentu berupa persamaan nilai
atribut. Natural join adalah operasi inner join yang dilakukan pada semua
atribut yang sama dari kedua relasi ( nama dan domainnya). Pada table/relasi
hasil, kolom-kolom yang sama hanya muncul sekali.