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