趙 麗,孫 彬,李桂珍
(1.新疆農業(yè)職業(yè)學院信息技術分院,新疆昌吉831100;2.新疆昌吉職業(yè)技術學院計算機應用教研室,新疆昌吉831100)
近年來,由于人類知識容量的爆炸式增長,圖書館的圖書條目與文獻種類也不斷擴大。圖書館是一所高校的標志,其資源的豐富度、信息化程度和服務質量也是高校實力的體現。圖書館的館藏資源是重要的社會信息資源,在大數據時代,傳統(tǒng)的基于人力的圖書管理方式無法保證這些信息資源的有效管理與及時共享,這無疑是資源的閑置與浪費。高校原本的圖書管理系統(tǒng)隨著訪問量和相應需求的急速上漲,需要不斷對服務器上的數據庫進行查詢訪問,傳統(tǒng)的圖書管理系統(tǒng)無法應對當下的訪問需求,運行效率低下,急需優(yōu)化。文中通過了前期的調研分析,明確了設計需求,在傳統(tǒng)的舊式的圖書管理方式進行了改進研究,通過軟硬件的合理配置,結合數據庫優(yōu)化方法,減少系統(tǒng)用戶的訪問響應時間,提高服務器的吞吐量。最終,基于PHP語言和MySQL數據庫,采用B/S架構,完成了圖書管理系統(tǒng)的設計。
文中的研究內容包括兩個部分:一是圖書管理系統(tǒng)功能需求分析和功能模塊構建,二是對實現系統(tǒng)的軟件技術進行介紹,在傳統(tǒng)的圖書管理系統(tǒng)系統(tǒng)的基礎上,對本文闡述的功能模塊的實現過程進行闡述,同時優(yōu)化系統(tǒng)的運行效率。
需求分析是軟件工程的第一部,在構建圖書管理系統(tǒng)的時候,需要明確其想要完成的任務,給出系統(tǒng)的原型。本圖書管理系統(tǒng)的設計是為了實現大學生與老師的圖書借閱、查詢等功能,同時簡化圖書管理工作人員的日常管理工作,使得原本需要人力完成的采購、圖書編目等工作都可以信息化的集成在系統(tǒng)中[2]。系統(tǒng)需要有友好的界面,使用方便快捷。功能全面,方便擴展。圖書管理系統(tǒng)的后端是由圖書館信息管理人員維護的,我們可以從他們的角度出發(fā),基于他們現有的圖書館里工作流程描述系統(tǒng)的后端邏輯?;谝陨戏治觯⑾到y(tǒng)的運行的邏輯流程圖如圖1所示。
圖1 系統(tǒng)的功能邏輯圖
在圖書管理系統(tǒng)中,核心流程是圖書的借還流程[3]。其具體的業(yè)務場景分為借書與還書。當讀者借書時,通過圖書查詢的功能找到圖書,在服務臺將待借圖書交給工作人員,工作人員用掃描器掃描圖書上的條碼與讀者的身份信息,輸入完成后,網頁自動提交讀者的借書請求。服務器響應借閱需求,在數據庫中對該圖書條目進行檢索,若檢索成功,系統(tǒng)會率先判斷讀者身份是否合法,如是否存在逾期未還造成的待賠款項,同時判斷該圖書是否已被預約,核實無誤后,修改數據庫的圖書狀態(tài)。還書的流程與借書相反,關于圖書的借還的更多細節(jié)如圖2所示。
此外系統(tǒng)中還包括預約與續(xù)借兩項重要流程。這兩項流程可以在系統(tǒng)的客戶端自助實現,讀者憑借自己的賬號進入個人管理界面,查詢相應書目,點擊預約,系統(tǒng)查詢該書目是否可以預約,并響應需求。讀者可以在個人的已借目錄中查詢自己已經借閱的圖書,對想要繼續(xù)閱讀的圖書進行續(xù)借。
圖1反映了系統(tǒng)的業(yè)務邏輯,由管理員登陸之后負責各個模塊的維護與更新。具體包括基礎數據的維護與系統(tǒng)的維護,同時,為圖書館的工作人員分配權限,支持工作人員進行圖書的節(jié)約管理,新書的訂購管理和系統(tǒng)維護。
從系統(tǒng)地功能模塊的角度上進行系統(tǒng)結構層次的劃分可以將系統(tǒng)劃分為四個部分,包括通用功能模塊、讀者功能模塊、工作人員功能模塊與管理員功能模塊。
通用功能模塊:通用功能模塊包括了圖書的查詢與一些常規(guī)的幫助信息。圖書查詢可以滿足系統(tǒng)用戶與一些網絡游客對圖書館館藏的查詢需求,用戶可以根據圖書的名字、作者、ISBN、出版社等類別進行查詢,系統(tǒng)也會給出圖書借閱的排行榜,用戶可以對排行榜內的書目進行預約。系統(tǒng)的幫助信息主要是圖書館的開閉館時間、規(guī)章管理制度,幫助用戶更好的使用圖書館。
工作人員功能模塊:工作人員在登錄自己的賬號后,可以在服務臺為讀者提供圖書的借閱與歸還服務。除此之外,工作人員還需檢查歸還的圖書是否有損壞,及時要求讀者賠償。同時對丟失的圖書及時處理。對于新書,作入庫管理。工作人員模塊還可以對讀者的權限進行更改,對于已經繳納過逾期款項的讀者,重新賦予其借書權限。
圖2 圖書借還流程示意圖
管理員功能模塊:這里的管理員是圖書管理系統(tǒng)的信息技術人員,來自圖書館信息管理處,他們是系統(tǒng)運行的維護者,他們還負責讀者、工作人員信息的入庫與權限管理。
本系統(tǒng)在實現上采用B/S架構,采用PHP語言編寫,系統(tǒng)使用的數據庫是MySQL。B/S架構的軟件系統(tǒng)是實現最流行的軟件架構,其架構圖如圖3所示,相較于早期的C/S架構,B/S架構的軟件只在服務器中運行,用戶在終端只需要一個瀏覽器就可以訪問客戶端的界面,這樣對于前端機器的要求就非常低,客戶端的維護、程序的更新更加便捷,可以充分的利用Internet中的資源。
PHP(Hypertext Preprocessor)是超文本處理語言,在語法結構上與C語言相似,在執(zhí)行上與JSP語言相似,都是嵌入在服務器端的HTML文本中執(zhí)行。這種特性保證了它在執(zhí)行的時候能夠快速的執(zhí)行動態(tài)網頁,相比于CGI與Perl執(zhí)行效率更高。PHP的常用的執(zhí)行程序會在內存中常駐,當用戶在此訪問的時候不需要二次編譯,直接執(zhí)行內存中的命令即可,同時它還支持CGI與JavaScript和當下主流的數據庫與操作系統(tǒng)。因此,在B/S架構的軟件系統(tǒng)中有著廣泛的使用。
圖3 系統(tǒng)軟件架構圖
SQL(Structed Query Language)是一種結構化的查詢語言,它誕生于IBM的圣約瑟實驗室,最早應用與System R數據查詢工具中,目前,當下主流的數據庫系統(tǒng)都支持SQL語言,在關系型的數據中都可以使用。SQL定義了查詢、操縱等功能,通過使用SQL,可以告訴數據該做什么。
系統(tǒng)在開發(fā)時,選擇Windows作為開發(fā)系統(tǒng),服務器選擇Apache,數據庫選擇MySQL,編程語言選擇PHP。
首先下載安裝MySQL的win32版本,進入工作目錄后,將mysqld-shareware.exe重命名mysqld.exe,接著運行mysqld-install,從而實現MySQL作為服務進程在操作性系統(tǒng)中運行。接著配置PHP的win32版本,將php.ini-dist重命名為php3.ini,移動該文件至Winnt目錄,改變extension_dir為PHP3的安裝目錄,設置doc_root指向web根目錄,然后取消extension=php3_*.dll的注釋,將 browscap指向...rowscap.ini路徑。最后一步是對Apache服務器的安裝和配置,在安裝目錄的...http.conf文件中加入如下代碼,即可完成服務器的配置,然后將Apache設置為系統(tǒng)服務進程
數據庫的設計過程是指通過對客觀現實的分析產生一個可靠的數據庫來實現詳細的數據模型。在進行需求分析之后,具體分為邏輯設計與物理設計兩個步驟。
邏輯設計是指根據數據庫的設計需求,了解數據庫的應用環(huán)境后,分析數據流通中涉及的各項客體,同時對客體進行邏輯劃分,得到概念性的數據模型。通過E-R圖表征這種模型,在E-R圖中,用方框、橢圓、菱形分別表示數據實體、屬性與數據間的關系。在本圖書管理系統(tǒng)中,E-R圖通過UML類圖體現,E-R圖反映了各個客體間的對應關系,以讀者和圖書為例,這是一種多對多的關系,同一本圖書可以被多個讀者分批次的借閱,一個讀者可以同時借閱多本圖書。通過抽取系統(tǒng)中的邏輯客體,建立系統(tǒng)給的E-R圖如圖4所示,由于系統(tǒng)中的客體數量十分龐大,在圖4中只展示了最主要的客體,對于次要的客體與相關。日志記錄沒有展示。
數據庫的物理設計是指根據邏輯分析得到的關系模型設計符合數據庫要求的數據表,包括數據結構與索引等信息,同時為各個數據項指定合理的存儲位置。
本節(jié)基于1.2中分析的系統(tǒng)工作流程進行了圖書的歸還與續(xù)借模塊的設計。圖5(a)與圖5(b)分別是系統(tǒng)工作人員管理功能模塊中的歸還與續(xù)借界面,工作人員通過掃碼機掃描讀者的條形碼信息,點擊確定按鈕后可以幫助讀者完成歸還和續(xù)借業(yè)務。由圖5可以看出,本圖書管理系統(tǒng)的界面清晰,設計友好,操作簡潔,易用性好。
圖5 圖書館系統(tǒng)界面
文中對圖書管理系統(tǒng)進行了研究,從圖書館信息管理人員的角度出發(fā),分析圖書管理系統(tǒng)所需的功能模塊間的內在邏輯,在參考了現有的圖書管理系統(tǒng)的架構的基礎上,基于B/S的軟件架構,使用PHP語言和MySQL數據庫完成了系統(tǒng)的設計。系統(tǒng)充分體現了B/S架構和Apache服務器的優(yōu)勢,可以同時響應巨量用戶的訪問需求。本系統(tǒng)的功能設計完備,在方便了讀者用戶的同時,也極大地簡化了圖書館管理人員的工作。