Bài giảng Nhập môn Công nghệ phần mềm - Chương 4: Thiết kế dữ liệu - Phạm Mạnh Cương

Mở đầu

Mục tiêu

Kết quả

Quá trình thiết kế

Thiết kế dữ liệu với tính đúng đắn

Thiết kế dữ liệu và yêu cầu chất lượng

Tính tiến hóa

Tính hiệu quả về tốc độ

Tính hiệu quả về lưu trữ

ppt 42 trang phuongnguyen 4900
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Nhập môn Công nghệ phần mềm - Chương 4: Thiết kế dữ liệu - Phạm Mạnh Cương", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Bài giảng Nhập môn Công nghệ phần mềm - Chương 4: Thiết kế dữ liệu - Phạm Mạnh Cương

Bài giảng Nhập môn Công nghệ phần mềm - Chương 4: Thiết kế dữ liệu - Phạm Mạnh Cương
1 
Chương 4: 
NHẬP MÔN CÔNG NGHỆ PHẦN MỀM 
Thiết kế dữ liệu 
2 
Nội dung 
Mở đầu 
Mục tiêu 
Kết quả 
Quá trình thiết kế 
Thiết kế dữ liệu với tính đúng đắn 
Thiết kế dữ liệu và yêu cầu chất lượng 
Tính tiến hóa 
Tính hiệu quả về tốc độ 
Tính hiệu quả về lưu trữ 	 
3 
1.1 Mục tiêu 
Mô tả cách thức tổ chức để : 
Lưu trữ các dữ liệu của PM 
Chọn lọc dữ liệu cần thiết 
Thay đổi dữ liệu ( tham số , miền giá trị ) dễ dàng . 
Dữ liệu không trùng lắp , lưu trữ ít tốn kém 
Truy xuất nhanh 
4 
1.1 Mục tiêu ( tt ) 
Có 2 dạng lưu trữ chính : 
Lưu trữ dưới dạng Tập tin 
Lưu trữ dưới dạng CSDL 
Lưu trữ dưới dạng tập tin 
Thường chỉ thích hợp với một số PM 
Chú trọng rất nhiều vào các xử lý và hình thức giao diện . 
Thường các thông tin được tiếp nhận và xử lý ngay . 
Vị dụ : các game nhỏ ,  
Lưu trữ dưới dạng CSDL rất thông dụng . 
5 
1.2 Kết quả 
Gồm 2 loại thông tin: 
Thông tin tổng quát 
Thông tin chi tiết 
Thông tin tổng quát : 
Danh sách các bảng dữ liệu 
Việc lưu trữ cần bao nhiêu bảng và đó là các bảng nào ? 
Danh sách các liên kết . 
Các bảng dữ liệu có quan hệ ( liên kết ) ra sao ? 
Thông tin chi tiết : 
Mô tả chi tiết từng thành phần lưu trữ . 
6 
Sơ đồ logic 
Tên bảng 
Bảng ( quan hệ ) 
Liên kết ( xác định duy nhất ) 
Là sơ đồ cho phép thể hiện : 
hệ thống các bảng dữ liệu cùng với quan hệ giữa chúng 
Các ký hiệu được dùng trong sơ đồ : 
7 
Quan hệ 1-N 
Tên quan hệ 
Một phần tử của A quan hệ duy nhất 1 phần tử của B và ngược lại 1 phần tử của B có thể quan hệ với nhiều phần tử của A. 
A 
B 
Mẹ 
Con 
Thanh 
2 
Lan 
1 
Tên 
Mã 
1 
Liên 
2 
Tiến 
2 
Thu 
1 
Linh 
Mã Mẹ 
Tên 
8 
Quan hệ m-n 
Mỗi phần tử của A có quan hệ với nhiều phần tử của B và ngược lại mỗi phần tử của B có quan hệ với nhiều phần tử của A. 
A 
C 
B 
MUON 
DOC_GIA 
SACH 
MaDG 
TenDG 
DG01 
Huy 
DG02 
Thành 
MaSach 
TenSach 
S01 
VB.NET 
S02 
C#.NET 
S03 
C++.NET 
MaDG 
MaSach 
DG01 
S01 
DG01 
S02 
DG02 
S01 
DG02 
S02 
DG02 
S03 
9 
Quan hệ m-n 
Bảng thuộc tính cho phép mô tả chi tiết 
thành phần trong sơ đồ logic theo dạng như sau : 
	 Thành phần : 
	 Ý nghĩa : 
Stt 
Thuộc tính 
Kiểu 
Miền giá trị 
Ý nghĩa 
	 Thành Phần : DOC_GIA 
	 Ý nghĩa : Lưu trữ thông tin về đọc giả 
Stt 
Thuộc tính 
Kiểu 
Miền giá trị 
Ý nghĩa 
1 
MaDG 
Chuỗi 
Tối đa 6 ký tự 
2 
LoaiDG 
Chuỗi 
Có 2 loại “X”, “Y” 
Loại đọc giả 
3 
HoTen 
Chuỗi 
Tối đa 40 ký tự 
4 
NgaySinh 
Ngày 
Tuổi từ 18 đến 55 
5 
NgayLapThe 
Ngày 
6 
Địa chỉ 
Chuỗi 
Tối đa 60 ký tự 
10 
Ví dụ : Bảng thuộc tính 
	 Thành Phần : SACH 
	 Ý nghĩa : Lưu trữ thông tin về Sách 
Stt 
Thuộc tính 
Kiểu 
Miền giá trị 
Ý nghĩa 
1 
MaSach 
Chuỗi 
Tối đa 6 ký tự 
2 
TheLoai 
Chuỗi 
Có 3 thể loại “A”, “B”, “C” 
3 
TenSach 
Chuỗi 
Tối đa 40 ký tự 
4 
NgayNhap 
Ngày 
>= Ngày hiện tại 
5 
TacGia 
Chuỗi 
Tối đa 40 ký tự 
6 
NamXuatBan 
Số 
Stt 
Thuộc tính 
Kiểu 
Miền giá trị 
Ý nghĩa 
1 
MaDG 
Chuỗi 
Tối đa 6 ký tự 
2 
MaSach 
Chuỗi 
Tối đa 6 ký tự 
3 
NgayMuon 
Ngày 
Sau ngày nhận sách 
4 
NgayTra 
Ngày 
Sau hoặc bằng ngày mượn sách 
	 Thành Phần : MUON 
	 Ý nghĩa : Lưu trữ thông tin về việc mượn và trả Sách 
11 
Kết quả 
Các bảng trên phải dùng trong báo cáo về thiết kế DL của đồ án môn học . 
Tạm thời mô tả đơn giản để làm bài tập : 
DOC_GIA ( MaDG , HoTen , LoaiDG , NgaySinh , NgayLapThe , DiaChi ) 
SACH ( MaSach , TenSach , TheLoai , NgayNhap , TacGia , NhaXuatBan , NamXuatBan ) 
MUON ( MaDG,MaSach , NgayMuon , NgayTra ) 
12 
1.3 Quá trình thiết kế 
Tương ứng với 3 loại YC của PM, quá trình thiết kế DL bao gồm 3 bước lớn : 
Thiết kế với tính đúng đắn ( với YC nghiệp vụ ) 
Thiết kế với YC chất lượng 
Thiết kế với YC hệ thống 
13 
1.3 Quá trình thiết kế 
Thiết kế với tính đúng đắn : 
Bảo đảm lưu trữ đầy đủ và chính xác các thông tin liên quan đến các công việc có trong YC nghiệp vụ . 
Chú ý : 
các thông tin phục vụ cho các YC chất lượng sẽ không được xét đến trong bước này . 
Thiết kế với YC chất lượng : 
Vẫn đảm bảo tính đúng đắn nhưng thỏa mãn thêm các YC chất lượng . 
Chú ý : 
đảm bảo tính đúng đắn khi cải tiến sơ đồ logic 
14 
1.3 Quá trình thiết kế 
Thiết kế với YC hệ thống : 
Vẫn đảm bảo tính đúng đắn và các YC chất lượng . 
Thỏa mãn thêm các YC hệ thống 
Phần quyền , cấu hình phần cứng , môi trường PM, 
Trong môn học này chỉnh trình bày YC phân quyền . 
Các YC khác sẽ được trình bày trong môn học XDPMHDT. 
15 
1.3 Quá trình thiết kế 
Xét PM QLTV với 4 YC: 
Lập thẻ đọc giả 
Nhận sách 
Cho mượn sách 
Trả sách 
Yêu cầu : 
Thiết kế dữ liệu với tính đúng đắn 
Thiết kế dữ liệu với tính tiến hóa 
Thiết kế dữ liệu với tính hiệu quả ( truy xuất nhanh ) 
Thiết kế dữ liệu với tính hiệu quả ( lưu trữ tối ưu ) 
Thiết kế dữ liệu với YC hệ thống ( phân quyền ) 
16 
2. Thiết kế dữ liệu với tính đúng đắn 
Đầy đủ : 
Không thừa : xác định thuộc tính đúng chỗ . 
Không thiếu : trả lời được mọi câu hỏi của bài toán 
Chính xác : 
Tạo khóa : khử dữ liệu trùng 
Tìm ràng buộc : khử dữ liệu sai 
RB Tự nhiên : RB đúng ở mọi thời gian và không gian 
RB Toàn vẹn : RB phụ thuộc bài toán , hay thay đổi . 
17 
2. Thiết kế dữ liệu với tính đúng đắn 
STT 
Mã 
Mô tả 
1 
RTN1 
Ngày mượn <= Ngày trả 
2 
RTN2 
Một cuốn sách tại một thời điểm chỉ được mượn bởi 1 độc giả 
3 
STT 
Mã 
Mô tả 
1 
RNC1 
Một độc giả chỉ được mượn tối đa 3 quyển sách 
2 
Danh sách các RB tự nhiên 
Danh sách các RB ngữ cảnh 
18 
2. Thiết kế dữ liệu với tính đúng đắn 
Bước 1: Chọn 1 YC và xác định sơ đồ logic cho YC đó . 
1.1 Lập s ơ đồ logic với 1 thành phần ( thực thể , đối t ượ ng ) duy nhất . Đánh giá tính đú ng đắ n so với các yêu cầu và chuyển sang 1.2 
1.2 Tách một số thuộc tính để tạo ra các thành phần mới . Xác đị nh liên kết giữa các thành phần . Đánh giá tính đú ng đắ n so với các yêu cầu lập lại 1.2 nếu cần thiết . 
19 
2. Thiết kế dữ liệu với tính đúng đắn 
Bước 2: Bổ sung thêm 1 YC và xem lại sơ đồ logic 
Nếu sơ đồ logic vẫn đáp ứng được thì tiếp tục bước 3 ( không thêm gì cả ). 
Nếu sơ đồ logic không đáp ứng được thì bổ sung vào 
Ưu tiên 1: thuộc tính mới 
Ưu tiên 2: thành phần mới cùng với các thuộc tính và liên kết tương ứng . 
Bước 3: Quay lại bước 2 cho đến khi đã xem xét đầy đủ YC. 
Bước 4: Tìm và liệt kê các RBTN, RBNC 
20 
2. Thiết kế dữ liệu với tính đúng đắn 
Tiêu chuẩn nhận dạng đối tượng : 
Định danh : Đối tượng phải có tên ( thường là danh từ/ngữ danh từ ) 
Chu trình sống : có thời điểm sinh ra , có khoảng thời gian hoạt động , có thời điểm chấm dứt 
Sự độc lập tương đối với các đối tượng khác , 
Đề nghị : 
Con người , Vật thể , Tổ chức , Vật lý , Không gian , Thời gian , 
Tiêu chuẩn nhận dạng quan hệ : 
Động từ 
Sự phụ thuộc giữa các đối tượng 
21 
2. Thiết kế dữ liệu với tính đúng đắn 
Với mỗi YC cần xác định rõ 
cần lưu trữ các thông tin gì ? 
( dựa vào luồng dữ liệu đọc ghi trong sơ đồ luồng dữ liệu tương ứng ) 
Cần chọn các YC theo thứ tự từ đơn giản đến phức tạp 
thông thường YC tra cứu là đơn giản nhất , 
các YC phức tạp có thể phải bổ sung vào sơ đồ logic nhiều thành phần mới . 
Khóa của các thành phần 
phải dựa trên ngữ nghĩa tương ứng trong thế giới thực . 
22 
2. Thiết kế dữ liệu với tính đúng đắn 
Ví dụ 1: Xét PM quản lý Thư viên Yêu cầu sau : 
Tiếp nhận nhân viên 
Lập thẻ độc giả 
Tiếp nhận sách mới 
Cho mượn sách 
Nhận trả sách 
Lập phiếu thu tiền phạt 
Ghi nhận mất sách 
Thanh lý sách 
23 
3. Thiết kế dữ liệu với YC chất lượng 
3.1 Tính tiến hóa 
3.2 Tính hiệu quả ( tốc độ ) 
3.3 Tính hiệu quả ( lưu trữ ) 
24 
3.1 Tính tiến hóa 
Phạm vi xem xét : 
Các tham số trong các qui định biểu mẫu 
Miền giá trị của các thuộc tính trong các bảng được mô tả trong các qui định 
Thay đổi các hằng số : 
Sử dụng một bảng tham số : 
ThamSo(MaTS , GiaTri,GhiChu ) 
Khuyết điểm : phải chuyển đổi tham số về kiểu thích hợp trước khi sử dụng . 
25 
3.1 Tính tiến hóa 
Sử dụng nhiều bảng tham số : 
ThamSoSo(MaTS , GiaTri , GhiChu ) 
ThamSoChuoi(MaTS , GiaTri , GhiChu ) 
ThamSoNgay(MaTS , GiaTri , GhiChu ) 
Khuyết điểm : đọc ghi phức tạp ( tùy thuộc vào kiểu mà chọn bảng tham số tương ứng ). 
Sử dụng một bảng tham số có các cột chính là tên các tham số ThamSo(Ten1, Ten2, Ten3, Ten4, Ten5) 
Ưu : giải quyết được 2 khuyết điểm của 2 PP trên 
Khuyết : việc bổ sung tham số mới rất phức tạp . 
26 
3.1 Tính tiến hóa 
Thông thường sử dụng bảng tham số sau : 
Mã 
Diễn giải 
Giá trị 
Đơn vị 
1 
2 
27 
3.1 Tính tiến hóa 
Thay đổi miền giá trị 
Tìm những thuộc tính có MGT hữu hạn Tách thành bảng mới . 
Tạo bảng ràng buộc ngữ cảnh 
Cho các qui định thường hay thay đổi hay tất cả . 
Mã 
Diễn giải 
Áp dụng 
1 
2 
28 
3.1 Tính tiến hóa 
Các bước tiến hành : 
Bước 1: Chọn một YC và xem xét các thay đổi có thể có trong qui định , biểu mẫu liên quan . 
Nếu trong qui định , biểu mẫu có chứa tham số thì bổ sung tham số này vào bảng tham số 
Nếu trong qui định biểu mẫu có các thông tin mà miền giá trị là rời rạc ( chỉ có một số giới hạn các giá trị ) thì tạo bảng mới tương ứng . 
Bước 2: Quay lại bước 1 cho đến khi xem xét đầy đủ các YC. 
Bước 3: Tạo bảng RBNC cho các qui định . 
29 
3.1 Tính tiến hóa 
Ghi chú : 
Sau mỗi bước nhất thiết phải xem xét lại tổ chức các bảng 
Bổ sung tham số không nhất thiết vào BTS mà có thể bổ sung vào các bảng khác nếu xét thấy thích hợp hơn . 
Thứ tự xem xét các YC theo thứ tự từ đầu đến cuối . 
30 
Ví dụ 
Ví dụ 1: Xét PM quản lý Thư viên Yêu cầu sau : 
Tiếp nhận nhân viên 
Lập thẻ độc giả 
Tiếp nhận sách mới 
Cho mượn sách 
Nhận trả sách 
Lập phiếu thu tiền phạt 
Ghi nhận mất sách 
Thanh lý sách 
31 
3.2 Tính hiệu quả tốc độ 
Phạm vi xem xét : 
Thêm các thuộc tính vào các bảng 
dùng để lưu trữ các thông tin đã tính toán trước 
( tốn nhiều thời gian truy xuất trên bảng lớn ) 
Các thông tin này phải được 
tự động cập nhật khi có bất kỳ thay đổi trên thông tin gốc liên quan . 
Các bước tiến hành : 
Bước 1: Chọn 1 YC và xem xét cần bổ sung thông tin gì trên bộ nhớ phụ để tăng tốc độ thực hiện của xử lý liên quan . 
Bước 2: Quay lại bước 1 cho đến khi đã xét đầy đủ các YC. 
32 
3.2 Tính hiệu quả tốc độ 
Ghi chú : 
Sau mỗi bước nhất thiết phải 
lập bảng danh sách các thuộc tính tính toán cùng với thông tin liên quan 
STT 
Thuộc tính 
Bảng của thuộc tính 
Xử lý tự động cập nhật 
1 
SoSachDangMuon 
DOC_GIA 
Cho mượn sách 
Nhận trả sách 
2 
TinhTrangTraTre 
DOC_GIA 
Khởi động PM 
3 
TinhTrangSach 
SACH 
Cho mượn sách 
Nhận trả sách 
33 
3.2 Tính hiệu quả tốc độ 
Nếu thông tin gốc thường xuyên bị thay đổi : 
việc bổ sung thuộc tính tính toán để tăng tốc độ thực hiện sẽ mất ý nghĩa 
( thậm chí theo chiều ngược lại ) 
Việc tăng tốc độ truy xuất có thể dẫn đến 
lưu trữ không tối ưu . 
Thứ tự xem xét các YC theo thứ tự từ đầu đến cuối . 
34 
Ví dụ : 
Ví dụ 1: 
	 Xét PM quản lý Thư viên 
35 
3.3 Tính hiệu quả ( lưu trữ ) 
Phạm vi xem xét : 
Việc tổ chức lại CSDL, không xem xét nén , mã hóa , 
Tổ chức lại CSDL chú ý các bảng sau : 
Khối lượng dữ liệu lớn , phát sinh thường xuyên 
Khóa gồm nhiều thuộc tính . 
36 
3.3 Tính hiệu quả ( lưu trữ ) 
Các bước tiến hành : 
Bước 1: Lập danh sách các bảng cần được xem xét để tối ưu hóa lưu trữ 
Bước 2: Đối với các bảng có khối lượng dữ liệu lớn tối ưu từng thuộc tính trong bảng 
Xét các thuộc tính mà việc lưu trữ chưa tối ưu nhất là kiểu chuỗi . 
Tối ưu hóa lưu trữ tùy theo từng trường hợp cụ thể . 
Nếu chuỗi có kích thước lớn và giá trị được sử dụng nhiều lần trong các mẫu tin khác nhau thì tách bảng tổ chức lại cấu trúc . 
37 
3.3 Tính hiệu quả ( lưu trữ ) 
Các bước tiến hành : 
Bước 3: Tối ưu hóa các bảng mà khóa của bảng bao gồm nhiều thuộc tính 
Phân rã bảng đang xét A thành 2 bảng B và C. 
B: chứa các thuộc tính mà giá trị được lặp lại nhiều lần trong cùng 1 lần thực hiện công việc . B cần có khóa riêng . 
C: chứa các thuộc tính còn lại và khóa của B. 
38 
Ví dụ : 
MUON(MaDG , MaSach , NgayMuon , NgayTra ) 
 được phân rã thành 
MUON(MaMuon , MaDG , NgayMuon ) 
CT_MUON(MaMuon , MaSach , NgayTra ) 
39 
Ví dụ : 
MaDG 
MaSach 
NgayMuon 
NgayTra 
DG1 
S1 
13/10/07 
15/10/07 
DG1 
S2 
13/10/07 
18/10/07 
DG1 
S3 
13/10/07 
DG1 
S4 
13/10/07 
20/10/07 
DG1 
S5 
13/10/07 
25/10/07 
MaMuon 
MaDG 
NgayMuon 
M1 
DG1 
13/10/07 
MaMuon 
MaSach 
NgayTra 
M1 
S1 
15/10/07 
M1 
S2 
18/10/07 
M1 
S3 
M1 
S4 
20/10/07 
M1 
S5 
25/10/07 
40 
Ví dụ : 
Ghi chú : 
Việc phân rã giúp cho lưu trữ tối ưu tuy nhiên 
Tốc độ truy xuất sẽ chậm hơn 
Việc thực hiện xử lý khó khăn hơn ( thuật giải phức tạp hơn ) 
Cần cân nhắc trước khi thực hiện việc phân rã 
Thông thường nếu bảng có số cột trùng DL > 4 và số dòng trùng DL > 4 thì nên tách bảng . 
41 
Tạo mã : 
Nếu mã tồn tại sẳn trong TGT: 
Chương trình tự động phát sinh theo công thức trong TGT. 
Nếu mã chưa tồn tại : 
Chương trình phát sinh tự động (Auto Number) 
Phát sinh theo công thức do người thiết kế đưa ra . 
42 
Hỏi & Đáp 

File đính kèm:

  • pptbai_giang_nhap_mon_cong_nghe_phan_mem_chuong_4_thiet_ke_du_l.ppt