1
Mô hình hóa dữ liệu (Data Modeling)
LƯỢC ĐỒ ER MỞ RỘNG
EXTENDED ENTITY RELATIONSHIP DIAGRAM (EER)
Vận dụng được kiểu thực thể mở rộng supertype
và subtype đáp ứng bài toán nghiệp vụ phức
2
Cấu trúc phân cấp kiểu thực thể
Supertype/subtype
Khái quát hóa/ chuyên biệt hóa kiểu thực thể Các kiểu ràng buộc giữa supertype và subtype
3
4
Case study
Hệ thống quản lý sinh viên của trường đại học Cần phát triển CSDL SinhVien
Cần phân biệt 2 loại sinh viên :
Đã tốt nghiệp (GRADUATE STUDENT) Chưa tốt nghiệp (UNDERGRADUATE STUDENT)
Nhân viên với các kiểu trả lương khác nhau
Bệnh nhân nội trú và ngoại trú
Xe cộ với nhiều loại xe khác nhau
….
Các thực thể tuy cùng kiểu nhưng có thể không
cùng thuộc tính
5
6
Cấu trúc phân cấp (hierarchical structure)
Sắp xếp các kiểu thực thể theo cấu trúc phân
cấp (hierarchical structure) Kiểu con(subtype)
Chứa các thuộc tính riêng của mỗi nhóm thực thê
Siêu kiểu (supertype)
Kiểu thực thể chung chứa các thuộc tính chung của tất cả kiểu con
7
Khái quát hóa/Chuyên biệt hóa Generalization/Specialization
Qui trình Top-down
Qui trình Bottom-up Xác định một kiểu thực
Xác định một hay nhiều kiểu con từ một siêu kiểu và tạo quan hệ giữa siêu kiểu và kiểu con.
thể chung từ một nhóm các kiểu thực thể riêng biệt
Khái quát hóa Chuyên biệt hóa
8
Ví dụ về tổng quát hóa
Ví dụ chuyên biệt hóa
9
Enhanced ER model
10
11
Lược đồ quan hệ thực thể mở rộng
Kiểu con kế thừa (inherit) các thuộc tính từ siêu
kiểu
Mỗi thực thể subtype là 1 thực thể supertype
Quan hệ giữa subtype và supertype là ISA
A salaried employee IS AN employee
12
Lược đồ quan hệ thực thể mở rộng
A salaried employee IS AN employee A hourly employee IS AN employee
13
Lược đồ quan hệ thực thể mở rộng
EMPLOYEE
EmpID EmpHireDate
Supertype
Biểu tượng khái quát hóa
ISA
ISA
SalaryEmp
HourlyEmp
EmpSalary
EmpRate
Subtype
14
Ràng buộc (constraint) của quan hệ supertype/subtype
SUPERTYPE
Ràng buộc giữa
Thuộc tính chung
Supertype và subtype luôn là ràng buộc 1:1
1
1
1
SUBTYPE 2 Thuộc tính riêng
SUBTYPE 1 Thuộc tính riêng
15
Xác định các ràng buộc trong mối quan hệ supertype/subtype
Các quy tắc nghiệp vụ được áp dụng vào các quan hệ supertype/subtype dưới dạng các ràng buộc (constraint)
Có 2 loại ràng buộc quan trọng:
Ràng buộc đầy đủ (Completeness constraint) Ràng buộc phân ly (Disjointness constraint)
16
Ràng buộc về tính đầy đủ
Ràng buộc về tính đầy đủ dùng để trả lời cho câu hỏi: “Một thể hiện của siêu kiểu có phải là thành viên của ít nhất một kiểu con hay không?”
Có hai nguyên tắc (rule):
Chuyên biệt hóa toàn phần (total specialization) Chuyên biệt hóa riêng phần (partial
specialization)
17
Chuyên biệt hóa toàn phần
Chuyên biệt hóa toàn phần: mỗi thực thể của siêu kiểu tất yếu phải là một thực thể của một kiểu con
Chuyên biệt hóa toàn phần được ký hiệu bằng đường đôi nối từ thực thể supertype đến vòng tròn.
18
Ví dụ Chuyên biệt hoá toàn phần
Xét quy tắc nghiệp vụ sau: A patient must either an outpatient or a resident patient (There are no other types of patient in this hospital).
19
Chuyên biệt hoá toàn phần
20
Chuyên biệt hóa riêng phần
Chuyên biệt hóa riêng phần: mỗi thể hiện của siêu kiểu không nhất thiết phải là 1 thể hiện của một kiểu con
Được ký hiệu bằng đường đơn nối từ supertype
đến vòng tròn
21
Ví dụ chuyên biệt hóa riêng phần
Siêu kiểu VEHICLE có 2 kiểu con CAR và TRUCK. Kiểu thực thể MOTORCYCLE cũng là 1 loại xe cộ nhưng không được đưa vào mô hình
Ví dụ Chuyên biệt hóa riêng phần
22
23
Ràng buộc về tính phân ly Disjointness constraint
Ràng buộc về tính phân ly để trả lời cho câu hỏi
“một thể hiện (instance) của siêu kiểu có đồng thời là thành viên của cả 2 kiểu con hay không?”
Có hai quy tắc ràng buộc phân ly:
Quy tắc phân ly (disjoint rule)
Quy tắc trùng lặp (overlap rule)
24
Quy tắc phân ly
Phân ly (disjoint): một thể hiện của siêu kiểu là thành viên
của chỉ một kiểu con
Quy tắc phân ly được ký hiệu bằng ký tự “d” trong vòng
tròn nối giữa supertype và các subtype
Ví dụ: PATIENT chỉ có thể hoặc là OUTPATIENT hoặc là
RESIDENT PATIENT
25
Ví dụ về Quy tắc phân ly
26
Quy tắc trùng lặp
Trùng lặp (overlap): một thể hiện của siêu kiểu có thể đồng thời là thành viên của nhiều hơn một kiểu con.
Được ký hiệu bằng ký hiệu “o” trong vòng tròn
Ví dụ: một thể hiện của siêu kiểu PART có thể hoặc là thể hiện của kiểu con MANUFACTURED PART hoặc của kiểu con PURCHASED PART
27
Ví dụ về quy tắc trùng lặp
28
Thuộc tính phân biệt kiểu con Subtype discriminator Là thuộc tính của siêu kiểu mà trị của nó có thể xác định
kiểu con
Ví dụ 1: thuộc tính xác định kiểu con phân ly của siêu kiểu EMPLOYEE là Employee_Type có 3 giá trị là H(Hourly), S(Salary) và C(Consultant) Ví dụ 2: thuộc tính xác định kiểu con trùng lặp của siêu kiểu PART là Part_Type hai thành phần: Manufactured (kiểu Boolean) Purchased (kiểu Boolean)
29
Ví dụ thuộc tính phân biệt kiểu phân ly
30
Ví dụ thuộc tính phân biệt kiểu con trùng lặp
Xác định được supertype và subtype phù hợp với
nhu cầu dữ liệu của người dùng
31
32
Textbook
Chapter 2 and 3 Modern DB management– page
90