DBMS - เข้าร่วม
เราเข้าใจถึงประโยชน์ของการใช้ผลิตภัณฑ์คาร์ทีเซียนของความสัมพันธ์สองแบบซึ่งทำให้เรามีสิ่งที่เป็นไปได้ทั้งหมดที่จับคู่กัน แต่อาจเป็นไปไม่ได้สำหรับเราในบางกรณีที่จะใช้ผลิตภัณฑ์คาร์ทีเซียนที่เราพบกับความสัมพันธ์อันยิ่งใหญ่กับสิ่งทูปเปิลหลายพันรายการที่มีคุณลักษณะจำนวนมาก
Joinคือการผสมผสานระหว่างผลิตภัณฑ์คาร์ทีเซียนตามด้วยกระบวนการคัดเลือก การดำเนินการเข้าร่วมจะจับคู่สิ่งสองสิ่งจากความสัมพันธ์ที่แตกต่างกันถ้าเป็นไปตามเงื่อนไขการเข้าร่วมที่กำหนดเท่านั้น
เราจะอธิบายสั้น ๆ เกี่ยวกับการเข้าร่วมประเภทต่างๆในส่วนต่อไปนี้
Theta (θ) เข้าร่วม
การเข้าร่วม Theta จะรวมสิ่งที่รวมเข้าด้วยกันจากความสัมพันธ์ที่แตกต่างกันหากพวกเขาตอบสนองเงื่อนไข theta เงื่อนไขการเข้าร่วมแสดงโดยสัญลักษณ์θ.
สัญกรณ์
R1 ⋈θ R2
R1 และ R2 เป็นความสัมพันธ์ที่มีแอตทริบิวต์ (A1, A2, .. , An) และ (B1, B2, .. , Bn) ซึ่งแอตทริบิวต์นั้นไม่มีอะไรเหมือนกันนั่นคือ R1 ∩ R2 = Φ
Theta join สามารถใช้ตัวดำเนินการเปรียบเทียบได้ทุกชนิด
| นักศึกษา | ||
|---|---|---|
| SID | ชื่อ | มาตรฐาน |
| 101 | อเล็กซ์ | 10 |
| 102 | มาเรีย | 11 |
| วิชา | |
|---|---|
| คลาส | เรื่อง |
| 10 | คณิตศาสตร์ |
| 10 | ภาษาอังกฤษ |
| 11 | เพลง |
| 11 | กีฬา |
Student_Detail -
STUDENT ⋈Student.Std = Subject.Class SUBJECT
| Student_detail | ||||
|---|---|---|---|---|
| SID | ชื่อ | มาตรฐาน | คลาส | เรื่อง |
| 101 | อเล็กซ์ | 10 | 10 | คณิตศาสตร์ |
| 101 | อเล็กซ์ | 10 | 10 | ภาษาอังกฤษ |
| 102 | มาเรีย | 11 | 11 | เพลง |
| 102 | มาเรีย | 11 | 11 | กีฬา |
Equijoin
เมื่อเข้าร่วม Theta ใช้เท่านั้น equalityตัวดำเนินการเปรียบเทียบว่ากันว่าเป็น Equijoin ตัวอย่างข้างต้นสอดคล้องกับ equijoin
เข้าร่วมตามธรรมชาติ ( ⋈ )
Natural join ไม่ใช้ตัวดำเนินการเปรียบเทียบใด ๆ ไม่เชื่อมต่อกันแบบที่ผลิตภัณฑ์คาร์ทีเซียนทำ เราสามารถทำการเข้าร่วมแบบธรรมชาติได้ก็ต่อเมื่อมีแอตทริบิวต์ทั่วไปอย่างน้อยหนึ่งอย่างที่มีอยู่ระหว่างสองความสัมพันธ์ นอกจากนี้แอตทริบิวต์ต้องมีชื่อและโดเมนเดียวกัน
การรวมตามธรรมชาติจะทำหน้าที่กับแอตทริบิวต์ที่ตรงกันเหล่านั้นโดยที่ค่าของแอตทริบิวต์ทั้งสองความสัมพันธ์เหมือนกัน
| หลักสูตร | ||
|---|---|---|
| CID | หลักสูตร | ฝ่าย |
| CS01 | ฐานข้อมูล | CS |
| ME01 | กลศาสตร์ | ผม |
| ศ. 01 | อิเล็กทรอนิกส์ | ศ |
| HoD | |
|---|---|
| ฝ่าย | ศีรษะ |
| CS | อเล็กซ์ |
| ผม | มายา |
| ศ | มิรา |
| หลักสูตร⋈ HoD | |||
|---|---|---|---|
| ฝ่าย | CID | หลักสูตร | ศีรษะ |
| CS | CS01 | ฐานข้อมูล | อเล็กซ์ |
| ผม | ME01 | กลศาสตร์ | มายา |
| ศ | ศ. 01 | อิเล็กทรอนิกส์ | มิรา |
การเข้าร่วมภายนอก
Theta Join, Equijoin และ Natural Join เรียกว่าการรวมภายใน การรวมภายในจะรวมเฉพาะสิ่งที่มีคุณสมบัติที่ตรงกันและส่วนที่เหลือจะถูกละทิ้งในความสัมพันธ์ที่เป็นผลลัพธ์ ดังนั้นเราจำเป็นต้องใช้การรวมภายนอกเพื่อรวมสิ่งที่รวมทั้งหมดจากความสัมพันธ์ที่เข้าร่วมในความสัมพันธ์ที่เป็นผลลัพธ์ การรวมภายนอกมีสามประเภท ได้แก่ การรวมภายนอกด้านซ้ายการรวมภายนอกด้านขวาและการรวมภายนอกแบบเต็ม
การเข้าร่วมด้านนอกซ้าย (R
S)
ทูเปิลทั้งหมดจากรีเลชันด้านซ้าย R รวมอยู่ในความสัมพันธ์ผลลัพธ์ หากมีทูเปิลใน R โดยไม่มีทูเพิลที่ตรงกันในความสัมพันธ์ด้านขวา S ดังนั้น S-attributes ของความสัมพันธ์ที่เป็นผลลัพธ์จะถูกสร้างเป็น NULL
| ซ้าย | |
|---|---|
| ก | ข |
| 100 | ฐานข้อมูล |
| 101 | กลศาสตร์ |
| 102 | อิเล็กทรอนิกส์ |
| ขวา | |
|---|---|
| ก | ข |
| 100 | อเล็กซ์ |
| 102 | มายา |
| 104 | มิรา |
หลักสูตร
|
|||
|---|---|---|---|
| ก | ข | ค | ง |
| 100 | ฐานข้อมูล | 100 | อเล็กซ์ |
| 101 | กลศาสตร์ | --- | --- |
| 102 | อิเล็กทรอนิกส์ | 102 | มายา |
การเข้าร่วมภายนอกขวา: (R
S)
tuples ทั้งหมดจากความสัมพันธ์ด้านขวา S จะรวมอยู่ในความสัมพันธ์ที่เป็นผลลัพธ์ หากมีทูเปิลใน S โดยไม่มีทูเพิลที่ตรงกันใน R ดังนั้น R-attributes ของความสัมพันธ์ที่เป็นผลลัพธ์จะถูกสร้างเป็น NULL
หลักสูตร
|
|||
|---|---|---|---|
| ก | ข | ค | ง |
| 100 | ฐานข้อมูล | 100 | อเล็กซ์ |
| 102 | อิเล็กทรอนิกส์ | 102 | มายา |
| --- | --- | 104 | มิรา |
การเข้าร่วมภายนอกแบบเต็ม: (R
S)
tuples ทั้งหมดจากความสัมพันธ์ที่เข้าร่วมทั้งสองจะรวมอยู่ในความสัมพันธ์ที่เป็นผลลัพธ์ หากไม่มีสิ่งสองสิ่งที่ตรงกันสำหรับทั้งสองความสัมพันธ์แอตทริบิวต์ที่ไม่ตรงกันตามลำดับจะถูกทำให้เป็น NULL
หลักสูตร
|
|||
|---|---|---|---|
| ก | ข | ค | ง |
| 100 | ฐานข้อมูล | 100 | อเล็กซ์ |
| 101 | กลศาสตร์ | --- | --- |
| 102 | อิเล็กทรอนิกส์ | 102 | มายา |
| --- | --- | 104 | มิรา |