Chương 3. THIẾT KẾ DỮ LIỆU
GVLT: Thái Lê Vinh
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
2
Chương 2 : Thiết kế Dữ liệu
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ệ,…)
3
Chương 2 : Thiết kế Dữ liệu
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
4
Chương 2 : Thiết kế Dữ liệu
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
5
Chương 2 : Thiết kế Dữ liệu
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
6
Chương 2 : Thiết kế Dữ liệu
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
Có dữ liệu
suy diễn
Tần suất của từng
xử lý
Khơng có dữ
liệu suy diễn
7
Chương 2 : Thiết kế Dữ liệu
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
Số dư
Khái niệm
Loại
Khới
lượng
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
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
8
Chương 2 : Thiết kế Dữ liệu
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 ?
9
Chương 2 : Thiết kế Dữ liệu
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 số dư khách hàng
Khách hàng
Thực thể
Đọc
3000
03: 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
04: Gởi tiền
10
Chương 2 : Thiết kế Dữ liệu
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 số dư 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
03: Rút tiền
Tài khoản
Thực thể
Đọc
Ghi
2000
2000
04: Gởi tiền
Tài khoản
Thực thể
Đọc
Ghi
1000
1000
(A) 3000 Đ + 3000 G ~ (B) 12000 Đ
11
Chương 2 : Thiết kế Dữ liệu
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 Đ
12
Chương 2 : Thiết kế Dữ liệu
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 qt.
Mối kết hợp tởng qt hóa (Is A).
Có 3 phương án.
13
Chương 2 : Thiết kế Dữ liệu
Thiết kế luận lý dữ liệu cấp cao
Dùng thực thể tổng quát
A
E
E’
E1
E’
B
E2
C
R
A
B
E
C
Loại E
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 thực thể) loại E
- Loại bỏ các thực thể chuyên biệt
14
Chương 2 : Thiết kế Dữ liệu
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)
15
Chương 2 : Thiết kế Dữ liệu
Thiết kế luận lý dữ liệu cấp cao
Dùng thực thể tởng qt
Ví dụ:
Thuộc
(1,1)
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
16
Chương 2 : Thiết kế Dữ liệu
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 Có thể phát sinh ra một số lớn các giá trị
nhất, không phát sinh rỗng cho các thuộc tính mà chỉ dùng cho một
thêm các mối kết hợp
loại 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
17
Chương 2 : Thiết kế Dữ liệu
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
C
A
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
18
Chương 2 : Thiết kế Dữ liệu
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
C
A
R2
E’
(p,e)
(p,o)
19
Chương 2 : Thiết kế Dữ liệu
Thiết kế luận lý dữ liệu cấp cao
Dùng các thực thể chuyên biệt
Ví dụ:
Mã NV
Tên NV
(1,1)
NHÂN VIÊN
(0,1)
(0,n)
Sử dụng
Mã PM
Tên PM
Kỹ năng
(0,n)
BỘ PHẬN
(1,n)
KỸ SƯ
(0,n)
(1,n)
QLý
(t,e)
THƯ KÝ
Mã BP
Thuộc
NV QLÝ
Chuyên
ngành
(1,1)
(0,1)
(0,n)
(0,n)
(1,1)
(1,1)
THƯ KÝ
(0,n)
Sử dụng
Mã PM
Tên PM
(0,n)
PHẦN MỀM
KỸ SƯ
(0,n)
Kỹ năng
(0,n)
Qlý 3
Thuộc
2
Thuộc
3
(1,1)
NV QLÝ
(0,1)
Chuyên
ngành
(0,1)
(0,n)
Qlý 2
Tên BP
SLượng NV
trực thuộc
PHẦN MỀM
Thuộc
1
Ptrách
(0,1)
Mã BP
BỘ PHẬN
(0,n)
(1,1)
Ptrác
h
Tên BP
SLượng NV
trực thuộc (0,1)
(0,n)
Qlý 1
20
Chương 2 : Thiết kế Dữ liệu
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ể Cách chọn lựa này không áp dụng được cho cấu trúc
tập con chỉ biểu diễn riêng cho tổng quát hóa loại chồng chéo (o) và bán phần (p), chỉ
loại thực thể tập con đó
dùng được cho toàn phần (t) và riêng biệt (e)
Các tác vụ liên quan đến một Quan niệm các thực thể tập con trước đây cùng là
loại thực thể tập con chỉ truy chuyên biệt hóa của một thực thể tổng quát không còn
cập đến loại thực thể tập con nữa. Quan 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
21
Chương 2 : Thiết kế Dữ liệu
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
Chuyên
ngành TN
NHÂN VIÊN 10.100
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
Chọn lựa tới ưu
(o1) Tính lương sản phẩm cho cơng nhân phân
xưởng
(o2) Tính lương cho nhân viên văn phịng
(o3) Tìm kiếm thơng tin về cơng nhân
(o4) Tổng hợp danh sách chung của tịan bộ
nhân viên
(o5) Truy xuất thơng tin nhân viên văn phòng
2/ tháng
Tách (gộp)
1/tháng
1000/ngày
5/tháng
Tách
Tách (gộp)
Gộp
20/tháng
Tách
22
Chương 2 : Thiết kế Dữ liệu
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
23
Chương 2 : Thiết kế Dữ liệu
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
R
(0,1)
(0,1)
R1
E1
B
E2
R2
(1,1)
C
A
E
E1
(1,1)
B
C
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)
24
Chương 2 : Thiết kế Dữ liệu
Thiết kế luận lý dữ liệu cấp cao
Dùng mối kết hợp
Ví dụ:
Mã NV
Tên NV
Thuộc
(1,1)
(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)
(1,1)
Ptrác
h
Tên BP
SLượng NV
trực thuộc
25