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

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

353352 – Database Relational Model Choopan Rattanapoka CIT, KMUTNB.

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


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

1 – 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 Cust_idBalance

17 Union Operation depositor รหัสลูกค้าที่ฝากเงินกับธนาคาร Cust_idBalance Cust_id

18 Union Operation borrower รหัสลูกค้าที่กู้เงินกับธนาคาร Cust_idBalance Cust_id

19 Union Operation Cust_idBalance Cust_idBalance borrower depositor Cust_id Cust_id Cust_id

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

21 Set Difference Operation depositor รหัสลูกค้าที่ฝากเงินกับธนาคาร Cust_idBalance Cust_id

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

23 Set Difference Operation Cust_idBalance Cust_idBalance borrower depositor Cust_id Cust_id Cust_id

24 Exercise 1 จากตาราง Cust_idBrandColorPrice 01567HondaBlack ToyotaWhite HondaBlack MazdaRed Cust_idBrandColorPrice 01978HondaBlue HyundaiRed ToyotaGreen MazdaRed ToyotaWhite HondaBlack Buyer ( อยากซื้อรถ )Seller ( อยากขายรถ ) จงเขียน relational algebra และผลลัพธ์ เพื่อหา รหัสลูกค้าที่อยากซื้อรถ Honda สีดำ รหัสลูกค้า, ยี่ห้อ และราคารถ ที่ขายรถในราคาต่ำกว่า บาท รหัสลูกค้าทั้งหมด ทั้งขาย และซื้อ รหัสลูกค้าที่ซื้อรถ แต่ไม่ขายรถ

25 Exercise 2 จากตาราง Cust_idBrandColorPrice 01567HondaBlack ToyotaWhite HondaBlack MazdaRed Cust_idBrandColorPrice 01978HondaBlue HyundaiRed ToyotaGreen MazdaRed ToyotaWhite HondaBlack Buyer ( อยากซื้อรถ )Seller ( อยากขายรถ ) จาก relational algebra ต่อไปนี้จงหาผลลัพธ์

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

27 The Cartesian-Product Operation Cust_idBalance Cust_idBalance borrower depositor borrower X depositor Cust_idBalanceCust_idBalance

28 The Cartesian-Product Operation Cust_idBalance Cust_idBalance borrower depositor borrower X depositor Cust_idBalanceCust_idBalance

29 The Cartesian-Product Operation Cust_idBalance Cust_idBalance borrower depositor borrower X depositor Cust_idBalanceCust_idBalance

30 The Cartesian-Product Operation Cust_idBalance Cust_idBalance borrower depositor borrower X depositor Cust_idBalanceCust_idBalance

31 The Cartesian-Product Operation Cust_idBalance Cust_idBalance borrower depositor borrower X depositor Cust_idBalanceCust_idBalance

32 The Cartesian-Product Operation Cust_idBalance Cust_idBalance borrower depositor borrower X depositor Cust_idBalanceCust_idBalance

33 The Cartesian-Product Operation Cust_idBalance Cust_idBalance borrower depositor borrower X depositor Borrower.Cust_idBorrower.BalanceDepositor.Cust_idDepositor.Balance X

34 Exercise 3 Cust_idBalance Cust_idBalance borrower depositor หารหัสลูกค้าที่กู้และฝากเงินกับธนาคาร Borrower.Cust_idBorrower.BalanceDepositor.Cust_idDepositor.Balance

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

36 The Rename Operation Cust_idBalance Cust_idBalance borrower X Borrower.Cust_idBorrower.BalanceBorrower.Cust_idBorrower.Balance

37 The Rename Operation Cust_idBalance Cust_idBalance borrower X Borrower.Cust_idBorrower.Balanceb2.Cust_idb2.Balance

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

39 Example :The Rename Operation Cust_idBalance Cust_idBalance borrower X Borrower.Cust_idBorrower.Balanceb2.Cust_idb2.Balance

40 Example :The Rename Operation borrowerX Borrower.Cust_idBorrower.Balanceb2.Cust_idb2.Balance Borrower.Cust_idBorrower.Balanceb2.Cust_idb2.Balance

41 Example :The Rename Operation Borrower.Cust_idBorrower.Balanceb2.Cust_idb2.Balance Borrower.Cust_idBorrower.Balance

42 Example :The Rename Operation Borrower.Cust_idBorrower.Balance Cust_idBalance Borrower - Cust_idBalance

43 Example :The Rename Operation Cust_idBalance Borrower - Cust_id

44 Additional Operations

45 The Set-Intersection Operation การทำงานเหมือน intersect ของ set ใช้สัญลักษณ์ ตัวอย่าง หารหัสลูกค้าที่กู้และฝากเงินกับ ธนาคาร Cust_idBalance Cust_idBalance borrowerdepositor 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_idName John DJ Cust_idCity Bangkok Nonthaburi 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” ◦ นักเขียนคนไหนที่มีหนังสือที่วางขายราคาอยู่ในช่วง บาท ◦ นักเขียนคนไหนที่ไม่มีหนังสือที่วางขายที่มีราคาอยู่ ในช่วง บาท


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

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


Ads by Google