DBMS - Bergabung
Kami memahami manfaat mengambil produk Cartesian dari dua relasi, yang memberi kita semua kemungkinan tupel yang dipasangkan bersama. Tetapi mungkin tidak layak bagi kami dalam kasus tertentu untuk mengambil produk Cartesian di mana kami menemukan hubungan besar dengan ribuan tupel yang memiliki sejumlah besar atribut.
Joinadalah kombinasi dari produk Cartesian yang diikuti dengan proses seleksi. Operasi gabungan memasangkan dua tupel dari relasi berbeda, jika dan hanya jika kondisi gabungan tertentu terpenuhi.
Kami akan menjelaskan secara singkat berbagai jenis gabungan di bagian berikut.
Theta (θ) Gabung
Gabung theta menggabungkan tupel dari relasi yang berbeda asalkan memenuhi kondisi theta. Kondisi gabungan dilambangkan dengan simbolθ.
Notasi
R1 ⋈θ R2
R1 dan R2 adalah relasi yang memiliki atribut (A1, A2, .., An) dan (B1, B2, .., Bn) sehingga atribut tersebut tidak memiliki kesamaan, yaitu R1 ∩ R2 = Φ.
Gabungan Theta dapat menggunakan semua jenis operator perbandingan.
Siswa | ||
---|---|---|
SID | Nama | Std |
101 | Alex | 10 |
102 | Maria | 11 |
Subjek | |
---|---|
Kelas | Subyek |
10 | Matematika |
10 | Inggris |
11 | Musik |
11 | Olahraga |
Student_Detail -
STUDENT ⋈Student.Std = Subject.Class SUBJECT
Student_detail | ||||
---|---|---|---|---|
SID | Nama | Std | Kelas | Subyek |
101 | Alex | 10 | 10 | Matematika |
101 | Alex | 10 | 10 | Inggris |
102 | Maria | 11 | 11 | Musik |
102 | Maria | 11 | 11 | Olahraga |
Equijoin
Saat Theta bergabung hanya menggunakan equalityoperator perbandingan, dikatakan equijoin. Contoh di atas sesuai dengan equijoin.
Bergabung Alami ( ⋈ )
Gabungan alami tidak menggunakan operator perbandingan apa pun. Ini tidak menggabungkan seperti yang dilakukan produk Cartesian. Kita dapat melakukan Natural Join hanya jika ada setidaknya satu atribut umum yang ada di antara dua relasi. Selain itu, atribut harus memiliki nama dan domain yang sama.
Gabungan alami bekerja pada atribut yang cocok di mana nilai atribut di kedua relasinya sama.
Kursus | ||
---|---|---|
CID | Kursus | Dept |
CS01 | Database | CS |
ME01 | Mekanika | SAYA |
EE01 | Elektronik | EE |
HoD | |
---|---|
Dept | Kepala |
CS | Alex |
SAYA | Maya |
EE | Mira |
Kursus ⋈ HoD | |||
---|---|---|---|
Dept | CID | Kursus | Kepala |
CS | CS01 | Database | Alex |
SAYA | ME01 | Mekanika | Maya |
EE | EE01 | Elektronik | Mira |
Gabungan Luar
Gabungan Theta, Equijoin, dan Gabungan Alami disebut gabungan dalam. Gabungan dalam hanya menyertakan tupel dengan atribut yang cocok dan sisanya dibuang dalam relasi yang dihasilkan. Oleh karena itu, kita perlu menggunakan gabungan luar untuk memasukkan semua tupel dari relasi yang berpartisipasi dalam relasi yang dihasilkan. Ada tiga jenis gabungan luar - gabungan luar kiri, gabungan luar kanan, dan gabungan luar penuh.
Gabungan Luar Kiri (R
S)
Semua tupel dari relasi Left, R, termasuk dalam relasi yang dihasilkan. Jika ada tupel di R tanpa tupel yang cocok di relasi Right S, maka atribut S dari relasi yang dihasilkan dibuat NULL.
Kiri | |
---|---|
SEBUAH | B |
100 | Database |
101 | Mekanika |
102 | Elektronik |
Baik | |
---|---|
SEBUAH | B |
100 | Alex |
102 | Maya |
104 | Mira |
Kursus
|
|||
---|---|---|---|
SEBUAH | B | C | D |
100 | Database | 100 | Alex |
101 | Mekanika | --- | --- |
102 | Elektronik | 102 | Maya |
Gabungan Luar Kanan: (R
S)
Semua tupel dari relasi Right, S, termasuk dalam relasi yang dihasilkan. Jika ada tupel di S tanpa tupel yang cocok di R, maka atribut R dari relasi yang dihasilkan dibuat NULL.
Kursus
|
|||
---|---|---|---|
SEBUAH | B | C | D |
100 | Database | 100 | Alex |
102 | Elektronik | 102 | Maya |
--- | --- | 104 | Mira |
Gabungan Luar Penuh: (R
S)
Semua tupel dari kedua relasi yang berpartisipasi termasuk dalam relasi yang dihasilkan. Jika tidak ada tupel yang cocok untuk kedua relasi, atribut masing-masing yang tidak cocok dibuat NULL.
Kursus
|
|||
---|---|---|---|
SEBUAH | B | C | D |
100 | Database | 100 | Alex |
101 | Mekanika | --- | --- |
102 | Elektronik | 102 | Maya |
--- | --- | 104 | Mira |