1 / 36

เป็น Query language ที่ใช้กับฐานข้อมูลเชิงสัมพันธ์มี 2 รูปแบบ คือ

บทที่ 5 Relational algebra. เป็น Query language ที่ใช้กับฐานข้อมูลเชิงสัมพันธ์มี 2 รูปแบบ คือ

Download Presentation

เป็น Query language ที่ใช้กับฐานข้อมูลเชิงสัมพันธ์มี 2 รูปแบบ คือ

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. บทที่ 5 Relational algebra เป็น Query language ที่ใช้กับฐานข้อมูลเชิงสัมพันธ์มี 2 รูปแบบ คือ 1. Relational Algebraมีคุณสมบัติ procedural คือ มีลำดับ ขั้นตอนในการทำงานเป็นกระบวนการก่อนและหลังตามลำดับ จัดเป็น Procedural DML ซึ่งเป็นการกำหนดการกระทำและเงื่อนไขเพื่อให้ได้ ข้อมูลตามต้องการ 2. Relational Calculusมีคุณสมบัติเป็น nonprocedural DMLคือไม่แสดงลำดับขั้นตอนในการทำงานเป็นกระบวนการ โดยจะกำหนดรูปแบบการค้นหาในลักษณะนิพจน์หรือสมการทางคณิตศาสตร์ที่มีตัวแปร ค่าคงที่ ตัวกระทำ ตัวเชื่อมและอื่นๆ ผลลัพธ์ที่ได้จะเป็นแถวของข้อมูลที่ทำให้สมการเป็นจริง

  2. ประเภทของ Relation algebra operation แบ่งตามประเภทการใช้งานได้ 2 ประเภท คือ 1. Set operation เป็นพื้นฐานทางคณิตศาสตร์ เช่น selection , projection , cross product , set difference , union 2. การดำเนินงานที่ใช้ในการพัฒนา relational databaseเช่น intersection , join , division , renaming

  3. ประเภทของ Relation algebra operation แบ่งตามการกระทำกับความสัมพันธ์ได้ 2 กลุ่ม คือ 1. Unary Operators เป็นตัวกระทำที่ทำงานกับตารางเดียว เช่น selection , projection , renaming 2. Binary Operators เป็นตัวกระทำที่ทำงานกับสองตารางเช่น union, intersection , difference , cartesian product

  4. Selection (or Restriction) • คำสั่ง Selection ใช้ในการเลือก tuples จาก relation R ตามเงื่อนไขที่กำหนด (predicate) • เช่น ต้องการข้อมูลของพนักงานที่มีเงินเดือนมากกว่า 25,000 บาท (R) (พนักงาน) Select * from พนักงาน where เงินเดือน > 25000 พนักงาน

  5. Selection (or Restriction) สัญลักษณ์ (sigma) ใช้แทน Selection operator และ predicateเป็นตัวกำหนดเงื่อนไขในการระบุถึงผลลัพธ์ที่ได้จากการ Selection Predicateใช้ในการกำหนดเงื่อนไข ซึ่งประกอบด้วยกลุ่มของ clauses ที่อยู่ในรูปแบบ<attribute name><comparison op><constant value> เช่น เงินเดือน > 25000 <comparison op>ได้แก่

  6. PROJECT คำสั่ง PROJECT เป็นคำสั่งในการเลือก columns จาก relation รูปแบบของ PROJECT ตัวอย่างPROJECT ต้องการ column ชื่อ,นามสกุล,เงินเดือนของพนักงาน Select ชื่อ,นามสกุล,เงินเดือน from พนักงาน

  7. Union-Operations • Union operation เป็นการรวมข้อมูลทั้งสองตารางเข้าด้วยกันโดยจะกำจัดข้อมูลที่ซ้ำกันทิ้งไป • มีคุณสมบัติ Union compatibleก็ต่อเมื่อ ทั้ง 2 relationsมีจำนวน attributes(degree)เท่ากันและ attributes ของทั้ง 2 relationsมี domain เดียวกัน เช่น อาจารย์ U นักศึกษา นักศึกษา อาจารย์

  8. Set-Operations • Union คือ relation ที่ประกอบด้วย tuples ที่อยู่ใน relation R หรือ relation S หรือ tuple ที่อยู่ทั้งใน relation R และ S และกำจัด tuples ซ้ำกัน โดยแสดงสัญลักษณ์ของการ Union คือ • Intersection เป็น tuples ที่อยู่ใน relation R และ relation S โดยใช้สัญลักษณ์ แทน = R - (R-S) • Set-Difference (-) คือ relation ที่มี tuples ที่อยู่ในเฉพาะ relation R R S R-S = R S R-(R-S) = R S

  9. Union-Operations รหัสคณะ 5 แสดงตารางที่ได้จาก Select * from นักศึกษา where รหัสคณะ = 5 ผลลัพธ์1 แสดงตารางที่ได้จาก ผลลัพธ์1 Select * from นักศึกษา where รหัสอาจารย์ = 351400 แสดงตารางที่ได้จาก Select * from นักศึกษา where รหัสคณะ = 5 or รหัสอาจารย์=351400

  10. ข้อมูลตัวอย่างแสดงการทำงานของ Set-operation ดังนี้ พนักงาน1 พนักงาน2 สังกัด

  11. Set-Operations พนักงาน1Uพนักงาน2 Select * from พนักงาน1 union select * fromพนักงาน2 Select * from พนักงาน1 intersect select * from พนักงาน2

  12. Set-Operations หมายถึงข้อมูลในพนักงาน1 ที่ไม่มีในพนักงาน2 Select * from พนักงาน1 minus select * from พนักงาน2 หมายถึงข้อมูลในพนักงาน2 ที่ไม่มีในพนักงาน1 Select * from พนักงาน2 minus select * from พนักงาน1

  13. Cross-product,Cross join หรือ Cartesian-product • Cross-product,Cross join หรือ Cartesian-productใช้สัญลักษณ์ เมื่อ คือ relation ที่มี attributes ของ R และattributes ของ S โดยเริ่มจับคู่กันตั้งแต่ tuple แรกไปเรื่อยๆ จนครบซึ่งจะได้จำนวนแถวเท่ากับจำนวนแถวของ RxจำนวนแถวของS

  14. Join Operation • เป็นการเชื่อมแถว จาก 2 relations โดยกำหนดเงื่อนไขระหว่างตารางที่จะเชื่อมโยงกัน • ตัวอย่างต้องการชื่อผู้จัดการแต่ละแผนกโดยเชื่อมเฉพาะแถวที่มี รหัสพนักงาน = รหัสผู้จัดการ • ดึงเฉพาะ ชื่อ,นามสกุล,ชื่อแผนก จากผลของการ Join Select ชื่อ,นามสกุล,ชื่อแผนก from แผนก,พนักงาน where รหัสพนักงาน=รหัสผู้จัดการ

  15. พนักงาน แผนก โครงการ

  16. Join Operation Dept_Mgr Result Select ชื่อ,นามสกุล,ชื่อแผนก from แผนก,พนักงาน where รหัสพนักงาน=รหัสผู้จัดการ

  17. Join Operation สามารถอธิบายโดยใช้ Cartesian Product operationดังนี้ การ cross สองตารางแล้ว select เฉพาะเงื่อนไข มีค่าเท่ากับ การ join แบบมีเงื่อนไข

  18. ลักษณะการ Join มีหลายแบบ Theta-Joinคือการ join แล้วแสดงทุกคอลัมน์ที่เงื่อนไขเป็นจริง รวมทั้งคอลัมน์ที่ซ้ำ แต่จะไม่แสดง record ที่เป็นค่าว่าง เช่น การ join ระหว่าง พนักงาน กับ แผนก Equi-Joinคือการ join เฉพาะเงื่อนไขเท่ากับและคอลัมน์ที่ชื่อเดียวกันจะแสดงครั้งเดียว Natural-Joinคือ Equi-Join ที่ join ทุกคอลัมน์ที่ตรงตามเงื่อนไข

  19. DIVISION ใช้ในการค้นหาบางประเภท มีรูปแบบคือ R1/R2 เมื่อ R1 และ R2 เป็นตาราง เช่น ค้นหาพนักงานที่อยู่แผนกคอมพิวเตอร์และเทคโนโลยีสารสนเทศ จะได้ หนุงหนิง นั่นคือผลลัพธ์ของ R1/R2 R1 R2

  20. Rename Renameเป็นเทคนิคในการเปลี่ยนชื่อ relation ที่ได้จาก algebra operation และสามารถใช้ rename attributes ได้ เช่น Temp ( ) (นักศึกษา) รหัสอาจารย์=410002 Temp ) ( (Temp) R(ชื่อนักศึกษา,นามสกุลนักศึกษา,รหัสคณะ) ชื่อ,นามสกุล,รหัสคณะ R จากตารางแสดงการเปลี่ยนชื่อ relation และ attribute ด้วย Rename

  21. Rename Rename operationเมื่อประยุกต์ใช้กับ relation R ที่มี degree n สามารถกำหนดดังนี้ สัญลักษณ์ (rho) ใช้ในการกำหนด Rename operator S เป็นชื่อของ relation ใหม่ (new relation name) B1,B2,…,Bnเป็นชื่อของ attributes ใหม่ (new attributes name)

  22. Natural join แสดงทุก col ที่เป็นจริง Semi join แสดง col ตัวตั้งที่เป็นจริงและไม่ซ้ำ Left outer join แสดงทุก col ของตัวตั้ง y Function of the Relational Algebra operations.

  23. งานบทที่ 5 1. จากตารางพนักงาน1 จงเขียนคำสั่งเลือกเฉพาะเพศหญิงที่มีเงินเดือนมากกว่า 10000 บาท 2. จงเขียนคำสั่งเลือกเฉพาะฟิลด์ ชื่อ นามสกุล เบอร์โทรศัพท์ 3. จงเขียนคำสั่งกำหนดชื่อตารางผลลัพธ์เป็น “Temp” และเปลี่ยนชื่อฟิลด์เป็น ชื่อนักศึกษา นามสกุลนักศึกษา เบอร์ติดต่อ โดยเลือกเฉพาะฟิลด์ ชื่อ นามสกุล เบอร์โทรศัพท์

  24. Relational Calculus • Relational calculus กำหนดรูปแบบการค้นหาในลักษณะนิพจน์หรือสมการทางคณิตศาสตร์ที่มีตัวแปร ค่าคงที่ ตัวกระทำ ตัวเชื่อมและอื่นๆ ผลลัพธ์ที่ได้จะเป็นแถวของข้อมูลที่ทำให้สมการเป็นจริง • เป็นพื้นฐานของ DML ประเภท Nonprocedural โดยอธิบายถึงข้อมูลที่ต้องการโดยไม่ต้องระบุวิธีการหรือขั้นตอนในการดำเนินงาน สามารถแบ่งออกเป็น • 1. Tuple-oriented relational calculus, สร้างขึ้นโดย Codd(1972) • 2. Domain-oriented relational calculus, สร้างขึ้นโดย Lacroix and Pirotte(1977)

  25. Relational Calculus • Tuple-Oriented relational calculus • ในการเขียน expression โดยจะสร้างตัวแปร t แทนตัวแปรแถวเพื่อใช้แทน แถวใดๆ ของตาราง และ P(t) แสดงถึงเงื่อนไขในการหาผลลัพธ์ โดยรูปแบบของ expression คือ • จะได้ว่า ข้อมูลที่เป็นคำตอบของ query คือ ตารางที่ประกอบด้วยแถวของ t ที่เป็นจริงตามเงื่อนไข predicate(t)

  26. Relational Calculus • ตัวแปรแถว คือ ตัวแปร ‘ranges over’ อาจกำหนดเป็นชื่อตาราง นั่นคือ เป็นแถวของตาราง (relation) • ตัวอย่างเช่น กำหนด tuple S เป็นตาราง Staff จะได้ว่า • RANGE OF S IS Staff • การสืบค้น หาทุกแถว S ในกรณีที่ P(S) เป็นจริง เขียนได้ดังนี้ • เรียก P ว่า well-formed formula หรือ wff in mathematical

  27. Relational Calculus • ตัวอย่าง ค้นหาข้อมูลพนักงาน ที่มีเงินเดือนมากกว่า 10,000 บาท ซึ่งสามารถเขียนได้ ดังนี้ RANGE OF S IS Staff • มีการกำหนด Quantifiers 2 แบบ ที่ใช้ในการกำหนดเงื่อนไข • 1. Existential quantifier(there exists) • 2. Universal quantifier (for all)

  28. Quantifiers 2 แบบ • ตัวอย่าง RANGE OF B IS Branch • อธิบายได้ว่า มีบางแถวในตาราง Branch มีรหัสสาขา เท่ากับรหัสสาขาในตาราง Staff และ จังหวัดที่อยู่ในตาราง Branch เท่ากับ ขอนแก่น • อธิบายได้ว่า ทุกๆ แถวในตาราง Branch มีจังหวัดไม่เท่ากับ ขอนแก่น • หรือเขียนในรูป • อธิบายได้ว่า ไม่มีแม้บางแถวในตาราง Branch ที่มีจังหวัด เท่ากับ ขอนแก่น

  29. Staff Branch Property

  30. การเขียน Tuple Relational Calculus Expression 1. Expression มีรูปแบบ 2. Predicate ประกอบด้วย atom ต่างๆ ซึ่งอาจแบ่งเป็น 1. หมายถึง p เป็นตัวแปรแถวแทนแถวใดๆ ในตาราง r 2. p[x] operator q[y]หมายถึง x เป็น attribute ในตัวแปรแถว p และ y เป็น attributeในตัวแปรแถว qนำ 2 ส่วนนี้มาเปรียบเทียบกัน โดยอาจใช้ 3. p[x] operator c หมายถึง x เป็น attribute ในตัวแปรแถว p นำมาเปรียบเทียบกับ c ที่เป็นค่าคงที่

  31. Atom ต่างๆ สามารถนำมาประกอบกันเป็น predicate ได้ดังต่อไปนี้ 1. หนึ่ง Atom ก็เป็น หนึ่ง predicate 2. ถ้า p เป็น predicate ดังนั้น ก็เป็น predicate 3. ถ้า p1 และ p2 เป็น predicate ดังนั้น หรือ หรือ ย่อมเป็น predicate ด้วย 4. ถ้า p1 เป็น predicate ซึ่งมี free tuple variable x แล้ว Free tuple variable หมายถึง tuple variable ซึ่งไม่มี หรือ กำกับ พบว่า t เป็น free tuple variable แต่ q ไม่เป็น free tuple variable

  32. การสร้าง expression ที่เทียบเท่ากัน ประกอบด้วย 3 กฎ การสร้าง expression ที่เทียบเท่ากัน ประกอบด้วย 3 กฎ 1. เทียบเท่ากับ 2. เทียบเท่ากับ 3. เทียบเท่ากับ p1 p2 ∧ ∨ ⇒ 1 1 1 1 1 1 0 0 1 0 0 1 0 1 1 0 0 0 0 1

  33. Example Tuple-Oriented relational calculus (a) แสดงรายชื่อผู้จัดการที่มีเงินเดือนมากกว่า 25,000 บาท RANGE OF S IS Staff (b) แสดงข้อมูลคนที่ทำงานที่จังหวัดเลย RANGE OF S IS Staff RANGE OF P IS Property

  34. Example Tuple-Oriented relational calculus (c) แสดงรายชื่อคนที่ไม่ได้ทำงานตำแหน่งใดๆ RANGE OF S IS Staff RANGE OF P IS Property ใช้กฎการ equivalence สำหรับ operations สามารถเขียนได้ว่า

  35. การเขียน Domain Relational Calculus Expression ใน predicate สามารถเขียนได้ใน 3 รูปแบบ ดังนี้ 1. หมายถึง r เป็นตารางและ x1,x2,…,xn เป็นตัวแปรโดเมนของ attribute 2. x operator y หมายถึง x และ y เป็นตัวแปรโดเมนนำมาเปรียบเทียบกัน โดย x และ y ต้องเป็น domain ที่สามารถเปรียบเทียบกันได้ 3. x operator c หมายถึง นำตัวแปรโดเมนx มาเปรียบเทียบ กับ c และ c คือค่าคงที่ ที่อยู่ใน Domain ของ attribute

  36. Example Domain-Oriented relational Calculus (a) แสดงชื่อผู้จัดการที่มีเงินเดือนมากกว่า 25,000 (b) แสดงชื่อ,ตำแหน่ง พนักงานที่ทำงานในเลย

More Related