Giáo trình Phân tích thiết kế hệ thống thông tin

pdf 214 trang phuongnguyen 5260
Bạn đang xem 20 trang mẫu của tài liệu "Giáo trình Phân tích thiết kế hệ thống thông tin", để 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:

  • pdfgiao_trinh_phan_tich_thiet_ke_he_thong_thong_tin.pdf

Nội dung text: Giáo trình Phân tích thiết kế hệ thống thông tin

  1. Giáo trình phân tích thiết kế hệ thống thông tin
  2. LỜI NÓI ĐẦU Cùng với sự phát triển vượt bậc của ngành Công nghệ Thông tin là sự ra đời của nhiều phương pháp tiếp cận, công cụ tin học hỗ trợ cho chuyên gia tin học trong việc xây dựng những sản phẩm phần mềm, xây dựng những hệ thống thông tin tin học hóa. Tiếp cận hướng đối tượng có nguồn gốc từ lập trình hướng đối tượng hiện nay rất được các công ty và các chuyên gia tin học ưu chuộng và sử dụng rộng rãi. Phân tích thiết kế hệ thống thông tin hướng đối tượng dùng UML (Unified Modeling Language) là một chuyên đề mới hiện đang được giảng dạy cho các sinh viên đại học và sau đại học. Song trong khuôn khổ giáo trình phân tích và thiết kế hệ thống thông tin này với mục đích nhằm trang bị cho sinh viên những kiến thức nền tảng cơ bản nhất, giúp cho sinh viên nắm vững cơ sở lý thuyết, phương pháp luận khi tiếp cận xây dựng một hệ thống thông tin tin học hóa ở qui mô nhỏ và trung bình nhóm tác giả chúng tôi đã quyết định trình bày theo phương pháp tiếp cận truyền thống hướng cấu trúc. Phương pháp tiếp cận phân tích thiết kế hệ thống thông tin sẽ trình bày trong giáo trình này hiện nay cũng đang được các thầy cô, chuyên gia đầu ngành chọn giảng dạy tại các trường đại học ở Việt Nam. Nội dung trong cuốn giáo trình này là kết quả học tập, nghiên cứu của nhóm tác giả trong quá trình ngồi ở ghế giảng đường. Để có thể hoàn thành giáo trình này nhóm tác giả chúng tôi xin tỏ lòng biết ơn sâu sắc đến quý thầy cô đã giảng dạy chúng tôi trong suốt những năm tháng đại học và sau đại học. Phân tích thiết kế hệ thống thông tin là môn học của sinh viên tin học thuộc chuyên ngành hệ thống thông tin. Để có thể đọc hiểu giáo trình cũng như nắm bắt được kiến thức thông qua môn học này sinh viên cần phải nắm vững kiến thức về “Nhập môn Công nghệ Phần mềm“, “Nhập môn cơ sở dữ liệu”, “Phân tích thiết kế cơ sở dữ liệu” đã được học trong những nhóm học phần trước.
  3. Đây là lần biên soạn đầu tiên chắc chắn không thể tránh khỏi những sai sót. Nhóm tác giả rất mong nhận được những ý kiến đóng góp của quý thầy cô, các đồng nghiệp và bạn đọc để có thể hoàn thiện hơn giáo trình này phục vụ cho việc học tập của sinh viên. Xin chân thành cảm ơn! TPHCM tháng 11/2004 Nhóm tác giả
  4. MỤC LỤC LỜI NÓI ĐẦU 1 MỤC LỤC 3 Chương I: TỔNG QUAN VỀ HỆ THỐNG THÔNG TIN. 9 1. Hệ thống (System) 9 1.1 Khái niệm hệ thống: 9 1.2 Cấu tạo của một hệ thống 9 1.3 Các bộ phận của một hệ thống 11 1.3.1 Bộ phận tác vụ: 11 1.3.2 Bộ phận quản lý: 11 1.3.3 Bộ phận quyết định: 12 2. Thông tin (Information) 12 2.1 Khái niệm thông tin 12 2.2 Tính chất thông tin 13 3 Hệ thống thông tin là gì? 14 3.1 Định nghĩa: 14 3.2 Những thành phần cơ bản của một HTTT 14 3.3 Các loại HTTT 14 3.4 Nhiệm vụ và vai trò của một HTTT 15 3.4.1. Nhiệm vụ: 15 3.4.2 Vai trò 16 4. Không gian biểu diễn một hệ thống thông tin 16 4.1. Không gian 3 mức nhận thức 17 4.1.1. Mức quan niệm: 17 4.1.2. Mức logic 17 4.1.3. Mức vật lý 17 4.2. Không gian các thành phần thuộc một HTTT 18 4.2.1 Dữ liệu: 18 4.2.2. Xử lý: 18 4.2.3. Những con người: 18 4.2.4. Bộ xử lý: 18 4.2.5. Thành phần truyền thông 19 4.3. Không gian về các bước phát triển của một HTTT 19
  5. 5. Khảo sát các vấn đề qua từng cặp không gian: 20 5.1. Không gian “các mức nhận thức” – không gian “các thành phần” 20 5.2. Không gian “các thành phần” – không gian “các bước phát triển” 21 5.3. Không gian “mức nhận thức” – không gian “các bước phát triển” 21 6. Tiếp cận xây dựng HTTT 22 6.1 Tiếp cận hướng chức năng: 22 6.1.1 Mô hình thác nước 23 6.2 Tiếp cận hướng đối tượng 26 7. Các phương pháp mô hình hóa HTTT 27 7.1 Lịch sử phát triển của các phương pháp 27 7.2 Đặc điểm của các phương pháp 28 7.2.1 Phương pháp Descartes: 28 7.2.2 Phương pháp hệ thống: 29 7.2.3 Phương pháp lập trình hướng đối tượng: 30 CHƯƠNG II: PHÂN TÍCH YÊU CẦU 33 1. Dẫn nhập 33 2. Các bước thực hiện phân tích yêu cầu 34 2.1 Tiên đoán: (sơ bộ) 34 3. Kỹ thuật thu thập thông tin: 35 3.1 Phỏng vấn 35 3.2 Lập bảng câu hỏi: 36 3.3 Nghiên cứu tài liệu 37 3.4 Quan sát hiện trường 37 4. Các kỹ thuật phân tích 37 5. Hồ sơ phân tích hiện trạng 38 6. Ví dụ về giai đoạn phân tích yêu cầu 38 6.1 Quá trình nhập, xuất hàng 38 6.2 Quản lý công nợ khách hàng 44 6.3 Quản lý tồn kho hàng hóa 46 6.4 Quản lý doanh số bán hàng 47
  6. CHƯƠNG III: PHÂN TÍCH THIẾT KẾ THÀNH PHẦN DỮ LIỆU CỦA HỆ THỐNG THÔNG TIN 49 1. Dẫn nhập 49 2. Mô hình dữ liệu ở mức quan niệm 51 2.1 Mô hình thực thể - kết hợp nguyên thủy 51 2.1.1 Thực thể: 52 2.1.2 Loại thực thể: 54 2.1.3 Mối kết hợp: 56 2.1.4 Loại thực thể phụ thuộc: 58 2.2 Mô hình thực thể kết hợp mở rộng 59 2.2.1 Mối kết hợp đệ qui 59 2.2.2 Mối kết hợp định nghĩa trên mối kết hợp 59 2.2.3 Nhiều mối kết hợp định nghĩa trên cùng những thực thể như nhau: 60 2.2.4 Thực thể chuyên biệt/ thực thể tổng quát: 60 2.3 Xây dựng mô hình quan niệm dữ liệu 61 2.3.1 Xác định danh sách các loại thực thể, thuộc tính 61 2.3.2 Xác định các mối kết hợp 62 2.3.3 Hoàn chỉnh mô hình quan niệm dữ liệu 62 2.3.4 Mô tả các ràng buộc toàn vẹn trên mô hình E-R 63 2.4 Sáu nguyên tắc kiểm tra mô hình quan niệm dữ liệu. 65 2.5 Một số vấn đề thường gặp 66 2.5.1 Mối kết hợp n ngôi khác mối kết hợp 2 ngôi 66 2.5.2 Mối kết hợp khác thực thể 67 2.5.3 Thuộc tính/ Thực thể? 67 2.6 Mô hình quan niệm dữ liệu bài toán bán hàng 69 3. Mô hình tổ chức dữ liệu (logic) 77 3.1 Bảy bước chuyển đổi sang mô hình quan hệ (ở mức logic) 78 3.1.2 Các tình huống của b1. 78 3.1.3 Một số điều cần lưu ý ở bước 3 + bước 4 81 3.2 Tối ưu hóa mô hình tổ chức dữ liệu: 83 3.2.1 Việc thêm/bớt các bảng 83 3.2.2 Việc thêm/bớt các thuộc tính 84
  7. 3.3 Mô tả những ràng buộc toàn vẹn ở mức thiết kế dữ liệu (tổ chức/logic): 85 3.4 Bảng tầm ảnh hưởng 85 3.5 Mô hình quan hệ dữ liệu của bài toán quản lý mua bán hàng hóa: 86 4. Mô hình vật lý (cài đặt vật lý) 92 4.1 Tạo cơ sở dữ liệu 93 4.2 Tạo các bảng dữ liệu 94 4.3 Tạo database diagram 95 4.4 Tạo các Triggers 96 CHƯƠNG IV: PHÂN TÍCH THIẾT KẾ THÀNH PHẦN XỬ LÝ CỦA HỆ THỐNG THÔNG TIN 98 1 Dẫn nhập: 98 2. Mô hình hóa thành phần xử lý: 99 3. Biểu đồ phân cấp chức năng (Functional Hierachical Decomposition Diagram - FHD) 100 3.1 Thành phần của biểu đồ bao gồm: 100 3.2 Đặc điểm của biểu đồ phân cấp chức năng FHD: 101 3.3 Biểu đồ FHD của hệ thống quản lý mua bán hàng hóa 102 4. Phương pháp mô hình dòng dữ liệu: (DFD-Data Flow Diagram) 103 4.1 Đặc điểm: 103 4.2 Một số khái niệm cơ bản: 104 4.2.1 Ô xử lý: 104 4.2.2 Dòng dữ liệu 104 4.2.3 Đầu cuối (Source/Destination) 105 4.2.4 Kho dữ liệu 106 4.2.5 Tác nhân ngoài 106 4.2.6 Tác nhân trong 107 4.3 Các cấp của sơ đồ dòng dữ liệu 108 4.3.1 Cấp 0: Cấp thấp nhất 108 4.3.2 Các cấp cao hơn: 109
  8. 4.3.3 Một số hướng dẫn khi phân cấp sơ đồ dòng dữ liệu 111 4.4 Từ điển dữ liệu 112 4.4.2 Tính cần thiết: 112 4.4.3 Nội dung từ điển dữ liệu: 113 4.4.4 Kiểm tra dữ liệu cấu trúc: 115 4.5 Công cụ đặc tả ô xử lý: 116 4.6 Một số chú ý khi xây dựng sơ đồ dòng dữ liệu DFD117 5. Phương pháp Merise: 118 5.1 Một số khái niệm cơ bản trong phương pháp mô hình hóa Merise: 118 5.1.1 Hệ thống-quy tắc quản lý: 118 5.1.2 Biến cố - kết quả (Event - Result) 119 5.1.3 Sự đồng bộ hóa (Synchronous) 121 5.1.4 Ðiều kiện phát sinh kết quả 122 5.1.5 Quy chế của các biến cố đối với một quy tắc quản lý 123 5.1.6 Một số tình huống cần lưu ý khi xây dựng mô hình quan niệm cho xử lý 124 5.2 Phương pháp xây dựng mô hình quan niệm xử lý (tựa Merise) 128 5.2.1 Xây dựng sơ đồ thông lượng thông tin 129 5.2.2 Xây dựng sơ đồ các biến cố 129 5.2.3 Xây dựng sơ đồ quan niệm cho xử lý 130 5.3 Thiết kế thành phần xử lý ở mức tổ chức/logic 131 5.3.1 Các khái niệm 131 5.3.2 Cách trình bày mô hình tổ chức xử lý tựa Merise 134 CHƯƠNG V 135 THIẾT KẾ THÀNH PHẦN GIAO DIỆN CỦA HỆ THỐNG THÔNG TIN 135 1. Dẫn nhập: 135 2. Mục đích vai trò của việc thiết kế giao diện: 136 3. Chất lượng của giao diện 137
  9. 4. Các nội dung thiết kế giao diện: 139 4.1 Thiết kế màn hình chính (main window) 139 4.2 Thiết kế hệ thống thực đơn (Menu) 141 4.3 Thiết kế hệ thống thanh công cụ (Toolbars) 142 4.4 Thiết kế các màn hình nhập liệu 142 4.5 Thiết kế các hộp hội thoại 145 4.6 Thiết kế các màn hình thông báo 146 4.7 Thiết kế các báo biểu, thống kê 147 PHỤ LỤC A: BÀI TẬP PHÂN TÍCH THIẾT KẾT HTTT 148 BÀI TẬP VỀ ERD 148 BÀI TẬP VỀ DFD 156 PHỤ LỤC B: MỘT SỐ ĐỀ BÀI TẬP LỚN 178 Tài liệu tham khảo 213
  10. Chương I: TỔNG QUAN VỀ HỆ THỐNG THÔNG TIN. 1. Hệ thống (System) 1.1 Khái niệm hệ thống: Hệ thống là tập hợp các yếu tố, đơn vị cùng loại hoặc cùng chức năng có quan hệ hoặc liên hệ với nhau chặt chẽ làm thành một thể thống nhất. Hay hệ thống là tập hợp những tư tưởng những nguyên tắc, quy tắc liên kết với nhau một cách logic làm thành một thể thống nhất. Vd: Hệ thống tư tưởng, hệ thống các quy tắc ngữ pháp, hệ thống đường sắt, hệ thống tín hiệu giao thông, Trong một hệ thống, mỗi một thành phần có thể có những chức năng khác nhau nhưng khi kết hợp lại chúng chúng có những chức năng đặc biệt. Thí dụ: tất cả thứ như: khung xe, bánh xe, phụ tùng, kiếng dây điện, bulông, nhãn hiệu, , mỗi thứ có một chức năng riêng, nhưng nếu chúng được lắp ráp một cách hợp lý tạo thành một chiếc ôtô thì chúng có khả năng di chuyển nhanh, chuyên chở, Giá trị của toàn bộ hệ thống hơn hẵn giá trị của tất cả tạo nên nó cộng lại. 1.2 Cấu tạo của một hệ thống Một hệ thống có thể bao gồm nhiều bộ phận, thành phần mà ta thường gọi là hệ thống con (subsystems). Mỗi một hệ thống con đảm nhận một số tác vụ riêng biệt nào đó trong hệ thống lớn mà nó là một thành phần. Thí dụ: hệ thống thông tin bao gồm mạng truyền thông, hệ thống điện thọai, các máy tính và những con người thao tác chúng. Một số khái niệm cơ bản liên quan đến hệ thống: Môi trường là những con người, phương tiện, quy luật, chính sách bao quanh hệ thống. Một hệ thống không thể họat động
  11. độc lập, cho nên tìm hiểu một hệ thống không thể không quan tâm tới môi trường bao quanh hệ thống đó. Giới hạn (boundaries) là chu vi hay đường ranh giới giữa một hệ thống và môi trường bên ngoài. Nó cách biệt giữa các phần tử tạo nên hệ thống và thế giới bên ngoài. Trong một số trường hợp biên của nó dễ xác định, nhưng cũng có những hệ thống mà biên không rõ ràng. Ðầu vào (inputs) của một hệ thống là các đối tượng từ môi trường bên ngoài tham gia vào hệ thống. Hệ thống tác động lên chúng. biến đổi chúng tạo thành các kết quả đầu ra. Không có đầu vào hệ thống không thể tạo được kết quả đầu ra. Thành phần xử lý (processing) của một hệ thống có chức năng biến đổi từ các đối tượng đầu vào thành kết quả đầu ra. Ðầu ra (outputs) là sản phẩm, là kết quả của xử lý. Thí dụ: Một nhà máy nhận các nguồn như: nguyên liệu, nhiên liệu, sức lao động theo những quy trình hợp lý để tạo ra các sản phẩm. Một trường học nhận các thí sinh đạt tiêu chuẩn sau kỳ tuyển sinh, qua quá trình đào tạo thông qua sự giảng dạy của các giáo viên, giáo trình, các phương tiện nghiên cứu, cho ra trường những học viên tốt nghiệp.
  12. 1.3 Các bộ phận của một hệ thống Môi truờng Bộ phận QĐ Bộ phận quản lý Bộ phận tác vụ 1.3.1 Bộ phận tác vụ: Thường gồm nhiều bộ xử lý sơ cấp hơn, nhận các luồng thông tin từ thế giới bên ngoài, tác động lên chúng hoặc làm việc với chúng. Bộ phận tác vụ là một hệ thống xác định, nghĩa là các bộ xử lý cấu tạo nên nó sử dụng các quy tắc ứng xử đã được cố định do bộ phận quyết định, sao cho các dữ liệu nhập giống nhau sinh ra cùng dữ liệu xuất. 1.3.2 Bộ phận quản lý: Bộ phận quản lý của một hệ thống là một tập hợp có tổ chức của các phương tiện thông tin, nhằm mục đích cung cấp một sự biểu diễn cho hoạt động của tổ chức đó. Nó có các chức năng: - Thu thập thông tin đến (từ Bộ phận quyết định, Bộ phận tác vụ, môi trường bên ngoài).
  13. - Lưu trữ các thông tin này hoặc lưu các kết quả xử lý của chúng. - Xử lý theo yêu cầu của bộ phận tác vụ và bộ phận quyết định Nó có hai bộ phận con: - Bộ phận ghi nhớ, lưu trữ thông tin. - Bộ phận xử lý thông tin. 1.3.3 Bộ phận quyết định: Có chức năng đưa ra những quyết định mục tiêu hoạt động, sự tồn tại và phát triển của tổ chức. Những quyết định thường dựa vào sự biểu diễn thông tin đã dùng để lấy quyết định, nhưng không thể đoán trước được. 2. Thông tin (Information) 2.1 Khái niệm thông tin Thông tin là một hay tập hợp những phần tử mà ta thường gọi là các tín hiệu phản ánh ý nghĩa về một đối tượng, một hiện tượng hay một quá trình nào đó của sự vật thông qua quá trình nhận thức. Tín hiệu được biểu hiện dưới nhiều dạng khác nhau: ngôn ngữ (tiếng nói, văn bản chữ viết, động tác), hình ảnh, âm thanh, mùi vị được nhận biết thông qua các cơ quan cảm giác và quá trình nhận thức. Cần chú ý là cùng một (hoặc một tập hợp) tín hiệu nhưng tùy những ngữ cảnh khác nhau thể hiện những thông tin khác nhau và cùng một thông tin cũng có thể biểu diễn bằng những dạng tín hiệu khác nhau. Một tổ chức có thể được nhìn nhận, xem xét dưới những góc độ khác nhau, cho nên có nhiều dạng thông tin khác nhau.
  14. Tập hợp tất cả những thông tin về một tổ chức cho ta tiếp cận sự hiểu biết về tổ chức đó. Trong tin học, thông tin là sự tinh lọc từ việc xử lý dữ liệu. Chính vì vậy mà hai thành phần quan trọng của hệ thống thông tin là thành phần dữ liệu và thành phần xử lý. 2.2 Tính chất thông tin Hai tính chất chủ yếu là giá thành (cost) và giá trị (value). Giá thành và giá trị của một thông tin là giá thành và giá trị của các phần tử khác nhau cấu thành nên thông tin đó. Giá thành của một thông tin là chi phí phải trả vào việc thu thập, lưu trữ, biến đổi và truyền các thông tin cơ sở cấu thành nên thông tin đó. Ví dụ: Chi phí phải trả cho việc điều tra dân số, đo đạc địa hình hành chánh, lưu trữ, và xử lý để có thông tin về mật độ dân số trên từng đơn vị diện tích hay đơn vị hành chánh. Giá trị phụ thuộc vào: - Bản chất thông tin. - Tính trung thực. - Thời điểm. - Mức độ hiếm hoi. - Giá thành. - Sự biểu diễn thông tin. - Chủ thể sử dụng thông tin. Ta thấy, giá trị thông tin được xác định bởi cái mà nó sẽ phục vụ cho. Như vậy, thông tin chỉ có giá trị nếu nó đáp ứng được một nhu cầu nào đó. Nếu không khai thác được, nó sẽ trở thành vô ích.
  15. 3 Hệ thống thông tin là gì? 3.1 Định nghĩa: HTTT là một hệ thống được tổ chức thống nhất từ trên xuống dưới, có chức năng xử lý, phân tích, tổng hợp các thông tin giúp các “nhà quản lý” quản lý tốt cơ sở của mình, và trợ giúp ra quyết định hoạt động kinh doanh. Một hệ thống quản lý được phân thành nhiều cấp từ trên xuống dưới và chuyển từ dưới lên trên. 3.2 Những thành phần cơ bản của một HTTT - Con người - Dữ liệu - Thủ tục xử lý 3.3 Các loại HTTT Hổ trợ ra quyết định dài hạn (chiến lược) HTTT- Phân tích, lập kế HTQĐ hoạch kinh doanh (trung hạn) (chiến thuật) HTTT-Qu ản lý HTTT-tác vụ Chúng ta có thể phân loại HTTT tùy thuộc vào nhiều tiêu chí phân loại khác nhau. Chẳng hạn chúng ta có thể phân loại các ứng dụng HTTT theo qui mô triển khai như sau:
  16. Qui mô Nhân sự Thời gian thực hiện Nhỏ 1000 người > 5 năm 3.4 Nhiệm vụ và vai trò của một HTTT Chức năng chính của một HTTT là xử lý thông tin. Quá trình xử lý thông tin giống như một hộp đen gồm bộ xử lý, thông tin đầu vào (input), thông tin đầu ra (output) và thông tin phản hồi của hệ thống. Hình 1.1 Mô hình xử lý thông tin của hệ thống Input Output Hộp đen (Black box) Phản hồi (feed back) 3.4.1. Nhiệm vụ: + Đối ngoại: Hệ thống thông tin thu nhận thông tin từ môi trường ngoài, đưa thông tin ra ngoài. Thí dụ như thông tin về giá cả, thị trường,. sức lao động, nhu cầu hàng hóa, v.v
  17. + Đối nội: HTTT là cầu nối liên lạc giữa các bộ phận của một hệ kinh doanh. Về mặt đối nội HTTT hổ trợ cho những hệ tác nghiệp, ra quyết định các thông tin hồm hai loại nhằm: phản ánh tình trạng nội bộ của doanh nghiệp, tổ chức trong hệ thống và tình trạng hoạt động kinh doanh của hệ thống. 3.4.2 Vai trò HTTT đóng vai trò trung gian giữa môi trường và hệ thống tổ chức, giữa hệ thống con quyết định và hệ thống con tác nghiệp. 4. Không gian biểu diễn một hệ thống thông tin Không gian biểu diễn một HTTT là một không gian ba chiều Chiều biểu diễn các mức nhận thức thuộc một HTTT. QN: Mức quan niệm Logic: Mức logic VL: Mức vật lý Chiều biểu diễn các thành phần thuộc một HTTT. DL: Thành phần dữ liệu. XL: Thành phần xử lý. CN: Thành phần con người. CPU: Thành phần CPU (máy tính). Thành phần truyền thông. Chiều thể hiện các bước phát triển một HTTT. Bước lập kế hoạch Bước nghiên cứu khả thi Bước khai thác 1 HTTT
  18. VL Các mức nhận thức thuộc một HTTT Logic QN DL XL CN CPU Truyền thông Các bước phát triển Các thành phần một HTTT Kế hoạch thuộc một Nghiên cứu khả thi Khai thác 1 HTTT 4.1. Không gian 3 mức nhận thức 4.1.1. Mức quan niệm: - Thường trả lời câu hỏi “cái gì?” - Ngôn ngữ thể hiện ở mức quan niệm là ngôn ngữ phi tin học. 4.1.2. Mức logic - Thường trả lời câu hỏi “Ai?, Ở đâu?, Bao giờ?” 4.1.3. Mức vật lý - Thường trả lời câu hỏi như thế nào
  19. - Gắn liền với thiết bị, phần mềm. - Gắn liền với kiến trúc tin học + kiến trúc client-server. + kiến trúc phân tán. + kiến trúc tổng hợp (lai). - Ngôn ngữ thể hiện mức vật lý là ngôn ngữ tin học. 4.2. Không gian các thành phần thuộc một HTTT 4.2.1 Dữ liệu: Là khía cạnh tĩnh của một HTTT Tổ chức Môi trường dữ liệu nội bộ dữ liệu vào dữ liệu ra Dữ liệu trong HTTT gồm có: dữ liệu đầu vào, dữ liệu đầu ra, dữ liệu nội bộ. Dữ liệu là khía cạnh tĩnh trong một hệ thống thông tin. 4.2.2. Xử lý: Xử lý là khía cạnh động của một HTTT. Xử lý quyết định cách thức thông tin được tạo ra, được biến đổi hay bị hủy bỏ. 4.2.3. Những con người: Bao gồm tất cả những người sẽ can thiệp trực tiếp hay gián tiếp vào HTTT. 4.2.4. Bộ xử lý: Thủ công: Những xử lý bằng tay, bằng đầu. Máy: những xử lý bằng máy, đây là thành phần chính của HTTT tin hóa. Sau này khi phân tích thiết kế HTTT những người phân tích thiết kế sẽ quyết định xử lý nào là thủ công và xử lý nào sẽ thực
  20. hiện bằng máy và quyết định tạo ra các bộ xử lý thủ công (đào tạo các con người xử lý) và tạo ra các bộ xử lý bằng máy (cài đặt các thủ tục xử lý). 4.2.5. Thành phần truyền thông Thành phần truyền thông quyết định cách thức những bộ xử lý trong HTTT và những con người liên quan đến HTTT trao đổi thông tin với nhau. Tùy thuộc vào qui mô của HTTT mà thành phần truyền thông có thể là máy đơn 1 CPU, mạng cục bộ (LAN), mạnh diện rộng (WAN) hay mạng toàn cầu Internet. 4.3. Không gian về các bước phát triển của một HTTT Lên kế hoạch thực t hiện HTTT mới từ khi Khai tử HTTT cũ còn khai Thích ứng với nhu cầu mới thác nhưng Khai thác, Bảo trì đã lạc hậu Khai thác chính thức & bảo trì Khai thác thử nghiệm và chỉnh sửa. Lập trình và thử nghiệm Thực hiện/ Cài đặt Chu trình Thiết kế G.Diện sống của một HTTT Thiết kế X.Lý Thiết kế Thiết kế D.Liệu Điều kiện sách/ sách hợp đồng trách nhiệm Nghiên cứu khả thi Phân tích Khảo sát hiện trạng Kế hoạch hoá
  21. 5. Khảo sát các vấn đề qua từng cặp không gian: 5.1. Không gian “các mức nhận thức” – không gian “các thành phần” Mức nhận thức Vật lý - Cấu trúc - Hệ thống - Lập - Cấu hình - Cấu hình vật lý phần mềm trình viên cụ thể, mạng cụ CSDL (hệ (thiết kế - Chuyên hiệu, thể (giao DBMS) lập trình) viên model, thức, ) HTTT Tổ - Mô hình - Sơ đồ tổ - Chuyên - Số - Chủng chức Quan hệ. chức xử lý viên Servers, loại mạng Phân bổ (Thủ HTTT công suất (qui mô, dữ liệu công, máy (phân - Số tính năng, cho các tính) tích + Client, kiến trúc, bộ xử lý thiết kế) công suất ) (cách - Thiết bị nhìn ngoại vị, view). Quan - Mô hình - Sơ đồ - Người niệm quan quan niệm tổ chức niệm DL xử lý - Người (mô hình (DFD, SD thực thể Merise) - Chuyên kết hợp, viên thực thể HTTT kết hợp mở rộng, mô hình đối ượng)
  22. Dữ liệu Xử lý Con Bộ xử lý Truyền người thông 5.2. Không gian “các thành phần” – không gian “các bước phát triển” Các thành phần HTTT Truyền thông Bộ xử lý Con người Xử lý Dữ Các b ước phát triển. Liệu KHH KSHTNCKT ĐKS TKế Lập Thử trình nghiệm 5.3. Không gian “mức nhận thức” – không gian “các bước phát triển” Mức nhận thức Vật lý Tổ chức Các bước phát triển.
  23. Quan niệm KHH KSHT NCKT ĐKS TKế Lập Thử trình nghiệm Mức quan niệm: bao gồm những công việc của giai đoạn phân tích và một phần nào đó công việc của giai đoạn thiết kế. Mức tổ chức: bao gồm những công việc còn lại của giai đoạn thiết kế và một phần công việc của gia đoạn lập trình Mức vật lý: bao gồm những công việc của giai đoạn lập trình, kiểm thử, khai thác thử nghiệm & sửa chữa mức vật lý. 6. Tiếp cận xây dựng HTTT Quá trình tin học hóa hay xây dựng một HTTT hoàn toàn có thể xem như là quá trình triển khai thực hiện một sản phẩm phần mềm ứng dụng trong một lĩnh vực đặc biệt. Hiện nay những phương pháp tiếp cận xây dựng một hệ thống thông tin hay một phần mềm có thể phân vào 2 khuynh hướng tiếp cận chính như sau: Tiếp cận hướng chức năng. Tiếp cận hướng đối tượng. Trong khuôn khổ giáo trình này, với mục tiêu giúp các sinh viên bước đầu làm quen, cũng như trang bị những kiến thức hết sức cơ bản liên quan đến quá trình triển khai và xây dựng một HTTT, chúng tôi đã quyết định chọn giới thiệu phương pháp tiếp cận theo hướng chức năng trong việc triển khai xây dựng một HTTT. 6.1 Tiếp cận hướng chức năng: Một trong những mô hình được dùng khá phổ biến khi tiếp cận theo hướng chức năng là mô hình thác nước (water fall).
  24. 6.1.1 Mô hình thác nước Phân tích yêu cầu Khảo sát dữ liệu, xử lý dữ liệu, xử lý, Phân tích giao diện dữ liệu, xử Thiết kế lý, giao diện Cài đặt, kiểm thử Bảo trì Mô hình thác nước và các bước phát triển của HTTT Mô hình thác nước Các bước phát triển của 1 HTT Giai đoạn khảo sát Kế hoạch hóa, khảo sát hiện trạng, nghiên cứu khả thi, điều kiện sách. Giai đoạn phân tích Phân tích, thiết kế dữ liệu & xử lý ở mức quan niệm Giai đoạn thiết kế Phân tích, thiết kế dự liệu & xử lý ở mức tổ chức/logic. Thiết
  25. kế giao diện. Giai đoạn cài đặt, thử nghiệm Lập trình và thử nghiệm, khai thác thử nghiệm và chỉnh sửa. Triển khai Chuyển giao, khai thác chính thức & bảo trì. 6.1.1.2 Giai đoạn khảo sát: - Nội dung của giai đoạn khảo sát là tìm hiểu thực tế, nắm bắt những yêu cầu của người sử dụng và lập kế hoạch triển khai. - Đối tượng tham gia: o Những người chịu trách nhiệm triển khai HTTT (phía khách hàng). o Nhóm quản lý dự án (phía công ty phát triển) o Nhân viên nghiệp vụ (người sử dụng). o Chuyên viên tin học (người khảo sát) 6.1.1.3 Giai đoạn phân tích: - Nội dung của giai đoạn phân tích là mô tả lại thực tế thuộc phạm vi ứng dụng HTTT, bao gồm thành phần dữ liệu và thành phần xử lý, việc mô hình hóa các thành phần dữ liệu và xử lý trong giai đoạn này chỉ ở mức quan niệm. - Giai đoạn phân tích phải độc lập với môi trường cài đặt ứng dụng HTTT. - Đối tượng tham gia: o Nhân viên nghiệp vụ (người sử dụng) o Chuyên viên tin học (chuyên viên phân tích, thiết kế) o Nhóm quản lý dự án (tổ chức, kế hoạch hóa, ) 6.1.1.4 Giai đoạn thiết kế:
  26. - Nội dung của giai đoạn thiết kế là mô hình hóa thành phần dữ liệu và xử lý của HTTT ở mức tổ chức logic. Thiết kế thành phần giao diện của HTTT. - Giai đoạn thiết kế liên quan đến việc sử dụng một số công cụ tin học để hỗ trợ cho chuyên viên tin học trong quá trình thiết kế những thành phần của HTTT. - Đối tượng tham gia: o Nhóm quản lý dự án o Chuyên viên tin học (chuyên viên phân tích, thiết kế) 6.1.1.5 Giai đoạn cài đặt, thử nghiệm: - Nội dung của giai đoạn cài đặt, thử nghiệm: Dùng công cụ và ngôn ngữ lập trình để hiện thực, kiểm tra những chức năng, phân hệ, sự kết hợp của những phân hệ khác nhau, cũng như tổng thể cả hệ thống thông tin đã được đưa ra trong giai đoạn phân tích thiết kế. - Đối tượng tham gia: o Nhóm quản lý dự án o Chuyên viên tin học (Lập trình viên, nhân viên kiểm tra chương trình, ) 6.1.1.6 Giai đoạn khai thác, bảo trì: - Nội dung của giai đoạn khai thác, bảo trì: Nhóm quản lý dự án phối hợp với người khai thác để đảm bảo duy trì hoạt động của hệ thống thông tin tin học hóa. Trong giai đoạn này hệ thống thông tin tin học hóa được sử dụng chính thức. Người khai thác có nhiệm vụ ghi nhận và phản ánh tất cả những vấn đề khó khăn, trở ngại trong quá trình khai thác về nhóm quản lý dự án để khắc phục kịp thời, bổ sung nâng
  27. cấp (nếu cần thiết) nhằm đảm bảo, duy trì hoạt động ổn định của hệ thống. - Đối tượng tham gia: o Nhóm quản lý dự án. o Những người khai thác. o Chuyên viên tin học (Lập trình viên, chuyên viên phân tích, thiết kế, nhân viên kiểm tra, ). Để tìm hiểu rõ hơn về mô hình thác nước các bạn có thể tham khảo thêm trong những giáo trình nhập môn Công nghệ Phần mềm. Trong khuôn khổ giáo trình phân tích thiết kế HTTT này chúng tôi đi sâu trình bày những phương pháp mô hình hóa các thành phần của HTTT (dữ liệu, xử lý, ) ở từng mức nhận thức (quan niệm, tổ chức, vật lý). 6.2 Tiếp cận hướng đối tượng Cách tiếp cận phân tích thiết kế hệ thống thông tin hướng đôi tượng được hình thành giữa thập niên 80 dựa trên ý tưởng lập trình hướng đối tượng. Phương pháp này đã phát triển, hoàn thiện và hiện nay rất phổ dụng. Nó dựa trên một số khái niệm cơ bản sau: Đối tượng (Object): gồm dữ liệu và thủ tục tác động lên dữ liệu này. Đóng gói (Encapsulation): Không cho phép tác động trực tiếp lên dữ liệu của đối tượng mà phải thông qua các phương pháp trung gian. Lớp (Class): Tập hợp các đối tượng có chung một cấu trúc dữ liệu và cùng một phương pháp. Kế thừa (Heritage): tính chất kế thừa là đặc tính cho phép định nghĩa một lớp mới từ các lớp đã có bằng cách thêm vào đó những dữ liệu mới, các phương pháp mới có thể kế thừa những đặc tính của lớp cũ.
  28. Hiện nay đối với việc phân tích và thiết kết HTTT hướng đối tượng những nhà nghiên cứu và phát triển đã chuẩn hóa và đưa ra được một ngôn ngữ giúp chuẩn hóa quá trình phân tích thiết kế và đặc tả đó là ngôn ngữ UML . UML hiện rất phổ dụng đối với những nhà phân tích thiết kế, những nhà quản trị dự án Công nghệ Thông tin, những chuyên gia phần mềm trong nước và trên thế giới. 7. Các phương pháp mô hình hóa HTTT Phương pháp mô hình hóa HTTT (còn gọi là phương pháp phân tích thiết kế) được định nghĩa là tập hợp các quy tắc và thứ tự khi thực hiện việc chuyển đổi một HTTT sang HTTT tự động hóa. Phương pháp luận được định nghĩa là khoa học về các phương pháp. Phương pháp luận đề án tin học hóa được xem là công việc nghiên cứu các phương pháp phân tích thiết kế để tìm ra các đặc trưng chung, nó giúp chúng ta có thể tiếp cận nhanh chóng với một phương pháp cụ thể trong thực tế. 7.1 Lịch sử phát triển của các phương pháp - Thập niên 60: phương pháp phân tích sơ đẳng với đặc tính chung là chuẩn hóa kỹ thuật của các nhà phát triển ứng dụng. Các phương pháp tiêu biểu: CORIG, PROTEE, ARIANE, - Thập niên 70: phương pháp Descartes với đặc tính chung là phân rã các chức năng của HTTT theo mô hình phân cấp và ứng dụng phương pháp lập trình cấu trúc và đơn thể. Các phương pháp tiêu biểu là HIPO, SADT, SA hay SSA, SA/SD, SSADM, USE, JSD/JSD, AXIAL, MCX, - Thập niên 80: phương pháp hệ thống với đặc tính chung là tiếp cận toàn cục từ mức khái niệm các thành phần dữ liệu, xử lý, biến cố của HTTT và đã có ứng dụng hệ quản trị cơ sở dữ liệu. Các phương pháp tiêu biểu là MERISE, IDA, REMORA, IA, - Thập niên 90: phương pháp hướng đối tượng là sự tổng hợp
  29. của phương pháp Descartes và phương pháp hệ thống. Khái niệm đối tượng là sự gom nhóm gồm cấu trúc dữ liệu và xử lý. Các phương pháp tiêu biểu là OOD, HOOD, BON, và sau đó là OOSA, OOA, OMT, CRC, OOM, 7.2 Đặc điểm của các phương pháp 7.2.1 Phương pháp Descartes: Phương pháp Descartes được xem là phương pháp phân tích thiết kế thế hệ thứ nhất. 7.2.1.1 Ý tưởng: Phân rã các chức năng phân cấp của HTTT. 7.2.1.2 Cách tiếp cận: - Sự rút gọn: chia nhỏ công việc ra để có thể giải quyết được. - Tính rõ ràng: tìm kiếm sự phân rã một chức năng sao cho có thể cô lập các chức năng con phân biệt rõ ràng. - Sự dừng: tìm kiếm một sự phân mịn các chức năng sao cho tương đương với các đơn thể chương trình khi cài đặt. 7.2.1.3 Phân loại: - Thập niên 60: các cẩm nang quản trị các đề án để phân tích các ứng dụng quản lý: CORIG - Thập niên 70: đây là thời điểm bắt đầu của công nghệ phần mềm, bao gồm 2 hướng tiếp cận sau: • Phân tích cấu trúc: phân rã các chức năng của HTTT, bao gồm các phương pháp HIPO, SADT, PSL/PSA, SSA, SASS, • Khái niệm cấu trúc: mô tả cấu trúc các đơn thể, bao gồm các phương pháp PSL/PSA, JSD, LCP, 7.2.1.4 Ưu điểm: - Phương pháp làm việc theo hướng tiếp cận từ trên xuống. - Phân rã sẽ làm giảm sự phức tạp. - Phân cấp để tổ chức việc phân rã. - Dễ chấp nhận cho các hệ thống cấu thành với những thành phần ghép nối. - Cách phân tích thiết kế theo từng bước.
  30. 7.2.1.5 Khuyết điểm: - Thiếu quy luật chính xác trong việc phân rã. - Thiếu các ràng buộc về việc bố trí xử lý theo thời gian. - Phụ thuộc vào cấu trúc của dữ liệu / xử lý. - Khó khăn trong việc tái sử dụng một chức năng mô tả theo yêu cầu ở cấp cao. - Thiếu sự quan tâm đến giao tiếp người – máy. - Khó khăn trong việc phân rã một HTTT cấp toàn xí nghiệp do HTTT này cấu thành bởi quá nhiều hệ thống con với thông tin giao tiếp khá phức tạp. 7.2.2 Phương pháp hệ thống: Phương pháp hệ thống được xem là phương pháp phân tích thiết kế thế hệ thứ hai. 7.2.2.1 Ý tưởng: Phân rã HTTT thành các hệ thống con và nghiên cứu sự liên kết giữa các hệ thống con, sự tương tác động giữa các hệ thống con với nhau và giữa hệ thống con và môi trường bên ngoài HTTT. 7.2.2.2 Cách tiếp cận: - Sự toàn thể: diễn tả sự tương tác giữa các thành phần. - Tính đúng đắn: tìm kiếm sự phân rã mà kết hợp các hệ thống con sao cho tiêu biểu nhất hành vi của hệ thống cấu thành trong môi trường của nó. 7.2.2.3 Phân loại: - Lý thuyết về hệ thống (K. E Bouling 1956, H. A Simon, J.L Le Moige 1973 - 1990). - 2 thành tựu liên quan lĩnh vực hệ cơ sở dữ liệu: • Báo cáo về ANSI / X3 / SPARC 1975 về các khái niệm bên ngoài (externe), quan niệm (conceptual) và bên trong (intern). • Mô hình ngữ nghĩa thứ nhất về dữ liệu ERA (Chen 76). - Một phương pháp mục tiêu của trường phái Pháp: Merise
  31. (1976 – 1979, ). - Nhìn chung các phương pháp thế hệ thứ 2 gồm 2 hướng tiếp cận riêng biệt và đầy đủ cho HTTT như sau: • Mô hình cấu trúc dữ liệu của hệ thống (tiếp cận cơ sở dữ liệu): ƒ Mô hình thực thể kết hợp (ERD) của Chen. ƒ Phân kỳ với các tiếp cận quan hệ nhị phân. ƒ Mô hình ngữ nghĩa. • Mô hình hành vi hệ thống (tiếp cận xử lý): ƒ Tiếp tục với hướng tiếp cận chức năng của các phương pháp Descartes. ƒ Xem xét khi nào và bằng cách nào các đối tượng thay đổi trạng thái, ví dụ như xem xét các biến cố. ƒ 2 trường phái: - Lưỡng phần của dữ liệu và xử lý: MCT, SADT, DFD, - Không phân biệt rõ giữa dữ liệu và xử lý: IDA, Remora, ACM – PCM, CIAM, Dades, 7.2.2.4 Ưu điểm: - Mô hình ERD được sử dụng nhiều nhất, chuyển đổi hoàn toàn sang lược đồ quan hệ. - 2 mảng riêng: cấu trúc dữ liệu + hành vi hệ thống là tiền đề cho hướng đối tượng về sau. - Đã quan tâm đến các thành phần không tin học hóa trong HTTT (MOT Merise, lược đồ bên ngoài, ) 7.2.2.5 Khuyết điểm: - Lưỡng phần dữ liệu và xử lý. - Các chú thích sẽ khó khăn khi trình bày dưới dạng mô hình đồ họa. 7.2.3 Phương pháp lập trình hướng đối tượng: Phương pháp lập trình hướng đối tượng được xem là phương pháp phân tích thiết kế thế hệ thứ 3. 7.2.3.1 Ý tưởng:
  32. Một HTTT là một tập hợp các cấu trúc của các đối tượng liên kết nội. 7.2.3.2 Đặc trưng cơ bản: - Tính bao bọc (encapsulation): quan niệm hóa mối quan hệ khách hàng – nhà cung cấp, cơ bản tuân thủ theo khái niệm hộp đen và xác định rõ ràng ranh giới giữa cái gì và bằng cách nào. - Tính phân loại (classification): tìm kiếm một cấu trúc chung để gom nhóm vào cùng một lớp (class) các đối tượng có cùng cấu trúc và hành vi tương tự. - Tính kết hợp (aggregation): cấu trúc cục bộ và kết hợp các đối tượng. - Tính kế thừa (heritage): tổng quan hóa và chuyên biệt hóa. 7.2.3.3 Phân loại: - Hướng lập trình: từ lập trình đơn thể chuyển sang lập trình hướng đối tượng với lý thuyết cơ bản dựa trên sự trừu tượng hóa kiểu dữ liệu. - Hướng hệ quản trị cơ sở dữ liệu: mô hình ngữ nghĩa chuyển sang cơ sở dữ liệu hướng đối tượng. Có 2 phương pháp sau: • Phương pháp kỹ thuật: hướng công nghệ phần mềm như OOD, HOOD, BON, MECANO, OODA, • Phương pháp toàn cục: hướng nhiều hơn về HTTT như OOA, OOSA, OMT, OOM, 7.2.3.4 Ưu điểm: - Cấu trúc hóa được các dữ liệu phức tạp và sử dụng được các cấu trúc đệ quy. - Xác định được hệ thống các đối tượng qua định danh đối tượng (object identifier). - Tính kế thừa là tiền đề rất tốt cho việc tái sử dụng. 7.2.3.5 Khuyết điểm: - Khá rắc rối trong việc phân biệt mối quan hệ “tham chiếu”
  33. (reference) và “kết hợp” (composite). - Rất khó tìm được mô hình đồ họa thích hợp để biểu diễn một HTTT toàn cục. - Việc xác định một đối tượng khá khó khăn khi phải phân biệt giữa thành phần của một đối tượng được cài đặt, thành phần cấu trúc của một ứng dụng hay là một thành phần đối thoại người – máy. - Chưa xác định rõ vai trò của một đối tượng, ví dụ như cùng một đối tượng khách hàng được nhìn nhận khác nhau giữa bộ phận kế toán và kinh doanh. - Hướng tiếp cận này vẫn chưa chắc chắn và còn đơn giản với cách thực hiện thông thường như sau: • Xác định trước hết các cấu trúc kiểu của lớp đối tượng, sau đó xác định hành vi của kiểu hay ngược lại. • Dùng lược đồ dạng thực thể kết hợp hay mô hình ngữ nghĩa rồi chuyển sang lược đồ hướng đối tượng. - Khó khăn trong việc kết hợp 3 cái nhìn (view) về HTTT: • Cái nhìn cấu trúc: thực thể – quan hệ. • Cái nhìn hành vi: thay đổi trạng thái của đối tượng. • Cái nhìn về chức năng.
  34. CHƯƠNG II: PHÂN TÍCH YÊU CẦU 1. Dẫn nhập Trong khuôn khổ giáo trình này chúng tôi không tập trung đặt nặng đến giai đoạn khảo sát phân tích yêu cầu, bởi vì giai đoạn này không những cần đến các chuyên viên phân tích thiết kế có trình độ cao mà đòi hỏi họ phải có nhiều kinh nhiệm tham gia trong việc phân tích thiết kế các hệ thống thông tin và vốn kiến thức hiểu biết nhất định về hệ thống thông tin đang khảo sát chuẩn bị cho công việc tin học hóa. Vì vậy trong chương này chúng tôi chỉ giới thiệu một số nội dung chính của giai đọan phân tích yêu cầu nhằm giúp các bạn sinh viên có được cái nhìn tổng quan về giai đọan này. Mục tiêu của giai đoạn này: Khảo sát hiện trạng, không phân tích ngay, chỉ ghi nhận. Ví dụ: liên quan đến các nghiệp vụ của một hệ thống ta cần: - Tìm hiểu xem có bao nhiêu nghiệp vụ? - Những nghiệp vụ đó thực hiện như thế nào? - Tần suất nghiệp vụ. - Khối lượng tác vụ/nghiệp vụ. - Quy trình nghiệp vụ. - Hiện trạng các nghiệp vụ đó có vấn đề gì không? Sau khi khảo sát, phân tích yêu cầu của hệ thống kết quả cần đạt được là: - Phải hiểu được các qui trình nghiệp vụ. - Thu thập các yêu cầu trong tương lai. - Chuẩn bị cho việc nghiên cứu khả thi.
  35. 2. Các bước thực hiện phân tích yêu cầu Tiên đoán (khảo sát sơ bộ). Nghiên cứu khảo sát (lên kế hoạch khảo sát chi tiết). Phân tích (có nhận xét của chuyên viên) Kết quả: Hồ sơ phân tích hiện trạng 2.1 Tiên đoán: (sơ bộ) Đối với công việc tiên đoán chuyên viên phân tích cần giải đáp được một số câu hỏi như sau: - Hệ thống thông tin mới bao gồm cái gì?/ Hệ thống thông tin hiện tại đang bao gồm nội dung gì? Và tương lai cần thêm nội dung gì? Những thông tin gì? Lấy ở đâu? Lúc nào? Hiện tại đang ở dưới dạng nào? Ai đang chịu trách nhiệm? Gốc phát sinh thuộc thông tin? Được phát sinh lúc nào?, Kết quả: Những con người/bộ phận -> cần đi để làm việc với họ. Danh sách những tài liệu/ chứng từ cần tìm hiểu. 2.2 Nghiên cứu khả thi: lên kế hoạch khảo sát chi tiết - Khảo sát, xác định nguồn thông tin: nội bộ hay bên ngoài môi trường. - Khảo sát quy trình nghiệp vụ cơ bản Mục đích qui trình? Có bao nhiêu bước? Đi qua đâu (bộ phận nào?) Bởi ai Bao lâu Tần suất? Ai dùng thông tin kết quả? Dùng ntn? - Cuối cùng là đánh giá thuộc từng bộ phận nghiệp vụ liên quan đến công việc của họ. 2.3 Phân tích: (có nhận xét của chuyên viên) - Phân tích hiệu quả và đánh giá tính khả thi của hệ thống:
  36. - Khả thi về mặt kỹ thuật - Khả thi về tác vụ - Khả thi về kinh tế Nói chung chuyên viên phân tích phải đưa ra một số các giải pháp để so sánh, đánh giá và cuối cùng sẽ chọn một giải pháp tối ưu nhất và có thể chấp nhận được. 3. Kỹ thuật thu thập thông tin: Thường để thu thập thông tin chúng ta có thể sử dụng các kỹ thuật bên dưới, hoặc kết hợp một lúc những kỹ thuật này để nâng cao hiệu quả công việc thu thập thông tin. - Phỏng vấn. - Lập bảng câu hỏi (viết). - Nghiên cứu tài liệu. - Quan sát hiện trường. 3.1 Phỏng vấn Một trong những kỹ thuật thu thập thông tin là phỏng vấn, điều tra. Phương thức phỏng vấn sẽ được thực hiện trực tiếp với người tham gia vào hệ thống. + Đối tượng phỏng vấn: Cá nhân. Bộ phận/tổ. + Phương thức phỏng vấn Tự do: hỏi đâu trả lời đó Có hướng dẫn: hướng người được phỏng vấn theo mục tiêu chính, Trước khi phỏng vấn: nhóm phân tích cung cấp cho lãnh đạo cao nhất trong tổ chức danh sách bộ phận, những cá nhân và thời gian sẽ thực hiện phỏng vấn để sắp xếp kế hoạch làm việc. Những thông tin liên quan đến kế hoạch phỏng vấn cần phải được thông báo trước như: - Danh sách người + bộ phận sẽ phỏng vấn
  37. - Lịch làm việc (không được áp đặt cho khách hàng) Xác định trở lại vị trí của những người mà mình phải làm việc trong cơ cấu tổ chức và những nhiệm vụ của họ. Trong khi phỏng vấn: - Tự giới thiệu về mình và nhiệm vụ của mình, cũng như mục tiêu của dự án thông tin. - Kiểm chứng lại đối tượng phỏng vấn. - Thái độ trao đổi: cần tạo sự tin tưởng. - Những câu hỏi thường dùng trong lúc phỏng vấn như:Cái gì? Bao giờ? Cách nào có? - Thông tin thu nhận phải định lượng rõ ràng, tránh những thông tin định tính, chung chung, không rõ ràng. - Khi phỏng vấn nên nói bằng ngôn ngữ nghiệp vụ - Lúc phỏng vấn tuyệt đối không được bằng lòng với những câu trả lời mơ hồ. - Nên có câu hỏi về đánh giá (lời khuyên) đối với qui trình nghiệp vụ. Sau khi phỏng vấn: Tóm tắt, nhắc lại nội dung sau buổi phỏng vấn với mục tiêu để kiểm tra, hệ thống hóa nội dung thu thập được sau buổi phỏng vấn. Nếu cần thiết có thể lập biên bản phỏng vấn. Việc tóm tắt, hệ thống lại nội dung sau buổi phỏng vấn là vấn đề không đơn giản, thường phải có kinh nghiệm mới có thể thực hiện được. 3.2 Lập bảng câu hỏi: Một kỹ thuật thu thập thông tin thứ hai đó là lập bảng câu hỏi. Bảng câu hỏi sẽ được nhóm phân tích chuẩn bị trước, sau khi chuẩn bi xong bảng câu hỏi có thể gởi cho những cá nhân/ bộ phận có liên quan để họ trả lời. Một số yêu cầu đối với bảng câu hỏi: - Nêu rõ mục đích những câu hỏi. - Hướng dẫn điền những câu trả lời. - Thời hạn để trả lời.
  38. - Câu hỏi phải cụ thể. - Hình thức bảng câu hỏi phải tiện dụng cho người chuyên viên sau này. - Chừa đủ chỗ để trả lời - Có chỗ để nhận xét - Có phần nhận xét chung/yêu cầu gì. - Trong bảng câu hỏi cần ghi rõ họ tên/ký tên xác nhận trách nhiệm thông tin của người trả lời. Khi sử dụng bảng câu hỏi cần: thử nghiệm trong đối tượng hẹp, sau đó triển khai ra đối tượng rộng. 3.3 Nghiên cứu tài liệu Một hình thức thu thập thông tin thứ 3 đó là nghiên cứu tài liệu. Khi nghiên cứu tài liệu do khách hàng cung cấp cần lưu ý những vấn đề sau: - Qui định nội bộ (thường tốt trong doanh nghiệp có ISO). - Chủ trương của đơn vị/doanh nghiệp như thế nào? - Những qui định bất thành văn trong đơn vị/doanh nghiệp sử dụng HTTT. 3.4 Quan sát hiện trường Một kỹ thuật thu thập thông tin khác cũng thường được các chuyên gia phân tích sử dụng là quan sát hiện trường bằng cách họ tham gia trực tiếp vào một bước trong qui trình hoặc cả qui trình nghiệp vụ để có thể ghi nhận nắm bắt được những thông tin cần thiết. 4. Các kỹ thuật phân tích Đối với phân tích yêu cầu: đầu tiên phải làm sao có được cái nhìn tổng quan, sau đó đi xuống từng chi tiết. Nhận xét hiện trạng: thuộc về tính chủ quan của người chuyên viên hệ thống thông tin. Các kỹ thuật phân tích có thể dựa trên các công cụ như:
  39. Cây quyết định (giống như user case) Bảng quyết định Sơ đồ lưu chuyển thông tin và chứng từ Sơ đồ tổ chức ⇒ Kết quả cuối cùng của giai đoạn phân tích yêu cầu là bộ hồ sơ phân tích hiện trạng. 5. Hồ sơ phân tích hiện trạng Một bộ hồ sơ phân tích hiện trạng cần có các nội dung sau: - Nhắc lại mục tiêu thuộc dự án hệ thống thông tin. - Liệt kê trình bày danh sách các vấn đề đã nhận diện. - Trình bày các yêu cầu thuộc những người/bộ phận. - Trình bày nhận xét của chuyên viên hệ thống thông tin. Dựa trên nhận xét đó, trình bày đề xuất thuộc chuyên viên HTTT. 6. Ví dụ về giai đoạn phân tích yêu cầu Như chúng ta đã biết kết quả của giai đọan phân tích yêu cầu là một bộ hồ sơ phân tích hiện trạng. Song với tính cách minh họa chúng tôi không đưa tất cả vô đây một bộ hồ sơ phân tích hiện trạng mà thay vào đó chúng tôi sẽ đưa ra một số đặc tả yêu cầu và chúng ta có thể xem đó như là một bộ hồ sơ phân tích hiện trạng rút gọn. Ví dụ được chọn khảo sát ở đây và xuyên suốt trong giáo trình này là bài toán quản lý mua bán hàng hóa. (tham khảo đề bài 6 trong phụ lục A – những đề bài làm thu hoạch). Nội dung đặc tả của ví dụ gồm một số mục sau: 6.1 Quá trình nhập, xuất hàng Nhập hàng & chi tiền: Hàng hóa trang thiết bị, máy móc của công ty được mua từ các nhà cung cấp. Sau đó công ty AZ@ có thể trả chậm thành một hoặc nhiều lần, hoặc đôi khi công ty trả một lần cho nhiều lần mua hàng khác nhau. Liên quan đến công việc nhập hàng và chi trả tiền công ty sử dụng hai mẫu chứng từ là: PHIẾU NHẬP HÀNG và PHIẾU CHI TIỀN.
  40. Xuất hàng & thu tiền: Công ty AZ@ bán hàng theo hình thức bán sỉ và bán lẻ. Khách hàng bán lẻ của công ty phải thanh toán tiền ngay sau khi thực hiện giao dịch, khách hàng bán sỉ có thể thực hiện hình thức thanh toán ngay hay trả chậm nhiều lần sau đó. Khi đến mua hàng, khách hàng sẽ sử dụng mẫu ĐƠN ĐẶT HÀNG đối với trường hợp khách hàng mua sỉ, và trong trường hợp bán lẻ công ty sẽ sử dụng HÓA ĐƠN BÁN LẺ. Sau khi đặt hàng, căn cứ trên đơn đặt hàng công ty sẽ tiến hành chuẩn bị, đóng gói và giao hàng cho khách hàng. Mỗi đơn đặt hàng của khách có thể được giao trong một hay nhiều lần hoặc cũng có thể đôi khi bị hủy do không đáp ứng được yêu cầu của khách hàng hoặc vì một lý do nào khác. Mỗi lần giao hàng cho một đơn đặt hàng nào đó công ty sử dụng một phiếu giao hàng, và trên phiếu giao hàng phải thể hiện đầy đủ một số thông tin quan trọng như: Thông tin về số phiếu giao hàng, ngày giao hàng, khách hàng, thông tin về đơn đặt hàng, thông tin về chi tiết giao hàng, Những vấn đề phát sinh không đúng như đơn đặt hàng đã dự kiến sẽ được công ty thỏa thuận với khách hàng để tìm cách giải quyết. Một số vấn đề phát sinh như: số lượng hàng hóa sẽ giao không đủ theo yêu cầu của đơn đặt hàng, thời gian giao hàng có thể sớm hơn hay trể hơn hơn so với dự kiến, hoặc sau khi thỏa thuận giữa công ty AZ@ với khách hàng hai bên đi đến quyết định là hủy đơn đặt hàng vì không đáp ứng đúng theo yêu cầu của đơn đặt hàng, Mỗi lần giao hàng công ty AZ@ có sử dụng mẫu PHIẾU GIAO HÀNG. Đối với khách hàng bán sỉ (bạn hàng) công ty AZ@ cho phép trả chậm, mỗi lần khách hàng thanh toán công ty AZ@ sẽ lập một PHIẾU THU. Một số biểu mẫu sử dụng trong quá trình nhập, xuất hàng hóa của công ty AZ@ như sau:
  41. PHIẾU NHẬP HÀNG Mã số phiếu nhập: PNH000101122003 Nhà cung cấp: Công ty máy tính Hoàng Long Địa chỉ nhà cung cấp: 01 Tôn Thất Tùng, Quận 1, TPHCM Điện thoại nhà cung cấp: 9317442 Ngày nhập hàng: 01/12/2003. Chi tiết phiếu nhập hàng: STT Mã Tên hàng Đơn Số Đơn Thành hàng vị lượng giá tiền (USD) 1 ECS- Mainboard Cái 10 45 450 845PE- ECS 845 800 PE-800 2 ASUS- Mainboard Cái 10 50 500 P4P800 ASUS -X P4P800-X 3 INTEL CPU Intel Cái 10 100 1000 P4 P4 1.8 1.8GHz GHz 4 INTEL CPU Intel Cái 10 130 1300 P4 P4 2.4 2.4GHz GHz Tổng tiền: 3.250 (USD) = 48.750.000 (VND) Người giao (ký tên) Người nhận (ký tên)
  42. Nguyễn Văn A Nguyễn Văn B PHIẾU CHI TIỀN Mã số phiếu chi: PCT000101122003 Chi cho: Công ty máy tính Hoàng Long Địa chỉ: 01 Tôn Thất Tùng, , Quận 1, TPHCM. Điện thoại: 9317442 Ngày chi tiền: 01/12/2003 Lý do chi tiền: Chi trả tiền nhập hàng. Tổng số tiền chi trả: 20.000.000 (hai mươi triệu đồng chẵn) HÓA ĐƠN BÁN LẺ Mã số hóa đơn: HDBL000110122003 Khách hàng: Huỳnh Ngọc Thành Địa chỉ khách hàng: 11/17 Nguyễn Oanh, Phường 10, Gò Vấp TPHCM Điện thoại khách hàng: 9891093 Ngày bán hàng: 10/12/2003. Chi tiết hóa đơn bán lẻ: STT Mã Tên hàng Đơn Số Đơn giá Thành hàng vị lượng (USD) tiền (USD) 1 ASU Mainboard Cái 1 60 60 S- ASUS P4P8 P4P800-X 00-X 2 INTE CPU Intel Cái 1 110 110 LP4 P4 1.8 GHz 1.8G Hz 3
  43. 4 Tổng tiền: 170 (USD) = 2.550.000 (VND) Người bán hàng (ký tên) Khách hàng (ký tên) ĐƠN ĐẶT HÀNG Mã số đơn đặt hàng: DDH000105122003 Khách hàng: Công ty máy tính Infor World Địa chỉ khách hàng: 197 Nguyễn Thị Minh Khai, Quận 1, TPHCM Điện thoại khách hàng: 8301286 Ngày đặt hàng: 05/12/2003. Ngày giao hàng dự kiến 06/12/2003. Chi tiết đơn đặt hàng: STT Mã Tên hàng Đơn Số Đơn giá Thành hàng vị lượng (USD) tiền (USD) 1 ECS- Mainboard Cái 5 50 250 845P ECS 845 E- PE-800 800 2 ASU Mainboard Cái 5 55 275 S- ASUS P4P8 P4P800-X 00-X Tổng tiền: 525 (USD) = 7.875.000 (VND) Đại diện công ty (ký tên) Người đặt hàng (ký tên)
  44. Nguyễn Văn X Nguyễn Văn Y PHIẾU GIAO HÀNG Mã phiếu giao hàng: PGH000106122003 Khách hàng: Công ty máy tính Infor World Địa chỉ khách hàng: 197 Nguyễn Thị Minh Khai, Quận 1, TPHCM Điện thoại khách hàng: 8301286 Ngày giao hàng dự kiến 06/12/2003. Ngày giao hàng thực tế 06/12/2003. Mã đơn đặt hàng DDH000105122003 Chi tiết phiếu giao hàng: STT Mã Tên hàng Đơn Số Đơn giá Thành hàng vị lượng tiền 1 ECS- Mainboard Cái 5 50 250 845P ECS 845 E- PE-800 800 2 ASU Mainboard Cái 5 55 275 S- ASUS P4P8 P4P800-X 00-X 3 4 Tổng tiền: 525 (USD) = 7.875.000 (VND) Đại diện công ty (ký tên) Người nhận hàng (ký tên) Nguyễn Văn X Nguyễn Văn Y
  45. PHIẾU THU TIỀN Mã số phiếu thu: PTT000106122003 Thu của khách hàng: Công ty máy tính Infor world Địa chỉ: 197 Nguyễn Thị Minh Khai, Quận 1, TPHCM. Điện thoại 8301286 Ngày thu tiền: 06/12/2003 Lý do thu tiền: Thu tiền bán hàng. Tổng số tiền thu: 5.000.000 (năm triệu đồng chẵn) 6.2 Quản lý công nợ khách hàng Một trong những yêu cầu hết sức quan trọng của chương trình quản lý bán hàng là khâu theo dõi quản lý công nợ khách hàng. Đối với công việc quản lý công nợ người sử dụng thường có các yêu cầu sau: - Theo dõi nợ của một khách hàng trong một khoảng thời gian cho trước, thường đơn vị thời gian là tháng hoặc năm. - Tổng hợp công nợ của một số hay tất cả các khách hàng trong khoảng thời gian cho trước (tháng, năm). Để phục vụ cho các yêu cầu theo dõi công nợ như đã đề cập ở trên công ty có các mẫu báo cáo như sau: CHI TIẾT CÔNG NỢ Khách hàng: Công ty máy tính Infor World Địa chỉ khách hàng: 197 Nguyễn Thị Minh Khai, Quận 1, TPHCM Điện thoại khách hàng: 8301286 Kỳ công nợ: Tháng 12/2003 Nợ đầu kỳ: 20.000.000
  46. Phiếu Ngày Số tiền nợ Phiếu thu Ngày Số tiền đã giao hàng (VND) tiền thu(VND) PGH0001 06/12 7.875.000 PTT0001 06/12 5.000.000 06122003 /2003 06122003 /2003 . Tổng 7.875.000 5.000.000 cộng Tổng dư nợ cuối kỳ: 20.000.000+(7.875.000-5.000.000) = 22.875.000 TỔNG HỢP CÔNG NỢ (Kỳ tháng 12/2003) Khách Dư nợ đầu Số phát Số tiền thu Số dư nợ hàng kỳ sinh nợ trong kỳ cuối kỳ trong kỳ Công ty 20.000.000 7.875.000 5.000.000 22.875.000 máy tính Infor World Công ty 10.000.000 5.000.000 3.000.000 12.000.000 X Tổng 30.000.000 12.875.000 8.000.000 34.875.000 cộng
  47. 6.3 Quản lý tồn kho hàng hóa Chi tiết tồn kho hàng hóa: Theo dõi tồn kho của một sản phẩm nào đó theo kỳ thời gian cho trước (tháng, quý, năm). Công ty AZ@ sử dụng mẫu tồn kho sản phẩm như sau: TỒN KHO SẢN PHẨM Mã hàng hóa: ECS-845PE-800 Tên hàng hóa: Mainboard ECS 845 PE-800 Kỳ tồn kho Tháng 12/2003 Số lượng tồn dầu kỳ: 20 Số lượng nhập: Phiếu nhập Ngày Số Đơn Thành lượng giá tiền (USD) (VND) PNH000101122003 01/12/2003 10 45 6.750.000 Tổng cộng 10 45 6.750.000 Số lượng xuất: Phiếu giao hàng, Ngày Số Đơn Thành hóa đơn bán lẻ lượng giá tiền (USD) (VND) PGH000106122003 06/12/2003 5 50 3.750.000 Tổng cộng 5 50 3.750.000 Số lượng tồn cuối kỳ: 25 Người báo cáo (ký tên) Tổng hợp tồn kho hàng hóa: Báo cáo này giúp cho người bán hàng cũng như người quản lý nắm được tình hình số lượng xuất nhập tồn kho của tất cả các hàng hóa của công ty trong kỳ thời cho trước (tháng, quý, năm). Công ty sử dụng mẫu báo cáo tổng hợp xuất nhập tồn kho hàng hóa như sau:
  48. TỔNG HỢP TỒN KHO HÀNG HÓA (Kỳ tháng 12/2003) Mã hàng Tên hàng Số Số Sô Số lượng lượng lượng lượng tồn đầu nhập xuất tồn kỳ cuối kỳ ECS- Mainboard 20 10 5 25 845PE- ECS 845 800 PE-800 ASUS- Mainboard 20 10 6 24 P4P800- ASUS X P4P800-X INTELP4 CPU Intel 20 10 1 29 1.8GHz P4 1.8 GHz INTEL CPU Intel 20 10 0 30 P4 P4 2.4 2.4GHz GHz 6.4 Quản lý doanh số bán hàng Bộ phận bán hàng có nhiệm vụ thống kê báo cáo thường xuyên (định kỳ) về Ban giám đốc tình hình doanh số bán hàng theo mẫu báo cáo như sau: THỐNG KÊ DOANH SỐ BÁN HÀNG Kỳ thống kê: Tháng 12/2003 STT Mã hàng Tên hàng Số Doanh số lượng bán (VND) bán (cái) 1 ECS- Mainboard ECS 5 3.750.000 845PE-800 845 PE-800
  49. 2 ASUS- Mainboard 6 5.025.000 P4P800-X ASUS P4P800- X 3 INTELP4 CPU Intel P4 1 1.650.000 1.8GHz 1.8 GHz 4 INTEL P4 CPU Intel P4 00 2.4GHz 2.4 GHz Tổng cộng 12 10.425.000
  50. CHƯƠNG III: PHÂN TÍCH THIẾT KẾ THÀNH PHẦN DỮ LIỆU CỦA HỆ THỐNG THÔNG TIN 1. Dẫn nhập Mục đích của phân tích thiết kế thành phần dữ liệu của hệ thống là lập mô hình quan niệm (giai đoạn phân tích), lập mô hình tổ chức dữ liệu (giai đoạn thiết kế), làm căn cứ, cơ sở cho việc cài đặt CSDL của hệ thống sau này. Việc phân tích thiết kế hệ thống về dữ liệu được tiến hành một cách độc lập với việc phân tích thiết kế hệ thống về xử lý vì ta muốn tập trung nghiên cứu cấu trúc tĩnh của dữ liệu (không phụ thuộc vào các xử lý, không phụ thuộc vào thời gian). Thế giới quan HTTT cần tin học hóa Thành phần dữ liệu Cài đặt thành phần dữ liệu dựa vào các mô hình Tìm hiểu và mô đã thiết kế hình hóa Các mô hình thiết kế Nhóm chuyên gia Nhóm lập trình phân tích thiết kế Hệ quản trị CSDL CSDL của HTTT cần tin học hóa
  51. Mục tiêu của việc xây dựng các mô hình quan niệm, logic của dữ liệu là nhằm tìm hiểu nắm vững và mô tả toàn diện các dữ liệu cần phải tổ chức lưu trữ và xử lý trong ứng dụng, chuẩn bị cho công việc cài đặt thành phần dữ liệu của HTTT vào một hệ quản trị cơ sở dữ liệu. Một mô hình dữ liệu là một tập hợp các khái niệm được dùng để diễn tả tập các đối tượng dữ liệu cũng như những mối quan hệ giữa chúng trong hệ thống thông tin cần tin học hóa. Nó được xem là cầu nối giữa thế giới thực với mô hình cơ sở dữ liệu bên trong máy tính. Khi một mô hình dữ liệu mô tả một tập hợp các khái niệm từ thế giới thực, ta gọi đó là mô hình quan niệm dữ liệu. Các khái niệm trong một mô hình dữ liệu được xây dựng bởi cơ chế trừu tượng hóa và mô tả bằng ngôn ngữ hay biểu diễn đồ họa. Thông thường có 2 loại mô hình dữ liệu: ¾ Mô hình quan niệm: là công cụ biểu diễn thế giới thực trong sự trừu tượng hóa ở mức cao. Dùng mô hình quan niệm, ta có thể xây dựng một mô tả của bài toán trong thế giới thực dễ hiểu và rõ ràng. Mô hình quan niệm dữ liệu thường được sử dụng là mô hình thực thể kết hợp. ¾ Mô hình luận lý (logic): cho phép mô tả dữ liệu cụ thể để có thể xử lý được bằng máy tính. Mô hình luận lý có thể xem là bước chuẩn bị trung gian trước khi thực hiện cài đặt thành phần dữ liệu của hệ thống lên máy tính. Mô hình luận lý bao gồm các mô hình quan hệ, mô hình phân cấp và mô hình mạng. Những mô hình này dễ dàng ánh xạ sang cấu trúc vật lý của CSDL.
  52. Thành phần dữ liệu của HTTT 2. Tần suất biến động không cao HTTT Môi trường dữ liệu nội bộ 1. dữ liệu vào 3. dữ liệu ra Tần suất biến động cao 2. Mô hình dữ liệu ở mức quan niệm Giai đoạn phân tích thành phần dữ liệu ở mức quan niệm nhằm tìm hiểu, nắm vững và tìm phương pháp để mô hình hóa những đối tượng dữ liệu của HTTT ở mức khái niệm. Một trong những mô hình rất nổi tiếng thường được sử dụng trong giai đọan này là: Mô hình thực thể - kết hợp. 2.1 Mô hình thực thể - kết hợp nguyên thủy Mô hình dữ liệu thực thể - kết hợp (Entity - Relationship Model) do P.P.Chen đề xuất vào năm 1976. Một số khái niệm cơ bản trong mô hình thực thể kết hợp (E-R): - Thực thể - Thuộc tính - Loại thực thể - Mối kết hợp - Thực thể phụ thuộc (*)
  53. 2.1.1 Thực thể: Là thể hiện của mọi đối tượng mà nhận diện được từ tổ chức. (giống như bộ trong quan hệ) Ví dụ: nhân viên A, mặt hàng B, đơn đặt hàng C, Chúng ta có thể liệt kê một số thực thể trong ví dụ quản lý bán hàng (đề bài 6 – phụ lục A) như sau: Khách hàng “Công ty máy tính Infor World” Phiếu nhập hàng có mã số phiếu PNH0001011220003 Phiếu chi tiền có mã số PCT000101122003 Đơn đặt hàng có mã số DDH000105122003 Hóa đơn bán lẻ có mã số HDBL000110122003 Thuộc tính: Mỗi thực thể bao gồm một số thuộc tính gắn với nó. Mỗi thuộc tính thể hiện tính chất, đặc trưng của thực thể. Ví dụ: Thực thể “Khách hàng công ty máy tính Infor World” trong bài toán quản lý bán hàng có thể bao gồm các thuộc tính như sau: Mã số khách hàng: KH_InforWorld. Tên khách hàng: Công ty máy tính Infor World. Địa chỉ: 197 Nguyễn Thị Minh Khai, Q1, TPHCM. Điện thoại: 8301286 Thực thể “phiếu nhập hàng có mã số PNH000101122003“ trong bài toán quản lý mua bán hàng hóa có thể bao gồm các thuộc tính như sau: Mã số phiếu nhập: PNH000101122003 Ngày nhập hàng: 01/12/2003 - Mỗi thuộc tính có tên, kiểu dữ liệu, miền giá trị và bản số (cardinal).
  54. - Tên của thuộc tính nên đặt như thế nào cho gợi nhớ và mang ý nghĩa. - Kiểu dữ liệu của thuộc tính thường là: char (kiểu ký tự), numeric (kiểu số), boolean (kiểu luận lý) , date (kiểu ngày tháng), - Miền giá trị của thuộc tính tùy thuộc vào kiểu dữ liệu của thuộc tính và do người dùng định nghĩa. - Bản số của thuộc tính cho chúng ta biết số lượng giá trị mà một thuộc tính có thể chứa tại một thời điểm nào đó. Bản số của thuộc tính thường có những dạng như sau: - [1-1]: Thuộc tính luôn chứa 1 giá trị tại một thời điểm (Không được null - rỗng). - [1-n]: Thuộc tính có thể chứa một hay nhiều giá trị tại một thời điểm (Không được chứa giá trị null - rỗng). - [0-1]: Thuộc tính có thể chứa giá trị null (rỗng) hay chỉ chứa 1 giá trị tại một thời điểm. - [0-n]: Thuộc tính có thể chứa giá trị null (rỗng) hay 1 hoặc nhiều giá trị tại một thời điểm. Ví dụ: Bản số của một số thuộc tính của thực thể khách hàng trong bài toán quản lý mua bán hàng. Thuộc tính Kiểu dữ Miền giá Bản Diễn giải liệu trị số Mã số Char 20 [1-1] Mỗi khách hàng khách phải có một mã hàng số và chỉ một mà thôi, mã số khách hàng là một chuỗi tối đa 20 ký tự Tên khách Char 30 ký tự [1-1] Mỗi khách hàng hàng có một tên duy nhất là một chuỗi
  55. tối đa 30 ký tự. Ngày sinh Date Phụ [1-1] Mỗi khách hàng thuộc có một ngày sinh miền giá và chỉ một mà trị của thôi. Kiểu dữ liệu kiểu Date là kiểu Date. Địa chỉ Char 100 ký tự [1-n] Mỗi khách hàng có một hay nhiều địa chỉ liên lạc. Miền giá trị của thuộc tính địa chỉ là một chuỗi tối đa là 100 ký tự Điện thoại Char 10 ký tự [0-n] Mỗi khách hàng có thể không có điện thoại liên lạc hay có nhiều điện thoại liên lạc. Mỗi số điện thoại là một chuỗi tối đa 10 ký tự. Tình trạng Boolean {True, [0-1] Mỗi khách hàng hôn nhân False} có thể không có gia đình (độc thân - False) hay đã lập gia đình (True). 2.1.2 Loại thực thể: Một số thực thể có cùng thuộc tính có thể gom lại thành một loại thực thể, hay có thể nói loại thực thể bao gồm các thực thể cùng loại hay các thực thể có chung thuộc tính. Khóa của loại thực thể là một hay nhiều thuộc tính thuộc thực thể đó dùng để phân biệt các thực thể cùng loại.
  56. Ví dụ: Trong bài toán quản lý mua bán hàng thì các thực thể khách hàng Công ty máy tính Hoàng Long, Công ty máy tính Infor World, có thể gom lại thành một loại thực thể KHÁCH HÀNG. Loại thực thể KHÁCH HÀNG Mã khách hàng Tên Địa chỉ Số điện (khóa của loại khách thọai thực thể hàng KHÁCH HÀNG) KH_HoangLong Công ty 01 Tôn Thất 9317442 máy tính Tùng, Quận Hoàng 1, TPHCM Long KH_InforWorld Công ty 197 Nguyễn 8301286 máy tính Thị Minh Infor Khai, Quận World 1, TPHCM KH_HNT100882 Huỳnh 11/17 9891093 Ngọc Nguyễn Thành Oanh, Phường 10, Gò Vấp, TPHCM Trong mô hình thực thể kết hợp (E-R) các loại thực thể thường được thể hiện bằng một hình chữ nhật, bên dưới là các thuộc tính thuộc loại thực thể. Những thuộc tính khóa của loại thực thể thường được gạch dưới hay in đậm để phân biệt với những thuộc tính khác không phải là thuộc tính khóa.
  57. Ví dụ: Loại thực thể khách hàng sẽ được thể hiện trong mô hình E-R như sau: KHÁCH HÀNG KHÁCH HÀNG MAKH TENKH Hay MAKH DIACHI TENKH DIENTHOAI DIACHI HONNHAN DIENTHOAI . HONNHAN 2.1.3 Mối kết hợp: Mối kết hợp trên mô hình E-R là quan hệ ngữ nghĩa từ 2 trở lên các đối tượng dữ liệu hay các loại thực thể. Mối kết hợp dùng để thể hiện sự liên hệ giữa các loại thực thể với nhau. Trên mô hình E-R, mối kết hợp thường được thể hiện bằng một hình thoi có tên, tên của mối kết hợp thể hiện ngữ nghĩa cho mối kết hợp. Mối kết hợp là cái có sau, không thể đứng độc lập một mình nếu không có các thực thể. Khi đề cập đến mối kết hợp chúng ta có các khái niệm sau: Thuộc tính (riêng): Trong một số trường hợp nào đó mối kết hợp có thể có những thuộc tính riêng của nó. Khóa: khóa của mối kết hợp thường là tổ hợp khóa của các thực thể tham gia vào mối kết hợp. Bảng số trên các nhánh của mối kết hợp: Bản số trên một nhánh của mối kết hợp thể hiện số lượng các thực thể thuộc một loại thực thể ở nhánh bên kia có liên hệ với một thực thể ở nhánh bên này của mối kết hợp. Bản số của mối kết hợp cũng tương tự như bản số của thuộc tính. Bản số của mối kết hợp cũng có các dạng: [0-1], [0-n], [1- 1], [1-n].
  58. Ví dụ 1: Một số mối kết hợp của các loại thực thể trong bài toán quản lý mua bán hàng hóa. Cung KHÁCH HÀNG PHIẾU NHẬP HÀNG cấp 1-n 1-1 MAKH MAPNH TENKH NGAYNHAP DIACHI DIENTHOAI HONNHAN Mối kết hợp ở trên thể hiện quan hệ ngữ nghĩa là “Cung cấp” giữa loại thực thể PHIẾU NHẬP HÀNG và loại thực thể KHÁCH HÀNG. Thông qua bản số trên mối kết hợp ta có thể biết được: mỗi khách hàng “cung cấp” ít nhất là 1 hoặc nhiều phiếu nhập hàng, đồng thời 1 phiếu nhập hàng chỉ được “cung cấp” bởi 1 khách hàng duy nhất. ĐƠN ĐẶT HÀNG Đặt hàng HÀNG HÓA 1-n 0-n MADDH MAHANG NGAYDAT TENHANG NGAYGIAODUKIEN SOLUONG DONGIA THANHTIEN Mối kết hợp trên thể hiện quan hệ ngữ nghĩa là “đặt hàng” giữa loại thực thể ĐƠN ĐẶT HÀNG và loại thực thể HÀNG HÓA. Thông qua bản số trên mối kết hợp “đặt hàng” ta có thể biết được: mỗi đơn đặt hàng “đặt hàng” ít nhất là 1 hoặc nhiều loại hàng hóa (1-n), và đồng thời mỗi loại hàng hóa có thể được “đặt
  59. hàng” trong nhiều đơn đặt hàng hay không có nằm trong đơn đặt hàng nào cả (0-n). Ví dụ 2: Mối kết hợp giữa “Nhà cung ứng” và “Nguyên vật liệu” Khoá của mối kết hợp là tổ hợp: MS_NCU, MS_NVL Nhà cung ứng Nguyên vật liệu MS_NCU MS_NVL ĐIỂM 0-n 0-n SV ĐKH NH_HK MA_SV 0-n NH HK MÔN MA_MON 2.1.4 Loại thực thể phụ thuộc: MS_NV NV MS_NV 0-n 1-1 - STT_con Con NV - Tên con NV -
  60. 2.2 Mô hình thực thể kết hợp mở rộng Mô hình thực thể kết hợp mở rộng bản chất là mô hình thực thể kết hợp nguyên thủy và có bổ sung thêm một số khái niệm sau: 2.2.1 Mối kết hợp đệ qui. Ví dụ: vợ chồng NV1 2.2.2 Mối kết hợp định nghĩa trên mối kết hợp ĐIỂM (0,n) (0,n) ĐKH SV NH_HK NH MA_SV (0,n) HK MÔN MA_MON LẦN ĐK Mối kết hợp cấp 1. (Tương tự có thể có mối kết hợp cấp 2, 3, )
  61. 2.2.3 Nhiều mối kết hợp định nghĩa trên cùng những thực thể như nhau: Ví dụ: ĐI C.BAY T.PHỐ ĐẾN Sở hữu NHÀ CÔNG DÂN Thuê 2.2.4 Thực thể chuyên biệt/ thực thể tổng quát: MS_NV TEN_NV NHÂN VIÊN ⇒ thuộc Thực thể tổng quát ⇒ NTNS tính chung Thực thể chuyên biệt quan hệ thừa kế NV_VAN PHONG NV_SAN XUAT MS_NV MS_NV TEN_NV TEN_NV NTNS NTNS Thuộc tính đặc thù Thuộc tính đặc của nhân viên văn thù của nhân phòng viên sản xuất
  62. 2.3 Xây dựng mô hình quan niệm dữ liệu Kết quả của giai đoạn phân tích thành phần dữ liệu ở mức quan niệm là sơ đồ quan niệm dữ liệu được xây dựng dựa trên mô hình E-R và các ràng buộc toàn vẹn (RBTV) kèm theo. Việc xây dựng mô hình quan niệm dữ liệu có thể tiến hành theo các bước sau: Xác định các loại thực thể. Xác định các mối kết hợp. Hoàn chỉnh mô hình quan niệm dữ liệu. Mô tả các ràng buộc toàn vẹn trên mô hình E-R. 2.3.1 Xác định danh sách các loại thực thể, thuộc tính Chúng ta có thể dựa vào việc phân loại các loại thực thể để xác định các loại thực thể dữ liệu cho việc xây dựng mô hình quan niệm dữ liệu E-R lúc bắt đầu phân tích thiết kế. Loại thực thể là các đối tượng, tác nhân, phương tiện tồn tại khách quan trong thực tế, có thể đứng độc lập một mình và là cái có trước như: hàng hóa, khách hàng, đơn đặt hàng, Trên thực tế để đơn giản và dễ thực hiện những chuyên viên phân tích thiết kế thường dựa vào các kết xuất: bắt đầu bằng việc nghiên cứu các kết xuất chúng ta có thể nhận diện ra các loại thực thể dữ liệu trong HTTT. Ví dụ trong ứng dụng quản lý bán hàng của công ty máy tính AZ@, thông qua các kết xuất trong bộ hồ sơ phân tích hiện trạng đã đề cập trong chương 2 chúng ta có thể nhận diện ra các loại thực thể dữ liệu liên quan trong ứng dụng như: KHÁCH HÀNG, HÀNG HÓA, PHIẾU NHẬP HÀNG, PHIẾU CHI TIỀN, HÓA ĐƠN BÁN LẺ, ĐƠN ĐẶT HÀNG, PHIẾU GIAO HÀNG, PHIẾU THU TIỀN, Việc xác định các thuộc tính của các loại thực thể cũng có thể thực hiện thông qua các kết xuất. Ví dụ dựa vào các mẫu giấy tờ báo cáo (kết xuất) trong bộ hồ sơ phân tích hiện trạng của bài toán quản lý mua hàng hóa trong chương 2 chúng ta có thể xác định được các thuộc tính của một loại thực thể.
  63. Ví dụ: Đối với loại thực thể KHÁCH HÀNG chúng ta có thể xác định các thuộc tính liên quan như: Mã khách hàng, tên khách hàng, địa chỉ liên lạc, số điện thoại, Đối với lọai thực thể HÀNG HÓA chúng ta có thể xác định các thuộc tính liên quan như: Mã hàng hóa, Tên hàng hóa, Đơn vị tính, 2.3.2 Xác định các mối kết hợp Việc xác định các mối kết hợp giữa các loại thực thể đồng thời phải kèm theo việc xác định các bản số trên các nhánh của mối kết hợp. Tên cũng như bản số trên mối kết hợp phải thể hiện chính xác quan hệ ngữ nghĩa giữa và những ràng buộc tồn tại giữa các loại thực thể tham gia vào mối kết hợp. KHÁCH HÀNG Cung cấp PHIẾU NHẬP HÀNG 1-n 1-1 MAKH MAPNH TENKH NGAYNHAP DIACHI DIENTHOAI HONNHAN 2.3.3 Hoàn chỉnh mô hình quan niệm dữ liệu Chúng ta cần bổ sung thêm các thuộc tính của các loại thực thể cũng như các thuộc tính riêng của mối kết hợp để tăng thêm tính rõ ràng của mô hình quan niệm dữ liệu E-R được xây dựng. ĐƠN ĐẶT HÀNG Đặt hàng HÀNG HÓA 1-n 0-n MADDH MAHANG NGAYDAT TENHANG NGAYGIAODUKIEN SOLUONG DONGIA THANHTIEN
  64. 2.3.4 Mô tả các ràng buộc toàn vẹn trên mô hình E-R a. Khái niệm ràng buộc toàn vẹn: là những quy tắc kiểm tra nhằm đảm bảo tính đúng đắn của dữ liệu khi thực hiện các thao tác thêm, xóa, sửa. Bởi vì mô hình E-R không thể phản ánh được hết thực tế trong phạm vi ứng dụng, vì vậy người ta đã đưa ra khái niệm ràng buộc toàn vẹn để hỗ trợ thêm về khả năng diễn đạt ngữ nghĩa trên mô hình E-R. Ràng buộc toàn vẹn thường có thể phát biểu bằng ngôn ngữ tự nhiên (mức quan niệm), ngôn ngữ hình thức (mức logic), hay thuật giải (mức vật lý). Ví dụ: trên mô hình E-R của bài toán quản lý mua bán hàng (xem bên dưới phần 2.3.5) không thể diễn đạt được những ràng buộc ngữ nghĩa như: - Phải giao những mặt hàng nằm trong đơn đặt hàng. - Tổng số lượng xuất của mặt hàng X trong tháng 1 phải bằng tổng số lượng mặt hàng X trong các chi tiết phiếu giao hàng và hóa đơn bán lẻ. Việc xác định các ràng buộc toàn vẹn trên dữ liệu của HTTT hoàn toàn có thể thực hiện được dựa trên việc phân loại các ràng buộc toàn vẹn. Lưu ý: Chuyên viên phân tích thiết kế cần liệt kê tất cả các ràng buộc toàn vẹn có ảnh hưởng trên dữ liệu của HTTT. Việc bỏ sót ràng buộc toàn vẹn thường có thể gây ra hậu quả rất nghiêm trọng không thể lường trước được. b. Phân loại các ràng buộc toàn vẹn Ràng buộc trên cùng thực thể Ràng buộc trên miền giá trị của thuộc tính: diễn tả những giới hạn trên miền giá trị của thuộc tính. Ví dụ: CTDDH.soluongdh > 0 (số lượng các mặt hàng có trong chi tiết đơn đặt hàng phải lớn hơn 0)
  65. CTDDH.dongia > 0 (đơn giá của các mặt hàng có trong chi tiết đơn đặt hàng phải lớn hơn 0). Ràng buộc liên thuộc tính: mô tả những mối quan hệ ràng buộc giữa các thuộc tính của cùng một loại thực thể Ví dụ: DDH.ngaydathang < DDH.ngaygiaodukien CTDDH.thanhtien = CTDDH.soluongdh * CTDDH.dongia Ràng buộc liên bộ: giữa nhiều thực thể trong cùng một loại thực thể hay giữa nhiều bộ trong cùng một quan hệ. Ràng buộc liên thuộc tính: Một trong những dạng thức đặc biệt của loại ràng buộc toàn vẹn này là ràng buộc về khóa (phụ thuộc hàm suy từ khóa). Ví dụ: Ma_ddh → ngaydh (Biết mã số đơn đặt hàng sẽ biết ngày đặt hàng) Ma_ddh → ngaygiaodk (Biết mã số đơn đặt hàng sẽ biết ngày giao hàng dự kiến) Ràng buộc toàn vẹn trên nhiều loại thực thể Ràng buộc liên bộ, liên thực thể: Ví dụ: Mỗi chi tiết đặt hàng thuộc CTDDH hoặc không được đáp ứng hoặc được giao tối đa 1 lần (tương ứng với tối đa 1 thực thể trong CTPGH) Ràng buộc liên thuộc tính, liên thực thể: Ví dụ: Ngày đặt hàng của một đơn đặt hàng phải nhỏ hơn (trước) ngày giao hàng trên phiếu giao hàng cho đơn đặt hàng tương ứng Ràng buộc liên thuộc tính, liên bộ, liên thực thể (ràng buộc phức tạp):
  66. Ví dụ: Chỉ giao những mặt hàng mà khách hàng đã đặt và với số lượng không vượt quá số lượng trên đơn đặt hàng tương ứng. 2.4 Sáu nguyên tắc kiểm tra mô hình quan niệm dữ liệu a. Tên thuộc tính: xuất hiện chỉ 1 lần trong toàn mô hình. b. Một thuộc tính có một giá trị duy nhất trong một thể hiện trong thực thể hay mối kết hợp. c. Mỗi thể hiện của một mối kết hợp được hình thành từ một thể hiện của các TT/ MKH cấp trên mà nó được định nghĩa. ⇒ Khóa nhận diện một thể hiện ∈ MKH chính là tổ hợp các khóa của TT/MKH. Ví dụ: SP CTĐĐH ĐĐH MA_SP MA_ĐĐH (MA_ĐĐH, MA_SP) CT_HĐ (MA_HĐ, MA_ĐĐH, MA_SP) HĐ MA_HĐ d. Tất cả các nhánh của mối kết hợp (MKH) là bắt buộc để hình thành nên một thể hiện của MKH. e. Các đặc trưng của một thực thể hoặc một mối kết hợp thì chỉ phụ thuộc vào TT/MKH đó mà thôi. f. Nếu có 1 thuộc tính phụ thuộc vào 2 thuộc tính khác của cùng một loại thực thể thì có nghĩa là có một loại thực thể ẩn trong loại thực thể ban đầu. Ví dụ:
  67. Loại xe → Cân nặng, XE - Loại xe Công suất - Cân nặng - Màu Số xe → Cân nặng, - Công suất Công suất - Số xe ⇒ Nếu như thế này thì ta phải thêm RBTV để kiểm tra. ⇒ XE LOẠI XE - Cân nặng - Công suất 2.5 Một số vấn đề thường gặp 2.5.1 Mối kết hợp n ngôi khác mối kết hợp 2 ngôi Ví dụ: (0, n) (0, n) THỨ-GIỜ GV BUỔI- GIẢNG (0, n) MÔN (0, n) LỚP-SV GV, THỨ-GIỜ → LỚP_SV (RBTV1) MS-GV MS-TG MS-LSV
  68. Nếu dùng MH1 thì không đảm bảo RBTV1 ⇒ nên phải kiểm tra RBTV1. ⇒ Biến đổi thành mô hình 2 (MH2). THỨ-GIỜ (0, n) (0, n) GV TG-GV Mối KH cấp 1 Mối KH cấp 3 (0, 1) BUỔI- Mối KH cấp 2 GIẢNG (0, n) MÔN LỚP-SV 2.5.2 Mối kết hợp khác thực thể KH SP (0, n) KH SP (0, n) (0, n) (0, n) (1, 1) (1, 1) ĐĐH ≠ ĐĐH (0, n) (1, 1) THANG-NAM (0, n) THANG-NAM 2.5.3 Thuộc tính/ Thực thể?
  69. Ví dụ: ĐI THÀNH CHUYẾNBAY MS-TP MS-CB TEN-TP ĐẾN CHUYẾN BAY MS-CB TP-ĐI TP-ĐẾN Trong mô hình thứ 2, ví dụ giá trị của thuộc tính TP-ĐI, TP- ĐẾN trong trường hợp là TPHCM có thể nhập vào khác nhau như sau: TPHCM, Tp.Hồ Chí Minh, Vì vậy khi khai thác sẽ bị hạn chế. ⇒ Ý nghĩa ở mức quan niệm như nhau, nhưng khi khai thác thì khác nhau. Ví dụ: NGÀY NGÀY KSK TRẺ TRẺ - - - NGÀY KSK Ngày khám sức khoẻ
  70. 2.6 Mô hình quan niệm dữ liệu bài toán bán hàng a. Các loại thực thể: Loại thực thể DDH: Đơn đặt hàng Thuộc tính Kiểu Kích Khóa Khóa NOT thước chính chỉ định NULL Ma_ddh Numeric 6 X X X Ngaydh Date 8 X Ngaygiaodk Date 8 X Tongtien Numeric 10 X Loại thực thể DMHH: Danh mục hàng hóa Thuộc tính Kiểu Kích Khóa Khóa NOT thước chính chỉ định NULL Ma_hh Numeric 6 X X X Tenhh Char 30 X Dvt Char 20 X Loại thực thể DMKH: Danh mục khách hàng (khách hàng có thể là khách mua hay khách bán, nhà cung cấp) Thuộc tính Kiểu Kích Khóa Khóa NOT thước chính chỉ định NULL Ma_kh Char 6 X X X Hoten Char 30 X Diachi Char 40 X Dienthoai Char 20 Loại thực thể HDBL: Hóa đơn bán hàng lẻ Thuộc tính Kiểu Kích Khóa Khóa NOT thước chính chỉ định NULL Ma_hdbl Char 6 X X X Ngayhdbl Date 8 X Hotenkh Char 30 X Diachikh Char 30
  71. Loại thực thể PCT: Phiếu chi tiền Thuộc tính Kiểu Kích Khóa Khóa NOT thước chính chỉ định NULL Ma_pct Char 6 X X X Ngaypct Date 8 X Thanhtien Numeric 12 X Diengiai Char 100 Loại thực thể PGH: Phiếu giao hàng Thuộc tính Kiểu Kích Khóa Khóa NOT thước chính chỉ định NULL Ma_pgh Char 6 X X X Ngaypgh Date 8 X Loại thực thể PNH: Phiếu nhập hàng Thuộc tính Kiểu Kích Khóa Khóa NOT thước chính chỉ định NULL Ma_pnh Char 6 X X X Ngaypnh Date 8 X Loại thực thể PTT: Phiếu thu tiền. Thuộc tính Kiểu Kích Khóa Khóa NOT thước chính chỉ định NULL Ma_ptt Char 6 X X X Ngayptt Date 8 X Thanhtien Numeric 12 X Diengiai Char 100 Loại thực thể THANGTK: Tháng năm tính tồn kho hàng hóa Thuộc tính Kiểu Kích Khóa Khóa NOT thước chính chỉ định NULL thangnamtk Char 6 X Loại thực thể THANGCN: Tháng năm tính công nợ khách hàng
  72. Thuộc tính Kiểu Kích Khóa Khóa NOT thước chính chỉ định NULL thangnamcn Char 6 X b. Các mối kết hợp Donhang: Mối kết hợp này thể hiện quan hệ ngữ nghĩa giữa loại thực thể “danh mục khách hàng” và loại thực thể “đơn đặt hàng”. Mỗi khách hàng có 1 hay nhiều đơn đặt hàng (phải có ít nhất 1 đơn đặt hàng mới được đưa vào danh mục khách hàng) (1-n). Mỗi đơn đặt hàng xác định một khách hàng duy nhất liên quan đến đơn đặt hàng đó (1-1). ctddh: Mối kết hợp này thể hiện quan hệ ngữ nghĩa giữa loại thực thể “đơn đặt hàng” và loại thực thể “danh mục hàng hóa”. Mỗi đơn đặt hàng có liên quan đến 1 hay nhiều mặt hàng trong danh mục hàng hóa (1-n). Mỗi mặt hàng trong danh mục hàng hóa có thể tồn tại trong 1 hay nhiều đơn đặt hàng (1-n). Ngoài ra mối kết hợp ctddh còn có những thuộc tính riêng của nó đó là: soluong, dongia, thanhtien. nhaphang: Mối kết hợp này thể hiện quan hệ ngữ nghĩa giữa loại thực thể “danh mục khách hàng” và loại thực thể “phiếu nhập hàng”. Mỗi khách hàng có thể có 1 hay nhiều phiếu nhập hàng (1-n). Và với mỗi phiếu nhập hàng xác định duy nhất một khách hàng liên quan đến phiếu nhập hàng đó (1-1). ctpnh: Mối kết hợp này thể hiện quan hệ ngữ nghĩa giữa loại thực thể “phiếu nhập hàng” và loại thực thể “danh mục hàng hóa”. Mỗi phiếu nhập hàng có liên quan đến 1 hay nhiều mặt hàng trong danh mục hàng hóa (1-n). Mỗi mặt hàng trong danh mục hàng hóa có thể tồn tại trong 1 hay nhiều phiếu nhập hàng (1-n). Ngoài ra mối kết hợp ctpnh còn có những thuộc tính riêng của nó đó là: soluong, dongia, thanhtien.
  73. cthdbl: Mối kết hợp này thể hiện quan hệ ngữ nghĩa giữa loại thực thể “hóa đơn bán lẻ” và loại thực thể “danh mục hàng hóa”. Mỗi hóa đơn bán lẻ có liên quan đến 1 hay nhiều mặt hàng trong danh mục hàng hóa (1-n). Mỗi mặt hàng trong danh mục hàng hóa có thể tồn tại trong 1 hay nhiều hóa đơn bán lẻ (1-n). Ngoài ra mối kết hợp cthdbl còn có những thuộc tính riêng của nó đó là: soluong, dongia, thanhtien. ctpgh: Mối kết hợp này thể hiện quan hệ ngữ nghĩa giữa loại thực thể “phiếu giao hàng” và loại thực thể “danh mục hàng hóa”. Mỗi phiếu giao hàng có liên quan đến 1 hay nhiều mặt hàng trong danh mục hàng hóa (1-n). Mỗi mặt hàng trong danh mục hàng hóa có thể tồn tại trong 1 hay nhiều phiếu giao hàng (1-n). Ngoài ra mối kết hợp ctpgh còn có những thuộc tính riêng của nó đó là: soluong, dongia, thanhtien. Thutien: Mối kết hợp “thu tiền” thể hiện quan hệ ngữ nghĩa giữa loại thực thể “danh mục khách hàng” và “phiếu thu tiền”. Mỗi khách hàng trong danh mục khách hàng có thể có 0 hay nhiều phiếu thu tiền (0-n). Mỗi phiếu thu tiền xác định duy nhất một khách hàng có liên quan đến phiếu thu tiền đó (1-1). Chitien: Mối kết hợp “chi tiền” thể hiện quan hệ ngữ nghĩa giữa loại thực thể “danh mục khách hàng” và “phiếu chi tiền”. Mỗi khách hàng trong danh mục khách hàng có thể có 0 hay nhiều phiếu chi tiền (0-n). Mỗi phiếu chi tiền xác định duy nhất một khách hàng có liên quan đến phiếu chi tiền đó (1-1). Giaohang: Mối kết hợp “giaohang” thể hiện quan hệ ngữ nghĩa giữa loại thực thể “phiếu giao hàng” và “đơn đặt hàng”. Mỗi đơn đặt hàng có thể chưa được giao hay được giao nhiều lần khác nhau (0-n). Mỗi phiếu giao hàng hay mỗi lần giao hàng sẽ
  74. xác định được duy nhất 1 đơn đặt hàng hay giao theo đơn đặt hàng nào (1-1). Congno: Mối kết hợp “congno” thể hiện quan hệ ngữ nghĩa giữa loại thực thể “tháng năm công nợ” và “danh mục khách hàng”. Mỗi tháng công nợ có liên quan đến 1 hay nhiều khách hàng (1-n). Mỗi khách hàng trong danh mục khách hàng được tính công nợ trong các tháng của các năm khác nhau hay nói cách khác mỗi khách hàng có nhiều kỳ công nợ trong nhiều tháng khác nhau (1-n). Ngoài ra mối kết hợp “congno” còn có những thuộc tính riêng của nó đó là: sonodk, tienno, tienthu, sonock. Tonkho: Mối kết hợp “tonkho” thể hiện quan hệ ngữ nghĩa tồn kho hàng hóa giữa loại thực thể “tháng năm tồn kho” và “danh mục hàng hóa”. Mỗi tháng tồn kho có liên quan đến 1 hay nhiều hàng hóa (1-n). Mỗi mặt hàng trong danh mục hàng hóa được tính tồn kho trong các tháng của các năm khác nhau hay nói cách khác mỗi mặt hàng có nhiều kỳ tồn kho trong nhiều tháng khác nhau (1-n). Ngoài ra mối kết hợp “tonkho” còn có những thuộc tính riêng của nó đó là: tondk, slnhap, slxuat, tonck. c. Mô hình quan niệm dữ liệu
  75. PTT DMKH Ma_ptt Ma_kh Ngayptt Hoten 1-n 1-1 0-n 1-1 PNH THANGTK Thanhtien thutien Diachi nhaphang Diengiai Dienthoai Ma_pnh thangnamtk Ngaypnh 1-n 1-n 1-n 1-n 0-n tonkho ctpnh chitien congno donhang 1-1 1-n 1-n DDH DMHH 1-1 1-n Ma_ddh Ma_hh 1-n 1-n Tenhh Ngaydh ctddh PCT THANGCN Ngaygiaodk dvt Ma_pct thangnamcn Tongtien Ngaypct Thanhtien 1-n Diengiai 0-n 1-n giaohang cthdbl 1-1 1-n PGH HDBL Ma_pgh ctpgh Ma_hdbl Ngaypgh 1-n Ngaydhbl Hotenkh Diachikh
  76. d. Mô tả các ràng buộc toàn vẹn trên mô hình quan niệm dữ liệu của bài toán bán hàng (dùng ngôn ngữ tự nhiên ở mức quan niệm) Ràng buộc toàn vẹn trên một loại thực thể Ràng buộc toàn vẹn về miền giá trị thuộc tính RBTV1: Giá trị của các thuộc tính số lượng(soluong), đơn giá (đongia), thành tiền (thanhtien) là thuộc tính riêng trong mối kết hợp chi tiết đơn đặt hàng (ctddh) phải lớn hơn 0. RBTV2: Giá trị của các thuộc tính số lượng(soluong), đơn giá (đongia), thành tiền (thanhtien) là thuộc tính riêng trong mối kết hợp chi tiết phiếu giao hàng (ctpgh) phải lớn hơn 0. RBTV3: Giá trị của các thuộc tính số lượng(soluong), đơn giá (đongia), thành tiền (thanhtien) là thuộc tính riêng trong mối kết hợp chi tiết hóa đơn bán lẻ (cthdbl) phải lớn hơn 0. RBTV4: Giá trị của các thuộc tính số lượng(soluong), đơn giá (đongia), thành tiền (thanhtien) là thuộc tính riêng trong mối kết hợp chi tiết phiếu nhập hàng (ctpnh) phải lớn hơn 0. RBTV5: Giá trị thuộc tính thành tiền (thanhtien) trong loại thực thể phiếu chi tiền (PCT) phải lớn hơn 0. RBTV6: Giá trị thuộc tính thành tiền (thanhtien) trong loại thực thể phiếu thu tiền (PTT) phải lớn hơn 0. Ràng buộc toàn vẹn liên thuộc tính RBTV7: Trong mối kết hợp công nợ (congno) thì giá trị của thuộc tính riêng số nợ cuối kỳ (Sonock) sẽ phải bằng số nợ đầu kỳ (Sonodk) cộng tổng số tiền nợ (Tienno) trừ đi tổng số tiền thu được (Tienthu).
  77. RBTV8: Trong mối kết hợp chi tiết đơn đặt hàng (ctddh) thì giá trị thuộc tính riêng thành tiền (Thanhtien) phải bằng giá trị thuộc tính riêng số lượng (Soluong) nhân với giá trị thuộc tính riêng là đơn giá (Dongia). RBTV9: Trong mối kết hợp chi tiết phiếu giao hàng (ctpgh) thì giá trị thuộc tính riêng là thành tiền (Thanhtien) phải bằng giá trị thuộc tính riêng số lượng (Soluong) nhân với giá trị thuộc tính riêng là đơn giá (Dongia). RBTV10: Trong mối kết hợp chi tiết hóa đơn bán lẻ (cthdbl) thì giá trị thuộc tính riêng là thành tiền (Thanhtien) phải bằng giá trị thuộc tính riêng số lượng (Soluong) nhân với giá trị thuộc tính riêng là đơn giá (Dongia). RBTV11: Trong mối kết hợp chi tiết phiếu nhập hàng (ctpnh) thì giá trị thuộc tính riêng là thành tiền (Thanhtien) phải bằng giá trị thuộc tính riêng số lượng (Soluong) nhân với giá trị thuộc tính riêng là đơn giá (Dongia). Ràng buộc toàn vẹn liên thuộc tính, liên bộ RBTV12: Trong mối kết hợp công nợ (congno) thì giá trị của thuộc tính riêng nợ đầu kỳ (Sonodk) của tháng này phải bằng số tiền nợ cuối kỳ (Sonock) của tháng trước đó. RBTV13: Trong mối kết hợp tồn kho (tonkho) thì giá trị của thuộc tính riêng tồn đầu kỳ (Tondk) của tháng này phải bằng số lượng tồn cuối kỳ (Tonck) của tháng trước đó. Ràng buộc toàn vẹn trên nhiều loại thực thể Ràng buộc toàn vẹn liên thuộc tính, liên bộ, liên thực thể RBTV14: Tổng số lượng hàng nhập (slnhap) trong mối kết hợp tồn kho hàng hóa (tonkho) của một mặt hàng x trong một tháng y nào đó bằng tổng số lượng các chi tiết phiếu nhập hàng có
  78. liên quan đến mặt hàng x vào tháng y trong mối kết hợp chi tiết phiếu nhập hàng (ctpnh) RBTV15: Tổng số lượng hàng xuất (slxuat) trong mối kết hợp tồn kho hàng hóa (tonkho) của một mặt hàng x trong một tháng y nào đó bằng tổng số lượng các chi tiết phiếu giao hàng (tổng soluong trong ctpgh) và tổng số lượng các chi tiết hóa đơn bán lẻ (tổng soluong trong cthdbl) có liên quan đến mặt hàng x trong tháng y. 3. Mô hình tổ chức dữ liệu (logic) Phân tích thiết kế thành phần dữ liệu của HTTT ở mức tổ chức bao gồm một số công việc như sau: - Xây dựng mô hình quan hệ dữ liệu (tổ chức dữ liệu) từ mô hình thực thể kết hợp (quan niệm dữ liệu). - Tối ưu hóa mô hình quan hệ dữ liệu. - Mô tả các ràng buộc toàn vẹn ở mức thiết kế tổ chức. (thường dùng ngôn ngữ toán học). - Thiết kế hàm cửa sổ hay các khung nhìn (views) dữ liệu, cũng như các chỉ mục(index) được sử dụng trong xử lý sau này. Trong phần này chúng ta tập trung vào việc xây dựng mô hình quan hệ dữ liệu. Mô hình dữ liệu quan hệ (Relational Data Model): còn được gọi tắt là mô hình quan hệ (Relational Model) do E.F.Codd đề xuất năm 1970. Nền tảng cơ bản của nó là khái niệm lý thuyết tập hợp trên các quan hệ, tức là tập của các bộ giá trị (Value Tuples). Trong mô hình dữ liệu này những khái niệm sẽ được sử dụng bao gồm thuộc tính (Attribute), quan hệ (Relation), lược đồ quan hệ (Relation Schema), bộ (Tuple), khóa (Key). Mô hình dữ liệu quan hệ là mô hình được nghiên cứu nhiều nhất, và cho thấy rằng nó có cơ sở lý thuyết vững chắc nhất. Mô hình dữ liệu này cùng với mô hình dữ liệu thực thể kết hợp
  79. đang được sử dụng rộng rãi trong việc phân tích và thiết kế CSDL hiện nay. 3.1 Bảy bước chuyển đổi sang mô hình quan hệ (ở mức logic) b1. Chuyển các khái niệm chuyên biệt hóa, tổng quát hoá → khái niệm quan hệ b2. Chuyển thực thể → quan hệ. b3. Chuyển các mối kết hợp bậc 1 → quan hệ. b4. Chuyển các mối kết hợp bậc i → quan hệ (i = bậc trước +1) Lặp lại bước 4 cho đến khi hết các mối kết hợp. b5. Nhập tất cả các quan hệ cùng khóa lại với nhau. b6. Chuẩn hóa các quan hệ. b7. Xem xét các RBTV. 3.1.2 Các tình huống của b1. Ở mức chuyên biệt hóa không có thuộc tính riêng. NV MA_NV HOTEN NV_TK NV_CANBO ⇓ Chuyển thành Tổng quát hóa NV - - NV(MÃ_NV, , LOẠI_NV) - LOẠI_NV
  80. Ở mức chuyên biệt có thuộc tính riêng (số lượng thuộc tính riêng < 3) NV MA_NV HOTEN Bậc cán Bằng cấp NV_TK NV_CANBO bộ thư ký ⇓ Chuyển thành Tổng quát hóa NV - - - LOẠI_NV - Bằng cấp thứ ký - Bậc cán bộ NV(MÃ_NV, , LOẠI_NV, Bằng cấp thư ký, Bậc cán bộ) Lưu ý: Trong trường hợp này khi chuyển cần cộng thêm một ràng buộc toàn vẹn (để đảm bảo về mặt ngữ nghĩa với mô hình ban đầu). ∀nv ∈ NV Nếu nv.LOAI_NV = “thư ký” thì Nv. Bậc cán bộ = “giá trị trống”. Nguợc lại Nv. bằng cấp thư ký = “giá trị trống”. Cuối nếu Cuối ∀
  81. Giống trường hợp “b” nhưng có thêm mối kết hợp đến thực thể ở mức chuyên biệt hóa. NV MA_NV HOTEN NV_TK NV_CANBO ĐỀ ÁN Lưu ý: Trong trường hợp này cũng phải cộng thêm một ràng buộc toàn vẹn Ở mức chuyên biệt hóa có thuộc tính riêng (số lượng thuộc tính riêng > 3) thuộc P.BAN NV MA_NV HOTEN - - - Số thuộc NV_TK NV_CANBO - Số thuộc tính riêng > 3 tính riêng > 3 ⇓ Chuyển thành Chuyên biệt hóa
  82. - MA_NVTK NV_TK NV_CANBO - MA_NVCB - HOTEN_TK. - HOTEN_CB - - - Thuộc tính riêng - Thuộc tính riêng P.BAN 3.1.3 Một số điều cần lưu ý ở bước 3 + bước 4. (0, 1) MA_AV ÁO VÉT MAU_AV - Giá Bộ 2 KIEU_AV Bộ 2 ÁO GILÊ (0, 1) MA_Q QUẦN MA_GILE MAU_Q MAU_GILE KIEU_Q Bộ 3 - Giá Bộ 3 ⇒ Chuyển sang mô hình quan hệ ÁO VÉT (MA_AV, MAU_AV, KIEU_AV, ) QUẦN (MA_Q, MAU_Q, KIEU_Q, ) ÁO GILÊ (MA_GILE, MAU_GILE) Bộ 2 (MA_AV, MA_Q, Giá Bộ 2) Trong quan hệ “Bộ 2” có 2 phụ thuộc hàm sau: MA_AV → MA_Q MA_Q → MA_AV
  83. Có 2 phụ thuộc hàm này là do cách đánh chỉ số là (0, 1) và (0, 1). Ngoài ra nếu chỉ số là (0, n) và (0, n) thì sẽ không có 2 phụ thuộc hàm trên. Bộ 3 (MA_AV, MA_Q, MA_GILE, Giá Bộ 3) Ví dụ: Mối kết hợp cấp 1 (1, n) (1, 1) Phụ KỸ_SƯ ĐỀ_ÁN trách - MA_KS (1, n) - Tham Mối kết hợp cấp 2 gia (1, n) Mối kết hợp cấp 1 (1, 1) Cuộc THỜI ĐIỂM PHÒNG họp (1, 1) - NGÀY - MÃ_P - GIỜ - Thời gian - Lưu ý: Chỉ số “tối đa” là 1 chỉ phụ thuộc hàm từ đó đi ra. Chẳng hạn trong ví dụ trên ta có phụ thuộc hàm: MA_ĐA → MA_KS PHU_TRACH(MA_KS, MA_ĐA) CUOC_HOP(NGAY, GIO, MA_P, THOI_GIAN, ) MA_P → NGAY, GIO NGAY, GIO → MA_P
  84. (Do cách đánh chỉ số tối đa là 1 nên ta có 2 phụ thuộc hàm trên) THAM_GIA (MA_KS, MA_ ĐA, NGAY, GIO, MA_P) Khóa 1: MA_ ĐA, NGAY, GIO Khóa 2: MA_ ĐA, MA_P ( Phải đưa thêm MA_KS vào mặc dù nó không là khóa, nhưng khi xác định khóa thì phải xét trên phụ thuộc hàm nên ta có K1, K2. Vì MA_KS là thuộc tính nhận diện mối kết hợp “Phụ trách” ) 3.2 Tối ưu hóa mô hình tổ chức dữ liệu: Sau khi mô hình quan niệm dữ liệu được chuyển sang mô hình tổ chức dữ liệu, người thiết kế cần thực hiện việc tối ưu hóa mô hình tổ chức dữ liệu để hoàn chỉnh việc phân tích và thiết kế thành phần dữ liệu trước khi tiến hành cài đặt ở mức vật lý. Việc tối ưu hóa mô hình quan hệ thường bao gồm các việc như: thêm hay bớt các quan hệ (bảng), cũng như các thuộc tính của các quan hệ trong trường hợp cần thiết. 3.2.1 Việc thêm/bớt các bảng • Các bảng dữ liệu chỉ có 1 thuộc tính thường sẽ bị loại bỏ. Ví dụ: Bảng “năm tháng công nợ” (NAMTHANGCN) và bảng “năm tháng tồn kho” (NAMTHANGTK) trong hệ thống quản lý mua bán hàng hóa sẽ được loại bỏ. • Chúng ta cần cân nhắc xem có nên hay không khi thêm/bớt các bảng trung gian sử dụng để lưu trữ những kết quả xử lý trung gian hay để tổng hợp dữ liệu. Ví dụ: Trong ứng dụng “quản lý mua bán hàng hóa” thì sau khi chuyển sang mô hình quan hệ ta có bảng TONKHO, bảng này có thể loại bỏ ra khỏi mô hình tổ chức dữ liệu nếu như người sử dụng luôn cần đến số liệu tồn kho một cách chính xác. Trong
  85. trường hợp đó mỗi khi cần số liệu tồn kho thì người sử dụng phải thực hiện chức năng tính tồn kho. Ngược lại nếu như trên thực tế chúng ta chấp nhận một sai số nhất định về số liệu tồn kho thì bản TONKHO vẫn có thể được giữ lại trong mô hình tổ chức dữ liệu. Người sử dụng có thể xem tham khảo số liệu tồn kho hiện hành trong bảng TONKHO (nhưng không hoàn toàn chính xác), và nếu như người sử dụng cần số lượng tồn kho một cách chính xác thì có thể thực hiện lại thao tác tính tồn kho. Đây là vấn đề xử lý mà người ta thường gọi là xử lý theo lô hay xử lý tức thời. Đối với việc xử lý cập nhật tức thời chúng ta có thể thực hiện được nhờ vào cơ chế cập nhật tự động của các hệ quản trị cơ sở dữ liệu (thường được gọi là các Triggers). Việc xử lý theo lô thường không có số liệu chính xác tại thời điểm hiện hành, để có số liệu chính xác chúng ta pphải thực hiện việc tính toán và cập nhật dữ liệu lại, xử lý theo lô thường được các lập trình viên làm trước đây trong những hệ thống không có cơ chế cập nhật tự động (Triggers) như foxpro chẳng hạn. • Sau khi chúng ta loại bỏ một số bảng dữ liệu nào đó thì những ràng buộc toàn vẹn liên quan đến những bảng đó cũng phải loại hoặc xem xét hiệu chỉnh như thế nào đó cho phù hợp. 3.2.2 Việc thêm/bớt các thuộc tính Giống như việc thêm bớt các bảng thì đối với thuộc tính chúng ta cũng phải thực hiện việc tối ưu hóa bằng cách thêm hoặc bớt các thuộc tính sao cho phù hợp. Ví dụ: trong ứng dụng “quản lý mua bán hàng”. Trong các bảng CTĐĐH (Chi tiết đơn đặt hàng), CTHĐBL (chi tiết hóa đơn bán lẻ), CTPGH(chi tiết phiếu giao hàng), CTPNH(chi tiet phiếu nhập hàng), chúng ta có thể loại bỏ thuộc tính Dongia (đơn giá). Như vậy mỗi khi cần thông tin đơn giá thì chúng ta sẽ gọi thực hiện một thủ tục tính đơn giá.
  86. Sau khi loại bỏ một số thuộc tính thì những ràng buộc toàn vẹn liên quan cũng phải được loại bỏ hoặc điều chỉnh như thế nào cho phù hợp. 3.3 Mô tả những ràng buộc toàn vẹn ở mức thiết kế dữ liệu (tổ chức/logic): Như chúng ta đã biết mô hình quan niệm dữ liệu (mô hình thực thể kết hợp) luôn đi kèm với một tập hợp các ràng buộc toàn vẹn để bổ sung thêm ngữ nghĩa cho dữ liệu. Như vậy một khi chúng ta tối ưu hóa mô hình tổ chức dữ liệu bằng cách thêm/bớt các bảng, thuộc tính thì đồng thời chúng ta cũng phải thêm/bớt và hiệu chỉnh các ràng buộc toàn vẹn cho phù hợp với mô hình tổ chức dữ liệu Ví dụ: Khi chúng ta loại bỏ thuộc tính Dongia trong bảng CTĐĐH thì đồng thời chúng ta cũng phải loại bỏ luôn ràng buộc toàn vẹn sau: CTĐĐH.thanhtien = CTĐĐH.Soluong * CTĐĐH.Dongia 3.4 Bảng tầm ảnh hưởng Như chúng ta đã biết ràng buộc toàn vẹn là những điều kiện ràng buộc trên các đối tượng dữ liệu của ứng dụng và những đối tượng dữ liệu này phải thỏa mãn tất cả những ràng buộc toàn vẹn của ứng dụng tại mọi thời điểm. Việc xây dựng bảng tầm ảnh hưởng để làm cơ sở cho việc kiểm tra những thao tác dữ liệu nào vi phạm ràng buộc toàn vẹn, từ đó ta phải có những thao tác xử lý để đảm bảo những ràng buộc toàn vẹn phải thỏa mãn tại mọi thời điểm. (chẳng hạn việc cài đặt những Triggers trong các hệ quản trị cơ sở dữ liệu khi có những thao tác dữ liệu vi phạm ràng buộc toàn vẹn). Mỗi bảng tầm ảnh hưởng thường có các thông tin sau: - 3 cột “thêm”, “xóa”, “sửa” để thể hiện 3 thao tác cập nhật dữ liệu cơ bản nhất.
  87. - Gồm nhiều dòng mỗi dòng tương ứng với 1 quan hệ hay 1 bảng dữ liệu có liên quan đến ràng buộc toàn vẹn đang đề cập đến. - Dấu “+” tại dòng i vào cột j của bảng tầm ảnh hưởng nói rằng thao tác tại cột j trên quan hệ dữ liệu tại dòng i ảnh hưởng đến ràng buộc toàn vẹn đang xét và cần phải kiểm tra. Ví dụ: Giá trị thuộc tính thành tiền (thanhtien) trong quan hệ phiếu thu tiền (PTT) phải lớn hơn 0. Khi đó thao tác thêm và sửa dữ liệu trên quan hệ này sẽ phải kiểm tra giá trị của thuộc tính thành tiền (thanhtien) phải lớn hơn 0. Còn thao tác xóa dữ liệu trên quan hệ này sẽ không vi phạm ràng buộc tòan vẹn vừa nêu. Thêm Xóa Sửa PTT +(thanhtien) - +(thanhtien) 3.5 Mô hình quan hệ dữ liệu của bài toán quản lý mua bán hàng hóa: - Các thực thể trong mô hình quan niệm E-R được chuyển thành các quan hệ trong mô hình quan hệ. - Chuyển các mối kết hợp thành quan hệ: o Các mối kết hợp có bản số 2 đầu trên mối kết hợp là 1-n và có thuộc tính riêng sẽ được tách ra thành 1 quan hệ mới. o Các mối kết hợp còn lại khác (có 1 đầu bản số là 1-1 và đầu kia là 1-n) sau khi tạo thành quan hệ mới sẽ được nhập vào các quan hệ lớn đã có (do có cùng khóa), và quan hệ tham gia vào mối kết hợp ở đầu bản số 1-1 sẽ được thêm 1 thuộc tính mới là khóa của quan hệ tham gia vào mối kết hợp ở đầu bên kia có bản số là 1-n (để làm khóa ngoại). - Tối ưu mô hình quan hệ dữ liệu:
  88. o Loại bỏ các bảng có 1 thuộc tính, và các bảng trung gian trong quá trình xử lý (nếu cần thiết tùy theo yêu cầu của chương trình) o Loại bỏ những thuộc tính trong quan hệ (nếu cần thiết) o Lọai bỏ hay cập nhật các ràng buộc toàn vẹn có liên quan khi thêm/bớt các quan hệ, các thuộc tính. a. Các quan hệ DMKH (Ma_kh, Hoten, Diachi, Dienthoai) DMHH (Ma_hh, Tenhh, dvt) DDH (Ma_ddh, Ngaydh, Ngaygiaodk, Ma_kh) PGH(Ma_pgh, Ngaypgh, Ma_ddh) HDBL (Ma_hdbl, Ngayhdbl, Hotenkh, Diachikh) PNH (Ma_pnh, Ngaypnh, Ma_kh) PCT (Ma_pct, Ngaypct, Thanhtien, Diengiai, Ma_kh) PTT (Ma_ptt, Ngayptt, Thanhtien, Diengiai, Ma_kh) CTPNH (Ma_pnh, Ma_hh, Soluong, Thanhtien) CTDDH (Ma_ddh, Ma_hh, Soluong, Thanhtien) CTPGH (Ma_pgh, Ma_hh, Soluong, Thanhtien) CTHDBL (Ma_hdbl, Ma_hh, Soluong, Thanhtien) CONGNO (Ma_kh, thangnamcn, Sonodk, Tienno, Tienthu) TONKHO (Ma_hh, thangnamtk, Tondk, Slnhap, Slxuat) Tùy vào yêu cầu thực tế của hệ thống, chúng ta có thể loại bỏ thuộc tính “Sonock” trong quan hệ “CONGNO” và thuộc tính “Tonck” trong quan hệ TONKHO và những ràng buộc toàn vẹn liên quan đến các thuộc tính này. Khi đó khi nào cần số liệu nợ cuối kỳ hay tồn kho cuối kỳ thì chúng ta phải thực hiện việc xử lý tính toán. Nhưng trong một số trường hợp để đơn giản hóa công việc xử lý và hỗ trợ truy xuất tính toán nhanh chúng ta có thể giữ lại những thuộc tính này.
  89. b. Ràng buộc toàn vẹn & bảng tầm ảnh hưởng Ràng buộc toàn vẹn trên một quan hệ Ràng buộc toàn vẹn về miền giá trị thuộc tính RBTV1: Giá trị của các thuộc tính số lượng(soluong), thành tiền (thanhtien) trong quan hệ chi tiết đơn đặt hàng (ctddh) phải lớn hơn 0. Mô tả: ∀ ctddh ∈ CTĐĐH (ctddh.soluong > 0) ∩ (ctddd.thanhtien > 0) Cuối ∀ Bảng tầm ảnh hưởng: Thêm Xóa Sửa CTĐĐH +(soluong, - +(soluong, thanhtien) thanhtien) RBTV2: Giá trị của các thuộc tính số lượng(soluong), thành tiền (thanhtien) trong quan hệ chi tiết phiếu giao hàng (ctpgh) phải lớn hơn 0. Mô tả: ∀ ctpgh ∈ CTPGH (ctpgh.soluong > 0) ∩ (ctpgh.thanhtien > 0) Cuối ∀ Bảng tầm ảnh hưởng: Thêm Xóa Sửa CTPGH +(soluong, - +(soluong, thanhtien) thanhtien) RBTV3: Giá trị của các thuộc tính số lượng(soluong), thành tiền (thanhtien) trong quan hệ chi tiết hóa đơn bán lẻ (cthdbl) phải lớn hơn 0. Mô tả: ∀ cthdbl ∈ CTHDBL
  90. (cthdbl.soluong > 0) ∩ (cthdbl.thanhtien > 0) Cuối ∀ Bảng tầm ảnh hưởng: Thêm Xóa Sửa CTHDBL +(soluong, - +(soluong, thanhtien) thanhtien) RBTV4: Giá trị của các thuộc tính số lượng(soluong), thành tiền (thanhtien) trong quan hệ chi tiết phiếu nhập hàng (ctpnh) phải lớn hơn 0. Mô tả: ∀ ctpnh ∈ CTPNH (ctpnh.soluong > 0) ∩ (ctpnh.thanhtien > 0) Cuối ∀ Bảng tầm ảnh hưởng: Thêm Xóa Sửa CTPNH +(soluong, - +(soluong, thanhtien) thanhtien) RBTV5: Giá trị thuộc tính thành tiền (thanhtien) trong quan hệ phiếu chi tiền (PCT) phải lớn hơn 0. Mô tả: ∀ pct ∈ PCT pct.thanhtien > 0 Cuối ∀ Bảng tầm ảnh hưởng: Thêm Xóa Sửa PCT +(thanhtien) - +(thanhtien) RBTV6: Giá trị thuộc tính thành tiền (thanhtien) trong quan hệ phiếu thu tiền (PTT) phải lớn hơn 0.
  91. Mô tả: ∀ ptt ∈ PTT ptt.thanhtien > 0 Cuối ∀ Bảng tầm ảnh hưởng: Thêm Xóa Sửa PTT +(thanhtien) - +(thanhtien) Ràng buộc toàn vẹn liên thuộc tính, liên bộ RBTV7: Trong quan hệ công nợ (CONGNO) thì giá trị của thuộc tính nợ đầu kỳ (Sonodk) của tháng này phải bằng số tiền nợ đầu kỳ (Sonodk) của tháng trước đó cộng cho những khoảng tiền nợ của tháng trước trừ cho những khoảng tiền thu của tháng trước đó đối với khách hàng liên quan đang xét. Mô tả: ∀ cn ∈ (CONGNO) ∃! cn’ ∈ (CONGNO): (cn.Ma_kh= cn’.Ma_kh) ∩ (cn.Sonodk = cn’.Sonodk + cn’.Tienno –cn’.Tienthu) Cuối ∀ Bảng tầm ảnh hưởng: Thêm Xóa Sửa CONGNO + (Sonodk) - + (Sonodk, Tienno, Tienthu) RBTV8: Trong quan hệ tồn kho (TONKHO) thì giá trị của thuộc tính tồn đầu kỳ (Tondk) của tháng này phải bằng số lượng tồn đầu kỳ (Tondk) của tháng trước đó cộng cho số lượng nhập trừ cho số lượng xuất của tháng trước đó đối với mặt hàng liên quan đang xét. Mô tả:
  92. ∀ tk ∈ (TONKHO) ∃! tk’ ∈ (TONKHO): (tk.Ma_hh= tk’.Ma_kh) ∩ (tk.Tondk = tk’.Tondk + tk’.Slnhap – tk’.Slxuat) Cuối ∀ Bảng tầm ảnh hưởng: Thêm Xóa Sửa TONKHO + (Tondk) - + (Tondk, Slnhap, Slxuat) Ràng buộc toàn vẹn trên nhiều quan hệ Ràng buộc toàn vẹn liên thuộc tính, liên bộ, liên thực thể RBTV9: Tổng số lượng hàng nhập (slnhap) trong quan hệ tồn kho hàng hóa (TONKHO) của một mặt hàng x trong một tháng y nào đó bằng tổng số lượng các chi tiết phiếu nhập hàng có liên quan đến mặt hàng x vào tháng y trong quan hệ chi tiết phiếu nhập hàng (ctpnh). Mô tả: ∀ tk ∈ (TONKHO): tk.Slnhap = ( ∑(ctpnh.soluong)) pnh ∈ PNH, ctpnh ∈ CTPNH sao cho : pnh.Ma_pnh = ctpnh Ma_pnh and tk.Ma_hh = ctpnh.Ma_hh and pnh.ngaypnh[thang] = tk.thangnamtk Cuối ∀ Bảng tầm ảnh hưởng: Thêm Xóa Sửa TONKHO + - + (slnhap) CTPNH + + +(soluong) PNH - - - RBTV10: Tổng số lượng hàng xuất (slxuat) trong quan hệ tồn kho hàng hóa (tonkho) của một mặt hàng x trong một tháng y
  93. nào đó bằng tổng số lượng các chi tiết phiếu giao hàng (tổng soluong trong ctpgh) và tổng số lượng các chi tiết hóa đơn bán lẻ (tổng soluong trong cthdbl) có liên quan đến mặt hàng x trong tháng y. Mô tả: ∀ tk ∈ (TONKHO): tk.Slxuat = ( ∑(ctpgh.soluong) + pgh ∈ PGH, ctpgh ∈ CTPGH sao cho : pgh.Ma_pnh = ctpgh Ma_pgh and tk.Ma_hh = ctpgh.Ma_hh and pgh.ngaypgh[thang] = tk.thangnamtk + ∑ cthdbl.soluong) hdbl∈HDBL,cthdbl∈CTHDBLsaocho: hdbl.Ma _ hdbl=cthdbl.Ma _ hdbl and tk.Ma _ hh =cthdbl.Ma _ hh and hdbl.ngayhdbl[thang] = tk.thangnamtk Cuối ∀ Bảng tầm ảnh hưởng: Thêm Xóa Sửa TONKHO + - + (slnhap) CTPGH + + + (soluong) PGH - - - CTHDBL + + + (soluong) HDBL - - - Tương tự các RBTV9 và RBTV10 ta có thể có thêm các ràng buộc tòan vẹn liên quan đến quan hệ công nợ (CONGNO) và quan hệ phiếu chi tiền và phiếu thu tiền. Ràng buộc liên quan đến thuộc tính tiền thu (tienthu) và tiền chi (tienchi) trong quan hệ công nợ (CONGNO). 4. Mô hình vật lý (cài đặt vật lý) Sau khi thiết kế thành phần dữ liệu của HTTT ở mức logic cho ta kết quả là mô hình dữ liệu quan hệ chuẩn bị cho việc cài đặt.
  94. Chúng ta sử dụng một hệ quản trị cơ sở dữ liệu có hỗ trợ cơ sở dữ liệu quan hệ để tiến hành việc cài đặt thành phần dữ liệu của hệ thống quản lý mua bán hàng hóa (mức vật lý). Ở đây chúng ta có thể dùng Microsoft SQL Server để cài đặt. Một số việc chính khi cài đặt thành phần dữ liệu có thể kể đến như: - Tạo cơ sở dữ liệu (create database). - Tạo các bảng dữ liệu (create tables) - Tạo database diagram. - Tạo các Triggers để kiểm tra và tự động xử lý khi có những thao tác dữ liệu vi phạm các ràng buộc toàn vẹn đề ra. 4.1 Tạo cơ sở dữ liệu
  95. 4.2 Tạo các bảng dữ liệu
  96. 4.3 Tạo database diagram
  97. 4.4 Tạo các Triggers SQL Server cho phép tạo các Triggers nhằm kiểm tra và tự động xử lý khi có những thao tác dữ liệu vi phạm các ràng buộc toàn vẹn đề ra.
  98. Chúng ta có thể tham khảo thêm những tài liệu về SQL Server, Oracle, tài liệu về các hệ quản trị cơ sở dữ liệu khác cũng như các tài liệu về thiết kế cơ sở dữ liệu để hiểu rõ, nắm vững và làm chủ các phần mềm, công cụ hỗ trợ việc cài đặt thành phần dữ liệu của HTTT.
  99. CHƯƠNG IV: PHÂN TÍCH THIẾT KẾ THÀNH PHẦN XỬ LÝ CỦA HỆ THỐNG THÔNG TIN 1 Dẫn nhập: Xử lý là khía cạnh động của HTTT. Trong những ứng dụng có qui mô nhỏ và vừa thì việc phân tích và thiết kế thành phần xử lý thường khá đơn giản hơn so với việc phân tích và thiết kế thành phần dữ liệu. Việc phân tích và thiết kế thành phần xử lý nhằm tìm hiểu, nắm vững và mô hình hóa những chức năng, họat động của HTTT trước khi cài đặt HTTT. Đối tượng quan tâm của việc phân tích thiết kế xử lý là các hoạt động hay xử lý thông tin và các dòng thông tin giữa các họat động/xử lý này. Thế giới quan HTTT cần tin học hóa Thành phần xử lý Cài đặt thành phần xử lý dựa vào các mô hình Tìm hiểu và mô đã thiết kế hình hóa Các mô hình hóa Nhóm chuyên gia Nhóm lập trình phân tích thiết kế HTTT Các thủ tục/hàm xử lý Các module xử lý CSDL
  100. Kết quả của quá trình phân tích và thiết kế thành phần xử lý là một danh sách liệt kê các xử lý, những mô tả của các xử lý đó, và mối liên hệ giữa chúng hay những mô hình hóa xử lý ở mức quan niệm (đối với giai đoạn phân tích xử lý) và logic (đối với giai đoạn thiết kế xử lý). Việc phân tích và thiết kế thành phần xử lý của một HTTT khi nhìn dưới góc độ các mức nhận thức của một HTTT thì bao gồm các mức sau: Mức quan niệm: nhằm liệt kê các xử lý, tìm hiểu nắm vững và mô hình hóa, đặc tả các thao tác xử lý của HTTT. Mức logic: nhằm làm nổi bậc lên mối liên hệ giữa các xử lý trong HTTT, làm rõ những thao tác xử lý nào cần tự động hóa, những thao tác xử lý nào phải xử lý bằng tay. Mức vật lý: cài đặt các xử lý dưới dạng các thủ tục hàm, các module của chương trình 2. Mô hình hóa thành phần xử lý: Như phần đầu đã nói, trong khuôn khổ giáo trình này chúng ta chỉ trình bày tiếp cận phân tích thiết kế HTTT theo hướng cấu trúc. Theo hướng tiếp cận này một số phương pháp mô hình hóa dùng trong giai đoạn phân tích thiết kế thành phần xử lý của HTTT có thể kể đến như: biểu đồ phân cấp chức năng (FHD), phương pháp DFD (Data Flow Diagram), phương pháp mô hình hóa xử lý tựa Merise. Mức quan niệm: Biểu đồ phân cấp chức năng là một phương pháp hay mô hình rất có ích trong giai đoạn phân tích xử lý ở mức quan niệm nhằm liệt kê tất cả những xử lý của HTTT theo mô hình quan cấp. Những phương pháp mô hình hóa dùng cho giai đoạn phân tích thành phần xử lý ở mức quan niệm có thể chia làm 2 nhóm sau: - Nhóm những phương pháp tập trung quan tâm đến dữ liệu và dòng dữ liệu giữa các xử lý. Một phương pháp rất nổi tiếng thuộc nhóm này xuất phát từ các chuyên gia làm phần mềm, thuộc trường phái Bắc Mỹ. Đó là phương pháp mô hình dòng dữ liệu. (DFD – Data Flow Diagram).
  101. - Nhóm những phương pháp tập trung quan tâm đến tính đồng bộ của các họat động/xử lý bằng cách xác định rõ điều kiện trước, sau của họat động. Phương pháp mô hình hóa xử lý Merise là một phương pháp mô hình hóa rất nổi tiếng thuộc nhóm này. Mô hình Merise có gốc từ mạng Petri-Net. Đây là một phương pháp thuộc trường phái Châu Âu. Mức logic: nhằm làm nổi bậc lên mối quan hệ giữa các chức năng xử lý trong HTTT chuẩn bị cho việc cài đặt các thủ tục xử lý. Mức logic/tổ chức thường làm rõ thêm những xử lý nào cần xử lý bằng máy (tự động hóa) và những xử lý nào phải xử lý bằng tay (do con người thực hiện thao tác xử lý). Mức vật lý: chúng ta sẽ phải cài đặt các xử lý thành các thủ tục, hàm dùng một ngôn ngữ lập trình nào đấy chứ không còn phải mô hình hóa xử lý ở mức này. 3. Biểu đồ phân cấp chức năng (Functional Hierachical Decomposition Diagram - FHD) FHD là công cụ khởi đầu để mô tả hệ thống qua chức năng do công ty IBM phát triển vì vậy cho đến nay nó vẫn còn được sử dụng. Nó cho phép phân rã dần dần các chức năng từ chức năng mức cao thành chức năng chi tiết nhỏ hơn và kết quả cuối cùng ta thu được một cây chức năng. Cây chức năng này xác định một cách rõ ràng để hiểu cái gì xảy ra trong hệ thống. 3.1 Thành phần của biểu đồ bao gồm: Các chức năng: được kí hiệu bằng hình chữ nhật trên có gán tên nhãn. Tên Kết nối: kết nối giữa các chức năng mang tính chất phân cấp và được kí hiệu bằng đoạn thẳng nối chức năng cha đến các chức năng con.
  102. Ví dụ: chức năng A phân rã thành các chức năng con B, C, D như hình vẽ sau: A B C D 3.2 Đặc điểm của biểu đồ phân cấp chức năng FHD: - Các chức năng được nhìn một cách khái quát nhất, trực quan dễ hiểu, thể hiện tính cấu trúc của phân rã chức năng. (Functionally Decomposed). - Dễ thành lập vì tính đơn giản: Nó trình bày hệ thống phải làm gì hơn là hệ thống làm như thế nào? - Mang tính chất tĩnh vì bỏ qua mối liên quan thông tin giữa các chức năng. Các chức năng không bị lặp lại và không bị dư thừa. - Rất gần gũi với sơ đồ tổ chức nhưng ta sẽ không đồng nhất nó với sơ đồ tổ chức: phần lớn các tổ chức doanh nghiệp nói chung thường gắn với chức năng. Ví dụ: biểu đồ phân cấp chức năng của hệ thống quản lý xí nghiệp. DOANH NGHIỆP Quản lý Quản lý Kế toán Quản lý Khách hàng Nhân sự Vật tư Q.lý Thông Quản lý Quản lý Tiêu thụ Nguyên tin cá nhân Đặt hàng Công nợ vật liệu Quản lý xuất nhập tồn kho