งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

Relational Algebra Week 3 Online available at

งานนำเสนอที่คล้ายกัน


งานนำเสนอเรื่อง: "Relational Algebra Week 3 Online available at"— ใบสำเนางานนำเสนอ:

1 Relational Algebra Week 3 Online available at

2 2 Contents  Relation Algebra  โอเปอเรชันของ Relation Algebra (Selection, Projection, Cartesian product, Union, Set difference, Join, Intersection, Division)  Relation Calculus  Tuple-oriented relation calculus  Domain-oriented relation calculus

3 3 ฐานข้อมูลของบริษัทบ้านในฝัน บริษัทบ้านในฝัน เป็นบริษัทที่บริการบ้านพักอาศัยแก่ผู้ที่ต้องการหา บ้านเช่า และมีสาขากระจายอยู่ทั่วประเทศไทย บริษัทจะเป็นตัวแทนจัดหาบ้านเช่าแก่ผู้ที่ต้องการไม่ว่าจะอยู่ใน จังหวัดใดก็ตาม บริษัทมีข้อมูลบ้านเช่าที่เจ้าของบ้านเช่าเข้าร่วมโครงการกับบริษัท ดังนั้นบริษัทจึงสามารถจัดหาบ้านเช่าไม่ว่าจะอยู่ในจังหวัดใดให้กับ ผู้ที่ต้องการเช่าได้

4 4 Schema ฐานข้อมูล บางส่วนของบริษัทบ้านในฝัน Branch (Bno, Street, Area, City, Pcode, Tel_No, Fax_No) Staff (Sno, Fname, Lname, Address, Tel_No, Position, Sex, DOB, Salary, Bno) Property_for_rent (Pno, Street, Area, City, Pcode, Rooms, Rent, Ono, Sno, Bno) Renter (Rno, Fname, Lname, Tel_No, Pref_Type, Max_Rent, Bno) Owner (Ono, Fname, Lname, Address, Tel_No) Viewing (Rno, Pno, Date, Comment)

5 5 Schema ฐานข้อมูล บางส่วนของบริษัทบ้านในฝัน โดยที่ Branch คือ สาขาที่เปิดให้บริการของบริษัท Staff คือ พนักงานของบริษัทบ้านในฝัน Property_for_rent คือ บ้านที่ให้เช่า Renter คือ ลูกค้าหรือผู้เช่าพักอาศัย Ownerคือ เจ้าของบ้านเช่า Viewingคือ รายละเอียดต่างๆ ที่ลูกค้ามาดูบ้านเช่า

6 6 ตัวอย่างรีเลชันบางส่วนของฐานข้อมูลบริษัทบ้านในฝัน Branch BnoStreetAreaCityPcodeTel_NoFax_No B521 Huaykaew Rd.MuangChiangmai B756 Paholyothin Rd.PrompiramPhitsanulok B3143 Wipavadee Rd.LakseeBangkok B422 Sahamitr Rd.WiangchaiChiangrai B211 Paholyothin Rd.Chiangmai

7 7 ตัวอย่างรีเลชันบางส่วนของฐานข้อมูลบริษัทบ้านในฝัน Staff SnoFnameLnameAddressTel_NoPositionSexDOBSalaryBno SL21ChuchaiSuksriChaingmai ManagerM1-Oct B5 SG37SiriratManeejunBangkok Snr AsstF10-Nov B3 SG14SomsakSae-TangBangkok DeputyM24-Mar B3 SA09PiyachatEamsukPhitsanulok AssistantF19-Feb B7 SG05PornratThanasilpBangkok ManagerF3-jun B3 SL41LaddaWongdeeTak AssistantF13-Jun B5

8 8 ตัวอย่างรีเลชันบางส่วนของฐานข้อมูลบริษัทบ้านในฝัน Property_for_rent PnoStreetAreaCityPcodeTypeRoomsRentOnoSnoBno PA1419 Paholyothin Rd.ArunyigPhitsanulok65000House6650CO46SA09B7 PL9414 Lumhuay Rd.SritanowChiangmai50310Flat4400Co87SL41B5 PG046 Wipavadee Rd.LakseeBangkok10200Flat3350CO40SG14B3 PG362 Prachautit Rd.Bangkok10160Flat3375CO93SG37B3 PG2118 Payathai Rd.PayathaiBangkok10400House5600CO87SG37B3 PG165 Payathai Rd.PayathaiBangkok10400Flat4450CO93SG14B3

9 9 ตัวอย่างรีเลชันบางส่วนของฐานข้อมูลบริษัทบ้านในฝัน Renter RnoFnameLnameTel_NoPref_TypeMax_RentBno CR76YongyutThanalerd Flat425B5 CR56SiraneePromjun Flat350B3 CR74SrisamornHirunpong House750B3 CR62TawanSongsrisuk Flat600B7

10 10 ตัวอย่างรีเลชันบางส่วนของฐานข้อมูลบริษัทบ้านในฝัน Owner OnoFnameLnameAddressTel_No CO46NiramolPatanaPhitsanulok CO87ChatchaiChunsriBangkok CO40KandaSengmaBangkok CO93SukjaiSae-leeBangkok

11 11 ตัวอย่างรีเลชันบางส่วนของฐานข้อมูลบริษัทบ้านในฝัน Viewing RnoPnoDateComment CR56PA1424-May-2002too small CR76PG0420-Apr-2002to remote CR56PG0426-May-2002 CR62PA1414-May-2002no dining room CR56PG3628-Apr-2002

12 12 Relational Algebra คือ ทฤษฎีทางภาษาสำหรับการปฏิบัติการระหว่างข้อมูลต่างๆ ในรี เลชันหนึ่งหรือหลายๆ รีเลชัน เพื่อให้เกิดรีเลชันใหม่ขึ้นมา โดยจะไม่ กระทบกับรีเลชันหลัก โอเปอร์เรชันพื้นฐาน คือ Selection Projection Cartesian Product Union Set difference มีโอเปอเรชันเพิ่มอีก 3 โอเปอเรชัน คือ Join Intersection Division

13 13 Selection or Restriction (  ) เป็นการเลือกแถวจากรีเลชัน 1 รีเลชันหรือมากกว่า โดยผลลัพธ์จะเป็น รีเลชันใหม่โดยมีจำนวนแถวตามเงื่อนไขที่กำหนดขึ้น เช่น 0 แถวขึ้น ไป แต่ต้องไม่มากกว่าจำนวนแถวทั้งหมดที่มีในรีเลชันเดิม  คือ สัญลักษณ์ของ Selection predicate คือ เงื่อนไขที่กำหนด R คือ ชื่อของความสัมพันธ์หรือรีเลชันที่จะทำการ Selection  predicate (R)

14 14 Selection or Restriction (  ) สามารถใช้โอเปอเรชันทางตรรกะประกอบได้ด้วย เช่น  (AND)  (OR)  (NOT)

15 15 Selection or Restriction (  ) ตัวอย่าง แสดงรายการ Staff ทั้งหมดที่มีเงินเดือนมากกว่า บาท ผลลัพธ์จะได้แถวทั้งหมดของ Staff ที่มีเงินเดือนมากกว่า บาท  salary>10000 (Staff)

16 16 Selection or Restriction (  ) ตัวอย่าง ผลลัพธ์จะได้แถวทั้งหมดของ Staff ที่มีเงินเดือนมากกว่า บาท SnoFnameLnameAddressTel_NoPositionSexDOBSalaryBno SL21ChuchaiSuksriChaingmai ManagerM1-Oct B5 SG37SiriratManeejunBangkok Snr AsstF10-Nov B3 SG14SomsakSae-TangBangkok DeputyM24-Mar B3 SG05PornratThanasilpBangkok ManagerF3-jun B3

17 17 Projection (¶) เป็นการเลือกคอลัมน์จากรีเลชัน 1 รีเลชันหรือมากกว่า โดยผลลัพธ์จะ เป็นรีเลชันใหม่โดยมีคอลัมน์ตามเงื่อนไขที่กำหนดขึ้น ¶ คือ สัญลักษณ์ของ Projection col1,col2,…,coln คือ ชื่อคอลัมน์หรือแอทริบิวต์ที่เลือก R คือ ชื่อของความสัมพันธ์หรือรีเลชันที่จะทำการ Projection ¶ col1,col2,…,coln (R)

18 18 ตัวอย่าง แสดงรหัส ชื่อ และเงินเดือนในรีเลชัน Staff ผลลัพธ์จะแสดงข้อมูลทุกแถวในรีเลชันStaff แต่แสดงเฉพาะคอลัมน์ หรือแอทริบิวต์ คือ Sno, Fname, Lname และ Salary ¶ sno, fname, lname, salary (Staff) Projection (¶)

19 19 Projection (¶) ตัวอย่างแสดงรหัส ชื่อ และเงินเดือนในรีเลชัน Staff SnoFnameLnameSalary SL21ChuchaiSuksri30000 SG37SiriratManeejun12000 SG14SomsakSae-Tang18000 SA09PiyachatEamsuk9000 SG05PornratThanasilp24000 SL41LaddaWongdee9000

20 20 Cartesian product ( × ) เป็นการรวมความสัมพันธ์ ซึ่งจะเป็นผลคูณของรีเลชัน 2 รีเลชัน โดย ผลลัพธ์จะเป็นแถวจากรีเลชันหนึ่ง (R) ที่จะ join กับทุกๆ แถวในอีกรี เลชันหนึ่ง (S) R และ S คือรีเลชันที่จะทำการ Cartesian product R×S

21 21 ตัวอย่าง จงหาผลคูณระหว่าง Renter และ Viewing โดยจะเลือกเฉพาะบาง คอลัมน์ของแต่ละรีเลชันเท่านั้น (¶ rno, fname, lname (Renter)) × (¶ rno, pno, comment (Viewing)) Cartesian product (×)

22 22 Cartesian product (×) ตัวอย่าง ผลลัพธ์ของ RnoFnameLname CR76YongyutThanalerd CR56SiraneePromjun CR74SrisamornHirunpong CR62TawanSongsrisuk (¶ rno, fname, lname (Renter)) (¶ rno, pno, comment (Viewing)) RnoPnoComment CR56PA14too small CR76PG04to remote CR56PG04 CR62PA14no dining room CR56PG36

23 23 Cartesian product (×) ตัวอย่าง ผลลัพธ์ของ (¶ rno, fname, lname (Renter)) × (¶ rno, pno, comment (Viewing))

24 24 Cartesian product (×) ตัวอย่าง ผลลัพธ์ของ  renter.rno=viewing.rno (¶ rno, fname, lname (Renter)) × (¶ rno, pno, comment (Viewing))

25 25 เป็นการเชื่อมความสัมพันธ์ด้วยการนำรีเลชัน R และ S มาทำ การ Union กัน ผลลัพธ์ที่ได้ จะมีจำนวนทูเพิลทั้งหมดจากรีเลชัน R และ S โดยที่ทูเพิลที่ซ้ำกันจะถูกกำจัดไป R และ S คือรีเลชันที่จะทำการ Union R  S Union (  )

26 26 Union (  ) ตัวอย่าง ผลลัพธ์ของ ( ¶ area (Branch))  ( ¶ area (Property_for_Rent))

27 27 เป็นการหาความแตกต่างระหว่างสองความสัมพันธ์ โดยการ นำรีเลชันทั้งสองมาทำการหาความต่าง หรือ Difference ผลลัพธ์ที่ได้ จะมีเฉพาะทูเพิลที่อยู่ในรีเลชัน R แต่ไม่อยู่ในรีเลชัน S R และ S คือรีเลชันที่จะทำการ Difference R - S Set Difference (-)

28 28 Set Difference (-) ตัวอย่าง ผลลัพธ์ของ ¶ city (Branch) - ¶ city (Property_for_Rent) City Chiangrai

29 29 ใช้สำหรับการดึงข้อมูลจากความสัมพันธ์สองความสัมพันธ์ ที่มีแอทริบิวต์ที่อ้างอิงถึงกัน มีการใช้เครื่องหมาย, >=, =, <> เป็นโอเปอเรชันในการเปรียบเทียบ ประเภทของการ Join 1. Theta-join 2. Equi-join 3. Natural-join 4. Outer join แบ่งเป็น Right Outer Join กับ Left Outer Join 5. Semi-join Join operation

30 30 1. Theta-join ผลลัพธ์ที่ได้คล้ายกับ Product Join operation R S

31 31 1. ตัวอย่าง Theta-join Join operation (¶ rno, fname, lname (Renter)) (¶ rno, pno, comment (Viewing))

32 32 2. Equi-join เป็นส่วนหนึ่งของ Theta-join เป็นการ join บนแอทริบิวต์ที่ตรงกันของ 2 รีเลชัน Join operation

33 33 2. ตัวอย่าง Equi-join Join operation

34 34 3. Natural-join คล้ายกับ Equi-join แต่จะตัดแอทริบิวต์ที่ซ้ำกันออกไป Join operation

35 35 3. ตัวอย่าง Natural-join Join operation

36 36 4. Outer-join การทำ Natural join แต่ถ้าข้อมูลไม่ตรงกันจะไม่ ตัดทิ้ง ส่วนค่าข้อมูลในแอทริบิวต์ใดที่ไม่มีค่าก็ เว้นว่างไว้ เป็นค่า Null แบ่งเป็น Left outer join ใช้สัญลักษณ์ Right outer join ใช้สัญลักษณ์ Join operation

37 37 Join operation ตัวอย่างรีเลชันสำหรับการทำ Outer Join C1L1 si d nam e ag e scod e 11dusti n 45S01 22lubbe r 55S02 33rusty35S03 44Cute20S04 sco d e snam e loca tio n S01Labora tory 10 S02Atm12 S03cantee n 5 S05Scienc e 6

38 38 Join operation ตัวอย่าง Left Outer Join C1 C1.scode=L1.scode L1 sidnameagescodesnamelocation 11dustin45S01Laboratory10 22lubber55S02Atm12 33rusty35S03Canteen5 44Cute20S04Null

39 39 Join operation ตัวอย่าง Right Outer Join si d na m e ageage sco d e snam e loca tio n 11dus ti n 45S01Labora tory 10 22lub b er 55S02Atm12 33rust y 35S03Cantee n 5 Null S05Scienc e 6 C1 C1.scode=L1.scode L1

40 40 5. Semi-join เป็นการ join ระหว่าง 2 รีเลชัน ผลลัพธ์จะแสดงเฉพาะข้อมูลของรีเลชันที่อยู่ ทางซ้าย ใช้สัญลักษณ์ Join operation

41 41 Join operation ตัวอย่าง Semi-join ให้แสดงรายละเอียดของ Staff ที่ทำงานในสาขาที่ตั้งอยู่ที่หลัก สี่ (Laksee) Staff staff.bno=branch.bno and branch.area = ‘Laksee’ Branch

42 42 Join operation ผลลัพธ์ของตัวอย่าง Semi-join ให้แสดงรายละเอียดของ Staff ที่ทำงานในสาขาที่ตั้งอยู่ที่หลัก สี่ (Laksee)

43 43 Intersection (  ) เป็นการดำเนินการระหว่าง 2 รีเลชัน ผลลัพธ์จะได้ทูเพิลที่อยู่ในรีเลชัน R และ S R  S

44 44 Intersection (  ) ตัวอย่าง

45 45 Division (  ) เป็นการดำเนินการระหว่าง 2 รีเลชัน ผลลัพธ์จะได้ทูเพิลที่อยู่ในรีเลชันที่เป็นตัวตั้ง และจะมีเฉพาะ แอทริบิวต์ที่ไม่ใช่แอทริบิวต์ที่เป็นตัวหาร รีเลชันที่เป็นตัวหารจะเป็นสับเซตของรีเลชันที่เป็นตัวตั้ง R  S

46 46 Division (  ) ตัวอย่าง

47 47 Relational Calculus เป็นการปฏิบัติการแบบ nonprocedural หรือ declarative มีบทบาทสำคัญสำหรับการออกแบบภาษา SQL และ QBE ยึดหลัก ดูอะไร (What) มากกว่า ดูอย่างไร (How) ผู้ใช้สามารถกำหนดรูปแบบการค้นหาในลักษณะของนิพจน์ หรือสมการทางคณิตศาสตร์ที่มี ตัวแปร ค่าคงที่ ตัวกระทำ และตัวเชื่อม ซึ่งผลลัพธ์จะได้ทูเพิลจากความสัมพันธ์ที่ส่งผล ให้สมการทางคณิตศาสตร์เป็นจริง

48 48 Relational Calculus มี 2 รูปแบบ คือ  Tuple-oriented relational calculus  Domain- oriented relational calculus เนื่องจาก relational calculus เน้นที่ดูอะไร จึงไม่มีกฎเกณฑ์ หรือรูปแบบในการเขียนที่ชัดเจน ในครั้งนี้จะขอยึดรูปแบบของ Ullman (1988)

49 49 Relational Calculus  Tuple-oriented relational calculus สนใจค้นหาทูเพิลจากเงื่อนไขที่กำหนดที่เป็นจริง โดย ตั้งอยู่บน tuple variables ที่ทำหน้าที่แทนทูเพิลของรีเล ชันนั้นแทน เพื่อใช้อ้างถึงช่วงข้อมูลตามเงื่อนไข

50 50 Relational Calculus  Tuple-oriented relational calculus ตัวอย่าง กำหนดให้ S คือ รีเลชัน Staff เขียนได้ว่า RANGE OF S IS Staff ในการแสดงคิวรีว่า “ให้ค้นหากลุ่มของทูเพิล S ทั้งหมดตาม P(S) ที่เป็นจริง” เขียนเป็น โดยที่ P คือ สูตรหรือเงื่อนไขทางตรรกะ

51 51 Relational Calculus  Tuple-oriented relational calculus ตัวอย่าง เมื่อต้องการให้ค้นหา Sno, Fname, Lname, Address, Tel_No, Position, Sex, DOB และBno ของรีเลชัน Staff ที่มีเงินเดือนมากกว่า บาท เขียนเป็น

52 52 Relational Calculus  Tuple-oriented relational calculus ตัวอย่าง ถ้าต้องการแสดง Sno, Fname, Lname ของรีเลชัน Staff ที่มีเงินเดือนมากกว่า บาท เขียนเป็น

53 53 Relational Calculus  Tuple-oriented relational calculus เราสามารถนำ quantifiers มาใช้งานในสูตรได้ คือ Existential quantifiers  (there exists) Universal quantifiers  (for all) ใช้โอเปอเรเตอร์ทางตรรกะ เช่น   ~ ร่วมด้วยได้

54 54 Relational Calculus  Tuple-oriented relational calculus ตัวอย่าง แสดงทูเพิลจาก Branch ที่มี Bno เหมือนกับ Bno ในStaff และอยู่ในจังหวัด Phitsanulok

55 55 Relational Calculus  Tuple-oriented relational calculus ตัวอย่าง แสดงทูเพิลจาก Branch ไม่อยู่ในจังหวัด Tak

56 56 Relational Calculus  Tuple-oriented relational calculus ตัวอย่าง แสดงชื่อ manager ที่มีเงินเดือนสูงกว่า บาท

57 57 Relational Calculus  Tuple-oriented relational calculus ตัวอย่าง แสดงข้อมูลพนักงานที่ดูแลบ้านเช่าใน Bangkok

58 58 Relational Calculus  Tuple-oriented relational calculus ตัวอย่าง แสดงชื่อพนักงานที่ ณ ปัจจุบันไม่ได้ดูแลบ้านเช่าใดๆ

59 59 Relational Calculus  Tuple-oriented relational calculus ตัวอย่าง แสดงชื่อ และหมายเหตุของผู้เช่าที่เข้ามาดูบ้านเช่าใน Bangkok

60 60 Relational Calculus  Domain-oriented relational calculus ใช้ตัวแปรจากโดเมนของทูเพิลในรีเลชัน โดยพิจารณา จากตัวอย่างต่อไปนี้

61 61 Relational Calculus  Domain-oriented relational calculus ตัวอย่าง ค้นหาชื่อของ manager ที่มีเงินเดือนสูงกว่า 25000

62 62 Relational Calculus  Domain-oriented relational calculus ตัวอย่าง แสดงชื่อพนักงานที่ดูแลบ้านเช่าใน Bangkok {fname, lname, pno |  sno Staff(sno, fname, lname)   city (Property_for_Rent(pno, sno)  P.city = “Bangkok”)}

63 63 แบบฝึกหัด ให้เขียน Relational Algebra และ Relational Calculus โดยใช้รีเลชัน ด้านล่าง

64 64 แบบฝึกหัด ให้เขียน Relational Algebra และ Relational Calculus โดยใช้รีเลชัน ด้านล่าง

65 65 แบบฝึกหัด  แสดงรายละเอียดของวิชาทั้งหมด  แสดงรายละเอียดของคณะทั้งหมด  แสดงรหัสสาขาและชื่อสาขาที่สังกัดคณะ “ENG”  แสดงรายการนักศึกษาที่มี GPA ต่ำกว่า 2.00  แสดงรายการนักศึกษาที่สังกัดสาขา “IT” หรือ “CS”  แสดงเกรดของรายวิชาที่ลงทะเบียนเรียนทั้งหมดของนักศึกษารหัส “ ”


ดาวน์โหลด ppt Relational Algebra Week 3 Online available at

งานนำเสนอที่คล้ายกัน


Ads by Google