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

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

353352 – Database Relational Model Choopan Rattanapoka CIT, KMUTNB.

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


งานนำเสนอเรื่อง: "353352 – Database Relational Model Choopan Rattanapoka CIT, KMUTNB."— ใบสำเนางานนำเสนอ:

1 353352 – Database Relational Model Choopan Rattanapoka CIT, KMUTNB

2 Relational Model เป็นตัวแบบรากฐานของ ระบบฐานข้อมูล แบบ Relational โครงสร้างของ Relational Model ประกอบ ไปด้วย ◦ ตาราง (tables) ที่มีชื่อเฉพาะตัวไม่ซ้ำ ◦ ความสัมพันธ์ของค่าในตาราง (relationship)

3 Database Schema โครงสร้างข้อมูลของตาราง ตารางที่ใช้โครงสร้างข้อมูลแบบนี้ ◦ Table_name(Schema_name)

4 Example : Database Schema Customer_idCustomer_nameCustomer_city 1JohnParis 2SmithLyon 3SarahParis 4OliverMarseille จากตาราง customer ต่อไปนี้ จงเขียน database schema 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-nameBranch-cityBalance BangkroyBangkok30,000 RattanathibetNonthaburi15,000 BangpoBangkok5,000 PakkretNonthaburi10,000

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

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

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

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

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

16 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

17 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

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

19 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

20 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

21 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

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

23 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

24 Exercise 1 จากตาราง Cust_idBrandColorPrice 01567HondaBlack600000 01978ToyotaWhite680000 05689HondaBlack900000 07894MazdaRed640000 Cust_idBrandColorPrice 01978HondaBlue650000 02798HyundaiRed450000 05689ToyotaGreen350000 09894MazdaRed700000 14579ToyotaWhite690000 58976HondaBlack420000 Buyer ( อยากซื้อรถ )Seller ( อยากขายรถ ) จงเขียน relational algebra และผลลัพธ์ เพื่อหา รหัสลูกค้าที่อยากซื้อรถ Honda สีดำ รหัสลูกค้า, ยี่ห้อ และราคารถ ที่ขายรถในราคาต่ำกว่า 400000 บาท รหัสลูกค้าทั้งหมด ทั้งขาย และซื้อ รหัสลูกค้าที่ซื้อรถ แต่ไม่ขายรถ

25 Exercise 2 จากตาราง Cust_idBrandColorPrice 01567HondaBlack600000 01978ToyotaWhite680000 05689HondaBlack900000 07894MazdaRed640000 Cust_idBrandColorPrice 01978HondaBlue650000 02798HyundaiRed450000 05689ToyotaGreen350000 09894MazdaRed700000 14579ToyotaWhite690000 58976HondaBlack420000 Buyer ( อยากซื้อรถ )Seller ( อยากขายรถ ) จาก relational algebra ต่อไปนี้จงหาผลลัพธ์

26 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

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 Cust_idBalanceCust_idBalance 001-586-777100000001-586-7772000

28 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

29 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

30 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

31 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

32 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

33 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

34 Exercise 3 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

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

36 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

37 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

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

39 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.Balanceb2.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

40 Example :The Rename Operation borrowerX Borrower.Cust_idBorrower.Balanceb2.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.Balanceb2.Cust_idb2.Balance 001-586-777100000367-895-124580000 001-586-777100000579-888-999250000 579-888-999250000367-895-124580000

41 Example :The Rename Operation Borrower.Cust_idBorrower.Balanceb2.Cust_idb2.Balance 001-586-777100000367-895-124580000 001-586-777100000579-888-999250000 579-888-999250000367-895-124580000 Borrower.Cust_idBorrower.Balance 001-586-777100000 001-586-777100000 579-888-999250000

42 Example :The Rename Operation Borrower.Cust_idBorrower.Balance 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

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

44 Additional Operations

45 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

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

47 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 :

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

49 The Division Operation ใช้สัญลักษณ์ ใช้สำหรับเมื่อเราต้องการหาแบบ “for all” NameCityPostal JohnParisP5 JohnParisP10 SmithLyonP6 SmithParisP10 JRLyonP3 CityPostal ParisP5 ParisP10 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” ◦ นักเขียนคนไหนที่มีหนังสือที่วางขายราคาอยู่ในช่วง 100-300 บาท ◦ นักเขียนคนไหนที่ไม่มีหนังสือที่วางขายที่มีราคาอยู่ ในช่วง 100-300 บาท


ดาวน์โหลด ppt 353352 – Database Relational Model Choopan Rattanapoka CIT, KMUTNB.

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


Ads by Google