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

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

Relational Algebra 357337 – Web Programming and Web Database 1.

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


งานนำเสนอเรื่อง: "Relational Algebra 357337 – Web Programming and Web Database 1."— ใบสำเนางานนำเสนอ:

1 Relational Algebra 357337 – Web Programming and Web Database 1

2 Relational Algebra Relational Algebra เป็นภาษาแบบ procedural query language พื้นฐานคำสั่งของ Relational Algebra คือ – select, project, rename → unary operations – union, set difference และ cartesian product → binary operations นอกจากคำสั่งพื้นฐานแล้วยังมีคำสั่งอื่นๆ เช่น – set intersection, natural join, division, และ assignment 2

3 Select Operations เป็นคำสั่งที่ใช้เลือก ข้อมูลในแถวที่ตรงกับเงื่อนไขที่ กำหนด เขียนแทนด้วยสัญลักษณ์ วิธีการใช้งาน Condition สามารถใช้เครื่องหมาย – การเปรียบเทียบ : =,, ≥, ≤, ≠ – Logic operation :, 3

4 Example : Select กำหนดตาราง สมุดบัญชี (Account) มี schema คือ – Account(Branch-name, Branch,city, Balance) – Branch-name คือ ชื่อสาขา – Branch-city คือ จังหวัดที่สาขานั้นตั้งอยู่ – Balance คือ ยอดเงินในบัญชี Branch-nameBranch-cityBalance BangkroyBangkok30,000 RattanathibetNonthaburi15,000 BangpoBangkok5,000 PakkretNonthaburi10,000 4

5 Example : Select จงเลือกข้อมูลของสาขาที่อยู่ในกรุงเทพ Branch-nameBranch-cityBalance BangkroyBangkok30,000 BangpoBangkok5,000 5

6 Example : Select จงเลือกข้อมูล ที่เงินในบัญชีมากกว่า 12,000 Branch-nameBranch-cityBalance BangkroyBangkok30,000 RattanathibetNonthaburi15,000 6

7 Example : Select จงเลือกข้อมูล ที่เงินในบัญชีมากกว่า 12,000 และบัญชีอยู่ที่ นนทบุรี Branch-nameBranch-cityBalance RattanathibetNonthaburi15,000 7

8 Project Operation Project operation เป็นตัวที่ใช้แสดงข้อมูลของ attribute ที่ต้องการ ใช้สัญลักษณ์ วิธีใช้งาน 8

9 Example : Project กำหนดตาราง สมุดบัญชี (Account) มี schema คือ – Account(Branch-name, Branch,city, Balance) – Branch-name คือ ชื่อสาขา – Branch-city คือ จังหวัดที่สาขานั้นตั้งอยู่ – Balance คือ ยอดเงินในบัญชี Branch-nameBranch-cityBalance BangrukBangkok30,000 RattanathibetNonthaburi15,000 BangpoBangkok5,000 PakkretNonthaburi10,000 9

10 Example : Project จงแสดงข้อมูลเฉพาะสาขา และจำนวนเงิน Branch-nameBalance Bangruk30,000 Rattanathibet15,000 Bangpo5,000 Pakkret10,000 10

11 Composition of Relational Operations เราสามารถใช้ Select และ Project ต่อเนื่องกันได้ เช่นจากตารางรถ (car) ต่อไปนี้ ให้แสดงเฉพาะชื่อ ของเจ้าของรถ Honda สีดำ OwnerBrandColorCity TorresHondaBlackNonthaburi KloseNissanGoldBangkok RobbenToyotaSilverBangkok ForlanHondaBlackBangkok 11

12 Union Operation ใช้เมื่อมีความต้องการเชื่อมข้อมูลกับตารางมากกว่า 1 ตาราง เช่น ตารางผู้กู้เงินจากธนาคาร (borrower) และ ตารางผู้ ฝากเงินกับธนาคาร (depositor) borrower depositor จงหา รหัสของลูกค้าของธนาคารที่กู้เงินกับธนาคารหรือมี เงินฝากกับธนาคาร Cust_idBalance 001-586-777100000 367-895-124580000 Cust_idBalance 001-586-7772000 589-741-856200000 784-875-124850000 12

13 Union Operation depositor รหัสลูกค้าที่ฝากเงินกับธนาคาร Cust_idBalance 001-586-7772000 589-741-856200000 784-875-124850000 Cust_id 001-586-777 589-741-856 784-875-124 13

14 Union Operation borrower รหัสลูกค้าที่กู้เงินกับธนาคาร Cust_idBalance 001-586-777100000 367-895-124580000 Cust_id 001-586-777 367-895-124 14

15 Union Operation Cust_idBalance 001-586-777100000 367-895-124580000 Cust_idBalance 001-586-7772000 589-741-856200000 784-875-124850000 borrower depositor Cust_id 001-586-777 367-895-124 Cust_id 001-586-777 589-741-856 784-875-124 Cust_id 001-586-777 367-895-124 589-741-856 784-875-124 15

16 Set Difference Operation ใช้เพื่อหาข้อมูลที่อยู่ในความสัมพันธ์หนึ่งแต่ไม่ในอีก ความสัมพันธ์หนึ่ง เช่น ตารางผู้กู้เงินจากธนาคาร (borrower) และ ตารางผู้ฝาก เงินกับธนาคาร (depositor) borrower depositor จงหา รหัสของลูกค้าของธนาคารที่กู้เงินกับธนาคาร แต่ไม่มีเงิน ฝากกับธนาคาร Cust_idBalance 001-586-777100000 367-895-124580000 Cust_idBalance 001-586-7772000 589-741-856200000 784-875-124850000 16

17 Set Difference Operation depositor รหัสลูกค้าที่ฝากเงินกับธนาคาร Cust_idBalance 001-586-7772000 589-741-856200000 784-875-124850000 Cust_id 001-586-777 589-741-856 784-875-124 17

18 Set Difference Operation borrower รหัสลูกค้าที่กู้เงินกับธนาคาร Cust_idBalance 001-586-777100000 367-895-124580000 Cust_id 001-586-777 367-895-124 18

19 Set Difference Operation Cust_idBalance 001-586-777100000 367-895-124580000 Cust_idBalance 001-586-7772000 589-741-856200000 784-875-124850000 borrower depositor Cust_id 001-586-777 367-895-124 Cust_id 001-586-777 589-741-856 784-875-124 Cust_id 367-895-124 19

20 The Cartesian-Product Operation Cartesian-Product ใช้สัญลักษณ์คือ X (cross) เป็นการรวมข้อมูลของ 2 relations เข้าด้วยกัน การใช้งาน เช่น table1 x table2 ตัวอย่าง : มี 2 ตาราง ตารางกู้เงิน (borrower) และ ตารางฝากเงิน (depositor) Cust_idBalance 001-586-777100000 367-895-124580000 Cust_idBalance 001-586-7772000 589-741-856200000 784-875-124850000 borrowerdepositor 20

21 The Cartesian-Product Operation Cust_idBalance 001-586-777100000 367-895-124580000 Cust_idBalance 001-586-7772000 589-741-856200000 784-875-124850000 borrower depositor borrower X depositor Cust_idBalanceCust_idBalance 001-586-777100000001-586-7772000 21

22 The Cartesian-Product Operation Cust_idBalance 001-586-777100000 367-895-124580000 Cust_idBalance 001-586-7772000 589-741-856200000 784-875-124850000 borrower depositor borrower X depositor Cust_idBalanceCust_idBalance 001-586-777100000001-586-7772000 001-586-777100000589-741-856200000 22

23 The Cartesian-Product Operation Cust_idBalance 001-586-777100000 367-895-124580000 Cust_idBalance 001-586-7772000 589-741-856200000 784-875-124850000 borrower depositor borrower X depositor Cust_idBalanceCust_idBalance 001-586-777100000001-586-7772000 001-586-777100000589-741-856200000 001-586-777100000784-875-124850000 23

24 The Cartesian-Product Operation Cust_idBalance 001-586-777100000 367-895-124580000 Cust_idBalance 001-586-7772000 589-741-856200000 784-875-124850000 borrower depositor borrower X depositor Cust_idBalanceCust_idBalance 001-586-777100000001-586-7772000 001-586-777100000589-741-856200000 001-586-777100000784-875-124850000 367-895-124580000001-586-7772000 24

25 The Cartesian-Product Operation Cust_idBalance 001-586-777100000 367-895-124580000 Cust_idBalance 001-586-7772000 589-741-856200000 784-875-124850000 borrower depositor borrower X depositor Cust_idBalanceCust_idBalance 001-586-777100000001-586-7772000 001-586-777100000589-741-856200000 001-586-777100000784-875-124850000 367-895-124580000001-586-7772000 367-895-124580000589-741-856200000 25

26 The Cartesian-Product Operation Cust_idBalance 001-586-777100000 367-895-124580000 Cust_idBalance 001-586-7772000 589-741-856200000 784-875-124850000 borrower depositor borrower X depositor Cust_idBalanceCust_idBalance 001-586-777100000001-586-7772000 001-586-777100000589-741-856200000 001-586-777100000784-875-124850000 367-895-124580000001-586-7772000 367-895-124580000589-741-856200000 367-895-124580000784-875-124850000 26

27 The Cartesian-Product Operation Cust_idBalance 001-586-777100000 367-895-124580000 Cust_idBalance 001-586-7772000 589-741-856200000 784-875-124850000 borrower depositor borrower X depositor Borrower.Cust_idBorrower.BalanceDepositor.Cust_idDepositor.Balance 001-586-777100000001-586-7772000 001-586-777100000589-741-856200000 001-586-777100000784-875-124850000 367-895-124580000001-586-7772000 367-895-124580000589-741-856200000 367-895-124580000784-875-124850000 X 27

28 ตัวอย่าง Cust_idBalance 001-586-777100000 367-895-124580000 Cust_idBalance 001-586-7772000 589-741-856200000 784-875-124850000 borrower depositor หารหัสลูกค้าที่กู้และฝากเงินกับธนาคาร Borrower.Cust_idBorrower.BalanceDepositor.Cust_idDepositor.Balance 001-586-777100000001-586-7772000 001-586-777100000589-741-856200000 001-586-777100000784-875-124850000 367-895-124580000001-586-7772000 367-895-124580000589-741-856200000 367-895-124580000784-875-124850000 28

29 The Rename Operation ใช้สำหรับเปลี่ยนชื่อของตาราง ใช้สัญลักษณ์ การใช้งาน – x ชื่อของตารางใหม่ – E ตารางหรือ expression 29

30 The Rename Operation Cust_idBalance 001-586-777100000 367-895-124580000 Cust_idBalance 001-586-777100000 367-895-124580000 borrower X Borrower.Cust_idBorrower.BalanceBorrower.Cust_idBorrower.Balance 001-586-777100000001-586-777100000 001-586-777100000367-895-124580000 367-895-124580000001-586-777100000 367-895-124580000367-895-124580000 30

31 The Rename Operation Cust_idBalance 001-586-777100000 367-895-124580000 Cust_idBalance 001-586-777100000 367-895-124580000 borrower X Borrower.Cust_idBorrower.Balanceb2.Cust_idb2.Balance 001-586-777100000001-586-777100000 001-586-777100000367-895-124580000 367-895-124580000001-586-777100000 367-895-124580000367-895-124580000 31

32 Example: The Rename Operation Cust_idBalance 001-586-777100000 367-895-124580000 579-888-999250000 จากตาราง ผู้กู้เงิน (borrower) จงเขียน relational algebra เพื่อหาผู้ที่กู้เงินมากที่สุด 32

33 Example :The Rename Operation Cust_idBalance 001-586-777100000 367-895-124580000 579-888-999250000 Cust_idBalance 001-586-777100000 367-895-124580000 579-888-999250000 borrower X Borrower.Cust_idBorrower.Balanc e b2.Cust_idb2.Balance 001-586-777100000001-586-777100000 001-586-777100000367-895-124580000 001-586-777100000579-888-999250000 367-895-124580000001-586-777100000 367-895-124580000367-895-124580000 367-895-124580000579-888-999250000 579-888-999250000001-586-777100000 579-888-999250000367-895-124580000 579-888-999250000579-888-999250000 33

34 Example :The Rename Operation borrowerX Borrower.Cust_idBorrower.Balanc e b2.Cust_idb2.Balance 001-586-777100000001-586-777100000 001-586-777100000367-895-124580000 001-586-777100000579-888-999250000 367-895-124580000001-586-777100000 367-895-124580000367-895-124580000 367-895-124580000579-888-999250000 579-888-999250000001-586-777100000 579-888-999250000367-895-124580000 579-888-999250000579-888-999250000 Borrower.Cust_idBorrower.Balanc e b2.Cust_idb2.Balance 001-586-777100000367-895-124580000 001-586-777100000579-888-999250000 579-888-999250000367-895-124580000 34

35 Example :The Rename Operation Borrower.Cust_idBorrower.Balanc e b2.Cust_idb2.Balance 001-586-777100000367-895-124580000 001-586-777100000579-888-999250000 579-888-999250000367-895-124580000 Borrower.Cust_idBorrower.Balanc e 001-586-777100000 001-586-777100000 579-888-999250000 35

36 Example :The Rename Operation Borrower.Cust_idBorrower.Balanc e 001-586-777100000 001-586-777100000 579-888-999250000 Cust_idBalance 001-586-777100000 367-895-124580000 579-888-999250000 - Borrower - Cust_idBalance 367-895-124580000 36

37 Example :The Rename Operation Cust_idBalance 367-895-124580000 Borrower - Cust_id 367-895-124 37

38 Additional Operations 38

39 The Set-Intersection Operation การทำงานเหมือน intersect ของ set ใช้สัญลักษณ์ ตัวอย่าง หารหัสลูกค้าที่กู้และฝากเงินกับ ธนาคาร Cust_idBalance 001-586-777100000 367-895-124580000 Cust_idBalance 001-586-7772000 589-741-856200000 784-875-124850000 borrowerdepositor Cust_id 001-586-777 39

40 The Natural-Join Operation เนื่องจากการใช้ cartesian product เชื่อมต่อ 2 ตารางเข้าด้วยกันทุกคน ทำให้รูปสมการยาว จึง เกิด Natural-Join Natural-join จะบังคับ operation = ให้กับฟิลด์ที่ เหมือนกันของ 2 ตาราง ใช้สัญลักษณ์ 40

41 The Natural-Join Operation ตัวอย่าง : มี 2 ตาราง ตารางชื่อลูกค้า (CustName) และ ตารางเมืองของลูกค้า (CustCity) จงสร้างตารางสัมพันธ์ที่แสดง รหัสลูกค้า, ชื่อลูกค้า และ เมืองที่ลูกค้า อยู่ Cust_idName 001-586-777John 367-895-124DJ Cust_idCity 001-586-777Bangkok 367-895-124Nonthaburi CustNameCustCity วิธีที่ใช้ Cartesian product : วิธีที่ใช้ Natural-Join : 41

42 The Natural-Join Operation Natural-Join Operation เป็นแบบ associative คือไม่มีผลก่อนหลัง A B C = (A B ) C = A ( B C ) 42

43 The Division Operation ใช้สัญลักษณ์ ใช้สำหรับเมื่อเราต้องการหาแบบ “for all” NameCityPostal JohnParisP5 JohnParisP10 SmithLyonP6 SmithParisP10 JRLyonP3 CityPostal ParisP5 ParisP10 Name John 43

44 ผลการทำ Relational Algebra operation xyxy abcabc aabbccaabbcc xyxyxyxyxyxy select (  ) project (  ) union (  )difference (  )rename (  ) cartesian (  ) 44

45 ผลการทำ Relational Algebra Operation intersection (  ) xyxy a aabcddaabcdd xyxyzyxyxyzy division (  )join ( ) 45


ดาวน์โหลด ppt Relational Algebra 357337 – Web Programming and Web Database 1.

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


Ads by Google