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

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

– Web Programming and Web Database

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


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

1 357337 – Web Programming and Web Database
Relational Algebra – Web Programming and Web Database

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

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

4 Example : Select กำหนดตาราง สมุดบัญชี (Account) มี schema คือ
Account(Branch-name, Branch,city, Balance) Branch-name คือ ชื่อสาขา Branch-city คือ จังหวัดที่สาขานั้นตั้งอยู่ Balance คือ ยอดเงินในบัญชี Branch-name Branch-city Balance Bangkroy Bangkok 30,000 Rattanathibet Nonthaburi 15,000 Bangpo 5,000 Pakkret 10,000

5 Example : Select จงเลือกข้อมูลของสาขาที่อยู่ในกรุงเทพ Bangkroy Bangkok
Branch-name Branch-city Balance Bangkroy Bangkok 30,000 Bangpo 5,000

6 Example : Select จงเลือกข้อมูล ที่เงินในบัญชีมากกว่า 12,000 Bangkroy
Branch-name Branch-city Balance Bangkroy Bangkok 30,000 Rattanathibet Nonthaburi 15,000

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

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

9 Example : Project กำหนดตาราง สมุดบัญชี (Account) มี schema คือ
Account(Branch-name, Branch,city, Balance) Branch-name คือ ชื่อสาขา Branch-city คือ จังหวัดที่สาขานั้นตั้งอยู่ Balance คือ ยอดเงินในบัญชี Branch-name Branch-city Balance Bangruk Bangkok 30,000 Rattanathibet Nonthaburi 15,000 Bangpo 5,000 Pakkret 10,000

10 Example : Project จงแสดงข้อมูลเฉพาะสาขา และจำนวนเงิน Bangruk 30,000
Branch-name Balance Bangruk 30,000 Rattanathibet 15,000 Bangpo 5,000 Pakkret 10,000

11 Composition of Relational Operations
เราสามารถใช้ Select และ Project ต่อเนื่องกันได้ เช่นจากตารางรถ (car) ต่อไปนี้ ให้แสดงเฉพาะชื่อ ของเจ้าของรถ Honda สีดำ Owner Brand Color City Torres Honda Black Nonthaburi Klose Nissan Gold Bangkok Robben Toyota Silver Forlan

12 Union Operation ใช้เมื่อมีความต้องการเชื่อมข้อมูลกับตารางมากกว่า 1 ตาราง เช่น ตารางผู้กู้เงินจากธนาคาร (borrower) และ ตารางผู้ฝากเงินกับธนาคาร (depositor) borrower depositor จงหา รหัสของลูกค้าของธนาคารที่กู้เงินกับธนาคารหรือมีเงินฝากกับธนาคาร Cust_id Balance 2000 200000 850000 Cust_id Balance 100000 580000

13 Union Operation รหัสลูกค้าที่ฝากเงินกับธนาคาร depositor Cust_id
Balance 2000 200000 850000 depositor รหัสลูกค้าที่ฝากเงินกับธนาคาร Cust_id

14 Union Operation รหัสลูกค้าที่กู้เงินกับธนาคาร borrower Cust_id Balance
100000 580000 borrower รหัสลูกค้าที่กู้เงินกับธนาคาร Cust_id

15 Union Operation depositor borrower Cust_id Balance 001-586-777 2000
200000 850000 Cust_id Balance 100000 580000 Cust_id Cust_id Cust_id

16 Set Difference Operation
ใช้เพื่อหาข้อมูลที่อยู่ในความสัมพันธ์หนึ่งแต่ไม่ในอีกความสัมพันธ์หนึ่ง เช่น ตารางผู้กู้เงินจากธนาคาร (borrower) และ ตารางผู้ฝากเงินกับธนาคาร (depositor) borrower depositor จงหา รหัสของลูกค้าของธนาคารที่กู้เงินกับธนาคาร แต่ไม่มีเงินฝากกับธนาคาร Cust_id Balance 2000 200000 850000 Cust_id Balance 100000 580000

17 Set Difference Operation
Cust_id Balance 2000 200000 850000 depositor รหัสลูกค้าที่ฝากเงินกับธนาคาร Cust_id

18 Set Difference Operation
Cust_id Balance 100000 580000 borrower รหัสลูกค้าที่กู้เงินกับธนาคาร Cust_id

19 Set Difference Operation
depositor borrower Cust_id Balance 2000 200000 850000 Cust_id Balance 100000 580000 Cust_id Cust_id Cust_id

20 The Cartesian-Product Operation
Cartesian-Product ใช้สัญลักษณ์คือ X (cross) เป็นการรวมข้อมูลของ 2 relations เข้าด้วยกัน การใช้งาน เช่น table1 x table2 ตัวอย่าง : มี 2 ตาราง ตารางกู้เงิน (borrower) และ ตารางฝากเงิน (depositor) Cust_id Balance 2000 200000 850000 Cust_id Balance 100000 580000 borrower depositor

21 The Cartesian-Product Operation
depositor borrower Cust_id Balance 2000 200000 850000 Cust_id Balance 100000 580000 Cust_id Balance 100000 2000 borrower X depositor

22 The Cartesian-Product Operation
depositor borrower Cust_id Balance 2000 200000 850000 Cust_id Balance 100000 580000 Cust_id Balance 100000 2000 200000 borrower X depositor

23 The Cartesian-Product Operation
depositor borrower Cust_id Balance 2000 200000 850000 Cust_id Balance 100000 580000 Cust_id Balance 100000 2000 200000 850000 borrower X depositor

24 The Cartesian-Product Operation
depositor borrower Cust_id Balance 2000 200000 850000 Cust_id Balance 100000 580000 Cust_id Balance 100000 2000 200000 850000 580000 borrower X depositor

25 The Cartesian-Product Operation
depositor borrower Cust_id Balance 2000 200000 850000 Cust_id Balance 100000 580000 Cust_id Balance 100000 2000 200000 850000 580000 borrower X depositor

26 The Cartesian-Product Operation
depositor borrower Cust_id Balance 2000 200000 850000 Cust_id Balance 100000 580000 Cust_id Balance 100000 2000 200000 850000 580000 borrower X depositor

27 The Cartesian-Product Operation
depositor borrower Cust_id Balance 2000 200000 850000 Cust_id Balance 100000 580000 X Borrower.Cust_id Borrower.Balance Depositor.Cust_id Depositor.Balance 100000 2000 200000 850000 580000 borrower X depositor

28 ตัวอย่าง depositor borrower หารหัสลูกค้าที่กู้และฝากเงินกับธนาคาร
Cust_id Balance 2000 200000 850000 Cust_id Balance 100000 580000 Borrower.Cust_id Borrower.Balance Depositor.Cust_id Depositor.Balance 100000 2000 200000 850000 580000 หารหัสลูกค้าที่กู้และฝากเงินกับธนาคาร

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

30 The Rename Operation X borrower borrower Cust_id Balance 001-586-777
100000 580000 Cust_id Balance 100000 580000 X borrower borrower Borrower.Cust_id Borrower.Balance 100000 580000

31 The Rename Operation X borrower Cust_id Balance 001-586-777 100000
580000 Cust_id Balance 100000 580000 X borrower Borrower.Cust_id Borrower.Balance b2.Cust_id b2.Balance 100000 580000

32 Example: The Rename Operation
จากตาราง ผู้กู้เงิน (borrower) จงเขียน relational algebra เพื่อหาผู้ที่กู้เงินมากที่สุด Cust_id Balance 100000 580000 250000

33 Example :The Rename Operation
Cust_id Balance 100000 580000 250000 Cust_id Balance 100000 580000 250000 X borrower Borrower.Cust_id Borrower.Balance b2.Cust_id b2.Balance 100000 580000 250000

34 Example :The Rename Operation
borrower X Borrower.Cust_id Borrower.Balance b2.Cust_id b2.Balance 100000 580000 250000 Borrower.Cust_id Borrower.Balance b2.Cust_id b2.Balance 100000 580000 250000

35 Example :The Rename Operation
Borrower.Cust_id Borrower.Balance b2.Cust_id b2.Balance 100000 580000 250000 Borrower.Cust_id Borrower.Balance 100000 250000

36 Example :The Rename Operation
Cust_id Balance 100000 580000 250000 Borrower.Cust_id Borrower.Balance 100000 250000 - Borrower - Cust_id Balance 580000

37 Example :The Rename Operation
Cust_id Balance 580000 Borrower - Cust_id

38 Additional Operations

39 The Set-Intersection Operation
การทำงานเหมือน intersect ของ set ใช้สัญลักษณ์ ตัวอย่าง หารหัสลูกค้าที่กู้และฝากเงินกับธนาคาร Cust_id Balance 2000 200000 850000 Cust_id Balance 100000 580000 borrower depositor Cust_id

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

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

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

43 The Division Operation
ใช้สัญลักษณ์ ใช้สำหรับเมื่อเราต้องการหาแบบ “for all” Name City Postal John Paris P5 P10 Smith Lyon P6 JR P3 City Postal Paris P5 P10 Name John

44 ผลการทำ Relational Algebra operation
select (s) project (p) cartesian () x y a b c a b c x y union () difference (-) rename (r)

45 ผลการทำ Relational Algebra Operation
intersection ( ) join ( ) x y a b c d z division ()


ดาวน์โหลด ppt – Web Programming and Web Database

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


Ads by Google