บทที่ 6 การจัดการกับข้อมูล (data manipulation) part1...
TRANSCRIPT
โดย อ.อภพงศ ปงยศรายวชา สธ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