พีชคณิตสัมพันธ์ (Relational Algebra) เป็นภาษาคำสั่งเชิงกระบวนการ ใช้เพื่อให้ตาราง/ความสัมพันธ์เดียวเป็นผลลัพธ์จากการดำเนินการบนความสัมพันธ์มากกว่าหนึ่ง บางออเปอเรเตอร์พื้นฐานจะถูกอภิปรายที่นี่
ในหลักสูตรของเรา เราจะใช้สามความสัมพันธ์ (ตาราง) −
ตาราง 1: course
| Course_id | Name |
|---|---|
| 1 | Computer science |
| 2 | Information Technology |
| 3 | mechanical |
ตาราง 2: students
| Roll No. | Name | address | age |
|---|---|---|---|
| 1 | Ram | Delhi | 18 |
| 2 | Raju | hyderabad | 20 |
| 4 | Faiz | Delhi | 22 |
| 5 | Salman | hyderabad | 20 |
ตาราง 3: Hostel
| St. No. | Name | address | age |
|---|---|---|---|
| 1 | Ram | Delhi | 18 |
| 2 | Akash | hyderabad | 20 |
| 3 | neha | Jhansi | 21 |
บนความสัมพันธ์เหล่านี้ เราจะดำเนินการบางอย่างเพื่อสร้างความสัมพันธ์ใหม่จากการดำเนินการที่ทำ
การดำเนินการเลือก (σ) − ออเปอเรเตอร์เลือกที่แทนด้วย sigma σ ใช้เลือกทูเพิลของความสัมพันธ์บนเงื่อนไขบางอย่าง เฉพาะทูเพิลที่อยู่ภายใต้เงื่อนไขบางอย่างเท่านั้นที่ถูกเลือก
ไวยากรณ์
σ(condition)(relation_name)
ตัวอย่าง
เลือกนักเรียนที่มี course id 1 σ(course_id = 1)(student)
ผลลัพธ์
| Roll No. | Name | address | age |
|---|---|---|---|
| 4 | Faiz | Delhi | 22 |
การดำเนินการฉาย (∏) ออเปอเรเตอร์ฉายที่แทนด้วย ∏ ใช้เลือกคอลัมน์จากความสัมพันธ์เฉพาะ เฉพาะคอลัมน์ที่ระบุเท่านั้นที่ถูกเลือก
ไวยากรณ์
∏(column1 , column2 , … , columnn)(relation_name)
ตัวอย่าง
ลองเลือกชื่อและหมายเลขของนักเรียนทั้งหมดที่อยู่ในหอพัก ∏( st. No. , name)(hostel)
ผลลัพธ์
| St. No. | Name |
|---|---|
| 1 | Ram |
| 2 | Akash |
| 3 | neha |
แถวจะไม่ซ้ำกันในการฉายเสมอ นั่นคือ ถ้ามีนักเรียนอีกคนชื่อ panjak อีกคนจะถูกลบออก
Cross Product (X) - Cross product แทนด้วยสัญลักษณ์ X และใช้หาค่าการ join ของสองตัวแปร ใน cross product ทูเพิลแต่ละอันของ relation1 จะถูก cross กับทูเพิลแต่ละอันของ relation2 ซึ่งทำให้ความสัมพันธ์ผลลัพธ์มีออเดอร์ nXm โดยที่ n คือจำนวนทูเพิลใน relation1 และ m คือจำนวนทูเพิลใน relation2
ไวยากรณ์
relation1 X relation2
ตัวอย่าง
ลองหา cross product ของตาราง course และ hostel
student X course
| St. No. | Name | address | age | Course_id | Name |
|---|---|---|---|---|---|
| 1 | Ram | Delhi | 18 | 1 | Computer science |
| 1 | Ram | Delhi | 18 | 2 | Information Technology |
| 1 | Ram | Delhi | 18 | 3 | mechanical |
| 2 | Akash | hyderabad | 20 | 1 | Computer science |
| 2 | Akash | hyderabad | 20 | 2 | Information Technology |
| 2 | Akash | hyderabad | 20 | 3 | mechanical |
| 3 | neha | Jhansi | 21 | 1 | Computer science |
| 3 | neha | Jhansi | 21 | 2 | Information Technology |
| 3 | neha | Jhansi | 21 | 3 | mechanical |
Union (U) - ยูเนียนของสองความสัมพันธ์ relation1 และ relation2 จะให้ทูเพิลที่อยู่ใน relation1 หรือ relation2 แตทูเพิลที่อยู่ในทั้ง relation1 และ relation2 จะถูกนับเพียงครั้งเดียว
นอกจากนี้ ทั้งสองความสัมพันธ์ควรเป็นโดเมนเดียวกันสำหรับการหายูเนียน
ไวยากรณ์
relation1 U relation2
ตัวอย่าง
ลองหายูเนียนของ student และ hostel
student U hostel
| Roll No. | Name | address | age |
|---|---|---|---|
| 1 | Ram | Delhi | 18 |
| 2 | Raju | hyderabad | 20 |
| 4 | Faiz | Delhi | 22 |
| 5 | Salman | hyderabad | 20 |
| 2 | Akash | hyderabad | 20 |
| 3 | neha | Jhansi | 21 |
Minus (-) operator − ออเปอเรเตอร์ - แทนด้วยสัญลักษณ์ - Relation1 - relation2 จะผลลัพธ์เป็นความสัมพันธ์ที่ทูเพิลอยู่ใน relation1 และไม่อยู่ใน relation2 สำหรับการคำนวณ minus ด้วย ความสัมพันธ์ต้องเป็น union compatible
ไวยากรณ์
relation1 - relation2
ตัวอย่าง
ลองหาการดำเนินการ student - hostel
student - hostel
| Roll No. | Name | address | age |
|---|---|---|---|
| 2 | Raju | hyderabad | 20 |
| 4 | Faiz | Delhi | 22 |
| 5 | Salman | hyderabad | 20 |
rename(ρ) − การดำเนินการเปลี่ยนชื่อที่แทนด้วย ρ ใช้เปลี่ยนชื่อความสัมพันธ์ที่กำหนดให้เป็นชื่ออื่นที่กำหนด
ไวยากรณ์
ρ(new_name , old_name)