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
Trang 1Chơ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ể
Trang 2M· 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
MALOP
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
Trang 3Thuộ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
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)
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
1
Trang 4Nhiề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
PhieuDiem
có
SinhVien Lop
N
N
1
1
có
Khoa
N
1
MonHoc
N
1
có
LyLich
1 1
Trang 5Mỗ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
Trang 6Cá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
Trang 7HOVATENKH Họ và tên khách hàng
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
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
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)
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:
Trang 8d 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
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
Trang 9Ngô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