資料庫查詢:關係數學 ── relational algebra and calculus

18
中中中中 中中中 1 資資資資資 資資資資 ── Relational A lgebra and Calculus 中中中中中中 中中中中中 中中中 中中中 2008.12

Upload: zephania-houston

Post on 30-Dec-2015

93 views

Category:

Documents


1 download

DESCRIPTION

資料庫查詢:關係數學 ── Relational Algebra and Calculus. 國立中央大學 資訊管理系 范錚強 、楊書成 200 8.12. 關係數學: algebra & calculus. 兩種正規的數學 Relational algebra Operational Procedural language (at a SET level) 一歩歩描述計算結果的步驟 Relational calculus 邏輯的一部份 Declarative Non-procedural language 只描述想要的結果 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 資料庫查詢:關係數學  ── Relational Algebra and Calculus

中央大學。范錚強 1

資料庫查詢:關係數學 ── Rela

tional Algebra and Calculus

國立中央大學資訊管理系

范錚強、楊書成2008.12

Page 2: 資料庫查詢:關係數學  ── Relational Algebra and Calculus

中央大學。范錚強 2

關係數學: algebra & calculus

兩種正規的數學Relational algebra

Operational

Procedural language (at a SET level)

一歩歩描述計算結果的步驟

Relational calculus邏輯的一部份Declarative

Non-procedural language

只描述想要的結果SQL 的數學表示法 SQL 的重要基礎

Page 3: 資料庫查詢:關係數學  ── Relational Algebra and Calculus

中央大學。范錚強 3

Relational algebra (1)

5 個基本的運算子 (operators)Selection (σ) - select rows from relation

Projection (Π) - retain only wanted columns from relation

Cross-product (X) - combine 2 relations

Set-difference ( - ) - tuples in r1, but not in r2

Union ( )∪ - tuples in r1 and/or in r2

Page 4: 資料庫查詢:關係數學  ── Relational Algebra and Calculus

中央大學。范錚強 4

Relational algebra (2)

Hypothesized relation schema

S (sid, sname, age)

C (cid, cname)

R (sid, cid)

語法範例σage>20(S1)

Πsname, age(S1)

Πsname, age(σage>20(S1))

S1 S2, S1∪ - S2, S1 X R

Page 5: 資料庫查詢:關係數學  ── Relational Algebra and Calculus

中央大學。范錚強 5

Relational algebra (3)

sid sname ages001 Henry 23s002 Jason 18s003 Vivian 21s004 Susan 19

S1

sid sname ages001 Henry 23s003 Vivian 21σage>20(S1)

sname ageHenry 23Jason 18Vivian 21Susan 19

Πsname, age(S1)

sname ageHenry 23Vivian 21

Πsname, age(σage>20(S1))

Page 6: 資料庫查詢:關係數學  ── Relational Algebra and Calculus

中央大學。范錚強 6

Relational algebra (4)

sid sname ages001 Henry 23s002 Jason 18s003 Vivian 21s004 Susan 19S1

sid sname ages002 Jason 18s004 Susan 19s006 Candy 22

S2

sid sname ages001 Henry 23s002 Jason 18s003 Vivian 21s004 Susan 19s006 Candy 22S1 S2∪

sid sname ages001 Henry 23s003 Vivian 21

S1 - S2

Page 7: 資料庫查詢:關係數學  ── Relational Algebra and Calculus

中央大學。范錚強 7

Relational algebra (5)

sid sname ages001 Henry 23s002 Jason 18s003 Vivian 21s004 Susan 19S1

sid cids002 c101s003 c082

R

(sid) sname age (sid) cids001 Henry 23 s002 c101s001 Henry 23 s003 c082s002 Jason 18 s002 c101s002 Jason 18 s003 c082s003 Vivian 21 s002 c101s003 Vivian 21 s003 c082s004 Susan 19 s002 c101s004 Susan 19 s003 c082S1 X R

Page 8: 資料庫查詢:關係數學  ── Relational Algebra and Calculus

中央大學。范錚強 8

Relational algebra (6)

使用 union 及 set-difference 時,兩個 relation 必須是 union-compatible

欄位數相同相對應的欄位具有相同的資料型態

使用 cross-product 時,發生欄位名稱衝突

使用 renaming(ρ) 運算子ρ(C(1sid1, 5sid2), S1 X R)

Page 9: 資料庫查詢:關係數學  ── Relational Algebra and Calculus

中央大學。范錚強 9

Relational algebra (7)

其他運算子Intersection (∩) - tuples in r1 and in r2

S1∩S2 = S1 - (S1 - S2)

Condition join (∞c) - cross-product followed by a selection

S1∞S1.sid<R.sidR = σS1.sid<R.sid (S1X R)

Equijoin - special case of condition join利用兩個 relation 中欄位相等之條件進行合併相同欄位只會出現一次S1∞S1.sid=R.sidR

Natural join利用兩個 relation 中所有相同名稱欄位相等之條件進行合併S1∞R

Division ( / )

Page 10: 資料庫查詢:關係數學  ── Relational Algebra and Calculus

中央大學。范錚強 10

Relational algebra (8)

sid sname ages001 Henry 23s002 Jason 18s003 Vivian 21s004 Susan 19

S1

sid sname ages002 Jason 18s004 Susan 19s006 Candy 22

S2

sid sname ages002 Jason 18s004 Susan 19

S1 ∩ S2

Page 11: 資料庫查詢:關係數學  ── Relational Algebra and Calculus

中央大學。范錚強 11

Relational algebra (9)

sid sname ages001 Henry 23s002 Jason 18s003 Vivian 21s004 Susan 19S1

sid cids002 c101s003 c082

R

(sid) sname age (sid) cids001 Henry 23 s002 c101s001 Henry 23 s003 c082s002 Jason 18 s003 c082

S1∞S1.sid<R.sidR

(sid) sname age cids002 Jason 18 c101s003 Vivian 21 c082

S1∞S1.sid=R.sidR

(sid) sname age cids002 Jason 18 c101s003 Vivian 21 c082

S1∞R

Page 12: 資料庫查詢:關係數學  ── Relational Algebra and Calculus

中央大學。范錚強 12

Relational calculus (1)

Tuple relational calculus (TRC)General form: {t|Ψ(t)}

{tuple variable|TRC formula}

Tuple vairable = set of rows from relations

Domain relational calculus (DRC) General form: {a, b, c, …|Ψ(a, b, c, …)}

{predicate (domain variables)|DRC formula}

Domain vaiable = set of columns from relations

QBE: Query by Example

{ predicate | formula }true

Page 13: 資料庫查詢:關係數學  ── Relational Algebra and Calculus

中央大學。范錚強 13

Relational calculus (2)

運算子 (operators)<, >, =, ≤, ≥, ≠

¬, ∧, ∨

資格限制 (quantifiers)∃- exist ( 有一個 )

∀- for all ( 每一個 )

¬∃- not exist

¬∀- not for all

Page 14: 資料庫查詢:關係數學  ── Relational Algebra and Calculus

中央大學。范錚強 14

Relational calculus (3)

Hypothesized relation schema

S (sid, did, sname)

R (sid, cid, grade)

列出所有資管系學生的 sid, did, snameTRC - {t|S(t)∧t[2]=“43”}

DRC - {abc|S(abc)∧b=“43”}

列出所有資管系學生的 sid 及 snameTRC - {t|∃uS(u)∧u[2]=“43”∧t[1]=u[1]∧t[2]=u[3]}

DRC - {ab|∃cS(acb)∧c=“43”}

Page 15: 資料庫查詢:關係數學  ── Relational Algebra and Calculus

中央大學。范錚強 15

Relational calculus (4)

列出曾經被當的學生 sid, did, snameTRC - {t|S(t)∧∃uR(u)∧t[1]=u[1]∧u[3]<“70”}

DRC - {abc|S(abc)∧∃d∃eR(ade)∧e<“70”}

or {abc|S(abc)∧∃eR(a . e)∧e<“70”}

SQL – select * from S where sid in (select sid from R where grade<“70”)

or select S.sid, S.did, S.sname from S, R where S.sid = R.sid and R.grade<“70

Page 16: 資料庫查詢:關係數學  ── Relational Algebra and Calculus

中央大學。范錚強 16

For all 下的排除條款

在大部分需要 For all 的查詢(例如:每一門課都當掉)中,我們需要排除一些不需要的東西

只要是我們檢驗的學生的課,我們才需要檢查是否及格如果不是該學生,就不需要檢查For 每一筆學生成績,如果是該位同學 (If A) ,都是不及格的成績 (then B) For 每一筆學生成績,如果不是是該位同學 (not A ) ,不需檢查,否則需要不及格 (or B)

A

B

¬A

¬B

If A then B (¬A ∨ B)

Page 17: 資料庫查詢:關係數學  ── Relational Algebra and Calculus

中央大學。范錚強 17

Relational calculus (5)

列出所有課都被當的學生 sid, did, snameTRC - {t|S(t)∧∀uR(u)∧(t[1]≠u[1]∨u[3]<“70”)}

or {t|S(t)∧¬∃uR(u)∧(t[1] =u[1]∧u[3] ≥“70”)}

SQL - select * from S where not exists (select * from R where S.sid = sid and grade>=“70”)

SQL 有 exist 和 not exist ,沒有 for all

A

B

¬A

¬B

¬(¬A ∨ B) = (A∧¬B)

Page 18: 資料庫查詢:關係數學  ── Relational Algebra and Calculus

中央大學。范錚強 18

Relational calculus (6)

Hypothesized relation schema

S (sid, did, sname)

R (sid, tid)

T (tid, tname, did)

列出被所有老師教過的學生 sid, did, sname{t|S(t)∧∀uT(u)∧∃vR(v)∧t[1]=v[1]∧u[1]=v[2]}

列出學生,修過所有資管系老師的課{t|S(t)∧∀uT(u)∧(u[3]≠”43”∨(∃vR(v)∧t[1]=v[1]∧u[1]=v[2]))}