460 likes | 733 Views
Relational Algebra. 357337 – Web Programming and Web Database. Relational Algebra. Relational Algebra เป็นภาษาแบบ procedural query language พื้นฐานคำสั่งของ Relational Algebra คือ select, project, rename → unary operations
E N D
Relational Algebra 357337 – Web Programming and Web Database
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
Select Operations • เป็นคำสั่งที่ใช้เลือก ข้อมูลในแถวที่ตรงกับเงื่อนไขที่กำหนด • เขียนแทนด้วยสัญลักษณ์ • วิธีการใช้งาน • Condition สามารถใช้เครื่องหมาย • การเปรียบเทียบ :=, <, >, ≥, ≤, ≠ • Logic operation : ,
Example : Select • กำหนดตาราง สมุดบัญชี (Account) มี schema คือ • Account(Branch-name, Branch,city, Balance) • Branch-name คือ ชื่อสาขา • Branch-city คือ จังหวัดที่สาขานั้นตั้งอยู่ • Balance คือ ยอดเงินในบัญชี
Example : Select • จงเลือกข้อมูลของสาขาที่อยู่ในกรุงเทพ
Example : Select จงเลือกข้อมูล ที่เงินในบัญชีมากกว่า 12,000
Example : Select จงเลือกข้อมูล ที่เงินในบัญชีมากกว่า 12,000 และบัญชีอยู่ที่ นนทบุรี
Project Operation Project operation เป็นตัวที่ใช้แสดงข้อมูลของ attribute ที่ต้องการ ใช้สัญลักษณ์ วิธีใช้งาน
Example : Project • กำหนดตาราง สมุดบัญชี (Account) มี schema คือ • Account(Branch-name, Branch,city, Balance) • Branch-name คือ ชื่อสาขา • Branch-city คือ จังหวัดที่สาขานั้นตั้งอยู่ • Balance คือ ยอดเงินในบัญชี
Example : Project • จงแสดงข้อมูลเฉพาะสาขา และจำนวนเงิน
Composition of Relational Operations เราสามารถใช้ Select และ Project ต่อเนื่องกันได้ เช่นจากตารางรถ (car) ต่อไปนี้ ให้แสดงเฉพาะชื่อ ของเจ้าของรถ Honda สีดำ
Union Operation ใช้เมื่อมีความต้องการเชื่อมข้อมูลกับตารางมากกว่า 1 ตาราง เช่น ตารางผู้กู้เงินจากธนาคาร (borrower) และ ตารางผู้ฝากเงินกับธนาคาร (depositor) borrower depositor จงหา รหัสของลูกค้าของธนาคารที่กู้เงินกับธนาคารหรือมีเงินฝากกับธนาคาร
Union Operation depositor รหัสลูกค้าที่ฝากเงินกับธนาคาร
Union Operation borrower รหัสลูกค้าที่กู้เงินกับธนาคาร
Union Operation depositor borrower
Set Difference Operation ใช้เพื่อหาข้อมูลที่อยู่ในความสัมพันธ์หนึ่งแต่ไม่ในอีกความสัมพันธ์หนึ่ง เช่น ตารางผู้กู้เงินจากธนาคาร (borrower) และ ตารางผู้ฝากเงินกับธนาคาร (depositor) borrower depositor จงหา รหัสของลูกค้าของธนาคารที่กู้เงินกับธนาคาร แต่ไม่มีเงินฝากกับธนาคาร
Set Difference Operation depositor รหัสลูกค้าที่ฝากเงินกับธนาคาร
Set Difference Operation borrower รหัสลูกค้าที่กู้เงินกับธนาคาร
Set Difference Operation depositor borrower
The Cartesian-Product Operation borrower depositor Cartesian-Product ใช้สัญลักษณ์คือ X (cross) เป็นการรวมข้อมูลของ 2 relations เข้าด้วยกัน การใช้งาน เช่น table1 x table2 ตัวอย่าง : มี 2 ตาราง ตารางกู้เงิน (borrower) และ ตารางฝากเงิน (depositor)
The Cartesian-Product Operation depositor borrower borrower X depositor
The Cartesian-Product Operation depositor borrower borrower X depositor
The Cartesian-Product Operation depositor borrower borrower X depositor
The Cartesian-Product Operation depositor borrower borrower X depositor
The Cartesian-Product Operation depositor borrower borrower X depositor
The Cartesian-Product Operation depositor borrower borrower X depositor
The Cartesian-Product Operation depositor borrower X borrower X depositor
ตัวอย่าง depositor borrower หารหัสลูกค้าที่กู้และฝากเงินกับธนาคาร
The Rename Operation • ใช้สำหรับเปลี่ยนชื่อของตาราง • ใช้สัญลักษณ์ • การใช้งาน • xชื่อของตารางใหม่ • Eตารางหรือ expression
The Rename Operation X borrower borrower
The Rename Operation X borrower
Example: The Rename Operation จากตารางผู้กู้เงิน (borrower) จงเขียน relational algebra เพื่อหาผู้ที่กู้เงินมากที่สุด
Example :The Rename Operation X borrower
Example :The Rename Operation borrower X
Example :The Rename Operation - Borrower -
Example :The Rename Operation Borrower -
The Set-Intersection Operation borrower depositor • การทำงานเหมือน intersect ของ set • ใช้สัญลักษณ์ • ตัวอย่าง หารหัสลูกค้าที่กู้และฝากเงินกับธนาคาร
The Natural-Join Operation เนื่องจากการใช้ cartesian product เชื่อมต่อ 2 ตารางเข้าด้วยกันทุกคน ทำให้รูปสมการยาว จึงเกิด Natural-Join Natural-join จะบังคับ operation = ให้กับฟิลด์ที่เหมือนกันของ 2 ตาราง ใช้สัญลักษณ์
The Natural-Join Operation CustName CustCity วิธีที่ใช้ Cartesian product : วิธีที่ใช้ Natural-Join : ตัวอย่าง : มี 2 ตาราง ตารางชื่อลูกค้า (CustName) และ ตารางเมืองของลูกค้า (CustCity) จงสร้างตารางสัมพันธ์ที่แสดง รหัสลูกค้า, ชื่อลูกค้า และ เมืองที่ลูกค้าอยู่
The Natural-Join Operation Natural-Join Operation เป็นแบบ associative คือไม่มีผลก่อนหลัง A B C = (A B ) C = A ( B C )
The Division Operation • ใช้สัญลักษณ์ • ใช้สำหรับเมื่อเราต้องการหาแบบ “for all”
ผลการทำ Relational Algebra operation select (s) project (p) cartesian () x y a b c a a b b c c x y x y x y union () difference (-) rename (r)
join ( ) division () a a a b c d d x y x y z y x y intersection () ผลการทำ Relational Algebra Operation