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 | มิรา |