Back to Home

DataBase System

Lesson1345679101112131415

Lesson 2 : Relational Data Model



Lesson Plan
Section No.
Section 1
Section 2
Section 3
Section 4
Test
PDF file
PPT File

<<Prev pageCourse MapNext page>>

Print content of this page
Save content of this page

 

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

name

position

age

Height

weight

สุเมธ

กองหน้า

26

183

82

ก้องเกียรติ

กองกลาง

24

180

78

ตาราง 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 operator

Projection คือ การเลือกเฉพาะบางคอลัมน์ของความสัมพันธ์ที่สนใจขึ้นมาแสดง โดยใช้สัญลักษณ์ p (pi) เขียนในรูปแบบของ p attributes r ผลลัพธ์จากการเลือกโดยใช้ p จะได้จำนวนแถวเท่ากับความสัมพันธ์ r แต่จำนวนดีกรีอาจจะเท่ากันหรือน้อยกว่าก็ได้ เทียบได้กับการใช้คำสั่ง SELECT … FROM ในภาษา SQL ตัวอย่างเช่น การเลือกดูข้อมูลเฉพาะน้ำหนักและส่วนสูงจากความสัมพันธ์ Player ผลลัพธ์จากการ project นี้แสดงได้ดังตาราง 2-4

p weight, height Player

 

SELECT weight, height

FROM Player

weight

height

82

183

78

175

71

169

78

180

ตาราง 2-8 ผลลัพธ์ของการใช้ projection : p weight, height Player

3. การใช้ Selection operator ร่วมกับ Projection operator

Selection operator () และ Projection operator () สามารถนำมาใช้ร่วมกันได้เพื่อเลือกข้อมูลจากความสัมพันธ์ที่ต้องการได้ เช่น การเลือก ชื่อ และ ตำแหน่งของผู้เล่นที่ส่วนสูงมากกว่า 178 เทียบได้กับคำสั่งSQLดังข้างล่าง และผลลัพธ์แสดงดังตาราง 2-5

p name, position (s height > 178 Player)

Name

position

สุเมธ

กองหน้า

ก้องเกียรติ

กองกลาง

ตาราง 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

Name

position

age

height

weight

สุเมธ

กองหน้า

26

183

82

ผลดี

ปีกซ้าย

21

175

78

ชาติชาย

กองหลัง

30

169

71

ก้องเกียรติ

กองกลาง

24

180

78

ความสัมพันธ์ Player2000 

Name

position

age

height

weight

เอกพจน์

ปีกขวา

20

180

78

สุชาติ

กองหน้า

19

179

80

ชาติชาย

กองหลัง

30

169

71

พิเชษฐ์

ปีกซ้าย

22

177

76

ความสัมพันธ์ Player2001

ตาราง 2-10 ความสัมพันธ์ Player2000 และ Player2001

Name

position

age

height

weight

สุเมธ

กองหน้า

26

183

82

ผลดี

ปีกซ้าย

21

175

78

ชาติชาย

กองหลัง

30

169

71

ก้องเกียรติ

กองกลาง

24

180

78

เอกพจน์

ปีกขวา

20

180

78

สุชาติ

กองหน้า

19

179

80

พิเชษฐ์

ปีกซ้าย

22

177

76

ตาราง 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

Name

position

age

height

weight

สุเมธ

กองหน้า

26

183

82

ผลดี

ปีกซ้าย

21

175

78

ก้องเกียรติ

กองกลาง

24

180

78

ตาราง 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

Name

position

age

height

weight

ชาติชาย

กองหลัง

30

169

71

ตาราง 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

 

 

Last Updated: 12/13/2001 11:23:12 AM
© โครงการเครือข่ายสารสนเทศเพื่อพัฒนาการศึกษา ทบวงมหาวิทยาลัย