Bài giảng Hệ thống thông tin quản lý - Chương 6: Thiết kế dữ liệu

pdf 78 trang huongle 7010
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Hệ thống thông tin quản lý - Chương 6: Thiết kế dữ liệu", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfbai_giang_he_thong_thong_tin_quan_ly_chuong_6_thiet_ke_du_li.pdf

Nội dung text: Bài giảng Hệ thống thông tin quản lý - Chương 6: Thiết kế dữ liệu

  1. PHÂN TÍCH THIẾT KẾ HỆ THỐNG THÔNG TIN 1
  2. Nội dung Phần I: Tổng quan Chương 1 – Tổng quan về HTTT Chương 2 – Mô hình và phương pháp mô hình hóa HTTT Phần II: Phân tích Chương 3 – Xác định yêu cầu và chọn lựa phương án Chương 4 – Mô hình hóa dữ liệu Chương 5 – Mô hình hóa xử lý Phần III: Thiết kế Chương 6 – Thiết kế dữ liệu Chương 7 – Thiết kế hệ thống Chương 8 – Thiết kế giao diện 2
  3. Chương 6 – Thiết kế dữ liệu 1. Thiết kế luận lý dữ liệu 1.1. Thiết kế luận lý cấp cao 1.2. Thiết kế luận lý cấp thấp 2. Thiết kế mã 3. Thiết kế vật lý dữ liệu 3
  4. 1. Thiết kế luận lý dữ liệu 1.1. 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. 1.2. 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. 4
  5. 1.1. Thiết kế luận lý dữ liệu cấp cao 1. Quyết định về dữ liệu suy diễn 2. Chuyển đổi tổng quát hóa 5
  6. 1.1. Thiết kế luận lý dữ liệu cấp cao (tt) 1. Quyết định về dữ liệu suy diễn: Dữ liệu suy diễn: là những thuộc tính mà giá trị của nó có thể tính toán được từ giá trị của những thuộc tính khác. Ví dụ: Số HĐ 1,1 1,n Mã KH HÓA ĐƠN CỦA KHÁCH HÀNG Ngày lập Tên KH Trị giá 1,n Mức nợ Số lượng Công nợ GỒM Đơn giá 0,n Mã hàng 0,n Tháng năm HÀNG HÓA GỒM TỒN KHO Tên hàng 1,1 Tổng SL nhập Quy cách Đơn giá bán Tổng SL xuất Tồn kho 6
  7. 1.1. Thiết kế luận lý dữ liệu cấp cao (tt) 1. Quyết định về dữ liệu suy diễn (tt) Ưu điểm: Tăng tốc độ truy xuất do không phải tính toán 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: - Tăng dung lượng lưu trữ; - Chi phí tính toán và cập nhật (khi có thay đổi liên quan). 7
  8. 1.1. Thiết kế luận lý dữ liệu cấp cao (tt) 1. Quyết định về dữ liệu suy diễn (tt) Các xử lý truy xuất DL suy diễn Các xử lý cập nhật Quyết định Có/không có DL suy diễn DL suy diễn DL suy diễn Tần suất của từng xử lý 8
  9. 1.1. Thiết kế luận lý dữ liệu cấp cao (tt) 1. Quyết định về dữ liệu suy diễn – Ví dụ: Mã KH KHÁCH HÀNG Khối Số lượng Tên KH Khái niệm Loại tài khoản lượng 1,n Số dư AVG = 2 KHÁCH Thực thể 15.000 CỦA HÀNG 1,1 TÀI Thực thể 30.000 Số tài khoản TÀI KHOẢN KHOẢN Số dư 1,n tài khoản PHÁT SINH Thực thể 600.000 LIÊN QUAN CỦA Mối KH 30.000 1,2 Số PS PHÁT SINH LIÊN Mối KH 800.000 RÚT/GỬI Ngày phát sinh QUAN Số tiền PS 9
  10. 1.1. Thiết kế luận lý dữ liệu cấp cao (tt) • Trường hợp có dữ liệu suy diễn “Số dư” (a) Tên tác vụ Khái niệm Loại Đọc Tần suất (/ngày)/ Ghi Bản số t.bình 01: Mở tài khoản TÀI KHOẢN Thực thể Ghi 100 KHÁCH HÀNG Thực thể Ghi 100 CỦA Mối KH Ghi 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ể Đọc 2000 Ghi 2000 KHÁCH HÀNG Thực thể Đọc 2000 Ghi 2000 05: Gởi tiền TÀI KHOẢN Thực thể Đọc 1000 Ghi 1000 KHÁCH HÀNG Thực thể Đọc 1000 Ghi 1000
  11. 1.1. Thiết kế luận lý dữ liệu cấp cao (tt) • Trường hợp không có dữ liệu suy diễn “Số dư” (b) Tên tác vụ Khái niệm Loại Đọc Tần suất (/ngày)/ Ghi Bản số t.bình 01: Mở tài khoản TÀI KHOẢN Thực thể Ghi 100 KHÁCH HÀNG Thực thể Ghi 100 CỦA Mối KH Ghi 100 02: Đọc cân số khách hàng KHÁCH HÀNG Thực thể Đọc 3000 TÀI KHOẢN Thực thể Đọc 3000 x 2 = 6000 CỦA Mối KH Đọc 3000 x 2 = 6000 04: Rút tiền TÀI KHOẢN Thực thể Đọc 2000 Ghi 2000 05: Gởi tiền TÀI KHOẢN Thực thể Đọc 1000 Ghi 1000 (a): 3000 Đ + 3000 G (b): 12000 Đ 11
  12. 1.1. Thiết kế luận lý dữ liệu cấp cao (tt) 1. Quyết định về dữ liệu suy diễn (tt) • Nếu (a) >> (b) chọn không có thuộc tính “Số dư”. • Nếu (a) << (b) chọn có thuộc tính “Số dư”. • Tuy nhiên, kết quả định lượng chỉ là một trong các cơ sở để quyết định có/không có dữ liệu suy diễn. 12
  13. 1.1. Thiết kế luận lý dữ liệu cấp cao (tt) 2. Chuyển đổi tổng quát hóa: • Cần thiết khi mô hình cài đặt không hỗ trợ tổng quát hóa (mô hình quan hệ, mô hình mạng, ). • Có 3 phương án chọn lựa: - Dùng thực thể tổng quát (E) - Dùng thực thể chuyên biệt (E1,E2) - Dùng mối kết hợp (R) E’ R E A E1 B E2 C 13
  14. 1.1. Thiết kế luận lý dữ liệu cấp cao (tt) 2. Chuyển đổi tổng quát hóa - Dùng thực thể tổng quát: E A A E’ R E E1 B E2 C B C E’ R Loại E • Đặc điểm: - Thuộc tính và mối kết hợp của các thực thể chuyên biệt sẽ trở thành thuộc tính và mối kết hợp của thực thể tổng quát. - Loại bỏ các thực thể chuyên biệt. - Thêm vào thực thể tổng quát một thuộc tính phân loại. 14
  15. 1.1. Thiết kế luận lý dữ liệu cấp cao (tt) 2. Chuyển đổi tổng quát hóa – Dùng thực thể tổng quát (tt) • Đặc điểm (tt) - MGT(Loại E)  {E, E1, E2, E1E2}  {0, 1, 2, 3} - Biểu diễn sự tương quan: . (t, e): Ràng buộc MGT(Loại E)  {E1, E2} . (t, o): Ràng buộc MGT(Loại E)  {E1, E2, E1E2} . (p, e): Ràng buộc MGT(Loại E)  {E, E1, E2} . (p, o): Ràng buộc MGT(Loại E)  {E, E1, E2, E1E2} E E E2 E1E2 E2 E2 E1 E1 E1 E2 E1 E1E2 (t,e) (t,o) (p,e) (p,o) 15
  16. 1.1. Thiết kế luận lý dữ liệu cấp cao (tt) 2. Chuyển đổi tổng quát hóa – Dùng thực thể tổng quát – Ví dụ: 1, 1 1, n Mã NV THUỘC Mã BP NHÂN VIÊN BỘ PHẬN Tên NV 0, 1 Tên BP QLÝ t,e 1, 1 1, n THƯ KÝ KỸ SƯ NV QLÝ PTRÁCH 0, 1 Kỹ năng 0, n (0,n) SL NV SỬ DỤNG Chuyên ngành trực thuộc 0, n Mã PM PHẦN MỀM RBTV: Loại NV {TK,KS,QL} Tên PM SL NV trực thuộc Loại NV 1, 1 THUỘC Mã NV 1, n Tên NV NHÂN VIÊN 0, 1 Mã BP Chuyên ngành 0, n QLÝ BỘ PHẬN 0, n Tên BP Kỹ năng (0,n) SỬ DỤNG 0, n 0, 1 1, 1 Mã PM PTRÁCH 16 PHẦN MỀM Tên PM
  17. 1.1. Thiết kế luận lý dữ liệu cấp cao (tt) 2. Chuyển đổi tổng quát hóa - Dùng thực thể tổng quát (tt) Ưu điểm Khuyết điểm Không phát sinh thêm Phát sinh một số giá trị rỗng tại các các mối kết hợp. thuộc tính mà chỉ dùng cho một loại thực thể chuyên biệt mà thôi. Áp dụng cho tất cả cấu Các tác vụ muốn truy cập đến một loại trúc tổng quát hóa thực thể chuyên biệt phải truy cập toàn (t,p,e,o). bộ thực thể tổng quát. Phát sinh thêm một số RBTV cần phải kiểm tra. 17
  18. 1.1. Thiết kế luận lý dữ liệu cấp cao (tt) 2. Chuyển đổi tổng quát hóa - Dùng thực thể chuyên biệt: B C E’ R E A E1 E2 A A E1 B E2 C R1 R2 E’ • Đặc điểm: - Thuộc tính và mối kết hợp của thực thể tổng quát sẽ được chuyển xuống thành thuộc tính và mối kết hợp của tất cả thực thể chuyên biệt. - Loại bỏ thực thể tổng quát. 18
  19. 1.1. Thiết kế luận lý dữ liệu cấp cao (tt) 2. Chuyển đổi tổng quát hóa - Dùng thực thể chuyên biệt (tt) • Ảnh hưởng sự tương quan: B C E’ R E A E1 E2 A A E1 B E2 C R1 R2 E’ E E E1E2 E2 E2 E2 E2 E1 E1 E1 E1 E1E2 (t, e) (t, o) (p, e) (p, o) 19
  20. 1.1. Thiết kế luận lý dữ liệu cấp cao (tt) 2. Chuyển đổi tổng quát hóa - Dùng thực thể chuyên biệt - Ví dụ: 1,1 1,n Mã NV THUỘC Mã BP NHÂN VIÊN BỘ PHẬN Tên NV 0,1 Tên BP (t,e) QLÝ 1,1 1,n THƯ KÝ KỸ SƯ NV QLÝ PTRÁCH 0,1 Kỹ năng 0,n (0,n) SL NV SỬ DỤNG Chuyên ngành trực thuộc 0,n Mã PM PHẦN MỀM Tên PM 0,n 0,n 0,n Mã BP THUỘC2 THUỘC3 BỘ PHẬN Tên BP THUỘC1 1,1 Mã NV 1,1 1,1 1,1 Tên NV Mã NV Mã NV 0,1 THƯ KÝ Tên NV KỸ SƯ Tên NV NV QLÝ PTRÁCH Kỹ năng 0,n (0,n) SL NV SỬ DỤNG Chuyên ngành trực thuộc 0,n Mã PM 0,1 0,n 0,1 0,n 0,n 0,1 PHẦN MỀM QLÝ3 QLÝ2 QLÝ1 20 Tên PM
  21. 1.1. Thiết kế luận lý dữ liệu cấp cao (tt) 2. Chuyển đổi tổng quát hóa - Dùng thực thể chuyên biệt (tt) Ưu điểm Khuyết điểm Thuộc tính riêng của thực thể Không áp dụng được cho cấu trúc tổng quát chuyên biệt chỉ biểu diễn cho hóa loại chồng chéo (o) và bán phần (p), chỉ loại thực thể chuyên biệt đó. 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 Nếu số lượng thuộc tính của thực thể tổng quát loại thực thể chuyên biệt chỉ là đáng kể thì sự lặp lại các thuộc tính này trong truy xuất đến loại thực thể lược đồ kết quả là vấn đề cần phải xem xét lại. chuyên biệt đó. Các tác vụ thao tác lên thực thể tổng quát giờ phải thao tác lên tất cả thực thể chuyên biệt. 21
  22. 1.1. Thiết kế luận lý dữ liệu cấp cao (tt) 2. Chuyển đổi tổng quát hóa - Chọn lựa giữa việc dùng thực thể tổng quát hay thực thể chuyên biệt: Mã NV Tên NV NHÂN VIÊN 10.100 Số CMND (t,e) Ngày sinh 10.000 Địa chỉ 100 Ngày bắt đầu TĐVH NV_VPHÒNG CÔNG NHÂN Bậc nghề Chuyên Ngành TN Ngoại ngữ Các xử lý 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 2/tháng Tách (gộp) (o2) Tính lương cho nhân viên văn phòng 1/tháng Tách (o3) Tìm kiếm thông tin về công nhân 1000/ngày Tách (gộp) (o4) Tổng hợp danh sách chung của toàn bộ nhân viên 5/tháng Gộp (o5) Truy xuất thông tin nhân viên văn phòng 20/tháng Tách
  23. 1.1. Thiết kế luận lý dữ liệu cấp cao (tt) 2. Chuyển đổi tổng quát hóa - Chọn lựa giữa việc dùng thực thể tổng quát hay thực thể chuyên biệt (tt) Việc lựa chọn phụ thuộc vào: - Dung lượng: + Gộp: dung lượng lớ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 suất cao ) Tách/Gộp Ví dụ: ưu tiên (o4) Gộp ưu tiên (o2), (o3) Tách 23
  24. 1.1. Thiết kế luận lý dữ liệu cấp cao (tt) 2. Chuyển đổi tổng quát hóa – Dùng mối kết hợp: A E’ R E A E’ R E 0,1 0,1 R1 R2 E1 B E2 C 1,1 1,1 E1 B E2 C • Đặc điểm: - Loại bỏ mối quan hệ tổng quát hóa. - 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. - Áp dụng cho tất cả cấu trúc tổng quát hóa (t,p,e,o). 24
  25. 1.1. Thiết kế luận lý dữ liệu cấp cao (tt) 2. Chuyển đổi tổng quát hóa – Dùng mối kết hợp – Ví dụ: 1,n Mã NV 1,1 THUỘC Mã BP Tên NV NHÂN VIÊN 0,1 BỘ PHẬN Tên BP (t,e) QLÝ 1,1 1,n THƯ KÝ KỸ SƯ NV QLÝ PTRÁCH Kỹ năng 0,1 0,n (0,n) SL NV SỬ DỤNG Chuyên ngành trực thuộc 0,n Mã PM PHẦN MỀM Tên PM 1,n Mã NV 1,1 THUỘC Mã BP NHÂN VIÊN BỘ PHẬN 0,1 Tên NV 0,1 Tên BP 0,1 0,1 QLÝ LQ1 1,1 1,1 LQ2 1,1 LQ3 1,n THƯ KÝ KỸ SƯ NV QLÝ PTRÁCH Kỹ năng 1,1 0,1 0,n (0,n) SL NV SỬ DỤNG Chuyên ngành trực thuộc 0,n Mã PM 25 PHẦN MỀM Tên PM
  26. 1.1. Thiết kế luận lý dữ liệu cấp cao (tt) 2. Chuyển đổi tổng quát hóa – Dùng mối kết hợp (tt) Ưu điểm Khuyết điểm Áp dụng cho tất cả cấu trúc Lược đồ kết quả khá phức tạp. tổng quát hóa (t,p,e,o). Rất uyển chuyển khi thay Phải chấp nhận sự dư thừa khi biểu đổi yêu cầu ứng dụng. diễn mối quan hệ tổng quát hóa thành các mối kết hợp. 26
  27. 1.2. Thiết kế luận lý dữ liệu cấp thấp 1. Chuẩn bị chuyển đổi: • Loại bỏ định danh bên ngoài • Loại bỏ thuộc tính kết hợp • Loại bỏ thuộc tính đa trị 2. Chuyển đổi từ mô hình thực thể kết hợp sang mô hình quan hệ: • Chuyển đổi thực thể • Chuyển đổi mối kết hợp 27
  28. 1.2. Thiết kế luận lý dữ liệu cấp thấp (tt) 1. Chuẩn bị chuyển đổi: • Loại bỏ định danh bên ngoài: A E1 B A E1 B 1,1 C R C C E2 E2 D D Cách làm: - Định danh mới = định danh của các thực thể tham gia vào mối kết hợp + thuộc tính tham gia làm định danh ban đầu. - Loại bỏ mối kết hợp. 28
  29. 1.2. Thiết kế luận lý dữ liệu cấp thấp (tt) 1. Chuẩn bị chuyển đổi (tt) • Loại bỏ định danh bên ngoài - Ví dụ: Tầng Tầng Loại phòng Loại phòng Diện tích Diện tích PHÒNG PHÒNG Số phòng Số phòng 1,1 Mã số TN THUỘC 1,n Mã số TN Mã số TN TÒA NHÀ TÒA NHÀ Tên tòa nhà Tên tòa nhà Địa chỉ Địa chỉ Tổng số phòng Tổng số phòng 29
  30. 1.2. Thiết kế luận lý dữ liệu cấp thấp (tt) 1. Chuẩn bị chuyển đổi (tt) • Loại bỏ thuộc tính kết hợp: A E A C1: B1 E B2 B1 B3 B B2 A B3 E C2: B (B1+B2+B3) Cách làm: - C1: Chuyển các thuộc tính thành phần thành các thuộc tính đơn khi các thuộc tính thành phần được truy cập nhiều. - C2: Chuyển thuộc tính kết hợp thành một thuộc tính đơn khi không có nhu cầu truy xuất các thuộc tính thành phần. 30
  31. 1.2. Thiết kế luận lý dữ liệu cấp thấp (tt) 1. Chuẩn bị chuyển đổi (tt) • Loại bỏ thuộc tính kết hợp – Ví dụ: Tên NK Tên NK Ngày sinh Ngày sinh NHÂN KHẨU NHÂN KHẨU Quê quán Quê quán Số CMND Số CMND CMND Ngày lập Nơi cấp Ngày lập Nơi cấp Mã NV Tên NV Mã NV NHÂN VIÊN TĐVH Số nhà Tên NV NHÂN VIÊN Đường TĐVH Địa chỉ Phường Địa chỉ Quận Thành phố 31
  32. 1.2. Thiết kế luận lý dữ liệu cấp thấp (tt) 1. Chuẩn bị chuyển đổi (tt) • Loại bỏ thuộc tính đa trị của thực thể: 1,1 0,n 1,n E A(0,n) E R EA A Ví dụ: Mã NV Mã NV NHÂN VIÊN Tên NV NHÂN VIÊN Tên NV Số ĐT (0,n) 0,n 1,1 CỦA ĐIỆN THOẠI Số ĐT 32
  33. 1.2. Thiết kế luận lý dữ liệu cấp thấp (tt) 1. Chuẩn bị chuyển đổi (tt) • Loại bỏ thuộc tính đa trị của mối kết hợp: A A E1 E1 A EA RA (b) R RA(0,n) R A B B EA (c) E2 E2 B RA (a) R là mối kết hợp 1-1: thực thể EA sẽ có định danh là định danh của E1 hoặc E2 kết hợp với thuộc tính RA (b) R là mối kết hợp 1-n: thực thể EA sẽ có định danh là định danh của E1 kết hợp với thuộc tính RA (c) R là mối kết hợp n-n: thực thể EA sẽ có định danh là định danh của E1 và E2 kết hợp với thuộc tính RA 33
  34. 1.2. Thiết kế luận lý dữ liệu cấp thấp (tt) 1. Chuẩn bị chuyển đổi (tt) • Loại bỏ thuộc tính đa trị của mối kết hợp – Ví dụ: Mã SV Tên MH 0,n 1,n SINH VIÊN HỌC MÔN HỌC Tên SV Số tín chỉ Ngày sinh Điểm (0,n) ? Mã SV Tên MH Tên MH 0,n 1,n SINH VIÊN HỌC MÔN HỌC ĐIỂM Mã SV Điểm số Tên SV Số học phần Ngày sinh 34
  35. 1.2. Thiết kế luận lý dữ liệu cấp thấp (tt) 2. Chuyển đổi từ mô hình TTKH mô hình Quan hệ: • Chuyển đổi thực thể: . Thực thể lược đồ quan hệ . Thuộc tính thuộc tính . Định danh khóa chính Ví dụ: Mã SV SINH VIÊN Tên SV SINH_VIÊN(Mã_SV, Tên_SV, Ngày_sinh) Ngày sinh Tên MH MÔN HỌC MÔN_HỌC(Tên_MH, Số_tín_chỉ) Số tín chỉ 35
  36. 1.2. Thiết kế luận lý dữ liệu cấp thấp (tt) 2. Chuyển đổi từ mô hình TTKH mô hình Quan hệ (tt) • Chuyển đổi mối kết hợp: . Nguyên tắc chung: A A E1 E1 R RA E3 R RA B B E2 C E2 R(A, B, RA) R(A, B, C, RA) 36
  37. 1.2. Thiết kế luận lý dữ liệu cấp thấp (tt) 2. Chuyển đổi từ mô hình TTKH mô hình Quan hệ (tt) • Chuyển đổi mối kết hợp (tt) . Chuyển đổi mối kết hợp nhị phân - Mối kết hợp 1-1 A A A E1 E1 E1 0,1 0,1 1,1 R RA R RA R RA 1,1 0,1 1,1 B B B E2 E2 E2 E1(A, ) E1(A, ) E1E2(A, B, ) E2(B, ,A) E2(B, ,A) Hoặc Hoặc E1E2(A, B, ) E1(A, ,B) E2(B, ) 37
  38. 1.2. Thiết kế luận lý dữ liệu cấp thấp (tt) 2. Chuyển đổi từ mô hình TTKH mô hình Quan hệ (tt) • Chuyển đổi mối kết hợp (tt) . Chuyển đổi mối kết hợp nhị phân - Mối kết hợp 1-1 (tt) Ví dụ: 0,1 CỦA 1,1 Mã NV Mã số LL NHÂN VIÊN LÝ LỊCH Tên NV Quê quán Địa chỉ Ngày sinh Điện thoại Nơi sinh NHÂN_VIÊN(Mã_NV,Tên_NV,Địa_chỉ,Điện_thoại) LÝ_LỊCH(Mã_số_LL,Quê_quán,Ngày_sinh,Nơi_sinh,Mã_NV) 38
  39. 1.2. Thiết kế luận lý dữ liệu cấp thấp (tt) 2. Chuyển đổi từ mô hình TTKH mô hình Quan hệ (tt) • Chuyển đổi mối kết hợp (tt) . Chuyển đổi mối kết hợp nhị phân - Mối kết hợp 1-1 (tt) Ví dụ (tt) 1,1 CỦA 1,1 Mã KH Số CMND KHÁCH HÀNG NGƯỜI ĐẠI DIỆN Tên KH Tên NĐD Điện thoại Địa chỉ giao dịch Tài khoản giao dịch KH_NĐD(Mã_KH, Tên_KH, Điện_thoại, Số_CMND, Tên_NĐD, Địa_chỉ_giao_dịch, Tài_khoản_giao_dịch) 39
  40. 1.2. Thiết kế luận lý dữ liệu cấp thấp (tt)) 2. Chuyển đổi từ mô hình TTKH mô hình Quan hệ (tt) • Chuyển đổi mối kết hợp (tt) . Chuyển đổi mối kết hợp nhị phân - Mối kết hợp 1-n A E1 1,n E1(A, ) R RA 1,1 E2(B, ,A) B E2 Ví dụ: Số ĐH 1,1 1,n Mã KH Ngày đặt ĐƠN HÀNG CỦA KHÁCH HÀNG Tên KH Trị giá Địa chỉ Điện thoại giao hàng KHÁCH_HÀNG(Mã_KH, Tên_KH, Điện_thoại, Địa_chỉ_giao_hàng) ĐƠN_HÀNG(Số_ĐH, Ngày_đặt, Trị_giá, Mã_KH) 40
  41. 1.2. Thiết kế luận lý dữ liệu cấp thấp (tt) 2. Chuyển đổi từ mô hình TTKH mô hình Quan hệ (tt) • Chuyển đổi mối kết hợp (tt) . Chuyển đổi mối kết hợp nhị phân - Mối kết hợp n-n E1 A 1,n E1(A, ) R RA R(A,B, ,RA) 1,n E2 B E2(B, ) Ví dụ: Đơn giá Số lượng Mã số Tên NGK Số HĐ CHI TIẾT HÓA ĐƠN NGK ĐVT Ngày lập 1,n HÓA ĐƠN 0,n Loại Trị giá Hiệu Đơn giá bán HÓA_ĐƠN(Số_HĐ, Ngày_lập, Trị_giá) CHI_TIẾT_HÓA_ĐƠN(Số_HĐ, Mã_số, Số_lượng, Đơn_giá) NGK(Mã_số, Tên_NGK, ĐVT, Loại, Hiệu, Đơn_giá_bán) 41
  42. 1.2. Thiết kế luận lý dữ liệu cấp thấp (tt) 2. Chuyển đổi từ mô hình TTKH mô hình Quan hệ (tt) • Chuyển đổi mối kết hợp (tt) . Chuyển đổi mối kết hợp đa phân – Ví dụ: Mã SV Tên SV Ngày sinh Tên MH SINH VIÊN 0,n MÔN HỌC Địa chỉ Số tín chỉ HỌC 0,n Điểm 0,n Học kỳ HỌC KỲ Niên học Ngày BĐ Ngày KT SINH_VIÊN(Mã_SV, Tên_SV, Ngày_sinh, Địa_chỉ) MÔN_HỌC(TÊN_MH, Số_tín_chỉ) HỌC_KỲ(Học_kỳ, Niên_học, Ngày_BĐ, Ngày_KT) HỌC(Mã_SV, Tên_MH, Học_kỳ, Niên_học, Điểm) 42
  43. 1.2. Thiết kế luận lý dữ liệu cấp thấp (tt) 2. Chuyển đổi từ mô hình TTKH mô hình Quan hệ (tt) • Chuyển đổi mối kết hợp (tt) . Chuyển đổi mối kết hợp mở rộng: A B E1 R1 E2 C R2 E3 R1(A, B, ) E1(A, ) R2(A, B, C, ) E2(B, ) E3(C, ) 43
  44. 1.2. Thiết kế luận lý dữ liệu cấp thấp (tt) 2. Chuyển đổi từ mô hình TTKH mô hình Quan hệ (tt) • Chuyển đổi mối kết hợp (tt) . Chuyển đổi mối kết hợp mở rộng – Ví dụ: 44
  45. 1.2. Thiết kế luận lý dữ liệu cấp thấp (tt) 2. Chuyển đổi từ mô hình TTKH mô hình Quan hệ (tt) • Chuyển đổi mối kết hợp (tt) . Chuyển đổi mối kết hợp mở rộng – Ví dụ (tt) Thực thể: MÔN_HỌC(Mã_MH, Tên_MH, Số_tín_chỉ) HỌC_KỲ(Học_kỳ, Niên_học, Ngày_BĐ, Ngày_KT) GIÁO_VIÊN(Mã_GV, Tên_GV) SINH_VIÊN(Mã_SV, Tên_SV, SĐT) LỚP(Mã_lớp, Tên_lớp, Sĩ_số) Mối kết hợp: MỞ_MH(Mã_MH, Mã_lớp, Học_kỳ, Niên_học) ĐĂNG_KÝ(Mã_MH, Mã_lớp, Học_kỳ, Niên_học, Mã_SV, Điểm) PHÂN_CÔNG(Mã_MH, Mã_lớp, Học_kỳ, Niên_học, Mã_GV) 45
  46. 1.2. Thiết kế luận lý dữ liệu cấp thấp (tt) Ví dụ tổng hợp: 1,1 1,n Mã NV THUỘC Mã BP NHÂN VIÊN BỘ PHẬN Tên NV 0,1 Tên BP (t,e) QLÝ 1,1 1,n THƯ KÝ KỸ SƯ NV QLÝ PTRÁCH Kỹ năng 0,1 0,n (0,n) SL NV SỬ DỤNG Chuyên ngành trực thuộc 0,n Mã PM PHẦN MỀM Tên PM 46
  47. 1.2. Thiết kế luận lý dữ liệu cấp thấp (tt) Ví dụ tổng hợp – Chuẩn bị chuyển đổi: SL NV trực thuộc Loại NV Mã NV 1,1 THUỘC 1,n Mã BP KỸ NĂNG NHÂN VIÊN BỘ PHẬN Tên NV 0,1 Tên BP Chuyên ngành 0,n Kỹ năng 0,n 1,n 0,n SỬ DỤNG QLÝ 0,n CÓ Mã PM 1,1 PHẦN MỀM 0,1 Tên PM PTRÁCH 47
  48. 1.2. Thiết kế luận lý dữ liệu cấp thấp (tt) Ví dụ tổng hợp – Chuyển đổi từ MH TTKH -> MH QH: Thực thể: NHÂN_VIÊN(Mã_NV, Tên_NV, Chuyên_ngành, SL_NV_trực_thuộc, Loại_NV, Mã_BP, Mã_NVQL) //NVQL trực tiếp của nhân viên BỘ_PHẬN(Mã_BP, Tên_BP,Mã_NVQL) //NVQL cả bộ phận PHẦN_MỀM(Mã_PM, Tên_PM) KỸ_NĂNG(Kỹ_năng) Mối kết hợp: SỬ_DỤNG(Mã_NV, Mã_PM) CÓ(Kỹ_năng, Mã_NV) 48
  49. 2. Thiết kế mã • Vận dụng các kiểu mã hóa (liên tiếp, theo lát, phân đoạn, phân cấp, diễn nghĩa) để thiết kế mã. • Mục tiêu của thiết kế mã: - Dễ dàng hơn cho việc nhận dạng và phân loại dữ liệu; - Thể hiện thứ tự để sắp xếp và tìm kiếm; - Tối ưu hóa về kích thước; - Có khả năng mở rộng. 49
  50. 2. Thiết kế mã (tt) • Ngữ nghĩa của mã hóa: – Duy nhất: mã phải là duy nhất để nhận dạng đối tượng dữ liệu. – Phân loại: phân loại đối tượng dữ liệu thành những nhóm khác nhau và dựa vào mã có thể nhận ra được nhóm của dữ liệu. – Sắp xếp: mã hóa để thể hiện thứ tự của dữ liệu. – Kiểm tra: kiểm tra tính hợp lệ của mã được nhập. 50
  51. 2. Thiết kế mã (tt) • Các điểm cần xem xét khi thiết kế mã: – Vùng mã hóa: phạm vi mà mã được sử dụng. . Khi liên kết với các hệ thống bên ngoài, mã nên được dùng như một chuẩn công nghiệp chung. . Khi được dùng trong cùng đơn vị, mã nên có phạm vi trong toàn công ty. – Số lượng sử dụng: ước lượng số lượng cần sử dụng hiện tại và trong tương lai -> thiết kế thêm phần dự trữ đặt ở cuối mã. – Ngữ nghĩa: mã có thể hiểu được bởi các thành viên liên quan. 51
  52. 2. Thiết kế mã (tt) • Ví dụ vi phạm vùng mã hóa: mã môn học được thiết kế khác nhau trong cùng một trường. TH201 Thiết kế Cơ Sở Dữ Liệu CNTT201 Thiết kế Cơ Sở Dữ Liệu • Ví dụ thiết kế thêm phần dự trữ đặt ở cuối mã: X X X 9 9 9 Phân loại nhóm Mã số thuộc nhóm Dự trữ (Ký tự) (Ký số) 52
  53. 2. Thiết kế mã (tt) Ví dụ: mã số sinh viên trong trường đại học Không dự trự: 9 9 X X 9 9 9 01 TC 012 01 TC 345 01 TC 365 01 TC 0120 Có dự trự: 9 9 X X 9 9 9 9 01 TC 3450 01 TC 3650 01 TC 0012 9 9 X X 9 9 9 9 01 TC 0345 01 TC 0365 53
  54. 2. Thiết kế mã (tt) Ví dụ: mã số thiết bị máy tính trong các bộ phận của trường Không dự trự: X X X X X X 9 9 HTTT PC 30 HTTT PC 31 Bộ phận Loại thiết bị Mã số HTTT PC 100 HTTT PC 101 X X X X X X 9 9 9 54
  55. 2. Thiết kế mã (tt) • Ví dụ đưa yếu tố ngữ nghĩa vào trong thiết kế mã: 9 9 9 9 9 9 9 00 1 1 037 00 1 1 456 00 1 1 230 Khóa Khoa Lớp Số thứ tự 55
  56. 2. Thiết kế mã (tt) • Ví dụ tài liệu mã hóa: Tên Mã_BP mã Mục Định danh và phân loại tổ chức đích Định 9 9 9 9 dạng Cách gán Ban GĐốc 10 mã BP KDoanh 1 BP PTriển 2 Các BP Khác 3 1 2 3 1 2 3 1 2 3 4 5 20 30 Nhóm KD KD 1 Nhóm KD 2 Nhóm KD 3 Nhóm 1 PT Nhóm 2 PT Nhóm 3 PT Nhóm sự Nhân toán Kế xuất Sản hoạch Kế ký Thư 1 nhánhChi 2 nhánhChi Ghi Sắp tới khi có chi nhánh/bộ phận phòng ban mới sẽ được gán một số tiếp theo. chú
  57. 2. Thiết kế mã (tt) • Mô tả các loại mã: Tên mã Mô tả Ví dụ Mã tuần tự Dùng kiểu mã hóa liên Mã số xe của tỉnh: tiếp. 50 : Thành phố HCM 60 : Đồng Nai 62 : Long An 63 : Tiền Giang Mã khối Dùng kiểu mã hóa theo Mã khách hàng của từng chi lát: Dùng từng lát cho nhánh được quy định như sau: từng nhóm đối tượng, 1->999: KH tại trung tâm trong mỗi lát dùng kiểu 1000->1999: KH ở chi nhánh A mã hóa liên tiếp. 2000->2999: KH ở chi nhánh B Hỗ trợ cho việc phân 3000->3999: KH ở chi nhánh C loại dữ liệu.
  58. 2. Thiết kế mã (tt) • Mô tả các loại mã (tt) Tên mã Mô tả Ví dụ Mã thập phân Dùng kiểu mã hóa phân Mã phòng ban của một công ty: cấp. 00 Ban giám đốc Các đối tượng sẽ được mã 1 Bộ phận kinh doanh hóa từ 0 đến 9 rồi đến lượt 1 Nhóm 1 thành viên của mỗi đối 2 Nhóm 2 tượng này cũng được mã 2 Bộ phận phát triển hóa từ 0 đến 9, 10 Chi nhánh A 20 Chi nhánh B 30 Chi nhánh C Mã theo ký số Dùng kiểu mã hóa phân Mã sinh viên của một trường đại học: đoạn. Mỗi ký số của mã sẽ được     gán một ngữ nghĩa. 01 1 1 100 01 2 1 120  Năm  Khoa  Lớp  Số thứ tự
  59. 2. Thiết kế mã (tt) • Mô tả các loại mã (tt) Tên mã Mô tả Ví dụ Mã gợi nhớ Dùng kiểu mã hóa Mã lớp học của một trường đại học: diễn nghĩa. 00TC: Lớp tại chức khóa 2000 Dùng chữ viết tắt hoặc 01TC: Lớp tại chức khóa 2001 biểu tượng của đối 00HC: Lớp hoàn chỉnh khóa 2000 tượng để mã hóa. 01HC: Lớp hoàn chỉnh khóa 2001 Mã kiểm tra Dùng một (số) ký số Mã số thuế thêm vào trước/sau mã. Mã bao gồm giá trị của mã và ký số kiểm tra. 59
  60. 3. Thiết kế vật lý dữ liệu Mục đích: • Chuyển các mô tả luận lý dữ liệu sang các đặc tả kỹ thuật nhằm lưu trữ và truy xuất dữ liệu. • Tạo một thiết kế cho việc lưu trữ dữ liệu nhằm cung cấp một hiệu năng phù hợp và đảm bảo tính toàn vẹn, an toàn và khả năng phục hồi của CSDL.  Mô hình quan hệ  Khối lượng dữ liệu  Mô tả mẫu tin vật lý  Định nghĩa của thuộc tính  Kiểu dữ liệu của thuộc tính  Yêu cầu về thời gian trả lời  Kiến trúc chỉ mục  Nhu cầu về an toàn dữ liệu  Tối ưu hóa truy vấn  Nhu cầu về backup/restore  Tổ chức file  Hệ quản trị CSDL sử dụng 60
  61. 3. Thiết kế vật lý dữ liệu (tt) • Thiết kế field • Phân chia dữ liệu (partition) • Gộp dữ liệu (denormalization) • Thiết kế file dữ liệu vật lý • Tổ chức file chỉ mục • Gom cụm file (clustering) 61
  62. 3. Thiết kế vật lý dữ liệu – Thiết kế field • Field: đơn vị dữ liệu nhỏ nhất. • Thiết kế field bao gồm: a) Chọn kiểu dữ liệu: phải thỏa các tiêu chuẩn sau: . Tối thiểu không gian lưu trữ; . Hiển thị tất cả tình huống giá trị; . Đảm bảo việc toàn vẹn dữ liệu; . Xem xét việc hỗ trợ các hình thức xử lý trên dữ liệu. 62
  63. 3. Thiết kế vật lý dữ liệu – Thiết kế field (tt) b) Chọn lựa khóa chính: - Việc chọn lựa khóa chính trong mô hình luận lý đôi khi không thuận tiện cho việc cập nhật. Thêm một thuộc tính trừu tượng làm khóa chính (Nonintelligent key). Thuộc tính này không có trong thế giới thực, chỉ có trong phần mềm. Ví dụ: Intelligent key SẢN_PHẨM(Mã_SP, Tên_SP, Loại_SP, Quy_cách) Model M 123 Nonintelligent key M 234 SẢN_PHẨM(SP_ID, Mã_SP, Tên_SP, Loại_SP, Quy_cách) 63
  64. 3. Thiết kế vật lý dữ liệu – Thiết kế field (tt) Ví dụ (tt) Mã_SP trong table SẢN_PHẨM SẢN_PHẨM có thể SP_ID Mã_SP Tên_SP Loại_SP Quy_cách được thay đổi mà 1 M123 A M 12x4 không ảnh hưởng gì 2 M234 B M 15x3 đến table HÓA_ĐƠN có khóa ngoại là 3 S012 C S 12x2 SP_ID tham chiếu đến 4 L121 D L 18x6 table SẢN_PHẨM HÓA_ĐƠN HD_ID Số_HD Ngày_lập SP_ID Số_lượng Đơn_giá 1 001/HD 1/1/2004 1 10 200 2 002/HD 1/1/2004 1 5 200 3 003/HD 2/1/2004 2 120 120 4 004/HD 3/1/2004 3 200 700 64
  65. 3. Thiết kế vật lý dữ liệu – Thiết kế field (tt) b) Chọn lựa khóa chính (tt) - Khóa chính phức tạp sẽ làm giảm tốc độ truy cập CSDL. Sử dụng Nonintelligent key đơn giản và hiệu quả hơn. Ví dụ: Intelligent key ĐĂNG_KÝ(Mã_MH, Mã_lớp, Học_kỳ, Niên_học, Mã_SV, Điểm) Nonintelligent key ĐĂNG_KÝ(DK_ID, Mã_MH, Mã_lớp, Học_kỳ, Niên_học, Mã_SV, Điểm) 65
  66. 3. Thiết kế vật lý dữ liệu – Phân chia dữ liệu Lược đồ luận lý dữ liệu Các xử lý truy vấn, PHÂN CHIA Lược đồ cập nhật DỮ LIỆU vật lý Tần xuất truy vấn, cập nhật 66
  67. 3. Thiết kế vật lý dữ liệu – Phân chia dữ liệu (tt) a) Phân chia theo chiều ngang (horizontal partition) • Cách làm: Phân chia các dòng dữ liệu trong một table thành nhiều table khác nhau. • Tình huống áp dụng: khi nhiều người dùng khác nhau cần truy cập các dòng dữ liệu khác nhau. • Ưu điểm: tối ưu hóa tốc độ truy cập dữ liệu. • Nhược điểm: phức tạp khi phải truy cập toàn bộ dữ liệu. 67
  68. 3. Thiết kế vật lý dữ liệu – Phân chia dữ liệu (tt) a) Phân chia theo chiều ngang (horizontal partition) - Ví dụ: HÓA_ĐƠN KL:~10.000.000/năm Các xử lý truy cập dữ liệu: Số_HD Ngày_lập Diễn_giải Trị_giá Mã Tên xử lý Tần suất Hd00001 1/1/2004 Xxxxxxx 1.000.000 số Hd00002 2/1/2004 Yxxxxxx 2.000.000 O1 Tìm hóa đơn 100/ngày O2 Tính doanh thu tháng 1/tháng Hd15000 1/1/2005 Zzzzzzzz 1.400.000 O3 Tính doanh thu theo 100/tháng khách hàng Hd15001 2/1/2005 Tttttttttttt 2.100.000 O4 Tổng hợp doanh số năm 1/năm O5 Lập biểu đồ so sánh 1/năm Hd30000 1/1/2006 Uuuuuuu 12.000.000 doanh số theo các năm Hd30001 2/1/2006 Vvvvvvv 1.000.000 68
  69. 3. Thiết kế vật lý dữ liệu – Phân chia dữ liệu (tt) a) Phân chia theo chiều ngang (horizontal partition) - Ví dụ (tt) Tách table HÓA_ĐƠN theo năm, các xử lý O1, O2, O4 sẽ hiệu quả hơn. HD004 HÓA_ĐƠN KL:~10.000.000/năm Số_HD Ngày_HD Diễn_giải Trị_giá Số_HD Ngày_lập Diễn_giải Trị_giá Hd00001 1/1/2004 Xxxxxxx 1.000.000 Hd00001 1/1/2004 Xxxxxxx 1.000.000 Hd00002 2/1/2004 Yxxxxxx 2.000.000 Hd00002 2/1/2004 Yxxxxxx 2.000.000 HD005 Số_HD Ngày_HD Diễn_giải Trị_giá Hd15000 1/1/2005 Zzzzzzzz 1.400.000 Hd15000 1/1/2005 Zzzzzzzz 1.400.000 Hd15001 2/1/2005 Tttttttttttt 2.100.000 Hd15001 2/1/2005 Tttttttttttt 2.100.000 HD006 Số_HD Ngày_HD Diễn_giải Trị_giá Hd30000 1/1/2006 Uuuuuuu 12.000.000 Hd30000 1/1/2006 Uuuuuuu 12.000.000 Hd30001 2/1/2006 Vvvvvvv 1.000.000 Hd30001 2/1/2006 Vvvvvvv 1.000.000 69
  70. 3. Thiết kế vật lý dữ liệu – Phân chia dữ liệu (tt) b) Phân chia theo chiều dọc (vertical partition) Cách làm: Phân chia một cấu trúc luận lý thành những cấu trúc lưu trữ vật lý khác nhau. Ví dụ: KHÁCH_HÀNG(Mã_KH, Tên_KH, Địa_chỉ, SDT, Số_tài_khoản, Mã_số_thuế, PTTT, Mức_nợ, Công_nợ) KH1(Mã_KH, Tên_KH, Địa_chỉ) KH2(Mã_KH, SDT, Số_tài_khoản, Mã_số_thuế, PTTT, Mức_nợ, Công_nợ) Cấu trúc truy cập thường xuyên Cấu trúc truy cập không thường xuyên 70
  71. 3. Thiết kế vật lý dữ liệu – Gộp dữ liệu • Mục tiêu: tối ưu hóa truy vấn dữ liệu. • Hạn chế: - Phát sinh trùng lắp dữ liệu. - Chi phí kiểm soát tính nhất quán dữ liệu. 71
  72. 3. Thiết kế vật lý dữ liệu – Gộp dữ liệu (tt) • Gộp 2 quan hệ liên kết 1-1: SINH_VIÊN(Mã_SV, Tên_SV, Chuyên_ngành) HỒ_SƠ_HỌC_BỔNG(Mã_HS, Ngày_lập, Khả_năng, Mã_SV) Xử lý Dữ liệu liên quan O1 Mã_SV, Tên_SV, Chuyên_ngành, Khả_năng O2 Tên_SV, Khả_năng, Ngày_lập SINH_VIÊN(Mã_SV, Tên_SV, Chuyên_ngành, Ngày_lập, Khả_năng) 72
  73. 3. Thiết kế vật lý dữ liệu – Gộp dữ liệu (tt) • Gộp 2 quan hệ liên kết 1-n: Mã_SV Tên_SV Mã_CN Mã_CN Tên_CN 991100 N.V.A HTTT HTTT Hệ thống thông tin 991101 N.T.B CNPM CNPM Công nghệ phần mềm 991112 P.V.C CNPM MMT Mạng máy tính 991120 T.T.N HTTT CNTT Công nghệ tri thức 991200 T.V.M CNPM Truy vấn thường xuyên: - Q1 (Mã_SV, Tên_SV, Tên_CN) 73
  74. 3. Thiết kế vật lý dữ liệu – Gộp dữ liệu (tt) • Gộp 2 quan hệ liên kết 1-n (tt) Mã_SV Tên_SV Mã_CN Tên_CN 991100 N.V.A HTTT Hệ thống thông tin 991101 N.T.B CNPM Công nghệ phần mềm 991112 P.V.C CNPM Công nghệ phần mềm 991120 T.T.N HTTT Hệ thống thông tin 991200 T.V.M CNPM Công nghệ phần mềm Trùng lắp thông tin Cấu trúc gộp sẽ tối ưu cho Q1 nhưng dẫn đến trùng lắp thông tin 74
  75. 3. Thiết kế vật lý dữ liệu – Tổ chức file chỉ mục Các trường hợp nên sử dụng chỉ mục: • Cấu trúc table lớn; • Đánh chỉ mục khóa chính mỗi table; • Đánh chỉ mục các column tìm kiếm, các column trong mệnh đề ORDER BY, GROUP BY. Lưu ý: hạn chế sử dụng chỉ mục trong các CSDL hay biến đổi vì các thay đổi (thêm, xóa, sửa) sẽ bị chậm đi do phải cập nhật lại chỉ mục. 75
  76. 3. Thiết kế vật lý dữ liệu – Tổ chức file chỉ mục (tt) B-Tree Độ phức tạp tỉ lệ thuận với chiều cao của B-Tree 76
  77. 3. Thiết kế vật lý dữ liệu – Tổ chức file chỉ mục (tt) Join index 77
  78. 3. Thiết kế vật lý dữ liệu – Tổ chức file chỉ mục (tt) Join index 78