Chương 3 XÂY DỰNG CHƯƠNG TRÌNH MÁY TÍNH QUẢN LÝ VÀ KHAI THÁC TẠP CHÍ ĐỊA CHẤT
3.2. Phân tích thiết kế hệ thống web quản lý và khai thác Tạp chí Địa chất
Hệ thống được phân tích, thiết kế theo phương pháp top - down.
Phương pháp này cho ta cách nhìn tổng thể về hệ thống thông tin quản lý. Khi đó hệ thống website được phân tích thiết kế về chức năng, về dữ liệu... theo yêu cầu đặt ra của việc quản lý và khai thác Tạp chí Địa chất như ở các phần trên. Cụ thể việc phân tích thiết kế như sau:
3.2.1. Biểu đồ phân cấp chức năng của hệ thống (BPC)
Biểu đồ phân cấp chức năng là biểu đồ diễn tả sự phân rã dần dần các chức năng từ khái quát đến chi tiết. Biểu đồ chức năng có dạng cây. Biểu đồ này cho ta cách nhìn khái quát, dễ hiểu, từ tổng quan hệ thống đến chi tiết về các chức năng và nhiệm vụ cần thực hiện (thường ở mức diễn tả logic). Căn
75
cứ vào kết quả phân tích về quy trình nghiệp vụ và các yêu cầu chức năng của hệ thống được tin học hoá, ta có thể hình dung ra hệ thống bao gồm các chức năng cơ bản sau:
• Quản lý
• Xem tin (bài báo)
• Tìm kiếm
• Diễn đàn trao đổi
Biểu đồ phân cấp chức năng của hệ thống được biểu diễn ở hình 3.11:
Kiểm tra mật khẩu (1.1)
Bài báo (2.1)
HỆ THỐNG TẠP CHÍ ĐỊA CHẤT
Tìm kiếm (2) Quản lý
(1) Xem tin
(3) Diễn
đàn trao đổi (4)
76
Hình 3.11. Biểu đồ phân cấp chức năng
Từ biểu đồ phân cấp chức năng này, chúng ta có thể thấy rõ hơn nhiệm vụ của từng chức năng:
3.2.2. Biểu đồ luồng dữ liệu
Các thành phần của biểu đồ luồng dữ liệu được thể hiện ở các mục tiếp theo.
77
3.2.2.1. Biểu đồ luồng dữ liệu mức khung cảnh (Mức 0)
Biểu đồ luồng dữ liệu mức khung cảnh, biểu diễn một chức năng duy nhất, đó là chức năng tổng quát của hệ thống (hệ thống thông tin) và các đối tác của hệ thống, cùng với các luồng thông tin trao đổi giữa chức năng tổng quát và các đối tác.
Trong biểu đồ này, tất cả các đối tác đều phải xuất hiện, nhưng các kho dữ liệu không được xuất hiện ở biểu đồ mức khung cảnh.
Như vậy ta có biểu đồ luồng dữ liệu mức khung cảnh của hệ thống thông tin như hình 3.12.
Hệ thống Tạp chí Địa chất
Người xem tin Người quản trị
hệ thống Tin
Tạo tin, thông tin người dùng
Tin, thông tin người dùng Yêu cầu tin
Tạo tin, thông tin cá nhân
Tin, thông tin cá nhân Người viết bài
78
Hình 3.12. Biểu đồ luồng dữ liệu mức khung cảnh 3.2.2.2. Biểu đồ luồng dữ liệu mức đỉnh (Mức 1)
Biểu đồ luồng dữ liệu mức đỉnh miêu tả sự phân cấp chức năng cùng với các luồng trao đổi dữ liệu giữa các chức năng con và các đối tác của hệ thống. Ở mức này cũng chỉ gồm một biểu đồ duy nhất.
Căn cứ vào việc phân tích này ta có biểu đồ luồng dữ liệu mức đỉnh của hệ thống thông tin như hình 3.13.
79
Hình 3.13. Biểu đồ luồng dữ liệu mức đỉnh
3.2.2.3 Biểu đồ luồng dữ liệu mức dưới đỉnh (Mức 2)
3.2.2.3.1. Biểu đồ luồng dữ liệu mức 2 ứng với chức năng quản lý Hình 3.14 biểu diễn biểu đồ luồng dữ liệu mức dưới đỉnh (mức 2)
Yêu cầu tin
Người quản trị
1. Quản lý
Người quản trị 2. Tìm
kiếm
Người xem tin Người duyệt bài,
biên tập
Người viết bài
Người viết bài
Người duyệt tin,
biên tâp
Người xem tin Người
quản trị
Duyệt bài, trả bải, thông tin cá nhân Tin, TT cá nhân
Viết bài, sửa bải thông tin cá nhân Tin, TT
cá nhân
Tin
Yêu cầu tin
Viết bài, sửa bải, thông tin cá nhân
4. Diễn đàn
Người quản trị
Người duyệt, biên tập
tin
Tin
Dữ liệu hệ thống
Tin
3. Xem tin
80
Tin tức
1.3 Cập nhật chuyên
mục
Ngườ i viết Thông tin bài
người dùng
1.1 Kiểm tra mật
khẩu
Thông tin người
dùng Thôn
g tin về tin
Cơ sở dữ liệu hệ thống
Thông tin về nhóm
tin Thông tin về chuyên mục Người
duyệt,
biên tập Thông tin truy cập
Quyền truy
cập
1.4 Cập nhật tin
1.5 Cập nhật nhóm
người dùng
Thông tin về nhóm người dùng
1.6 Cập nhật người
dùng
Người duyệt, biên tập bài
Người viết
bài Tin tức
Người duyệt, biên tập bài Thông tin
người dùng
Tin tức Quản trị hệ
thống
Người quản trị hệ thống
Người quản trị hệ thống
1.2 Cập nhật
nhóm tin Thông tin
về nhóm
tin Thông tin
về chuyên mục Người
viết bài
Quyền truy
cập
Hình 3.14. Biểu đồ luồng dữ liệu mức dưới đỉnh (mức 2)của chức năng quản lý
81
3.2.2.3.2. Biểu đồ luồng dữ liệu mức 2 ứng với chức năng tìm kiếm
Hình 3.15. Biểu đồ luồng dữ liệu mức dưới đỉnh chức năng tìm kiếm
Yêu cầu tin
Dữ liệu hệ thống
Người quản trị
2.2 Tìm người dùng
Người xem tin
2.1 Tìm tin
Người viết bài
Người duyệt, biên
tập Người
quản trị
Tin Thông tin về
người dùng
Yêu cầu tin
Yêu cầu tin
Tin Tin
82
3.2.2.4. Biểu đồ luồng dữ liệu mức 3
Biểu đồ luồng dữ liệu ứng với chức năng cập nhật tin
Hình 3.16. Biểu đồ luồng dữ liệu mức 3 chức năng cập nhật tin 3.2.3. Thiết kế cơ sở dữ liệu
Dữ liệu được tổ chức theo mô hình quan hệ vì các lí do sau:
- Đơn giản: các dữ liệu được biểu diễn dưới dạng duy nhất là quan hệ, đó là các bảng giá trị, khá tự nhiên và gần gũi với người dùng.
- Chặt chẽ: các khái niệm được hình thức hoá cao, cho phép áp dụng các công cụ toán học, các thuật toán.
Dữ liệu hệ thống
Người quản trị
1.4.1 Thêm tin
1.4.4 Trả lại tin
Người duyệt,
biên tập Người
quản trị
Tin
Thông tin về tin
Tin Tin
1.4.2 Sửa tin
1.4.3 Xóa tin
Tin
Người viết bài
Tin chờ duyệt
Tin Tin
Người viết bài
Tin bị trả lại
1.4.6 Bỏ xuất bản 1.4.5 Xuất
bản tin
Tin
Tin Tin
83
- Trừu tượng hoá cao: mô hình chỉ dừng ở mức quan niệm, nghĩa là độc lập với mức vật lý, sự cài đặt, các thiết bị, nhờ đó làm tăng tính độc lập giữa dữ liệu và chương trình.
- Cung cấp các ngôn ngữ truy vấn ở mức cao như SQL, dễ sử dụng và đã trở thành chuẩn.
Vì vậy chúng ta lựa chọn mô hình quan hệ để thiết kế dữ liệu cho Website Tạp chí Địa chất.
3.2.3.1. Sơ đồ thực thể liên kết E-R
Sơ đồ thực thể liên kết E-R biểu diễn mối quan hệ giữa các bảng dữ liệu. Sơ đồ này cho chúng ta biết mối liên quan của các bảng dữ liệu (thực thể), từ đó hình dung ra cách xử lý dữ liệu.
Để đáp ứng được những yêu cầu trên hệ thống cần được thiết kế chặt chẽ về mặt cơ sở dữ liệu, đảm bảo sao cho tránh dư thừa dữ liệu nhưng vẫn cung cấp đầy đủ các thông tin quản lý.
Từ những phân tích thực tế yêu cầu thông tin quản lý và quá trình phân tích chức năng (sự xuất hiện của các luồng dữ liệu và các kho dữ liệu tương ứng), chúng ta đưa ra các bảng dữ liệu và mối quan hệ giữa chúng.
Ta có sơ đồ quan hệ giữa các bảng của hệ thống như ở hình 3.17.
84
Hình 3.17. Sơ đồ quan hệ của hệ thống thông tin
Mô hình quan hệ trên hoàn toàn đáp ứng được các yêu cầu của hệ quản trị cơ sở dữ liệu và phù hợp với hệ thống website đã đặt ra. Chi tiết về trường dữ liệu trong các bảng như sau:
Bảng 3.1. tblSection (Bảng lưu thông tin về các nhóm tin)
Tên trường Kiểu dữ liệu Độ rộng Nội dung Khoá chính
SectionID Int 4 Mã nhóm tin 1
SectionName nvarchar 100 Tên nhóm tin 0
85
Bảng 3.2. tblCategory (Bảng lưu thông tin về các chuyên mục tin)
Tên trường Kiểu dữ liệu Độ rộng Nội dung Khoá chính
CateID Int 4 Mã chuyên mục 1
CateName nvarchar 100 Tên chuyên mục 0
SectionID Int 4 Mã nhóm tin 0
Bảng 3.3. tblNews (Bảng lưu thông tin về tin)
Tên trường Kiểu dữ liệu Độ rộng Nội dung Khoá chính
NewsID Int 4 Mã tin 1
CateID Int 4 Mã chuyên mục 0
Title nvarchar 200 Tiêu đề 0
Content ntext 16 Nội dung tin 0
Abstract ntext 16 Tóm tắt tin 0
Comment ntext 16 Chú thích 0
CreatedBy Int 4 Người tạo tin 0
CreatedDate smalldatetime 4 Ngày tạo tin 0
ModifiedBy Int 4 Người sửa tin 0
ModifiedDate smalldatetime 4 Ngày sửa tin 0
PublishedBy Int 4 Người duyệt tin 0
PublishedDate smalldatetime 4 Ngày duyệt tin 0
DeniedBy Int 4 Người trả lại tin 0
DeniedDate smalldatetime 4 Ngày trả lại tin 0
State nvarchar 50 Trạng thái tin 0
SoBaoID Int 4 Mã số báo 0
ChuyenDe2ID Int 4 Mã chuyên ngành 2 0
VungLanhThoID Int 4 Mã vùng lãnh thổ 0
VungDiaChatID Int 4 Mã vùng địa chất 0
86
Bảng 3.4. tblGroup (Bảng lưu thông tin về nhóm người dùng)
Tên trường Kiểu dữ liệu Độ rộng Nội dung Khoá chính
GroupID Int 4 Mã nhóm 1
GroupName nvarchar 50 Tên nhóm 0
Permission tinyint 1 Quyền truy nhập 0
Bảng 3.5. tblUser (Bảng lưu thông tin về người dùng)
Tên trường Kiểu dữ liệu Độ rộng Nội dung Khoá chính
UserID Int 4 Mã người dùng 1
UserName nvarchar 50 Tên người dùng 0
Password nvarchar 50 Mật khẩu 0
Fullname nvarchar 40 Tên đầy đủ 0
Email nvarchar 100 Địa chỉ email 0
Description ntext 16 Thông tin mô tả 0
CreatedDate smalldatetime 4 Thời điểm đăng ký 0 LastLogin smalldatetime 4 Đăng nhập lần cuối 0
GroupID Int 4 Mã nhóm 0
Bảng 3.6. tblSoBao (Bảng lưu thông tin về người dùng)
Tên trường Kiểu dữ liệu Độ rộng Nội dung Khoá chính
SoBaoID Int 4 Mã số báo 1
SoTapchi Char 10 Số Tạp chí 0
ThangXuatBan Char 10 Tháng xuất bản 0
NamXuatBan Int 4 Năm xuất bản 0
LoatID Int 4 Loạt 0
87
Bảng 3.7. tblTacGia (Bảng lưu thông tin về người dùng)
Tên trường Kiểu dữ liệu Độ rộng Nội dung Khoá chính
TacGiaID Int 4 Mã tác giả 1
TenTG Nvarchar 100 Tên tác giả 0
TenCQ Nvarchar 100 Cơ quan 0
Email Nvarchar 50 Email 0
Bảng 3.8. tblLoat (Bảng lưu thông tin về người dùng)
Tên trường Kiểu dữ liệu Độ rộng Nội dung Khoá chính
LoatID Int 4 Mã loạt 1
TenLoat Nvarchar 10 Tên loạt 0
NgonNgu Nvarchar 50 Ngôn ngữ 0
3.2.3.2. Sử dụng Store Procedure
Store Procedure là một tập lệnh SQL được sắp xếp trong một đơn vị logic để thực thi một nhiệm vụ riêng. Store Procedure dùng đóng gói các thao tác, các truy vấn để thực hiện trên máy chủ chứa Cơ sở dữ liệu.
Store Procedure được biên dịch trước, được gọi với tham số khác nhau và đưa kết quả khác nhau.
Trong chương trình này do đòi hỏi của chương trình về kết xuất thông tin để hiển thị hay làm báo cáo nên chúng ta cũng xây dựng các Store Procedure sau:
- Section_GetSingle : để lấy một dòng trong bảng Section - Section_Get : để lấy tất cả các dòng trong bảng Section - Section_Delete : để xóa một dòng trong bảng Section - Section_Add : để thêm một dòng vào bảng Section
88
- Section_Update: để cập nhật thông tin về một dòng trong bảng Section - Category_GetSingle : để lấy một dòng trong bảng Category
- Category_Get : để lấy tất cả các dòng trong bảng Category - Category_Delete : để xóa một dòng trong bảng Category - Category_Add : để thêm một dòng vào bảng Category
- Category_Update : để cập nhật thông tin về 1 dòng trong bảng Category - Groups_Add: để thêm một nhóm người dùng
- Groups_Delete : để xóa một nhóm người dùng - News_Delete : để xóa một tin
- News_Get : để lấy tất cả các tin trong bảng News - News_UpdateState: để cập nhật trạng thái của một tin - News_Update: để cập nhật thông tin về một tin
- News_Add: để thêm một tin - News_GetSingle: để lấy một tin
- News_Comment : để lấy phần chú thích của tin - Groups_GetAll : để lấy thông tin về tất cả các nhóm - Groups_UpDate : cập nhật thông tin về một nhóm - Users_Get : lấy thông tin về một người dùng
- Users_GetAll : lấy tất cả các thông tin về người dùng trong bảng User - Users_Add : để thêm một người dùng
- Users_Delete : để xóa một người dùng
- Users_Search: để tìm kiếm thông tin về người dùng ….v.v
89