Thư viện là nơi lưu trữ một khối lượng kiến thức đồ sộ và hết sức quý giá đối với việc học tập, nghiên cứu của sinh viên và giảng viên. Nhưng hiện nay, việc quản lý thư viện theo cách truyền thống ít nhiều đã gây khó khăn cho độc giả lẫn người quản lý. Về phía độc giả, họ không thể nắm được danh mục sách tại thư viện đó, cũng như không có gì đảm bảo cho việc họ có thể mượn được quyển sách ưng ý khi đến thư viện. Còn về phía người quản lý thư viện, công việc quản lý mượn sách một cách thủ công chiếm của họ khá nhiều thời gian, sức lực và vật chất.
Báo cáo khóa luận tốt nghiệp đại học 2011 MỤC LỤC MỤC LỤC 1 HÌNH ẢNH 2 TÓM TẮT 3 ABSTRACT 3 KÍ HIỆU VÀ VIẾT TẮT 4 CHƯƠNG 1: TỔNG QUAN 5 CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 7 CHƯƠNG 3: NỘI DUNG VÀ KẾT QUẢ NGHIÊN CỨU 29 TỔNG KẾT 57 PHỤ LỤC 58 TÀI LIỆU THAM KHẢO 68 SVTH: Nguyễn Tấn Phát Trang 1 Báo cáo khóa luận tốt nghiệp đại học 2011 HÌNH ẢNH Hình 2.1. Cấu trúc một phần tử XML 19 Hình 3.1. Mô hình dữ liệu quan niệm (CDM) 31 Hình 3.2. DFD mức 0 32 Hình 3.3. DFD mức 1 32 Hình 3.4. DFD tiến trình “xử lý mượn trả sách” 33 Hình 3.5. Sơ đồ cơ sở dữ liệu 34 Hình 3.6. Trang đăng nhập admin 37 Hình 3.7. Menu điều khiển 38 Hình 3.8. Trang quản lý thông tin sách 41 Hình 3.9. Ảnh bìa mặc định 42 Hình 3.10. Form tạo tài khoản 42 Hình 3.11. Yêu cầu mượn sách 43 Hình 3.12. Xác nhận trả sách 44 Hình 3.13. Danh mục phiếu cũ 45 Hình 3.14. Giao diện trang chủ 47 Hình 3.15. Module thông tin đăng nhập 50 Hình 3.16. Chức năng đặt mượn được mở 50 Hình 3.17. Chức năng tra cứu 51 Hình 3.18. Chức năng kiểm tra sách đã đặt 52 Hình 3.19. Module sách mượn nhiều nhất 54 SVTH: Nguyễn Tấn Phát Trang 2 Báo cáo khóa luận tốt nghiệp đại học 2011 TÓM TẮT Thư viện trong một trường Đại Học là nơi các sinh viên dành nhiều thời gian để thực hiện việc nghiên cứu, học tập, cũng như tìm thấy những quyển sách hay để trau dồi kiến thức của mình. Do đó việc phát triển và quản lý tốt thư viện là hết sức cần thiết cho việc tự học của sinh viên. Từ lâu, việc ứng dụng công nghệ thông tin trong quản lý đã trở thành xu hướng bởi nó không chỉ mang lại hiệu quả vượt trội mà còn tiết kiệm nhân lực, tiền bạc và thời gian hơn hẳn. Nhưng đối với một thư viện điện tử, nếu chỉ dừng lại ở quản lý sách trong thư viện thì vẫn còn chưa đủ. Trong thời đại internet bùng nổ như hiện nay, việc tích hợp tính năng tra cứu và đặt mượn sách trực tuyến hứa hẹn khả năng phục vụ sinh viên mọi lúc, mọi nơi, và cũng tối ưu hóa vai trò của một thư viện điện tử. Đề tài : “Xây dựng website quản lý thư viện cho một khoa ở một trường Đại Học hoặc Cao Đẳng” được đề ra nhằm mục đích trên. Dựa trên ngôn ngữ mã nguồn mở PHP cùng với hệ quản trị cơ sở dữ liệu MySQL, sinh viên thực hiện đề tài đã hoàn thành website trên, với thư viện Khoa Kỹ Thuật Công Nghệ trường Đại Học Tây Đô là hình mẫu cho dự án. ABSTRACT A library in an university is the place where students spend most of their time for researching, as well as finding good books to enrich their knowledge. For that reason, the development and management of a library is very important to students’ self-studying. For a long time, applying information technology into management has become quite a tendency because it brings not only outstanding effeciency but also saves a great deal of manpower, money and time. But, to an electronic library, it wouldn’t be called a success if we stop at management only. These days, when internet usage has become a blast, the integration of books searching and booking feature promises the ability of serving students everytime, everywhere, as well as optimizes the role of an electronic library. The project : “Develop a library management website for a department in an university or a college” is then proposed for that purpose. Basing on the open-source language PHP and the database management system MySQL, the developer has completed the mentioned website, with the library of Tay Do University’s Technology Department as a sample for this project. SVTH: Nguyễn Tấn Phát Trang 3 Báo cáo khóa luận tốt nghiệp đại học 2011 KÍ HIỆU VÀ VIẾT TẮT Kí hiệu Ý nghĩa CSDL Cơ Sở Dữ Liệu CSS Cascading Style Sheet DBMS Database Management System DOM Document Object Model DTD Document Type Definition HTML Hyper Text Markup Language OOP Object-Oriented Programming PHP PHP Hypertext Preprocessor SGML Standard Generalized Markup Language SQL Structure Query Language WYSIWYG What You See Is What You Get XHTML eXtensible Hyper Text Markup Language XML eXtensible Markup Language SVTH: Nguyễn Tấn Phát Trang 4 Báo cáo khóa luận tốt nghiệp đại học 2011 CHƯƠNG 1: TỔNG QUAN 1.1. ĐẶT VẤN ĐỀ : Thư viện là nơi lưu trữ một khối lượng kiến thức đồ sộ và hết sức quý giá đối với việc học tập, nghiên cứu của sinh viên và giảng viên. Nhưng hiện nay, việc quản lý thư viện theo cách truyền thống ít nhiều đã gây khó khăn cho độc giả lẫn người quản lý. Về phía độc giả, họ không thể nắm được danh mục sách tại thư viện đó, cũng như không có gì đảm bảo cho việc họ có thể mượn được quyển sách ưng ý khi đến thư viện. Còn về phía người quản lý thư viện, công việc quản lý mượn sách một cách thủ công chiếm của họ khá nhiều thời gian, sức lực và vật chất. Chính những lý do trên đã khiến cho việc tin học hóa các công tác văn phòng, thủ tục hành chính trở thành một xu thế tất yếu. Những thiết bị lưu trữ, hệ thống thông tin đang dần thay thế những tủ hồ sơ khổng lồ. Trước những lợi ích mà công nghệ thông tin mang lại, việc thay đổi cách thức quản lý thư viện đã trở thành một nhu cầu thực tiễn và hoàn toàn nằm trong tầm tay. 1.2. LỊCH SỬ GIẢI QUYẾT ĐỀ TÀI : Việc xây dựng hệ thống thông tin và ứng dụng phục vụ quản lý thư viện đã được nhiều sinh viên nghiên cứu, thực hiện trước đây. Những dự án đó gần như đã hoàn thiện các nhu cầu về quản lý sách thư viện, chỉ còn tồn tại duy nhất một vấn đề. Đó là tính cục bộ, vốn là đặc điểm của các phần mềm. Chúng khó có thể phục vụ rộng rãi cho nhiều loại đối tượng. Một số dự án đã được nâng cao hơn, với hướng phát triển theo mô hình server - client, nhằm bổ sung khả năng phục vụ độc giả của thư viện thông qua mạng máy tính. Các phần mềm dạng này gồm ứng dụng phía người quản lý (server) để quản lý thông tin sách và giải quyết mượn sách, cùng với ứng dụng phía người dùng (client) cho phép độc giả tham khảo và đặt mượn sách. Mặc dù vậy, các bộ ứng dụng trên vẫn chưa tạo nên sự tiện lợi cho người sử dụng, do các khách hàng phải trải qua quá trình cài đặt, cũng như có các đòi hỏi về cấu hình máy tính. Những lí do trên thúc đẩy một cách tiếp cận mới đối với đề tài quản lý thư viện, đó là xây dựng ứng dụng trên nền web. Dự án này cũng bao gồm một website Admin Control Panel thực hiện các chức năng của người quản lý, và một website phục vụ độc giả của thư viện. Lợi thế khi phát triển đề tài trên nền web là người sử SVTH: Nguyễn Tấn Phát Trang 5 Báo cáo khóa luận tốt nghiệp đại học 2011 dụng có thể truy cập mọi lúc mọi nơi, chỉ cần ít nhất một trình duyệt web (ví dụ : trình duyệt Internet Explorer đi kèm với hệ điều hành Microsoft Windows) và một đường truyền internet. Hơn thế nữa, với khả năng sử dụng đa dạng các nội dung media (ví dụ âm thanh, phim ảnh v.v…) để xây dựng giao diện, một website đảm bảo sự hấp dẫn đối với người sử dụng hơn hẳn. 1.3. PHẠM VI ĐỀ TÀI : Phạm vi đề tài sẽ bao gồm các nội dung sau đây : - Xây dựng chức năng quản lý, cập nhật thông tin sách trong thư viện. - Xây dựng chức năng quản lý, cập nhật tài khoản và thông tin độc giả. - Xây dựng chức năng quản lý việc mượn trả sách, tự động kiểm tra việc đặt mượn sách và phiếu mượn sách. - Xây dựng chức năng đăng mới và quản lý các thông báo của thư viện. - Xây dựng hộp tin nhắn để tiếp nhận các liên hệ của độc giả. - Xây dựng chức năng tra cứu thông tin sách, xem các thông báo, giới thiệu dành cho độc giả. - Xây dựng chức năng đặt mượn sách và hủy đặt mượn sách. - Xây dựng chức năng cho phép độc giả xem và thay đổi thông tin cá nhân, xem các sách đang mượn và các phiếu mượn sách. - Xây dựng chức năng liên hệ người quản trị. 1.4. HƯỚNG GIẢI QUYẾT VẤN ĐỀ : Xuất phát từ các yêu cầu trên, đề tài sẽ được giải quyết theo hướng sau: - Tìm hiểu cách tổ chức thông tin sách của thư viện. - Tìm hiểu cách tổ chức các nhóm độc giả và quy định về mượn trả sách. - Phân tính quy trình đặt mượn, lập phiếu mượn và trả sách. - Dựa trên kết quả phân tích, thiết kế hệ thống thông tin phù hợp với nhu cầu thự tiễn. - Lựa chọn các ngôn ngữ, công nghệ để xây dựng website: ngôn ngữ lập trình : HTML, PHP; CSDL : MySQL; công nghệ hỗ trợ : CSS, XML. SVTH: Nguyễn Tấn Phát Trang 6 Báo cáo khóa luận tốt nghiệp đại học 2011 CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 2.1. TỔNG QUAN VỀ HTML : 2.1.1. Giới thiệu: HTML: HyperText Markup Language. Đây là một ngôn ngữ đơn giản được sử dụng trong các tài liệu siêu văn bản. Nó cũng chỉ là các tài liệu văn bản bình thường nhưng có chứa các thành phần đặc biệt gọi là các thẻ (hoặc các cặp thẻ) đánh dấu. Dựa theo các cặp thẻ này mà trình duyệt có thể biết được nó phải thể hiện nội dung gì. Bản chất của HTML không phải là một ngôn ngữ lập trình nên cũng không chứa những thuật toán lằng nhằng. Nó chỉ là một "ngôn ngữ" để đánh dấu văn bản thôi. HTML giờ đây đã trở thành một chuẩn Internet do tổ chức World Wide Web Consortium (W3C) duy trì. Phiên bản mới nhất của nó hiện là HTML 4.01. Tuy nhiên, HTML hiện không còn được phát triển tiếp. Người ta đã thay thế nó bằng XHTML. 2.1.2. Cấu trúc của một trang HTML: Cấu trúc của một file HTML có dạng: <HTML> <HEAD> <TITLE></TITLE> </HEAD> <BODY> phần thân tài liệu </BODY> </HTML> Cặp thẻ <HTML></HTML> đánh dấu vị trí bắt đầu và kết thúc của một đoạn mã HTML. Các khai báo về định dạng, tiêu đề, đính kèm … sẽ được đặt trong cặp thẻ <HEAD></HEAD>.Toàn bộ nội dung hiển thị sẽ được đặt trong cặp thẻ <BODY></BODY>. SVTH: Nguyễn Tấn Phát Trang 7 Báo cáo khóa luận tốt nghiệp đại học 2011 2.1.3. Các thẻ trong HTML: Cấu trúc của 1 thẻ trong HTML bao gồm: dấu "<" ( nếu là thẻ đóng thì sẽ bắt đầu bằng "</"), tên thẻ, các tham số khác nếu có (nếu là thẻ đóng thì không cần tham số), dấu ">". Ví dụ : cặp thẻ <font>…</font>. Có rất nhiều các cặp thẻ , hay gọi chung là phần tử đánh dấu, được sử dụng trong HTML, nhưng có thể chia làm bốn loại phần tử đánh dấu sau: - Đánh dấu Có cấu trúc miêu tả mục đích của phần văn bản (ví dụ: <h1>Golf</h1> sẽ điều khiển phần mềm đọc hiển thị "Golf" là đề mục cấp một). - Đánh dấu trình bày miêu tả phần hiện hình trực quan của phần văn bản bất kể chức năng của nó là gì (ví dụ, <b>bold</b> sẽ hiển thị đoạn văn bản bold) (Chú ý là cách dùng đánh dấu trình bày này bây giờ không còn được khuyên dùng mà nó được thay thế bằng cách dùng CSS), - Đánh dấu liên kết ngoài chứa phần liên kết từ trang này đến trang kia (ví dụ, <a href="http://www.tdu.edu.vn/">Trường Đại Học Tây Đô</a> sẽ hiển thị từ Trường Đại Học Tây Đô như là một liên kết ngoài đến URL của website trường Đại Học Tây Đô). - Các phần tử thành phần điều khiển giúp tạo ra các đối tượng (ví dụ, các nút và các danh sách). Trong thiết kế một trang web HTML kết hợp với PHP thì vấn đề giao tiếp dữ liệu giữa hai ngôn ngữ này là quan trọng nhất. Do đó, chúng ta sẽ đi sâu nghiên cứu các thẻ thực hiện vấn đề này, đó là các thẻ thuộc nhóm thứ tư trong danh sách nêu trên. Cách sử dụng mẫu biểu trong HTML: Một mẫu biểu (form) trong HTML bao gồm nhiều thành phần khác nhau. Các thành phần có thể là ô văn bản, ô kéo thả, ô danh sách, nút bấm, hay các ô check Biểu mẫu được bắt đầu bằng thẻ <form> và kết thúc bởi thẻ </form>. Giữa 2 cặp thẻ này, các bạn có thể sử dụng các cặp thẻ HTML khác. Thẻ form có một số thuộc tính sau: - method: Thuộc tính này có 2 giá trị POST hoặc GET, để xác định dữ liệu gửi lên theo kiểu POST hay GET. Kiểu GET chính là kiểu mà khi nhập dữ liệu lên máy chủ, các dữ liệu này sẽ được hiển thị trên ô Address dưới dạng các căp tên=giá_trị. Nhược điểm của kiểu này là toàn bộ URL và chuỗi tên=giá_trị kia sẽ bị giới hạn dưới 255 ký tự (do đặc điểm của trình duyệt). Vì vậy để có thể gửi nhiều dữ liệu hơn, người ta đã sinh ra kiểu SVTH: Nguyễn Tấn Phát Trang 8 Báo cáo khóa luận tốt nghiệp đại học 2011 POST. Với kiểu này, dữ liệu sẽ không bị giới hạn chiều dài 255 ký tự của chuỗi địa chỉ do không bị gộp vào chuỗi địa chỉ mà được đóng thành dữ liệu gói và gửi đến server. Kiểu POST cũng thường dùng để truyền các dữ liệu nhạy cảm mà người sử dụng không muốn hiển thị trên ô address (password chẳng hạn). Ví dụ: <form method = "post"> Test </form> - action: Thuộc tính này sẽ chỉ định form gửi dữ liệu đến trang nào. Trong trường hợp thuộc tính này không được khai báo, form sẽ gửi thẳng dữ liệu và yêu cầu về chính trang hiện hành (sau đó trình duyệt sẽ tải lại nội dung mới). Ví dụ: <form method = "post" action ="test.php"> Test </form> Tuy nhiên, 2 ví dụ trên chưa có ý nghĩa gì, vì chúng ta chưa trang bị các thành phần cơ bản của form như ô văn bản, nút bấm Các thẻ nhập vào (input): Thẻ input có một số thuộc tính, mỗi thuộc tính sẽ quy định những chức năng riêng: - name: Chỉ định tên cho thẻ. Tên này sẽ được gửi lên máy chủ cùng giá trị nhập vào cho thẻ. - value: Xác định giá trị đặt trước cho thẻ. - type: Thuộc tính này có một số giá trị sau: submit: Sẽ xác định một nút bấm (submit) mà khi kích chuột vào đó, form sẽ tự động kích hoạt và gửi dữ liệu đi text: Hiển thị một ô văn bản cho phép người sử dụng nhập văn bản password: Hiển thị ô văn bản để nhập password. hidden: Tạo một biến ẩn, ta có thể dùng nó để lưu trữ các dữ liệu "ẩn" khỏi người dùng, tất nhiên nếu họ biết View source lên thì chịu. Ví dụ: đoạn mã sau sinh ra một form có 1 ô văn bản, một ô nhập mật khẩu và 1 nút bấm: <form method="POST"> <p> SVTH: Nguyễn Tấn Phát Trang 9 Báo cáo khóa luận tốt nghiệp đại học 2011 User Name:<input type="text" name="T1" size="20"> </p> <p> Password: <input type="password" name="T2" size="20"><input type="submit" value="Login" name="B1"></p> </form> Thẻ tạo hộp chọn xổ xuống: Danh sách sổ xuống là một ô danh sách cho phép bạn kích chọn 1 mục trong danh sách sẵn có. Để tạo một hộp chọn sổ xuống, ta phải sử dụng 2 thẻ: Thẻ Select và thẻ Option như sau: <Select name =abc> <option value = gia_trí1>nội dung 1</option> <option value = gia_trí2>nội dung 2</option> <option value = gia_trí3>nội dung 3</option> <option value = gia_trín>nội dung n</option> </select> Trong đó: Thẻ Select với thuộc tính name sẽ xác định tên của hộp danh sách sổ xuống. Các thẻ option xác định giá trị của tên biến trong thẻ select nếu được chọn. Giá trị sẽ được gán vào biến nằm trong thuộc tính value của thẻ option. Ví dụ: <form method="POST"> <p> User Name:<input type="text" name="T1" size="20"> </p> <p> Password: <input type="password" name="T2" size="20"><input type="submit" value="Login" name="B1"></p> <p>Sex: <Select name ="sex"> <option value =1>Male </option> <option value =0>Female </option> </select> SVTH: Nguyễn Tấn Phát Trang 10 [...]... timestamp giatien Int(10) unsigned SVTH: Nguyễn Tấn Phát Diễn giải Mã sách theo dạng số thứ tự Tên sách Tham chiếu đến bảng theloai Tham chiếu đến bảng tacgia Tham chiếu đến bảng nxb Giới thiệu chung về quyển sách Số lượng sách hiện tại trong thư viện Tên ảnh bìa của sách Ngày nhập sách về thư viện Giá trị của quyển sách Trang 34 Báo cáo khóa luận tốt nghiệp đại học 2011 Bảng theloai: Thuộc tính Kiểu dữ liệu... đến thư viện trực tiếp và chọn những quyển sách mình cần, nhưng không quá số sách cho SVTH: Nguyễn Tấn Phát Trang 29 Báo cáo khóa luận tốt nghiệp đại học 2011 phép, và đăng kí mượn sách với nhân viên thư viện Nhân viên sẽ lập các thông tin mượn sách như ngày mượn, hạn trả, v.v… Nếu đến hết hạn mà sách vẫn chưa được trả về thì sẽ có biện pháp xử lý tùy nhóm đối tượng, và căn cứ vào giá tiền của quyển sách. .. 15 Báo cáo khóa luận tốt nghiệp đại học 2011 Tiếp theo, trong trang HTML bạn sử dụng như sau: Đoạn văn này được canh lề trái. Đoạn văn này được canh lề phải. Đoạn văn này được canh lề giữa. Chú ý: - CSS phân biệt chữ hoa và chữ thư ng giống như C++ do đó khi viết bạn cần phải cẩn thận trong việc sử dụng chữ hoa, chữ thư ng - Trong trang HTML,... datmuon với số phiếu mượn sách ban đầu là rỗng ( tức chưa lập phiếu) Vì sinh viên có thể đặt mượn nhiều lần, nhiều sách nên bảng phải có thể lưu lặp lại các mssv, mã sách Nếu trước ngày hết hạn đặt mượn, sinh viên đến thư viện nhận sách thì người quản trị sẽ lập phiếu mượn sách cho các quyển sách đã được đặt bởi mssv tương ứng Nếu ngày hiện hành đã vượt quá ngày hết hạn, thì số sách đó sẽ hiện thông báo... có giải quyết mượn sách hay không là tùy vào người quản trị Lúc này số phiếu trong bảng datmuon sẽ được cập nhật từ bảng phieumuonsach Trạng thái của phiếu mượn sách mặc định là “Chưa trả”, trước ngày trả sách đã định, sinh viên đến trả sách thì quản trị sẽ thay đổi trạng thái thành “Đã trả” Nếu ngày hiện hành đã vượt quá ngày trả sách và trạng thái vẫn là “chưa trả” thì phiếu mượn sách này sẽ hiển thị... TẾ: Sau quá trình tìm hiểu việc quản lý thư viện ở trường Đại Học Tây Đô, sinh viên thực hiện nhận thấy cách tổ chức thông tin sách có các đặc điểm sau : - Mỗi đầu sách được quản lý với một mã sách (cũng là số thứ tự), không lưu thông tin thể loại mà chỉ phân loại theo ngành học, tên tác giả, tên nhà xuất bản, năm và nơi xuất bản, giá tiền - Các đối tượng phục vụ của thư viện được chia thành hai nhóm... đền bù trong trường hợp sách bị mất 3.2 KẾT QUẢ PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG: Với các kết quả điều tra trên, sinh viên thực hiện nhận thấy cần phải có một vài thay đổi để phù hợp với một website quản lý thư viện Mô tả hệ thống: Mỗi thể loại gồm có mã thể loại, tên thể loại, thứ tự hiển thị Vị trí các thể loại xuất hiện trên trang chủ sẽ được áp dụng theo thứ tự này Mỗi đầu sách gồm mã sách, tên sách, ... đặt sách theo dạng số thứ tự Iddocgia đặt sách Dạng char của sophieu để có thể lưu giá trị ‘’ Tham chiếu đến bảng dausach Số lượng sách được đặt Ngày đặt sách Diễn giải Số thứ tự phiếu mượn sách Ngày lập phiếu mượn sách Trạng thái của phiếu mượn sách Bảng docgia: Thuộc tính Kiểu dữ liệu Diễn giải Iddocgia Char(10) Mã số của độc giả, dùng để đăng nhập SVTH: Nguyễn Tấn Phát Trang 35 Báo cáo khóa luận. .. 2.5.6 Thao tác CSDL trong PHP: Thông thư ng, trong một ứng dụng có giao tiếp với CSDL, ta phải làm theo bốn trình tự sau: Bước 1: Thiết lập kết nối tới CSDL Bước 2: Lựa chọn CSDL Bước 3: Tiến hành các truy vấn SQL, xử lý các kết quả trả về nếu có SVTH: Nguyễn Tấn Phát Trang 24 Báo cáo khóa luận tốt nghiệp đại học 2011 Bước 4: Đóng kết nối tới CSDL Nếu như trong lập trình thông thư ng trên Windows sử... viên, thư viện sẽ lưu các thông tin chính như mã số cán bộ, họ tên, đơn vị công tác (phòng hoặc khoa) Đối với sinh viên thì các thông tin chính là MSSV, họ tên, lớp và ngành - Hai nhóm này có các quyền lợi, quy định khác nhau khi mượn sách ở thư viện Ví dụ: thời gian mượn sách của giảng viên có thể dài hơn và số sách tối đa cũng nhiều hơn so với sinh viên - Quy trình mượn trả sách hiện tại ở thư viện: