1. Trang chủ
  2. » Giáo án - Bài giảng

Chương 5 Mô hình dữ liệu quan hệ

57 836 3

Đ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 57
Dung lượng 1,97 MB

Nội dung

Ngôn ngữ quan hệNgôn ngữ phi thủ tục non-procedural language cho phép người dùng chỉ ra cái what họ muốn mà không cần chỉ ra cách thực hiện như thế nào how để được kết quả đó ◦ SQL là n

Trang 1

Chương 5

Mô hình dữ liệu quan hệ

1

Trang 3

Ngôn ngữ quan hệ

Ngôn ngữ phi thủ tục (non-procedural

language) cho phép người dùng chỉ ra cái (what) họ muốn mà không cần chỉ ra cách thực hiện như thế nào (how) để được kết quả đó

◦ SQL là ngôn ngữ phi thủ tục

Đại số quan hệ là một ngôn ngữ thủ tục

mức cao (high-level procedure language) cho phép DBMS tạo 1 quan hệ mới

3

Trang 4

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

4

Trang 5

Đạ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

5

Trang 6

Đại số quan hệ và SQL

Lập trình viên dùng SQL để xác định query của họ

DBMS kiểm tra cú pháp (parse) của

query, dịch nó thành 1 biểu thức của đại

số quan hệ, đơn giản hơn nhưng ít hiệu

quả hơn về giải thuật Query optimizer

biến đổi biểu thức đại số này thành 1 biểu thức tương đương nhưng ít tốn thời gian

thực thi hơn  tạo 1 execution plan Code generator chuyển đổi nó thành mã để thực thi

6

Trang 7

SQL query

Relational algebra Expression

Query Execution Plan

Executable Code

Parser

Query Optimizer Query Optimizer

Code generator

Trang 10

5 phép toán cơ bản

Các phép toán được thực hiện cho quan hệ

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

Điều kiện F là 1 biểu thức luận lý có giá trị true/false, nó bao gồm:

◦ Các toán hạng là hằng hoặc tên thuộc tính

◦ Các phép toán so sánh =, , <, ≤,>, 

◦ Các phép toán luận lý not (), and (), or ()

10

Trang 11

Phép chọn (selection operation)

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

F(r) = {t|t r và F(t) = true}

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

F(r) có bao nhiêu bậc và bộ?

 Bậc là n và có tối đa là k bộ

11

Trang 12

Ví dụ

12

Trang 13

Select Operation – Example

7 7 3 10

7 10

Trang 14

14

PRICE<$2.0(Product )

PCODE =311452(Product)

Trang 15

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

15

Trang 16

Project Operation – Example

1 1 1 2

A,C (r)

Trang 18

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,

….,Bn)

r x s = {(t1,t2, ,tm,tm+1,…Tm+n) |(t1,

t2, , tm)  r và (tm+1, …, tm+n)  s }

Nếu quan hệ r có bậc là m, và k bộ

Và quan hệ s có bậc là n và l bộ thì r x s có bao nhiêu bậc và bộ?

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

18

Trang 19

Cartesian-Product Operation – Example

E a a b b a a b b

E

a a b b r

s

Trang 20

Ví dụ

20

PRODUCT x STORE

Trang 21

Phép tích Descartes

Nếu các quan hệ có tên trùng nhau ?

Id ,Name(STUDENT)x Id,DeptId(PROFESSOR)

Hướng giải quyết:

◦ Đặt tên quan hệ trước thuộc tính bị trùng tên

21

Trang 22

Phép tích Descartes

Hướng giải quyết:

◦ Đặt tên quan hệ trước thuộc tính bị trùng tên

Trang 24

24

Trang 25

25

Trang 26

Biểu thức phức

E a a b b a a b b

10 10 20

a a b

A=C(r x s)

Trang 27

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 

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] }

27

Trang 29

Ví dụ

29

Trang 30

Ví dụ

30

Trang 31

TRANSCRIPT(StudId,CrsCode,Semester, Year, Grade)

Hãy liệt kê tên sinh viên và giáo sư mà ID của sinh viên nhỏ hơn Id của giáo sư

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

[stuid, sudname, profid, profname]

31

Trang 32

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

Name(PROFESSOR Id=ProfId

Semester=‘F2007’(TEACHING))

32

Trang 34

Phép kết bằng của r và s trên các thuộc

tính A1, 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],

i =1, , k }

34

Trang 36

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 với T = R  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 tính được kết với nhau

36

Trang 37

Natural Join Operation – Example

1 2 4 1 2

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

Trang 38

Ví dụ: liệt kê danh sách Id của các sinh

viên đã từng học 1 môn học cùng với Id

của giáo sư

id(TRANSCRIPT TEACHING)

38

Trang 39

Natural-Join Operation - Example

Cho R = (A, B, C, D)

S = (E, B, D)

Lược đồ kết quả = (A, B, C, D, E)

r s được xác định như sau:

r.A, r.B, r.C, r.D, s.E (r.B = s.B r.D = s.D (r x s))

Trang 41

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

 Không hoàn toàn giống nhau

41

Trang 42

Nếu muốn tìm sinh viên đăng ký học 15

môn khác nhau thì sao???

42

Trang 44

Phép kết ngoài

(Outer join)

Cho phép các bộ của 1 quan hệ xuất hiện trong kết quả của phép kết cho dù chúng kết được với các bộ của quan hệ khác hay không

Cho quan hệ r trên R, s trên S R S   Gọi T = R  S

44

Trang 47

Outer Join – Example

Relation loan

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

loan_number amount

L-170 L-230 L-260

branch_name

Downtown Redwood Perryridge

Trang 48

Outer Join – Example

branch_name

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

loan borrower

Trang 49

Outer Join – Example

null

3000 4000

null

customer_name

Jones Smith Hayes

Jones Smith Hayes

branch_name

Downtown Redwood

null

Downtown Redwood

null

loan_number amount

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

3000 4000 1700

null

customer_name

Jones Smith

null

Hayes

branch_name

Downtown Redwood Perryridge

Trang 50

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 52

Phép chia

(Division)

Xét các query sau:

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

học được dạy bởi các giáo sư của khoa CS?

 Cần tìm ra các bộ của 1 quan hệ khớp

(match) với tất cả các bộ của 1 quan hệ

khác

52

Trang 53

Phép chia

(Division)

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

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

53

Trang 54

_a

_b _c

54

Not in r/s

In r/s

Trang 55

Division Operation – Example

s

Trang 56

Ví dụ phép chia

PROFCS Id

101555

CrsCodeCS305

783 009 121

555 101

900

101

M123 M123 EE101

CS305

CS315 MA23

CS305

56

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: 12/05/2014, 12:04

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w