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

Chương 7: Phép tính quan hệ ppsx

33 374 2
Tài liệu đã được kiểm tra trùng lặp

Đ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

Tiêu đề Chương 7: Phép tính quan hệ ppsx
Trường học Trường Đại Học Khoa Học Tự Nhiên - Đại Học Quốc Gia Hà Nội
Chuyên ngành Công Nghệ Thông Tin
Thể loại Chương
Thành phố Hà Nội
Định dạng
Số trang 33
Dung lượng 477 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

So sánh đại số quan hệ và phép tính quan hệ  Nếu theo đại số quan hệ thì trình tự thực hiện như sau: 1Tạo mối kết nối tự nhiên của 2 quan hệ SUPPLIER và SHIPMENT trên thuộc tính S#; 2Dù

Trang 1

PHÉP TÍNH QUAN HỆ

Chương 7

Trang 3

 Xét về mặt khái niệm, thì SQL lại dựa vào 1 ngôn ngữ truy vấn chính quy hoàn toàn khác (formal query language)

 Relational calculus (phép tính quan hệ)

Trang 5

So sánh đại số quan hệ và phép

tính quan hệ

 Nếu theo đại số quan hệ thì trình tự thực hiện như sau:

1)Tạo mối kết nối tự nhiên của 2 quan hệ SUPPLIER

và SHIPMENT trên thuộc tính S#;

2)Dùng phép chọn thu hẹp kết quả của kết nối này, chỉ còn lại các bộ liên quan đến phụ tùng P2;

3)Dùng phép chiếu (project) để kết quả chỉ còn lại thuộc tính S#

Trang 6

So sánh đại số quan hệ và phép

tính quan hệ

 Nếu theo phép tính quan hệ thì:

• Tìm mã nhà cung cấp S# sao cho tồn tại 1 vận chuyển hàng SP nào đó có cùng mã S# và có mã phụ tùng P#

là P2

 Phép tính quan hệ thì mô tả, đại số quan hệ đưa ra qui tắc, cách dùng

Trang 7

Phép tính quan hệ

 Là 1 phân nhánh của logic vị từ (predicate logic)

 Được dùng trong CSDL dưới 2 dạng:

Phép tính quan hệ bộ (Tuple relational calculus –TRC)

Phép tính quan hệ miền (Domain relational calculus – DRC)

Trang 8

Phép tính quan hệ bộ - TRC

 Các query trong TRC đều có dạng:

{T| Condition}

Target chứa biến bộ (Tuple variable) T

 Ví dụ: tìm tất cả thông tin các môn học được dạy trong mùa thu 2007

{ T | TEACHING(T) AND T.Semester = ‘F2007’}

SELECT * FROM TEACHING

Trang 11

Lượng từ

 Lượng từ tồn tại (existential quantifier):

∃T ∈ R (C)  tồn tại 1 bộ t∈r sao cho C trở nên đúng sau khi

t được thay thế bởi T

 Lượng từ phổ quát (universal quantifier):

∀T ∈ R (C)  với mọi bộ t ∈ r, C trở nên đúng nếu t được thay thế bởi biến T

Trang 12

Biến (variable)

 Nếu biến bộ đứng sau 1 lượng từ ∀, ∃ được gọi là biến buộc (bound variable) Ngược lại là biến tự do (free variable)

X là biến tự do trong phát biểu sau

“X is in CS305” (hay có thể biểu diễn thành C(X) )

Phát biểu trên không đúng cũng không sai cho đến khi gán 1 giá trị cho X

Trang 13

Biến (variable)

X là biến buộc (được định lượng) trong phát biểu sau

“there exists a student X such that X is in CS305” (biểu diễn

thành ∃ X S (C(X)), với S là tập hợp tất cả sinh viên)

Phát biểu trên có thể được gán giá trị TRUE/FALSE tại bất kỳ 1 thời điểm nào đó của database

Trang 14

So sánh biến buộc và biến tự do

trong TRC

 Biến buộc (Bound variable) được dùng để đánh giá các bộ trong 1 quan hệ (được dùng trong condition)

 Biến tự do (Free variable) được dùng cho các bộ được trả

về bởi truy vấn (được dùng trong target)

• Khi 1 giá trị được thay thế cho biến S thì điều kiện sẽ trở nên true hoặc false

• Chỉ có biến S là biến tự do trong điều kiện

{S | Student(S) AND ( T Transcript

(S.Id = T.StudId AND T.CrsCode = ‘CS305’))}

{S | Student(S) AND ( T Transcript

(S.Id = T.StudId AND T.CrsCode = ‘CS305’))}

Trang 15

Ví dụ 1

 {E| COURSE(E) AND ∀S∈ STUDENT (∃T

∈TRANSCRIPT(T.StudId = S.Id AND T.CrsCode =

E.CrsCode))}

 ???

Liệt kê tất cả các môn học mà mọi sinh viên đều học

Trang 16

Ví dụ 2

 Liệt kê tên của tất cả giáo sư đã dạy môn MGT123??

{P.Name| PROFESSOR(P) AND ∃T ∈ TEACHING (P.Id=

T.ProfId AND T.CrsCode = ‘MGT123’)}

 Câu lệnh SQL tương ứng

SELECT P.Name

FROM PROFESSOR P, TEACHING T

WHERE P.Id= T.ProfId AND T.CrsCode = ‘MGT123’

Trang 17

Ví dụ 3

 Tìm mã số tất cả các sinh viên đã học cùng 1 môn 2 lần ở

những học kỳ khác nhau

{T.StudId | TRANSCRIPT(T) AND ∃T1 ∈

TRANSCRIPT( T.StudId = T1.StudId AND

T.CrsCode = T1.CrsCode AND T.Semester ≠

T1.Semester)}

Trang 18

Một số lưu ý khi dùng lượng từ

 Các lượng từ tồn tại (∃) kề nhau có thể hoán vị cho nhau

Ví dụ:

∃R ∈ TRANSCRIPT (∃T ∈ TEACHING)( ))

T ∈ TEACHING (∃R ∈ TRANSCRIPT)( ))

Trang 19

Một số lưu ý khi dùng lượng từ

 Các lượng từ phổ quát (∀) và tồn tại (∃) không hoán vị cho

Trang 20

Phép tính quan hệ miền

Domain relational calculus (DRC)

 Là cơ sở cho ngôn ngữ truy vấn trực quan như MS Access, IBM QBE, Borland Paradox

 DRC tương tự như TRC, chỉ khác nhau là DRC sử dụng biến miền (Domain variable) thay cho biến bộ (Tuple variable)

Trang 21

Domain variable

 Biến miền sẽ nhận giá trị từ miền giá trị (domain) của 1

thuộc tính nào đó

 Ví dụ: quan hệ TEACHING có thuộc tính ProfId với

miền giá trị chứa các số Id hợp lệ Nếu biến Pid là biến

miền thì nó sẽ có giá trị từ miền chứa các ID hợp lệ này

Trang 22

DRC query

 Kết quả của DRC query cũng là 1 quan hệ và có dạng chung sau:

{X1,…,Xn| Condition}

 Ví dụ: TRC và DRC query tương đương nhau:

{Pid, Code | TEACHING (Pid, Code, F2007)}

{T | TEACHING(T) AND T.Semester=‘F2007’}

DRC query đơn giản hơn, loại trừ được phép so sánh T.Semester=‘F2007’

Biến miền

Target

Trang 24

Điều kiện cơ bản

Trang 25

Điều kiện phức

 Các condition phức được xây dựng đệ quy như sau:

• C là điều kiện của query nếu nó là 1 atomic condition

• If C1 và C2 là điều kiện của query thì C1 AND C2, C1

OR C2 và NOT C1 cũng là điều kiện của query

• Nếu C là điều kiện của query, R là tên của quan hệ và X

là biến miền thì ∀X ∈ R.A (C) và ∃X ∈ R.A (C) cũng là điều kiện của query

Trang 26

Lượng từ và biến miền

 ∀X ∈ R.A (C) đọc là “ với mọi giá trị xảy ra trong cột A của quan hệ R thì điều kiện C phải đúng

 và ∃X ∈ R.A (C) đọc là “ có ít nhất một giá trị x trong cột R.A sao cho C trở nên true nếu x được thay thế cho tất cả các biến X

Trang 28

DRC query

 DRC query thường sử dụng nhiều biến hơn TRC tương ứng vì biến DRC dùng cho mỗi giá trị đơn trong khi biến TRC dùng cho cả bộ

 Miền phổ dụng ( universal domain) U chứa tất cả các giá trị trong tất cả các domain

 ∃X ∈ U (Condition) được viết tắt thành ∃X (Condition)

Trang 30

Mối quan hệ giữa đại số quan hệ, phép

tính quan hệ TRC, DRC

 Cả 3 ngôn ngữ đều có khả năng diễn đạt mạnh như nhau: các query được viết bằng ngôn ngữ này có thể được viết

bằng ngôn ngữ khác

Trang 31

Tương đương của 3 ngôn ngữ

 Phép chọn (selection)

• Algebra: σ Condition (R)

• TRC: {T|R(T) AND Condition1}

• DRC: {X1,…,Xn|R(X1,…,Xn) AND Condition2}

Trong đó: nếu Condition có dạng A=B and C=d thì

 Condition1 sẽ là T.A = T.B AND T.C =D

 Condition2 sẽ là X1=X2 AND X3=d

Trang 32

Tương đương của 3 ngôn ngữ

Giả sử R có 5 attribute với A,B,C là 3 thuộc tính đầu được dùng trong phép chiếu

Trang 33

Tương đương của 3 ngôn ngữ

Giả sử R có 3 thuộc tính A,B,C và S có 2 thuộc tính D,E

Ngày đăng: 04/07/2014, 22:20

TỪ KHÓA LIÊN QUAN

w