พีชคณิตเชิงสัมพันธ์ใน DBMS: Operations พร้อมตัวอย่าง

พีชคณิตเชิงสัมพันธ์

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

พีชคณิตเชิงสัมพันธ์ SQL พื้นฐาน Operations

พีชคณิตเชิงสัมพันธ์แบ่งออกเป็นกลุ่มต่างๆ

เอกนารีสัมพันธ์ Operations

  • SELECT (สัญลักษณ์: σ)
  • โครงการ (สัญลักษณ์: π)
  • เปลี่ยนชื่อ (สัญลักษณ์: ρ)

พีชคณิตเชิงสัมพันธ์ Operaจากทฤษฎีเซต

  • ยูเนี่ยน (υ)
  • จุดตัด ( ),
  • ความแตกต่าง (-)
  • ผลิตภัณฑ์คาร์ทีเซียน ( x )

ไบนารีสัมพันธ์ Operations

  • สมัคร
  • หมวด

มาศึกษารายละเอียดพร้อมวิธีแก้ปัญหากันดีกว่า:

เลือก (σ)

การดำเนินการ SELECT ใช้สำหรับเลือกชุดย่อยของทูเพิลตามเงื่อนไขการเลือกที่กำหนด สัญลักษณ์ Sigma(σ) หมายถึงการดำเนินการดังกล่าว การดำเนินการนี้ใช้เป็นนิพจน์เพื่อเลือกทูเพิลที่ตรงตามเงื่อนไขการเลือก ตัวดำเนินการ Select จะเลือกทูเพิลที่ตรงตามเงื่อนไขที่กำหนด

σp(r)

σ คือภาคแสดง

r ย่อมาจากความสัมพันธ์ซึ่งเป็นชื่อของตาราง

p เป็นตรรกะบุพบท

1 ตัวอย่าง

σ topic = "Database" (Tutorials)

เอาท์พุต – เลือกสิ่งอันดับจากบทช่วยสอนโดยที่หัวข้อ = 'ฐานข้อมูล'

2 ตัวอย่าง

σ topic = "Database" and author = "guru99"( Tutorials)

เอาท์พุต – เลือกสิ่งอันดับจากบทช่วยสอนโดยที่หัวข้อคือ 'ฐานข้อมูล' และ 'ผู้เขียน' คือ guru99

3 ตัวอย่าง

σ sales > 50000 (Customers)

เอาท์พุต – เลือกสิ่งอันดับจากลูกค้าที่มียอดขายมากกว่า 50000

การฉายภาพ(π)

การฉายภาพจะกำจัดคุณลักษณะทั้งหมดของความสัมพันธ์อินพุต ยกเว้นคุณลักษณะที่กล่าวถึงในรายการการฉายภาพ วิธีการฉายภาพกำหนดความสัมพันธ์ที่ประกอบด้วยเซตย่อยในแนวตั้งของความสัมพันธ์

การดำเนินการนี้ช่วยในการแยกค่าแอตทริบิวต์ที่ระบุเพื่อกำจัดค่าที่ซ้ำกัน สัญลักษณ์ (pi) ใช้เพื่อเลือกแอตทริบิวต์จากความสัมพันธ์ ตัวดำเนินการนี้ช่วยให้คุณเก็บคอลัมน์เฉพาะจากความสัมพันธ์และลบคอลัมน์อื่นๆ ออกไป

ตัวอย่างของการฉายภาพ:

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

รหัสลูกค้า ชื่อลูกค้า สถานะ
1 Google ใช้งาน
2 Amazon ใช้งาน
3 Apple เฉื่อยชา
4 อาลีบาบา ใช้งาน

ที่นี่การฉายภาพชื่อลูกค้าและสถานะจะให้

Π CustomerName, Status (Customers)
ชื่อลูกค้า สถานะ
Google ใช้งาน
Amazon ใช้งาน
Apple เฉื่อยชา
อาลีบาบา ใช้งาน

เปลี่ยนชื่อ (ρ)

การเปลี่ยนชื่อเป็นการดำเนินการยูนารีที่ใช้ในการเปลี่ยนชื่อแอตทริบิวต์ของความสัมพันธ์

ρ (a/b)R จะเปลี่ยนชื่อคุณลักษณะ 'b' ของความสัมพันธ์ด้วย 'a'

การดำเนินงานสหภาพ (υ)

UNION ใช้สัญลักษณ์ ∪ รวมถึงสิ่งอันดับทั้งหมดที่อยู่ในตาราง A หรือใน B และยังกำจัดสิ่งอันดับที่ซ้ำกันอีกด้วย ดังนั้น เซต A UNION เซต B จะแสดงเป็น:

ผลลัพธ์ <- A ∪ B

เพื่อให้การดำเนินงานของสหภาพถูกต้อง ต้องมีเงื่อนไขต่อไปนี้

  • R และ S ต้องเป็นจำนวนแอตทริบิวต์เท่ากัน
  • โดเมนแอตทริบิวต์จะต้องเข้ากันได้
  • สิ่งอันดับที่ซ้ำกันควรถูกลบออกโดยอัตโนมัติ

ตัวอย่าง

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

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

A ∪ B ให้

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

กำหนดความแตกต่าง (-)

– สัญลักษณ์แสดงถึงมัน. ผลลัพธ์ของ A - B คือความสัมพันธ์ซึ่งรวมถึงสิ่งอันดับทั้งหมดที่อยู่ใน A แต่ไม่อยู่ใน B

  • ชื่อแอตทริบิวต์ของ A ต้องตรงกับชื่อแอตทริบิวต์ใน B
  • ความสัมพันธ์ตัวดำเนินการสองตัว A และ B จะต้องเข้ากันได้หรือเข้ากันได้กับ Union
  • ควรกำหนดความสัมพันธ์ที่ประกอบด้วยสิ่งอันดับที่อยู่ในความสัมพันธ์ A แต่ไม่ใช่ใน B

ตัวอย่าง

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

การตัด

จุดตัดถูกกำหนดโดยสัญลักษณ์ ∩

เอ ∩ บี

กำหนดความสัมพันธ์ที่ประกอบด้วยชุดของทูเพิลทั้งหมดที่อยู่ในทั้ง A และ B อย่างไรก็ตาม A และ B จะต้องเข้ากันได้แบบยูเนียน

การตัด
คำจำกัดความภาพของทางแยก

ตัวอย่าง:

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

ผลิตภัณฑ์คาร์ทีเซียน (X) ใน DBMS

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

ตัวอย่าง – สินค้าคาร์ทีเซียน

σ คอลัมน์ 2 = '1' (เอเอ็กซ์บี)

เอาท์พุต – ตัวอย่างข้างต้นแสดงแถวทั้งหมดจากความสัมพันธ์ A และ B ซึ่งคอลัมน์ 2 มีค่า 1

σ คอลัมน์ 2 = '1' (AXB)
คอลัมน์ 1 คอลัมน์ 2
1 1
1 1

ร่วมเป็นผู้ขายกับเราที่ Operations

การดำเนินการร่วมโดยพื้นฐานแล้วเป็นผลคูณแบบคาร์ทีเซียนที่ตามด้วยเกณฑ์การเลือก

การดำเนินการร่วมแสดงด้วย ⋈

การดำเนินการ JOIN ช่วยให้สามารถรวมทูเพิลต่างๆ ที่เกี่ยวข้องจากความสัมพันธ์ที่แตกต่างกันได้

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

รูปแบบการดำเนินการร่วมมีหลากหลายรูปแบบ เช่น:

รวมภายใน:

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

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

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

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

ในการรวมภายใน เฉพาะสิ่งอันดับที่ตรงตามเกณฑ์ที่ตรงกันเท่านั้นที่จะถูกรวมไว้ ในขณะที่ส่วนที่เหลือจะถูกแยกออก มาศึกษา Inner Joins ประเภทต่างๆ กัน:

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

กรณีทั่วไปของการดำเนินการ JOIN เรียกว่าการ Join แบบ Theta ซึ่งแสดงด้วยสัญลักษณ์ θ

ตัวอย่าง

A ⋈θ B

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

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

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

EQUI เข้าร่วม

เมื่อการรวมทีต้าใช้เพียงเงื่อนไขที่เท่าเทียมกัน มันจะกลายเป็นการรวมที่เท่าเทียมกัน

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

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

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

เข้าร่วมตามธรรมชาติ (⋈)

การรวมแบบธรรมชาติสามารถทำได้ก็ต่อเมื่อมีแอตทริบิวต์ทั่วไป (คอลัมน์) ระหว่างความสัมพันธ์ ชื่อและประเภทของแอตทริบิวต์จะต้องเหมือนกัน

ตัวอย่าง

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

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

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

ในการรวมภายนอก พร้อมด้วยสิ่งอันดับที่ตรงตามเกณฑ์ที่ตรงกัน เรายังรวมสิ่งอันดับบางส่วนหรือทั้งหมดที่ไม่ตรงกับเกณฑ์ด้วย

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

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

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

พิจารณาตาราง 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 )

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

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

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

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

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

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

สรุป

Operation(สัญลักษณ์) จุดมุ่งหมาย
เลือก(σ) การดำเนินการ SELECT ใช้สำหรับเลือกเซ็ตย่อยของทูเพิลตามเงื่อนไขการเลือกที่กำหนด
การฉายภาพ(π) การฉายภาพจะกำจัดคุณลักษณะทั้งหมดของความสัมพันธ์อินพุต ยกเว้นคุณลักษณะที่กล่าวถึงในรายการการฉายภาพ
สหภาพ Operaเหตุผล(∪) UNION มีสัญลักษณ์เป็นสัญลักษณ์ ประกอบด้วยสิ่งอันดับทั้งหมดที่อยู่ในตาราง A หรือ B
กำหนดความแตกต่าง(-) – สัญลักษณ์แสดงถึงมัน. ผลลัพธ์ของ A - B คือความสัมพันธ์ซึ่งรวมถึงสิ่งอันดับทั้งหมดที่อยู่ใน A แต่ไม่อยู่ใน B
ทางแยก(∩) Intersection กำหนดความสัมพันธ์ที่ประกอบด้วยชุดของทูเพิลทั้งหมดที่อยู่ในทั้ง A และ B
สินค้าคาร์ทีเซียน(X) การดำเนินการคาร์ทีเซียนมีประโยชน์ในการรวมคอลัมน์จากความสัมพันธ์สองแบบ
การเข้าร่วมภายใน การรวมภายใน รวมเฉพาะสิ่งอันดับที่ตรงตามเกณฑ์ที่ตรงกัน
ทีต้าเข้าร่วม(θ) กรณีทั่วไปของการดำเนินการ JOIN เรียกว่าการ Join แบบ Theta แสดงด้วยสัญลักษณ์ θ
EQUI เข้าร่วม เมื่อการรวมทีต้าใช้เพียงเงื่อนไขที่เท่าเทียมกัน มันจะกลายเป็นการรวมที่เท่าเทียมกัน
การรวมแบบธรรมชาติ(⋈) การรวมแบบธรรมชาติสามารถทำได้ก็ต่อเมื่อมีแอตทริบิวต์ทั่วไป (คอลัมน์) ระหว่างความสัมพันธ์
การเข้าร่วมภายนอก ในการรวมภายนอก พร้อมด้วยสิ่งอันดับที่ตรงตามเกณฑ์ที่ตรงกัน
เข้าร่วมด้านนอกซ้าย(เข้าร่วมด้านนอกซ้าย) ในการเข้าร่วมด้านนอกด้านซ้าย การดำเนินการอนุญาตให้เก็บทูเพิลทั้งหมดไว้ในความสัมพันธ์ด้านซ้าย
เข้าร่วมด้านนอกขวา (เข้าร่วมด้านนอกขวา) ในการเข้าร่วมด้านนอกทางขวา การดำเนินการอนุญาตให้รักษาทูเพิลทั้งหมดไว้ในความสัมพันธ์ที่ถูกต้อง
เข้าร่วมภายนอกแบบเต็ม(เข้าร่วมภายนอกเต็มรูปแบบ) ในการรวมภายนอกแบบเต็ม สิ่งอันดับทั้งหมดจากความสัมพันธ์ทั้งสองจะรวมอยู่ในผลลัพธ์โดยไม่คำนึงถึงเงื่อนไขการจับคู่

อ่านเพิ่มเติม readmore