(relational algebra) เป็นภาษาที่ใช้ในการเขียนขั้นตอนต่างๆของ Query ซึ่งจะพิจารณาว่าจะทำอย่างไร เพื่อให้ได้มาซึ่งผลลัพธ์ตามที่ต้องการในการจัดการข้อมูล โดยการระบุตัวกระทำกับความสัมพันธ์ที่ต้องการจัดการ ผลลัพธ์ที่ได้คือ ความสัมพันธ์ใหม่ และนอกจากนี้ยังเป็นภาษาที่ใช้เป็นพื้นฐานในการเขียน SQL อีกด้วย
คำสั่งพื้นฐานต่างๆ
- โอเปอเรชั่นแบบยูนารี (Unary Operations)
- Select(
σ) หรือ Restrict เลือกแถวจากความสัมพันธ์
- Project(Π) เลือกเฉพาะคอลัมน์ที่ต้องการจากความสัมพันธ์
- โอเปอเรชั่นแบบเซต (Set Operations)
- Product(×) สามารถรวมความสัมพันธ์ได้
- Union ( ∪) เชื่อม 2 ความสัมพันธ์เข้าด้วยกัน
- Union ( ∪) เชื่อม 2 ความสัมพันธ์เข้าด้วยกัน
- Intersection (∩)
- Difference(-) หาความแตกต่างระหว่าง 2 ความสัมพันธ์
- Difference(-) หาความแตกต่างระหว่าง 2 ความสัมพันธ์
- โอเปอเรชั่นการ Join (Join Operations)
- Join
(⋈)
- โอเปอเรชั่นการหาร (Division Operations)
- Division (÷)
Select(σ) เป็นการดึงข้อมูลจาก Relation โดยจะเลือกเฉพาะแถวที่ต้องการตามเงื่อนไขที่ระบุเอาไว้ และมีลักษณะการทำงานเหมือนกับคำสั่ง where ของภาษา SQL
syntax
σ condition (R)
|
σ อ่านว่า ซิกม่า (sigma) เป็นสัญลักษณ์แทนการ
Select
condition คือ ประโยคที่ใช้เป็นเงื่อนไข
R คือ ชื่อ Relation (ชื่อตาราง)
เป็นการเลือกเฉพาะ column ที่ต้องการ โดยจะมีเซตของแต่ละแถวเป็นผลลัพธ์ที่ได้
syntax
Π col1,col2,col3,...,coln (R)
|
P (pi) คือ สัญลักษณ์ของการ Projection
col1,col2,…,coln คือ คอลัมน์ที่ต้องการแสดง
R คือ ชื่อ Relation (ชื่อตาราง)
product หรือ Cartesian Product เป็นการแสดงความสัมพันธ์ด้วยการคูณ Cartesian ระหว่าง 2 รีเลชั่น เช่น ต้องการนำรีเลชั่น R และ S มาคูณกันแบบ Cartesian ผลลัพธ์ที่ได้ในรีเลชั่นใหม่จะประกอบด้วยจำนวนแถวของ R×S ในรูปแบบของผลคูณ Cartesian
syntax
R × S
|
× อ่านว่าไทมส์ (times) เป็นสัญลักษณ์ของการ Product
R และ S คือ Relation ที่ต้องการนำมาคูณกัน
Union (∪)
เป็นนำข้อมูลจาก 2 Relation มารวมกัน และถ้ารายการไหนซ้ำหลายแถวก็จะแสดงเพียงแถวเดียว โดยการ Union นี้มีข้อกำหนดว่า แอตทริบิวต์ในลำดับที่ตรงกันจาก 2 Relation ต้องมีชนิดของข้อมูลตรงกันด้วยไม่อย่างนั้นจะ Union กันไม่ได้
syntax
R ∪ S
|
∪ คือสัญลักษณ์ของการยูเนียน
R และ S คือ Relation ที่ต้องการนำมายูเนียนกัน
เป็นการนำข้อมูลจาก 2 Relation มารวมกันคล้ายกับ Union แต่จะต่างกันที่ผลลัพธ์ซึ่ง Intersection จะเลือกผลลัพธ์เฉพาะรายการที่เหมือนกันจาก 2 Relation
syntax
R ∩ S
|
∩ คือสัญลักษณ์ของการยูเนียน
R และ S คือ Relation ที่ต้องการนำมายูเนียนกัน
Difference(-)
เป็นการแสดงข้อมูลเฉพาะแถวของรีเลชั่นแรกที่ต่างจากแถวข้อมูลในรีเลชั่นที่สอง
syntax
R - S
|
- คือสัญลักษณ์แทนการ Difference
R และ S คือชื่อรีเลชั่นที่ต้องการนำมา Difference กัน
Join (⋈)syntax
R ⋈ S
|
⋈ คือสัญลักษณ์แทนการ Join
R และ S คือชื่อรีเลชั่นที่ต้องการนำมา Join กัน
Division (÷)
เป็นการหาผลลัพธ์จาก 2 Relation โดยตัวตั้งมี Attribute มากกว่าตัวหารและทั้งสองมี Attribute อย่างน้อยหนึ่งตัวที่เหมือนกัน โดยผลลัพธ์ที่ได้จะมาจาก Attribute ตัวใดตัวหนึ่งของตัวตั้ง
syntax
R÷ S
|
÷ คือสัญลักษณ์แทนการ Division
R และ S คือชื่อรีเลชั่นที่ต้องการนำมา Division กัน
What is an inner join? outer join?
Ans inner join คือ การ joint ชนิดหนึ่งที่มีการนำเอาตารางสาองตารางมารวมกัน แล้วเลือกผลลัพธ์โดยเอามาเฉพาะข้อมูลที่ตรงกันทั้งสองตาราง ส่วน outer join คือ การ join อีชนิดหนึ่งที่จะนำเอาตารางสองตารางมารวมกันเช่นเดียวกับ inner join แต่จะให้ผลลัพธ์โดยเอาทั้งข้อมูลที่ตรงกันและไม่ตรงกัน โดยค่าที่ไม่ตรงกันเราแสดงข้อมูลที่ไม่ตรงกันเป็น null
What is a division operation?
SSN_PNOS ÷ SMITH_PNOS
why it is not in the complete set of relational algebra operations
Ans
related info/link/reference :
- https://www.gotoknow.org/posts/97459
ไม่มีความคิดเห็น:
แสดงความคิดเห็น