Professional Documents
Culture Documents
(PTTK HTTT) UEH.2022 HKC - Ch4 Thanh Phan DU LIEU
(PTTK HTTT) UEH.2022 HKC - Ch4 Thanh Phan DU LIEU
BI001 (22C1INF50901001)
Mục tiêu
2
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
Nội dung
1. Mô hình dữ liệu
3
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
1. Mô hình DL
Công cụ hỗ trợ
● …
4
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
1.1 Mô hình thực thể-mối kết hợp
5
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
● đối tượng tồn tại khách quan trong thế giới thực
sinh viên tên là A, giảng viên tên là B, …
khách hàng C, nhân viên D…
tượng Phù Đổng Thiên Vương, …
6
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
1.1 Mô hình ER (tt.)
Thuộc tính (attribute): thể hiện những đặc trưng của thực thể
7
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
8
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
1.1 Mô hình ER (tt.)
● biển số xe (1-1)
● số bánh xe (1-1)
9
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
Loại thực thể (entity type): tập hợp những thực thể cùng loại
(các thuộc tính giống nhau)
● thuộc tính
10
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
1.1 Mô hình ER (tt.)
Mối kết hợp (relationship): thể hiện mối quan hệ ngữ nghĩa
giữa các thực thể
● VD: 3 MKH giữa (thực thể) khoa CNTT và các (thực thể)
sinh viên
Khoa CNTT
Sinh viên TT990401
11
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
Loại mối kết hợp (relationship type): tập hợp những MKH cùng
loại
● [thuộc tính]
12
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
1.1 Mô hình ER (tt.)
Loại mối kết hợp: tập hợp những MKH cùng loại
SINH VIEN
ma sv KET QUA MON HOC
co cua
ten sv diem ma mh
0-N 0-N
ngay sinh lan thi ten mh
gioi tinh
13
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
14
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
1.1 Mô hình ER (tt.)
QLSV: loại MKH có bản số MAX của 2 vai trò đều = …-N
QLSV: loại MKH có bản số MAX của 2 vai trò là …-1 và …-N
15
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
16
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
1.2 Mô hình ER mở rộng (Enhanced ERM)
Loại MKH đệ qui / phản thân định nghĩa trên 1 loại thực thể
17
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
18
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
1.2 Mô hình EER (tt.)
19
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
Mở rộng: các loại MKH tổng quát hóa và chuyên biệt hóa
20
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
1.3 Mô hình DL hướng đối tượng (HĐT)
Gỉảng
Trừu tượng hóa (Abstraction) viên
ĐỐI
Tính đơn thể (Modularity)
TƯỢNG
Sinh viên
Tính phân cấp (Hierarchy)
Môn học
TKB
21
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
Che giấu cài đặt (“che giấu thông tin”) với NSD
ĐỐI
Tính đơn thể (Modularity)
TƯỢNG
22
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
1.3 Mô hình HĐT (tt.)
Phân chia một vấn đề phức tạp thành nhiều phần nhỏ hơn để
dễ quản lý
ĐỐI
Tính đơn thể (Modularity)
TƯỢNG
23
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
Tài sản
Trừu tượng hóa (Abstraction)
ĐỐI
Tính đơn thể (Modularity)
TƯỢNG Trái phiếu Cổ phiếu
24
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
1.3 Mô hình HĐT (tt.)
● trừu tượng
25
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
Đối tượng
● hành vi
Mã GV: GV005
26
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
1.3 Mô hình HĐT (tt.)
Lớp (class) biểu diễn cho một nhóm đối tượng có chung:
● thuộc tính
● hành vi
Tên lớp
Thuộc tính
Hành vi
Mối kết hợp hay liên kết (association) ngữ nghĩa giữa classes
28
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
1.3 Mô hình HĐT (tt.)
29
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
4 BANH XE
1..1
XE HOI
1..1
2..4 CUA XE
30
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
1.3 Mô hình HĐT (tt.)
GIANG VIEN
31
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
32
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
1.3 Mô hình HĐT (tt.)
Lớp cha
Super class
Lớp con
Subclass
33
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
Lớp cha
Super class
Lớp con
Subclass
34
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
1.3 Mô hình HĐT (tt.)
35
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
Nội dung
1. Mô hình DL
36
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
2.1 Chọn lựa mô hình DL
Mô hình hóa DL ở mức quan niệm: biểu diễn, thể hiện ngữ
nghĩa của DL
37
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
quan niệm
PHÂN TÍCH sơ đồ quan niệm
(conceptual)
luận lý
sơ đồ logic
(logical)
THIẾT KẾ
tổ chức sơ đồ tổ chức
(organizational) CSDL
DỮ LIỆU
38
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
2.1 Chọn lựa mô hình DL (tt.)
Sơ đồ quan niệm DL
● chính xác
● rõ ràng, dễ hiểu
39
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
Mô hình hóa
DL
Mô hình DL
40
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
2.1 Chọn lựa mô hình DL (tt.)
Mô hình DL quan hệ
khả năng diễn đạt ngữ nghĩa: ngôn ngữ quá hình thức
Mô hình hóa
DL
Mô hình DL
41
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
Mô hình DL HĐT
Mô hình hóa
DL
Mô hình DL
42
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
2.1 Chọn lựa mô hình DL (tt.)
Tại sao thường hay chọn mô hình ER, EER cho mức QN ?
Mô hình hóa
DL
Mô hình DL
43
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
44
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
2.2 Lập sơ đồ quan niệm DL
45
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
● theo DL
● theo xử lý
Công cụ hỗ trợ
● ...
46
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
2.2 Lập sơ đồ quan niệm DL (tt.)
B1.
B1.
Xác
Xácđịnh
định
các loại TH.THỂ
các loại TH.THỂ
B2.
B2.
Xác
Xácđịnh
địnhcác
cácloại
loạiMKH
MKH
giữa những loại TH.THỂ
giữa những loại TH.THỂ
B3.
B3.
Hoàn
Hoànchỉnh
chỉnh
sơ
sơ đồ quanniệm
đồ quan niệmDL
DL
47
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
48
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
2.2 Lập sơ đồ quan niệm DL – B1 (tt.)
49
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
● tác nhân
HTTT quản lý đơn đặt hàng: tác nhân NHÂN VIÊN không phải đối
tượng cần quản lý
HTTT quản lý vật tư: tác nhân PHÒNG BAN, NHÂN VIÊN không
phải đối tượng cần quản lý
HTTT quản lý đơn đặt hàng: tác nhân KHÁCH HÀNG cần được
quản lý
HTTT quản lý nhân sự: tác nhân PHÒNG BAN, NHÂN VIÊN cần
được quản lý
50
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
2.2 Lập sơ đồ quan niệm DL – B1 (tt.)
51
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
52
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
2.2 Lập sơ đồ quan niệm DL – B1 (tt.)
53
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
54
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
2.2 Lập sơ đồ quan niệm DL – B2 (tt.)
B1.
B1.
Xác
Xácđịnh
định
các loại TH.THỂ
các loại TH.THỂ
B2.
B2.
Xác
Xácđịnh
địnhcác
cácloại
loạiMKH
MKH
giữa những loại TH.THỂ
giữa những loại TH.THỂ
B3.
B3.
Hoàn
Hoànchỉnh
chỉnh
sơ
sơ đồ quanniệm
đồ quan niệmDL
DL
55
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
0-N ?-?
?-? ?-?
?-?
?-? ?-?
?-?
?-?
?-?
56
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
2.2 Lập sơ đồ quan niệm DL – B2 (tt.)
● xem xét những loại thực thể liên quan đến cùng 1 xử lý
57
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
● xem xét những loại thực thể liên quan đến cùng 1 kết xuất
58
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
2.2 Lập sơ đồ quan niệm DL – B3 (tt.)
B1.
B1.
Xác
Xácđịnh
định
các loại TH.THỂ
các loại TH.THỂ
B2.
B2.
Xác
Xácđịnh
địnhcác
cácloại
loạiMKH
MKH
giữa những loại TH.THỂ
giữa những loại TH.THỂ
B3.
B3.
Hoàn
Hoànchỉnh
chỉnh
sơ
sơ đồ quanniệm
đồ quan niệmDL
DL
59
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
● cho phép trùng lắp (nhằm gia tăng mức độ diễn đạt rõ ràng)
60
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
2.2 Lập sơ đồ quan niệm DL – B3 (tt.)
61
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
Cách 1
Cách 2
62
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
2.3 Ràng buộc DL ở mức quan niệm
Các mô hình (khái niệm, qui tắc, …) có đủ khả năng biểu diễn
thế giới thực vô cùng phong phú ?
63
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
Ý nghĩa
● phương tiện diễn đạt bổ sung ngữ nghĩa cho các sơ đồ QNDL
64
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
2.3 Ràng buộc DL ở mức quan niệm (tt.)
Ký hiệu
65
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
KET_QUA.diem_thi [0,10]
RB giữa các thuộc tính trong cùng loại thực thể/loại MKH
DAT_HANG.ngay_dat_hang DAT_HANG.ngay_giao_du_kien
66
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
2.3 Ràng buộc DL ở mức quan niệm (tt.)
RB giữa các thực thể trong cùng loại thực thể (hay giữa các
MKH trong cùng loại MKH)
67
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
RB giữa các thuộc tính của NHIỀU loại thực thể/loại MKH
● ngày đặt hàng (trong DAT_HANG) phải trước hay bằng ngày
giao hàng (trong GIAO_HANG)
68
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
2.3 Ràng buộc DL ở mức quan niệm (tt.)
RB giữa các thuộc tính của NHIỀU loại thực thể/loại MKH
69
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
RB giữa các thực thể trong NHIỀU loại thực thể / giữa các
MKH trong NHIỀU loại MKH
● mỗi chi tiết đặt hàng (trong CTIET_DH) được giao tối đa 2 lần
(trong CTIET_GH)
70
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
2.3 Ràng buộc DL ở mức quan niệm (tt.)
RB phức tạp trên các thuộc tính, thực thể, MKH của nhiều loại
thực thể, nhiều loại MKH
71
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
● sự tồn tại của 1 MKH phụ thuộc vào sự tồn tại của MKH khác
72
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
2.3 Ràng buộc DL ở mức quan niệm (tt.)
73
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
● một thực thể hoặc KHÔNG tham gia bất kỳ MKH nào, hoặc
phải tham gia TẤT CẢ các MKH
VD: khách hàng nếu mua (sỉ) thì sẽ có công nợ & ngược lại
74
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
2.3 Ràng buộc DL ở mức quan niệm (tt.)
75
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
● một thực thể chỉ được tham gia tối đa 1 trong số các MKH
?
≠
76
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
2.3 Ràng buộc DL ở mức quan niệm (tt.)
So sánh loại MKH loại trừ nhau với loại MKH chuyên biệt hóa
● Khác nhau:
Có thể không tham gia cả 2 loại MKH Phải tham gia vào 1 và chỉ 1 loại MKH
Tối thiểu phải có 2 loại thực thể Tối thiểu phải có 3 loại thực thể
Max 1 Max =1
77
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
So sánh loại MKH loại trừ nhau với loại MKH chuyên biệt hóa
THANH VIEN
ma tv
≠ D ho tv
ten tv
0-1
0-1
1-1 1-1
78
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
2.3 Ràng buộc DL ở mức quan niệm (tt.)
● một thực thể phải tham gia ít nhất 1 trong số các MKH
79
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
≠
80
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
2.3 Ràng buộc DL ở mức quan niệm (tt.)
81
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
Nội dung
1. Mô hình dữ liệu
82
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
3. Thiết kế thành phần DL
● chính xác
● đầy đủ
● HIỆU QUẢ
83
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
Mô hình DL
● mô hình DL quan hệ
Phương pháp
Công cụ hỗ trợ
● ...
84
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
3. Thiết kế thành phần DL (tt.)
B1.
B1.
Chuyển
Chuyểnđổiđổi
sơ
sơ đồ quan niệmDL
đồ quan niệm DL
B2.
B2.
Hoàn
Hoànchỉnh
chỉnh
sơ
sơ đồ quanhệ
đồ quan hệDL
DL
B3.
B3.
Mô
Mô tả ràngbuộc
tả ràng buộc
ởởmức
mứcthiết
thiếtkế
kế
85
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
Quy tắc #1
86
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
3.1 Chuyển đổi sơ đồ quan niệm DL (tt.)
Lưu ý với thuộc tính đa trị (0-n hay 1-n) trong quy tắc #1:
● tăng kích thước của thuộc tính tương ứng trong S’, hoặc
87
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
Quy tắc #2
a) Nếu các nhánh của loại mối kết hợp R đều có giá trị max của bản số
là N thì R sẽ được chuyển thành một lược đồ quan hệ R’ gồm các
thuộc tính của loại mối kết hợp này, nếu có, cùng với thuộc tính khóa
của các loại thực thể tham gia vào R.
b) Khóa của lược đồ quan hệ mới gồm khóa của mỗi loại thực thể tham
gia vào loại mối kết hợp.
88
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
3.1 Chuyển đổi sơ đồ quan niệm DL (tt.)
Quy tắc #3
a) Nếu loại mối kết hợp R mà nhánh A có giá trị bản số max là 1 và
nhánh B còn lại có giá trị bản số max là N thì loại bỏ R và thêm các
thuộc tính khóa của B vào lược đồ quan hệ A’ tương ứng với A (khóa
của B sẽ trở thành khóa ngoại của A).
b) Nếu R có các thuộc tính thì chúng cũng được thêm vào lược đồ
quan hệ A’ tương ứng với A.
89
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
Quy tắc #4
Nếu loại mối kết hợp R mà các nhánh đều có giá trị của bản số max là 1
thì áp dụng quy tắc 3 cho một trong các nhánh (tùy chọn).
90
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
3.1 Chuyển đổi sơ đồ quan niệm DL (tt.)
Quy tắc #5
Nếu có NHIỀU loại mối kết hợp được định nghĩa trên 2 loại thực thể
thì có thể chuyển đổi lần lượt từng loại mối kết hợp và chú ý đặt tên
phân biệt cho các thuộc tính.
91
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
92
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
3.1 Chuyển đổi sơ đồ quan niệm DL (tt.)
b) Đối với trường hợp thể hiện cấu trúc cây, sau khi chuyển đổi loại thực
thể thành lược đồ quan hệ thì cần bổ sung thêm một thuộc tính phân cấp
vào lược đồ quan hệ này.
93
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
94
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
3.3 RB DL ở mức thiết kế
● điều kiện áp đặt lên tất cả dữ liệu (thỏa mãn ở mọi thời điểm)
● CSDL nhất quán: dữ liệu thỏa mãn MỌI ràng buộc toàn vẹn
3 yếu tố của RB
● điều kiện
● ngữ cảnh
95
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
Điều kiện: thể hiện ngữ nghĩa / bảo đảm hiệu quả khai thác
● mã giả (pseudo-code) ?
96
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
3.3 RB DL ở mức th.kế – Điều kiện (tt.)
Ví dụ
● Lương của nhân viên thấp hơn lương của người phụ trách
e NHANVIEN, s NHANVIEN: (e.phutrach = s.manv)
(e.luong < s.luong)
● Trưởng phòng phảI làm việc tại phòng mà mình đang quản lý
d DONVI,
e NHANVIEN: (e.manv = d.tr_phong) (e.madv = d.madv)
97
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
R= (hay R )
R1 R2 (hay R1 R2)
Ví dụ
● Lương của nhân viên thấp hơn lương của người phụ trách
98
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
3.3 RB DL ở mức th.kế – Điều kiện (tt.)
99
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
100
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
3.3 RB DL ở mức th.kế – Điều kiện (tt.)
101
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
RB trên NHIỀU qhệ: giữa những th.tính của các bộ liên quan
● Trưởng phòng phảI làm việc tại phòng mà mình đang quản lý
d DONVI, e NHANVIEN: (e.manv = d.tr_phong) (e.madv = d.madv)
NHANVIEN manv honv tennv ... madv
102
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
3.3 RB DL ở mức th.kế – Điều kiện (tt.)
THANNHAN
PHANCONG
manv
mada
NHANVIEN
DEAN
madv
madv
DONVI
VITRI
103
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
B = PHANCONG[manv, mada]
104
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
3.3 RB DL ở mức th.kế – Điều kiện (tt.)
Chuyển đổi RB: các mối kết hợp tạo chu trình
105
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
106
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
3.3 RB DL ở mức th.kế – Điều kiện (tt.)
● nếu một nhánh có giá trị của bản số min > 0 thì trong phải bổ
sung một ràng buộc liên quan
“Mỗi công trình phải được thực hiện bởi ít nhất 1 nhà NC”
107
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
● Nếu bản số của nhánh A là (1,1) thì các thuộc tính mới được
thêm vào lược đồ quan hệ tương ứng với A sẽ có đặc tính
NOT NULL
108
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
3.3 RB DL ở mức th.kế – Điều kiện (tt.)
109
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
110
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
3.3 RB DL ở mức th.kế – Điều kiện (tt.)
Chuyển đổi RB: các mối kết hợp loại trừ nhau
?
≠
111
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
Chuyển đổi RB: mối kết hợp bắt buộc tồn tại
112
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
3.3 RB DL ở mức th.kế – Điều kiện (tt.)
113
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
● Lương của nhân viên thấp hơn lương của người phụ trách
Ngữ cảnh: NHANVIEN
● Trưởng phòng phảI làm việc tại phòng mà mình đang quản lý
Ngữ cảnh: NHANVIEN, DONVI
114
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
3.3 RB DL ở mức th.kế – Tầm ảnh hưởng
Tầm ảnh hưởng: các thao tác cập nhật các quan hệ ngữ cảnh
● thêm dữ liệu
● xóa dữ liệu
Quan hệ 1
…
Quan hệ n
Quan hệ
116
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
3.3 RB DL ở mức th.kế – TAH (tt.)
RB trên 1 quan hệ: liên thuộc tính (điều kiện trên cùng 1 bộ)
DAT_HANG
117
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
PHANCONG
118
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
3.3 RB DL ở mức th.kế – TAH (tt.)
RB khóa ngoại
Quan hệ CHA
Quan hệ CON
119
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
Ví dụ
● Lương của nhân viên thấp hơn lương của người phụ trách
NHANVIEN
● Trưởng phòng phảI làm việc tại phòng mà mình đang quản lý
Thêm Xóa Sửa
NHANVIEN
DONVI
120
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
3.4 Kiểm tra RB trên CSDL
Kiểm tra RB
● đầy đủ
● hiệu quả
khi nào phải kiểm tra RB r ?
vào thời điểm t, phải kiểm tra những RB nào ?
121
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
RB phải được kiểm tra sau mọi thao tác cập nhật CSDL ?
RB m + + +
122
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
3.4 Kiểm tra RB trên CSDL (tt.)
● Trigger
● Transaction
123
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
END
124
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
3.4 Kiểm tra RB trên CSDL (tt.)
NHANVIEN(manv, honv, tennv, ngaysinh, phai, luong, phutrach, madv)
Ví dụ: Trưởng phòng phảI làm việc tại phòng mà mình đang
quản lý
● transaction
125
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
● hoàn tất (COMMIT): mọi thao tác đều được thực hiện khi tất cả
các RB không bị vi phạm
● không hoàn tất (ROLLBACK): mọi thao tác đều bị hủy bỏ (CSDL
trở về trạng thái ban đầu)
126
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
3.4 Kiểm tra RB trên CSDL (tt.)
● Atomicity: mọi thao tác hoặc hoàn tất hoặc bị hủy bỏ hoàn toàn
● Isolation: các transactions khác không thấy những thay đổi trung
gian
127
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
Thảo luận
128
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
Tài liệu tham khảo
Nguyễn An Tế, Nguyễn Thúy Ngọc & Nguyễn Kiều Oanh, CSDL: Nhập
môn và thực hành, NXB Khoa Học Kỹ Thuật, 2015.
129
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU