1 12/24/2014 Chơng 3. thiết kế hệ thống thông tin quản lý 3.1. Khái niệm thiết kế HTTTQL (ISO) Thiết kế HTTTQL là quá trình xác định các cấu trúc và các thành phần của phần cứng và phần mềm, xác định các mô hình, các giao diện và dữ liệu của HTTTQL để thoả mãn những yêu cầu xác định. 3.2. Qui trình thiết kế HTTTQL Qui trình thiết kế HTTTQL bao gồm các giai đoạn công việc: 1. Mô hình hoá thực thể 2. Thiết kế logic cơ sở dữ liệu 3. Thiết kế phần mềm 4. Thiết kế giao diện Để TK HTTT ta phải sử dụng các tài liệu sau đây của bớc PT HTTT: - Sơ đồ chức năng - DFD 3.3. Mô hình hoá thực thể Các tên khác: Xây dựng mô hình thực thể Mô hình hoá dữ liệu Phân tích dữ liệu logic Mô hình hoá thực thể là một phơng pháp xác định các đơn vị thông tin có ích cho hệ thống, đợc gọi là các thực thể, và xác định rõ mối quan hệ bên trong hoặc các tham trỏ chéo giữa chúng. Trong trờng hợp này, mọi thành phần dữ liệu chỉ đợc lu trữ một lần trong toàn bộ HTTT của tổ chức và có thể truy nhập đợc từ bất kỳ chơng trình nào. 3.3.1. Một số khái niệm Thực thể Thực thể ( Entity ) là một tập hợp đối tợng có chung những đặc điểm nào đó, mà nhà quản lý muốn lu trữ thông tin về chúng. Ví dụ, đối với chủ một cửa hàng thì hàng hoá là một thực thể, khách hàng là một thực thể, hoá đơn bán hàng là một thực thể Khi nói đến thực thể có nghĩa là nói đến một tập hợp các đối tợng cùng loại. Ví dụ, thực thể khách hàng bao gồm tất cả những ngời có mua hàng của cửa hàng. Còn khách hàng A, khách hàng B đ- ợc gọi là một phần tử thực thể (hoặc hoặc một bản thể) của thực thể khách hàng. Thuộc tính của thực thể Mỗi thực thể có một số ( tập hợp ) các tính chất. Các tính chất của thực thể đợc gọi là thuộc tính của thực thể. Ví dụ thực thể khách hàng có các thuộc tính sau đây: Các thuộc tính của thực thể KH Một bản thể 1 2 12/24/2014 Mã khách hàng Loại khách hàng Tên khách hàng Điện thoại Tài khoản NH ờng xuyên ơng Vân P5 B6 TT ĐHKTQD Hà Nội Ví dụ HTTT QLSV gồm có các thực thể sau đây: Thực thể SINHVIEN Giải thích MASV Mã sinh viên MALOP TENSV Tên sinh viên QUEQUAN Quê quán NGAYSINH Ngày sinh Thực thể LOP MALOP TENLOP MAKHOA Thực thể PHIEUDIEM SOPHIEU MASV MAMH NGAYTHI DIEM Thực thể MONHOC MAMH TENMH SOHTRINH Thực thể KHOA MAKHOA TENKHOA DIACHI DIENTHOAI Thực thể LYLICHSV MASV LYLICH Tập hợp các thuộc tính của thực thể nhiều hay ít phụ thuộc vào nhu cầu sử dụng thông tin của nhà quản lý. Thuộc tính tên gọi của thực thể là thuộc tính mà mỗi giá trị cụ thể của nó là tên gọi của một bản thể. Ví dụ: Tên sinh viên là thuộc tính tên gọi của thực thể sinh viên. 2 3 12/24/2014 Thuộc tính định danh của thực thể là một hoặc một số thuộc tính của thực thể mà giá trị của chúng cho phép xác định duy nhất một bản thể. Thuộc tính định danh là thuộc tính bắt buộc phải có đối với mọi thực thể. Thuộc tính định danh thờng đợc gạch dới. Ví dụ: Mã sinh viên là thuộc tính định danh của thực thể sinh viên. Thuộc tính mô tả của thực thể là thuộc tính cung cấp thông tin về thực thể này cho ngời sử dụng. Mỗi thực thể đều có các thuộc tính mô tả. Ví dụ: Thuộc tính năm sinh là một thuộc tính mô tả của thực thể sinh viên. Thuộc tính kết nối của thực thể là thuộc tính đợc sử dụng để xác định quan hệ giữa một thực thể này với một thực thể khác. Ví dụ: Thuộc tính mã lớp của thực thể sinh viên là thuộc tính kết nối. Nó đợc dùng để xác định quan hệ giữa thực thể sinh viên với thực thể lớp. 3.3.2. Quan hệ giữa các thực thể Giữa các thực thể có thể có 3 kiểu quan hệ chính sau đây: - QH 1 - 1 : Thực thể Có quan hệ Với thực thể SINHVIEN MASV TENSV MALOP LYLICHSV MASV LYLICH Mỗi sinh viên chỉ có 1 LYLICH và mỗi LYLICH là của một sinh viên duy nhất. Một bản thể của thực thể sinh viên có một bản thể tơng ứng duy nhất của thực thể LYLICHSV. - QH 1 - N Thực thể Có quan hệ Với thực thể SINHVIEN MALOP MALOP TENLOP MAKHOA Mỗi lớp có nhiều sinh viên và mỗi sinh viên chỉ có thể thuộc về một lớp duy nhất. Nhiều bản thể của thực thể sinh viên có thuộc tính MALOP bằng (=) thuộc tính MALOP của 1 bản thể của thực thể LOP. - QH nhiều - nhiều : N - N Thực thể PBGIANG (MAGV,MAMH, MALOP) và Thực thể DSMH_GV (MAMH, MAGV) PBGIANG (Phiếu Báo Giảng) DSMH_GV Mỗi GV có thể giảng nhiều môn học và mỗi môn học đợc giảng bởi nhiều giáo viên. 3 1 4 12/24/2014 Nhiều bản thể của thực thể PBGIANG có thuộc tính MAGV = giá trị của thuộc tính MAGV của nhiều bản thể của thực thể DSMH_GV. Nhiều bản thể của thực thể PBGIANG có thuộc tính MALOP = giá trị của thuộc tính MALOP của nhiều bản thể của thực thể DSMH_GV. 3.3.3. Các quy tắc vẽ sơ đồ quan hệ thực thể (Entity Relation Diagram) Sơ đồ quan hệ thực thể (ERD) là sơ đồ thể hiện quan hệ giữa các thực thể trong một HTTTQL. Các ký pháp: - Khối hình chữ nhật : thể hiện một thực thể cần đợc lu trữ thông tin trong HTTT. - Khối hình thoi : thể hiện quan hệ giữa hai thực thể. Bên trong hình thoi này là một động từ hoặc cụm động từ thể hiện quan hệ giữa hai thực thể. - Đờng thẳng nối hai thực thể có quan hệ với nhau, có hình thoi thể hiện mối quan hệ đó. - Các kí tự 1, N chỉ ra kiểu quan hệ một, nhiều. Ví dụ: ví dụ: Sơ đồ quan hệ thực thể của HTTT QLSV có dạng sau đây: 3.3. Thiết kế logic cơ sở dữ liệu 3.3.1. Cơ sở dữ liệu CSDL (Database DB) 3.3.2. Khái niệm bảng Bảng là một tập hợp thông tin về một thực thể đợc ghi trên đĩa từ. Bảng chia thành các dòng và các cột. Mỗi cột của bảng đợc gọi là một trờng, phản ánh một thuộc tính của thực thể. Thực thể có bao nhiêu thuộc tính thì bảng tơng ứng có bấy nhiêu trờng. 4 PhieuDiem có có có SinhVien Lop N N 1 1 có Khoa N 1 MonHoc N 1 có LyLich 11 5 12/24/2014 Mỗi dòng của bảng đợc gọi là một bản ghi. Bản ghi là một tập hợp thông tin phản ánh một bản thể. Thực thể có ban nhiêu bản thể thì bảng tơng ứng có bấy bản ghi. Khoá (key) là một hoặc nhiều trờng kết hợp với nhau để xác định một cách duy nhất một bản ghi (một bản thể ). Một CSDL thờng chứa thông tin về nhiều thực thể. Mà mỗi thực thể có một bảng riêng. Nh vậy một CSDL thờng gồm nhiều bảng. Các yếu tố xác định một trờng Tên trờng Tên trờng là một tên do NSD tự đặt cho trờng. Thông thờng, trong các CSDL, tên trờng là một dãy có từ 1 đến 10 ký tự, gồm chữ cái, chữ số, và dấu ngang. Tên trờng không đợc chứa dấu cách. Kiểu trờng Tuỳ theo đặc điểm của trờng, mà một trờng có thể thuộc về một trong các kiểu dữ liệu sau đây: - Kiểu số (N) - Kiểu ký tự (C) - Kiểu ngày tháng (D) mm/dd/yyyy - Kiểu Memo Kích thớc trờng: là số byte dùng để chứa giá trị trờng. Phần thập phân: số chữ số phần lẻ (nếu có) 3.3.2. Chuẩn hoá dữ liệu (XGT) Khái niệm: chuẩn hoá DL là việc xem xét danh sách các thuộc tính của thực thể và áp dụng các quy tắc chuẩn hoá đối với danh sách này để biến nó thành dạng chuẩn. Dạng chuẩn là dạng: * Tối thiểu việc lặp lại; * Tránh đợc d thừa thông tin * Xác định và giải quyết sự nhập nhằng Các quy tắc chuẩn hoá: Có nhiều quy tắc chuẩn hoá, hay dùng nhất là 3 quy tắc sau đây: * 1 NF: 1 NF quy định rằng, trong mỗi danh sách không đợc phép chứa các thuộc tính lặp. Nếu có các thuộc tính nh vậy thì phải tách các thuộc tính lặp đó ra thành các danh sách con, gán cho nó một tên, tìm cho nó một thuộc tính định danh và thêm thuộc tính định danh của danh sách gốc. * 2 NF : 2 NF quy định rằng, trong mỗi danh sách mỗi thuộc tính phải phụ thuộc hàm vào toàn bộ khoá, chứ không đợc phép phụ thuộc vào một phần của khoá. Nếu có sự phụ thuộc nh vậy thì phải tách các thuộc tính đó ra thành các danh sách con mới. Lấy bộ phận khoá đó làm khoá cho danh sách mới, đặt cho nó một tên phù hợp với nội dung của các thuộc tính trong danh sách. * 3 NF :3 NF quy định rằng, trong mỗi danh sách không đợc có sự phụ thuộc bắc cầu giữa các thuộc tính. Nếu thuộc tính X phụ thuộc vào thuộc tính Y và thuộc tính Y phụ thuộc vào thuộc tính Z thì phải tách các thuộc tính đó ra thành 2 danh sách con mới, một danh sách chứa quan hệ X - Y và một danh sách chứa quan hệ Y - Z. Xác định khoá và tên cho mỗi danh sách. Mỗi danh sách sẽ tơng ứng với một bảng. (TV Tú; HTTTQL; 167 - 170) 3.3.3. Xác định các bảng Căn cứ vào các danh sách các thuộc tính đã xác định trong bớc trớc, trong bớc này cần xác định các bảng cho các thực thể có trong cơ sở dữ liệu này. Qui mô bài toán càng lớn, các dữ liệu cần thu thập và xử lý càng đa dạng thì số lợng các bảng càng nhiều. 5 6 12/24/2014 Các thực thể trong một cơ sở dữ liệu có quan hệ với nhau, nên các bảng cũng có quan hệ với nhau. Sau khi xác định các bảng cần phải chỉ rõ các quan hệ giữa các bảng đó. 3.3.4. Xác định quan hệ giữa các bảng Trong bớc công việc này cần phải chỉ ra cho mỗi thực thể một một (hoặc các) thuộc tính liên kết. Các thuộc tính này xác định các mối quan hệ giữa các bảng. 3.3.5. Ví dụ 1: Xây dựng cơ sở dữ liệu Quản lý tiền mặt Mục này trình bầy cách sử dụng hệ quản trị cơ sở dữ liệu FoxPro để xây dựng cơ sở dữ liệu Quản lý tiền mặt . Bài toán đợc giải quyết theo cách đơn giản nhất và các modul chơng trình cũng đợc viết theo cách đơn giản nhất để học viên dễ theo dõi và thử nghiệm. a. Xác định mục đích xây dựng cơ sở dữ liệu QLTM Tục ngữ có câu Đồng tiền liền khúc ruột. Vì vậy trong đời sống cá nhân cũng nh trong hoạt động của một tổ chức, một doanh nghiệp, tiền mặt là đối tợng đợc quản lý rất chặt chẽ. Xây dựng cơ sở dữ liệu Quản lý tiền mặt nhắm các mục đích sau đây: - Thu thập và lu trữ toàn bộ dữ liệu liên quan đến hoạt động thu - chi tiền mặt của doanh nghiệp; - Cho phép tra cứu nhanh về tình hình thu - chi tiền mặt của từng khách hàng; - Tạo lập và in các báo cáo thu - chi tiền mặt theo những mẫu khác nhau vào những thời điểm nhất định để phục vụ quá trình quản lý của lãnh đạo; b. Xác định các thực thể và các thuộc tính của chúng Tham gia bài toán này có các thực thể khách hàng, đơn vị công tác và chứng từ. Khách hàng: là tất cả những ngời có quan hệ đến hoạt động thu - chi tiền mặt của doanh nghiệp. Khách hàng có thể là ngời cung cấp hàng (phải chi trả tiền cho họ), ngời tiêu thụ hàng (phải thu tiền của họ), cán bộ nhân viên của đơn vị (phải chi luơng, chi thởng, chi tạm ứng hoặc thu nợ của họ). Chúng ta quan tâm những thuộc tính sau đây của thực thể khách hàng: Mã khách hàng, tên khách hàng, loại khách hàng, mã đơn vị công tác, địa chỉ. Đơn vị công tác: là một bản danh sách các đơn vị mà tại đó các khách hàng đang làm việc. Chúng ta quan tâm những thuộc tính sau đây của thực thể đơn vị công tác: Mã đơn vị công tác, tên đơn vị công tác. Chứng từ thu - chi tiền: Mỗi lần thu hoặc chi tiền đều phải có chứng từ. Chứng từ là văn bản có tính pháp lý, xác nhận việc phát sinh hoạt động thu hoặc chi tiền. Một chứng từ thu - chi tiền gồm nhiều thuộc tính. Trong bài toán này chúng ta chỉ quan tâm đến những thuộc tính sau đây của thực thể chứng từ thu - chi tiền: Số chứng từ, loại chứng từ, mã khách hàng, số tiền, ngày phát sinh chứng từ. c. Xác định các bảng tơng ứng với các thực thể. Trong FoxPro ngời ta hay dùng từ tệp cơ sở dữ liệu thay cho từ bảng. Trong phần này ta sẽ xác định cho mỗi thực thể đã nêu trong phần trên một tệp cơ sở dữ liệu tơng ứng. Thực thể khách hàng có tệp cơ sở dữ liệu là KH_HANG.DBF. Tệp này các cấu trúc nh sau: KH_HANG.DBF Tên trờng Kiểu và kích thớc trờng ý nghĩa Mã khách hàng LOAIKH Loại khách hàng 6 7 12/24/2014 HOVATENKH Họ và tên khách hàng MADVCT Mã đơn vị công tác Thực thể đơn vị công tác có tệp cơ sở dữ liệu là DONVICT.DBF. Tệp này các cấu trúc nh sau: DONVICT.DBF Tên trờng Kiểu và kích thớc trờng ý nghĩa MADVCT Mã đơn vị công tác TENDVCT Tên đơn vị công tác Thực thể chứng từ có tệp cơ sở dữ liệu là CHUNGTU.DBF. Tệp này các cấu trúc nh sau: CHUNGTU.DBF Tên trờng Kiểu và kích thớc trờng ý nghĩa N(5)Số chứng từ C(1)Loại chứng từ : N là nhập, X là xuất N(4)Mã khách hàng N(8) NGAYPS DNgày phát sinh Chúng ta thấy rằng mỗi thuộc tính của thực thể đều có một trờng trong tệp cơ sở dữ liệu tơng ứng với thực thể này. Quan hệ giữa các tệp cơ sở dữ liệu thể hiện quan hệ giữa các thực thể. Các quan hệ giữa ba tệp cơ sở dữ liệu nêu trên đợc trình bầy trong sơ đồ dới đây: 7 8 12/24/2014 d. Xây dựng các modul chơng trình Chơng trình giải bài toán này đợc viết trong môi trờng FoxPro For Windows. Chơng trình giải bài toán gồm nhiều modul. Mỗi modul đợc tổ chức thành một chơng trình độc lập và thực hiện một nhiệm vụ riêng. Các modul chơng trình đợc viết thheo cách đơn giản nhất để học viên dễ theo dõi và thử nghiệm. 3.4. Thiết kế phần mềm của HTTTQL Đây là bớc công việc cực kỳ quan trọng và phức tạp. Vì với một cơ sở phần cứng đã có thì khả năng của HTTTQL phụ thuộc rất nhiều vào phần mềm. Hơn nữa, xây dựng các phần mềm là một công việc khó khăn, vừa là khoa học, vừa là nghệ thuật. Là KH vì nó có các kỹ thuật và phơng pháp đã đợc tiêu chuẩn hoá. Là nghệ thuật vì nó đòi hỏi óc sáng tạo, trí tởng tợng và sự khéo léo mà không phải ai cũng có. 3.4.1. Khái niệm phần mềm 3.4.2. Qui trình xây dựng phần mềm gồm các công việc sau đây: * Xác định mục đích của phần mềm *Xác định các thông tin kết quả (đầu ra), các thông tin ban đầu (đầu vào) *Xác định các cấu trúc dữ liệu * Thiết kế thuật toán * Chọn ngôn ngữ lập chơng trình * Viết chơng trình * Thử nghiệm chơng trình * Biên soạn tài liệu hớng dẫn 3.4.2. Lựa chọn ngôn ngữ lập trình Chọn ngôn ngữ lập trình phụ thuộc vào: - Đặc điểm của bài toán cần giải quyết - Đặc điểm của ngôn ngữ lập trình - Khả năng của các MTĐT hiện có - Khả năng và thói quen của lập trình viên Giới thiệu về các ngôn ngữ lập trình Ngôn ngữ thế hệ 0: ngôn ngữ máy Ngôn ngữ thế hệ 1: hợp ngữ (assembler) Ngôn ngữ thế hệ 2: FORTRAN, COBOL, BASIC 8 DOVICT.DBF MADVCT TENDVCT CHUNGTU.DBF SOCT LOAICT MAKH SOTIEN NGAYPS KH_HANG.DBF MAKH LOAIKH HOVATENKH MADVCT DIACHI N N Hình 5.1. Quan hệ giữa các tệp cơ sở dữ liệu 9 12/24/2014 Ngôn ngữ thế hệ 3 : Là các ngôn ngữ lập trình vạn năng, cấp cao, nh ALGOL-60, ALGOL - 68, PL1, PASCAL C++ là ngôn ngữ lập trình HĐT. Visual Basic là ngôn ngữ lập trình rất mạnh, làm việc trong môi tr ờng VISUAL, hỗ trợ lập trình HĐT và Internet. JAVA - một ngôn ngữ lập trình mới, nhỏ gọn, chuyên dùng để lập trình trên mạng và lập trình HĐT. Môi trờng .NET của Microsoft. 3.4.3. Hai phơng pháp xây dựng phần mềm Có 2 phơng pháp xây dựng các phần mềm: TDD ( Top Down Design) DTD ( Down Top Design) 3.4.4. Lựa chọn các phần mềm có sẵn trên thị trờng 3.4.5. Viết tài liệu hớng dẫn sử dụng phần mềm 3.4.7. Ví dụ một phần mềm (Xem phụ lục cuối chơng) 3.5. Thiết kế giao diện 3.5.1. Khái niệm giao diện Giao diện là môi trờng, là phơng tiện mà qua đó con ngời có thể giao tiếp với MTĐT. 3.5.2. Các yêu cầu đối với giao diện - Dễ sử dụng - Thân thiện với ngời sử dụng - Rõ ràng, tránh gây nhầm lẫn - Dễ học - Dễ kiểm soát - Dễ phát triển - Đẹp, gây thiện cảm, th dãn (?) 3.5.3. Các loại giao diện thờng dùng - GD theo kiểu text: kiểu điển hình của MS DOS - GD kiểu thực đơn (VD thực đơn của các phần mềm khác nhau) - GD theo kiểu các hộp hội thoại - GD thông qua các màn hình nhập dữ liệu - GD kiểu đồ thị và báo cáo: là cách MTĐT trình bầy các kết quả tính toán cho con ngời sử dụng. - GD kiểu đồ hoạ của WINDOWS Cách này sử dụng các biểu tợng để giao tiếp N - M. Nhờ đó ngời không biết chữ cũng có thể sử dụng đợc MTĐT. Các ngôn ngữ lập trình bậc cao đều có các công cụ chuyên dùng để thiết kế các giao diện ngời - máy. 3.6. Lập báo cáo giai đoạn thiết kế (XGT) - Nội dung các công việc đã làm; - Các bảng thiết kế đã tạo ra; - Các ý kiến đánh giá về các phơng án, các giải pháp đã lựa chọn. - Các kết luận Hết chơng 3 9 . 1 12/24/2014 Chơng 3. thiết kế hệ thống thông tin quản lý 3.1. Khái niệm thiết kế HTTTQL (ISO) Thiết kế HTTTQL là quá trình xác định các cấu trúc và các thành. 3.2. Qui trình thiết kế HTTTQL Qui trình thiết kế HTTTQL bao gồm các giai đoạn công việc: 1. Mô hình hoá thực thể 2. Thiết kế logic cơ sở dữ liệu 3. Thiết kế phần mềm 4. Thiết kế giao diện Để. mối quan hệ giữa các bảng. 3.3.5. Ví dụ 1: Xây dựng cơ sở dữ liệu Quản lý tiền mặt Mục này trình bầy cách sử dụng hệ quản trị cơ sở dữ liệu FoxPro để xây dựng cơ sở dữ liệu Quản lý tiền mặt