ดาวน์โหลดงานนำเสนอ
งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ
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 ()
งานนำเสนอที่คล้ายกัน
© 2024 SlidePlayer.in.th Inc.
All rights reserved.