35
โดย อ.อภิพงศ์ ปิงยศ รายวิชา สธ312 ระบบการจัดการฐานข้อมูลทางธุรกิจ บทที่ 6 การจัดการกับข้อมูล (Data Manipulation) Part1 – Relational Algebra

บทที่ 6 การจัดการกับข้อมูล (Data Manipulation) Part1 ......บทที่ 6 การจัดการกับข้อมูล

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: บทที่ 6 การจัดการกับข้อมูล (Data Manipulation) Part1 ......บทที่ 6 การจัดการกับข้อมูล

โดย อ.อภพงศ ปงยศรายวชา สธ312 ระบบการจดการฐานขอมลทางธรกจ

บทท 6 การจดการกบขอมล(Data Manipulation) Part1 – Relational Algebra

Page 2: บทที่ 6 การจัดการกับข้อมูล (Data Manipulation) Part1 ......บทที่ 6 การจัดการกับข้อมูล

• พชคณตเชงสมพนธ (Relational Algebra)– Traditional Set Operation คอ Union, Intersection, Difference, และ Cartesian

Product

– Special Relational Operation คอ Select, Project, Join และ Divide

– ค าสงเพมเตมใน Relational Algebra คอ Rename, Extend, Summarize, Insert, Update และ Delete

Overview

2

Page 3: บทที่ 6 การจัดการกับข้อมูล (Data Manipulation) Part1 ......บทที่ 6 การจัดการกับข้อมูล

3

Relational Algebra

• คอ ทฤษฎทางภาษาส าหรบปฏบตการระหวางขอมลตาง ๆ ในรเลชนหนงหรอหลายๆ รเลชน โดยผลของการปฏบตการจะไมสงผลตอ รเลชนหลก

• พชคณตเชงสมพนธ (Relational Algebra) เปนภาษาในรปแบบของ Procedural Query Language ดวยการพจารณาวาจะท าอยางไรเพอใหไดมาซงผลลพธของขอมลตามทตองการ

Page 4: บทที่ 6 การจัดการกับข้อมูล (Data Manipulation) Part1 ......บทที่ 6 การจัดการกับข้อมูล

4

Traditional Set Operation

• เปนการกระท าทเกดกบรเลชนตามทฤษฎของเซต โดยรเลชนทน ามากระท าในกลมนจะตองมจ านวน Attrbute ทเทากน และมโดเมนเดยวกน

• รปแบบการสรางประโยคภาษาใน Relational Algebra จะม Operation พนฐานทเกยวกบเซตอย 4 Operation คอ

– Cartesian product

– Union

– Intersection

– Difference

Page 5: บทที่ 6 การจัดการกับข้อมูล (Data Manipulation) Part1 ......บทที่ 6 การจัดการกับข้อมูล

5

Relational Algebra Operations

Page 6: บทที่ 6 การจัดการกับข้อมูล (Data Manipulation) Part1 ......บทที่ 6 การจัดการกับข้อมูล

6

Relational Algebra Operations

Page 7: บทที่ 6 การจัดการกับข้อมูล (Data Manipulation) Part1 ......บทที่ 6 การจัดการกับข้อมูล

7

Cartesian product• R X S หรอ R TIMES S– เปนการรวมความสมพนธโดยเปนผลคณ Cartesian ระหวาง 2 relations

– จะไดจ านวน tuple ของ R ซงท าการ join กบทก ๆ tuple ใน S

– R และ S ไมจ าเปนตอง union กนกได

Page 8: บทที่ 6 การจัดการกับข้อมูล (Data Manipulation) Part1 ......บทที่ 6 การจัดการกับข้อมูล

8

Example 1 - Cartesian product

Page 9: บทที่ 6 การจัดการกับข้อมูล (Data Manipulation) Part1 ......บทที่ 6 การจัดการกับข้อมูล

9

Example 2 - Cartesian product• List the names and comments of all clients who have viewed a

property for rent.

(clientNo, clientName(CLIENT)) × (clientNo, propertyNo, comment

(VIEWING))

×

Page 10: บทที่ 6 การจัดการกับข้อมูล (Data Manipulation) Part1 ......บทที่ 6 การจัดการกับข้อมูล

10

Result - Cartesian product

Page 11: บทที่ 6 การจัดการกับข้อมูล (Data Manipulation) Part1 ......บทที่ 6 การจัดการกับข้อมูล

11

Union

• R S หรอ R UNION S– เปนการเชอมความสมพนธดวยการน ารเลชน R และ S มา union กน

– จะไดจ านวน tuple ทงหมดใน R และ S รวมกน

– Tuple ทซ ำกนจะถกขจดออกไป

Page 12: บทที่ 6 การจัดการกับข้อมูล (Data Manipulation) Part1 ......บทที่ 6 การจัดการกับข้อมูล

12

Example - Union

Page 13: บทที่ 6 การจัดการกับข้อมูล (Data Manipulation) Part1 ......บทที่ 6 การจัดการกับข้อมูล

13

Intersection• R S หรอ R INTERSECT S– จะไดกลม tuple ทอยทงใน R และ S

Page 14: บทที่ 6 การจัดการกับข้อมูล (Data Manipulation) Part1 ......บทที่ 6 การจัดการกับข้อมูล

14

Example - Intersection

Page 15: บทที่ 6 การจัดการกับข้อมูล (Data Manipulation) Part1 ......บทที่ 6 การจัดการกับข้อมูล

15

Difference

• R – S หรอ R MINUS S– เปนการหาความแตกตางระหวางสองความสมพนธ

– จะได tuple ทอยใน R แตไมอยใน S

Page 16: บทที่ 6 การจัดการกับข้อมูล (Data Manipulation) Part1 ......บทที่ 6 การจัดการกับข้อมูล

16

Example - Difference

Page 17: บทที่ 6 การจัดการกับข้อมูล (Data Manipulation) Part1 ......บทที่ 6 การจัดการกับข้อมูล

17

• รเลชนทน ามากระท าในกลมนไมจ าเปนตองมจ านวน Attribute ทเทากน แต Attribute ทจะน ามากระท ากนจะตองมชอและโดเมนทเหมอนกน

• ตวด าเนนการทเกยวกบรเลชนกจะมอย 4 operation คอ – Select หรอ Restrict– Project– Join– Divide

Special Relational Operation

Page 18: บทที่ 6 การจัดการกับข้อมูล (Data Manipulation) Part1 ......บทที่ 6 การจัดการกับข้อมูล

18

Select (or Restrict)

• เปนการเลอก Tuple ทเปนซบเซตในรเลชน เปนการด าเนนการทใชในรเลชนเดยว

• รปแบบของการใชตวด าเนนการคอ

• predicate (R)– R คอรเลชนทท าการ selection– Predicate คอ เงอนไขทก าหนดขน

• หรอ (R) WHERE predicate

Page 19: บทที่ 6 การจัดการกับข้อมูล (Data Manipulation) Part1 ......บทที่ 6 การจัดการกับข้อมูล

19

Example - Select (or Restrict)

R WHERE Age = 20

R WHERE Sex = 20 AND Age>19

Page 20: บทที่ 6 การจัดการกับข้อมูล (Data Manipulation) Part1 ......บทที่ 6 การจัดการกับข้อมูล

20

Project

• เปนการสรางรเลชนใหมโดยการเลอกซบเซตของ Attribute ในรเลชน โดยจะมคาของ Tuple ทไมซ ากน

• col1, . . . , coln(R)

– เปนการเลอกเฉพาะคอลมนหรอแอตตรบวตทตองการ

– col1…coln คอ คอลมนหรอแอตตรบวตทเลอก

– R คอ รเลชน

• หรอใชรปแบบ R[attrib1, …, attribn]

Page 21: บทที่ 6 การจัดการกับข้อมูล (Data Manipulation) Part1 ......บทที่ 6 การจัดการกับข้อมูล

21

Example - Project

Page 22: บทที่ 6 การจัดการกับข้อมูล (Data Manipulation) Part1 ......บทที่ 6 การจัดการกับข้อมูล

22

Join• เปนการรวม 2 รเลชนไปเกบไวในรเลชนใหม ซงทง 2 รเลชนจะตองม

Attribute ทมชอและโดเมนทเหมอนกน

• เปน operation ทถอก าเนดมาจากผลคณ Cartesian

Page 23: บทที่ 6 การจัดการกับข้อมูล (Data Manipulation) Part1 ......บทที่ 6 การจัดการกับข้อมูล

23

• R ►◄F S หรอ R JOIN S

• เปนการหา tuple ทเกดจากผลคณ Cartesian ของรเลชน R และ S ตามเงอนไขทก าหนด– F คอ เงอนไขทก าหนดขน

– โดยเงอนไขสามารถใชตวด าเนนการในการเปรยบเทยบ (<, , >, , =, )

Join [cont.]

Page 24: บทที่ 6 การจัดการกับข้อมูล (Data Manipulation) Part1 ......บทที่ 6 การจัดการกับข้อมูล

24

S# SNAME STATUS CITY

S1 ก.การชาง 20 สมทรปราการ

S2 ส.ซพพลาย 10 สพรรณบร

S3 แมชชน 30 สพรรณบร

S4 เอส.พ. 20 สมทรปราการ

Example - Join

P# PNAME COLOR WEIGHT CITY

P1 เหลกฉาก แดง 12 สมทรปราการ

P2 ปนซเมนต เขยว 17 สพรรณบร

P4 ตะป แดง 14 สมทรปราการ

P5 กระเบอง น าเงน 12 สพรรณบร

P6 เหลกเสน แดง 19 สมทรปราการ

Relation: S

Relation: P

Page 25: บทที่ 6 การจัดการกับข้อมูล (Data Manipulation) Part1 ......บทที่ 6 การจัดการกับข้อมูล

25

S# SNAME STATUS CITY P# PNAME COLOR WEIGHT

S1 ก.การชาง 20 สมทรปราการ P1 เหลกฉาก แดง 12

S1 ก.การชาง 20 สมทรปราการ P4 ตะป แดง 14

S1 ก.การชาง 20 สมทรปราการ P6 เหลกเสน แดง 19

S2 ส.ซพพลาย 10 สพรรณบร P2 ปนซเมนต เขยว 17

S2 ส.ซพพลาย 10 สพรรณบร P5 กระเบอง น าเงน 12

S3 แมชชน 30 สพรรณบร P2 ปนซเมนต เขยว 17

S3 แมชชน 30 สพรรณบร P5 กระเบอง น าเงน 12

S4 เอส.พ 20 สมทรปราการ P1 เหลกฉาก แดง 12

S4 เอส.พ 20 สมทรปราการ P4 ตะป แดง 14

S4 เอส.พ 20 สมทรปราการ P6 เหลกเสน แดง 19

Example – Join (Result)

Page 26: บทที่ 6 การจัดการกับข้อมูล (Data Manipulation) Part1 ......บทที่ 6 การจัดการกับข้อมูล

26

Divide

• R S หรอ R DIVIDEBY S– เปนโอเปอเรชนทน ารเลชนสองรเลชนมาแบงหรอหารกน– เปนการคนหากลมของ tuple ทมคาแอตตรบวทเหมอนกบแอตตรบวทของทก ๆ tuple ใน

อกกลมหนง– มกฎวา รเลชนทเปนตวหาร ตองเปนสบเซตของรเลชนทเปนตวตง– สมมตวารเลชน R มดกรเปน (n+m) หากหารดวยรเลชน S ทมดกรเทากบ m ผลลพธทไดคอ

รเลชนทมดกรเทากบ n

Page 27: บทที่ 6 การจัดการกับข้อมูล (Data Manipulation) Part1 ......บทที่ 6 การจัดการกับข้อมูล

27

• การด าเนนการคอ ทก Tuple ในรเลชน R ทมคาตรงกบทก Tuple ในรเลชน S แตในการแสดงผลจะแสดงเฉพาะแอตตรบวตทปรากฏใน R แตไมปรากฏใน S

• ดงตวอยาง V ÷ W

Divide [cont.]

Page 28: บทที่ 6 การจัดการกับข้อมูล (Data Manipulation) Part1 ......บทที่ 6 การจัดการกับข้อมูล

28

Example - DivideR3

Page 29: บทที่ 6 การจัดการกับข้อมูล (Data Manipulation) Part1 ......บทที่ 6 การจัดการกับข้อมูล

29

• เปนค าสงทเพมเตมขนมาเพอชวยใหค าสงใน Relational Algebra มความคลองตวมากยงขน ประกอบไปดวย

– RENAME

– EXTEND

– SUMMARIZE

– INSERT

– UPDATE

– DELETE

ค ำสงเพมเตมใน Relational Algebra

Page 30: บทที่ 6 การจัดการกับข้อมูล (Data Manipulation) Part1 ......บทที่ 6 การจัดการกับข้อมูล

30

• เปนค าสงส าหรบเปลยนชอของ Attribute

• รปแบบคอ R RENAME old-attribute AS new-attribute

• โดยท – R คอ Relation ทเปนเจาของ Attribute

– old-attribute คอชอเดมของ Attribute

– new-attribute คอชอใหมของ Attribute

• เชน S RENAME CITY AS SCITY

Rename

Page 31: บทที่ 6 การจัดการกับข้อมูล (Data Manipulation) Part1 ......บทที่ 6 การจัดการกับข้อมูล

31

• เปนค าสงทใชเพม Attribute ใหมใหกบรเลชน

• มรปแบบคอ EXTEND R ADD value AS attribute

• โดยท– R คอ รเลชนทตองการเพม Attribute

– value คอ คาทก าหนดใหกบทกๆ Tuple ใน Attribute ใหม

– attribute คอ ชอของ Asttribute ใหมทเพมเขาไป

• เชน EXTEND S ADD “Supplier” AS TAG

EXTEND

Page 32: บทที่ 6 การจัดการกับข้อมูล (Data Manipulation) Part1 ......บทที่ 6 การจัดการกับข้อมูล

32

• เปนค าสงทใชส าหรบหาคาของ Attribute ใด Attribute หนง ดวยฟงกชนใดๆ

• รปแบบคอ SUMMARIZE R By (a1, a2, …, an) ADD fn AS z

• โดยท– R คอชอของ Relation ทจะ Summarize

– ai คอ ชอของ Attribute ทจะใช Summarize

– fn คอ ฟงกชนทจะน ามาใช เชน SUM, COUNT หรอ AVG

– z คอ ชอของ Attribute ทใชเกบผลลพธทไดจากการ Summarize

• เชน SUMMARIZE SP BY () ADD SUM (QTY) AS GRANTOTAL

Summarize

Page 33: บทที่ 6 การจัดการกับข้อมูล (Data Manipulation) Part1 ......บทที่ 6 การจัดการกับข้อมูล

33

• เปนค าสงทใชเพม Tuple ทก Tuple จาก Relation หนง ใหกบอก Relation หนง

• รปแบบคอ INSERT source INTO target

• โดยท– source คอ ชอ Relation ตนทาง

– target คอ Relation ทรบคาจาก source

• เชน INSERT (S WHERE CITY = “สมทรปราการ”) INTO TEMP

INSERT

Page 34: บทที่ 6 การจัดการกับข้อมูล (Data Manipulation) Part1 ......บทที่ 6 การจัดการกับข้อมูล

34

• เปนค าสงทใชส าหรบเปลยนแปลงคาของ Attribute ใด Attribute หนงใน Relation

• รปแบบคอ UPDATE target assignment-value

• โดยท – target คอ ชอ Relation ทตองการเปลยนคา

– assignment-value คอ เงอนไขในการเปลยนคาใหกบ Attribute

• เชน UPDATE S WHERE COLOR = “แดง” CITY := “สพรรณบร”

UPDATE

Page 35: บทที่ 6 การจัดการกับข้อมูล (Data Manipulation) Part1 ......บทที่ 6 การจัดการกับข้อมูล

35

• เปนค าสงใชส าหรบลบ Tuple ออกจาก Relation

• มรปแบบคอ DELETE target

• โดยท target คอเงอนไขในการลบ

• เชน DELETE S WHERE STATUS<20

DELETE