บทที่ 3

Download Report

Transcript บทที่ 3

บทที่ 3
แบบจำลองข้ อมูล
Data Models
Algebra
1
Relational Algebra
พีชคณิตเชิงสัมพันธ์หรื อ Procedural Query Language เป็ นการ
ปฏิบตั ิการที่เกิดขึ ้นกับ Relation เพื่อสร้ าง Relation ใหม่ขึ ้นมาเป็ น
แบบจาลองของการกระทาต่างๆ ที่สามารถเกิดขึ ้นกับข้ อมูลในฐานข้ อมูล
ซึง่ เป็ นการกระทาพื ้นฐานที่จะนามาประกอบกันเป็ น Procedure เพื่อ
กาหนดให้ ฐานข้ อมูลทางานตามที่ต้องการ
1. Unary Operations
2. Set Operation
3. Join Operation
2
Relational Algebra
1. Unary Operations
จะปฏิบัตงิ ำนภำยใต้ รีเลชั่นเดียว
มีโอเปอร์ เรชั่น
1. Restrict (Or Selection)
2. Projection ()
3
Relational Algebra
1. Restrict (Or Selection)
•เป็ นการกระทาเพื่อแสดงข้ อมูลของ Tuple ใน Relation ที่มี
ค่าตรงตามเงื่อนไขที่ระบุ
•คาสัง่ ที่ใช้ ได้ แก่ WHERE รูปแบบคือ
A WHERE X operator Y
4
Relational Algebra
Restrict
5
Relational Algebra
B WHERE CITY = ‘New York’
S#
S1
SNAME
Smith
STATUS
20
CITY
New York
6
Relational Algebra
2. Projection ()
•เป็ นการกระทาเพื่อกาหนดรายชื่อของ Attribute ของRelation
ที่ต้องการให้ แสดงผลออกมา
•คาสัง่ ที่ใช้ มีรูปแบบคือ
A [X, Y,…., Z]
7
Relational Algebra
Project
8
Relational Algebra
A [SNAME, STATUS]
SNAME
STATUS
Smith
20
Clark
20
(B WHERE CITY = ‘New York’) [S#]
S#
S1
9
Set Operations
• ในการทางานกับข้อมูลจริ ง ๆ จะต้องนารี เลชัน่ หลายรี เลชัน่ เข้ามา
ประกอบกัน set operation ทาให้เราสามารถปฏิบตั ิบนหลาย
รี เลชัน่ (สามารถเรี ยกอีกชื่อหนึ่งว่า Binary Operation)
– Union, Set Difference, Intersection, Cartesian
product
10
Relational Algebra
1. Union ()
• เป็ นการรวมกันของข้ อมูลของ 2 Relation เพื่อแสดงข้ อมูลของ
ทุก Tuple ในรูปแบบของ Union ตามทฤษฎีของเซต
• คาสัง่ ที่ใช้ คือ UNION รูปแบบคือ
A UNION B
11
Relational Algebra
UNION
12
Relational Algebra
•Example
A S#
S1
S4
B
S#
S1
S2
SNAME
Smith
Clark
STATUS
20
20
CITY
New York
New York
SNAME
Smith
Jones
STATUS
20
10
CITY
New York
Chicago
13
Relational Algebra
A UNION B
S#
S1
S4
S2
SNAME
Smith
Clark
Jones
STATUS
20
20
10
CITY
New York
New York
Chicago
14
Relational Algebra
2. Difference
เป็ นการกระทาเพื่อแสดงข้ อมูลของ Tuple ที่ปรากฎอยูใ่ น
Relation หนึง่ แต่ไม่ปรากฏอยูใ่ นอีก Relation หนึง่ ในรูปแบบ
ของ A-B ตามทฤษฎีของเซต
คาสัง่ ที่ใช้ คือ MINUS รูปแบบคือ
A MINUS B
15
Relational Algebra
Difference
16
Relational Algebra
A MINUS B
S#
S4
SNAME
Clark
STATUS
20
CITY
New York
B MINUS A
S#
S2
SNAME
Jones
STATUS
10
CITY
Chicago
17
Relational Algebra
3. Intersection ()
• เป็ นการกระทาเพื่อแสดงข้ อมูลของ Tuple ที่ปรากฎทัง้ 2
Relation ที่นามารวมกันในรูปแบบของ Intersection ตาม
ทฤษฎีของเซต
• คาสัง่ ที่ใช้ คือ INTERSECT รูปแบบคือ
A INTERSECT B
18
Relational Algebra
Intersection
19
Relational Algebra
A INTERSECT B
S#
S1
SNAME
Smith
STATUS
20
CITY
New York
20
Relational Algebra
4. Cartesian Product
• เป็ นการกระทาเพื่อแสดงข้ อมูลของทุก Tuple ที่สามารถ
เป็ นไปได้ ที่เกิดจากการจับคูก่ นั ของข้ อมูล 2 Relation แบบ
ผลคูณ Cartesian
• คาสัง่ ที่ใช้ คือ TIMES มีรูปแบบคือ
A TIMES B
21
Relational Algebra
Product
a
b
c
x
y
a
a
b
b
c
c
x
y
x
y
x
y
22
Relational Algebra
• Example
A
S#
S1
S2
S3
B
P#
P1
P2
P3
A TIMES B
S#
S1
S1
S1
S2
S2
S2
S3
S3
S3
P#
P1
P2
P3
P1
P2
P3
P1
P2
P3
23
3. Join Operation
• Join กาเนิดมาจากผลคูณ Cartesian ที่ถือว่าเป็ นหนึง่ ใน โอเปอร์ เรชัน่
ที่มีประสิทธิภาพสูง และถือว่าเป็ นโอเปอร์ เรชัน่ ที่ยากที่สดุ ในการนาไปใช้
งานบน RDBMS
• ระบบฐานข้ อมูลเชิงสัมพันธ์จงึ มักเกิดปั ญหาเกี่ยวกับประสิทธิภาพ ซึง่
ส่วนหนึง่ ก็อาจเกิดจากกระบวนการ join รี เลชัน่ ที่ผิดพลาด
• โอเปอร์ เรชัน่ join ประกอบด้ วย
–
–
–
–
–
Theta Join
Equi Join
Natural join
Outer Join
Semi Join
24
Theta Join
• Theta-Join เป็ นโอเปอเรชัน่ ที่นิยามถึงรี เลชัน่ ที่บรรจุไปด้ วย
ทัปเพิลที่ต้องการตามเงื่อนไขจากผลคูณ Cartesian ระหว่าง 2
รี เลชัน่ โดยกาหนดเงื่อนไขที่ต้องการ โดยใช้ โอเปอร์ เรเตอร์ <,
>
, , , = ,
25
Equi Join
• Equi-Join คือ การ Join แบบที่เงื่อนไขเท่ากับ = เท่านัน้
และผลลัพธ์ที่ได้ คอลัมน์ที่ซ ้ากันจะถูกแสดงเพียงแค่ครัง้
เดียว
26
Natural join
• Natural-Join คือ Equi-Join ที่ Join ทุกคอลัมน์แต่ขจัด
คอลัมน์ที่ซ ้ากันออกไป
A
B
B
C
A
B
C
a
1
1
X
a
1
X
b
2
1
Y
3
Z
a
1
Y
Natural-Join
27
Outer Join
• การ join เป็ นตรวจสอบคีย์ที่ตรงกัน แต่บางครัง้ เราต้ องการ
ทัปเพิลในรี เลชัน่ หนึง่ ไม่สามารถจับคูก่ บั อีกรี เลชัน่ หนึง่ ได้ แต่
ต้ องการทัปเพิลจากรี เลชัน่ หนึง่ เพื่อไปปรากฏในผลลัพธ์ จึง
จาเป็ นต้ องใช้ การ join แบบ Outer Join
28
Semi Join
• รี เลชัน่ ที่บรรจุอยูใ่ นทัปเพิล R ที่มีสว่ นร่วมในการ Join ของ R
กับ S
A
a
b
B
1
2
B
C
A
B
1
1
3
X
Y
Z
a
1
Semi Join
29
Relational Algebra
4. Divide
•เป็ นการกระทาเพื่อแสดงข้ อมูลที่เป็ นไปได้ ทงหมด
ั้
ซึง่ เกิดจากการ
นาเอา Relation A ไปเปรี ยบเทียบค่ากับ Relation B โดยที่ Relation A
จะต้ องมี Degree ที่สงู กว่า Relation B และทุก Attribute ใน Relation
B ต้ องปรากฎอยูใ่ น Relation A แต่ในการแสดงผลจะแสดงเฉพาะ
Attribute ที่ปรากฏใน Relation A แต่ไม่ปรากฎใน Relation B
•คาสัง่ ที่ใช้ มีรูปแบบคือ
A DIVIDEBY B
30
Relational Algebra
Divide
R
R/S
S
31
Relational Algebra
Divide
a
a
a
b
c
x
y
z
x
y
x
z
a
32
โอเปอเรชั่นกำรรวมและกำรจำแนกกลุ่ม
aggregation and Grouping
• aggregation
–
–
–
–
–
Count
Sum
Avg
Min
Max
• Grouping
– Grouping
33