![]() |
|
![]() |
![]() |
Relational Algebra Operations พื้นฐานการกระทำเกี่ยวกับ Relational Algebra ขั้นพื้นฐานได้แก่ Select, Project, Composition, Union, Set difference, Cartesian-product และ Rename 1. Selection operatorตัวกระทำในการ Select คือ s (sigma) ทำหน้าที่เป็นตัวเลือกข้อมูลความสัมพันธ์จากเงื่อนไขที่กำหนด ผลลัพธ์จาก Select คือแถวในความสัมพันธ์จำนวนหนึ่งซึ่งจะมีจำนวนดีกรีเท่ากับความสัมพันธ์ที่นำมาผ่านการเลือก จำนวนแถวที่เป็นผลลัพธ์อาจจะน้อยกว่าจำนวนแถวทั้งหมดที่มีในความสัมพันธ์แต่จะไม่มากกว่า เงื่อนไขในการเลือกจะถูกเขียนไว้เป็นตัวห้อยจากเครื่องหมาย s การระบุเงื่อนไขสามารถทำได้โดยใช้เครื่องหมายในการเปรียบเทียบและตัวกระทำทางตรรกะร่วมกันได้ - เครื่องหมายเปรียบเทียบ ได้แก่ = (เท่ากับ), ¹ (ไม่เท่ากับ), < (น้อยกว่า), £ (น้อยกว่าหรือเท่ากับ), > (มากกว่า), > (มากกว่าหรือเท่ากับ) - ตัวกระทำทางตรรกะ ได้แก่ Ù (and) , Ú (or) และ Ø (not) ตัวอย่างเช่น การค้นหาข้อมูลของผู้เล่นที่ส่วนสูงมากกว่า 178 จากความสัมพันธ์ Player ในตาราง 2-1 สามารถเขียนโดยใช้ Selection operator ได้เป็น s height > 178 Player การค้นหาข้อมูลของผู้เล่นที่อายุมากกว่า 25 และเป็นผู้เล่นในตำแหน่งกองหน้า s age > 178 Ù position = กองหน้า Player ผลลัพธ์ที่ได้แสดงดังตาราง 2-3
ตาราง 2-7 ผลลัพธ์ของ selection : s height > 178 Playerการเลือกข้อมูลโดยใช้ s เทียบได้กับการใช้คำสั่ง SELECT FROM WHERE ในภาษา SQL SELECT name, position, age, height, weight FROM Player WHERE height > 178 2. Projection operatorProjection คือ การเลือกเฉพาะบางคอลัมน์ของความสัมพันธ์ที่สนใจขึ้นมาแสดง โดยใช้สัญลักษณ์ p (pi) เขียนในรูปแบบของ p attributes r ผลลัพธ์จากการเลือกโดยใช้ p จะได้จำนวนแถวเท่ากับความสัมพันธ์ r แต่จำนวนดีกรีอาจจะเท่ากันหรือน้อยกว่าก็ได้ เทียบได้กับการใช้คำสั่ง SELECT FROM ในภาษา SQL ตัวอย่างเช่น การเลือกดูข้อมูลเฉพาะน้ำหนักและส่วนสูงจากความสัมพันธ์ Player ผลลัพธ์จากการ project นี้แสดงได้ดังตาราง 2-4 p weight, height Player
SELECT weight, height FROM Player
ตาราง 2-8 ผลลัพธ์ของการใช้ projection : p weight, height Player3. การใช้ Selection operator ร่วมกับ Projection operatorSelection operator () และ Projection operator () สามารถนำมาใช้ร่วมกันได้เพื่อเลือกข้อมูลจากความสัมพันธ์ที่ต้องการได้ เช่น การเลือก ชื่อ และ ตำแหน่งของผู้เล่นที่ส่วนสูงมากกว่า 178 เทียบได้กับคำสั่งSQLดังข้างล่าง และผลลัพธ์แสดงดังตาราง 2-5 p name, position (s height > 178 Player)
ตาราง 2-9 ความสัมพันธ์ที่เกิดจากการใช้ selection และ projection ร่วมกันSELECT name, position FROM Player WHERE height > 178 4. Unionเราสามารถกล่าวได้ว่าความสัมพันธ์ R1 และ R2 เป็นความสัมพันธ์ที่สามารถนำทำมา Union กันได้(Union compatible) ก็ต่อเมื่อมีรูปแบบของความสัมพันธ์เหมือนกัน การ Union ความสัมพันธ์ R1 และ R2 สามารถเขียนได้ในรูปของ R1 È R2 ผลลัพธ์ที่ได้นี้จะมีรูปแบบของเหมือนกับความสัมพันธ์ต้นแบบ R1 และ R2 และประกอบไปด้วยแถว t ใดๆ ที่อยู่ใน R1 หรือ R2 เมื่อพิจารณาการ Union ความสัมพันธ์ Player2000 และ Player2001 ต่อไปนี้ ความสัมพันธ์ที่เป็นผลลัพธ์จะประกอบไปด้วย 4 แถวจากความสัมพันธ์ Player2000 และแถวใหม่ 3 แถวจากความสัมพันธ์ Player2001 แสดงดังตาราง 2-7 โปรดสังเกตว่าแถวที่ซ้ำกันจะปรากฏเพียงครั้งเดียวหลังจากการ Union
ความสัมพันธ์ Player2000
ความสัมพันธ์ Player2001 ตาราง 2-10 ความสัมพันธ์ Player2000 และ Player2001
ตาราง 2-11 ความสัมพันธ์ผลลัพธ์ของ Player2000 È Player2001การ Union โดยใช้คำสั่ง SQL สามารถกระทำได้โดยการใช้คำสั่ง UNION เพื่อเชื่อมระหว่างคำสั่ง SELECT SELECT name, position, age, height, weight FROM Player2000 UNION SELECT name, position, age, height, weight FROM Player2001 5. Differenceเราสามารถกล่าวได้ความสัมพันธ์ R1 และ R2 เป็นความสัมพันธ์ที่มีความแตกต่าง (Difference Compatible) ก็ต่อเมื่อ R1 และ R2 มีรูปแบบของความสัมพันธ์เหมือนกัน ความแตกต่างของความสัมพันธ์ R1 และ R2 หมายความว่า พบใน R1 และไม่พบใน R2 เขียนได้ในรูป R1 - R2 ตัวอย่าง การหาความแตกต่างของความสัมพันธ์ Player2000 และ Player 2001 แสดงดังตาราง 2-8
ตาราง 2-12 ความสัมพันธ์ผลลัพธ์ของ Player2000 - Player2001การหาความแตกต่างโดยใช้คำสั่ง SQL สามารถกระทำได้โดยการใช้คำสั่ง MINUS ระหว่างคำสั่ง SELECT SELECT name, position, age, height, weight FROM Player2000 MINUS SELECT name, position, age, height, weight FROM Player2001 6. Intersectionการทำ Intersection ระหว่างความสัมพันธ์ R1 และ R2 ผลลัพธ์ที่ได้จะเป็นความสัมพันธ์ที่เกิดจากแถวที่ซ้ำกันใน R1 และ R2 แถวใดที่ไม่ปรากฏใน R1 และ R2 เหมือนกันจะไม่อยู่ในความสัมพันธ์ผลลัพธ์ สามารถเขียนได้ในรูป R1 Ç R2 ตัวอย่าง การทำ Intersection ระหว่างความสัมพันธ์ Player2000 และ Player 2001 จะได้ผลลัพธ์ดังตาราง 2-9 และการทำ Intersection ใน SQL ก็คล้ายกับตัวอย่างการทำ Union และ Difference ข้างต้น เพียงแต่ใช้คำสั่ง INTERSECT คั่นระหว่างคำสั่ง SELECT
ตาราง 2-13 ความสัมพันธ์ผลลัพธ์ของ Player2000 Ç Player2001การหาความแตกต่างโดยใช้คำสั่ง SQL สามารถกระทำได้โดยการใช้คำสั่ง MINUS ระหว่างคำสั่ง SELECT SELECT name, position, age, height, weight FROM Player2000 INTERSECT SELECT name, position, age, height, weight FROM Player2001 7. Divisionการทำ Division ไม่ค่อยถูกใช้นักใน Relation Algebra แต่มีประโยชน์ในการค้นหาบางประเภท รูปแบบของ Division คือ R1/R2 เมื่อ R1 และ R2 เป็นความสัมพันธ์ ตัวอย่าง การค้นหาลูกจ้างที่ทำงานอยู่สองแผนกคือ CS และ Fin จากความสัมพันธ์ DEPTNAME ผลปรากฏว่า สิทธิ คือคนทำงานอยู่ทั้งสองแผนก สังเกตผลลัพธ์จากตาราง 2- 13 รูป 2-14 EMPDEPT / DEPTNAME |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|