緒論:寫作既是個人情感的抒發,也是對學術真理的探索,歡迎閱讀由發表云整理的11篇圖書館管理系統論文范文,希望它們能為您的寫作提供參考和啟發。
圖書管理系統FLCS分為圖書采訪子系統、編目子系統、流通子系統、典藏子系統、期刊子系統、全文管理子系統、書目檢索子系統、閱覽管理子系統八部分,系統各部分既相互獨立,又能進行各部分之間的數據調用。該系統提供了豐富的數據接口功能,可以實現系統數據與MARC(ISO2709)數據的相互轉換,也可以將系統數據轉換為相應的文本數據,以供字處理軟件如WORD、條形碼打印軟件如EZ2等調用。該系統還具有聯合編目功能,可將本地或外地其他系統數據轉換為本系統數據,并能通過倒排文檔對其進行多途徑、高速檢索。另外,系統可以由用戶進行功能設置,根據各館實際情況靈活設置系統參數。系統幫助則是對本系統的詳細介紹及問題解答,幫助初學者迅速掌握并能夠實際應用。
總之,FLCS不但是一個標準的完整的圖書信息管理軟件,它還是一個開放的具有數據轉換與通訊功能的管理系統。
系統特點
√面向最終用戶,全部操作可視化
√系統代碼為32位,能充分發揮計算機軟硬件性能并具有高度安全性。
√自動化程度高:出版者、出版地、書目號自動調出、可自動套錄所購采訪或編目數據、自動判斷圖書借出與還回、自動計算超期罰款、讀者超期書自動提示等。
√系統參數設置靈活:可對圖書借閱期限、超期罰款金額等參數自由設置。
√具有數據轉換與通訊功能:系統數據與MARC(ISO2709)數據相互轉換、系統數據轉換為各種文本數據。
√具有聯合編目功能。
√系統開放性好:可將光盤數據或互聯網上數據復制到本系統建立全文數據庫以供讀者網上調用。
√完全實現INTERNET實時數據交互。
√系統全部采用4位記時,徹底解決2000年問題。
√允許自動即時存盤,避免數據掉電丟失。
√顯示器分辨率自動識別,充分適應多種顯示器。
√可存貯圖書具體內容及附帶圖片、聲音、動畫等信息。
√系統能自動檢測圖書輸入的復本與登錄號錯誤,確保圖書流通時正確無誤。
√系統具有圖書錯誤碼修復功能,對由于停電、死機等非正常原因造成的系統數據錯誤均可自動恢復。
√FLCS有完整的歷史功能,可記錄圖書借還、罰款、銷證、現金等多種數據信息。
√通過特殊算法,實現高速包含式檢索。
標準的軟件
一、標準的32位WINDOWS應用軟件
圖書信息集成管理系統FLCS應用平臺為:PC機操作系統:WINDOWS95及以上版本;網絡操作系統為:WINDOWSNT、NOVELL。FLCS徹底拋棄了16位操作系統,在WIN95以下版本的PC機操作系統上不能運行。FLCS全部代碼為32位,能充分發揮計算機軟硬件性能并具有高度安全性。
圖書信息集成管理系統FLCS完全采用圖形界面,支持WINDOWS下的不同軟件傳遞數據,不同軟件同時運行等所有功能。
二、標準的網絡軟件
圖書信息集成管理系統FLCS為標準的網絡軟件,通過FLCS我們可以實現幾十臺計算機同時編目、借還、檢索等操作。通過特殊的算法,FLCS在網絡上運行時,圖書借還、模糊檢索等速度得到了大幅度的提高。
從理論上講,FLCS的記錄限制為十億條,系統測試用HP(166/32M/2.1G)服務器,聯想(166/32M/2.1G)PC機工作站,管理200萬冊圖書,在10M網絡上運行時,檢索、借還等操作時均實現秒級延時。FLCS系統適用的網絡規模只受網絡操作系統限制,也就是說,只要所購網絡操作系統允許,您可以隨意增加入網微機數量。
系統支持CNMARC/USMARC/LCMARC(ISO2709)數據,書目及連續出版物著錄符合《國際標準書目著錄(ISBD)》和《中國文獻著錄標準(GB3792)》,書目條碼符合中國圖書館行業條碼標準(Code39)。
FLCS60新增功能
√允許自動即時存盤,避免數據掉電丟失。在進行數據錄入、圖書借還等操作時,系統可將數據隨時存盤,以防因機器異常錯誤而造成數據丟失。
√顯示器分辨率自動識別,充分適應多種顯示器。操作窗口中的項目隨窗口的大小自動調節
√可存貯圖書具體內容及附帶圖片、聲音、動畫等信息。
√集成科技論文管理系統。
√多條件組合數據處理。在打印、統計、數據轉換等操作時,用戶可根據自已的需要進行組合數據處理,只輸出自己所需要的數據。
√徹底拋棄數據接口,完全實現INTERNET實時數據交互。系統通過C/S運算模式,將數據運算置于服務器端,實現了大批量數據的包含式檢索。
√所有打印均具有預覽功能,所有報表列超過長度均可自動折行。
√系統允許多個窗口同時操作,例如在不關閉借還窗口的情況下可以進行圖書預約、流通查詢、罰款登記等流通系統下的所有操作。
√增加多種統計功能。系統增加如編目階段統計、流通分類統計、流通明細流通、藏書分類統計等功能。
√增加多個數據字典
√增加欲超期查詢,可檢索出將要超期的讀者并可打印輸出。
√可方便的打印圖書借閱證。
√可進行批量銷證。
√可進行批量典藏及分冊典藏。
√檢索結果與檢索條件分離,可保留多個檢索結果。
√豐富借閱制度,可對不同類型讀者、不同類型圖書,設置不同的借閱權限。
√可將系統臨時文件放于本地,加快了程序運行速度。
圖書采訪
圖書采訪子系統的主要功能是記錄采訪信息并向編目子系統提供數據。圖書采訪子系統主要由數據處理、查詢、統計打印、圖書驗收、信函定書幾部分組成。下面就幾個功能做一點解釋說明。
一、數據錄入:通過ISBN號可以調入MARC數據、出版者數據并在輸入ISBN號時進行。
圖書館可以外購采訪數據或從互聯網上下載圖書采購數據,然后通過數據錄入功能自動追加到采訪系統中來。在進行數據錄入時系統自動記錄圖書出版者信息,保證一次錄入多次調用。在進行數據錄入時系統自動,也就是說,如果您要采購的圖書已訂購或已收藏,系統會給您相應的提示。系統安全性校驗。例如,如果沒有輸入正題名、復本為0或過大,系統會給出相應的提示。數據攜帶。報紙科別、出版日期、復本、書商名信息系統會自動攜帶。
二、批量自動:系統將采訪錄入庫數據根據ISBN號、書名去采訪主庫、編目主庫依次查找,如找到則系統提示為重書。如果為重書,則可以修改其訂數據或將其刪除。
三、打印訂單:系統可打印標簽格式的訂單,此訂單格式已得到新華書店等書商允許。
四、圖書驗收:FLCS提供圖書驗收功能,通過圖書驗收,FLCS自動分配圖書登錄號。我們也可以不使用圖書驗收,而圖書編目時編目驗收一次完成。
圖書編目
圖書編目時系統自動調用采訪子系統數據及所購MARC數據,圖書編目完成后,可將數據交送到編目主庫及流通子系統進行圖書典藏及流通。圖書編目子系統大致有圖書編目、自動、統計打印、數據轉換、數據維護幾部分組成。
一、圖書編目:FLCS采用固定條目式錄入方式,通過多種輔助功能加快了圖書編目速度。
√圖書編目時可以自動調入圖書采訪數據、圖書驗收數據、所購MARC數據、出版者數據等。
√在鍵入ISBN號時進行自動。
√可以輸入圖書內容。在此,可以輸入圖書文本內容,也可以將圖書內容通過復制、粘貼的方式將圖書內容復制到系統中。
√嵌入文件:在此,可以利用WINDOWS的嵌入功能嵌入圖片、聲音、動畫等。
√出版地、出版者等數據自動記憶。
√開本、頁數等自動加"cm"、"頁"。
√叢書名等字段自動攜帶。
√種次號自動給出。
√正題名、分類號、復本、登錄號錯誤提示。
二、編目:FLCS提供自動的批量功能,如果有重書系統則將新書與庫存圖書同時顯示出來,用戶可以對其直接進行修改。
三、檢查登錄號排序:圖書登錄號是圖書館每一冊書的唯一標識,圖書管理系統實際上是通過登錄號進行圖書借還的,如果在圖書錄入過程中登錄號或復本輸入錯誤,則會造成圖書借還錯誤。FLCS提供了"檢查登錄號排序"功能,通過它,我們可以檢查出重復的及不連續的圖書,并可打印輸出,以供我們改正。
四、打印統計:FLCS允許用戶進行多條件打印和統計,各條件可任意組合。例如我們可以統計某段時間加工的某類中的某語種的圖書編目情況。
五、數據轉換:FLCS允許用戶外購MARC數據、允許用戶建立聯合編目,FLCS還允許用戶將系統數據生成MARC數據及各種文本數據以便和其他軟件交換數據。
六、數據交送:FLCS允許批量調撥交送,也就是說,我們可以將要交送的數據指明其館藏位置、是否流通、條碼號與登錄號是否一致等圖書典藏信息,在進行圖書交送時每一冊圖書都使用這一信息,對少量具有不同典藏信息的圖書,我們再通過圖書典藏子系統將其更正。這樣就避免了對每一冊都進行典藏調撥,從而簡化了手續,加快了圖書加工速度。
圖書流通
圖書流通是用來記錄圖書借還信息的,必需有書有證才能進行圖書流通,流通子系統中的圖書數據來自編目子系統。
一、圖書借還:FLCS的借還操作簡捷、高效,無論借還操作還是借還速度都在同類產品中處于領先地位。
√圖書借還自動識別,在借還過程中不用任何鍵盤切換操作。
√圖書還回時自動計算圖書超期罰款。
√圖書借還時自動檢測借書或還書讀者是否有超期書,如有超期書則出現提示。
√可自動建立圖書條碼號與登錄號的對應關系。
√自動檢測讀者數據:包括讀者借數、掛失、資格、押金余額、書證限期等。
√自動檢測圖書數據。
√自動還約書記到。在圖書被還回時,如果此書已被預約,系統則自動所約圖書記到。
二、借閱統計:FLCS可按分類法統計出所有大類在某段時間的借閱種數、冊數及罰款多額。FLCS可統計出某段時間內的詳細借還情況。
三、圖書預約:如果讀者檢索到的圖書已被借完,他可以辦理預約手續,以取得下次借閱的優先權。讀者可以通過INTERNET網絡查詢到自己的約書是否已到,圖書館也可以定期打印預約到書單發給相關讀者以通知其約書已到。
四、查詢:
1.用戶可通過六種不同的渠道查詢圖書流通或讀者借閱情況。
2.FLCS有查詢欲超期讀者功能,通過對查詢日期的設置,可以檢索出已到期的讀者和將到期的讀者,以通知讀者提前還書。
3.通過對圖書借閱頻率的查詢,用戶可以評出各類熱門書和滯借圖書。
4.FLCS有詳細的借還記錄,通過借還歷史查詢,用戶可以方便的知道某段時間內某書曾被哪些讀者借過。如果出現撕書等違規現象,FLCS的歷史查詢會很大的縮小所要調查的讀者范圍。
五、罰款:FLCS系統的罰款只是從讀者押金中扣除而不涉及到現金。FLCS的罰款有詳細的歷史記錄,讀者可通過INTERNET對自動的罰款情況進行查詢。
六、書證管理
1.在進行讀者辦證時,系統攜帶除姓名之外的所有數據,而加快的辦證速度。在進行讀者辦證時,可以嵌入讀者照片,以供打印讀者借閱證及圖書借還時使用。
2.FLCS可以方便的打印讀者借閱證。
3.FLCS進行單個或批量銷證,可方便的打印出某一單位的到期或將要到期的讀者清單,并標其借閱信息及押金余額等。這對學校圖書館來說是非常重要的,通過這一功能,用戶可以只對班級進行銷證工作,而不涉及到單個讀者。
4.FLCS的賬務管理工作實用而嚴謹,用戶只有在辦證、銷證、交款與退款處涉及到現金,其他罰款都是從押金扣除而不涉及到現金流動。FLCS有詳細的現金流通記錄以供查詢。
5.圖書錯誤修正:圖書在流通過程中會自動關聯許多數據庫,如果在關聯過程中發生停電、死機等異常錯誤而使數據失去關聯,則會造成圖書借還不成功,這時,我們可以通過圖書錯誤修正功能修復圖書和讀者數據,以使圖書可以繼續借還。
期刊管理
期刊管理由期刊訂購、現刊管理、過刊管理三部分組成,過刊編目完成后,可以通過數據交送,將數據交送到流通子系統進行過刊借還。
一、期刊訂購:期刊訂購是用來記錄期刊訂購信息的。
1.期刊增訂:在進行期刊增訂時,系統自動檢測所錄入期刊是否已訂購,并給出提示信息。
2.打印訂購清單:用戶可以對不同書商、語種、出版頻率打印訂購清單,并可以將期刊訂購數據生成EXCEL文檔,以用來數據交換。
二、現刊管理:現刊管理要調用期刊訂購數據并為過刊管理積累數據。
1.現刊記到:現刊記到時,系統自動調入訂購數據,自動計算應到期號,自動生成本期訂價,自動對應語種及排架號,自動檢測已到期與缺期。
2.打印裝訂通知單:系統自動檢測已到齊期刊并打印輸出,用戶可根據此清單進行現刊下架。
三、過刊管理:過刊管理由過刊編目、打印著錄卡片、財產賬等幾部分組成。
過刊編目:過刊編目時系統自動調用訂購數據、現刊數據及現刊下架數據,系統自動計算現刊合訂價,自動給出分類號等。
圖書典藏
通過圖書典藏,用戶可以指明每冊書的條碼號、館藏位置、是否允許流通等信息。FLCS允許用戶進行批量交送典藏然后再對個別圖書進行典藏登記的方式,從而簡化了典藏手續,加快了典藏效率。
一、圖書典藏:在圖書典藏時,用戶可以指定每冊書的條碼號也可以不指定,如果不指定,用戶可以在圖書借還時再建立圖書登錄號與條碼號的對應關系。
實際上,FLCS允許用戶不經過圖書典藏而直接進行圖書流通,這反應了FLCS的可簡可詳的設計思想
二、統計打印:通過統計打印功能,用戶可以方便的知道在某段時間內向圖書館各部門交送了多少圖書,并可打印出那些圖書的詳細列表。
三、圖書剔舊:FLCS允許用戶進行單冊書剔舊,剔舊書作為歷史保留并可隨時打印輸出。
論文管理
FLCS60論文全文管理系統,通過這一系統,用戶可以從光盤上、互聯網上等媒體上下載信息,建立自己的全文數據庫。FLCS的論文管理系統允許用戶通過WINDOWS的OLE功能存放WORD文檔、圖片、聲音、影像等多媒體信息,它是一個有效的多媒體管理工具,同時又是一個得利的辦公助手。
用戶建立的全文數據可以通過FLCS的INTERNET檢索系統通過網絡。
FLCS的INTERNET檢索系統
FLCS提供一個C/S結構的INTERNET檢索系統,通過該系統,用戶可以利用WWW瀏覽器,從所有上網的計算機上檢索到圖書館的館藏書目、讀者基本信息、讀者借書、預約到書、超期讀者、罰款記錄、最新圖書、借閱頻率最高的圖書及借閱頻最高的讀者、期刊數據、科技論文數據等信息。
該系統的服務器端配置為NT4、IIS3、ASP3、VFPODBC6、TCP/IP協議。
一、書目檢索:通過INTERNET檢索功能,用戶可以很方便的檢索到自已所需要的圖書,并能查到各分冊的館藏位置、及是否在館等信息。由于系統采用C/S結構,檢索運算在服務器端進行,網絡上傳輸的只是檢索式及檢索結果,從而大大減輕了網絡傳輸負擔,加快了檢索速度。
二、讀者檢索:通過讀者檢索功能,讀者可以在自己的計算機上檢索到自已的基本信息、所借圖書、罰款記錄、預約到書等信息。
三、論文檢索:FLCS允許用戶建自己的全文數據庫,并允許用戶將自己的全文數據庫通過INTERNET。通過論文檢索功能,用戶可以在自己的計算機上下載圖書館論文數據,并可進行下載、打印等處理。
觸摸屏檢索系統
FLCS提供了一個"傻瓜式"讀者檢索系統,該系統通過對整部中圖法的引用和書名、作者提詞索引,使觸摸屏檢索成為可能,適合于各學校圖書館。讀者檢索時,完全脫離鍵盤,不懂計算機和圖書館學知識的人員,也能用觸摸屏或鼠標很快檢索到所需圖書。系統采用前臺書目檢索,后臺自動打印借書單的方式,方便了讀者和圖書管理人員。
用戶關心的問題
1.計算機停電或死機會不會造成數據丟失
FLCS有即時存盤功能,被修改的數據會立即存盤,不會因計算機異常錯誤而丟失數據。
2.FLCS能否存貯多媒體信息
FLCS能存貯每冊書的文本、圖片、聲音、動畫等多媒體信息。通過FLCS的科技論文管理系統,用戶還能建立自已的多媒體資料庫。
3.FLCS能否打印讀者借閱證
FLCS能根據讀者辦證日期、讀者單位、讀者姓名或證碼打印讀者借閱證。
4.FLCS能否批量銷證
FLCS既能單個銷證,又能批量銷證。
5.FLCS系統是否易學易用
FLCS系統是標準的WINDOWS應用程序,界面友好,操作容易,只要有計算機常識就可維護使用。FLCS系統的數據流程與圖書館工作流程是相符的,只要懂圖書館業務,在一、兩周時間內就可熟練使用。
6.FLCS系統是否實用、是否具有先進性
FLCS的研制人員有圖書館學專業、計算機專業的大學畢業生,也有從事多年圖書館工作的老館員,FLCS的研制人員決定了其實用性。FLCS系統采用CLIENT/SERVER結構,實現Internet/Intranet信息,FLCS能從互聯網和光盤上下載信息,能存貯多媒體數據,所以FLCS系統當然是先進的系統。
7.FLCS能存放多少數據、能用于多大規模的網絡
理論上講,FLCS系統的記錄限制為十億條,系統測試用HP(166/32M/2.1G)服務器,聯想(166/32M/2.1G)PC機工作站,管理200萬冊圖書時,在檢索、借還等操作時均實現秒級延時。FLCS系統適用的網絡規模只受網絡操作系統限制。
8.我們是否可以外購數據及與其他圖書館交換數據
FLCS系統可以自動調用所購采訪數據、編目數據,FLCS可以生成標準MARC(ISO2709)數據以用于數據交換,FLCS也可以接收其他圖書館的MARC數據建立聯合編目。FLCS還可以和其他軟件如WORD、EXCEL等交換數據。
9.FLCS系統是否容易出問題、出了問題時怎么辦
因此本人結合開入式圖書館的要求,對MSSQLServer2000數據庫管理系統、SQL語言原理、Delphi應用程序設計,Delphi數據庫技術進行了較深入的學習和應用,主要完成對圖書管理系統的需求分析、功能模塊劃分、數據庫模式分析,并由此設計了數據庫結構和應用程序。系統運行結果證明,本文所設計的圖書管理系統可以滿足借閱者、圖書館工作人員和高級管理員三方面的需要。
第一章對數據庫應用系統開發和圖書管理系統進行了簡明的介紹,并分析了開發圖書管理系統所應進行的工作。
第二章對數據庫的設計和SQL語言的使用進行了系統分析,為深入理解數據庫應用打下了基礎。
第三章學習了具體的開發工具Delphi6.0,對其數據庫組件,SQL語言在Delphi中的應用等數據庫編程關鍵技術進行了系統的介紹。
第四章分析了圖書管理信息系統的應用需求,按照數據庫設計理論一步一步地給出了系統需求說明書、局部ER圖、全局ER圖、系統關系模式,子模式,利用MSSQLServer2000建立了數據庫
第五章進行了具體的程序設計,具體劃分了三類用戶的操作權限,設計了了三個操作界面。實現了數據庫表的瀏覽,記錄的添加、刪除和修改,報表的生成,實現了多數據庫表的連接操作,實現了多條件查詢和模糊查詢,并靈活實現了對不可更新查詢結果集的更新操作,實現了主從表操作,實現了密碼維護功能,最后,系統還可以導入數據庫以對任意同結構的數據庫進行操作。
設計充分利用Delphi6、MSSQLServer2000數據庫技術的強大力量,提高了編程效率和可靠性。
關鍵詞:數據庫,SQL語言,MSSQLServer,Delphi6,
數據庫組件,圖書管理,窗體,listview組件
目錄
摘要………………………………………………………………………………I
第一章緒論……………………………………………………………………1
§1.1數據庫應用系統開發簡介………………………………………………1
§1.2圖書管理系統………………………………………………………4
§1.3本文所做的主要工作……………………………………………………6
第二章數據庫理論基礎…………………………………………………………7
§2.1數據庫系統設計及范式分析……………………………………………7
§2.2SQL語言介紹…………………………………………………………………11
2.2.1SQL基礎…………………………………………………………………11
2.2.2SQL語句…………………………………………………………………12
第三章應用系統開發工具…………………………………………………16
§3.1Delphi6.0VCL組件的體系結構………………………………………16
§3.2數據庫組件介紹……………………………………………………………17
§3.3SQL語言在Delphi中的應用……………………………………………18
§3.4MSSQLServer簡述……………………………………………………22
第四章圖書管理系統設計分析…………………………………………24
§4.1應用需求分析……………………………………………………………24
§4.2系統功能模塊劃分………………………………………………………29
§4.3系統數據庫設計…………………………………………………………29
第五章圖書管理系統應用程序設計……………………………………37
§5.1系統窗體模塊組成…………………………………………………………37
§5.2數據模塊窗體的設置………………………………………………………37
§5.3啟動畫面的實現……………………………………………………………38
§5.4用戶登錄窗體的的實現………………………………………………………39
§5.5用戶密碼認證窗體的的實現…………………………………………………39
§5.6借閱者服務模塊的實現……………………………………………………40
5.6.1圖書查詢功能的實現…………………………………………………41
5.6.2借閱者登錄功能的實現…………………………………………………42
5.6.3借閱者借閱情況功能的實現……………………………………………43
5.6.4借閱者個人資料維護功能的實現………………………………………47
§5.7工作人員-圖書借閱/歸還模塊的實現………………………………………49
5.7.1工作人員進行圖書借閱功能實現………………………………………50
5.7.2工作人員進行圖書歸還功能實現………………………………………53
§5.8圖書館管理員模塊的實現……………………………………………54
5.8.1圖書館管理員圖書管理功能的實現……………………………………55
5.8.2圖書館管理員工作人員和管理員管理功能的實現……………………58
5.8.3圖書館管理員修改圖書類別及統記功能的實現………………………60
5.8.4圖書館管理員借閱者管理功能的實現…………………………………62
5.8.5圖書館維護借閱者管理功能的實現…………………………………62
5.8.6圖書館身份維護功能的實現………………………………………64
5.8.7圖書館借閱者統計功能的實現…………………………………65
5.8.8圖書館統計借閱過期記錄功能的實現…………………………67
§5.9系統信息顯示的實現…………………………………………………68
第六章結束語………………………………………………………………69
致謝………………………………………………………………………………70
參考書目……………………………………………………………………………70
第一章緒論
§1.1數據庫應用系統開發簡介
在數據庫應用系統開發之前,對開發數據庫的基本概念應當了解,對數據庫的結構、開發數據庫應用程序的步驟、開發體系及方法都應當有相當清晰的了解和認識。
數據庫應用系統開發的目標是建立一個滿足用戶長期需求的產品。開發的主要過程為:理解用戶的需求,然后,把它們轉變為有效的數據庫設計。把設計轉變為實際的數據庫,并且這些數據庫帶有功能完備、高效能的應用。
數據庫技術在計算機軟件鄰域研究中一直是非常重要的主題,產生于60年代,30多年來數據庫技術得到了迅速發展,并已形成較為完整的理論體系和一大批實用系統。并且,近年來,隨著WorldWideWeb(WWW)的猛增及Internet技術的迅速發展,使得數據庫技術之時成為最熱門技術之一。
1.1.1數據庫
如圖1.1顯示了數據庫系統的主要組件。數據庫由DBMS(數據庫管理系統)處理,DBMS則由開發人員和用戶通過應用程序直接或間接地使用。它主要包括四個要素:用戶數據、元數據、索引和應用元數據。
1.1.1.1用戶數據
目前,大多數主流數據庫管理系統把用戶數據表示為關系。現在把關系看作數據表。表的列包含域或屬性,表的行包含對應業務環境中的實體的記錄。并非所有的關系都同樣符合要求,有些關系比其它關系更結構化一些。第二章描述了一個用以產生良好結構關系的過程,稱作規范化。
為了對比結構差的關系和結構好的關系之間的差別,以本文所設計的圖書管理系統中的圖書和圖書借閱者關系為例來說明,假若設計關系R1(借書證號,姓名,性別,身份編號,身份證,聯系電話,圖書編號,圖書名稱,圖書類別,作者,出版社,出版日期,備注,價格,數量);這個關系的問題出在它有關于兩個不同主題的數據,就是圖書借閱者和圖書。用這種方式構成的關系在進行修改時,會出現問題。因為一個圖書借閱者可能借閱多本書,如果某個圖書借閱者的某個字段(如聯系電話)出現變更,它所借閱的圖書記錄(可能多個)也就必須變化,這是不好的。因此數據用兩個關系表示更好。現在如果某圖書借閱者改變了它的聯系電話,只有關系(表)user的對應行需要改變。當然,要想產生一個,顯示圖書名稱及其借閱者聯系電話的報表,就需要將這兩個表的行結合起來。結果表明,將關系分別存儲,在生成報表的時候將它們結合起來,比把它們存儲在一個合成的表中更好。
user(借書證號,姓名,性別,身份編號,身份證,聯系電話,)
book(圖書編號,圖書名稱,圖書類別,作者,出版社,出版日期,備注,價格,數量)
1.1.1.2元數據
數據庫是自描述的,這就意味著它自身包含了它的結構的描述,這種結構的描述稱作元數據。因為DBMS產品是用來存儲和操縱表的,所以大多數產品把元數據以表的形式存儲,有時稱作系統表。這些系統表存儲了數據庫中表的情況,指出每一個表中有多少列,那一列是主關鍵字,每一列的數據類型的描述,它也存儲索引、關鍵字、規則和數據庫結構的其他部分。
在表中存儲元數據不僅對DBMS是有效的,對用戶也是方便的,因為他們可以使用與查詢用戶數據同樣的查詢工具來查詢元數據。本文第二章所介紹的SQL語言可以同時用于元數據和用戶數據。
1.1.1.3索引
第三種類型的數據改進了數據庫的性能和可訪問性,這種數據經常稱作開銷數據,盡管有時也采用其他類型的數據結構,如鏈表,但它主要還是索引。索引可以用來排序和快速訪問數據。下面以本人的圖書管理信息系統中的book表為例來說明。
假定數據在磁盤上是按’圖書編號’的遞增順序排列的,用戶想打印一個按’圖書名稱’排序的圖書數據報表。為此,所有的數據都需要從源表中提取出來并排序,除非表很小,否則這是一個很費時的過程。或者,可以在‘圖書名稱’字段上創建一個索引,該索引的條目按照‘圖書名稱’排序,這樣,該索引的條目可以讀出來,并用來按順序訪問book數據。
索引用于快速訪問數據。例如,一個用戶只想訪問book表中‘圖書類別’值為‘01’的那些學生。如果沒有索引,則必須搜索整個源表;但有了索引之后,可以找到索引條目,并使用它來挑選所有合適的行。
索引對排序和查找是有幫助的,但要付出代價。book表中的行每次改變時,索引也必須改變,這意味著索引并非隨意的,應該在真正需要時保存。
1.1.1.4應用元數據
存儲在數據庫中的第四種數據是應用元數據,它用來存儲用戶窗體、報表、查詢和其他形式的查詢組件。并非所有的DBMS都支持應用組件,支持組件的DBMS也不一定把全部組件的結構作為應用元數據存儲在數據庫中。然而,大多數現代的DBMS產品存儲這種數據作為數據庫的一部分。一般來說,數據庫開發人員和用戶都不直接訪問應用元數據,想反,他們通過DBMS中的工具來處理這些數據。
MSSQLServer2000中就支持窗體、存儲過程等應用元數據。
1.1.2數據庫管理系統
數據庫管理系統(DBMS)是指數據庫系統中管理數據的軟件系統。DBMS是數據庫系統的核心組成部分。對數據庫的一切操作,包括定義、更新及各種控制,都是通過DBMS進行的。DBMS總是基于某種數據模型,可以把DBMS看成是某種數據模型在計算機系統上的具體實現。根據數據模型的不同,DBMS可以分成層次型、網狀型、關系型、面向對象型等。MSSQLServer2000就是一種關系型數據庫管理系統。
關系模型。關系模型主要是用二維表格結構表達實體集,用外鍵表示實體間聯系。關系模型是由若干個關系模式組成的集合。關系模式相當于前面提到的記錄類型,它的實例稱為關系,每個關系實際上是一張二維表格。
關系模型和層次、網狀模型的最大判別是用關鍵碼而不是用指針導航數據,表格簡單用戶易懂,編程時并不涉及存儲結構,訪問技術等細節。關系模型是數學化模型。SQL語言是關系數據庫的標準化語言,已得到了廣泛的應用。
如圖1.1所示,DBMS的特點和功能可以分為三個子系統:設計工具子系統、運行子系統和DBMS引擎。
設計子系統有一個方便數據庫及其應用創建的工具集。它典型地包含產生表、窗體、查詢和報表的工具。DBMS產品還提供編程語言和對編程語言的接口。
運行子系統處理用設計子系統開發的應用組件。它所包含的運行處理器用來處理窗體和數據庫的數據交互,以及回答查詢和打印報表等。
DBMS引擎從其他兩個組件接受請求,并把它們翻譯成對操作系統的命令,以便讀寫物理介質上的數據。DBMS引擎還涉及事務管理、鎖、備份和恢復。
1.1.3創建數據庫
1.1.3.1數據庫模式
數據庫模式定義了數據庫的結構、表、關系、域和業務規則。數據庫模式是一種設計,數據庫和應用正是建立在此基礎上的。
域是一列可能擁有的值的集合。必須為每一個表的每一定域。除了數據的物理格式外,還需要確定是否有些域對表來說是唯一的。
數據庫模式的最后一個要素是業務規則,它是對需要反映在數據庫和數據庫應用程序中的業務活動的約束。業務規則是模式的一個重要部分,因為他們指定了無論什么數據變化到達DBMS引擎,允許的數據值必須滿足的約束。不管無效的數據變化請求是來自窗體的用戶、查詢/修改請求還是應用程序,DBMS都應該拒絕。
遺憾的是,不同的DBMS產品用不同的方法實施業務規則。在某些情況下,DBMS產品不具備實施必要業務規則的能力,必須以代碼形式把它們編入應用程序。
1.1.3.2創建表
1.1.3.3定義聯系
1.1.4應用組件
數據庫應用包括窗體、查詢、報表、菜單和應用程序。
§1.2圖書管理系統
當今時代是飛速發展的信息時代。在各行各業中離不開信息處理,這正是計算機被廣泛應用于信息管理系統的環境。計算機的最大好處在于利用它能夠進行信息管理。使用計算機進行信息控制,不僅提高了工作效率,而且大大的提高了其安全性。
尤其對于復雜的信息管理,計算機能夠充分發揮它的優越性。計算機進行信息管理與信息管理系統的開發密切相關,系統的開發是系統管理的前提。本系統就是為了管理好圖書館信息而設計的。
圖書館作為一種信息資源的集散地,圖書和用戶借閱資料繁多,包含很多的信息數據的管理,現今,有很多的圖書館都是初步開始使用,甚至尚未使用計算機進行信息管理。根據調查得知,他們以前對信息管理的主要方式是基于文本、表格等紙介質的手工處理,對于圖書借閱情況(如借書天數、超過限定借書時間的天數)的統計和核實等往往采用對借書卡的人工檢查進行,對借閱者的借閱權限、以及借閱天數等用人工計算、手抄進行。數據信息處理工作量大,容易出錯;由于數據繁多,容易丟失,且不易查找。總的來說,缺乏系統,規范的信息管理手段。盡管有的圖書館有計算機,但是尚未用于信息管理,沒有發揮它的效力,資源閑置比較突出,這就是管理信息系統的開發的基本環境。
數據處理手工操作,工作量大,出錯率高,出錯后不易更改。圖書館采取手工方式對圖書借閱情況進行人工管理,由于信息比較多,圖書借閱信息的管理工作混亂而又復雜;一般借閱情況是記錄在借書證上,圖書的數目和內容記錄在文件中,圖書館的工作人員和管理員也只是當時對它比較清楚,時間一長,如再要進行查詢,就得在眾多的資料中翻閱、查找了,造成查詢費時、費力。如要對很長時間以前的圖書進行更改就更加困難了。
基于這此問題,我認為有必要建立一個圖書管理系統,使圖書管理工作規范化,系統化,程序化,避免圖書管理的隨意性,提高信息處理的速度和準確性,能夠及時、準確、有效的查詢和修改圖書情況。
§1.1系統所做工作
1)了解應用開發工具的現狀
2)DelPHi6.0編程基礎
3)MSSQLServer基礎
4)設計數據庫;設計界面
5)開發數據庫。數據庫實現的一些功能有
l數據和數據說明的醒目顯示;
l多條件的查詢、多條記錄的檢索、模糊查詢;
l數據文件某種存儲格式導入數據窗體,經過數據完整性校驗存入數據庫;
l數據庫安全性的設計;
l數據庫的設計、數據接口、界面的設計。
§1.3本文所作工作
緒論部分對數據庫應用系統的結構、開發進行了簡要介紹,分析了圖書管理信息系統設計的特點和任務。
第二章介紹了數據庫的設計和范式分析,并系統介紹了SQL語言,為設計和理解應用程序做了鋪墊。
第三章對系統介紹了Delphi6.0的數據庫編程技術、SQL語言在Delphi6.0中的應用、MSSQLServer基礎。
第四章分析了圖書管理系統的應用需求,設計了系統的數據庫結構,并根據需求對系統功能進行了劃分和細化。
第五章根據第四章的設計結果利用MSSQLServer2000和Delphi6.0進行了具體的應用程序設計。
總結部分介紹了設計體會和編程體會,并指出了系統設計中的不足和改進的方向。
第二章數據庫理論基礎
一個成功的信息管理系統,是建立在許多條件之上的,而數據庫是其中一個非常重要的條件和關鍵技術。
信息管理系統所涉及的數據庫設計分五個步驟:數據庫需求分析、概念設計、邏輯設計、物理設計與加載測試。
(1)數據庫需求分析的任務是將業務管理單證流化為數據流,劃分主題之間的邊界,繪制出DFD圖,并完成相應的數據字典。
(2)概念設計的任務是從DFD出發,繪制出本主題的實體-關系圖,并列出各個實體與關系的綱要表。
(3)邏輯設計的任務是從E-R圖與對應的綱要表出發,確定各個實體及關系的表名屬性。
(4)物理設計的任務是確定所有屬性的類型、寬度與取值范圍,設計出基本表的主鍵,將所有的表名與字段名英文化(現在很多軟件能支持中文字段,如MSSQLServer,我就是用的中文字段名),實現物理建庫,完成數據庫物理設計字典。
(5)加載測試工作貫穿于程序測試工作的全過程,整個錄入、修改、查詢、處理工作均可視為對數據庫的加載測試工作。
要設計出一個好的信息管理系統數據庫,除滿足系統所要求的功能外,還必須遵守下列原則:
²基本表的個數越少越好。
²主鍵的個數越少越好。鍵是表間連接的工具,主鍵越少,表間的連接就越簡單。
²字段的個數越少越好。
²所有基本表的設計均應盡量符合第三范式。
數據庫的設計中,如何處理多對多的關系和如何設計主鍵,是兩個有著較大難度、需要重點考慮的問題。下面我們著重從SQL應用、數據庫設計范式和查詢優化等方面來分析本課題的系統關鍵技術和實現難點并加以解決。
§2.1數據庫系統設計及范式分析
信息系統的主要任務是通過大量的數據獲得管理所需要的信息,這就必須存儲和管理大量的數據。因此建立一個良好的數據組織結構和數據庫,使整個系統都可以迅速、方便、準確地調用和管理所需的數據,是衡量信息系統開發工作好壞的主要指標之一。
2.1.1數據庫系統設計
數據庫設計主要是進行數據庫的邏輯設計,即將數據按一定的分類、分組系統和邏輯層次組織起來,是面向用戶的。數據庫設計時需要綜合企業各個部門的存檔數據和數據需求,分析各個數據之間的關系,按照DBMS提供的功能和描述工具,設計出規模適當、正確反映數據關系、數據冗余少、存取效率高、能滿足多種查詢要求的數據模型。
數據庫設計的步驟是:
(1)數據庫結構定義:目前的數據庫管理系統(DBMS)有的是支持聯機事務處理CLTP(負責對事務數據進行采集、處理、存儲)的操作型DBMS,有的可支持數據倉庫、有聯機分析處理CLAP(指為支持決策的制定對數據的一種加工操作)功能的大型DBMS,有的數據庫是關系型的、有的可支持面向對象數據庫。針對選擇的DBMS,進行數據庫結構定義。
(2)數據表定義:數據表定義指定義數據庫中數據表的結構,數據表的邏輯結構包括:屬性名稱、類型、表示形式、缺省值、校驗規則、是否關鍵字、可否為空等。關系型數據庫要盡量按關系規范化要求進行數據庫設計,但為使效率高,規范化程度應根據應用環境和條件來決定。數據表設計不僅要滿足數據存儲的要求,還要增加一些如反映有關信息、操作責任、中間數據的字段或臨時數據表。
(3)存儲設備和存儲空間組織:確定數據的存放地點、存儲路徑、存儲設備等,備份方案,對多版本如何保證一致性和數據的完整性。
(4)數據使用權限設置:針對用戶的不同使用要求,確定數據的用戶使用權限,確保數據安全。
(5)數據字典設計:用數據字典描述數據庫的設計,便于維護和修改。
為了更好地組織數據和設計出實際應用數據庫,應該注意如下問題:
規范化地重組數據結構:對數據進行規范化表達,這在后面將會具體討論。
關系數據結構的建立:在進行了數據基本結構的規范化重組后,還必須建立整體數據的關系結構。這一步設計完成后數據庫和數據結構設計工作基本完成,只待系統實現時將數據分析和數據字典的內容代入到所設計的數據整體關系結構中,一個規范化數據庫系統結構就建立起來了。
建立關系數據結構涉及三方面內容:確定關聯的關鍵指標項并建立關聯表;確定單一的父系記錄結構;建立整個數據庫的關系結構。
(1)鏈接關系的確定
在進行了上述數據規范化重組后,已經可以確保每一個基本數據表(我們簡稱為表)是規范的,但是這些單獨的表并不能完整地反映事物,通常需要通過指標體系整體指標數據才能完整全面地反映問題。也就是說在這些基本表的各宇段中,所存儲的是同一事物不同側面的屬性。那么計算機系統如何能知道哪些表中的哪些記錄應與其它表中的哪些記錄相對應,它們表示的是同一個事物呢?這就需要在設計數據結構時將這種各表之間的數據記錄關系確定下來。這種表與表之間的數據關系一般都是通過主或輔關鍵詞之間的連接來實現的。因為在每個表中只有主關鍵詞才能唯一地標識表中的這一個記錄值(因為根據第三范式的要求,表中其它數據字段函數都依賴于主關鍵詞),所以將表通過關鍵詞連接就能夠唯一地標識出某一事物不同屬性在不同表中的存放位置。
(2)確定單一的父子關系結構
所謂確定單一的父系關系結構就是要在所建立的各種表中消除多對多(以下用M:N來表示)的現象,即設法使得所有表中記錄之間的關系呈樹狀結構(只能由一個主干發出若干條分支,而不能有若干條主干交錯發出若干條分支狀況)。所謂的“父系”就是指表的上一級關系表。消除多對多關系可以借助于E-R圖的方法來解決,也可以在系統分析時予以注意,避免這種情況的發生。
消除這種M:N情況的辦法也很簡單,只需在二表之間增加一個表,則原來M:N的關系就改成了M:1,1:N的關系了。
確定數據資源的安全保密屬性:
一般DBMS都提供給我們自己定義數據安全保密性的功能。系統所提供的安全保密功能一般有8個等級(0-7級),4種不同方式(只讀、只寫、刪除、修改),而且允許用戶利用這8個等級的4種方式對每一個表自由地進行定義。
定義安全保密性的方法一般有如下幾種:
a.原則上所有文件都定義為4級,個別優先級特別高的辦公室(終端或微機的入網賬號)可定義高于4級的級別,反之則定義為低于4的級別。
b.統計文件(表)和數據錄入文件一般只對本工作站定義為只寫方式,對其它工作站則定義為只讀方式。
c.財務等保密文件一般只對中工作站(如財務科等)定義為可寫、可改、可刪除方式,對其它工作站則定義為只讀方式,而且不是每個人都能讀,只有級別相同和高級別者才能讀。
2.1.2數據庫設計范式分析
建立起一個良好的數據指標體系,是建立數據結構和數據庫的最重要的一環。一個良好的數據指標體系是建立DB的必要條件,但不是充分條件。我們完全可以認為所建指標體系中的一個指標類就是關系數據庫中的一個基本表,而這個指標類下面的一個個具體指標就是這個基本表中的一個字段。但如果直接按照這種方式建庫顯然還不能算最佳。對于指標體系中數據的結構在建庫前還必須進行規范化的重新組織。
a.數據組織的規范化形式
在數據的規范化表達中,一般將一組相互關聯的數據稱為一個關系(relation),而在這個關系下的每個數據指標項則被稱為數據元素(dataelement),這種關系落實到具體數據庫上就是基本表,而數據元素就是基本表中的一個字段(field)。規范化表達還規定在每一個基本表中必須定義一個數據元素為關鍵字(key),它可以唯一地標識出該表中其它相關的數據元素。在規范化理論中表是二維的,它有如下四個性質:
l在表中的任意一列上,數據項應屬于同一個屬性(如圖中每一列都存放著不同合同記錄的同一屬性數據)。
l表中所有行都是不相同的,不允許有重復組項出現(如圖中每一行都是一個不同的合同記錄)。
l在表中,行的順序無關緊要(如圖中每行存的都是合同記錄,至于先放哪一個合同都沒關系)。
l在表中,列的順序無關緊要,但不能重復(如圖中合同號和合同名誰先誰后都沒關系,但二者不可重復或同名)。
在對表的形式進行了規范化定義后,數據結構還有五種規范化定義,定名為規范化模式,稱為范式。在這五種范式中,一般只用前三種,對于常用系統就足夠了。而且這五種范式是“向上兼容”的,即滿足第五范式的數據結構自動滿足一、二、三、四范式,滿足第四范式的數據結構自動滿足第一、二、三范式,……,依此類推。
第一范式(firstnormalform,簡稱1stNF)就是指在同一表中沒有重復項出現,如果有則應將重復項去掉。這個去掉重復項的過程就稱之為規范化處理。在本文所討論的開發方法里,1stNF實際上是沒有什么意義的。因為我們按規范化建立的指標體系和表的過程都自動保證了所有表都滿足1stNF。
第二范式(secondnormalform,簡稱2ndNF)是指每個表必須有一個(而且僅一個)數據元素為主關鍵字(primarykey),其它數據元素與主關鍵字一一對應。例如,在圖l9.7中如果我們將合同號定義為主關鍵字(其它數據元素中的記錄數據都有可能重名,故不能作為主關鍵字),故只要知道了一個合同記錄的合同號,就可以唯一地在同一行中找到該合同的任何一項具體信息。通常我們稱這種關系為函數依賴(functionaldepEndence)關系。即表中其它數據元素都依賴于主關鍵字,或稱該數據元素唯一地被主關鍵字所標識。
第三范式(thirdnormalform,簡稱3rdNF)就是指表中的所有數據元素不但要能夠唯一地被主關鍵字所標識,而且它們之間還必須相互獨立,不存在其它的函數關系。也就是說對于一個滿足了2ndNF的數據結構來說,表中有可能存在某些數據元素依賴于其它非關鍵宇數據元素的現象,必須加以消除。
為防止數據庫出現更新異常、插入異常、刪除異常、數據冗余太大等現象,關系型數據庫要盡量按關系規范化要求進行數據庫設計。
§2.2SQL語言介紹
2.2.1SQL基礎
SQL(StructuredQueryLanguage,結構查詢語言)是一個功能強大的數據庫語言。SQL通常使用于數據庫的通訊。ANSI(美國國家標準學會)聲稱,SQL是關系數據庫管理系統的標準語言。SQL語句通常用于完成一些數據庫的操作任務,比如在數據庫中更新數據,或者從數據庫中檢索數據。使用SQL的常見關系數據庫管理系統有:Oracle、Sybase、MicrosoftSQLServer、Access、Ingres等等。雖然絕大多數的數據庫系統使用SQL,但是它們同樣有它們自立另外的專有擴展功能用于它們的系統。但是,標準的SQL命令,比如"Select"、"Insert"、"Update"、"Delete"、"Create"和"Drop"常常被用于完成絕大多數數據庫的操作。MSSQLServer就是用的Transact-SQL。
SQL語言有著非常突出的優點,主要是:
n非過程化語言
n統一的語言
n是所有關系數據庫的公共語言
非過程化語言:SQL是一個非過程化的語言,因為它一次處理一個記錄,對數據提供自動導航。SQL允許用戶在高層的數據結構上工作,而不對單個記錄進行操作,可操作記錄集,所有SQL語句接受集合作為輸入,返回集合作為輸出。SQL的集合特性允許一條SQL語句的結果作為另一條SQL語句的輸入。
SQL不要求用戶指定對數據的存放方法,這種特性使用戶更易集中精力于要得到的結果;所有SQL語句使用查詢優化器,它是RDBMS的一部分,由它決定對指定數據存取的最快速度的手段,查詢優化器知道存在什么索引,在哪兒使用索引合適,而用戶則從不需要知道表是否有索引、有什么類型的索引。
統一的語言:SQL可用于所有用戶的DB活動模型,包括系統管理員、數據庫管理員、應用程序員、決策支持系統人員及許多其它類型的終端用戶。
SQL為許多任務提供了命令,其中包括:
n查詢數據
n在表中插入、修改和刪除記錄
n建立、修改和刪除數據對象
n控制對數據和數據對象的存取
n保證數據庫一致性和完整性
以前的數據庫管理系統為上述各類操作提供單獨的語言,而SQL將全部任務統一在一種語言中。
所有關系數據庫的公共語言:由于所有主要的關系數據庫管理系統都支持SQL語言,用戶可將使用SQL的技能從一個RDBMS(關系數據庫管理系統)轉到另一個,所有用SQL編寫的程序都是可以移植的。
2.2.2SQL語句
SQL功能強大,是一種完備的數據處理語言,不僅用于數據庫查詢,而且用于數據庫中的數據修改和更新,概括起來,它可以分成以下幾組:
DML(DataManipulationLanguage,數據操作語言):用于檢索或者修改數據;
DDL(DataDefinitionLanguage,數據定義語言):用于定義數據的結構,比如創建、修改或者刪除數據庫對象;
DCL(DataControlLanguage,數據控制語言):用于定義數據庫用戶的權限。
DML組可以細分為以下的幾個語句:
SELECT:用于檢索數據;
INSERT:用于增加數據到數據庫;
UPDATE:用于從數據庫中修改現存的數據;
DELETE:用于從數據庫中刪除數據。
DDL語句可以用于創建用戶和重建數據庫對象。下面是DDL命令:
CREATETABLE,ALTERTABLE,DROPTABLE,CREATEINDEX,DROPINDEX
下面是一個簡單SQL語句的例子:
我們使用SQL語句來從Book中檢索‘借書證號’為‘000001’的借閱者姓名:
SELECT姓名FROMBookWHERE借書證號=‘000001’
2.2.2.1DDL與DML
數據定義語言DDL:它是用來創建和修改數據庫結構的一種語句,包括Create、Alter和Drop語句。
數據操作語言DML:包括數據查詢與數據更新。數據查詢主要是由Select語句完成,這一點不再贅述。而數據更新所造成的風險大大超過數據查詢。數據庫管理系統必須在更改期內保護所存儲的數據的一致性,確保有效的數據進入數據庫,數據庫必須保持一致性,DBMS還必須協調多用戶的并行更新,以確保用戶和它們的更改不至于影響其它用戶的作業。
用于修改數據庫內容的SQL語句主要有以下三個:
(1)Insert,向一個表中加入新的數據行
(2)Delete,從一個表中刪除數據行
(3)Update,更改數據庫中已經存在的數據
Insert標準語法:
INSERTINTOtable_name(col1,col2...)VALUES(value1,value2...)
下例要將借書證號為‘000001’作為一個新的借書情況加入借書情況表OWNER中
InsertInto
owner(借書證號,圖書編號,借書日期)
values(‘000001’,‘00000001’,‘2002-9-12’)
Insert語句還可以將多行數據添加到目標表中去,在這種形式的Insert語句中,新行的數據值不是在語句正文中明確地指定的,而是語句中指定的一個數據庫查詢。添加的值來自數據庫自身的行,在某些特定的狀態下,這是非常有用的。多行Insert語句為拷貝數據提供了一種緊湊而高效的方法,但我在自已做的圖書管理系統中沒有使用這種方法,我在系統中是使用循環依照上面的用法來完成多個記錄的插入。
Update語句用于更新單表中選定行的一列或多列的值。要更新的目標表在語句中定義,Set子句則指定要更新哪些列并計算它們的值。Update語句總是包含Where語句,而且Update語句比較危險,所以您必須明確地認識到Where語句的重要性,Where語句被用來指定需要更新的行。
標準語法:
UPDATEtable_name
SETcolumnname1=value1
[,columname2=value2]...
WHEREsearch_condition
Delete語句標準語法:
DELETEFROMtablenameWHEREcondition
2.2.2.2復雜操作實現
在信息管理系統中,我們往往會遇到歸類、匯總、映射、索引、子查詢等復雜操作,相應的支持與實現如下:
uGROUPBY方法
GROUPBY子句語法為:
SELECTcolumn1,SUM(column2)
FROM"list-of-tables"
GROUPBY"column-list";
這個GROUPBY子句將集中所有的行在一起,它包含了指定列的數據以及允許合計函數來計算一個或者多個列。
在本人的系統中在顯示數據時用到了此語句來對查詢所得的內容排序然后再顯示。
u組合條件和布爾運算符
以下的SQL語句中就含有組合條件:
SELECTcolumn1,SUM(column2)
FROM"list-of-tables"
WHERE"condition1"AND"condition2";
下面是一個示例:
SELECT身份描述
FROMID,user
WHEREID.身份編號=USER.身份編號anduser.借書證號=’000001’;
這條SQL語句是從user、id表中查找借閱證號為000001的借閱者的身份描述,第三條語句中如果其中有一個條件為假,那么就什么都沒有顯示。
uUNION子句
有些時候,需要一起瀏覽多個查詢的結果、組合它們的輸出,我們可以使用UNION關鍵字。
第三章應用系統開發工具
§3.1Delphi6.0VCL組件的體系結構
Delphi類可以粗略地分成兩部分:一部分是組件類,這些組件類通常以某種方式出現在組件面板上,當用戶從組件面板上點取一個類的圖標后,在程序中就自動生成了該類的對象(非可視組件除外);另一部分是功能類,這此功能類的對象通常出現在程序代碼中,起著不可代替的作用,但是這些功能類在組件面板上是找不到的。在Delphi中,每一個類的祖先都是Tobject類,整個類的層次結構就像一棵倒掛的樹,在最頂層的樹根即為Tobject類。這樣,按照面向對象編程的基本思想,就使得用戶可用Tobject類這個類型代替任何其它類的數據類型。實際上在Delphi的類庫中,Tobject類派生出了為數相當眾多的子類,它們形成了一個龐大的體系,通常情況下,如果不自行開發組件,就不必了解整個類的體系結構,只用到類層次樹的葉結點就足夠了。
這一小節簡略介紹一下Delphi6.0中VCL(可視化組件庫)組件的體系結構。凡是做過程序開發的人都知道從來沒有單純的數據應用程序,也就是說,數據庫應用程序必須和用戶界面(可以是圖形界面,也可以是命令接口)元素相結合,只講界面或只講數據庫本身都構不成數據庫應用程序,因而用Delphi6.0開發數據庫應用程序就隱含著界面開發。Delphi6中的VCL組件可用圖3-1來說明。
組件在Delphi程序的開發中是最顯眼的角色。大家知道,在編寫程序時一般都開始于在組件面板上選擇組件并定義組件間的相互作用。但也有一些組件不在組件面板上,例如Tform和Tapplication(典型的非可視組件)。組件是Tcomponents派生出來的子類,可以流的形式存放在DFM文件中,具有事件和Publish屬性。
窗口組件類是窗口化的可視化組件類,在Delphi的類庫中占有最大的份額。在實際編程中,窗口組件類的對象都有句柄,可以接受輸入焦點和包含其它組件。
圖形組件與窗口組件并列,是另一大類組件。圖形組件不是基于窗口的,因而不能有窗口句柄,不能接受輸入焦點和包含其它組件。從圖8-43中可以看出,圖形組件的基類是TgraphicControl,在實際編程中,它們必須寄生于它們的宿主——窗口組件類的對象,由它們的擁有者負責其顯示,而且它們還能觸發一些和鼠標活動相關的事件。圖形控件最典型的例子是Tlabel和TspeedButton。由此可以看出圖形組件的功能很弱,圖形組件的用處何在呢?其實使用圖形組件的最大好處在于節省資源,正是因為它們的功能較弱,所以使用的系統資源就要少。在一個應用程序中,如果能在不影響其功能的前提下合理大量地使用圖形組件,將會大減少程序對系統資源的消耗。
非可視組件是與可視組件相并列的另一類組件,非可視組件在程序運行中是不可見的(除各種對話框組件之外,事實上有人認為對話框組件不能歸入非可視組件,應該是另一種介于可視與非可視之間的組件)。
最后要說明一下,常說的控件實際上是一種組件。也就是說組件這個概念要大于控件,控件在內涵上包含于組件中。控件由Windows系列操作系統提出并使用,而組件是Borland和其它廠商在對Windows控件做了必要的擴展之后提出來的概念,它們是在不同時期由不同的廠商提出的概念。
§3.2數據庫組件介紹
用Delphi6開發數據庫應用,重點是和各種數據庫組件打交道,能和數據庫掛鉤的組件對象有5種,它們是:Session(數據庫會話)、Database(數據庫)、Dataset(數據集)、DataSource(數據源)、Datacontrol(數據控制組件,也叫data-controls即數據感知組件)。其中前面4種統稱為數據訪問(DataAccess)組件。這些組件的相互關系如圖3-2所示。
ADO組件Delphi6.0包含了可以用來訪問Microsoft公司的ActiveXDataObjects(ADO)格式數據庫的組件。ADO是Micrsoft公司關于各種類型數據的高等界面,后來逐漸演變成滿足所有數據訪問需要的完整解決辦法。ADO的對象模型是所有數據訪問接口對象模型中最簡單的一種。Microsoft公司用來訪問ADO數據的應用程序界面技術是OLEDB。OLEDB是一種底層編程接口,用來訪問許多不同類型的數據源,其中包括消息、文件系統以及其他一些非傳統的數據源。OLEDB是一個由ComponentObjectModel(COM)接口組成的集合,用來隱藏創建數據訪問服務過程中的細節。OLEDB提供了訪問任何數據資源的方法,包括相互關聯的數據庫和相互不關聯的數據庫、Email和文件系統、文本和圖形以及用戶定義的數據對象。
Delphi的ADO組件無需依靠BDE而是使用ADO技術,提供了可以通過數據控制組件訪問數據的新方法。唯一的要求是在使用ADO組件時必須運行ADO/OLE-DB。ADO組件的使用使得DELPHI在訪問數據的類型和采用的技術方面都有了很大的突破。
數據模塊設計窗口數據模塊設計窗口是用來設計和維護數據模塊的。數據模塊設計窗口中包含了所有以.DTI作為文件擴展名的DataDiagram文件的信息。DTI文件在編譯時不起任何作用。
§3.3SQL語言在Delphi中的應用
在Delphi中使用SQL語言非常方便,一般來說,都是通過Tquery或TADOquery組件來使用SQL語言的。可以在Tquery或TADOquery組件的SQL屬性中設置SQL語句。設計程序時,在該組件的屬性對話框中選擇SQL屬性,單擊帶省略號的按鈕,就可以打開StringListEditor對話框,然后我們就可以在對話框中添加SQL語句。還可以使用Delphi的SQLBuilder來自動生成SQL語句,這樣可以避免手工編寫SQL而可能造成的語法錯誤。
靜態SQL語句在程序設計時便已固定下來,它不包含任何參數和變量。
動態SQL語句,也被稱作參數化的語句,在其中間包含著表示字段名或表名的參數,例如下面的語句是一條動態SQL語句:
Select*FromBookWhere圖書編號=:bookCode;
其中的變量bookCode便是一個參數變量,它由一個冒號引導,在程序運行過程中,必須要為該參數賦值,該條SQL語句才能正確執行,每次運行應用程序時可以為該參數變量賦予不同的值。為參數賦值有三種方法:
①根據參數在SQL語句中出現的順序,設置TADOQuery組件的parameters屬性值為參數賦值。
②直接根據SQL語句中各參數的名字,調用ParamByName方法來為各參數賦值。
③將TADOQuery組件的DataSource屬性設置為另一個數據源,這樣將另一個數據源中與當前TADOQuery組件的SQL語句中的參數名相匹配的字段值賦給其對應的參數。利用這種方法也能實現所謂的連接查詢,創建主要—明細型數據庫應用。
在使用動態SQL語句編程時,常常用到一個很重要的方法Prepare,調用Prepare方法之后,Delphi會將帶參數的SQL語句傳送給與其對應的數據庫引擎,對動態SQL語句進行語法分析和優化。雖然在用動態SQL語句編程時,調用Prepare方法并不是必須的,但是調用Prepare方法后,會極大地提高動態SQL語句的執行性能,特別是當要反復多次執行同一條動態SQL語句時,其優越性會更加明顯。如果在應用程序中執行一條SQL語句之前并沒有顯式地調用Prepare方法,每次在執行SQL語句時,Delphi會隱含地調用Prepare方法以準備這個查詢。
TadoQuery部件還有一個Prepare屬性,這是一個布爾型屬性,當其屬性值為True時,表明該查詢已被準備好了(SQL語句已被傳送到數據庫引擎中),當我們使用參數編輯器ParametersEditor來為動態SQL語句中的參數賦值時,當設置完相應的參數值并退出參數編輯器時,Delphi會隱含地調用Prepare方法以準備好查詢。
當SQL語句執行完之后,要想準備下一個查詢,首先必須調用Close方法,然后才能調用Prepare方法準備下一個查詢。一般來說,在一個應用程序中應該調用一次Prepare方法,常常在窗體的OnCreate事件處理過程中調用Prepare方法,然后用上述介紹的方法為參數賦值,最后調用Open方法或ExecSQL方法執行SQL語句,以完成查詢。
當然在調用Prepare方法準備好一個查詢時,會消耗一些數據庫資源,因而每當一個查詢執行完畢之后,要養成調用UnPrepare方法以撤消查詢的好習慣。在運行程序過程中,通過程序改變TQuery或TADOquery部件的SQL屬性值時,Delphi會自動地調用Close方法和UnPrepare方法,以撤消查詢。
在程序運行過程中,要想設置Tquery或TADOquery部件的SQL屬性,必須首先調用Close方法,關閉TQuery或TADOquery部件,然后再調用Clear方法清除SQL屬性中現存的SQL命令語句,最后再調用Add方法為SQL屬性設置新的SQL命令語句。例如:
datamodule4.adoquery2.close;
datamodule4.adoquery2.sql.clear;
datamodule4.adoquery2.sql.add(''''SELECT借書證號,密碼FROM[user]WHERE(借書證號=:tt)'''');
datamodule4.adoquery2.parameters[0].value:=username;
datamodule4.adoquery2.open;
在為TQuery或TADOquery部件設置SQL屬性時調用Close方法總是很安全的,如果TQuery或TADOquery部件已經被關閉了,調用Close方法時不會產生任何影響。在應用程序中為SQL屬性設置新的SQL命令語句時,必須要調用Clear方法以清除SQL屬性中現存的SQL命令語句,如果不調用Clear方法,便調用Add方法向SQL屬性中設置SQL命令語句,那么新設置的SQL命令語句會追加在現存SQL命令語句后面,在程序運行時常常會出現出乎意料的查詢結果甚至程序無法運行下去。
在這里要特別注意的,一般情況下TQuery或TADOquery部件的SQL屬性只能包含一條完整的SQL語句,它不允許被設置成多條SQL語句。當然有些數據庫服務器也支持在TQuery或TADOquery部件的SQL屬性中設置多條SQL語句,只要數據庫服務器允許這樣,我們在編程時可以為SQL屬性設置多條SQL語句。
在為TQuery或TADOquery部件設置完SQL屬性的屬性值之后,也即編寫好適當的SQL程序之后,可以有多種方式來執行SQL程序。
在設計過程中,設置完TQuery或TADOquery部件的SQL屬性之后將其Active屬性的值置為True,這樣便可以執行SQL屬性中的SQL程序,如果應用中有與TQuery或TADOquery部件相連的數據瀏覽部件(如TDDGridTDBEdit等)那么在這些數據瀏覽部件中會顯示SQL程序的執行結果。
在應用程序運行過程中,通過程序調用TQuery或TADOquery組件的Open方法或ExecSQL方法可以執行其SQL屬性中的SQL程序。Open方法和ExecSQL方法是不一樣的。Open方法只能用來執行SQL語言的查詢語句(Select命令),并返回一個查詢結果集,而ExecSQL方法還可以用來執行其它常用的SQL語句(如INSERT,UPDATE,DELETE等命令),例如:
Query1.Open(這樣會返回一個查詢結果集)
如果調用Open方法,而沒有查詢結果時,會出錯。此時應該調用ExecSQL方法來代替Open方法。如:
Query1.ExecSQL(沒有返回結果)
當然在設計應用程序時,程序設計人員是無法確定TQuery或TADOquery組件中的SQL語句是否會返回一個查詢結果的。對于這種情況應當用Try…Except模塊來設計程序。在Try部分調用Open方法,而在Except部分調用ExceSQL方法,這樣才能保證程序的正確運行。
例如:
Try
Query1.Open
Except
Query1.ExecSQL
End
通過Tquery或TADOquery組件可以獲得兩種類型的數據:
u“活動”的數據
這種數據就跟通過TTable部件獲得的數據一樣,用戶可以通過數據瀏覽部件來編輯修改這些數據,并且當調用Post方法或當焦點離開當前的數據瀏覽部件時,用戶對數據的修改自動地被寫回到數據庫中。
u非活動的數據(只讀數據)
用戶通過數據瀏覽部件是不能修改其中的數據。在缺省情況下,通過TQuery部件獲得的查詢結果數據是只讀數據,要想獲得“活動”的數據,在應用程序中必須要設置Tquery或TADOquery組件的RequestLive屬性值為True,然而并不是在任何情況下(通過設置RequestLive的屬值True)都可以獲得“活動”的數據的,要想獲得“活動”的數據,除了將TQuery部件的RequestLive屬性設置為True外,相應的SQL命令還要滿足以下條件。
本地SQL語句查詢情況下,要得到可更新的數據集,SQL語句的限制為:
n查詢只能涉及到一個單獨的表
nSQL語句中不能包含ORDERBY命令
nSQL語句中不能含聚集運算符SUM或AVG
n在Select后的字段列表中不能有計算字段
n在Select語句WHERE部分只能包含字段值與常量的比較運算,這些比較運算符是:Like,>,<,>=,<=。各比較運算之間可以有并和交運算:AND和OR
當通過SQL語句查詢數據庫服務器中的數據庫表:
n查詢只能涉及到一個單獨的表
nSQL語句中不能包含ORDERBY命令
nSQL語句中不能含聚集運算符SUM或AVG運算
另外,如果是查詢Sybase數據庫中的表,那么被查詢的表中只能有一個索引。
如果在應用程序中要求TQuery或TADOquery組件返回一個“活動”的查詢結果數據集,但是SQL命令語句不滿足上述約束條件時,對于本地數據庫的SQL查詢,BDE只能返回只讀的數據集。對于數據庫服務器中的SQL查詢,只能返回錯誤的代碼。當Tquery或TADOquery組件返回一個“活動”的查詢結果數據集時,它的CanModIfy屬性的值會被設置成True。
§3.4MSSQLServer簡述
SQLServer是一個后臺數據庫管理系統,它功能強大操作簡便,日益為廣大數據庫用戶所喜愛。越來越多的開發工具提供了與SQLServer的接口。SQLServer是一個關系數據庫管理系統,它最初是由Microsoft、Sybase和Ashton-Tate三家公司共同開發的。于1988年推出了第一個OS/2版本,在WindowsNT推出后,Microsoft與Sybase在SQLServer的開發上就分道揚鑣了,Microsoft將SQLServer移植到WindowsNT系統上,專注于開發推廣SQLServer的WindowsNT版本。
SQLServer2000是Microsoft公司推出的SQLServer數據庫管理系統的最新版本,該版本繼承了SQLServer7.0版本的優點,同時又比它增加了許多更先進的功能、具有使用方便、可伸縮性好與相關軟件集成程度高等優點。可跨越從運行MicrosoftWindows98的膝上型電腦到運行MicrosoftWindows2000的大型多處理器的服務器等多種平臺使用。MSSQLServer不但可以應用于大中型數據庫管理中,建立分布式關系數據庫,并且也可以開發桌面數據庫。事實上,SQLServer數據庫處理的基本結構,采取關系型數據庫模式,盡管如此,相信大家都可以輕易的發現,在SQLServer的數據庫處理方式,則是使用面向對象的操作方式與精神,也就是說,SQLServer的所有功能,都可以基于系統已經建立好的一些對象來達成,是相當OO(面向對象)的一個系統結構。
SQLServer企業管理器是SQLServer的主要管理工具,它提供了一個遵從MMC標準的用戶界面,使用戶得以:
·定義SQLServer實例組。
·將個別服務器注冊到組中。
·為每個已注冊的服務器配置所有SQLServer選項。
·在每個已注冊的服務器中創建并管理所有SQLServer數據庫、對象、登錄、用戶和權限。
·在每個已注冊的服務器上定義并執行所有SQLServer管理任務。
·通過喚醒調用SQL查詢分析器,交互地設計并測試SQL語句、批處理和腳本。
·喚醒調用為SQLServer定義的各種向導。
·
第三章圖書管理系統設計分析
§4.1應用需求分析
圖書管理系統需要滿足來自三方面的需求,這三個方面分別是圖書借閱者、圖書館工作人員和圖書館管理人員。圖書借閱者的需求是查詢圖書館所存的圖書、個人借閱情況及個人信息的修改;圖書館工作人員對圖書借閱者的借閱及還書要求進行操作,同時形成借書或還書報表給借閱者查看確認;圖書館管理人員的功能最為復雜,包括對工作人員、圖書借閱者、圖書進行管理和維護,及系統狀態的查看、維護并生成催還圖書報表。
圖書借閱者可直接查看圖書館圖書情況,如果圖書借閱者根據本人借書證號和密碼登錄系統,還可以進行本人借書情況的查詢和維護部分個人信息。一般情況下,圖書借閱者只應該查詢和維護本人的借書情況和個人信息,若查詢和維護其他借閱者的借書情況和個人信息,就要知道其他圖書借閱者的借書證號和密碼。這些是很難得到的,特別是密碼,所以不但滿足了圖書借閱者的要求,還保護了圖書借閱者的個人隱私。
圖書館工作人員有修改圖書借閱者借書和還書記錄的權限,所以需對工作人員登陸本模塊進行更多的考慮。在此模塊中,圖書館工作人員可以為圖書借閱者加入借書記錄或是還書記錄,并打印生成相應的報表給用戶查看和確認。
圖書館管理人員功能的信息量大,數據安全性和保密性要求最高。本功能實現對圖書信息、借閱者信息、總體借閱情況信息的管理和統計、工作人員和管理人員信息查看及維護。圖書館管理員可以瀏覽、查詢、添加、刪除、修改、統計圖書的基本信息;瀏覽、查詢、統計、添加、刪除和修改圖書借閱者的基本信息,瀏覽、查詢、統計圖書館的借閱信息,但不能添加、刪除和修改借閱信息,這部分功能應該由圖書館工作人員執行,但是,刪除某條圖書借閱者基本信息記錄時,應實現對該圖書借閱者借閱記錄的級聯刪除。并且還應具有生成催還圖書報表,并打印輸出的功能。
在本系統中由于沒有打印機設備供試驗,所以預先把報表打印改成報表預覽。
設計不同用戶的操作權限和登陸方法
對所有用戶開放的圖書查詢
借閱者維護借閱者個人部分信息
借閱者查看個人借閱情況信息
維護借閱者個人密碼
根據借閱情況對數據庫進行操作并生成報表
根據還書情況對數據庫進行操作并生成報表
查詢及統計各種信息
維護圖書信息
維護工作人員和管理員信息
維護借閱者信息
處理信息的完整性
對借閱過期的圖書生成報表
圖4-2圖書管理系統數據庫應用需求的總結
根據以上所做的需求分析,并略掉一些細節(如不考慮用戶的登錄;對記錄的維護),得出以下的三層數據流圖。
§4.2系統功能模塊劃分
系統功能框圖如圖4-10所示。
§4.3系統數據庫設計
4.3.1概念設計
在概念設計階段中,設計人員從用戶的角度看待數據及處理要求和約束,產生一個反映用戶觀點的概念模式。然后再把概念模式轉換成邏輯模式。將概念設計從設計過程中獨立開來,使各階段的任務相對單一化,設計復雜程度大大降低,不受特定DBMS的限制。
利用ER方法進行數據庫的概念設計,可分成三步進行:首先設計局部ER模式,然后把各局部ER模式綜合成一個全局模式,最后對全局ER模式進行優化,得到最終的模式,即概念模式。
(1)設計局部ER模式
實體和屬性的定義:
圖書(圖書編號,圖書名稱,作者,出版社,出版日期,備注,價格,數量,)
借閱者(借書證號,姓名,性別,身份證,聯系電話,密碼)
身份(身份編號,身份描述,最大借閱數)
圖書類別(圖書類別編號,類別描述)
ER模型的“聯系”用于刻畫實體之間的關聯。一種完整的方式是對局部結構中任意兩個實體類型,依據需求分析的結果,考察局部結構中任意兩個實體類型之間是否存在聯系。若有聯系,進一步確定是1:N,M:N,還是1:1等。還要考察一個實體類型內部是否存在聯系,兩個實體類型之間是否存在聯系,多個實體類型之間是否存在聯系,等等。聯系定義如圖4-5所示。解釋如下:
u一個借閱者(用戶)只能具有一種身份,而一種身份可被多個借閱者所具有;
u一本圖書只能屬于一種圖書類別(類別),而一種圖書類別可以包含多本圖書;
u一個用戶可以借閱多本不同的書,而一本書也可以被多個不同的用戶所借閱。
(2)設計全局ER模式
所有局部ER模式都設計好了后,接下來就是把它們綜合成單一的全局概念結構。全局概念結構不僅要支持所有局部ER模式,而且必須合理地表示一個完整、一致的數據庫概念結構。
1)確定公共實體類型
為了給多個局部ER模式的合并提供開始合并的基礎,首先要確定各局部結構中的公共實體類型。在這一步中我們僅根據實體類型名和鍵來認定公共實體類型。一般把同名實體類型作為公共實體類型的一類候選,把具有相同鍵的實體類型作為公共實體類型的另一類候選。
2)局部ER模式的合并
合并的原則是:首先進行兩兩合并;先和合并那些現實世界中有聯系的局部結構;合并從公共實體類型開始,最后再加入獨立的局部結構。
3)消除沖突
沖突分為三類:屬性沖突、結構沖突、命名沖突。
設計全局ER模式的目的不在于把若干局部ER模式形式上合并為一個ER模式,而在于消除沖突,使之成為能夠被所有用戶共同理解和接受的同一的概念模型。
3)全局ER模式的優化
在得到全局ER模式后,為了提高數據庫系統的效率,還應進一步依據處理需求對ER模式進行優化。一個好的全局ER模式,除能準確、全面地反映用戶功能需求外,還應滿足下列條件:實體類型的個數要盡可能的少;實體類型所含屬性個數盡可能少;實體類型間聯系無冗余。
綜上所述,“圖書管理系統”的全局ER模式如圖4-13所示。
4.3.2關系數據庫的邏輯設計
由于概念設計的結果是ER圖,DBMS一般采用關系型(本人所使用的MSSQLServer就是關系型的DBMS),因此數據庫的邏輯設計過程就是把ER圖轉化為關系模式的過程。由于關系模型所具有的優點,邏輯設計可以充分運用關系數據庫規范化理論,使設計過程形式化地進行。設計結果是一組關系模式的定義。
(1)導出初始關系模式
book(圖書編號#,圖書名稱,圖書類別#,作者,出版社,出版日期,備注,價格,數量)class(圖書類別#,類別名)user(借書證號#,姓名,性別,身份編號#,身份證,聯系電話,密碼)ID(身份編號#,身份描述,最大借閱數)Owner(借書證號#,圖書編號#,借書日期)
圖4-14關系模式集
(2)產生子模式
子模式是用戶所用到的那部分數據的描述。除了指出用戶用到的數據外,還應指出數據與概念模式中相應數據的聯系,即指出概念模式與子模式之間的對應性。
借書子模式(借書證號#,姓名,圖書編號#,圖書名稱,借書日期)
圖4-15部分子模式
(3)根據設計中出現的問題本人在寫系統時還加入了兩個關系模式:
1、ownertemp:用于工作人員在處理借書、還書工作時臨時存儲借書、還書信息,以便打印報表時使用。
2、keyer:用于存儲工作人員和圖書館管理員的用戶名和密碼及權限,以便工作人員或圖書館管理員進入相應的功能模塊時進行驗證用戶的身份。
4.3.3數據庫的實現
我選用MicrosoftSQLServer2000(企業版)數據庫來進行數據庫的邏輯設計。首先創建七個基本數據庫表如表4-1-4-7所示,然后根據全局ER圖,建立各個表之間的聯系,如圖4-8所示。
表4-1借閱者基本信息表的結構(User)
表4-2圖書信息表的結構(Book)
表4-3圖書類別信息表的結構(Class)
表4-4借閱者身份信息表的結構(ID)
表4-5借閱情況信息表的結構(Owner)
表4-6借閱情況臨時存儲信息表的結構(Ownertemp)
注:在owner表和ownertemp表中加入了索引字段,用來唯一標識一條借書記錄,并且設置為標識,標識種子為1。
表4-7工作人員和管理員信息表的結構(Keyer)
圖4-8數據庫表間聯系圖
第五章圖書管理系統應用程序設計
§5.1系統窗體模塊組成
§5.2數據模塊窗體的設置
在編寫數據庫應用程序時,經常要遇到這樣的情況,即好多組件、窗體同時訪問相同的數據源,如果為每一個組件或者窗體都設置一個數據源將是十分耗時的工件,而且要保證這些數據源的確是相同的也需花一番功夫。那么,能不能將這些數據源集中管理,最好是做成一個統一的模塊,需要時就將該模塊引入而不必直接操作數據源本身呢?數據模塊(DataModule)是解決這個問題最好的答案。簡單說來,數據模塊是用來集中管理數據源的一個窗體,該窗體可被需要的地方隨時引入。
但本人在開發這個系統時,開始使用了一下數據模塊,但在使用過程中卻碰到了一些問題。并且考慮這個系統使用到的TADOQuery控件比較多,如果使用數據控件可能會帶來管理上的麻煩,如弄混各個數據控件的作用。還考慮到使用動態生成ADOQuery可能會更節省資源。所以在本人的系統中,開始做的第一個模塊“借閱者個人模塊”中還稍微使用了一下數據模塊。但在后面做的兩個模塊中大多都是用動態生成ADOQuery來實現的。并且由于SQL語句是動態加入的所以datamodule中的控件也不會多。
§5.3啟動畫面的實現
啟動畫面是為了給用戶一個良好的印像,加深軟件的親和力,沒有實際的功能,在Form1窗體中加入了Image和Time組件。啟動畫面的窗體略,主要的源代碼如下:
§5.4用戶登錄窗體的的實現
本窗體是為三種不同的用戶(一般用戶,工作人員,管理員)提供選擇以進入不同的模塊,滿足不同用戶的需求。源代碼比較簡單,略。
§5.5用戶密碼認證窗體的的實現
本窗體是為了讓工作人員或圖書館管理員按照用戶名和密碼進行登錄,并且跟據用戶名檢查Keyer表中的“權限”字段,以分辯進入圖書館管理人員模塊還是進入工作人員模塊。窗體界面、源代碼如下
§5.6借閱者服務模塊的實現
借閱者服務窗體的功能主要是圖書的查詢,個人借閱情況查看及個人部分信息的修改。界面圖如下:
5.6.1圖書查詢功能的實現
在本系統中,任何人都有權限使用查詢功能,不做任何限制。界面如下,
由于實現的查詢功能有多種,如按圖書編號、圖書名稱等字段進行完全體配查找和部分體配的模糊查找,還有按多個條件進行邏輯與或是邏輯或的多條件查找。其中實現的方法者差不多,所以只給出多條件查找的代碼,如下:
5.6.2借閱者登錄功能的實現
這個功能的實現與工作人員和管理人員登錄功能實現的方法大致一樣,并且還要簡單。是從User表中查到到借閱證號與密碼,看與用戶輸入的是否一致。如果一致,那么用戶就可查看自已的借閱情況并維護自己的部分信息。源代碼與借閱者登錄界面都略。
5.6.3借閱者借閱情況功能的實現
當借閱者正確登錄到系統后,此功能將被激活,使用戶能查看到自身的借閱情況。在此系統中,信息的顯示一般用ListView來實現,只在較少的情況下用到了DBgrid,因為我覺得ListView更好實現,并能使信息數據對用戶的完全分離。
在這里跟據借閱者的不同要求實現借閱情況的查詢,有檢查所有的借閱情部、某本書的借閱情況、和根據已借閱天數的來查詢。其中根椐借閱天數來查詢更有代表性,有方式一和方式二。以下給出此功能的源代碼
按借閱天數查詢方式一
按借閱天數查詢方式二
5.6.4借閱者個人資料維護功能的實現
此功能實現當前借閱者部份資料的修改,但借書證號和身份類別這樣的信息不允許修改,這是圖書館管理員模塊的功能。在此界面中點擊修改按鈕將出現“修改”窗體(Form8),點擊修改密碼按鈕將出現groupbox8,在這里進行密碼修改。關鍵源代碼如下。
這里給出個人部分信息修改的源代碼:
這里給出密碼修改的源代碼:
5.7工作人員-圖書借閱/歸還模塊的實現
5.7.1工作人員進行圖書借閱功能實現
在這個功能中,工作人員輸入借閱者的借閱證號和所要借閱的圖書的圖書編號,然后點擊借閱按鈕就可進行圖書借閱。考慮到實際中可能會出現只知圖書名而不知圖書編號的情況,在此界面下方加入了一個轉換功能,可以把圖書名稱轉換成圖書編號,再進行圖書借閱。
在借閱完成后會生借閱報表以便借閱者檢查和確認,借閱報表的打印效果如下圖,實現比較簡單,略去實現過程。
5.7.2工作人員進行圖書歸還功能實現
在此功能中,工作人員根據借閱者的借書證號和歸還的圖書編號進行圖書的歸還工作。并且根據現實中可能會出現的只知圖書名不知圖書編號的歸還情況,所以加入了按書籍名稱進行歸還的功能。這個功能是圖書借閱功能中把圖書名稱轉換成圖書編號的一種改進方法,這樣就不用如借閱功能中一樣要先轉換再借閱了。歸還完成后,同樣會打印出歸還報表以便用戶檢查和確認。
5.8圖書館管理員模塊的實現
5.8.1圖書館管理員圖書管理功能的實現
在這個功能中可以在(*圖書編號)中輸入圖書編號,點查找按鈕后就會在各個相應的組件中顯示出信息,或按圖書名稱模糊查找到所要的記錄,在各個相應的組件中顯示第一條記錄的信息,也可在下端的ListView組件中點擊某一條記錄,在各個相應的組件中也會顯示所選記錄的信息。在入庫功能中只要不是相同的圖書編號并且帶*號提示的字段不為空就可插入新的圖書記錄。刪除則刪除那些Book表中的圖書記錄,如果借出還可依用戶要求連帶刪除owner表中的記錄。因為圖書修改與圖書入庫的功能與工作人員記錄修改和工作人員記錄添加的實現過程一樣,所以下面僅給出刪除功能的源代碼,如下
5.8.2圖書館管理員工作人員和管理員管理功能的實現
在此功能中可以加入工作人員或是管理員,或是修改他們的密碼、權限。
在此功能中如果選中ListView中的記錄,則在右邊相應的組件中顯示出信息,并且管理員還可對這些記錄進行修改或加入新的記錄。并且也可以點刪除按鈕刪除選中的一條或多條記錄。刪除功能與圖書記錄的刪除一般,所以下面只給出添加與修改的實現過程。
5.8.3圖書館管理員修改圖書類別及統記功能的實現
在此窗體中能對圖書的類別進行刪除,添加和修改,這模塊的功能的實現過程與圖書記錄的刪除,添加和修改一樣的,但是這個窗體還能跟據圖書類別進行統計,還可根據Book表和owner表統計出圖書總數目,庫存圖書數目,借出圖書數目及借閱過期的圖書數目。在這里給出統計圖書總數目,庫存圖書數目,借出圖書數目及借閱過期的圖書數目的實現過程中的幾個函數和過程
5.8.4圖書館管理員借閱者管理功能的實現
查詢借閱者可根據借閱者的借書證號或姓名或身份編號查找到借閱者的信息,也可以實行模糊查找,這個功能的實現與前面圖書查找的實現過程一般,就不再詳細說明。
5.8.5圖書館維護借閱者管理功能的實現
此功能能對借閱者信息進行查看添加、刪除、修改。在這里給出刷新按鈕的實現過程
5.8.6圖書館身份維護功能的實現
2圖書館光盤管理系統中面臨的著作權問題
圖書館光盤管理系統為讀者在電子資源檢索室及圖書館網站上瀏覽和下載光盤文獻資料提供服務,這樣將大大促進作品的傳播和使用。因此,作品的版權人不可能不關心這樣的問題:將光盤內容存儲到服務器中是否屬于版權人的專有權利?是否應該事先獲得該作品版權人的許可?是否違反了著作權法?
2.1復制權
我國著作權法規定:“圖書館、檔案館、紀念館、博物館、美術館等為陳列或者保存版本的需要,復制本館的作品,可以不經著作權人許可,不向其支付報酬,但應當指明作者姓名、作品名稱,并且不得侵犯著作權人依照本法享有的其他權利。”圖書館開發的光盤管理系統,將隨書光盤資源上傳到圖書館專用服務器,改變的只是作品的載體,其作品內容本身的完整性并沒有改變,是一種從數字到數字的復制,所以此時的數字化可以不經過版權人的許可,也不必付費。但是高校圖書館必須嚴格遵守相關法律條例,保證隨書光盤的開發和利用控制在合理使用的范圍內。
2.2信息網絡傳播權
隨書光盤管理系統是在網絡環境下進行的,必然涉及信息網絡傳播權。對于高校圖書館而言,各圖書館應認真遵守《信息網絡傳播權保護條例》的規定:“圖書館、檔案館、紀念館、博物館、美術館等可以不經著作權人許可,通過信息網絡向本館館舍內服務對象提供本館收藏的合法出版的數字作品和依法為陳列或者保存版本的需要以數字化形式復制的作品,不向其支付報酬,但不得直接或者間接獲得經濟利益。”圖書館要全面監控讀者使用各種資源情況,有效規避讀者在信息使用過程中侵犯權利人的知識產權。
2.3署名權、修改權、保護作品完整權
光盤管理系統的開發過程主要涉及著作權人的人身權,雖然不必取得著作權人許可,但要尊重作者的署名權、修改權、保護作品完整權:在對光盤的編輯中應指明作者姓名、不得擅自改變;也不能擅自對作品進行修改、更正補充、篡改,防止作者的名譽、聲望受到損害,維護作品的純潔性。
3防范圖書館光盤管理系統中的著作權問題
3.1對館員進行知識產權知識培訓,嚴防盜版光盤的入藏
在各種盜版活動猖獗的今天,圖書館必須開展知識產權法宣傳與培訓,提高圖書館工作人員的知識產權意識和法律素質,對工作中容易侵權的問題要特別注意:選擇正規出版社的出版物,保護著者版權,不購買低價盜版光盤,加強隨書光盤訂購、入藏、驗收等環節的管理,嚴防盜版光盤的入藏與流通,一經發現應堅決剔除。真正做到從行動上去保護知識產權,避免圖書館侵權行為的發生,首先要具備較高的知識產權保護意識,
3.2正確利用“合理使用”制度
圖書館是一個為教育服務、非營利性信息服務機構,為促進信息資源的共建共享,世界各國的現行著作權法都在不同程度上允許社會公眾的合理使用。圖書館光盤管理系統是將本館的館藏光盤進行數字化處理,是基于服務的并且無任何營利目的,在本館內、在原讀者范圍內使用,可以事先不征得著作權人的同意,也無須支付任何費用,但如果著作權人聲明其作品不允許復制,就不能將其作品拷貝并在網上傳播。圖書館應當以知識產權保護為基礎,充分利用“合理使用”這一權力,以保證最大限度地實現信息資源的合理使用,從而進一步擴大信息資源共享的范圍,但同時也應把握好尺度,嚴格遵循合理使用的范圍、權限。
3.3提高讀者知識產權意識
圖書館要對讀者進行知識產權保護的宣講活動,在數據庫主頁中版權公告,提醒讀者合理、合法使用數據庫資源,對讀者進行有效的引導。圖書館還應盡到注意義務,對有可能發生的讀者侵權行為進行警示,提醒讀者使用資源時尊重知識產權,不得將從圖書館獲得的資源用于任何商業目的,同時一旦發現侵權內容,立即采取適當措施予以移除。只有圖書館廣大讀者確確實實地提高了知識產權保護的意識,才能從根本上杜絕使用中侵權行為的發生,有效地規避知識產權風險。
3.4做好技術防范
首先,圖書館要嚴格控制傳播范圍,設置用戶賬號和密碼,確保光盤管理系統僅校內讀者在館域網或校園網內登錄訪問;還可以通過設置防火墻的方法來有效地將互聯網與內部網隔離,防止不在授權范圍內的網上讀者使用這些信息。其次,通過先進的計算機技術限制讀者下載,只允許讀者在線瀏覽,保護著作權所有人的利益。
1開發背景
辦公管理系統是在網絡技術飛速發展的情況下推出的新概念,而在圖書館歷經了傳統圖書館和自動化圖書館開始進入數字化圖書館階段的今天,辦公管理系統的引入更使圖書館界如虎添翼。在辦公信息化的大潮下,文件管理的信息化管理尤為重要。筆者近年經歷了本校的本科教學工作水平評估、升格師范大學水平評估以及業內的圖書館評估,對文件管理的重要性體會頗深,大量的歷年的文件、業務檔案及不斷修訂的規章制度等,如果有一種有別于圖書分類法的一個檔案管理系統,那么我們的工作效率會事半功倍。由此筆者針對圖書館的特點申請了一項課題,組織人員研制出一套文件管理系統:海南師范大學圖書館文件管理系統。
2平臺簡介
本系統是采用當前運用最廣泛的B/S結構模型,后臺采用Microsoft Access作為數據庫。Access是微軟公司推出的基于Windows的桌面關系數據庫管理系統(RDBMS),是Office系列應用軟件之一。它提供了表、查詢、窗體、報表、頁、宏、模塊7種用于建立數據庫系統的對象,提供了多種向導、生成器、模板,把數據存儲、數據查詢、界面設計、報表生成等操作規范化,為建立功能完善的數據庫管理系統提供了方便,也使得普通用戶不必編寫代碼就可以完成大部分數據管理的任務。
前臺所用的ASP語言(Active Server Pages)是微軟公司為了克服CGI嚴重的擴展性問題而開發的。解決了多用戶訪問進程,有效地利用了網絡資源。ASP技術簡化了Web程序開發,支持動態Web設計。ASP只用于服務器端,執行動態的、交互式的、高效率的站點服務器應用系統。ASP以標記語言的形式嵌入到HTML中并發送到客戶端,但是,顯示在客戶端瀏覽器的只是ASP執行結果所生成的頁面,而其本身根本看不到,所以安全性很好。同時,ASP也支持腳本語言,只要服務器端裝了腳本引擎就可以方便地架構網站。
系統運行環境是微軟的lIs(Internet Information Server),它把World WideWebserver,Gopher server和FtPsevrer全部包容在里面。IIs能網頁,并且由ASP,Java,VBscript產生頁面,有著一些擴展功能。IIs支持有編輯環境的界面(FRONTPAGE)、有全文檢索功能的界面(INDEX SERVER)、有多媒體功能的界面(NET SHOW),IIS6.0包括許多新功能,它們旨在幫助企業、lT專業人士和Web管理員實現其網站(他們可能擁有位于單個Ils服務器或多個服務器上的數千個網站)在性能、可靠性、可伸縮性和安全性方面的目標。
ASP+Access+IIs開發中小型網絡系統一直被視為黃金組合,這樣的結合對系統的資源占用適宜,每個部分都能很好地發揮其功能,在數據的處理能力和安全性上也有很好的選擇。
3系統主要功能介紹
3.1普通用戶
3.1.1登錄驗證
為了確保本系統特殊用戶的單一性和系統的安全性,系統不設置注冊功能,所有賬號和初始密碼均由普通用戶向管理員申請。
3.1.2用戶信息查看及修改
用戶可以對自己的基本資料(如姓名、所在部門、E—mail、聯系電話等)以及密碼進行瀏覽和修改。
3.1.3查看文件
該模塊的主要功能就是對文件、檔案資料(如相關文件、工作計劃、工作總結、月報、年報等日常工作文檔)共享,由管理員負責上傳,普通用戶可以瀏覽和下載。
3.1.4用戶上傳待審核文檔
該模塊針對由下級部門擬訂的文檔提供一個審核功能,如月報、年報、讀者意見反饋、館際交流、各部門統計報告等,待審定后再上傳到數據庫。
3.1.5文件檢索
為了加快用戶對文件檔案的查找速度進而提高辦公效率,系統設計了一個專門的文件檢索功能,包括普通檢索和高級檢索。
普通檢索:可提供文件名、主題、分類號、文件號、發文單位及發文時間等檢索途徑(見圖1)。
高級檢索:提供了普通檢索所具有的檢索途徑,并進行組配檢索(見圖2)。
3.2管理員
3.2.1登錄驗證
管理員的后臺管理登錄可以通過在首頁右下角處點擊“管理員入口”,進入管理員操作界面,進行身份驗證并登錄系統。
3.2.2管理員信息查看及修改
管理員可以對自己的基本資料(姓名、所在部門、E—mail、聯系電話等)以及密碼進行瀏覽和修改。
3.2.3用戶管理
管理員可對系統的普通用戶進行分配,同時還可以對用戶的基本資料進行查看、修改和刪除用戶,以確保數據庫的保密性和安全性。
3.2.4文件管理
對文件進行管理是本系統的主要目的,在文件管理模塊巾,管理員可以上傳文件、修改文件和刪除文件,同時也可以對文件進行瀏覽和下載。
3.2.5審核文件
本系統提供了文件審核功能.普通用戶上傳的文件只有經過管理員審核才能,確保了文件著錄的規范性和管理的科學性。
3.2.6文件檢索
管理員用戶是通過管理員進行區分的,對管理員來說,在日常工作中對文件的檢索也是必不可少的,檢索結果出來后可進行瀏覽和下載。
3.2.7服務器信息
為了方便管理員能實時了解服務器的信息以及對服務器的運作情況進行監控,系統設計了一個服務器實時信息反饋模塊。可查看服務器的有關參數、組件支持情況巾的IIS自帶的ASP組件、常見的文件上傳和管理組件。
4系統功能特色
4.1系統低成本性
由于系統本身的開發工具語言和運行平臺的簡單性,決定了系統在架構和運行維護上的成本都是比較低的;不僅如此,在需求分析階段,對各種需求結合開發工具設計,使得系統在最大限度上發揮了系統數據庫以及腳本語言的特色,使得系統在運行時對資源的占用相對較少,大大地提高了運行速度,為快速辦公打下了堅實的基礎。
4.2穩定的安全性
首先,本系統考慮到用戶是有針對性的特殊群體,每個人都能進人但又必須通過身份驗證;其二。本系統不提供注冊功能,要想得到賬號和密碼必須向管理員提出申請,由管理員統一分配賬號,預防不法者對內部資料檔案的竊取;其三,本系統在開發過程中通過對“session”變量的合理運用,防止不法者通過直接對URL的訪問來跳過身份驗證頁面進而訪問系統的其他資源頁面,一旦用戶沒有通過登錄頁面的身份驗證,系統將其他頁面進行隱藏,非法用戶將瀏覽不到任何資源。另外,系統通過對“session”變量的時間設置,一旦用戶停止操作時間過長,系統會要求用戶進行重新登錄進行身份驗證,從而在最大限度上保證了系統內部資料的安全性。
4.3良好的交互性
系統通過在各個頁面中對各個操作步驟的人性化提示,使得一些電腦操作技能較弱的用戶也能在最短時間內掌握基本的操作,從而對提高辦公效率起著不可或缺的作用。
4.4文件管理的科學性
在需求分析過程中,筆者考慮到文件及檔案資料可由不同層次部門產生的特點(如由上級分發的文件,同級之間的函件,下級的申請,各種業務統計等),特別設計了文件審核這一流程,各種文件在前都必須經過管理員的審核,為文件著錄的規范性和文件管理的科學性提供了前提保證。
4.5組配檢索功能
隨著數據庫規模的擴大,檔案數據量增多,就必然需要一種可實現多途徑檢索的功能,為此系統專門設計了高級檢索功能,檢索途徑針對辦公文件及日常檔案的特點而設定。對字段內容比較特殊的文檔可通過普通檢索查詢,而對字段內容很普通的文檔則可通過高級檢索來進行查找,即通過對多字段的邏輯組配,并選擇相應的匹配模式,實現高級檢索。組配檢索使檢索命中率大大提高,解決了檔案管理巾存在的弊端,大大地節約了查找文件、檔案資料的時間,從而提高了信息化辦公的效率。
4.6數據信息類型多元化
本系統的數據信息包含文本、圖像、視頻、音頻或任何其他類型的信息數據。
1知識管理與信息管理
1.1信息
信息管理的概念是20世紀70年代在國外首先提出來的。美國東北大學的E.M.Trauth認為:信息管理分為3個不同的技術領域,即數據庫管理、記錄管理、數據處理管理。通常將這3個領域稱為信息管理。信息管理的概念又分為“廣義”和“狹義”兩個方面。從狹義上講,信息管理就是對信息的管理,即對信息進行組織、控制、加工、規劃等,并將其引向預定的目標;從廣義上講,信息管理的對象不只是信息,還包括與信息有關的人、機構、設備、環境等。對這些要素進行合理的組織和控制,以實現信息及有關資源的合理配置,從而有效地滿足社會的信息需求。
信息管理是利用信息資源的基礎,是信息經濟的起點。圖書館通過對信息的搜集、檢索、組織和傳播,將各種各樣的信息從分散到集中,從無序到有序,從存儲到傳播和利用,從宏觀上實現館際之間的信息資源協調與共享管理,方便人們能夠在特定時間獲取所需要的特定信息。
1.2知識管理
知識管理強調以人為中心,以信息和信息技術為基礎,以知識創新為目的,將知識看作是一種可開發資源的管理思想,從結構上看,它可分人力資源的管理和信息管理兩個方面。
(1)人力資源管理是知識管理的核心內容。知識管理思想第一次將信息和具有創新能力的人,共同作為關注的對象,并且特別關注具有創新能力的人。這與僅僅關注于物、技術、事物的傳統管理方式完全不同。知識管理的本質特征就是把人作為第一要素加以重視。著名的知識學教授IrujjroNonaka曾說:“只有人類才能在知識創新的過程中扮演核心角色,無論計算機的信息處理能力有多大,它們終究不過是人類的一種工具”。可見,人既是知識創新的主體,又是知識的載體,因此說對人的管理是知識管理的核心內容。
具體而言,人力資源管理是一種以“人”為中心,將人看作是最重要的資源的現代管理思想,其管理模式就是“以事就人”,以人為主,旨在使人適其所,人盡其才,使組織的成長配合個人能力的發展,使組織的目標與個人的目標有機地統一,它反映的是“人才決定企業前途”的經營理念。
(2)信息和信息技術是知識管理的基礎。第一,信息是知識創新的前提,知識只有通過信息載體的流動才能產生價值。知識是人腦的產物,是在信息基礎上通過人腦的
思維和重新整合才得以形成,正如國外學者Churchman所定義的;如果把知識看成是信息的集合,則無異于剝奪了其最核心的部分,知識存在于人而不是信息集合中,知識是人對一系列相關信息所產生的反應。第二,信息技術是知識管理的工具。隨著網絡技術的快速發展,信息的傳播速度、傳播廣度都有極大的提高。同時,現代技術的應用也為信息的廣泛傳播和有序化管理提供了最大的便利。這使知識管理中所必須具備的信息交流和共享成為可能。
(3)知識管理的最終目的是要以現有知識為基礎,結合實際進行創新,尋求信息處理能力與人的知識創新能力的最佳結合,在整個管理過程中最大限度地實現知識共享,以期將最恰當的知識在最恰當的時間傳遞最恰當的人,使他們能做出最恰當的決策。
2圖書館從信息管理轉向知識管理的必要性
(1)在信息時代,圖書館的信息服務是以提供一次、二次文獻為主,是基于用戶簡單提問和基于文獻物理獲取的服務,為用戶克服因信息分散而造成的檢索困難提供索引指南,提供文獻的線索或單個的文獻實物。信息管理主要圍繞信息的組織、檢索和傳遞展開,管理的內容僅局限于對信息的管理,而忽視對“人”的管理。信息技術成為整個管理的核心,它在信息的搜集、檢索、組織與傳播和管理中起著非常重要的作用。
在知識經濟時代,不同用戶群體的知識需求各不相同,圖書館的知識信息資源體系的內容也各具特色。用戶特定的知識需求還決定了圖書館的類型和性質,即圖書館為誰服務和如何服務的問題。在圖書館的知識管理活動中,始終是以用戶群體的知識需求為對象的,類型的劃分也是以用戶和其目標或功能等為重要基礎的。不同類型的圖書館
體現不同用戶群體的知識需求,圖書館本身具有激發用戶知識需求的功能,圖書館的管理活動對用戶知識需求具有促進或制約作用。
(2)圖書館的發展受制于社會政治經濟的進步,它通過開展相應的管理活動服務于社會的用戶群體,滿足用戶各方面的知識需求,而作為圖書館系統重要組成部分的用戶及其知識需求對圖書館管理活動的開展也有著重要的影響。人們在生產、生活、學習中對與物質能源同等重要的知識需求越來越強烈,需求量愈來愈大。這種知識需求對此階段的圖書館管理影響巨大,表現在:系統論、控制論、信息系統理論、信息資源管理等理論應用于圖書館管理中;以計算機技術、通訊技術、網絡技術為核心的現代信息技術綜合運用于圖書館館藏信息的收集、處理、檢索和傳遞;突出館藏信息資源的綜合開發和應用。所有這一切對圖書館管理工作的開展產生極大影響,充分發揮了圖書館的教育和情報等職能,突出了圖書館在知識經濟社會中的作用。正是因為圖書館在信息管理階段的發展,為圖書館進入知識管理階段創造了重要條件。顯然,人們的需求變化對搜集、處理、傳播和提供信息服務為己任的圖書館向知識管理過渡起著決定性的促進作用。圖書館必須實施先進的知識管理方式來滿足用戶群體的這種需求。
(3)在知識經濟社會,用戶對信息的需求呈現出廣泛化、綜合性、深度化、時效化和專門化的特點,部分用戶的需求趨向專深,對信息的需求更具個性化。而知識管理更側重于對新知識的生產、創造,通過對知識的管理,拋棄了信息管理中被動處理信息資源的工作模式,它與用戶的知識交流、共享、創新和應用的全過程相融合,從而成為用戶知識創新的核心推動力,給科研、生產工作帶來新的活力。知識管理過程中的知識服務不只局限于利用片面的信息來滿足用戶的需求,而是從用戶的目標和環境出發,以面向解決方案為重點,對用戶的需求進行系統分析,根據個人、群體或機構千差萬別的特殊需求提供從知識捕獲、析取、重組、創新、集成到應用的全程一體化服務。將分散在本領域及相關領域的專業知識加以集成,從中提煉出對用戶的研究、開發與創新有用的知識精品”供其使用,提高知識的獲取和實施效率,使得知識管理與服務朝著智能化的方向發展,將知識管理從理論變成了實踐。
3圖書館以用戶為中心實施知識管理的內容及策略
目前政府的知識管理問題已提到議事日程。1997年在多倫多召開的主題為“知識與發展”的國際會議上,成立了包括60個國際組織在內的“世界知識合作聯盟”,國際圖書館協會聯合會(IFLA)也申請加入。這說明,圖書館的知識管理活動已融入整個社會知識管理系統,并得到了社會認可。在知識經濟時代,圖書館又將承擔起知識創新,知識傳播和知識應用的重任,致力于提高整個國家和民族的文化素質,科技素質,以推動社會不斷發展進步。
3.1圖書館應該形成一種上下級一致,平等交流、知識共享的氣氛,才能便于圖書館事業的蓬勃發展
3.1.1設立知識主管CKO和信息主管CIO
知識主管由館長擔任,負責圖書館知識管理目標,計劃和措施的制定,監督知識管理的實施。信息主管可由精通業務的信息專家擔任,負責信息技術的開發和應用。
3.1.2調整圖書館結構
從傳統的縱向等級結構轉向扁平型網狀結構。根據工作性質設立各種類型的業務主管,取消行政級別。館內各部門、各成員對知識資源的占有和交流是平等的。
3.1.3建立一個有利于激發館員創造力和知識發揮的獎勵競爭機制。
3.2信息資源管理,建立知識倉庫,創建知識共享體系
在21世紀,圖書館將充分利用現代化信息、技術,整合館內各種信息資源,有效發揮知識導航的功能,成為館內服務與網上服務相結合的高度現代化的知識網絡,圖書館將成為社會的知識中心。
3.2.1資源數字化
在資源建設方面,圖書館將更加重視知識管理在資源配置中的應用。圖書館發展的重心移向網絡,開發網上信息的描述、管理和服務技術。利用現代網絡技術將更多的特色資源和常用資源數字化,通過數據的應用和普及,對網絡信息資源進行組織研究,使之更加有序化,最終形成知識倉庫,供用戶決策使用。
“館藏資源數字化”和“社會資源館藏化”的有機揉合并優化,構成了知識經濟環境下圖書館知識管理的兩個重要內容。“館藏資源數字化”就是將本館已入藏的非電子化文獻數字化,包括書目數據庫建設,特色數據庫建設,信息系統建設和各種載體文獻全文數字化。因此,圖書館資源既有一次文獻,又有二、三次文獻。“社會資源館藏化”是指對網絡信息資源進行組織,使之有序化,最終形成知識庫,根據用戶的實際需求,為用戶提供最直接,最高效率的知識信息服務。在網絡環境中,可存取的信息資源是未來圖書館信息服務的資源基礎。
3.2.2館藏虛擬化
圖書館資源的概念突破了時空的限制——不拘泥于自身的館藏,可將其他圖書館的資源作為自身可以取用的資源既虛擬館藏。在全球范圍內利用圖書館的信息搜索技術的優勢,以海量信息中獲取讀者所需的有效信息,向讀者提供時效性報務,極大地拓展了圖書館為讀者服務的潛力。
從事圖書館工作的人員究竟應樹立怎樣的價值觀呢?
高校圖書館是高等教育事業重要的支柱之一,是知識信息收集和傳遞的中心。它的功能目標有三:其一,加速知識信息載體傳遞周轉速度,以提高信息資源的利用率取得較大的經濟效益;其二,以主動性、針對性的信息服務,促進高校教學和科研各項工作的迅速發展;其三,在信息服務中,必須注重時效性,要及時地滿足師生對知識信息的需求,為教學和科研作好知識信息的后勤保障。
當前各高校圖書館的服務措施比較完善,服務的方式和布局都比較合理。作為工作人員在有利的條件下,不要僅把自己當成看守服務攤子的看守員和技術操作員,要積極主動,千方百計地使自己成為讀者利用信息資源的鑰匙,成為師生成才和攀登科學高峰的鋪路石和階梯。圖書館工作人員的責任及其價值觀就是甘當讀者開啟知識寶庫的鑰匙,輔助他人成才的鋪路石和階梯,全心全意為讀者服務。
二
明確地樹立了自我價值觀,那么,怎樣才能成功地實現自己的價值信念呢?
圖書館工作者不是知識信息一種簡單的傳遞中介質,它是一種知識勞動,同時圖書館工作是一個復雜的管理系統。從事圖書館工作的人員因其職務、分工的不同,都必須掌握有與其崗位分工和職務相適應的基本知識和技能,也就是說必須具備一定知識和能力,否則就不能實現其自己所樹立價值觀之目標。
就圖書館工作人員的修養而言,應做到如下幾點:
一、要有比較高文化知識素養,并終身學而不倦。荀子曰“少而不學,長也無能,知而好問,然后能才”這一格言應該成為圖書館工作人員的座右銘。
二、養成愛讀書的習慣,并要善于學習。從事圖書館工作的人,不論其過去受的教育程度如何,就其知識體系和結構而言,在工作中則總嫌不夠的。所以要達成實現自定的鑰匙、鋪路石和階梯價值目標,最關鍵的就是在于不斷學習和善于學習。圖書館工作人員的學習是多樣性的。
1、從書本上學。為了能搞好工作,圖書館工作人員當然不可能學學校所設的各種專業課程,但作為以信息載體為工具而從事教育工作的圖書館工作人員,就應該要求自己有比較淵博的知識。讀書有流覽和精讀兩者。流覽者廣泛涉獵,明其大略而已;深讀者,即對提高認識、分析、寫作能力者,尤其是對提高本職業所需專業知識和工作能力等就應深入地閱讀。知識造詣的深淺與自己的工作能力是成正比的。
2、向讀者學習,是圖書館工作最為重要的學習方法。向讀者學習,調查了解各科教學的參考書目,學校科研項目,所需文獻資料及關鍵教學環節,如課程設計、畢業論文、各類學科畢業設計所需的參考書目,要多詢問學生為什么喜歡讀這本書?該書有何特點?對教師也如是。向讀者學習就是學習我們所不懂的各類圖書的特點,年深日久我們就能獲得較為豐富的文獻資料的知識,這對工作是有很大好處的。
3、從工作中觀察、分析、總結也是一種重要的學習方式。同志有一幅對聯:與有肝膽人共事,從無字處讀書。從無字處讀書就是要善于從工作實踐中去學習,從工作實踐中發現有利于管理的各類信息,從實踐中發現問題和矛盾,加以分析、研究,提出解決問題的方法等等。
三、凡從事圖書館工作的人員都必須鉆研圖書館的專業知識,特別是要熟練地掌握圖書分類法及各類檢索工具的使用方法。
四、圖書館的管理工作是一個復雜的系統,對于工作人員個人價值信念的實現,必須置于系統中來體現: