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

Preview:

Citation preview

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

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

• พชคณตเชงสมพนธ (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

3

Relational Algebra

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

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

4

Traditional Set Operation

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

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

– Cartesian product

– Union

– Intersection

– Difference

5

Relational Algebra Operations

6

Relational Algebra Operations

7

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

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

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

8

Example 1 - Cartesian product

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))

×

10

Result - Cartesian product

11

Union

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

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

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

12

Example - Union

13

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

14

Example - Intersection

15

Difference

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

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

16

Example - Difference

17

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

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

Special Relational Operation

18

Select (or Restrict)

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

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

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

• หรอ (R) WHERE predicate

19

Example - Select (or Restrict)

R WHERE Age = 20

R WHERE Sex = 20 AND Age>19

20

Project

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

• col1, . . . , coln(R)

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

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

– R คอ รเลชน

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

21

Example - Project

22

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

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

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

23

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

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

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

Join [cont.]

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

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)

26

Divide

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

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

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

27

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

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

Divide [cont.]

28

Example - DivideR3

29

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

– RENAME

– EXTEND

– SUMMARIZE

– INSERT

– UPDATE

– DELETE

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

30

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

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

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

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

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

• เชน S RENAME CITY AS SCITY

Rename

31

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

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

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

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

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

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

EXTEND

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

33

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

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

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

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

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

INSERT

34

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

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

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

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

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

UPDATE

35

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

• มรปแบบคอ DELETE target

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

• เชน DELETE S WHERE STATUS<20

DELETE