DBMS Joins: Inner, THETA, Outer, Equi Types ของการเข้าร่วม Operations

เข้าร่วมใน DBMS คืออะไร?

เข้าร่วมใน DBMS เป็นการดำเนินการแบบไบนารีซึ่งช่วยให้คุณสามารถรวมการรวมผลิตภัณฑ์และการเลือกไว้ในคำสั่งเดียว เป้าหมายของการสร้างเงื่อนไขการรวมคือช่วยให้คุณสามารถรวมข้อมูลจากตาราง DBMS สองตารางขึ้นไป ตารางใน DBMS เชื่อมโยงกันโดยใช้คีย์หลักและคีย์ภายนอก

ประเภทของการเข้าร่วม

การรวมใน DBMS มีสองประเภทหลัก:

  1. รวมภายใน: Theta, Natural, EQUI
  2. เข้าร่วมด้านนอก: ซ้าย, ขวา, เต็ม

เรามาดูรายละเอียดกันดีกว่า:

การเข้าร่วมภายใน

การเข้าร่วมภายใน ใช้เพื่อส่งคืนแถวจากทั้งสองตารางที่ตรงตามเงื่อนไขที่กำหนด ถือเป็นการดำเนินการ join ที่ใช้กันอย่างแพร่หลายที่สุดและสามารถถือเป็นประเภท join เริ่มต้นได้

Inner join หรือ equijoin คือ join ที่อิงตามตัวเปรียบเทียบซึ่งใช้การเปรียบเทียบความเท่าเทียมในเพรดิเคต join อย่างไรก็ตาม หากคุณใช้ตัวดำเนินการเปรียบเทียบอื่นๆ เช่น ">" จะไม่สามารถเรียกว่า equijoin ได้

Inner Join แบ่งออกเป็นสามประเภทย่อยเพิ่มเติม:

  • ธีต้าเข้าร่วม
  • เข้าร่วมอย่างเป็นธรรมชาติ
  • EQUI เข้าร่วม

ธีต้าเข้าร่วม

ธีต้าเข้าร่วม ช่วยให้คุณสามารถรวมตารางสองตารางเข้าด้วยกันตามเงื่อนไขที่แสดงโดย theta Theta จะรวมงานสำหรับตัวดำเนินการเปรียบเทียบทั้งหมด ซึ่งแสดงด้วยสัญลักษณ์ θกรณีทั่วไปของการดำเนินการ JOIN เรียกว่าการเข้าร่วม Theta

ไวยากรณ์:

A ⋈θ B

Theta join สามารถใช้เงื่อนไขใดก็ได้ในเกณฑ์การคัดเลือก

พิจารณาตารางต่อไปนี้

ตาราง A ตาราง B
คอลัมน์ 1 คอลัมน์ 2 คอลัมน์ 1 คอลัมน์ 2
1 1 1 1
1 2 1 3

ตัวอย่างเช่น:

A ⋈ A.column 2 >  B.column 2 (B)
A ⋈ A.คอลัมน์ 2 > B.คอลัมน์ 2 (B)
คอลัมน์ 1 คอลัมน์ 2
1 2

EQUI เข้าร่วม

EQUI เข้าร่วม จะทำเมื่อการเข้าร่วม Theta ใช้เงื่อนไขความเท่าเทียมกันเท่านั้น การเข้าร่วม EQUI เป็นการดำเนินการที่ยากที่สุดในการนำไปใช้ให้มีประสิทธิภาพ อาร์ดีบีเอ็มเอสและเหตุผลหนึ่งที่ทำให้ RDBMS มีปัญหาด้านประสิทธิภาพที่สำคัญ

ตัวอย่างเช่น:

A ⋈ A.column 2 =  B.column 2 (B)
A ⋈ A.คอลัมน์ 2 = B.คอลัมน์ 2 (B)
คอลัมน์ 1 คอลัมน์ 2
1 1

การรวมแบบธรรมชาติ (⋈)

เข้าร่วมตามธรรมชาติ ไม่ใช้ตัวดำเนินการเปรียบเทียบใดๆ ในการเข้าร่วมประเภทนี้ แอตทริบิวต์ควรมีชื่อและโดเมนเดียวกัน ในการเข้าร่วมแบบธรรมชาติ ควรมีแอตทริบิวต์ทั่วไปอย่างน้อยหนึ่งรายการระหว่างความสัมพันธ์สองรายการ

จะทำการเลือกโดยสร้างความเท่าเทียมกันให้กับคุณลักษณะเหล่านั้นซึ่งปรากฏในความสัมพันธ์ทั้งสองและกำจัดคุณลักษณะที่ซ้ำกัน

ตัวอย่าง:

พิจารณาตารางสองตารางต่อไปนี้

C
หนุ่ม สี่เหลี่ยมด้านเท่า
2 4
3 9
D
หนุ่ม ลูกบาศก์
2 8
3 18
C ⋈ D
ค ⋈ ดี
หนุ่ม สี่เหลี่ยมด้านเท่า ลูกบาศก์
2 4 8
3 9 18

การเข้าร่วมภายนอก

An การเข้าร่วมภายนอก ไม่ต้องการให้แต่ละระเบียนในตารางรวมทั้งสองมีระเบียนที่ตรงกัน ในการเข้าร่วมชนิดนี้ ตารางจะเก็บแต่ละเรกคอร์ดไว้ แม้ว่าจะไม่มีเรกคอร์ดอื่นที่ตรงกันก็ตาม

การรวมภายนอกสามประเภทคือ:

  • เข้าร่วมด้านนอกซ้าย
  • เข้าร่วมด้านนอกขวา
  • เข้าร่วมภายนอกเต็มรูปแบบ

เข้าร่วมด้านนอกซ้าย (A ⟕ B)

เข้าร่วมด้านนอกซ้าย ส่งคืนแถวทั้งหมดจากตารางทางด้านซ้าย แม้ว่าจะไม่พบแถวที่ตรงกันในตารางทางด้านขวาก็ตาม เมื่อไม่พบบันทึกที่ตรงกันในตารางทางด้านขวา ระบบจะส่งคืน NULL

เข้าร่วมด้านนอกซ้าย

พิจารณาตาราง 2 ตารางต่อไปนี้

A
หนุ่ม สี่เหลี่ยมด้านเท่า
2 4
3 9
4 16
B
หนุ่ม ลูกบาศก์
2 8
3 18
5 75
A Left Outer Join B
ก ⋈ บี
หนุ่ม สี่เหลี่ยมด้านเท่า ลูกบาศก์
2 4 8
3 9 18
4 16 -

เข้าร่วมด้านนอกขวา ( A ⟖ B )

เข้าร่วมด้านนอกขวา ส่งคืนคอลัมน์ทั้งหมดจากตารางทางด้านขวา แม้ว่าจะไม่พบแถวที่ตรงกันในตารางทางด้านซ้ายก็ตาม หากไม่พบรายการที่ตรงกันในตารางทางด้านซ้าย ระบบจะส่งคืนค่า NULL RIGHT ภายนอก JOIN ตรงกันข้ามกับ LEFT JOIN

ในตัวอย่างของเรา สมมติว่าคุณต้องทราบชื่อสมาชิกและภาพยนตร์ที่พวกเขาเช่า ตอนนี้มีสมาชิกใหม่ที่ยังไม่ได้เช่าหนังเรื่องไหนเลย

เข้าร่วมด้านนอกขวา

A Right Outer Join B
ก ⋈ บี
หนุ่ม ลูกบาศก์ สี่เหลี่ยมด้านเท่า
2 8 4
3 18 9
5 75 -

เข้าร่วมด้านนอกแบบเต็ม ( A ⟗ B)

ใน เข้าร่วมภายนอกเต็มรูปแบบ สิ่งอันดับทั้งหมดจากความสัมพันธ์ทั้งสองจะรวมอยู่ในผลลัพธ์ โดยไม่คำนึงถึงเงื่อนไขการจับคู่

ตัวอย่าง:

A Full B
ก ⋈ บี
หนุ่ม สี่เหลี่ยมด้านเท่า ลูกบาศก์
2 4 8
3 9 18
4 16 -
5 - 75

สรุป

  • การรวมส่วนใหญ่มีสองประเภท DBMS 1) การรวมภายใน 2) การรวมภายนอก
  • การเข้าร่วมแบบภายในเป็นการดำเนินการเข้าร่วมที่ใช้กันอย่างแพร่หลายและสามารถถือเป็นประเภทการเข้าร่วมแบบเริ่มต้นได้
  • Inner Join แบ่งออกเป็นสามประเภทย่อยเพิ่มเติม: 1) Theta join 2) Natural join 3) EQUI join
  • Theta Join ช่วยให้คุณสามารถรวมสองตารางตามเงื่อนไขที่แสดงโดยทีต้า
  • เมื่อการรวมทีต้าใช้เพียงเงื่อนไขที่เท่ากัน มันจะกลายเป็นการรวมที่เท่ากัน
  • การเข้าร่วมแบบธรรมชาติจะไม่ใช้ตัวดำเนินการเปรียบเทียบใดๆ
  • การรวมภายนอกไม่ต้องการแต่ละระเบียนในตารางการรวมทั้งสองเพื่อให้มีระเบียนที่ตรงกัน
  • Outer Join แบ่งออกเป็น 1 ประเภทย่อยเพิ่มเติมคือ 2) Left Outer Join 3) Right Outer Join XNUMX) Full Outer Join
  • LEFT Outer Join ส่งคืนแถวทั้งหมดจากตารางทางด้านซ้าย แม้ว่าจะไม่พบแถวที่ตรงกันในตารางทางด้านขวาก็ตาม
  • RIGHT Outer Join ส่งคืนคอลัมน์ทั้งหมดจากตารางทางด้านขวา แม้ว่าจะไม่พบแถวที่ตรงกันในตารางทางด้านซ้ายก็ตาม
  • ในการรวมภายนอกแบบเต็ม สิ่งอันดับทั้งหมดจากความสัมพันธ์ทั้งสองจะรวมอยู่ในผลลัพธ์ โดยไม่คำนึงถึงเงื่อนไขการจับคู่