ดาวน์โหลดงานนำเสนอ
งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ
ได้พิมพ์โดยPathma Cheenchamras ได้เปลี่ยน 9 ปีที่แล้ว
1
Relational Model Choopan Rattanapoka CIT, KMUTNB
– Database Relational Model Choopan Rattanapoka CIT, KMUTNB
2
Relational Model เป็นตัวแบบรากฐานของ ระบบฐานข้อมูลแบบ Relational
ตาราง (tables) ที่มีชื่อเฉพาะตัวไม่ซ้ำ ความสัมพันธ์ของค่าในตาราง (relationship)
3
Database Schema โครงสร้างข้อมูลของตาราง
ตารางที่ใช้โครงสร้างข้อมูลแบบนี้ Table_name(Schema_name)
4
Example : Database Schema
จากตาราง customer ต่อไปนี้ จงเขียน database schema Customer_id Customer_name Customer_city 1 John Paris 2 Smith Lyon 3 Sarah 4 Oliver Marseille Customer_schema = ( Customer_id, Customer_name, Customer_city) Customer(Customer_schema) หรือ Customer(Customer_id, Customer_name, Customer_city)
5
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
6
Select Operations เป็นคำสั่งที่ใช้เลือก ข้อมูลในแถวที่ตรงกับเงื่อนไขที่กำหนด เขียนแทนด้วยสัญลักษณ์ วิธีการใช้งาน Condition สามารถใช้เครื่องหมาย การเปรียบเทียบ : =, <, >, ≥, ≤, ≠ Logic operation : ¬, ,
7
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
8
Example : Select จงเลือกข้อมูลของสาขาที่อยู่ในกรุงเทพ Bangkroy Bangkok
Branch-name Branch-city Balance Bangkroy Bangkok 30,000 Bangpo 5,000
9
Example : Select จงเลือกข้อมูล ที่เงินในบัญชีมากกว่า 12,000 Bangkroy
Branch-name Branch-city Balance Bangkroy Bangkok 30,000 Rattanathibet Nonthaburi 15,000
10
Example : Select จงเลือกข้อมูล ที่เงินในบัญชีมากกว่า 12,000 และบัญชีอยู่ที่ นนทบุรี Branch-name Branch-city Balance Rattanathibet Nonthaburi 15,000
11
Exercise กำหนดตารางนักเรียนที่มีโครงสร้างดังนี้
Student(Fname, Lname, Faculty, GPA) Fname = ชื่อ Lname = นามสกุล Faculty = คณะ GPA = คะแนน GPA จงเขียน Relational Algebra เพื่อหา ข้อมูลของนักเรียนที่อยู่ที่คณะ “วทอ” ข้อมูลของนักเรียนที่มี GPA > 2.00 ข้อมูลของนักเรียนที่มีนามสกุล “ชินวัด” และ GPA < 2.00 ข้อมูลของนักเรียนที่มีนามสกุล “ชินวัด” หรือนามสกุล “วัดชิน”
12
Project Operation Project operation เป็นตัวที่ใช้แสดงข้อมูลของ attribute ที่ต้องการ ใช้สัญลักษณ์ วิธีใช้งาน
13
Example : Project กำหนดตาราง สมุดบัญชี (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
14
Example : Project จงแสดงข้อมูลเฉพาะสาขา และจำนวนเงิน Bangkroy 30,000
Branch-name Balance Bangkroy 30,000 Rattanathibet 15,000 Bangpo 5,000 Pakkret 10,000
15
Composition of Relational Operations
เราสามารถใช้ Select และ Project ต่อเนื่องกันได้ เช่นจากตารางรถ (car) ต่อไปนี้ ให้แสดงเฉพาะชื่อ ของเจ้าของรถ Honda สีดำ Owner Brand Color City Choopan Honda Black Nonthaburi Chanwit Nissan Gold Bangkok Dumrongkiet Toyota Silver Siriporn
16
Union Operation ใช้เมื่อมีความต้องการเชื่อมข้อมูลกับตารางมากกว่า 1 ตาราง เช่น ตารางผู้กู้เงินจากธนาคาร (borrower) และ ตารางผู้ฝาก เงินกับธนาคาร (depositor) borrower depositor จงหา รหัสของลูกค้าของธนาคารที่กู้เงินกับธนาคารหรือมีเงินฝากกับ ธนาคาร Cust_id Balance 100000 580000 Cust_id Balance 2000 200000 850000
17
Union Operation รหัสลูกค้าที่ฝากเงินกับธนาคาร depositor Cust_id
Balance 2000 200000 850000 Cust_id
18
Union Operation รหัสลูกค้าที่กู้เงินกับธนาคาร borrower Cust_id Balance
100000 580000 Cust_id
19
Union Operation depositor borrower Cust_id Balance 001-586-777 2000
200000 850000 Cust_id Balance 100000 580000 Cust_id Cust_id Cust_id
20
Set Difference Operation
ใช้เพื่อหาข้อมูลที่อยู่ในความสัมพันธ์หนึ่งแต่ไม่ในอีกความสัมพันธ์ หนึ่ง เช่น ตารางผู้กู้เงินจากธนาคาร (borrower) และ ตารางผู้ฝาก เงินกับธนาคาร (depositor) borrower depositor จงหา รหัสของลูกค้าของธนาคารที่กู้เงินกับธนาคาร แต่ไม่มีเงินฝาก กับธนาคาร Cust_id Balance 100000 580000 Cust_id Balance 2000 200000 850000
21
Set Difference Operation
depositor รหัสลูกค้าที่ฝากเงินกับธนาคาร Cust_id Balance 2000 200000 850000 Cust_id
22
Set Difference Operation
borrower รหัสลูกค้าที่กู้เงินกับธนาคาร Cust_id Balance 100000 580000 Cust_id
23
Set Difference Operation
depositor borrower Cust_id Balance 2000 200000 850000 Cust_id Balance 100000 580000 Cust_id Cust_id Cust_id
24
Exercise 1 จากตาราง Buyer (อยากซื้อรถ) Seller (อยากขายรถ)
Cust_id Brand Color Price 01978 Honda Blue 650000 02798 Hyundai Red 450000 05689 Toyota Green 350000 09894 Mazda 700000 14579 White 690000 58976 Black 420000 จากตาราง Cust_id Brand Color Price 01567 Honda Black 600000 01978 Toyota White 680000 05689 900000 07894 Mazda Red 640000 Buyer (อยากซื้อรถ) Seller (อยากขายรถ) จงเขียน relational algebra และผลลัพธ์ เพื่อหา รหัสลูกค้าที่อยากซื้อรถ Honda สีดำ รหัสลูกค้า,ยี่ห้อ และราคารถ ที่ขายรถในราคาต่ำกว่า บาท รหัสลูกค้าทั้งหมด ทั้งขาย และซื้อ รหัสลูกค้าที่ซื้อรถ แต่ไม่ขายรถ
25
Exercise 2 จากตาราง Buyer (อยากซื้อรถ) Seller (อยากขายรถ)
Cust_id Brand Color Price 01978 Honda Blue 650000 02798 Hyundai Red 450000 05689 Toyota Green 350000 09894 Mazda 700000 14579 White 690000 58976 Black 420000 จากตาราง Cust_id Brand Color Price 01567 Honda Black 600000 01978 Toyota White 680000 05689 900000 07894 Mazda Red 640000 Buyer (อยากซื้อรถ) Seller (อยากขายรถ) จาก relational algebra ต่อไปนี้จงหาผลลัพธ์
26
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
27
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
28
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
29
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
30
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
31
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
32
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
33
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
34
Exercise 3 หารหัสลูกค้าที่กู้และฝากเงินกับธนาคาร 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 หารหัสลูกค้าที่กู้และฝากเงินกับธนาคาร
35
The Rename Operation ใช้สำหรับเปลี่ยนชื่อของตาราง ใช้สัญลักษณ์
การใช้งาน x ชื่อของตารางใหม่ E ตารางหรือ expression
36
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
37
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
38
Example: The Rename Operation
จากตาราง ผู้กู้เงิน (borrower) จงเขียน relational algebra เพื่อหาผู้ที่กู้เงินมากที่สุด Cust_id Balance 100000 580000 250000
39
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
40
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
41
Example :The Rename Operation
Borrower.Cust_id Borrower.Balance b2.Cust_id b2.Balance 100000 580000 250000 Borrower.Cust_id Borrower.Balance 100000 250000
42
Example :The Rename Operation
Cust_id Balance 100000 580000 250000 Borrower.Cust_id Borrower.Balance 100000 250000 - Borrower - Cust_id Balance 580000
43
Example :The Rename Operation
Cust_id Balance 580000 Borrower - Cust_id
44
Additional Operations
45
The Set-Intersection Operation
การทำงานเหมือน intersect ของ set ใช้สัญลักษณ์ ตัวอย่าง หารหัสลูกค้าที่กู้และฝากเงินกับธนาคาร Cust_id Balance 2000 200000 850000 Cust_id Balance 100000 580000 borrower depositor Cust_id
46
The Natural-Join Operation
เนื่องจากการใช้ cartesian product เชื่อมต่อ 2 ตาราง เข้าด้วยกันทุกคน ทำให้รูปสมการยาว จึงเกิด Natural-Join Natural-join จะบังคับ operation = ให้กับฟิลด์ที่ เหมือนกันของ 2 ตาราง ใช้สัญลักษณ์
47
The Natural-Join Operation
ตัวอย่าง : มี 2 ตาราง ตารางชื่อลูกค้า (CustName) และ ตารางเมืองของลูกค้า (CustCity) จงสร้างตารางสัมพันธ์ที่แสดง รหัสลูกค้า, ชื่อลูกค้า และ เมืองที่ลูกค้าอยู่ Cust_id Name John DJ Cust_id City Bangkok Nonthaburi CustName CustCity วิธีที่ใช้ Cartesian product : วิธีที่ใช้ Natural-Join :
48
The Natural-Join Operation
Natural-Join Operation เป็นแบบ associative คือไม่มีผลก่อนหลัง A B C = (A B ) C = A ( B C )
49
The Division Operation
ใช้สัญลักษณ์ ใช้สำหรับเมื่อเราต้องการหาแบบ “for all” Name City Postal John Paris P5 P10 Smith Lyon P6 JR P3 City Postal Paris P5 P10 Name John
50
Exercise 1 ในระบบฐานข้อมูลของผู้ผลิตรถยนต์ซึ่งมี จงหา
Client(clientID, name, addr) ลูกค้า ประกอบด้วย รหัสลูกค้า, ชื่อลูกค้า, ที่อยู่ลูกค้า Service(serviceID, name, addr) ศูนย์บริการลูกค้า : รหัสศูนย์, ชื่อศูนย์, ที่อยู่ศูนย์ Car(model, color, weight) รถยนต์ : รุ่นรถ, สีรถ, น้ำหนัก Order(clientID, serviceID, model, quantity) สั่งซื้อ : รหัสลูกค้า, รหัสศูนย์, รุ่นรถ, จำนวน จงหา รหัสศูนย์บริการลูกค้าที่ลูกค้าที่มีรหัส “c002” สั่งซื้อ รหัสศูนย์บริการที่มีลูกค้ารหัส “c002” สั่งซื้อรถรุ่น zx-001 รหัสศูนย์บริการที่มีลูกค้ารหัส “c002” สั่งซื้อรถสีดำ
51
Exercise 2 ในระบบฐานข้อมูลของหนังสือซึ่งมี จงหา
Author(autID, autName, autCity) ผู้แต่งหนังสือ : รหัสผู้แต่ง, ชื่อผู้แต่งหนังสือ, เมืองที่อยู่ Editor(edtID, edtName, edtCity) สำนักพิมพ์ : รหัสสำนักพิมพ์, ชื่อสำนักพิมพ์, เมือง Book(codebook, autID, edtID, title, price) หนังสือ : รหัสหนังสือ, รหัสผู้แต่ง, รหัสสำนักพิมพ์, ชื่อเรื่อง, ราคา จงหา ใคร(ชื่อ)เขียน Harry Potter สำนักพิมพ์ที่กรุงเทพพิมพ์หนังสือชื่ออะไรบ้าง นักเขียนคนไหนที่ไม่เคยเขียนหนังสือให้สำนักพิมพ์ “se-ed” นักเขียนคนไหนที่มีหนังสือที่วางขายราคาอยู่ในช่วง บาท นักเขียนคนไหนที่ไม่มีหนังสือที่วางขายที่มีราคาอยู่ในช่วง บาท
งานนำเสนอที่คล้ายกัน
© 2024 SlidePlayer.in.th Inc.
All rights reserved.