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

Slides:



Advertisements
Similar presentations
ĐỀ TÀI: GIỚI THIỆU CÁC HÀM LƯỢNG GIÁC THEO SÁCH PRECALCULUS JAMES STEWART – LOTHAR REDLIN – SALEEM WATSON.
Advertisements

Môn: NGỮ VĂN Năm học: PHÒNG GD&ĐT NAM TR À MY TRƯỜNG PTDTBT THCS TRÀ DON Trà Don, ngày 26 tháng 10 năm 2015.
HÀNH CHÍNH NHÀ NƯỚC TỪ CÁCH MẠNG THÁNG TÁM ĐẾN NAY
Quản trị Rủi ro thiên tai và Biến đổi khí hậu
PHÁT TRIỂN VÀ SỬ DỤNG HỢP LÝ NGUỒN TÀI NGUYÊN NƯỚC
BỘ Y TẾ VỤ TRANG THIẾT BỊ VÀ CÔNG TRÌNH Y TẾ
Báo cáo Cấu trúc đề thi PISA và Các dạng câu hỏi thi PISA
Sử dụng năng lượng hiệu quả
XÂY DỰNG VÀ PHÁT TRIỂN CHƯƠNG TRÌNH ĐÀO TẠO THEO ĐỀ XƯỚNG CDIO
Rainforest Alliance đào tạo cho các nông trại trà ở Việt Nam
Kiểm thử và đảm bảo chất lượng phần mềm
PHẦN 1. HỆ ĐIỀU HÀNH WINDOWS. 2 Nội dung trình bày  1.1. Thao tác cơ bản sử dụng máy tính  1.2. Màn hình nền desktop  1.3. Quản lý tệp tin và thư mục.
Qua hàng ngàn năm dựng nước và giữ nước, dân tộc ta đã để lại nhiều bài học vô giá. Nổi bật trong đó là tinh thần đoàn kết, ý thức cộng đồng. Hai truyền.
L/O/G/O NGUYÊN LÝ KẾ TOÁN Nguyễn Hữu Quy (MBA,CPA,APC)
1 ĐỒNG NAI ĐÁNH GIÁ TÌNH HÌNH VÀ ĐỀ XUẤT ÁP DỤNG HIỆU QUẢ MÔ HÌNH KINH TẾ DƯỢC TẠI BỆNH VIỆN ĐA KHOA ĐỒNG NAI NĂM 2017 Học viên: Nhóm 5 _ PP111.
TRƯỜNG ĐẠI HỌC THĂNG LONG
CHÍNH SÁCH VÀ TRIỂN KHAI CHÍNH SÁCH BẢO MẬT
Thực hiện các cuộc họp quan trọng
Sứ Mệnh GoCoast 2020 được thành lập bởi thống đốc Phil Bryant thông qua điều hành để phục vụ như là hội đồng cố vấn chính thức cho việc phân phối quỹ nhận.
QUẢN TRỊ THÀNH TÍCH Performance Management
TÌM HIỂU VỀ WEB SERVICES VÀ XÂY DỰNG MỘT WEB SERVICE
Giới thiệu chương trình trách nhiệm xã hội của doanh nghiệp
KHAI PHÁ DỮ LIỆU (DATA MINING)
TRƯỜNG ĐẠI HỌC LÂM NGHIỆP
Software testing Kiểm thử phần mềm
BÁO CÁO DỰ ÁN CIBOLA Đo lường mức độ hiệu quả của Media
Ngôn ngữ lập trình C/C++
Chương 6 Thiết kế hệ thống.
Hạ Long – Cát Bà Sáng kiến Liên minh Bui Thi Thu Hien
Đức Hồng Y Nguyễn Văn Thuận cầu bầu
Module 6 – Managing for Sustainability
Khởi động SXSH với công cụ quản lý nội vi 5S
CHẾ ĐỘ PHÁP LÝ VỀ CÔNG TY CỔ PHẦN
BÀI GIẢNG CƠ SỞ HỆ THỐNG THÔNG TIN CHƯƠNG 1. GIỚI THIỆU CHUNG VỀ HTTT
Tổng Quan Về Lập Trình Hướng Đối Tượng
Chương 3 Mô hình dữ lịêu quan hệ
XÂY DỰNG LỢI THẾ CẠNH TRANH THÔNG QUA CHIẾN LƯỢC CẤP KINH DOANH
MKTNH Version 3 Giảng viên: ThS. Thái Thị Kim Oanh
BÀI GIẢNG MỘT SỐ CHỦ ĐỀ HIỆN ĐẠI VỀ KHAI PHÁ DỮ LIỆU: KHAI PHÁ QUÁ TRÌNH CHƯƠNG 2. MÔ HÌNH QUY TRÌNH VÀ PHÂN TÍCH QUY TRÌNH THEO MÔ HÌNH PGS. TS. HÀ.
Bài 2: Từ tiêu chuẩn sức khoẻ tới nơi làm việc lành mạnh
Chương 6 Thiết kế hướng đối tượng
Giáo viên: Đặng Việt Cường
Ngôn ngữ học khối liệu - khoa học liên ngành về ngôn ngữ ứng dụng
PHÁT TRIỂN CHƯƠNG TRÌNH ĐÀO TẠO DỰA TRÊN CHUẨN ĐẦU RA
XÂY DỰNG KẾ HOẠCH VÀ CHIẾN LƯỢC MARKETING
Phạm Nguyên Khang BM. Khoa học máy tính
Chiến lược CSR –Là gì và làm thế nào để chúng ta sàng lọc lựa chọn?
UBND TỈNH ĐIỆN BIÊN SỞ GIÁO DỤC VÀ ĐÀO TẠO
LẬP TRÌNH ỨNG DỤNG WINDOW FORM
Quản lý con người Quản lý người làm việc như những cá nhân và theo nhóm.
KỸ NĂNG HỌC TẬP KHOA QUẢN TRỊ KINH DOANH ThS. NGUYỄN HOÀNG SINH
BÀI GIẢNG QUẢN LÝ DỰ ÁN HỆ THỐNG THÔNG TIN CHƯƠNG 1
Giới Thiệu Tiêu Đề I.
Operators and Expression
Trách nhiệm giải trình của doanh nghiệp ở diện rộng
QUYỀN LỰC VÀ MÂU THUẪN TRONG NHÓM
Chương 2 Căn bản về Cung và Cầu 1.
QUẢN TRỊ TÍNH ĐA DẠNG THÔNG QUA NHIỀU HOẠT ĐỘNG KINH DOANH
GIỚI THIỆU CHUNG VỀ THIẾT KẾ DỮ LIỆU
HƯỚNG DẪN MÃ HÓA BỆNH TẬT, TỬ VONG THEO ICD - 10
Chương 4 – lớp Liên Kết Dữ Liệu
OBJECT-ORIENTED ANALYSIS AND DESIGN WITH UML 2.0
NHÂN QUYỀN LÀ GÌ? Dẫn Nhập Nhân quyền và thu thập tài liệu: Bài Một.
Giảng viên: Lương Tuấn Anh
Giảng viên: TS. Phan Bách Thắng
Trường CĐ CNTT HN Việt Hàn
Chương 8 NHỮNG VẤN ĐỀ QUẢN TRỊ CƠ BẢN TRONG THỰC THI CHIẾN LƯỢC
KHAI THÁC THỦY SẢN ĐẠI CƯƠNG
Chương 4: Tập gõ 10 ngón Chương 2: Học cùng máy tính
Presentation transcript:

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

Nội dung Đại số quan hệ Các quy tắc của 1 DBMS 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ệ 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

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

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

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

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

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)

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

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

F(r) = {t|t r và F(t) = true} 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ộ

Ví dụ

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

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

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

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 }

Ví dụ PRODUCT x STORE

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 STUDENT.Id Name PROFESSOR.Id DeptId

Phép tích Descartes Hướng giải quyết: Ví dụ: Đặ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]

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)

Union

Intersect(giao)

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

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

Ví dụ

Ví dụ

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)

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

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)

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 }

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

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.

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)

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?

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

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

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

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.

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

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

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

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

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

A B ---a---- ---b---- ---c---- B ___a____ ___b____ ___c____ In r/s Quan hệ r B ___a____ ___b____ ___c____ 1 2 3 4 In r/s Quan hệ s Not in r/s

Ví dụ phép chia PROFCS Id 101 555 CrsCode CS305 Môn học mà tất cả PROFCOURSES Id CrsCode 783 009 121 555 101 900 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

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

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

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

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

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

Hệ quản trị cơ sở dữ liệu (Database Management System – DBMS) 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 9 – Độc lập dữ liệu luận lý Quy tắc 11 – Độc lập phân tán