Phần tiếp theo bài giảng Hệ cơ sở dữ liệu - Chương 2cung cấp cho người học các kiến thức về Mô hình thực thể - Kết hợp mở rộng bao gồm: Superclass và subclass, mối quan hệ giữa superclass và subclass, thừa kế thuộc tính và mối quan hệ,... Mời các bạn cùng tham khảo nội dung chi tiết.
Trang 1Chương 2 - phần 2
Mô hình thực thể-kết hợp mở rộng
Enhanced Entity Relationship ( EER ) model
1
Giáo trình & Tài liệu tham khảo:
1 Ramez Elmasri, Shamkant B Navathe, 2011 Fundamentals of Database
systems, 6th edition, Addison-Wesley
2 Giáo trình Cơ sở dữ liệu , Trần Đắc Phiến, ĐH Công nghiệp TPHCM
3 Bộ slide bài giảng của Nguyễn Minh Thư, Khoa CNTT, ĐH KHTN TPHCM
4 Bộ slide bài giảng của Trần Thị Kim Chi, Khoa CNTT, ĐH Công nghiệp TPHCM
Gv Nguyễn Như Hoa
Trang 2Giới thiệu
Model) mở rộng ER model, bổ sung các khái niệm nhằm tăng khả năng mô hình hóa ngữ
nghĩa phức tạp của thế giới thực
• Mô hình EER bổ sung một số khái niệm như
– Specialization và Generalization
– Aggregation và Composition
2
Trang 3Nội dung
• Specialization /Generalization
– Superclass và subclass
– Mối quan hệ giữa superclass và subclass
– Thừa kế thuộc tính và mối quan hệ
– 2 cách xây dựng : tiếp cận Specialization và tiếp
cận Generalization
– Các ràng buộc trên Specialization/Generalization
3
Trang 5Ví dụ 0
• Phân lớp tập thực thể Staff thành tập thực thể Staff(*) , Manager, SalesPersonnel, và Secretary
5
SalesPersonel
Secretary
Trang 6Ví dụ 0
6
Cấu trúc lại tập thực thể Staff
Trang 7Superclass và Subclass
• Một loại thực thể (Superclass) bao gồm nhiều
nhóm thực thể phân biệt (subclass)
• Ví dụ : tập thực thể Staff có thể được phân lớp thành tập thực thể Manager, SalesPersonnel, và Secretary
– Staff là superclass
(hay supertype, tập thực thể cha)
– Manager, SalesPersonnel, và Secretary là subclasses
(hay subtypes, các tập thực thể con)
7
Trang 10Mối quan hệ giữa superclass và subclass
• Là mối quan hệ 1:1
– Một thực thể của subclass phải là 1 thành viên của
superclass
– Ngược lại, một thực thể của superclass có thể không
tương ứng với một thành viên của 1 subclass
10
class/subclass relationship
Trang 11Mối quan hệ giữa superclass và subclass
11
Ví dụ về dữ liệu
Trang 12Thừa kế thuộc tính và mối quan hệ
• Một thực thể trong subclass thừa kế mọi
thuộc tính và các mối quan hệ của superclass
12
Pearson Education
SuperClass
Trang 13Specialization /Generalization
• Specialization (chuyên biệt hóa)
– Quá trình xác định các subclass từ một tập thực thể
(superclass)
– Xác định các thuộc tính khác biệt giữa các thực thể của
superclass -> định nghĩa các subclass
• Generalization (tổng quát hóa)
– Quá trình định nghĩa một tập thực thể chung/tổng quát (superclass) từ một số tập thực thể ban đầu (subclasses)
• Xác định các thuộc tính chung giữa các subclass -> định nghĩa superclass
– Tập thực thể chung phải chứa các thực thể đến từ tất cả các subclass
13
Trang 14Mục tiêu
14
Trang 16Điểm xuất phát – dạng 2
Sử dụng Generalization (tổng quát hóa)
16
Generalization
Trang 17Ví dụ 1
• Tập thực thể LIBRARY ITEM với các thuộc tính, trước khi chuyên biệt hóa
17
Trang 18Ví dụ 1
• Mô hình tương đương sau khi chuyên biệt
hóa: superclass LIBRARY ITEM và subclasses BOOK, JOURNAL, VIDEOCD
18
Trang 19Ví dụ 2
• Tập thực thể FACULTY, STAFF, STUDENT trước khi tổng quát hóa
19
Trang 20Ví dụ 2
• Mô hình tương đương với superclass PERSON, và các subclass FACULTY, STAFF, STUDENT sau khi tổng quát hóa
20
Trang 21Các ràng buộc trên Specialization/Generalization
• Ràng buộc về tính tham gia (participation
constraint)
• Ràng buộc về tính phân ly (disjoint constraint)
21
Trang 22Các ràng buộc trên Specialization/Generalization
• Ràng buộc về tính tham gia trả lời cho câu hỏi:
“Mỗi thành viên của superclass có bắt buộc
tham gia là thành viên của một subclass hay không?”
• Có 2 loại
– Bắt buộc : mô tả bằng từ “mandatory”
• Vd: một nhân viên phải có một hợp đồng làm việc
– Tùy chọn : mô tả bằng từ “optional”
• Vd: một nhân viên ko nhất thiết phải có một vai trò thứ hai
22
Trang 23Các ràng buộc trên Specialization/Generalization
• Ràng buộc về tính tham gia
Ví dụ
23
Trang 24Các ràng buộc trên Specialization/Generalization
thành viên của superclass chỉ tham gia như là
thành viên của một subclass , hay có thể tham gia như là thành viên của nhiều subclass ”
• Có 2 loại
– Disjoint : mỗi thực thể của superclass chỉ tham gia tối
đa vào một subclass
• mô tả bằng từ “OR” , hoặc ký hiệu
– Non-disjoint hay overlap : mỗi thực thể của superclass
có thể tham gia vào nhiều subclass
• mô tả bằng từ “AND” , hoặc ký hiệu
24
d
o
Trang 25Các ràng buộc trên Specialization/Generalization
disjoin
Trang 26Các ràng buộc trên Specialization/Generalization
• Ràng buộc về tính phân ly
26
http://wiki.sinfronteras.ws/view/Advanced_Databases
Non_disjoin
Trang 27Cấu trúc phân cấp và mắt lưới
(Hierarchies and Lattices)
• Quá trình chuyên biệt hóa / tổng quát hóa có thể tạo ra một mô hình ER có cấu trúc phân cấp hoặc mắt lưới
– Một subclass có thể là superclass của các subclass
khác
– Nếu mỗi subclass chỉ có một superclass (chỉ có một
tập thực thể cha) => hình thành cấu trúc phân cấp
(tree structure or hierarchy)
– Nếu một subclass có nhiều hơn một class đóng vai trò
là superclass => hình thành cấu trúc mắt lưới (lattice )
27
Trang 28Cấu trúc phân cấp và mắt lưới
(Hierarchies and Lattices)
Trang 29Cấu trúc phân cấp và mắt lưới
(Hierarchies and Lattices)
• Cấu trúc mắt lưới
29
ENGINEERING_MANAGER là subclass của
ENGINEER, MANAGER, và SALARIED_EMPLOYEE Một thực thể thuộc ENGINEERING_MANAGER phải tồn tại trong cả 3 tập thực thể supperclass này
Trang 30Cấu trúc phân cấp và mắt lưới
(Hierarchies and Lattices)
• Phân biệt
cấu trúc mắt lưới
với UNION type
30
OWNER là một subclass của hợp (union) 3
tập thực thể PERSON, BANK, COMPANY
Mỗi thành viên của OWNER chỉ tồn tại là
một trong 3 tập thực thể này
Trang 31Bài tập
• Đọc “Fundamentals Of Database Systems”,
Chương 8 : EER model
=> Tìm hiểu ví dụ mục 8.5 (trang 260)
• Đọc hiểu mô tả UNIVERSITY database
• Đọc hiểu mô hình EER
31
Trang 32Câu hỏi 1
• Sự cần thiết của Specialization (chuyên biệt hóa) / Generalization (tổng quát hóa) ?
32
Trang 33Câu hỏi 1
33
Trang 34Câu hỏi 2
• Chỉ rõ các Relationship (giữa các tập thực thể) và các
Class/subclass relationship trong mô hình sau ?
• Mỗi subclass trong mô hình có mối quan hệ (Relationship) nào ?
• Mỗi Class/subclass relationship được thiết lập dựa trên thuộc
tính nào ?
34
Trang 35Câu hỏi 3
• Trong hình mô tả quá trình Specialization hay Generalization? Mô tả tóm tắt quá trình đó ?
35
Trang 36Câu hỏi 4
• Với dữ liệu như mô tả ở hình bên
Hãy cho biết mô hình
nào là phù hợp ?
36
Trang 37Câu hỏi 4
37
Model 1
Model 2
Trang 38Tham khảo
Bộ ký hiệu
• Biểu diễn class/subclass relationship
• Khi có nhiều subclass dựa trên cùng một cách
phân loại (vd : job type) , dùng
• Biểu diễn ràng buộc disjoin của 1 class/subclass
• Biểu diễn ràng buộc tính tham gia : bắt buộc
• Biểu diễn ràng buộc tính tham gia : ko bắt buộc
38
d
o
U
Trang 39Bộ ký hiệu khác
39
https://www.uml-diagrams.org/generalization.html
Biểu diễn class/subclass relationship:
Biểu diễn ràng buộc , dùng chữ :
{mandatory, or}
{mandatory, and}
{optional, or}
{optional, and}