KHẢO SÁT, PHÂN TÍCH YÊU CẦU BÀI TOÁN I.1 Tình hình thực tế Hiện nay, trên thế giới cũng như ở Việt Nam công nghệ thông tin đã trở thành công nghệ mũi nhọn, nó là ngành khoa học kỹ thuật
Trang 1I KHẢO SÁT, PHÂN TÍCH YÊU CẦU BÀI TOÁN
I.1 Tình hình thực tế
Hiện nay, trên thế giới cũng như ở Việt Nam công nghệ thông tin đã trở thành công nghệ mũi nhọn, nó là ngành khoa học kỹ thuật không thể thiếu trong việc áp dụng vào các tổ chức, các hoạt động xã hội như: quản lý hệ thống thư viện sách, kinh tế, thông tin, kinh doanh, và mọi hoạt động trong lĩnh vực nghiên cứu…
Ở nước ta hiện nay, việc áp dụng vi tính hóa trong quản lý tại các cơ quan, xí nghiệp, tổ chức đang rất phổ biến và trở nên cấp thiết, bởi ngành nghề nào cũng đòi hỏi con người phải
xử lý khối lượng công việc khổng lồ, và những kiến thức, những suy nghĩ, những đào tạo chuyên sâu Một vấn đề cấp thiết đặt ra trong quản lý là làm thế nào để chuẩn hóa cách xử lý
dữ liệu ở những trường học lớn mà trong đó việc quản lý một hệ thống thư viện với hàng ngàn đầu sách và quản lý việc mượn – trả sách của hàng ngàn sinh viên là vô cùng phức tạp, chính
vì thế nhóm chúng tôi chọn đề tài “Phân tích thiết kế hệ thống quản lí thư viện sách”
I.2 Phân tích yêu cầu
I.2.1 Yêu cầu của người sử dụng
Mỗi độc giả chỉ được mượn một số sách nhất định trong một khoảng thời gian nhất định Khi độc giả cần tra cứu tài liệu thì đòi hỏi:
- Việc truy cập dữ liệu phải được thực hiện một cách nhanh chóng, chính xác Các thao tác phải thuận lợi, đơn giản, dễ bảo trì, có thể điều chỉnh, có tính mở, có khả năng kiểm tra tính đúng đắn của dữ liệu, phát hiện và xử lý lỗi, hệ thống phải có khả năng lưu trữ
- Giao diện giữa người dùng và máy phải được thiết kế khoa học, thân thiện, đẹp, gọn và
có tính thống nhất về phương pháp làm việc, cách trình bày
- Hệ thống có khả năng trợ giúp, giải đáp thắc mắc của người dùng khi sử dụng Như vậy
hệ thống không chỉ đáp ứng cho người dùng thông thạo về tin học mà còn đáp ứng được với những người dùng ít hiểu biết về tin học
Trang 2- Hệ thống phải có khả năng thực hiện chế độ hội thoại ở mức độ nào đó nhằm cung cấp nhanh và chuẩn xác các yêu cầu bất thường của nhà quản lý, đảm bảo nhanh cho người dùng khai thác tối đa các chức năng mà hệ thống cung cấp
I.2.2 Yêu cầu của người quản lý:
- Giúp độc giả tiện lợi và tự tin hơn trong việc tìm kiếm, tra cứu với nhiều chức năng bổ sung
- Đảm bảo việc tìm kiếm là chính xác và đầy đủ, độc giả không sợ bị tìm sót một tài liệu nào
- Giúp độc giả xây dựng thói quen chủ động khi tìm kiếm tư liệu
- Giúp người đọc chủ động hơn thông qua hệ thống tự đánh giá, bầu chọn của độc giả Người đọc có thể trực tiếp tham gia vào việc đánh giá nội dung của tài liệu
- Việc quản lý quá trình mượn trả sách trở nên dễ dàng hơn, người quản lý chỉ cần sử dụng một máy tính có kết nối vào cơ sở dữ liệu là có thể lấy ra các thông tin cần thiết Ngoài ra cũng có thể thực hiện các hoạt động điều tra về nhu cầu, ý kiến độc giả một cách tiện lợi hơn
Từ đó nắm bắt được xu hướng chung của độc giả, nâng cao hiệu quả của thư viện
- Từ các tiện lợi trên, độc giả (chủ yếu là sinh viên và cán bộ giáo viên) sẽ xây dựng được thói quen sử dụng thư viện, cảm thấy thích thú với sử dụng thư viện, do đó nâng cao được trình độ chuyên môn, năng lực nghiên cứu nói chung
I.3 Sơ đồ phân cấp chức năng
Trang 3QL tài liệu Thể loại NXB Tác giả Thêm Xoá
Đọc tại chỗ
QL Mượn/Trả
Mang về
Số lượng Thời gian
Trang 4II PHÂN TÍCH VÀ THIẾT KẾ
II.1 Xây dựng mô hình Use Case
II.1.1 Xác định tác nhân và vai trò của tác nhân
- Với bài toán quản lý thư viện, các chức năng chính của hệ thống quản lý thư viện được
thực hiện bởi thủ thư và bạn đọc của thư viện đó Như vậy, chúng ta có hai tác nhân là thủ thư
và bạn đọc, trong đó bạn đọc không phân biệt là sinh viên, học sinh hay giáo viên
- Tác nhân bạn đọc, anh ta cần các chức năng liên quan đến tìm kiếm tài liệu, xem thông tin cá nhân, đăng ký mượn và trả sách
- Còn tác nhân thủ thư sẽ thực hiện cập nhật các thông tin liên quan đến bạn đọc và các thông tin về tài liệu, thực hiện các giao dịch mượn và trả sách Dựa vào đó, ta đã xác định được một số use case như: tìm kiếm tài liệu, cập nhật, cập nhật bạn đọc, cập nhật tài liệu, quản lý mượn sách, quản lý trả sách,xem thông tin cá nhân
- Để cập nhật được thông tin, thủ thư phải thông qua việc đăng nhập hệ thống Hay nói cách khác, sự kiện đăng nhập hệ thống sẽ là điều kiện cho use case cập nhật Vậy ta
sẽ cần thêm use case cập nhật để cập nhật hệ thống
II.1.2 Mô hình Use Case tổng quát
Hệ thống quản lý thư viện của trường đại học bao gồm các đối tượng là độc giả, thủ thư
và sách tạp chí
Chức năng chính của hệ thống là cập nhật sách,độc giả và xử lý mượn trả
Các đối tượng dữ liệu quản lý: Sách, độc giả và mượn trả
Việc phân tích và thiêt kế hệ thống quản lý khá đơn giản nên áp dụng phân tích thiết kế hướng cấu trúc là phù hợp
Dựa trên yêu cầu của đề bài, biểu đồ use case tổng quát sẽ được xây dựng như sau:
Trang 5II.1.3 Mô hình Use Case chi tiết
Phân rã các use case mức cao: người phát triển tiến hành phân rã các use case tổng quát
thành các use case cụ thể hơn sử dụng quan hệ “extend” Các use case con (mức thấp) được lựa chọn bằng cách thêm vào use case cha một chức năng cụ thể nào đó và thường được mở rộng dựa trên cơ sở sự chuyển tiếp và phân rã các chức năng của hệ thống
Use case cập nhật sẽ được phân rã thành cập nhật bạn đọc và cập nhật tài liệu
Tiếp tục phân rã sơ đồ use case cho đến khi gặp use case ở nút lá: Use case cập nhật
bạn đọc và cập nhật tài liệu đều có thể tiếp tục phân rã thành các use case con là thêm bạn đọc, thay đổi thông tin bạn đọc và xóa bạn đọc hay thêm tài liệu, thay đổi thông tin tài liệu và
Trang 6xóa tài liệu Các use case này đã là nút lá vì nó biểu diễn một chức năng cụ thể của hệ thống trong đó có tương tác giữa tác nhân thủ thư và hệ thống
Trang 7Phân rã use case Quản lý mượn trả sách
Use case quản lý mượn – trả sách được thực hiện bởi thủ thư và có thể được phân rã thành hai use case nhỏ là Quản lý mượn và Quản lý trả
II.2 Thiết kế cơ sở dữ liệu
A Xác định các thực thể
1 Thực thể tblTAILIEU:
Chứa tác thông tin chi tiết về tài liệu trong thự viện
Các thuộc tính:Matailieu, Tentailieu
2 Thực thể tblTACGIA:
Chứa thông tin về tác giả
Các thuộc tính: THELOAI, HOTEN, NamSinh
3 Thực thể tblSACH:
Chứa thông tin về nhà xuất bản sách
Các thuộc tính:MA SACH, MASOSACH, TENSACH, TACGIA,NHAXB, NAMXB, LANXB, KEMTHEO, KHOGIAY, SOTRANG……
4 Thực thể tblMuon-Tra:
Chứa các thông tin cá nhân của độc giả về việc mượn-trả
Các thuộc tính: MASACH, MABD, NGAYMUON, NGAYTRA, GHICHU
5 Thực thể tblBANDOC:
Dùng ghi nhận các thông tincủa độc giả
Trang 8 Các thuộc tính: MABD, HOTEN, NGAYSINH, GIOITINH, DIACHI, NGAYLAMTHE
B Mô tả thực thể
1 Thực thể tblTaiLieu (Tài liệu)
liệu
Miền giá trị
Loại
dữ liệu
2 Thực thể tblTacGia (Tác giả)
liệu
Miền giá trị
Loại
dữ liệu
3 Thực thể tblSACH (Sách)
liệu
Miền giá trị
Loại
dữ liệu
Trang 94 Thực thể tblMUON-TRA (Mượn-trả)
liệu
Miền giá trị
Loại
dữ liệu
5 Thực thể tblBANDOC (bạn đọc)
liệu
Miền giá trị
Loại
dữ liệu
6 Thực thể tbladmin
liệu
Miền giá trị
Loại
dữ liệu
TRALOI Trả lời câu hỏi bí mật Text 255 kí tự K
Trang 10- MASACH: Không để trống, không trùng và không có khoảng trắng
- TENSACH: Không để trống, không trùng và không có khoảng trắng
- MASACH: Phải tồn tại trong thực thể tblSACH
- MABD: Phải tồn tại trong thực thể tblBANDOC
- NGAYMUON: Ngày hiện hành
- NGAYTRA:>= Ngày hiện hành
- GHICHU: Mang về-đọc tại thư viện
5 tblBANDOC:
- MABD: Không để trống, không trùng và không có khoảng trắng
Trang 11- HOTEN: Không được để trống
- NGAYSINH: << năm hiện hành
- GIOTINH: Yes=nam,No= nữ
- DIACHI: Không để trống
- NGAYLAMTHE: Ngày hiện hành
- NGAYHETHANTHE: >= Ngày hiện hành
6 tbladmin:
- USER: Không để trống, không trùng, không khoản trắng, gồm 20 chữ số
- PASSWORD: Không để trống, không khoảng trắng, gồm 20 chữ số
- HOTEN: Không để trống, không trùng, không khoản trắng, gồm 255 chữ số
- CAUHOIBIMAT: Theo mẫu
- TRALOI: Theo mẫu
- EMAIL: Không để trống, không khoảng trắng
Trang 12III XÂY DỰNG
III.1 Lựa chọn ngôn ngữ và CSDL
III.1.1 Lựa chọn ngôn ngữ
Microsoft Access là một hệ quản trị cơ sở dữ liệu, khai thác và quản trị cợ sở dữ liệu Trong hệ cơ sở dữ liệu có 3 khả năng chính: định nghĩa dữ liệu, khai thác và quản trị
dữ liệu
Là một hệ quản trị cơ sở dữ liệu, các khả năng của Access được mô tả:
- Lưu trữ dữ liệu trong cơ sở dữ liệu
- Cho phép người dung sử dụng ngôn ngữ hỏi đáp SQL
- Có nhiều chức năng trong môi trường đa người sử dụng thông qua mật khẩu, đồng thời có chức năng gán quyền sử dụng cho mỗi cá nhân hay nhóm riêng biệt Điều quan trọng nhất là nó đảm bảo các ràng buộc tròn vẹn dữ liệu ngay cả khi được phân tán trên mạng và cơ chế khác cho phép nhất quán khi truy cập trong môi trường đa người sử dụng
Là một chương trình chạy trên nền windows nên giao diện rất quen thuộc, nhiều chức năng trợ giúp thiết kế đơn giản, nhanh, đẹp…
Cho phép chia sẽ hay kết nối dữ liệu giữa các ứng dụng khác nhau như Word, Excel hay phần mềm liên kết nhúng đối tượng OLE
Chương trình không đòi hỏi cấu hình máy lớn, giá thành đầu tư để có được phần mềm khá phù hợp
Trang 13III.1.2 Cơ sở dữ liệu:
- Fom login
Option Compare Database Private Sub Form_Load() Call grong
txtten.SetFocus tao.Enabled = True End Sub
Private Sub lamlai_Click() Call grong
txtten.SetFocus End Sub Private Sub tao_Click() Dim DB As DAO.Database Dim rs As DAO.Recordset Set DB = CurrentDb Set rs = DB.OpenRecordset("tadmin") rs.MoveFirst
Do While (rs.EOF = False)
If (rs.Fields("user") = txtten.Value) Then MsgBox "Ten dang ky da co"
Exit Sub End If rs.MoveNext Loop
rs.AddNew
If (txtpass.Value = txtpass2.Value) Then rs.Fields("user") = txtten.Value
rs.Fields("pass") = txtpass.Value rs.Fields("hoten") = txthoten.Value rs.Fields("cauhoibimat") = txtbimat.Value rs.Fields("traloi") = txttraloi.Value
Trang 14rs.Fields("txtemail") = txtemail.Value rs.Update
rs.Close DB.Close MsgBox "Da dang ky thanh cong!"
Call grong Else MsgBox "Ban khong the dang nhap Kiem tra Ten dang nhap va Mat khau!", vbInformation + vbOKOnly, "thongbao"
End If End Sub Private Sub grong() txtten = Null txtpass = Null txtpass2 = Null txthoten = Null txtbimat = Null txttraloi = Null txtemail = Null Exit Sub End Sub Private Sub THOAT_Click() DoCmd.Close
DoCmd.OpenForm ("f_login") End Sub
- Form BANDOC
Option Compare Database Private Sub next_Click() vetruoc.Enabled = True
If CurrentRecord = RecordsetClone.RecordCount Then MsgBox "Ban dang o mau tin cuoi !", vbOKOnly, "Thong bao"
Else
Trang 15DoCmd.GoToRecord , , acNext End If
End Sub Private Sub Form_Load() 'Call grong
'CONGMS.Enabled = True 'trums.Enabled = True HUY.Enabled = False End Sub
Private Sub HUY_Click() 'Call grong
DoCmd.RunCommand acCmdUndo DoCmd.CancelEvent
'CONGMS.Enabled = True 'trums.Enabled = True MASACH.SetFocus HUY.Enabled = False End Sub
Private Sub luu_Click() DoCmd.RunCommand acCmdSaveRecord DoCmd.RunCommand acCmdRefresh STT = DMax("STT", "tbl_bandoc") + 1 'CONGMS.Enabled = True
'CONGMS.SetFocus End Sub
Private Sub them_Click() DoCmd.GoToRecord , , acNewRec 'CONGMS.SetFocus
HUY.Enabled = True End Sub
Private Sub THOAT_Click() DoCmd.Close
Trang 16'DoCmd.OpenForm "f_main"
End Sub Private Sub vetruoc_Click()
If CurrentRecord = 1 Then MsgBox "Ban dang o mau tin dau", vbOKOnly, "Thong bao"
vetruoc.Enabled = False Else
DoCmd.GoToRecord , , acPrevious vetruoc.Enabled = True
End If End Sub Private Sub xoa_Click()
If MsgBox("Ban co muon xoa khong ?", vbYesNo + vbQuestion, "Thong bao") = vbYes Then
DoCmd.RunCommand acCmdDeleteRecord DoCmd.RunCommand acCmdRefresh HUY.Enabled = False
End If End Sub
- Form MAIN
Option Compare Database Private Sub cmbandoc_Click() DoCmd.OpenForm "f_bandoc"
End Sub Private Sub cmmuontra_Click() DoCmd.OpenForm "f_muon_tra"
End Sub Private Sub ICONSACH_Click() DoCmd.OpenForm ("f_sach") End Sub
Private Sub nhaptacgia_Click() DoCmd.OpenForm "f_tailieu_tacgia"
Trang 17End Sub Private Sub timkiem_Click() DoCmd.OpenForm "f_timkiem"
End Sub Private Sub THOAT_Click()
If MsgBox("Ban co that su muon thoat chuong trinh ?", vbOKCancel + vbInformation, "Thong bao") = vbOK Then
DoCmd.Close End If
End Sub
- Form THONGTINSACH
Option Compare Database Dim DB As Database Dim RC As Recordset Private Sub Ctl Click() MASACH = DMax("MASACH", "tbl_SACH") + 1 End Sub
Private Sub Form_Load() 'Call grong
End Sub Private Sub luu_Click() Dim S As String
Set DB = CurrentDb Set RC = DB.OpenRecordset("tbl_SACH")
If IsNull(MASACH) Then Call grong
MASACH.SetFocus Exit Sub
End If RC.AddNew RC("MASACH") = Form![f_thongtinsach]![MASACH]
RC.Update
Trang 18RC.Close Call grong ' End If End Sub
Private Sub nhaplai_Click() Call grong
End Sub Private Sub THOAT_Click() DoCmd.Close
DoCmd.OpenForm "f_main"
End Sub Private Sub grong() 'MASACH = Null TENSACH = Null CHUDE = Null TACGIA = Null NHAXB = Null NAMXB = Null LANXB = Null KHOGIAY = Null SOLUONG = Null GIA = Null
SOTRANG = Null THELOAI = Null KEMTHEO = Null 'NGAYNHAP = Null MASACH.SetFocus End Sub
- Form SACH
Option Compare Database Private Sub next_Click() vetruoc.Enabled = True
Trang 19If CurrentRecord = RecordsetClone.RecordCount Then MsgBox "Ban dang o mau tin cuoi !", vbOKOnly, "Thong bao"
Else DoCmd.GoToRecord , , acNext End If
End Sub Private Sub Form_Load() 'Call grong
'CONGMS.Enabled = True 'trums.Enabled = True HUY.Enabled = False End Sub
Private Sub HUY_Click() 'Call grong
DoCmd.RunCommand acCmdUndo DoCmd.CancelEvent
'CONGMS.Enabled = True 'trums.Enabled = True MASACH.SetFocus HUY.Enabled = False End Sub
Private Sub luu_Click() 'MASOSACH = Right(MASOSACH, 4) 'MASOSACH = DMax(Right(MASOSACH, 4)) + 1 DoCmd.RunCommand acCmdSaveRecord
DoCmd.RunCommand acCmdRefresh STT = DMax("STT", "tbl_sach") + 1 'CONGMS.Enabled = True
'CONGMS.SetFocus End Sub
Private Sub them_Click()
Trang 20DoCmd.GoToRecord , , acNewRec TENSACH.SetFocus
'MASOSACH = Right(MASOSACH, 4) 'MASOSACH = DMax(Right(MASOSACH, 4)) + 1 'CONGMS.SetFocus
HUY.Enabled = True End Sub
Private Sub THOAT_Click() DoCmd.Close
DoCmd.OpenForm "f_main"
End Sub Private Sub vetruoc_Click()
If CurrentRecord = 1 Then MsgBox "Ban dang o mau tin dau", vbOKOnly, "Thong bao"
vetruoc.Enabled = False Else
DoCmd.GoToRecord , , acPrevious vetruoc.Enabled = True
End If End Sub Private Sub xoa_Click()
If MsgBox("Ban co muon xoa khong ?", vbYesNo + vbQuestion, "Thong bao") = vbYes Then
DoCmd.RunCommand acCmdDeleteRecord End If
End Sub