Chương 2 : Thiết kế Dữ liệu
2
Nội dung trình bày
Thiết kế luận l{ dữ liệu
Thiết kế luận l{ cấp cao
Thiết kế luận l{ cấp thấp
Thiết kế mã
Thiết kế vật l{ dữ liệu
Chương 2 : Thiết kế Dữ liệu
3
Thiết kế luận l{ dữ liệu
Thiết kế luận l{ cấp cao:
Độc lập với mô hình cài đặt
Dùng chung cho nhiều loại mơ hình dữ liệu
Thiết kế luận l{ cấp thấp:
Chuyển đổi lược đồ kết quả của bước 1 sang một mơ hình
dữ liệu nhất định (mơ hình quan hệ,…)
Chương 2 : Thiết kế Dữ liệu
4
Thiết kế luận l{ dữ liệu cấp cao
Quyết định về dữ liệu suy diễn
Chuyển đởi tởng qt hóa và tập con
Chọn lựa khóa chính
Chương 2 : Thiết kế Dữ liệu
5
Thiết kế luận l{ dữ liệu cấp cao
Quyết định về dữ liệu suy diễn
Dữ liệu suy diễn: là thuộc tính mà giá trị của nó có thể tính
tóan số học từ những thuộc tính khác
Ví dụ:
Số HĐ
Ngày lập
Trị giá HĐ
HĨA ĐƠN
(1,1)
Của
(1,n)
KHÁCH HÀNG
(1,n)
Gồm
Cơng nợ
SLượng
Đơn giá
Mã KH
Tên KH
Mức nợ
(0,n)
Mã hàng
Tên hàng
Qui cách
HÀNG HÓA
(0,n)
Gồm
TỒN KHO
(1,1)
Đơn giá bán
Tồn kho
ThángNăm
Tổng SL nhập
Tổng SL xuất
Chương 2 : Thiết kế Dữ liệu
6
Thiết kế luận l{ dữ liệu cấp cao
Quyết định về dữ liệu suy diễn
Ưu điểm:
Tăng tốc độ truy vấn do khơng phải tính tóan lại giá trị các thuộc
tính này tại thịi điểm thực hiện truy vấn
Khuyết điểm:
Cập nhật: phải kiểm tra được tính nhất quán với các dữ liệu liên
quan (giảm tốc độ cập nhật)
Tăng dung lượng lưu trữ (do phải lưu trữ thêm các dữ liệu suy
diễn)
Phải lập trình để đảm bảo ràng buộc về dữ liệu suy diễn
Chương 2 : Thiết kế Dữ liệu
7
Thiết kế luận l{ dữ liệu cấp cao
Quyết định về dữ liệu suy diễn
Các xử l{ truy xuất
lên DL suy diễn
Các xử lý cập nhật
lên DL suy diễn
Quyết định
DL suy diễn
Tần suất của từng xử
lý
Khơng có dữ
liệu suy diễn
Có dữ liệu
suy diễn
Chương 2 : Thiết kế Dữ liệu
8
Thiết kế luận l{ dữ liệu cấp cao
Quyết định về dữ liệu suy diễn – ví dụ:
15.000
KHÁCH HÀNG
Số
lượng
tài
khỏan
AVG=2
(1,n)
Mã KH
Tên KH
Khái niệm
Loại
Số dư
Khách hàng
Thực thể
15.000
Tài khoản
Thực thể
30.000
Phát sinh
Thực thể
600.000
Của
Kết hợp
30.000
Liên quan
Kết hợp
800.000
Khối lượng
Của
(1,1)
30.000
TÀI KHOẢN
Số tài khỏan
Số dư tài khỏan
(1,n)
Liên
quan
600.000
(1,2)
PS RÚT/GỬI
Số PS
Ngày phát sinh
Số tiền PS
Chương 2 : Thiết kế Dữ liệu
9
Thiết kế luận l{ dữ liệu cấp cao
Quyết định dữ liệu suy diễn – Ví dụ
Tác vụ
Diễn giải
Tần suất / ngày
o1
Mở tài khoản
100
o2
Đọc số dư tài khoản
3000
o3
Rút tiền
2000
o4
Gửi tiền
1000
Câu hỏi: Có nên sử dụng dữ liệu suy diễn Số dư cho thực
thể Khách Hàng hay không ?
Chương 2 : Thiết kế Dữ liệu
10
Thiết kế luận l{ dữ liệu cấp cao
Quyết định về dữ liệu suy diễn – ví dụ:
Các xử l{ liên quan – có dữ liệu suy diễn (A)
Tên tác vụ
Khái niệm
Loại
Đọc
Ghi
Tần suất (/ngày) /
Bản số t.bình
01: Mở tài khoản
Tài khoản
Khách hàng
Của
Thực thể
Thực thể
Kết hợp
Ghi
Ghi
Ghi
100
100
100
02: Đọc cân số khách hàng
Khách hàng
Thực thể
Đọc
3000
04: Rút tiền
Tài khoản
Thực thể
Khách hàng
Thực thể
Đọc
Ghi
Đọc
Ghi
2000
2000
2000
2000
Tài khoản
Thực thể
Khách hàng
Thực thể
Đọc
Ghi
Đọc
Ghi
1000
1000
1000
1000
05: Gởi tiền
Chương 2 : Thiết kế Dữ liệu
11
Thiết kế luận l{ dữ liệu cấp cao
Quyết định về dữ liệu suy diễn – ví dụ:
Các xử l{ liên quan – khơng có dữ liệu suy diễn (B)
Tên tác vụ
Khái niệm
Loại
Đọc
Ghi
Tần suất (/ngày)
/
Bản sớ t.bình
01: Mở tài khoản
Tài khoản
Khách hàng
Của
Thực thể
Thực thể
Kết hợp
Ghi
Ghi
Ghi
100
100
100
02: Đọc cân số khách hàng
Khách hàng
Tài khoản
Của
Thực thể
Thực thể
Kết hợp
Đọc
Đọc
Đọc
3000
3000 x 2 = 6000
3000 x 2 = 6000
04: Rút tiền
Tài khoản
Thực thể
Đọc
Ghi
2000
2000
05: Gởi tiền
Tài khoản
Thực thể
Đọc
Ghi
1000
1000
(A) 3000 Đ + 3000 G ~ (B) 12000 Đ
Chương 2 : Thiết kế Dữ liệu
12
Thiết kế luận l{ dữ liệu cấp cao
Quyết định về dữ liệu suy diễn
Nếu (A) >> (B) chọn khơng có thuộc tính suy diễn (số dư)
do phải trả chi phí có dữ liệu suy diễn (A) nhiều hơn
khơng có (B)
Nếu (A) << (B) chọn có thuộc tính suy diễn (số dư)
Ngồi ra: có những nhu cầu phát sinh định tính khơng thể
quyết định bằng phương pháp định lượng
(A) 3000 Đ + 3000 G ~ (B) 12000 Đ
Chương 2 : Thiết kế Dữ liệu
13
Thiết kế luận l{ dữ liệu cấp cao
Chủn đởi tởng qt hóa và tập con
Cần thiết khi: mơ hình cài đặt khơng hỗ trợ cho vấn đề về
tởng qt hóa, thừa kế
Ví dụ: mơ hình quan hệ, mơ hình mạng, mơ hình phân cấp,…
Các việc cần xem xét:
Các đặc trưng kế thừa (thuộc tính, định danh, mối kết hợp) của
thực thể chuyên biệt từ thực thể tổng quát.
Mối kết hợp tổng quát hóa (Is A).
Có 3 phương án.
Chương 2 : Thiết kế Dữ liệu
14
Thiết kế luận l{ dữ liệu cấp cao
Dùng thực thể tổng quát
A
E
E’
R
A
B
E
C
E1
E’
B
E2
C
R
Cách thực hiện:
- Các đặc trưng của các thực thể chuyên biệt sẽ được chuyển qua thực
thể tổng quát
- Thêm vào một thuộc tính phân lọai (hoặc một tực thể) loại E
- Loại bỏ các thực thể chuyên biệt
Loại E
Chương 2 : Thiết kế Dữ liệu
15
Thiết kế luận l{ dữ liệu cấp cao
Dùng thực thể tổng quát
MGT(LoạiE) {E, E1, E2, E1E2} {0,1,2,3}
Biểu diễn sự tượng quan:
(t,e): Ràng buộc MGT(LoạiE) {E1, E2}
(t,o): Ràng buộc MGT(LoạiE) {E1, E2, E1E2}
(p,e): Ràng buộc MGT(LoạiE) {E, E1, E2}
(p,o): Ràng buộc MGT(LoạiE) {E, E1, E2, E1E2}
(t,e)
(t,o)
(p,e)
(p,o)
Chương 2 : Thiết kế Dữ liệu
16
Thiết kế luận l{ dữ liệu cấp cao
Dùng thực thể tởng qt
Thuộc
(1,1)
Ví dụ:
Mã NV
Tên NV
NHÂN VIÊN
(0,1)
(1,n)
KỸ SƯ
(1,n)
Sử dụng
Mã PM
Tên PM
(0,n)
Kỹ năng
(0,n)
NV QLÝ
Chuyên
ngành
Mã BP
BỘ PHẬN
QLý
(t,e)
THƯ KÝ
(1,n)
(0,1)
(1,1)
Ptrác
h
Tên BP
SLượng NV
trực thuộc
PHẦN MỀM
SLượng NV
trực thuộc
LoạiNV
Ràng buộc:
Mã NV
- LoạiNV
Tên NV
{TK, KS, QL}Chuyên ngành
Kỹ năng
NHÂN VIÊN
(0,n)
(0,n)
Sử dụng
Mã PM
Tên PM
(0,n)
PHẦN MỀM
(1,1)
Thuộc
(1,n)
Mã BP
(0,1)
(0,n)
(0,1)
BỘ PHẬN
QLý
(1,1)
Ptrách
Tên BP
Chương 2 : Thiết kế Dữ liệu
17
Thiết kế luận l{ dữ liệu cấp cao
Dùng thực thể tổng quát
Ưu điểm
Khuyết điểm
Giải pháp đơn giản nhất, Có thể phát sinh ra một số lớn các giá trị rỗng
không phát sinh thêm cho các thuộc tính mà chỉ dùng cho một loại
các mối kết hợp
thực thể tập con mà thôi.
Áp dụng cho tất cả các
cấu trúc tổng qt hóa
như tồn bợ (t) và bán
phần (p), chồng lắp (o)
và riêng biệt (e)
Tất cả các tác vụ muốn truy cập đến một thực
thể tập con phải truy cập tồn bợ tất cả các
thực thể tập con
Phát sinh thêm một số RBTV cần phải kiểm tra
Chương 2 : Thiết kế Dữ liệu
18
Thiết kế luận l{ dữ liệu cấp cao
Dùng các thực thể chuyên biệt
E’
E
R
B
A
E1
A
R1
E1
B
E2
C
E2
R2
E’
- Chuyển đổi tất cả đặc trưng (thuộc tính, mối kết hợp, định danh) của
thực thể tổng quát xuống lần lược các thực thể chuyên biệt
- Hủy bỏ thực thể tổng quát
C
A
Chương 2 : Thiết kế Dữ liệu
19
Thiết kế luận l{ dữ liệu cấp cao
Dùng các thực thể chuyên biệt
Ảnh hưởng sự tương quan
E’
E
R
B
A
E1
A
R1
E1
(t,e)
B
E2
(t,o)
C
E2
R2
E’
(p,e)
(p,o)
C
A
Chương 2 : Thiết kế Dữ liệu
20
Thiết kế luận lý dữ liệu cấp cao
Dùng các thực thể chuyên biệt
(1,1)
Ví dụ:
Mã NV
Tên NV
NHÂN VIÊN
(0,1)
(0,n)
(0,n)
Mã PM
Tên PM
Kỹ năng
(0,n)
Chuyên
ngành
Thuộc
1
THƯ KÝ
(0,n)
Sử dụng
(0,n)
PHẦN MỀM
(1,1)
(0,1)
KỸ SƯ
(0,n)
Kỹ năng
(0,n)
Qlý 3
Thuộc
2
NV QLÝ
Mã BP
(0,n)
Thuộc
3
(1,1)
(0,1)
Chuyên
ngành
(0,1)
(0,n)
Qlý 2
Ptrác
h
SLượng NV
trực thuộc
(0,n)
(1,1)
Mã PM
Tên PM
NV QLÝ
PHẦN MỀM
(1,1)
BỘ PHẬN
Tên BP
(1,n)
KỸ SƯ
Sử dụng
(1,n)
QLý
(t,e)
THƯ KÝ
Mã BP
Thuộc
(0,1)
BỘ PHẬN
(0,n)
(1,1)
Ptrác
h
SLượng NV
trực thuộc (0,1)
(0,n)
Qlý 1
Tên BP
Chương 2 : Thiết kế Dữ liệu
21
Thiết kế luận l{ dữ liệu cấp cao
Dùng các thực thể chuyên biệt
Nhận xét:
Ưu điểm
Khuyết điểm
Thuộc tính riêng của thực thể tập Cách chọn lựa này không áp dụng được cho cấu trúc tổng
con chỉ biểu diễn riêng cho loại quát hóa loại chồng chéo (o) và bán phần (p), chỉ dùng
thực thể tập con đó
được cho toàn phần (t) và riêng biệt (e)
Các tác vụ liên quan đến một loại Quan niệm các thực thể tập con trước đây cùng là chuyên
thực thể tập con chỉ truy cập đến biệt hóa của một thực thể tổng qt khơng cịn nữa. Quan
loại thực thể tập con đó
niệm này có thể là chủ yếu liên quan đến một sớ xử lý. Ví
dụ thư ký, kỹ sư và quản lý là nhân viên.
Nếu thuộc tính của thực thể tổng quát là đáng kể thì sự lập
lại trong lược đồ đáng xem xét lại
Các tác vụ trước đây thao tác lên thực thể tổng quát nay
phải thao tác lên tất cả các thực thể tập con
Chương 2 : Thiết kế Dữ liệu
22
Thiết kế luận l{ dữ liệu cấp cao
Chọn lựa giữa 2 phương án :
Mã NV
Tên NV
Số CMND
Ngày sinh
Địa chỉ
TĐVH
Chun
ngành TN
10.100
NHÂN VIÊN
100
(t,e)
NV_VPHỊNG
10.000
Ngày bắt đầu
Bậc nghề
CƠNG NHÂN
Ngọai ngữ
Xét các xử l{ truy xuất liên quan
Xử lý
Tần suất
(o1) Tính lương sản phẩm cho cơng nhân phân 2/ tháng
xưởng
(o2) Tính lương cho nhân viên văn phịng
1/tháng
(o3) Tìm kiếm thông tin về công nhân
1000/ngày
(o4) Tổng hợp danh sách chung của tịan bộ nhân 5/tháng
viên
(o5) Truy xuất thơng tin nhân viên văn phòng
20/tháng
Chọn lựa tối ưu
Tách (gộp)
Tách
Tách (gộp)
Gộp
Tách
Chương 2 : Thiết kế Dữ liệu
23
Thiết kế luận l{ dữ liệu cấp cao
Chọn lựa giữa 2 phương án :
Mã NV
Tên NV
Số CMND
Ngày sinh
Địa chỉ
TĐVH
Chun
ngành TN
NHÂN VIÊN
100
NV_VPHỊNG
(t,e)
10.100
10.000
CƠNG NHÂN
Ngày bắt đầu
Bậc nghề
Ngọai ngữ
Nhận xét: việc chọn lựa phụ thuộc vào:
-Dung lượng:
- Gộp: dung lượng lớn (bởi vì phải để trống 10.000 giá trị các thuộc
tính NV_VPHỊNG của các thể hiện CƠNG NHÂN) truy xuất chậm
- Tách: dung lượng tối ưu
-Xử lý: xác định các xử lý ưu tiên (các xử lý có tần xuất cao,…)
-Ví dụ: nếu ưu tiên cho (o4) Gộp; (o2), (o3),… Tách
Chương 2 : Thiết kế Dữ liệu
24
Thiết kế luận l{ dữ liệu cấp cao
Dùng mối kết hợp:
E’
R
E’
A
E
(0,1)
(0,1)
R1
E1
B
E2
R2
(1,1)
C
A
E
R
E1
(1,1)
B
E2
- Hũy bỏ tổng quát – chuyên biệt
- Tạo mối kết hợp từ thực thể tổng quát đến các thực thể chuyên biệt
(t,e)
(t,o)
(p,e)
(p,o)
C
Chương 2 : Thiết kế Dữ liệu
25
Thiết kế luận lý dữ liệu cấp cao
Dùng mối kết hợp
Thuộc
(1,1)
Ví dụ:
Mã NV
Tên NV
(0,1)
NHÂN VIÊN
(0,n)
Sử dụng
Mã PM
Tên PM
(1,n)
KỸ SƯ
NV QLÝ
(0,n)
(0,1)
Chuyên
ngành
Kỹ năng
(0,n)
(1,1)
Ptrác
h
Tên BP
SLượng NV
trực thuộc
PHẦN MỀM
Mã NV
Tên NV
NHÂN VIÊN
(0,1)
Lq1
(0,1)
(0,n)
Sử dụng
(0,n)
PHẦN MỀM
KỸ SƯ
(0,n)
Thuộc
Kỹ năng
(1,n)
(0,1)
(1,1)
NV QLÝ
Chuyên
ngành
Mã BP
BỘ PHẬN
QLý
Lq3
(1,1)
THƯ KÝ
(1,1)
(0,1)
Lq2
(1,1)
Mã PM
Tên PM
Mã BP
BỘ PHẬN
QLý
(t,e)
THƯ KÝ
(1,n)
(1,n)
(0,1)
SLượng NV
trực thuộc
(1,1)
Ptrác
h
Tên BP