1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài tập thực hành môn HQTCSDL - Đại số quan hệ

50 3K 59

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 50
Dung lượng 719,98 KB

Nội dung

Tài liệu môn Hệ quản Trị CSDL

Trang 1

CHƯƠNG

Đại số quan hệ

(Relational Algebra)

Trang 2

„ Phép chia

2

Trang 3

Đại số quan hệ

(Relational Algebra)

„ Đại số quan hệ là ngôn ngữ tập hợp (set

language) bao gồm các toán tử (operator) thao tác trên 1 hay nhiều quan hệ để tạo

ra 1 quan hệ khác mà không làm thay đổi các quan hệ ban đầu

ÎCác toán hạng và kết quả đều là quan hệ

ÎKết quả của 1 phép toán có thể trở thành toán hạng cho 1 phép toán khác Æ tính

bao đóng (closure)

3

Trang 4

Đại số quan hệ và SQL

„ Query thực chất là 1 biểu thức chứa các

toán tử của đại số quan hệ Kết quả của

query cũng là 1 quan hệ

Mối liên hệ giữa SQL và đại số quan hệ??

SQL là 1 ngôn ngữ phi thủ tục ( không xác định các thủ tục được dùng để xử lý truy

vấn), còn đại số quan hệ theo hướng thủ

tục

4

Trang 5

5

SQL query

Relational algebra Expression

Query Execution Plain

Executable Code

Parser

Query Optimizer

Code generator

Trang 7

Phép chọn (selection)

trên lược đồ quan hệ R và điều kiện F.

Trang 8

Phép chọn

„ Phép chọn trên r theo điều kiện F, ký hiệu

là σF(r), cho kết quả là 1 quan hệ bao

gồm các bộ của r thỏa mãn điều kiện F

Trang 9

Ví dụ

9

Trang 10

Select Operation – Example

I Relation r A B C D

α α β β

α β β β

1 5 12 23

7 7 3 10

ƒ σA=B ^ D > 5 (r)

A B C D

α β

α β

1 23

7 10

Trang 12

Phép chiếu (Projection operation)

„ Cho quan hệ r trên R(A1, A2, ,Am) và tập con các thuộc tính X={Aj1, Aj2, …, Ajn}

với j1, j2, , jn là các số nguyên phân biệt nằm trong khoảng từ 1 đến m

„ Phép chiếu của r trên tập thuộc tính X cho kết quả là 1 quan hệ

ΠX(r) = {t | ∃ u∈ r sao cho t = u[X]}

„ Nếu quan hệ r có bậc là n và có k bộ thì

ΠX(r) có bao nhiêu bậc và bộ?

Î Bậc là |X| và luôn có k bộ

12

Trang 13

Project Operation – Example

„ Relation r: A B C

α α β β

10 20 30 40

1 1 1 2

A C

α α β β

1 1 1 2

=

A C

α β β

1 1 2

∏A,C (r)

Trang 14

ΠP_DESCRIPT,PRICE (PROJECT)

ΠPRICE (PROJECT)

ΠP_CODE,PRICE (PROJECT)

Trang 15

Phép tích Descartes

„ Cho quan hệ r trên lược đồ R(A1,

A2, ,Am) và s trên lược đồ S(B1,B2,…,Bn)

„ Phép tích Descartes của r và s là 1 quan

hệ trên lược đồ T(A1, A2, , Am, B1, B2,

Î Bậc là m + n và có k x l bộ

15

Trang 16

Cartesian-Product Operation – Example

I Relations r, s:

I r x s:

A B

α β

1 2

A B

α α α α β β β β

1 1 1 1 2 2 2 2

C D

α β β γ α β β γ

10 10 20 10 10 10 20 10

E a a b b a a b b

C D

α β β γ

10 10 20 10

E

a a b b r

s

Trang 17

Ví dụ

17

PRODUCT x STORE

Trang 18

Phép hợp (union), phép hiệu (intersection)

Trang 19

NN Union

19

Trang 20

Intersect

Trang 21

1 1 1 1 2 2 2 2

C D

α β β γ α β β γ

10 10 20 10 10 10 20 10

E a a b b a a b b

A B C D E

α β β

1 2 2

α β β

10 10 20

a a b

σA=C(r x s)

Trang 23

Phép kết θ

θ-join

„ Cho quan hệ r trên R, quan hệ s trên S

Gọi T = R ∪ S, các thuộc tính của R khác với các thuộc tính của S, θ là 1 phép so

sánh A ∈ R và B ∈ S là 2 thuộc tính có

thể so sánh với nhau bởi phép toán θ

„ Phép kết θ của r và s trên 2 thuộc tính A

và B, cho kết quả là 1 quan hệ q trên lược

đồ quan hệ T bao gồm các bộ t

Q(T) = {t | ∃ tr ∈ r và ts ∈ s với t[R] = tr

và t[S] = ts và t[A] θ t[B] }

23

Trang 25

Ví dụ

25

Trang 26

Ví dụ

26

Trang 27

sinh viên nhỏ hơn Id của giáo sư

ΠId,Name(STUDENT) Id<Id ΠId,Name(PROFESSOR)

[stuid, studname, profid, profname]

27

Trang 28

Ví dụ

„ Hãy liệt kê tên các giáo sư dạy môn học

mùa thu 2007 (semester =‘F2007’)

σSemester=‘F2007’(TEACHING))

28

Trang 29

Ví dụ

„ Tìm tên môn và tên giáo sư của các môn

học được dạy trong mùa thu 2007

ΠCrsName,Name((PROFESSOR Id=ProfId

σSemester=‘F2007’ (TEACHING))

CrsCode=CrsCodeCOURSE)

29

Trang 30

Phép kết bằng (Equijoin)

S và dom(Ai) = dom(Bi), i = 1… k Gọi T = R ∪

S (k là số thuộc tính dùng để so sánh bằng ở 2

quan hệ)

A2,…, Ak và B1, B2,… Bk cho kết quả là 1 quan

hệ trên T bao gồm các bộ:

Q(T) = {t | ∃ tr ∈ r và ts ∈ s với t[R] = tr

và t[S] = ts và t[Ai] = t[Bi],

Trang 32

Phép kết tự nhiên (Natural join)

„ Phép kết tự nhiên của 2 quan hệ r và s

cho kết quả là 1 quan hệ q trên lược đồ

quan hệ T (có tập thuộc tính là hợp của

các tập thuộc tính của R và S) bao gồm

các bộ t như sau:

r s = {t| ∃ tr ∈ r và ts ∈ s với t[R] = tr và t[S] = ts }

„ R và S có thể có thuộc tính trùng nhau

Quan hệ kết quả q không lặp lại các thuộc

Trang 33

α β γ α δ

1 2 4 1 2

1 2 4 1 2

C D

α γ β γ β

α γ β γ β

a a b a b

a a b a b

B

1 3 1 2 3

1 3 1 2 3

D

a a a b b

a a a b b

E

α β γ δ

α β γ δ

r

A B

α α α α δ

1 1 1 1 2

C D

α α γ γ β

a a a a b

E

α γ α γ δ

s

I r s

Trang 34

Phép kết tự nhiên (Natural join)

34

Trang 36

kiện ngầm định của kết tự nhiên

Trang 37

…So sánh phép kết tự nhiên và kết bằng

„ Thuộc tính kết quả của kết tự nhiên:

StudId, CrsCode, Semester, Grade, ProfId

„ Thuộc tính kết quả của kết bằng:

StudId, TRANSCRIPT.CrsCode, TEACHING

CrsCode, TRANSCRIPT.Semester,

TEACHING.Semester, Grade, ProfId

Trang 39

„ Cho quan hệ r trên R, s trên S R ∩S ≠ ∅.Gọi T = R ∪ S (khác với r ∪ s)

39

Trang 40

Phép kết ngoài (Outer join)

„ Phép kết ngoài của r và s cho kết quả là 1 quan hệ q trên T bao gồm:

Các thuộc tính bị thiếu của các bộ được

tạo thêm sẽ lấy giá trị null

40

Trang 42

Outer Join – Example

„ Relation loan

I Relation borrower

customer_name loan_number

Jones Smith Hayes

Jones Smith Hayes

L-170 L-230 L-155

L-170 L-230 L-155

3000 4000 1700

L-170 L-230 L-260

branch_name

Downtown Redwood Perryridge

Trang 43

Downtown Redwood

Jones Smith

null

Jones Smith

null

loan_number amount

L-170 L-230 L-260

L-170 L-230 L-260

3000 4000 1700

3000 4000 1700

customer_name

branch_name

Downtown Redwood Perryridge

Downtown Redwood Perryridge

I Left Outer Join

loan borrower

Trang 44

Outer Join – Example

loan_number amount

L-170 L-230 L-155

L-170 L-230 L-155

3000 4000

null

3000 4000

null

customer_name

Jones Smith Hayes

Jones Smith Hayes

branch_name

Downtown Redwood

null

Downtown Redwood

null

L-170 L-230 L-260 L-155

3000 4000 1700

null

customer_name

Jones Smith

null

Hayes

branch_name

Downtown Redwood Perryridge

Trang 45

Phép nửa kết θ

(θ-semijoin)

„ Phép nửa kết của r và s trên 2 thuộc tính

A ∈ R và B ∈ S cho kết quả là 1 quan hệ

bao gồm các bộ của r mà chúng kết với s theo điều kiện A θ B

Trang 47

Phép chia (Division)

„ Xét các query sau:

của khoa CS (computer Science) đều dạy?

Trang 48

Phép chia

(Division)

„ Cho quan hệ r trên R(A1,…, An,B1, , Bn)

và s trên S(B1,…,Bm)

„ Phép chia quan hệ r cho s, ký hiệu r/s với

s ≠ ∅ cho kết quả là 1 quan hệ q trên T

(A1, …, An) bao gồm các bộ <a> sao cho đối với mỗi bộ <b> của s , thì bộ <a,b>

thuộc r

<a> ∈ r/s if and only if {<a>} x s ⊆ r

48

Trang 49

1 2

A B

α α α β γ δ δ δ

∈ β

1 2 3 1 1 1 3 4 6 1 2 r

s

Trang 50

Ví dụ phép chia

101 555

CrsCode CS305

PROFCOURSE

783 009 121 555 101 900

M123 M123 EE101 CS305 CS315 MA23

Kết quả của PROFCOURSES/PROFCS

Môn học mà tất cả giáo sư CS đều dạy

Ngày đăng: 28/03/2014, 20:43

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w