You are on page 1of 37

CƠ SỞ DỮ LIỆU

BÀI 5 – MÔ HÌNH DỮ LIỆU NÂNG CAO


NỘI DUNG 2

1. Mô hình thực thể quan hệ mở rộng


2. Cụm thực thể
3. Toàn vẹn thực thể: Lựa chọn khóa chính
4. Một số tình huống thiết kế
NỘI DUNG 3

1. Mô hình thực thể quan hệ mở rộng


2. Cụm thực thể
3. Toàn vẹn thực thể: Lựa chọn khóa chính
4. Một số tình huống thiết kế
1. MÔ HÌNH THỰC THỂ QUAN HỆ MỞ RỘNG 4

 EERM – Mô hình thực thể quan hệ mở rộng


 Còn được gọi là mô hình mối quan hệ thực thể nâng cao;
 Thêm nhiều cấu trúc ngữ nghĩa hơn vào mô hình mối quan hệ thực thể (ER):
 Thực thể cha – Supertypes
 Thực thể con - Subtypes
 Cum thực thể Thực, chẳng hạn như siêu kiểu thực thể, kiểu phụ thực thể và phân cụm thực
thể,
 Lược đồ EER - EERD.
1. MÔ HÌNH THỰC THỂ QUAN HỆ MỞ RỘNG 5

 Phân cấp – Specialization và Tổng quát - Generalization


 Là 2 tiến trình ngược nhau
 Specialization: thiết kế Top – Down nhằm chia 1 lớp cha (Superclass) thành nhiều thực thể
lớp con (Subclass)
 Generalization: thiết kế Bottom – Up nhằm gộp vài thực thể có chung một số đặc tính
thành một thực thể mức cao hơn.
 Hai cách thiết kế trên kết quả thể hiện trên lược đồ ER giống nhau.
1. MÔ HÌNH THỰC THỂ QUAN HỆ MỞ RỘNG 6

 Phân cấp – Specialization và Tổng quát - Generalization


 Thực thể cha – Entity Supertypes NHÂN VIÊN
 Kiểu thực thể chứa những đặc điểm chung Mã NV
Họ tên
 Thực thể con – Subtypes Địa chỉ
 Chứa đặc tính duy nhất của mỗi thực thể con
 Thực thể lớp con có thể tham gia
ISA ISA
 trực tiếp vào một quan hệ
 gián tiếp vào một quan hệ thông qua lớp cha
NHÂN VIÊN NHÂN VIÊN
THEO GIỜ HỢP ĐỒNG
Mã NV Mã NV
Số giờ làm Số ngày làm việc
Số Hợp đồng
1. MÔ HÌNH THỰC THỂ QUAN HỆ MỞ RỘNG 7

• Nhân viên có chung thuộc


tính: EMP_NUM,
EMP_LNAME, EMP_FNAME,
EMP_HIRE_ DATE.

• Phi công: EMP_LICENSE,


EMP_RATINGS,
EMP_MED_TYPE
1. MÔ HÌNH THỰC THỂ QUAN HỆ MỞ RỘNG 8

 Phân cấp – Specialization


 Thực thể kế thừa
1. MÔ HÌNH THỰC THỂ QUAN HỆ MỞ RỘNG 9

 Phân cấp – Specialization


 Thực thể kế thừa
 EMPLOYEE, STUDET kế thừa
PERSON
 P_IS_EMP, P_IS_STU cho biết là
đối tượng nào
 Nếu P_IS_EMP là "Y", P_IS_STU
là "N"
 Và ngược lại
 ADMINISTRATOR và PROFESSOR
GRADUATE, UNDERGRAD kế thừa
STUDENT
 STU_TYPE xác định STUDENT là
kiểu sinh viên nào
1. MÔ HÌNH THỰC THỂ QUAN HỆ MỞ RỘNG 10

 Phân cấp – Specialization


 Ràng buộc loại trừ Disjoint (d)
 Thực thể cha chỉ là 1 trong các thực
thể con
 VD: MEMBER chỉ có thể là
VOLUNTEER hoặc STAFF, không
thể là cả 2 được
 Ràng buộc chồng nhau
Overlap (o)
 Thực thể cha có thể là 1 hoặc nhiều
thực thể con
 VD: STORY có thể là MOVIE hoặc
BOOK hoặc cả hai
1. MÔ HÌNH THỰC THỂ QUAN HỆ MỞ RỘNG 11

 Phân cấp – Specialization


NỘI DUNG 12

1. Mô hình thực thể quan hệ mở rộng


2. Cụm thực thể
3. Toàn vẹn thực thể: Lựa chọn khóa chính
4. Một số tình huống thiết kế
2. CỤM THỰC THỂ 13

 Nhóm các thực thể và mối quan hệ của


thành 1 cụm giúp dễ theo dõi mô hình
 Cụm thực thể là thực thể không có thực
 Đại diện cho nhiều thực thể và mối quan
hệ giúp đơn giản mô hình ER
 Ví dụ:
 Cụm OFFERING đại diện cho 3 thực thể:
SEMESTER, COURSE, CLASS
 Cụm LOCATION đại diện cho 2 thực thể:
ROOM, BUILDING
NỘI DUNG 14

1. Mô hình thực thể quan hệ mở rộng


2. Cụm thực thể
3. Toàn vẹn thực thể: Lựa chọn khóa chính
4. Một số tình huống thiết kế
3. TOÀN VẸN THỰC THỂ: LỰA CHỌN KHÓA CHÍNH 15

 Lựa chọn khóa chính ảnh hưởng trực tiếp đến hiệu quả của CSDL
 Khóa tự nhiên hoặc mã định danh tự nhiên
 Là mã trong thế giới thực để nhận dạng duy nhất 1 đối tượng
 Quen thuộc với người dùng cuối
 Thường mô hình dữ liệu thường lấy mã định danh tự nhiên làm khóa chính
của thực thể
 Hoặc sử dụng khóa chính tổng hợp hoặc khóa thay thế
3. TOÀN VẸN THỰC THỂ: LỰA CHỌN KHÓA CHÍNH 16

 Mục đích của khóa


 Khóa chính giúp xác định duy nhất 1 thực thể
 Đảm bảo tính toàn vẹn của thực thể
 Không dùng để mô tả thực thể
 Khóa chính và khóa ngoại dùng để kết nối giữa các thực thể

MSV Hoten Diachi GT MSV MaMon Diem MaMon Tenmon Tinchi


A01 Lê Na 12 Thái Hà Nữ A01 M01 8 M01 CSDL 4
A03 Trần An 56 Mã Mây Nam A01 M02 5 M02 Anh 2 3
A02 Hà Nam 34 Câu Gỗ Nam A03 M01 6 M04 Toán 1 3
A04 Trần Hà 1Láng Hạ Nữ A02 M04 10
M03 Vi mô 4
A02 M02 7
M05 Kế toán 2
A02 M03 9
A04 M01 9
A04 M03 5
3. TOÀN VẸN THỰC THỂ: LỰA CHỌN KHÓA CHÍNH 17

 Mục đích của khóa


 Khóa chính giúp xác định duy nhất 1 thực thể
 Đảm bảo tính toàn vẹn của thực thể
 Không dùng để mô tả thực thể
 Khóa chính và khóa ngoại dùng để kết nối giữa các thực thể

MSV Hoten Diachi SoCMT MSV MaMon Diem MaMon Tenmon Tinchi
A01 Lê Na 12 Thái Hà 0123654978 A01 M01 8 M01 CSDL 4
A03 Trần An 56 Mã Mây 0235469734 A01 M02 5 M02 Anh 2 3
A02 Hà Nam 34 Câu Gỗ 0022334455 A03 M01 6 M04 Toán 1 3
A04 Trần Hà 1Láng Hạ 0321789653 A02 M04 10
M03 Vi mô 4
A02 M02 7
M05 Kế toán 2
A02 M03 9
A04 M01 9
A04 M03 5
3. TOÀN VẸN THỰC THỂ: LỰA CHỌN KHÓA CHÍNH 18

 Khóa chính
 Một số câu hỏi về khóa chính
 Có thể lấy tất cả các thuộc tính trong bảng làm khóa được không?
 Tại sao MSV được chọn là khóa chính mà không phải sự kết hợp của Hoten, Diachi
 Tại sao không lấy SoCMT làm khóa chính
 Một thuộc tính kiểu text kích thước 256 byte là khóa thì sao?

MSV Hoten Diachi SoCMT

A01 Lê Na 12 Thái Hà 0123654978


A03 Trần An 56 Mã Mây 0235469734
A02 Hà Nam 34 Câu Gỗ 0022334455
A04 Trần Hà 1Láng Hạ 0321789653
3. TOÀN VẸN THỰC THỂ: LỰA CHỌN KHÓA CHÍNH 19

 Đặc điểm của khóa chính PK


Đặc điểm PK Giải thích
Giá trị duy nhất Đảm bảo xác định duy nhất từng thực thể, PK là giá trị duy nhất, không chứa giá trị NULL

PK không nên nên có ý nghĩa ngữ nghĩa, ngoài việc dùng để xác định thực thể hơn là dùng
Không thông minh
để mô tả. VD: 1 mã sinh viên: 650973 hơn là Smith, Martha

Nếu PK có ý nghĩa thì có thể phải cập nhật lại.


Không thay đổi VD lấy tên làm PK, vậy khi đổi tên thì phải đổi lại? PK thay đổi thì FK phải thay đổi theo.
theo thời gian Khi thay đổi PK có nghĩa là cố tình thay đổi danh tính của thực thể.
=> PK là vĩnh viễn không bao giờ thay đổi
Nên đặt PK là 1 thuộc tính nhưng không bắt buộc.
Tốt nhất là một PK là 1 thuộc tình sẽ đơn giản trong việc triển khai FK.
thuộc tính Nếu PK có nhiều thuộc tính dẫn đến FK cũng nhiều thuộc tính và trở nên cồng kềnh khi FK
tham chiếu đến PK
Giá trị duy nhất sẽ được quản lý tốt hơn nếu ở dạng số vì DBMS có thể triển khai dạng số tự
Tốt nhất là số
động tăng

PK không nên chọn bao gồm các thuộc tình có thể được coi là rủi ro bảo mật.
Tuân thủ bảo mật
VD dùng số an sinh xã hội làm khóa chính trong bảng EMPLOYEE
3. TOÀN VẸN THỰC THỂ: LỰA CHỌN KHÓA CHÍNH 20

 Sử dụng khóa tổng hợp:


 PK là khóa tổng hợp sẽ hữu ích trong trường hợp sau:
 Là số định danh trong thực thể kết hợp (được tách ra trong mối quan hệ N:M)
 Là số định danh của thực thể yếu, trong đó thực thể yếu có mối quan hệ xác định chặt chẽ
với thực thể cha
3. TOÀN VẸN THỰC THỂ: LỰA CHỌN KHÓA CHÍNH 21

 Chọn khóa chính thay thế khi


 Khóa chính không tồn tại trong thế giới thực hoặc khóa tự nhiên
 Khóa có nội dung: Số CCCD 031080xxxxxx; 001078xxxxxx, Số BHXH
 Khóa quá dài và cồng kềnh
 Chọn khóa chính thay thế
 Khóa tạo bởi nhà thiết kế CSDL để đơn giản việc xác định các thực thể
 Sử dụng các ràng buộc duy nhất và không rỗng

MSV Hoten Diachi SoCMT

A01 Lê Na 12 Thái Hà 0123654978


A03 Trần An 56 Mã Mây 0235469734
A02 Hà Nam 34 Câu Gỗ 0022334455
A04 Trần Hà 1Láng Hạ 0321789653
3. TOÀN VẸN THỰC THỂ: LỰA CHỌN KHÓA CHÍNH 22

 Ví dụ:

 EVENT (DATE, TIME_START, TIME_END, ROOM, EVENT_NAME, PARTY_OF)


 PK1: (DATE, TIME START, ROOM)
 Hoặc PK2: (DATE, TIME END, ROOM)
 RESOURCE (RSC_ID, RSC_DESCRIPTION, RSC_TYPE, RSC_QTY, RSC_PRICE)
 EVENT và RESOURCE có mối quan hệ N:M nên tách thành 1:M
 EVNTRSC (DATE, TIME START, ROOM, RSC ID, QTY_USED)
=> Chọn khóa thay thế khác cho bảng EVNTRSC
NỘI DUNG 23

1. Mô hình thực thể quan hệ mở rộng


2. Cụm thực thể
3. Toàn vẹn thực thể: Lựa chọn khóa chính
4. Một số tình huống thiết kế
4. MỘT SỐ TÌNH HUỐNG THIẾT KẾ 24

 Quan hệ 1:1 TH Ràng buộc quan hệ ER Hành động

Một bên là bắt buộc và Đặt PK bên bắt buộc làm FK bên lựa chọn
I
bên kia là lựa chọn và đặt FK không được NULL
Chọn FK có ít giá trị NULL nhất, hoặc đặt
II Cả 2 bên là lựa chọn FK vào thực thể mà vai trò của mối quan hệ
được thực thi
III Cả 2 bên là bắt buộc Xem xét như TH2 hoặc xem xét lại mô hình

• EMPLOYEE quản lý DEPARTMENT và


• EMPLOYEE là bắt buộc với DEPARTMENT
=> EMP_NUM làm FK trong bảng DEPARTMENT
4. MỘT SỐ TÌNH HUỐNG THIẾT KẾ 25

 Duy trì lịch sử dữ liệu biến đổi theo thời gian


 Các câu hỏi thường đặt ra:
 Làm thế nào để so sánh lợi nhuận của công ty năm nay với các năm trước?
 Diễn biến hệ số lương của Nhân viên ?
=> Cần lưu lại dữ liệu hiện tại và dữ liệu quá khứ
 Tùy từng loại dữ liệu mà có biến thể theo thời gian:
 Ngày sinh, Số thẻ CCCD,... không biến đổi theo thời gian
 Điểm TB, Số dư tài khoản, Số điện thoại, Tiền lương ...có biến đổi theo thời gian
4. MỘT SỐ TÌNH HUỐNG THIẾT KẾ 26

 Duy trì lịch sử dữ liệu biến đổi theo thời gian


Quy tắc xử lý dữ liệu biến đổi theo thời gian
• Tạo thực thể mới có mối hệ 1:M với thực thể ban đầu
• Thực thể mới chứa giá trị mới và thời điểm thay đổi

Theo dõi lịch sử tiền lương của nhân viên


• Tạo thêm bảng SALARY_HIST
• 1 EMPLOYEE sẽ có nhiều lịch sử tiền lương
4. MỘT SỐ TÌNH HUỐNG THIẾT KẾ 27

 Duy trì lịch sử dữ liệu biến đổi theo thời gian


4. MỘT SỐ TÌNH HUỐNG THIẾT KẾ 28

 Duy trì lịch sử dữ liệu biến đổi theo thời gian


4. MỘT SỐ TÌNH HUỐNG THIẾT KẾ 29

 Bẫy thiết kế - Trap


Ví dụ: liên đoàn bóng đã JCB có nhiều bộ phận,
• Bẫy thiết kế xảy ra khi mối quan • mỗi bộ phận có nhiều người chơi
hệ được xác định không đúng • mỗi bộ phận có nhiều đội
hoặc không đầy đủ
• Được trình bày theo cách không
phù hợp với thế giới thực
• Bẫy thiết kế phổ biến nhất là Fan
Trap – Bẫy Quạt
• Bẫy quạt xảy ra khi một thực thể
có hai mối quan hệ 1: M với các
thực thể khác

 Mô tả sai nên thiết kế bị mắc vào Bẫy quạt


 Mỗi bộ phận có nhiều đội, mỗi đội có nhiều
người chơi
4. MỘT SỐ TÌNH HUỐNG THIẾT KẾ 30

 Bẫy thiết kế - Trap


• Bẫy thiết kế xảy ra khi mối quan hệ được xác định không đúng
hoặc không đầy đủ
• Được trình bày theo cách không phù hợp với thế giới thực
• Bẫy thiết kế phổ biến nhất là Fan Trap – Bẫy Quạt
• Bẫy quạt xảy ra khi một thực thể có hai mối quan hệ 1: M với các
thực thể khác
4. MỘT SỐ TÌNH HUỐNG THIẾT KẾ 31

 Bẫy thiết kế - Trap


Ví dụ: liên đoàn bóng đã JCB có nhiều  Mô tả sai nên thiết kế bị mắc vào Bẫy
bộ phận, mỗi bộ phận có nhiều người quạt
chơi, mỗi bộ phận có nhiều đội  Mỗi bộ phận có nhiều đội, mỗi đội có
nhiều người chơi
4. MỘT SỐ TÌNH HUỐNG THIẾT KẾ 32

 Dư thừa mối quan hệ


 Dư thừa (Dự phòng)
 Thường tốt trong môi trường máy tính
 Có nhiều bản sao ở nhiều nơi, khi có sự cố có thể khôi phục
 Dư thừa sẽ không tốt trong môi trường CSDL
 Gây ra bất thường về dữ liệu khi chèn, sửa, xóa
 Xảy ra khi có nhiều mối quan hệ giữa các thực thể có liên quan
 Dư thừa mối quan hệ giúp đơn giản việc thiết kế
Quản lý đội bóng:
• Một bộ phận quản lý nhiều đội bóng,
• một đội bóng có nhiều người chơi
Dư thừa mối quan hệ DIVISION và PLAYER
TÓM TẮT (1) 33

 Mô hình thực thể mở rộng (EER) bổ sung ngữ nghĩa cho mô hình
ER
 Thêm ngữ nghĩa qua thực thể cha, thực thể con và cụm thực thể
 Thực thể cha là thực thể chung có quan hệ với 1 hoặc nhiều thực thể con
 Thực thể con kế thừa thuộc tính và mối quan hệ của thực thể cha
 Phân cấp thực thể
 Mối quan hệ giữa thực thể cha và thực thể con
 Cụm thực thể là thực thể ảo:
 Đại diện cho nhiều thực thể và mối quan hệ trong ERD
 Kết hợp nhiều thực thể và mối quan hệ có liên quan thành một đối tượng
thực thể
TÓM TẮT (2) 34

 Khóa tự nhiên
 Khóa tồn tại trong thế giới thực
 Có thể chọn làm Khóa chính
 Đặc điểm của khóa chính
 Có giá trị duy nhất
 Không thông minh (chứa các giá trị quan trọng)
 Không thay đổi theo thời gian
 Tốt nhất là số và là 1 thuộc tính đơn lẻ
TÓM TẮT (3) 35

 Khóa tổng hợp sử dụng trong


 Thực thể tổng hợp được tạo từ mối quan hệ N:M
 Thực thể yếu
 Khóa thay thế sử dụng khi không có khóa tự nhiên phù hợp làm
khóa chính
 Trong mối quan hệ 1:1 khóa chính FK của thực thể bắt buộc:
 FK của thực thể lựa chọn
 FK trong thực thể có ít giá trị NULL
TÓM TẮT (4) 36

 Dữ liệu thay đổi theo thời gian theo thời gian


 Dữ liệu có giá trị thay đổi theo thời gian
 Yêu cầu lưu lại lịch sử dữ liệu
 Để duy trì lịch sử của dữ liệu thay đổi theo thời gian:
 Tạo thực thể mới chứa
 Giá trị mới
 Thời điểm thay đổi
 Dữ liệu liên quan đến thời gian khác
 Thực thể gốc có mối quan hệ 1:M với thực thể mà lư trữ lịch sử được duy trì
BÀI TẬP 37

You might also like