1 / 51

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

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ệ.

olesia
Download Presentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Chương 3Môhìnhdữlịêuquanhệ

  2. 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

  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

  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)

  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ệ. Như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ử lý truy vấn), còn đại số quan hệ theo hướng thủ tục. Mối liên hệ giữa SQL và đại số quan hệ??

  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.

  7. SQL query Parser Relational algebra Expression Query Optimizer Query Execution Plan Code generator Executable Code

  8. 5 phép toán cơ bản • Phép chọn (selection) • Phép chiếu (projection) • Phép tích Descartes (Cartesian product) • Phép hợp (union) • Phép hiệu (difference)

  9. 3 phép toán suy dẫn(Derived operator) • Có thể được biểu diễn như biểu thức của các phép toán cơ bản • 3 phép toán suy dẫn: • Intersection • Division • Join

  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 ()

  11. Phép chọn (selection) • 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ó bậc là n và có tối đa là k bộ

  12. Ví dụ

  13. Selection PRICE<$2.0(Product) PCODE =311452(Product)

  14. Phép chiếu(Projection) • 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]}

  15. Projection PRICE(PROJECT) P_DESCRIPT,PRICE (PROJECT) P_CODE,PRICE (PROJECT)

  16. 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 }

  17. Ví dụ PRODUCT x STORE

  18. 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

  19. 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 • Dùng toán tử Renaming expression[A1,…An] Expresssion: biểu thức đại số A1.. An: tên thay thế Ví dụ: Id,Name(STUDENT)x Id,DeptId(PROFESSOR) [StudId,StudName,ProfId, ProfDept]

  20. Phép hợp • Phép hợp của 2 quan hệ r và s r  s = {t | t  r hay t  s} • Phép hiệu của 2 quan hệ r và s r - s = {t | t  r và t  s} • Phép giao của 2 quan hệ r và s r  s = {t | t  r và t  s} Điều kiện: các quan hệ r và s phải có tính khả hợp ( union-compatible)

  21. Union

  22. Intersect(giao)

  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  • 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] }

  24. Phép kết -join • Phép kết của 2 quan hệ r và s r A  B s =  A  B (r x s) • Phép kết có tính giao hoán

  25. Ví dụ

  26. Ví dụ

  27. Ví dụ • Cho các quan hệ sau: • STUDENT(Id,Name,BirthDate) • PROFESSOR(Id,Name,Qualification) • TEACHING(ProfID,CrsCode,Semester) • COURSE(CrsCode,Name) • 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)

  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’) Name(PROFESSOR Id=ProfId Semester=‘F2007’ (TEACHING))

  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)

  30. Phép kết bằng(Equijoin) • Cho quan hệ r trên R, s trên S với Ai  R và Bi  S và dom(Ai) = dom(Bi) , i = 1… k. Gọi T = R  S • 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 }

  31. Phép kết bằng(Equijoin) • Nếu r có bậc m và k1 bộ, s có bậc n và k2 bộ thì r A1=B1 ^A2 = B2 ^.^Ak=Bk s 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 nhau, thì nên thay thành R.A và S.A để cho R S =  • 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 Descartes

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

  33. Phép kết tự nhiên(Natural join) • r s = T(F(r x s)) với F là biểu thức R.A1 = S.A1, R.A2 = S.A2,…, R.Ak =S.Ak và R S ={A1,A2,..,Ak} • Nếu R S = thì phép kết tự nhiên sẽ là tích Descartes • 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ư StuId,ProfId(TRANSCRIPT TEACHING)

  34. So sánh phép kết tự nhiên và kết bằng • TRANSCRIPT TEACHING • TRANSCRIPT CondTEACHING Với Cond là: TRANSCRIPT.CrsCode = TEACHING. CrsCode AND TRANSCRIPT.Semester = TEACHING.Semester • Đ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 Kết quả có giống nhau không?

  35. 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

  36. Ví dụ phép kết • Tìm tất cả sinh viên đã đăng ký ít nhất là 2 môn học khác nhau StudId(CrsCodeCrsCode2(TRANSCRIPT TRANSCRIPT[StudId, CrsCode2, Semester2, Grade2] )) Nếu muốn tìm sinh viên đăng ký học 15 môn khác nhau thì sao???

  37. Kết tự nhiên và phép giao • 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 (union-compatible) R S = R S

  38. 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.

  39. 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 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 kết các bộ của s • Các bộ được tạo từ các bộ của s không kết các bộ của r 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. Phép kết ngoài • Các loại kết ngoài • Kết ngoài trái • Kết ngoài phải • Kết ngoài 

  41. 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 R A  B s = { t | t  r và  u  s với t[A]  t[B]} • R A B s = R(r A  B s) • Phép nửa kết không có tính giao hoán

  42. Phép chia(Division) • 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 query • Phép chia cũng là phép toán đặc biệt do rất khó hiểu và sử dụng đúng • 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 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 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

  43. 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

  44. 1 2 3 4 Quan hệ r In r/s Quan hệ s Not in r/s

  45. Ví dụ phép chia Kết quả của PROFCOURSES/PROFCS Môn học mà tất cả giáo sư CS đều dạy

  46. Ví dụ phép chia • (Id,Name(STUDENT))[StudId, Name] (StudId,CrsCode(TRANSCRIPT)/ ((ProfId,CrsCode(TEACHING))[Id,CrsCode]/ Id(DeptIdr=‘CS’(PROFESSOR))) 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

  47. Hệ quản trị cơ sở dữ liệu(Database Management System – DBMS) • 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? • Quy tắc 0 – Qui tắc cơ bản (foundational rule) 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 các khả năng quan hệ • Quy tắc 12 – Qui tắc bất biến (Non-subversion rule) 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ệ mứ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 tin • Ngôn ngữ mức cap cho phép xử lý một lần nhiều mẫu tin

  48. Hệ quản trị cơ sở dữ liệu(Database Management System – DBMS) • Các quy tắc cấu trúc (structural rules) • Quy tắc 1 – Biểu diễn thông tin ( information representation) 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à theo một cách duy nhất thông qua các giá trị trong các bảng • Quy tắc 6 – Cập nhật view 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 nhật bởi hệ thống

  49. Hệ quản trị cơ sở dữ liệu(Database Management System – DBMS) • 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ị null 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 cá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ẹn 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ữ 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 dụng

  50. Hệ quản trị cơ sở dữ liệu(Database Management System – DBMS) • Các quy tắc thao tác dữ liệu: • Quy tắc 2 – Truy xuất được bảo đảm • Quy tắc 4 – Danh mục trực tuyến động dựa trên mô hình quan hệ • Quy tắc 5 – Ngôn ngữ con dữ liệu thông minh • Quy tắc 7 – Thêm vào, cập nhật, xóa bỏ ở mức cao

More Related