พีชคณิตเชิงสัมพันธ์ใน 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 | ใช้งาน | |
2 | Amazon | ใช้งาน |
3 | Apple | เฉื่อยชา |
4 | อาลีบาบา | ใช้งาน |
ที่นี่การฉายภาพชื่อลูกค้าและสถานะจะให้
Π CustomerName, Status (Customers)
ชื่อลูกค้า | สถานะ |
---|---|
ใช้งาน | |
Amazon | ใช้งาน |
Apple | เฉื่อยชา |
อาลีบาบา | ใช้งาน |
เปลี่ยนชื่อ (ρ)
การเปลี่ยนชื่อเป็นการดำเนินการยูนารีที่ใช้ในการเปลี่ยนชื่อแอตทริบิวต์ของความสัมพันธ์
ρ (a/b)R จะเปลี่ยนชื่อคุณลักษณะ 'b' ของความสัมพันธ์ด้วย 'a'
การดำเนินงานสหภาพ (υ)
UNION ใช้สัญลักษณ์ ∪ รวมถึงสิ่งอันดับทั้งหมดที่อยู่ในตาราง A หรือใน B และยังกำจัดสิ่งอันดับที่ซ้ำกันอีกด้วย ดังนั้น เซต A UNION เซต B จะแสดงเป็น:
ผลลัพธ์ <- A ∪ B
เพื่อให้การดำเนินงานของสหภาพถูกต้อง ต้องมีเงื่อนไขต่อไปนี้
- R และ S ต้องเป็นจำนวนแอตทริบิวต์เท่ากัน
- โดเมนแอตทริบิวต์จะต้องเข้ากันได้
- สิ่งอันดับที่ซ้ำกันควรถูกลบออกโดยอัตโนมัติ
ตัวอย่าง
พิจารณาตารางต่อไปนี้
คอลัมน์ 1 | คอลัมน์ 2 | คอลัมน์ 1 | คอลัมน์ 2 | |
---|---|---|---|---|
1 | 1 | 1 | 1 | |
1 | 2 | 1 | 3 |
A ∪ B ให้
คอลัมน์ 1 | คอลัมน์ 2 |
---|---|
1 | 1 |
1 | 2 |
1 | 3 |
กำหนดความแตกต่าง (-)
– สัญลักษณ์แสดงถึงมัน. ผลลัพธ์ของ A - B คือความสัมพันธ์ซึ่งรวมถึงสิ่งอันดับทั้งหมดที่อยู่ใน A แต่ไม่อยู่ใน B
- ชื่อแอตทริบิวต์ของ A ต้องตรงกับชื่อแอตทริบิวต์ใน B
- ความสัมพันธ์ตัวดำเนินการสองตัว A และ B จะต้องเข้ากันได้หรือเข้ากันได้กับ Union
- ควรกำหนดความสัมพันธ์ที่ประกอบด้วยสิ่งอันดับที่อยู่ในความสัมพันธ์ A แต่ไม่ใช่ใน B
ตัวอย่าง
A-B
คอลัมน์ 1 | คอลัมน์ 2 |
---|---|
1 | 2 |
การตัด
จุดตัดถูกกำหนดโดยสัญลักษณ์ ∩
เอ ∩ บี
กำหนดความสัมพันธ์ที่ประกอบด้วยชุดของทูเพิลทั้งหมดที่อยู่ในทั้ง A และ B อย่างไรก็ตาม A และ B จะต้องเข้ากันได้แบบยูเนียน
ตัวอย่าง:
A ∩ B
คอลัมน์ 1 | คอลัมน์ 2 |
---|---|
1 | 1 |
ผลิตภัณฑ์คาร์ทีเซียน (X) ใน DBMS
ผลิตภัณฑ์คาร์ทีเซียนใน DBMS เป็นการดำเนินการที่ใช้ในการรวมคอลัมน์จากความสัมพันธ์สองรายการ โดยทั่วไป ผลคูณคาร์ทีเซียนจะไม่ถือเป็นการดำเนินการที่มีความหมายหากดำเนินการเพียงลำพัง อย่างไรก็ตาม ผลคูณคาร์ทีเซียนจะมีความหมายเมื่อดำเนินการร่วมกับการดำเนินการอื่นๆ เรียกอีกอย่างว่า ผลคูณแบบไขว้ หรือ การรวมแบบไขว้
ตัวอย่าง – สินค้าคาร์ทีเซียน
σ คอลัมน์ 2 = '1' (เอเอ็กซ์บี)
เอาท์พุต – ตัวอย่างข้างต้นแสดงแถวทั้งหมดจากความสัมพันธ์ A และ B ซึ่งคอลัมน์ 2 มีค่า 1
คอลัมน์ 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)
คอลัมน์ 1 | คอลัมน์ 2 |
---|---|
1 | 2 |
EQUI เข้าร่วม
เมื่อการรวมทีต้าใช้เพียงเงื่อนไขที่เท่าเทียมกัน มันจะกลายเป็นการรวมที่เท่าเทียมกัน
ตัวอย่างเช่น:
A ⋈ A.column 2 = B.column 2 (B)
คอลัมน์ 1 | คอลัมน์ 2 |
---|---|
1 | 1 |
การเข้าร่วม EQUI เป็นการดำเนินการที่ยากที่สุดในการนำไปใช้ให้มีประสิทธิภาพโดยใช้ SQL ใน RDBMS และเหตุผลประการหนึ่งคือ อาร์ดีบีเอ็มเอส มีปัญหาด้านประสิทธิภาพที่สำคัญ
เข้าร่วมตามธรรมชาติ (⋈)
การรวมแบบธรรมชาติสามารถทำได้ก็ต่อเมื่อมีแอตทริบิวต์ทั่วไป (คอลัมน์) ระหว่างความสัมพันธ์ ชื่อและประเภทของแอตทริบิวต์จะต้องเหมือนกัน
ตัวอย่าง
พิจารณาตารางสองตารางต่อไปนี้
หนุ่ม | สี่เหลี่ยมด้านเท่า |
---|---|
2 | 4 |
3 | 9 |
หนุ่ม | ลูกบาศก์ |
---|---|
2 | 8 |
3 | 27 |
C ⋈ D
หนุ่ม | สี่เหลี่ยมด้านเท่า | ลูกบาศก์ |
---|---|---|
2 | 4 | 8 |
3 | 9 | 27 |
ภายนอกเข้าร่วม
ในการรวมภายนอก พร้อมด้วยสิ่งอันดับที่ตรงตามเกณฑ์ที่ตรงกัน เรายังรวมสิ่งอันดับบางส่วนหรือทั้งหมดที่ไม่ตรงกับเกณฑ์ด้วย
เข้าร่วมด้านนอกซ้าย (A ⟕ B)
ในการเข้าร่วมด้านนอกด้านซ้าย การดำเนินการอนุญาตให้เก็บทูเพิลทั้งหมดไว้ในความสัมพันธ์ด้านซ้าย อย่างไรก็ตาม หากไม่พบทูเพิลที่ตรงกันในความสัมพันธ์ด้านขวา แอตทริบิวต์ของความสัมพันธ์ด้านขวาในผลลัพธ์การเข้าร่วมจะถูกเติมด้วยค่าว่าง
พิจารณาตาราง 2 ตารางต่อไปนี้
หนุ่ม | สี่เหลี่ยมด้านเท่า |
---|---|
2 | 4 |
3 | 9 |
4 | 16 |
หนุ่ม | ลูกบาศก์ |
---|---|
2 | 8 |
3 | 18 |
5 | 75 |
AB
หนุ่ม | สี่เหลี่ยมด้านเท่า | ลูกบาศก์ |
---|---|---|
2 | 4 | 8 |
3 | 9 | 18 |
4 | 16 | - |
เข้าร่วมด้านนอกขวา ( A ⟖ B )
ในการเข้าร่วมด้านนอกด้านขวา การดำเนินการนี้จะช่วยให้สามารถเก็บทูเพิลทั้งหมดไว้ในความสัมพันธ์ด้านขวาได้ อย่างไรก็ตาม หากไม่พบทูเพิลที่ตรงกันในความสัมพันธ์ด้านซ้าย แอตทริบิวต์ของความสัมพันธ์ด้านซ้ายในผลลัพธ์การเข้าร่วมจะถูกเติมด้วยค่าว่าง
AB
หนุ่ม | ลูกบาศก์ | สี่เหลี่ยมด้านเท่า |
---|---|---|
2 | 8 | 4 |
3 | 18 | 9 |
5 | 75 | - |
เข้าร่วมด้านนอกแบบเต็ม ( A ⟗ B)
ในการรวมภายนอกแบบเต็ม สิ่งอันดับทั้งหมดจากความสัมพันธ์ทั้งสองจะรวมอยู่ในผลลัพธ์ โดยไม่คำนึงถึงเงื่อนไขการจับคู่
AB
หนุ่ม | ลูกบาศก์ | สี่เหลี่ยมด้านเท่า |
---|---|---|
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 เข้าร่วม | เมื่อการรวมทีต้าใช้เพียงเงื่อนไขที่เท่าเทียมกัน มันจะกลายเป็นการรวมที่เท่าเทียมกัน |
การรวมแบบธรรมชาติ(⋈) | การรวมแบบธรรมชาติสามารถทำได้ก็ต่อเมื่อมีแอตทริบิวต์ทั่วไป (คอลัมน์) ระหว่างความสัมพันธ์ |
การเข้าร่วมภายนอก | ในการรวมภายนอก พร้อมด้วยสิ่งอันดับที่ตรงตามเกณฑ์ที่ตรงกัน |
เข้าร่วมด้านนอกซ้าย( |
ในการเข้าร่วมด้านนอกด้านซ้าย การดำเนินการอนุญาตให้เก็บทูเพิลทั้งหมดไว้ในความสัมพันธ์ด้านซ้าย |
เข้าร่วมด้านนอกขวา ( |
ในการเข้าร่วมด้านนอกทางขวา การดำเนินการอนุญาตให้รักษาทูเพิลทั้งหมดไว้ในความสัมพันธ์ที่ถูกต้อง |
เข้าร่วมภายนอกแบบเต็ม( |
ในการรวมภายนอกแบบเต็ม สิ่งอันดับทั้งหมดจากความสัมพันธ์ทั้งสองจะรวมอยู่ในผลลัพธ์โดยไม่คำนึงถึงเงื่อนไขการจับคู่ |