View
55
Download
0
Category
Preview:
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
11
Chương 3Chương 3Mô hình dữ lịêu quan hệ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
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
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)
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ệ??
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.
77
SQL query
Relational algebra ExpressionRelational algebra Expression
Query Execution PlanQuery Execution Plan
Executable CodeExecutable Code
Parser
Query Optimizer
Code generator
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)
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
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
(())
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ộ
1212
Ví dụVí dụ
1313
SelectionSelection
PRICE<$2.0PRICE<$2.0(Product(Product))
PCODE =311452PCODE =311452(Product)(Product)
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]}
1515
ProjectionProjection
P_DESCRIPT,PRICE (PROJECT)
PRICE(PROJECT)
P_CODE,PRICE (PROJECT)
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 }
1717
Ví dụVí dụ
PRODUCT x STORE
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
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]
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)
2121
UnionUnion
2222
Intersect(giao)Intersect(giao)
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] }
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
2525
Ví dụVí dụ
2626
Ví dụVí dụ
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))
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))
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)
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 }
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
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.
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)
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?
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
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???
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
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.
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
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
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
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
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
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
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
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
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
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
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
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
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
Recommended