51
1 Chương 3 Chương 3 Mô hình dữ lịêu Mô hình dữ lịêu quan hệ quan hệ

Chương 3 Mô hình dữ lịêu quan hệ

  • Upload
    olesia

  • View
    55

  • Download
    0

Embed Size (px)

DESCRIPTION

Chương 3 Mô hình dữ lịêu quan hệ. Nội dung. Đại số quan hệ 5 phép toán cơ bản 3 phép toán suy dẫn Các loại phép kết Các quy tắc của 1 DBMS. Ngôn ngữ quan hệ. - PowerPoint PPT Presentation

Citation preview

Page 1: Chương  3 Mô hình dữ lịêu quan hệ

11

Chương 3Chương 3Mô hình dữ lịêu quan hệMô hình dữ lịêu quan hệ

Page 2: Chương  3 Mô hình dữ lịêu quan hệ

22

Nội dungNội dung

Đại số quan hệĐại số quan hệ• 5 phép toán cơ bản5 phép toán cơ bản• 3 phép toán suy dẫn3 phép toán suy dẫn

Các loại phép kếtCác loại phép kết

Các quy tắc của 1 DBMSCác quy tắc của 1 DBMS

Page 3: Chương  3 Mô hình dữ lịêu quan hệ

33

Ngôn ngữ quan hệNgôn ngữ quan hệ

Ngôn ngữ phi thủ tụcNgôn ngữ phi thủ tục (non-procedural (non-procedural language) cho phép người dùng chỉ ra cái 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 (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 thực hiện như thế nào (how) để được kết quả đóquả đó• SQL là ngôn ngữ phi thủ tụcSQL là ngôn ngữ phi thủ tục

Đại số quan hệĐại số quan hệ là một ngôn ngữ thủ tục là một ngôn ngữ thủ tục mức cao (high-level procedure language) mức cao (high-level procedure language) cho phép DBMS tạo 1 quan hệ mớicho phép DBMS tạo 1 quan hệ mới

Page 4: Chương  3 Mô hình dữ lịêu quan hệ

44

Đại số quan hệ Đại số quan hệ (Relational Algebra)(Relational Algebra)

Đại số quan hệ là ngôn ngữ tập hợp (set Đại số quan hệ là ngôn ngữ tập hợp (set language) bao gồm các toán tử (operator) language) bao gồm các toán tử (operator) thao tác trên 1 hay nhiều quan hệ để tạo 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 ra 1 quan hệ khác mà không làm thay đổi các quan hệ ban đầu.các quan hệ ban đầu.

Các toán hạng và kết quả đều là quan hệ 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 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 toán hạng cho 1 phép toán khác tính tính bao đóng (closure)bao đóng (closure)

Page 5: Chương  3 Mô hình dữ lịêu quan hệ

55

Đại số quan hệ và SQL Đại số quan hệ và SQL Query thực chất là 1 biểu thức chứa 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 các toán tử của đại số quan hệ. Kết quả của query cũng là 1 quan hệ. quả của query cũng là 1 quan hệ.

NhưngNhưngSQL là 1 ngôn ngữ phi thủ tục ( không SQL là 1 ngôn ngữ phi thủ tục ( không

xác định các thủ tục được dùng để xử xác định các thủ tục được dùng để xử lý truy vấn), còn đại số quan hệ theo lý truy vấn), còn đại số quan hệ theo hướng thủ tục.hướng thủ tục.

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

Page 6: Chương  3 Mô hình dữ lịêu quan hệ

66

Đại số quan hệ và SQLĐại số quan hệ và SQL

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

DBMS kiểm tra cú pháp (parse) của DBMS kiểm tra cú pháp (parse) của query, dịch nó thành 1 biểu thức 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 đại số quan hệ, đơn giản hơn nhưng ít hiệu quả hơn về giải thuật. Query ít hiệu quả hơn về giải thuật. Query optimizer biến đổi biểu thức đại số optimizer biến đổi biểu thức đại số này thành 1 biểu thức tương đương 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 nhưng ít tốn thời gian thực thi hơn tạo 1 execution plan. Code generator tạo 1 execution plan. Code generator chuyển đổi nó thành mã để thực thi. chuyển đổi nó thành mã để thực thi.

Page 7: Chương  3 Mô hình dữ lịêu quan hệ

77

SQL query

Relational algebra ExpressionRelational algebra Expression

Query Execution PlanQuery Execution Plan

Executable CodeExecutable Code

Parser

Query Optimizer

Code generator

Page 8: Chương  3 Mô hình dữ lịêu quan hệ

88

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

Phép chọn (selection)Phép chọn (selection) Phép chiếu (projection)Phép chiếu (projection) Phép tích Descartes Phép tích Descartes (Cartesian product(Cartesian product)) Phép hợp (union)Phép hợp (union) Phép hiệu (difference)Phép hiệu (difference)

Page 9: Chương  3 Mô hình dữ lịêu quan hệ

99

3 phép toán suy dẫn3 phép toán suy dẫn(Derived operator)(Derived operator)

Có thể được biểu diễn như biểu thức Có thể được biểu diễn như biểu thức của các phép toán cơ bảncủa các phép toán cơ bản

3 phép toán suy dẫn:3 phép toán suy dẫn:• IntersectionIntersection• DivisionDivision• JoinJoin

Page 10: Chương  3 Mô hình dữ lịêu quan hệ

1010

5 phép toán cơ bản5 phép toán cơ bản Các phép toán được thực hiện cho Các phép toán được thực hiện cho

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

Điều kiện F là 1 biểu thức luận lý có Điều kiện F là 1 biểu thức luận lý có giá trị true/false, nó bao gồm:giá trị true/false, nó bao gồm:• Các toán hạng là hằng hoặc tên thuộc Các toán hạng là hằng hoặc tên thuộc

tính tính • Các phép toán so sánh =, Các phép toán so sánh =, , <, ≤,>, , <, ≤,>, • Các phép toán luận lý not (Các phép toán luận lý not (), and (), and (), or ), or

(())

Page 11: Chương  3 Mô hình dữ lịêu quan hệ

1111

Phép chọn (selection)Phép chọn (selection)

Phép chọn trên r theo điều kiện F, ký Phép chọn trên r theo điều kiện F, ký hiệu là hiệu là FF(r), cho kết quả là 1 quan hệ (r), cho kết quả là 1 quan hệ bao gồm các bộ của r thỏa mãn điều bao gồm các bộ của r thỏa mãn điều kiện Fkiện F

FF(r) = {t|t (r) = {t|t r và F(t) = true}r và F(t) = true} Nếu quan hệ r có bậc là n và có k bộ Nếu quan hệ r có bậc là n và có k bộ

thì thì FF(r) có bậc là n và có tối đa là k (r) có bậc là n và có tối đa là k bộbộ

Page 12: Chương  3 Mô hình dữ lịêu quan hệ

1212

Ví dụVí dụ

Page 13: Chương  3 Mô hình dữ lịêu quan hệ

1313

SelectionSelection

PRICE<$2.0PRICE<$2.0(Product(Product))

PCODE =311452PCODE =311452(Product)(Product)

Page 14: Chương  3 Mô hình dữ lịêu quan hệ

1414

Phép chiếuPhép chiếu(Projection)(Projection)

Cho quan hệ r trên R(A1, A2,..,Am) Cho quan hệ r trên R(A1, A2,..,Am) và tập con các thuộc tính X={Aj1, và tập con các thuộc tính X={Aj1, Aj2, …, Ajn} với j1, j2,.., jn là các số Aj2, …, Ajn} với j1, j2,.., jn là các số nguyên phân biệt nằm trong khoảng nguyên phân biệt nằm trong khoảng từ 1 đến mtừ 1 đến m

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

XX(r) = {t | (r) = {t | u u r sao cho t = u[X]} r sao cho t = u[X]}

Page 15: Chương  3 Mô hình dữ lịêu quan hệ

1515

ProjectionProjection

P_DESCRIPT,PRICE (PROJECT)

PRICE(PROJECT)

P_CODE,PRICE (PROJECT)

Page 16: Chương  3 Mô hình dữ lịêu quan hệ

1616

Phép tích DescartesPhép tích Descartes

Cho quan hệ r trên lược đồ R(A1, Cho quan hệ r trên lược đồ R(A1, A2,..,Am) và s trên lược đồ S(B1,B2,A2,..,Am) và s trên lược đồ S(B1,B2,…,Bn)…,Bn)

Phép tích Descartes của r và s là 1 Phép tích Descartes của r và s là 1 quan hệ trên lược đồ T(A1, A2,.., quan hệ trên lược đồ T(A1, A2,.., Am,B1,B2,….,Bn) Am,B1,B2,….,Bn) r x s = {(t1,t2,..,tm,tm+1,…Tm+n) | r x s = {(t1,t2,..,tm,tm+1,…Tm+n) | (t1,t2,.., tm) (t1,t2,.., tm) r và (tm+1, …, tm+n} r và (tm+1, …, tm+n}

s } s }

Page 17: Chương  3 Mô hình dữ lịêu quan hệ

1717

Ví dụVí dụ

PRODUCT x STORE

Page 18: Chương  3 Mô hình dữ lịêu quan hệ

1818

Phép tích DescartesPhép tích Descartes

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

IdId,Name,Name((STUDENTSTUDENT)x )x IdId,DeptId,DeptId((PROFESSORPROFESSOR)) Hướng giải quyết:Hướng giải quyết:

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

STUDENT.STUDENT.IdId NameName PROFESSOR.PROFESSOR.IdId DeptIdDeptId

Page 19: Chương  3 Mô hình dữ lịêu quan hệ

1919

Phép tích DescartesPhép tích Descartes Hướng giải quyết:Hướng giải quyết:

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

• Dùng toán tử RenamingDùng toán tử Renaming

expression[A1,…An]expression[A1,…An]

Expresssion: biểu thức đại sốExpresssion: biểu thức đại số

A1.. An: tên thay thếA1.. An: tên thay thế

Ví dụ:Ví dụ:

Id,NameId,Name((STUDENTSTUDENT)x )x Id,DeptIdId,DeptId((PROFESSORPROFESSOR))

[StudId,StudName,ProfId, ProfDept][StudId,StudName,ProfId, ProfDept]

Page 20: Chương  3 Mô hình dữ lịêu quan hệ

2020

Phép hợpPhép hợp

Phép hợp của 2 quan hệ r và sPhép hợp của 2 quan hệ r và sr r s = {t | t s = {t | t r hay t r hay t s} s}

Phép hiệu của 2 quan hệ r và sPhép hiệu của 2 quan hệ r và sr - s = {t | t r - s = {t | t r và t r và t s} s}

Phép giao của 2 quan hệ r và sPhép giao của 2 quan hệ r và sr r s = {t | t s = {t | t r và t r và t s} s}

Điều kiện: các quan hệ r và s phải có Điều kiện: các quan hệ r và s phải có tính khả hợp ( union-compatible)tính khả hợp ( union-compatible)

Page 21: Chương  3 Mô hình dữ lịêu quan hệ

2121

UnionUnion

Page 22: Chương  3 Mô hình dữ lịêu quan hệ

2222

Intersect(giao)Intersect(giao)

Page 23: Chương  3 Mô hình dữ lịêu quan hệ

2323

Phép kết Phép kết -join-join

Cho quan hệ r trên R, quan hệ s trên S. Gọi Cho quan hệ r trên R, quan hệ s trên S. Gọi T = R T = R S, các thuộc tính của R khác với S, các thuộc tính của R khác với các thuộc tính của S, các thuộc tính của S, là 1 phép so sánh. là 1 phép so sánh. A A R và B R và B S là 2 thuộc tính có thể so S là 2 thuộc tính có thể so sánh với nhau bởi phép sánh với nhau bởi phép

Phép kết Phép kết của r và s trên 2 thuộc tính A và 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 đồ B, cho kết quả là 1 quan hệ q trên lược đồ quan hệ T bao gồm các bộ tquan hệ T bao gồm các bộ t

Q(T) = {t | Q(T) = {t | t trr r và t r và tss s với t[R] = t s với t[R] = trr và t[S] = ts và t[A] và t[S] = ts và t[A] t[B] } t[B] }

Page 24: Chương  3 Mô hình dữ lịêu quan hệ

2424

Phép kết Phép kết -join-join

Phép kết của 2 quan hệ r và s Phép kết của 2 quan hệ r và s

r r A A B B s = s = A B (r x s) (r x s) Phép kết có tính giao hoánPhép kết có tính giao hoán

Page 25: Chương  3 Mô hình dữ lịêu quan hệ

2525

Ví dụVí dụ

Page 26: Chương  3 Mô hình dữ lịêu quan hệ

2626

Ví dụVí dụ

Page 27: Chương  3 Mô hình dữ lịêu quan hệ

2727

Ví dụVí dụ Cho các quan hệ sau:Cho các quan hệ sau:

• STUDENT(Id,Name,BirthDate)STUDENT(Id,Name,BirthDate)• PROFESSOR(Id,Name,Qualification)PROFESSOR(Id,Name,Qualification)• TEACHING(ProfID,CrsCode,Semester)TEACHING(ProfID,CrsCode,Semester)• COURSE(CrsCode,Name)COURSE(CrsCode,Name)• TRANSCRIPT(StudId,CrsCode,Semester, TRANSCRIPT(StudId,CrsCode,Semester,

Year,Grade)Year,Grade) Hãy liệt kê tên sinh viên và giáo sư mà ID 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ưcủa sinh viên nhỏ hơn Id của giáo sư

Id,NameId,Name((STUDENTSTUDENT) ) Id<IdId<Id Id,NameId,Name((PROFESSORPROFESSOR))

Page 28: Chương  3 Mô hình dữ lịêu quan hệ

2828

Ví dụVí dụ

Hãy liệt kê tên các giáo sư dạy môn Hãy liệt kê tên các giáo sư dạy môn học mùa thu 2007 (semester học mùa thu 2007 (semester =‘F2007’)=‘F2007’)

NameName(PROFESSOR (PROFESSOR Id=ProfId Id=ProfId Semester=‘F2007’

(TEACHING)) (TEACHING))

Page 29: Chương  3 Mô hình dữ lịêu quan hệ

2929

Ví dụVí dụ

Tìm tên môn và tên giáo sư của các 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 môn học được dạy trong mùa thu 20072007

CrsName,NameCrsName,Name(PROFESSOR (PROFESSOR Id=ProfIdId=ProfId

Semester=‘F2007’ (TEACHING)) (TEACHING))

CrsCode=CrsCodeCrsCode=CrsCodeCOURSE)COURSE)

Page 30: Chương  3 Mô hình dữ lịêu quan hệ

3030

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

Cho quan hệ r trên R, s trên S với Ai Cho quan hệ r trên R, s trên S với Ai R và R và Bi Bi S và dom(Ai) = dom(Bi) , i = 1… k. S và dom(Ai) = dom(Bi) , i = 1… k. Gọi T = R Gọi T = R S S

Phép kết bằng của r và s trên các thuộc 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 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ộ:quả là 1 quan hệ trên T bao gồm các bộ:

Q(T) = {t | Q(T) = {t | t trr r và t r và tss s với t[R] = t s với t[R] = trr

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

i =1,.., k }i =1,.., k }

Page 31: Chương  3 Mô hình dữ lịêu quan hệ

3131

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

Nếu r có bậc m và k1 bộ, s có bậc n Nếu r có bậc m và k1 bộ, s có bậc n và k2 bộ thìvà k2 bộ thì

r r A1=B1 ^A2 = B2 ^.^Ak=BkA1=B1 ^A2 = B2 ^.^Ak=Bk s sCó bậc là m+n và có tối đa k1 x k2 bộCó bậc là m+n và có tối đa k1 x k2 bộ Nếu R và S có thuộc tính A trùng Nếu R và S có thuộc tính A trùng

nhau, thì nên thay thành R.A và S.A nhau, thì nên thay thành R.A và S.A để cho R để cho R S = S =

Trong phép kết bằng, nếu k=0 thì Trong phép kết bằng, nếu k=0 thì phép kết bằng trở thành phép tích phép kết bằng trở thành phép tích Descartes Descartes

Page 32: Chương  3 Mô hình dữ lịêu quan hệ

3232

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

Phép kết tự nhiên của 2 quan hệ r và 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 s cho kết quả là 1 quan hệ q trên lược đồ quan hệ T với lược đồ quan hệ T với T = R T = R S S bao bao gồm các bộ t như sau:gồm các bộ t như sau:

r r s = {t| s = {t| t trr r và t r và tss s s

với t[R] = tvới t[R] = trr và t[S] = ts }và t[S] = ts } R và S có thể có thuộc tính trùng R và S có thể có thuộc tính trùng

nhau. Quan hệ kết quả q không lặp 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.lại các thuộc tính được kết với nhau.

Page 33: Chương  3 Mô hình dữ lịêu quan hệ

3333

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

r s = r s = TT((FF(r x s)) với F là biểu thức (r x s)) với F là biểu thức R.A1 = S.A1, R.A2 = S.A2,…, R.Ak R.A1 = S.A1, R.A2 = S.A2,…, R.Ak =S.Ak và R =S.Ak và R S ={A1,A2,..,Ak} S ={A1,A2,..,Ak}

Nếu R Nếu R S =S = thì phép kết tự nhiên thì phép kết tự nhiên sẽ là tích Descartessẽ là tích Descartes

Ví dụ: liệt kê danh sách Id của các 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 sinh viên đã từng học 1 môn học cùng với Id của giáo sưcùng với Id của giáo sư

StuId,ProfIdStuId,ProfId(TRANSCRIPT TEACHING)(TRANSCRIPT TEACHING)

Page 34: Chương  3 Mô hình dữ lịêu quan hệ

3434

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

TRANSCRIPT TEACHINGTRANSCRIPT TEACHING TRANSCRIPT TRANSCRIPT CondCondTEACHINGTEACHINGVới Cond là:Với Cond là: TRANSCRIPT.CrsCode = TEACHING. TRANSCRIPT.CrsCode = TEACHING.

CrsCode AND TRANSCRIPT.Semester CrsCode AND TRANSCRIPT.Semester = TEACHING.Semester= TEACHING.Semester

Điều kiện của kết bằng thì giống với Điều kiện của kết bằng thì giống với điều kiện ngầm định của kết tự nhiênđiều kiện ngầm định của kết tự nhiên

Kết quả có giống nhau không?Kết quả có giống nhau không?

Page 35: Chương  3 Mô hình dữ lịêu quan hệ

3535

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

Thuộc tính kết quả của kết tự nhiên:Thuộc tính kết quả của kết tự nhiên:StudId, CrsCode, Semester, Grade, StudId, CrsCode, Semester, Grade,

ProfIdProfId Thuộc tính kết quả của kết bằng:Thuộc tính kết quả của kết bằng:StudId, TRANSCRIPT.CrsCode, StudId, TRANSCRIPT.CrsCode,

TEACHING. CrsCode, TEACHING. CrsCode, TRANSCRIPT.Semester, TRANSCRIPT.Semester, TEACHING.Semester, Grade, ProfIdTEACHING.Semester, Grade, ProfId

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

Page 36: Chương  3 Mô hình dữ lịêu quan hệ

3636

Ví dụ phép kếtVí dụ phép kết

Tìm tất cả sinh viên đã đăng ký ít Tìm tất cả sinh viên đã đăng ký ít nhất là 2 môn học khác nhaunhất là 2 môn học khác nhau

StudIdStudId((CrsCodeCrsCode2 (TRANSCRIPT (TRANSCRIPT

TRANSCRIPT[StudId, CrsCode2, TRANSCRIPT[StudId, CrsCode2, Semester2, Grade2] ))Semester2, Grade2] ))

Nếu muốn tìm sinh viên đăng ký học Nếu muốn tìm sinh viên đăng ký học 15 môn khác nhau thì sao???15 môn khác nhau thì sao???

Page 37: Chương  3 Mô hình dữ lịêu quan hệ

3737

Kết tự nhiên và phép giaoKết tự nhiên và phép giao

Phép giao là trường hợp đặc biệt của Phép giao là trường hợp đặc biệt của phép kết tự nhiên nếu R và S khả hợp phép kết tự nhiên nếu R và S khả hợp (union-compatible) (union-compatible)

R R S = R SS = R S

Page 38: Chương  3 Mô hình dữ lịêu quan hệ

3838

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

Cho phép các bộ của 1 quan hệ xuất 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 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 dù chúng kết được với các bộ của quan hệ khác hay khôngquan hệ khác hay không

Cho quan hệ r trên R, s trên S. R Cho quan hệ r trên R, s trên S. R S S . Gọi T = R . Gọi T = R S. S.

Page 39: Chương  3 Mô hình dữ lịêu quan hệ

3939

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

Phép kết ngoài của r và s cho kết quả 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:là 1 quan hệ q trên T bao gồm:• Các bộ của phép kết tự nhiên r và sCác bộ của phép kết tự nhiên r và s• Các bộ được tạo từ các bộ của r không Các bộ được tạo từ các bộ của r không

kết các bộ của skết các bộ của s• Các bộ được tạo từ các bộ của s không Các bộ được tạo từ các bộ của s không

kết các bộ của rkết các bộ của r

Các thuộc tính bị thiếu của các bộ được Các thuộc tính bị thiếu của các bộ được tạo thêm sẽ lấy giá trị nulltạo thêm sẽ lấy giá trị null

Page 40: Chương  3 Mô hình dữ lịêu quan hệ

4040

Phép kết ngoàiPhép kết ngoài

Các loại kết ngoàiCác loại kết ngoài• Kết ngoài tráiKết ngoài trái• Kết ngoài phảiKết ngoài phải• Kết ngoài Kết ngoài

Page 41: Chương  3 Mô hình dữ lịêu quan hệ

4141

Phép nửa kết Phép nửa kết ((-semijoin)-semijoin)

Phép nửa kết của r và s trên 2 thuộc Phép nửa kết của r và s trên 2 thuộc tính A tính A R và B R và B S cho kết quả là 1 S cho kết quả là 1 quan hệ bao gồm các bộ của r mà 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 chúng kết với s theo điều kiện A B B

R R A A B B s = { t | t s = { t | t r và r và u u s với t[A] s với t[A] t[B]} t[B]}

R R A A BB s = s = RR(r (r A A B B s) s) Phép nửa kết không có tính giao Phép nửa kết không có tính giao

hoánhoán

Page 42: Chương  3 Mô hình dữ lịêu quan hệ

4242

Phép chiaPhép chia(Division)(Division)

Phép kết tuy là phép suy diễn nhưng đặc Phép kết tuy là phép suy diễn nhưng đặc biệt thông dụng được dùng để trả lời querybiệt thông dụng được dùng để trả lời query

Phép chia cũng là phép toán đặc biệt do Phép chia cũng là phép toán đặc biệt do rất khó hiểu và sử dụng đúngrất khó hiểu và sử dụng đúng

Xét các query sau:Xét các query sau:• Tên môn học nào mà tất cả các giáo sư của Tên môn học nào mà tất cả các giáo sư của

khoa CS (computer Science) đều dạy?khoa CS (computer Science) đều dạy?• Tìm tất cả các sinh viên đã học tất cả các môn Tìm tất cả các sinh viên đã học tất cả các môn

học được dạy bởi các giáo sư của khoa CS?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 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ệ (match) với tất cả các bộ của 1 quan hệ kháckhác

Page 43: Chương  3 Mô hình dữ lịêu quan hệ

4343

Phép chiaPhép chia(Division)(Division)

Cho quan hệ r trên R(A1,…, An,B1,..., Cho quan hệ r trên R(A1,…, An,B1,..., Bm) và s trên S(B1,…,Bm) Bm) và s trên S(B1,…,Bm)

Phép chia quan hệ r cho s, ký hiệu r/s Phép chia quan hệ r cho s, ký hiệu r/s với s với s cho kết quả là 1 quan hệ q cho kết quả là 1 quan hệ q trên T (A1, …, An) bao gồm các bộ trên T (A1, …, An) bao gồm các bộ <a> sao cho đối với mỗi bộ <b> của <a> sao cho đối với mỗi bộ <b> của s , thì bộ <a,b> thuộc rs , thì bộ <a,b> thuộc r

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

Page 44: Chương  3 Mô hình dữ lịêu quan hệ

4444

AA BB

---a-------a----

---b-------b----

---a-------a----

---b-------b----

---c-------c----

---a-------a----

---b-------b----

---c-------c----

---b-------b----

---c-------c----

BB

___a_______a____

___b_______b____

___c_______c____

Quan hệ s

1

2

3

4

Quan hệ r

Not in r/s

In r/s

Page 45: Chương  3 Mô hình dữ lịêu quan hệ

4545

Ví dụ phép chiaVí dụ phép chiaPROFCSPROFCS IdId

101101

555555

CrsCodeCrsCode

CS305CS305

PROFCOURSESPROFCOURSES IdId CrsCodeCrsCode

783783

009009

121121

555555

101101

900900

101101

M123M123

M123M123

EE101EE101

CS305CS305

CS315CS315

MA23MA23

CS305CS305

Kết quả của PROFCOURSES/PROFCS

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

Page 46: Chương  3 Mô hình dữ lịêu quan hệ

4646

Ví dụ phép chiaVí dụ phép chia

((Id,NameId,Name(STUDENT))[StudId, Name](STUDENT))[StudId, Name]

((StudId,CrsCodeStudId,CrsCode(TRANSCRIPT)/(TRANSCRIPT)/

((((ProfId,CrsCodeProfId,CrsCode(TEACHING))[Id,CrsCode](TEACHING))[Id,CrsCode]//

IdId((DeptIdr=‘CS’(PROFESSOR))(PROFESSOR))) )

Sinh viên đã học tất cả các môn học được dạySinh viên đã học tất cả các môn học được dạy bởi các giáo sư của khoa CSbởi các giáo sư của khoa CS

Page 47: Chương  3 Mô hình dữ lịêu quan hệ

4747

Hệ quản trị cơ sở dữ liệuHệ quản trị cơ sở dữ liệu(Database Management System – DBMS)(Database Management System – DBMS)

Các quy tắc cơ bản: để đánh giá 1 hệ thống Các quy tắc cơ bản: để đánh giá 1 hệ thống có phải là 1 DBMS quan hệ hay không?có phải là 1 DBMS quan hệ hay không?• Quy tắc 0 –Quy tắc 0 – Qui tắc cơ bản (foundational rule) Qui tắc cơ bản (foundational rule)Một hệ thống được xem là 1 DBMS quan hệ nếu hệ Một hệ thống được xem là 1 DBMS quan hệ nếu hệ

thống này có thể quản lý toàn bộ DB thông qua thống này có thể quản lý toàn bộ DB thông qua các khả năng quan hệcác khả năng quan hệ

• Quy tắc 12 –Quy tắc 12 – Qui tắc bất biến (Non-subversion Qui tắc bất biến (Non-subversion rule)rule)

Nếu 1 hệ thống quan hệ có ngôn ngữ mức thấp, thì Nếu 1 hệ thống quan hệ có ngôn ngữ mức thấp, thì các ràng buộc toàn vẹn trong ngôn ngữ quan hệ các ràng buộc toàn vẹn trong ngôn ngữ quan hệ mức cao phải được kiểm tra ở mức thấpmức cao phải được kiểm tra ở mức thấp

Ngôn ngữ mức thấp cho phép xử lý một lần 1 mẫu tinNgôn ngữ mức thấp cho phép xử lý một lần 1 mẫu tin Ngôn ngữ mức cap cho phép xử lý một lần nhiều mẫu tin Ngôn ngữ mức cap cho phép xử lý một lần nhiều mẫu tin

Page 48: Chương  3 Mô hình dữ lịêu quan hệ

4848

Hệ quản trị cơ sở dữ liệuHệ quản trị cơ sở dữ liệu(Database Management System – DBMS)(Database Management System – DBMS)

Các quy tắc cấu trúc (structural rules)Các quy tắc cấu trúc (structural rules) Quy tắc 1 – Biểu diễn thông tin Quy tắc 1 – Biểu diễn thông tin

( information representation)( information representation)Tất cả thông tin trong CSDL quan hệ phải Tất cả thông tin trong CSDL quan hệ phải

được biểu diễn rõ ràng ở mức luận lý và được biểu diễn rõ ràng ở mức luận lý và theo một cách duy nhất thông qua các giá theo một cách duy nhất thông qua các giá trị trong các bảngtrị trong các bảng

Quy tắc 6 – Cập nhật viewQuy tắc 6 – Cập nhật viewTất cả các view có thể được cập nhật về mặt Tất cả các view có thể được cập nhật về mặt

lý thuyết thì chúng cũng có thể được cập lý thuyết thì chúng cũng có thể được cập nhật bởi hệ thốngnhật bởi hệ thống

Page 49: Chương  3 Mô hình dữ lịêu quan hệ

4949

Hệ quản trị cơ sở dữ liệuHệ quản trị cơ sở dữ liệu(Database Management System – DBMS)(Database Management System – DBMS)

Các quy tắc toàn vẹn (integrity rules)Các quy tắc toàn vẹn (integrity rules)• Quy tắc 3 – Xử lý ngữ nghĩa của các giá trị nullQuy tắc 3 – Xử lý ngữ nghĩa của các giá trị null

Các giá trị null được dùng để biểu diễn thông tin Các giá trị null được dùng để biểu diễn thông tin bị thiếu và thông tin không có theo cùng một bị thiếu và thông tin không có theo cùng một cách thống nhất, độc lập với kiểu dữ liệucách thống nhất, độc lập với kiểu dữ liệu

• Quy tắc 10 – Độc lập toàn vẹnQuy tắc 10 – Độc lập toàn vẹn

Các ràng buộc toàn vẹn trong 1 CSDL riêng biệt Các ràng buộc toàn vẹn trong 1 CSDL riêng biệt phải được định nghĩa bởi 1 ngôn ngữ con dữ phải được định nghĩa bởi 1 ngôn ngữ con dữ liệu quan hệ và được lưu trữ trong danh mục liệu quan hệ và được lưu trữ trong danh mục mà không phải trong các chương trình ứng mà không phải trong các chương trình ứng dụngdụng

Page 50: Chương  3 Mô hình dữ lịêu quan hệ

5050

Hệ quản trị cơ sở dữ liệuHệ quản trị cơ sở dữ liệu(Database Management System – DBMS)(Database Management System – DBMS)

Các quy tắc thao tác dữ liệu:Các quy tắc thao tác dữ liệu:• Quy tắc 2 – Truy xuất được bảo đảmQuy tắc 2 – Truy xuất được bảo đảm• Quy tắc 4 – Danh mục trực tuyến động Quy tắc 4 – Danh mục trực tuyến động

dựa trên mô hình quan hệdựa trên mô hình quan hệ• Quy tắc 5 – Ngôn ngữ con dữ liệu thông Quy tắc 5 – Ngôn ngữ con dữ liệu thông

minhminh• Quy tắc 7 – Thêm vào, cập nhật, xóa bỏ Quy tắc 7 – Thêm vào, cập nhật, xóa bỏ

ở mức caoở mức cao

Page 51: Chương  3 Mô hình dữ lịêu quan hệ

5151

Hệ quản trị cơ sở dữ liệuHệ quản trị cơ sở dữ liệu(Database Management System – DBMS)(Database Management System – DBMS)

Các quy tắc độc lập dữ liệu Các quy tắc độc lập dữ liệu • Quy tắc 8 – Độc lập dữ liệu vật lýQuy tắc 8 – Độc lập dữ liệu vật lý• Quy tắc 9 – Độc lập dữ liệu luận lýQuy tắc 9 – Độc lập dữ liệu luận lý• Quy tắc 11 – Độc lập phân tánQuy tắc 11 – Độc lập phân tán