日日夜夜撸啊撸,欧美韩国日本,日本人配种xxxx视频,在线免播放器高清观看

圖書管理系統(tǒng)論文大全11篇

時間:2023-03-17 18:02:05

緒論:寫作既是個人情感的抒發(fā),也是對學術真理的探索,歡迎閱讀由發(fā)表云整理的11篇圖書管理系統(tǒng)論文范文,希望它們能為您的寫作提供參考和啟發(fā)。

圖書管理系統(tǒng)論文

篇(1)

圖書管理系統(tǒng)FLCS分為圖書采訪子系統(tǒng)、編目子系統(tǒng)、流通子系統(tǒng)、典藏子系統(tǒng)、期刊子系統(tǒng)、全文管理子系統(tǒng)、書目檢索子系統(tǒng)、閱覽管理子系統(tǒng)八部分,系統(tǒng)各部分既相互獨立,又能進行各部分之間的數(shù)據(jù)調用。該系統(tǒng)提供了豐富的數(shù)據(jù)接口功能,可以實現(xiàn)系統(tǒng)數(shù)據(jù)與MARC(ISO2709)數(shù)據(jù)的相互轉換,也可以將系統(tǒng)數(shù)據(jù)轉換為相應的文本數(shù)據(jù),以供字處理軟件如WORD、條形碼打印軟件如EZ2等調用。該系統(tǒng)還具有聯(lián)合編目功能,可將本地或外地其他系統(tǒng)數(shù)據(jù)轉換為本系統(tǒng)數(shù)據(jù),并能通過倒排文檔對其進行多途徑、高速檢索。另外,系統(tǒng)可以由用戶進行功能設置,根據(jù)各館實際情況靈活設置系統(tǒng)參數(shù)。系統(tǒng)幫助則是對本系統(tǒng)的詳細介紹及問題解答,幫助初學者迅速掌握并能夠實際應用。

總之,F(xiàn)LCS不但是一個標準的完整的圖書信息管理軟件,它還是一個開放的具有數(shù)據(jù)轉換與通訊功能的管理系統(tǒng)。

系統(tǒng)特點

√面向最終用戶,全部操作可視化

√系統(tǒng)代碼為32位,能充分發(fā)揮計算機軟硬件性能并具有高度安全性。

√自動化程度高:出版者、出版地、書目號自動調出、可自動套錄所購采訪或編目數(shù)據(jù)、自動判斷圖書借出與還回、自動計算超期罰款、讀者超期書自動提示等。

√系統(tǒng)參數(shù)設置靈活:可對圖書借閱期限、超期罰款金額等參數(shù)自由設置。

√具有數(shù)據(jù)轉換與通訊功能:系統(tǒng)數(shù)據(jù)與MARC(ISO2709)數(shù)據(jù)相互轉換、系統(tǒng)數(shù)據(jù)轉換為各種文本數(shù)據(jù)。

√具有聯(lián)合編目功能。

√系統(tǒng)開放性好:可將光盤數(shù)據(jù)或互聯(lián)網(wǎng)上數(shù)據(jù)復制到本系統(tǒng)建立全文數(shù)據(jù)庫以供讀者網(wǎng)上調用。

√完全實現(xiàn)INTERNET實時數(shù)據(jù)交互。

√系統(tǒng)全部采用4位記時,徹底解決2000年問題。

√允許自動即時存盤,避免數(shù)據(jù)掉電丟失。

√顯示器分辨率自動識別,充分適應多種顯示器。

√可存貯圖書具體內容及附帶圖片、聲音、動畫等信息。

√系統(tǒng)能自動檢測圖書輸入的復本與登錄號錯誤,確保圖書流通時正確無誤。

√系統(tǒng)具有圖書錯誤碼修復功能,對由于停電、死機等非正常原因造成的系統(tǒng)數(shù)據(jù)錯誤均可自動恢復。

√FLCS有完整的歷史功能,可記錄圖書借還、罰款、銷證、現(xiàn)金等多種數(shù)據(jù)信息。

√通過特殊算法,實現(xiàn)高速包含式檢索。

標準的軟件

一、標準的32位WINDOWS應用軟件

圖書信息集成管理系統(tǒng)FLCS應用平臺為:PC機操作系統(tǒng):WINDOWS95及以上版本;網(wǎng)絡操作系統(tǒng)為:WINDOWSNT、NOVELL。FLCS徹底拋棄了16位操作系統(tǒng),在WIN95以下版本的PC機操作系統(tǒng)上不能運行。FLCS全部代碼為32位,能充分發(fā)揮計算機軟硬件性能并具有高度安全性。

圖書信息集成管理系統(tǒng)FLCS完全采用圖形界面,支持WINDOWS下的不同軟件傳遞數(shù)據(jù),不同軟件同時運行等所有功能。

二、標準的網(wǎng)絡軟件

圖書信息集成管理系統(tǒng)FLCS為標準的網(wǎng)絡軟件,通過FLCS我們可以實現(xiàn)幾十臺計算機同時編目、借還、檢索等操作。通過特殊的算法,F(xiàn)LCS在網(wǎng)絡上運行時,圖書借還、模糊檢索等速度得到了大幅度的提高。

從理論上講,F(xiàn)LCS的記錄限制為十億條,系統(tǒng)測試用HP(166/32M/2.1G)服務器,聯(lián)想(166/32M/2.1G)PC機工作站,管理200萬冊圖書,在10M網(wǎng)絡上運行時,檢索、借還等操作時均實現(xiàn)秒級延時。FLCS系統(tǒng)適用的網(wǎng)絡規(guī)模只受網(wǎng)絡操作系統(tǒng)限制,也就是說,只要所購網(wǎng)絡操作系統(tǒng)允許,您可以隨意增加入網(wǎng)微機數(shù)量。

三、標準的圖書館管理系統(tǒng)

系統(tǒng)支持CNMARC/USMARC/LCMARC(ISO2709)數(shù)據(jù),書目及連續(xù)出版物著錄符合《國際標準書目著錄(ISBD)》和《中國文獻著錄標準(GB3792)》,書目條碼符合中國圖書館行業(yè)條碼標準(Code39)。

FLCS60新增功能

√允許自動即時存盤,避免數(shù)據(jù)掉電丟失。在進行數(shù)據(jù)錄入、圖書借還等操作時,系統(tǒng)可將數(shù)據(jù)隨時存盤,以防因機器異常錯誤而造成數(shù)據(jù)丟失。

√顯示器分辨率自動識別,充分適應多種顯示器。操作窗口中的項目隨窗口的大小自動調節(jié)

√可存貯圖書具體內容及附帶圖片、聲音、動畫等信息。

√集成科技論文管理系統(tǒng)。

√多條件組合數(shù)據(jù)處理。在打印、統(tǒng)計、數(shù)據(jù)轉換等操作時,用戶可根據(jù)自已的需要進行組合數(shù)據(jù)處理,只輸出自己所需要的數(shù)據(jù)。

√徹底拋棄數(shù)據(jù)接口,完全實現(xiàn)INTERNET實時數(shù)據(jù)交互。系統(tǒng)通過C/S運算模式,將數(shù)據(jù)運算置于服務器端,實現(xiàn)了大批量數(shù)據(jù)的包含式檢索。

√所有打印均具有預覽功能,所有報表列超過長度均可自動折行。

√系統(tǒng)允許多個窗口同時操作,例如在不關閉借還窗口的情況下可以進行圖書預約、流通查詢、罰款登記等流通系統(tǒng)下的所有操作。

√增加多種統(tǒng)計功能。系統(tǒng)增加如編目階段統(tǒng)計、流通分類統(tǒng)計、流通明細流通、藏書分類統(tǒng)計等功能。

√增加多個數(shù)據(jù)字典

√增加欲超期查詢,可檢索出將要超期的讀者并可打印輸出。

√可方便的打印圖書借閱證。

√可進行批量銷證。

√可進行批量典藏及分冊典藏。

√檢索結果與檢索條件分離,可保留多個檢索結果。

√豐富借閱制度,可對不同類型讀者、不同類型圖書,設置不同的借閱權限。

√可將系統(tǒng)臨時文件放于本地,加快了程序運行速度。

圖書采訪

圖書采訪子系統(tǒng)的主要功能是記錄采訪信息并向編目子系統(tǒng)提供數(shù)據(jù)。圖書采訪子系統(tǒng)主要由數(shù)據(jù)處理、查詢、統(tǒng)計打印、圖書驗收、信函定書幾部分組成。下面就幾個功能做一點解釋說明。

一、數(shù)據(jù)錄入:通過ISBN號可以調入MARC數(shù)據(jù)、出版者數(shù)據(jù)并在輸入ISBN號時進行。

圖書館可以外購采訪數(shù)據(jù)或從互聯(lián)網(wǎng)上下載圖書采購數(shù)據(jù),然后通過數(shù)據(jù)錄入功能自動追加到采訪系統(tǒng)中來。在進行數(shù)據(jù)錄入時系統(tǒng)自動記錄圖書出版者信息,保證一次錄入多次調用。在進行數(shù)據(jù)錄入時系統(tǒng)自動,也就是說,如果您要采購的圖書已訂購或已收藏,系統(tǒng)會給您相應的提示。系統(tǒng)安全性校驗。例如,如果沒有輸入正題名、復本為0或過大,系統(tǒng)會給出相應的提示。數(shù)據(jù)攜帶。報紙科別、出版日期、復本、書商名信息系統(tǒng)會自動攜帶。

二、批量自動:系統(tǒng)將采訪錄入庫數(shù)據(jù)根據(jù)ISBN號、書名去采訪主庫、編目主庫依次查找,如找到則系統(tǒng)提示為重書。如果為重書,則可以修改其訂數(shù)據(jù)或將其刪除。

三、打印訂單:系統(tǒng)可打印標簽格式的訂單,此訂單格式已得到新華書店等書商允許。

四、圖書驗收:FLCS提供圖書驗收功能,通過圖書驗收,F(xiàn)LCS自動分配圖書登錄號。我們也可以不使用圖書驗收,而圖書編目時編目驗收一次完成。

圖書編目

圖書編目時系統(tǒng)自動調用采訪子系統(tǒng)數(shù)據(jù)及所購MARC數(shù)據(jù),圖書編目完成后,可將數(shù)據(jù)交送到編目主庫及流通子系統(tǒng)進行圖書典藏及流通。圖書編目子系統(tǒng)大致有圖書編目、自動、統(tǒng)計打印、數(shù)據(jù)轉換、數(shù)據(jù)維護幾部分組成。

一、圖書編目:FLCS采用固定條目式錄入方式,通過多種輔助功能加快了圖書編目速度。

√圖書編目時可以自動調入圖書采訪數(shù)據(jù)、圖書驗收數(shù)據(jù)、所購MARC數(shù)據(jù)、出版者數(shù)據(jù)等。

√在鍵入ISBN號時進行自動。

√可以輸入圖書內容。在此,可以輸入圖書文本內容,也可以將圖書內容通過復制、粘貼的方式將圖書內容復制到系統(tǒng)中。

√嵌入文件:在此,可以利用WINDOWS的嵌入功能嵌入圖片、聲音、動畫等。

√出版地、出版者等數(shù)據(jù)自動記憶。

√開本、頁數(shù)等自動加"cm"、"頁"。

√叢書名等字段自動攜帶。

√種次號自動給出。

√正題名、分類號、復本、登錄號錯誤提示。

二、編目:FLCS提供自動的批量功能,如果有重書系統(tǒng)則將新書與庫存圖書同時顯示出來,用戶可以對其直接進行修改。

三、檢查登錄號排序:圖書登錄號是圖書館每一冊書的唯一標識,圖書管理系統(tǒng)實際上是通過登錄號進行圖書借還的,如果在圖書錄入過程中登錄號或復本輸入錯誤,則會造成圖書借還錯誤。FLCS提供了"檢查登錄號排序"功能,通過它,我們可以檢查出重復的及不連續(xù)的圖書,并可打印輸出,以供我們改正。

四、打印統(tǒng)計:FLCS允許用戶進行多條件打印和統(tǒng)計,各條件可任意組合。例如我們可以統(tǒng)計某段時間加工的某類中的某語種的圖書編目情況。

五、數(shù)據(jù)轉換:FLCS允許用戶外購MARC數(shù)據(jù)、允許用戶建立聯(lián)合編目,F(xiàn)LCS還允許用戶將系統(tǒng)數(shù)據(jù)生成MARC數(shù)據(jù)及各種文本數(shù)據(jù)以便和其他軟件交換數(shù)據(jù)。

六、數(shù)據(jù)交送:FLCS允許批量調撥交送,也就是說,我們可以將要交送的數(shù)據(jù)指明其館藏位置、是否流通、條碼號與登錄號是否一致等圖書典藏信息,在進行圖書交送時每一冊圖書都使用這一信息,對少量具有不同典藏信息的圖書,我們再通過圖書典藏子系統(tǒng)將其更正。這樣就避免了對每一冊都進行典藏調撥,從而簡化了手續(xù),加快了圖書加工速度。

圖書流通

圖書流通是用來記錄圖書借還信息的,必需有書有證才能進行圖書流通,流通子系統(tǒng)中的圖書數(shù)據(jù)來自編目子系統(tǒng)。

一、圖書借還:FLCS的借還操作簡捷、高效,無論借還操作還是借還速度都在同類產(chǎn)品中處于領先地位。

√圖書借還自動識別,在借還過程中不用任何鍵盤切換操作。

√圖書還回時自動計算圖書超期罰款。

√圖書借還時自動檢測借書或還書讀者是否有超期書,如有超期書則出現(xiàn)提示。

√可自動建立圖書條碼號與登錄號的對應關系。

√自動檢測讀者數(shù)據(jù):包括讀者借數(shù)、掛失、資格、押金余額、書證限期等。

√自動檢測圖書數(shù)據(jù)。

√自動還約書記到。在圖書被還回時,如果此書已被預約,系統(tǒng)則自動所約圖書記到。

二、借閱統(tǒng)計:FLCS可按分類法統(tǒng)計出所有大類在某段時間的借閱種數(shù)、冊數(shù)及罰款多額。FLCS可統(tǒng)計出某段時間內的詳細借還情況。

三、圖書預約:如果讀者檢索到的圖書已被借完,他可以辦理預約手續(xù),以取得下次借閱的優(yōu)先權。讀者可以通過INTERNET網(wǎng)絡查詢到自己的約書是否已到,圖書館也可以定期打印預約到書單發(fā)給相關讀者以通知其約書已到。

四、查詢:

1.用戶可通過六種不同的渠道查詢圖書流通或讀者借閱情況。

2.FLCS有查詢欲超期讀者功能,通過對查詢日期的設置,可以檢索出已到期的讀者和將到期的讀者,以通知讀者提前還書。

3.通過對圖書借閱頻率的查詢,用戶可以評出各類熱門書和滯借圖書。

4.FLCS有詳細的借還記錄,通過借還歷史查詢,用戶可以方便的知道某段時間內某書曾被哪些讀者借過。如果出現(xiàn)撕書等違規(guī)現(xiàn)象,F(xiàn)LCS的歷史查詢會很大的縮小所要調查的讀者范圍。

五、罰款:FLCS系統(tǒng)的罰款只是從讀者押金中扣除而不涉及到現(xiàn)金。FLCS的罰款有詳細的歷史記錄,讀者可通過INTERNET對自動的罰款情況進行查詢。

六、書證管理

1.在進行讀者辦證時,系統(tǒng)攜帶除姓名之外的所有數(shù)據(jù),而加快的辦證速度。在進行讀者辦證時,可以嵌入讀者照片,以供打印讀者借閱證及圖書借還時使用。

2.FLCS可以方便的打印讀者借閱證。

3.FLCS進行單個或批量銷證,可方便的打印出某一單位的到期或將要到期的讀者清單,并標其借閱信息及押金余額等。這對學校圖書館來說是非常重要的,通過這一功能,用戶可以只對班級進行銷證工作,而不涉及到單個讀者。

4.FLCS的賬務管理工作實用而嚴謹,用戶只有在辦證、銷證、交款與退款處涉及到現(xiàn)金,其他罰款都是從押金扣除而不涉及到現(xiàn)金流動。FLCS有詳細的現(xiàn)金流通記錄以供查詢。

5.圖書錯誤修正:圖書在流通過程中會自動關聯(lián)許多數(shù)據(jù)庫,如果在關聯(lián)過程中發(fā)生停電、死機等異常錯誤而使數(shù)據(jù)失去關聯(lián),則會造成圖書借還不成功,這時,我們可以通過圖書錯誤修正功能修復圖書和讀者數(shù)據(jù),以使圖書可以繼續(xù)借還。

期刊管理

期刊管理由期刊訂購、現(xiàn)刊管理、過刊管理三部分組成,過刊編目完成后,可以通過數(shù)據(jù)交送,將數(shù)據(jù)交送到流通子系統(tǒng)進行過刊借還。

一、期刊訂購:期刊訂購是用來記錄期刊訂購信息的。

1.期刊增訂:在進行期刊增訂時,系統(tǒng)自動檢測所錄入期刊是否已訂購,并給出提示信息。

2.打印訂購清單:用戶可以對不同書商、語種、出版頻率打印訂購清單,并可以將期刊訂購數(shù)據(jù)生成EXCEL文檔,以用來數(shù)據(jù)交換。

二、現(xiàn)刊管理:現(xiàn)刊管理要調用期刊訂購數(shù)據(jù)并為過刊管理積累數(shù)據(jù)。

1.現(xiàn)刊記到:現(xiàn)刊記到時,系統(tǒng)自動調入訂購數(shù)據(jù),自動計算應到期號,自動生成本期訂價,自動對應語種及排架號,自動檢測已到期與缺期。

2.打印裝訂通知單:系統(tǒng)自動檢測已到齊期刊并打印輸出,用戶可根據(jù)此清單進行現(xiàn)刊下架。

三、過刊管理:過刊管理由過刊編目、打印著錄卡片、財產(chǎn)賬等幾部分組成。

過刊編目:過刊編目時系統(tǒng)自動調用訂購數(shù)據(jù)、現(xiàn)刊數(shù)據(jù)及現(xiàn)刊下架數(shù)據(jù),系統(tǒng)自動計算現(xiàn)刊合訂價,自動給出分類號等。

圖書典藏

通過圖書典藏,用戶可以指明每冊書的條碼號、館藏位置、是否允許流通等信息。FLCS允許用戶進行批量交送典藏然后再對個別圖書進行典藏登記的方式,從而簡化了典藏手續(xù),加快了典藏效率。

一、圖書典藏:在圖書典藏時,用戶可以指定每冊書的條碼號也可以不指定,如果不指定,用戶可以在圖書借還時再建立圖書登錄號與條碼號的對應關系。

實際上,F(xiàn)LCS允許用戶不經(jīng)過圖書典藏而直接進行圖書流通,這反應了FLCS的可簡可詳?shù)脑O計思想

二、統(tǒng)計打印:通過統(tǒng)計打印功能,用戶可以方便的知道在某段時間內向圖書館各部門交送了多少圖書,并可打印出那些圖書的詳細列表。

三、圖書剔舊:FLCS允許用戶進行單冊書剔舊,剔舊書作為歷史保留并可隨時打印輸出。

論文管理

FLCS60論文全文管理系統(tǒng),通過這一系統(tǒng),用戶可以從光盤上、互聯(lián)網(wǎng)上等媒體上下載信息,建立自己的全文數(shù)據(jù)庫。FLCS的論文管理系統(tǒng)允許用戶通過WINDOWS的OLE功能存放WORD文檔、圖片、聲音、影像等多媒體信息,它是一個有效的多媒體管理工具,同時又是一個得利的辦公助手。

用戶建立的全文數(shù)據(jù)可以通過FLCS的INTERNET檢索系統(tǒng)通過網(wǎng)絡。

FLCS的INTERNET檢索系統(tǒng)

FLCS提供一個C/S結構的INTERNET檢索系統(tǒng),通過該系統(tǒng),用戶可以利用WWW瀏覽器,從所有上網(wǎng)的計算機上檢索到圖書館的館藏書目、讀者基本信息、讀者借書、預約到書、超期讀者、罰款記錄、最新圖書、借閱頻率最高的圖書及借閱頻最高的讀者、期刊數(shù)據(jù)、科技論文數(shù)據(jù)等信息。

該系統(tǒng)的服務器端配置為NT4、IIS3、ASP3、VFPODBC6、TCP/IP協(xié)議。

一、書目檢索:通過INTERNET檢索功能,用戶可以很方便的檢索到自已所需要的圖書,并能查到各分冊的館藏位置、及是否在館等信息。由于系統(tǒng)采用C/S結構,檢索運算在服務器端進行,網(wǎng)絡上傳輸?shù)闹皇菣z索式及檢索結果,從而大大減輕了網(wǎng)絡傳輸負擔,加快了檢索速度。

二、讀者檢索:通過讀者檢索功能,讀者可以在自己的計算機上檢索到自已的基本信息、所借圖書、罰款記錄、預約到書等信息。

三、論文檢索:FLCS允許用戶建自己的全文數(shù)據(jù)庫,并允許用戶將自己的全文數(shù)據(jù)庫通過INTERNET。通過論文檢索功能,用戶可以在自己的計算機上下載圖書館論文數(shù)據(jù),并可進行下載、打印等處理。

觸摸屏檢索系統(tǒng)

FLCS提供了一個"傻瓜式"讀者檢索系統(tǒng),該系統(tǒng)通過對整部中圖法的引用和書名、作者提詞索引,使觸摸屏檢索成為可能,適合于各學校圖書館。讀者檢索時,完全脫離鍵盤,不懂計算機和圖書館學知識的人員,也能用觸摸屏或鼠標很快檢索到所需圖書。系統(tǒng)采用前臺書目檢索,后臺自動打印借書單的方式,方便了讀者和圖書管理人員。

用戶關心的問題

1.計算機停電或死機會不會造成數(shù)據(jù)丟失

FLCS有即時存盤功能,被修改的數(shù)據(jù)會立即存盤,不會因計算機異常錯誤而丟失數(shù)據(jù)。

2.FLCS能否存貯多媒體信息

FLCS能存貯每冊書的文本、圖片、聲音、動畫等多媒體信息。通過FLCS的科技論文管理系統(tǒng),用戶還能建立自已的多媒體資料庫。

3.FLCS能否打印讀者借閱證

FLCS能根據(jù)讀者辦證日期、讀者單位、讀者姓名或證碼打印讀者借閱證。

4.FLCS能否批量銷證

FLCS既能單個銷證,又能批量銷證。

5.FLCS系統(tǒng)是否易學易用

FLCS系統(tǒng)是標準的WINDOWS應用程序,界面友好,操作容易,只要有計算機常識就可維護使用。FLCS系統(tǒng)的數(shù)據(jù)流程與圖書館工作流程是相符的,只要懂圖書館業(yè)務,在一、兩周時間內就可熟練使用。

6.FLCS系統(tǒng)是否實用、是否具有先進性

FLCS的研制人員有圖書館學專業(yè)、計算機專業(yè)的大學畢業(yè)生,也有從事多年圖書館工作的老館員,F(xiàn)LCS的研制人員決定了其實用性。FLCS系統(tǒng)采用CLIENT/SERVER結構,實現(xiàn)Internet/Intranet信息,F(xiàn)LCS能從互聯(lián)網(wǎng)和光盤上下載信息,能存貯多媒體數(shù)據(jù),所以FLCS系統(tǒng)當然是先進的系統(tǒng)。

7.FLCS能存放多少數(shù)據(jù)、能用于多大規(guī)模的網(wǎng)絡

理論上講,F(xiàn)LCS系統(tǒng)的記錄限制為十億條,系統(tǒng)測試用HP(166/32M/2.1G)服務器,聯(lián)想(166/32M/2.1G)PC機工作站,管理200萬冊圖書時,在檢索、借還等操作時均實現(xiàn)秒級延時。FLCS系統(tǒng)適用的網(wǎng)絡規(guī)模只受網(wǎng)絡操作系統(tǒng)限制。

8.我們是否可以外購數(shù)據(jù)及與其他圖書館交換數(shù)據(jù)

FLCS系統(tǒng)可以自動調用所購采訪數(shù)據(jù)、編目數(shù)據(jù),F(xiàn)LCS可以生成標準MARC(ISO2709)數(shù)據(jù)以用于數(shù)據(jù)交換,F(xiàn)LCS也可以接收其他圖書館的MARC數(shù)據(jù)建立聯(lián)合編目。FLCS還可以和其他軟件如WORD、EXCEL等交換數(shù)據(jù)。

9.FLCS系統(tǒng)是否容易出問題、出了問題時怎么辦

篇(2)

因此本人結合開入式圖書館的要求,對MSSQLServer2000數(shù)據(jù)庫管理系統(tǒng)、SQL語言原理、Delphi應用程序設計,Delphi數(shù)據(jù)庫技術進行了較深入的學習和應用,主要完成對圖書管理系統(tǒng)的需求分析、功能模塊劃分、數(shù)據(jù)庫模式分析,并由此設計了數(shù)據(jù)庫結構和應用程序。系統(tǒng)運行結果證明,本文所設計的圖書管理系統(tǒng)可以滿足借閱者、圖書館工作人員和高級管理員三方面的需要。

第一章對數(shù)據(jù)庫應用系統(tǒng)開發(fā)和圖書管理系統(tǒng)進行了簡明的介紹,并分析了開發(fā)圖書管理系統(tǒng)所應進行的工作。

第二章對數(shù)據(jù)庫的設計和SQL語言的使用進行了系統(tǒng)分析,為深入理解數(shù)據(jù)庫應用打下了基礎。

第三章學習了具體的開發(fā)工具Delphi6.0,對其數(shù)據(jù)庫組件,SQL語言在Delphi中的應用等數(shù)據(jù)庫編程關鍵技術進行了系統(tǒng)的介紹。

第四章分析了圖書管理信息系統(tǒng)的應用需求,按照數(shù)據(jù)庫設計理論一步一步地給出了系統(tǒng)需求說明書、局部ER圖、全局ER圖、系統(tǒng)關系模式,子模式,利用MSSQLServer2000建立了數(shù)據(jù)庫

第五章進行了具體的程序設計,具體劃分了三類用戶的操作權限,設計了了三個操作界面。實現(xiàn)了數(shù)據(jù)庫表的瀏覽,記錄的添加、刪除和修改,報表的生成,實現(xiàn)了多數(shù)據(jù)庫表的連接操作,實現(xiàn)了多條件查詢和模糊查詢,并靈活實現(xiàn)了對不可更新查詢結果集的更新操作,實現(xiàn)了主從表操作,實現(xiàn)了密碼維護功能,最后,系統(tǒng)還可以導入數(shù)據(jù)庫以對任意同結構的數(shù)據(jù)庫進行操作。

設計充分利用Delphi6、MSSQLServer2000數(shù)據(jù)庫技術的強大力量,提高了編程效率和可靠性。

關鍵詞:數(shù)據(jù)庫,SQL語言,MSSQLServer,Delphi6,

數(shù)據(jù)庫組件,圖書管理,窗體,listview組件

目錄

摘要………………………………………………………………………………I

第一章緒論……………………………………………………………………1

§1.1數(shù)據(jù)庫應用系統(tǒng)開發(fā)簡介………………………………………………1

§1.2圖書管理系統(tǒng)………………………………………………………4

§1.3本文所做的主要工作……………………………………………………6

第二章數(shù)據(jù)庫理論基礎…………………………………………………………7

§2.1數(shù)據(jù)庫系統(tǒng)設計及范式分析……………………………………………7

§2.2SQL語言介紹…………………………………………………………………11

2.2.1SQL基礎…………………………………………………………………11

2.2.2SQL語句…………………………………………………………………12

第三章應用系統(tǒng)開發(fā)工具…………………………………………………16

§3.1Delphi6.0VCL組件的體系結構………………………………………16

§3.2數(shù)據(jù)庫組件介紹……………………………………………………………17

§3.3SQL語言在Delphi中的應用……………………………………………18

§3.4MSSQLServer簡述……………………………………………………22

第四章圖書管理系統(tǒng)設計分析…………………………………………24

§4.1應用需求分析……………………………………………………………24

§4.2系統(tǒng)功能模塊劃分………………………………………………………29

§4.3系統(tǒng)數(shù)據(jù)庫設計…………………………………………………………29

第五章圖書管理系統(tǒng)應用程序設計……………………………………37

§5.1系統(tǒng)窗體模塊組成…………………………………………………………37

§5.2數(shù)據(jù)模塊窗體的設置………………………………………………………37

§5.3啟動畫面的實現(xiàn)……………………………………………………………38

§5.4用戶登錄窗體的的實現(xiàn)………………………………………………………39

§5.5用戶密碼認證窗體的的實現(xiàn)…………………………………………………39

§5.6借閱者服務模塊的實現(xiàn)……………………………………………………40

5.6.1圖書查詢功能的實現(xiàn)…………………………………………………41

5.6.2借閱者登錄功能的實現(xiàn)…………………………………………………42

5.6.3借閱者借閱情況功能的實現(xiàn)……………………………………………43

5.6.4借閱者個人資料維護功能的實現(xiàn)………………………………………47

§5.7工作人員-圖書借閱/歸還模塊的實現(xiàn)………………………………………49

5.7.1工作人員進行圖書借閱功能實現(xiàn)………………………………………50

5.7.2工作人員進行圖書歸還功能實現(xiàn)………………………………………53

§5.8圖書館管理員模塊的實現(xiàn)……………………………………………54

5.8.1圖書館管理員圖書管理功能的實現(xiàn)……………………………………55

5.8.2圖書館管理員工作人員和管理員管理功能的實現(xiàn)……………………58

5.8.3圖書館管理員修改圖書類別及統(tǒng)記功能的實現(xiàn)………………………60

5.8.4圖書館管理員借閱者管理功能的實現(xiàn)…………………………………62

5.8.5圖書館維護借閱者管理功能的實現(xiàn)…………………………………62

5.8.6圖書館身份維護功能的實現(xiàn)………………………………………64

5.8.7圖書館借閱者統(tǒng)計功能的實現(xiàn)…………………………………65

5.8.8圖書館統(tǒng)計借閱過期記錄功能的實現(xiàn)…………………………67

§5.9系統(tǒng)信息顯示的實現(xiàn)…………………………………………………68

第六章結束語………………………………………………………………69

致謝………………………………………………………………………………70

參考書目……………………………………………………………………………70

第一章緒論

§1.1數(shù)據(jù)庫應用系統(tǒng)開發(fā)簡介

在數(shù)據(jù)庫應用系統(tǒng)開發(fā)之前,對開發(fā)數(shù)據(jù)庫的基本概念應當了解,對數(shù)據(jù)庫的結構、開發(fā)數(shù)據(jù)庫應用程序的步驟、開發(fā)體系及方法都應當有相當清晰的了解和認識。

數(shù)據(jù)庫應用系統(tǒng)開發(fā)的目標是建立一個滿足用戶長期需求的產(chǎn)品。開發(fā)的主要過程為:理解用戶的需求,然后,把它們轉變?yōu)橛行У臄?shù)據(jù)庫設計。把設計轉變?yōu)閷嶋H的數(shù)據(jù)庫,并且這些數(shù)據(jù)庫帶有功能完備、高效能的應用。

數(shù)據(jù)庫技術在計算機軟件鄰域研究中一直是非常重要的主題,產(chǎn)生于60年代,30多年來數(shù)據(jù)庫技術得到了迅速發(fā)展,并已形成較為完整的理論體系和一大批實用系統(tǒng)。并且,近年來,隨著WorldWideWeb(WWW)的猛增及Internet技術的迅速發(fā)展,使得數(shù)據(jù)庫技術之時成為最熱門技術之一。

1.1.1數(shù)據(jù)庫

如圖1.1顯示了數(shù)據(jù)庫系統(tǒng)的主要組件。數(shù)據(jù)庫由DBMS(數(shù)據(jù)庫管理系統(tǒng))處理,DBMS則由開發(fā)人員和用戶通過應用程序直接或間接地使用。它主要包括四個要素:用戶數(shù)據(jù)、元數(shù)據(jù)、索引和應用元數(shù)據(jù)。

1.1.1.1用戶數(shù)據(jù)

目前,大多數(shù)主流數(shù)據(jù)庫管理系統(tǒng)把用戶數(shù)據(jù)表示為關系。現(xiàn)在把關系看作數(shù)據(jù)表。表的列包含域或屬性,表的行包含對應業(yè)務環(huán)境中的實體的記錄。并非所有的關系都同樣符合要求,有些關系比其它關系更結構化一些。第二章描述了一個用以產(chǎn)生良好結構關系的過程,稱作規(guī)范化。

為了對比結構差的關系和結構好的關系之間的差別,以本文所設計的圖書管理系統(tǒng)中的圖書和圖書借閱者關系為例來說明,假若設計關系R1(借書證號,姓名,性別,身份編號,身份證,聯(lián)系電話,圖書編號,圖書名稱,圖書類別,作者,出版社,出版日期,備注,價格,數(shù)量);這個關系的問題出在它有關于兩個不同主題的數(shù)據(jù),就是圖書借閱者和圖書。用這種方式構成的關系在進行修改時,會出現(xiàn)問題。因為一個圖書借閱者可能借閱多本書,如果某個圖書借閱者的某個字段(如聯(lián)系電話)出現(xiàn)變更,它所借閱的圖書記錄(可能多個)也就必須變化,這是不好的。因此數(shù)據(jù)用兩個關系表示更好。現(xiàn)在如果某圖書借閱者改變了它的聯(lián)系電話,只有關系(表)user的對應行需要改變。當然,要想產(chǎn)生一個,顯示圖書名稱及其借閱者聯(lián)系電話的報表,就需要將這兩個表的行結合起來。結果表明,將關系分別存儲,在生成報表的時候將它們結合起來,比把它們存儲在一個合成的表中更好。

user(借書證號,姓名,性別,身份編號,身份證,聯(lián)系電話,)

book(圖書編號,圖書名稱,圖書類別,作者,出版社,出版日期,備注,價格,數(shù)量)

1.1.1.2元數(shù)據(jù)

數(shù)據(jù)庫是自描述的,這就意味著它自身包含了它的結構的描述,這種結構的描述稱作元數(shù)據(jù)。因為DBMS產(chǎn)品是用來存儲和操縱表的,所以大多數(shù)產(chǎn)品把元數(shù)據(jù)以表的形式存儲,有時稱作系統(tǒng)表。這些系統(tǒng)表存儲了數(shù)據(jù)庫中表的情況,指出每一個表中有多少列,那一列是主關鍵字,每一列的數(shù)據(jù)類型的描述,它也存儲索引、關鍵字、規(guī)則和數(shù)據(jù)庫結構的其他部分。

在表中存儲元數(shù)據(jù)不僅對DBMS是有效的,對用戶也是方便的,因為他們可以使用與查詢用戶數(shù)據(jù)同樣的查詢工具來查詢元數(shù)據(jù)。本文第二章所介紹的SQL語言可以同時用于元數(shù)據(jù)和用戶數(shù)據(jù)。

1.1.1.3索引

第三種類型的數(shù)據(jù)改進了數(shù)據(jù)庫的性能和可訪問性,這種數(shù)據(jù)經(jīng)常稱作開銷數(shù)據(jù),盡管有時也采用其他類型的數(shù)據(jù)結構,如鏈表,但它主要還是索引。索引可以用來排序和快速訪問數(shù)據(jù)。下面以本人的圖書管理信息系統(tǒng)中的book表為例來說明。

假定數(shù)據(jù)在磁盤上是按’圖書編號’的遞增順序排列的,用戶想打印一個按’圖書名稱’排序的圖書數(shù)據(jù)報表。為此,所有的數(shù)據(jù)都需要從源表中提取出來并排序,除非表很小,否則這是一個很費時的過程。或者,可以在‘圖書名稱’字段上創(chuàng)建一個索引,該索引的條目按照‘圖書名稱’排序,這樣,該索引的條目可以讀出來,并用來按順序訪問book數(shù)據(jù)。

索引用于快速訪問數(shù)據(jù)。例如,一個用戶只想訪問book表中‘圖書類別’值為‘01’的那些學生。如果沒有索引,則必須搜索整個源表;但有了索引之后,可以找到索引條目,并使用它來挑選所有合適的行。

索引對排序和查找是有幫助的,但要付出代價。book表中的行每次改變時,索引也必須改變,這意味著索引并非隨意的,應該在真正需要時保存。

1.1.1.4應用元數(shù)據(jù)

存儲在數(shù)據(jù)庫中的第四種數(shù)據(jù)是應用元數(shù)據(jù),它用來存儲用戶窗體、報表、查詢和其他形式的查詢組件。并非所有的DBMS都支持應用組件,支持組件的DBMS也不一定把全部組件的結構作為應用元數(shù)據(jù)存儲在數(shù)據(jù)庫中。然而,大多數(shù)現(xiàn)代的DBMS產(chǎn)品存儲這種數(shù)據(jù)作為數(shù)據(jù)庫的一部分。一般來說,數(shù)據(jù)庫開發(fā)人員和用戶都不直接訪問應用元數(shù)據(jù),想反,他們通過DBMS中的工具來處理這些數(shù)據(jù)。

MSSQLServer2000中就支持窗體、存儲過程等應用元數(shù)據(jù)。

1.1.2數(shù)據(jù)庫管理系統(tǒng)

數(shù)據(jù)庫管理系統(tǒng)(DBMS)是指數(shù)據(jù)庫系統(tǒng)中管理數(shù)據(jù)的軟件系統(tǒng)。DBMS是數(shù)據(jù)庫系統(tǒng)的核心組成部分。對數(shù)據(jù)庫的一切操作,包括定義、更新及各種控制,都是通過DBMS進行的。DBMS總是基于某種數(shù)據(jù)模型,可以把DBMS看成是某種數(shù)據(jù)模型在計算機系統(tǒng)上的具體實現(xiàn)。根據(jù)數(shù)據(jù)模型的不同,DBMS可以分成層次型、網(wǎng)狀型、關系型、面向對象型等。MSSQLServer2000就是一種關系型數(shù)據(jù)庫管理系統(tǒng)。

關系模型。關系模型主要是用二維表格結構表達實體集,用外鍵表示實體間聯(lián)系。關系模型是由若干個關系模式組成的集合。關系模式相當于前面提到的記錄類型,它的實例稱為關系,每個關系實際上是一張二維表格。

關系模型和層次、網(wǎng)狀模型的最大判別是用關鍵碼而不是用指針導航數(shù)據(jù),表格簡單用戶易懂,編程時并不涉及存儲結構,訪問技術等細節(jié)。關系模型是數(shù)學化模型。SQL語言是關系數(shù)據(jù)庫的標準化語言,已得到了廣泛的應用。

如圖1.1所示,DBMS的特點和功能可以分為三個子系統(tǒng):設計工具子系統(tǒng)、運行子系統(tǒng)和DBMS引擎。

設計子系統(tǒng)有一個方便數(shù)據(jù)庫及其應用創(chuàng)建的工具集。它典型地包含產(chǎn)生表、窗體、查詢和報表的工具。DBMS產(chǎn)品還提供編程語言和對編程語言的接口。

運行子系統(tǒng)處理用設計子系統(tǒng)開發(fā)的應用組件。它所包含的運行處理器用來處理窗體和數(shù)據(jù)庫的數(shù)據(jù)交互,以及回答查詢和打印報表等。

DBMS引擎從其他兩個組件接受請求,并把它們翻譯成對操作系統(tǒng)的命令,以便讀寫物理介質上的數(shù)據(jù)。DBMS引擎還涉及事務管理、鎖、備份和恢復。

1.1.3創(chuàng)建數(shù)據(jù)庫

1.1.3.1數(shù)據(jù)庫模式

數(shù)據(jù)庫模式定義了數(shù)據(jù)庫的結構、表、關系、域和業(yè)務規(guī)則。數(shù)據(jù)庫模式是一種設計,數(shù)據(jù)庫和應用正是建立在此基礎上的。

域是一列可能擁有的值的集合。必須為每一個表的每一定域。除了數(shù)據(jù)的物理格式外,還需要確定是否有些域對表來說是唯一的。

數(shù)據(jù)庫模式的最后一個要素是業(yè)務規(guī)則,它是對需要反映在數(shù)據(jù)庫和數(shù)據(jù)庫應用程序中的業(yè)務活動的約束。業(yè)務規(guī)則是模式的一個重要部分,因為他們指定了無論什么數(shù)據(jù)變化到達DBMS引擎,允許的數(shù)據(jù)值必須滿足的約束。不管無效的數(shù)據(jù)變化請求是來自窗體的用戶、查詢/修改請求還是應用程序,DBMS都應該拒絕。

遺憾的是,不同的DBMS產(chǎn)品用不同的方法實施業(yè)務規(guī)則。在某些情況下,DBMS產(chǎn)品不具備實施必要業(yè)務規(guī)則的能力,必須以代碼形式把它們編入應用程序。

1.1.3.2創(chuàng)建表

1.1.3.3定義聯(lián)系

1.1.4應用組件

數(shù)據(jù)庫應用包括窗體、查詢、報表、菜單和應用程序。

§1.2圖書管理系統(tǒng)

當今時代是飛速發(fā)展的信息時代。在各行各業(yè)中離不開信息處理,這正是計算機被廣泛應用于信息管理系統(tǒng)的環(huán)境。計算機的最大好處在于利用它能夠進行信息管理。使用計算機進行信息控制,不僅提高了工作效率,而且大大的提高了其安全性。

尤其對于復雜的信息管理,計算機能夠充分發(fā)揮它的優(yōu)越性。計算機進行信息管理與信息管理系統(tǒng)的開發(fā)密切相關,系統(tǒng)的開發(fā)是系統(tǒng)管理的前提。本系統(tǒng)就是為了管理好圖書館信息而設計的。

圖書館作為一種信息資源的集散地,圖書和用戶借閱資料繁多,包含很多的信息數(shù)據(jù)的管理,現(xiàn)今,有很多的圖書館都是初步開始使用,甚至尚未使用計算機進行信息管理。根據(jù)調查得知,他們以前對信息管理的主要方式是基于文本、表格等紙介質的手工處理,對于圖書借閱情況(如借書天數(shù)、超過限定借書時間的天數(shù))的統(tǒng)計和核實等往往采用對借書卡的人工檢查進行,對借閱者的借閱權限、以及借閱天數(shù)等用人工計算、手抄進行。數(shù)據(jù)信息處理工作量大,容易出錯;由于數(shù)據(jù)繁多,容易丟失,且不易查找。總的來說,缺乏系統(tǒng),規(guī)范的信息管理手段。盡管有的圖書館有計算機,但是尚未用于信息管理,沒有發(fā)揮它的效力,資源閑置比較突出,這就是管理信息系統(tǒng)的開發(fā)的基本環(huán)境。

數(shù)據(jù)處理手工操作,工作量大,出錯率高,出錯后不易更改。圖書館采取手工方式對圖書借閱情況進行人工管理,由于信息比較多,圖書借閱信息的管理工作混亂而又復雜;一般借閱情況是記錄在借書證上,圖書的數(shù)目和內容記錄在文件中,圖書館的工作人員和管理員也只是當時對它比較清楚,時間一長,如再要進行查詢,就得在眾多的資料中翻閱、查找了,造成查詢費時、費力。如要對很長時間以前的圖書進行更改就更加困難了。

基于這此問題,我認為有必要建立一個圖書管理系統(tǒng),使圖書管理工作規(guī)范化,系統(tǒng)化,程序化,避免圖書管理的隨意性,提高信息處理的速度和準確性,能夠及時、準確、有效的查詢和修改圖書情況。

§1.1系統(tǒng)所做工作

1)了解應用開發(fā)工具的現(xiàn)狀

2)DelPHi6.0編程基礎

3)MSSQLServer基礎

4)設計數(shù)據(jù)庫;設計界面

5)開發(fā)數(shù)據(jù)庫。數(shù)據(jù)庫實現(xiàn)的一些功能有

l數(shù)據(jù)和數(shù)據(jù)說明的醒目顯示;

l多條件的查詢、多條記錄的檢索、模糊查詢;

l數(shù)據(jù)文件某種存儲格式導入數(shù)據(jù)窗體,經(jīng)過數(shù)據(jù)完整性校驗存入數(shù)據(jù)庫;

l數(shù)據(jù)庫安全性的設計;

l數(shù)據(jù)庫的設計、數(shù)據(jù)接口、界面的設計。

§1.3本文所作工作

緒論部分對數(shù)據(jù)庫應用系統(tǒng)的結構、開發(fā)進行了簡要介紹,分析了圖書管理信息系統(tǒng)設計的特點和任務。

第二章介紹了數(shù)據(jù)庫的設計和范式分析,并系統(tǒng)介紹了SQL語言,為設計和理解應用程序做了鋪墊。

第三章對系統(tǒng)介紹了Delphi6.0的數(shù)據(jù)庫編程技術、SQL語言在Delphi6.0中的應用、MSSQLServer基礎。

第四章分析了圖書管理系統(tǒng)的應用需求,設計了系統(tǒng)的數(shù)據(jù)庫結構,并根據(jù)需求對系統(tǒng)功能進行了劃分和細化。

第五章根據(jù)第四章的設計結果利用MSSQLServer2000和Delphi6.0進行了具體的應用程序設計。

總結部分介紹了設計體會和編程體會,并指出了系統(tǒng)設計中的不足和改進的方向。

第二章數(shù)據(jù)庫理論基礎

一個成功的信息管理系統(tǒng),是建立在許多條件之上的,而數(shù)據(jù)庫是其中一個非常重要的條件和關鍵技術。

信息管理系統(tǒng)所涉及的數(shù)據(jù)庫設計分五個步驟:數(shù)據(jù)庫需求分析、概念設計、邏輯設計、物理設計與加載測試。

(1)數(shù)據(jù)庫需求分析的任務是將業(yè)務管理單證流化為數(shù)據(jù)流,劃分主題之間的邊界,繪制出DFD圖,并完成相應的數(shù)據(jù)字典。

(2)概念設計的任務是從DFD出發(fā),繪制出本主題的實體-關系圖,并列出各個實體與關系的綱要表。

(3)邏輯設計的任務是從E-R圖與對應的綱要表出發(fā),確定各個實體及關系的表名屬性。

(4)物理設計的任務是確定所有屬性的類型、寬度與取值范圍,設計出基本表的主鍵,將所有的表名與字段名英文化(現(xiàn)在很多軟件能支持中文字段,如MSSQLServer,我就是用的中文字段名),實現(xiàn)物理建庫,完成數(shù)據(jù)庫物理設計字典。

(5)加載測試工作貫穿于程序測試工作的全過程,整個錄入、修改、查詢、處理工作均可視為對數(shù)據(jù)庫的加載測試工作。

要設計出一個好的信息管理系統(tǒng)數(shù)據(jù)庫,除滿足系統(tǒng)所要求的功能外,還必須遵守下列原則:

²基本表的個數(shù)越少越好。

²主鍵的個數(shù)越少越好。鍵是表間連接的工具,主鍵越少,表間的連接就越簡單。

²字段的個數(shù)越少越好。

²所有基本表的設計均應盡量符合第三范式。

數(shù)據(jù)庫的設計中,如何處理多對多的關系和如何設計主鍵,是兩個有著較大難度、需要重點考慮的問題。下面我們著重從SQL應用、數(shù)據(jù)庫設計范式和查詢優(yōu)化等方面來分析本課題的系統(tǒng)關鍵技術和實現(xiàn)難點并加以解決。

§2.1數(shù)據(jù)庫系統(tǒng)設計及范式分析

信息系統(tǒng)的主要任務是通過大量的數(shù)據(jù)獲得管理所需要的信息,這就必須存儲和管理大量的數(shù)據(jù)。因此建立一個良好的數(shù)據(jù)組織結構和數(shù)據(jù)庫,使整個系統(tǒng)都可以迅速、方便、準確地調用和管理所需的數(shù)據(jù),是衡量信息系統(tǒng)開發(fā)工作好壞的主要指標之一。

2.1.1數(shù)據(jù)庫系統(tǒng)設計

數(shù)據(jù)庫設計主要是進行數(shù)據(jù)庫的邏輯設計,即將數(shù)據(jù)按一定的分類、分組系統(tǒng)和邏輯層次組織起來,是面向用戶的。數(shù)據(jù)庫設計時需要綜合企業(yè)各個部門的存檔數(shù)據(jù)和數(shù)據(jù)需求,分析各個數(shù)據(jù)之間的關系,按照DBMS提供的功能和描述工具,設計出規(guī)模適當、正確反映數(shù)據(jù)關系、數(shù)據(jù)冗余少、存取效率高、能滿足多種查詢要求的數(shù)據(jù)模型。

數(shù)據(jù)庫設計的步驟是:

(1)數(shù)據(jù)庫結構定義:目前的數(shù)據(jù)庫管理系統(tǒng)(DBMS)有的是支持聯(lián)機事務處理CLTP(負責對事務數(shù)據(jù)進行采集、處理、存儲)的操作型DBMS,有的可支持數(shù)據(jù)倉庫、有聯(lián)機分析處理CLAP(指為支持決策的制定對數(shù)據(jù)的一種加工操作)功能的大型DBMS,有的數(shù)據(jù)庫是關系型的、有的可支持面向對象數(shù)據(jù)庫。針對選擇的DBMS,進行數(shù)據(jù)庫結構定義。

(2)數(shù)據(jù)表定義:數(shù)據(jù)表定義指定義數(shù)據(jù)庫中數(shù)據(jù)表的結構,數(shù)據(jù)表的邏輯結構包括:屬性名稱、類型、表示形式、缺省值、校驗規(guī)則、是否關鍵字、可否為空等。關系型數(shù)據(jù)庫要盡量按關系規(guī)范化要求進行數(shù)據(jù)庫設計,但為使效率高,規(guī)范化程度應根據(jù)應用環(huán)境和條件來決定。數(shù)據(jù)表設計不僅要滿足數(shù)據(jù)存儲的要求,還要增加一些如反映有關信息、操作責任、中間數(shù)據(jù)的字段或臨時數(shù)據(jù)表。

(3)存儲設備和存儲空間組織:確定數(shù)據(jù)的存放地點、存儲路徑、存儲設備等,備份方案,對多版本如何保證一致性和數(shù)據(jù)的完整性。

(4)數(shù)據(jù)使用權限設置:針對用戶的不同使用要求,確定數(shù)據(jù)的用戶使用權限,確保數(shù)據(jù)安全。

(5)數(shù)據(jù)字典設計:用數(shù)據(jù)字典描述數(shù)據(jù)庫的設計,便于維護和修改。

為了更好地組織數(shù)據(jù)和設計出實際應用數(shù)據(jù)庫,應該注意如下問題:

規(guī)范化地重組數(shù)據(jù)結構:對數(shù)據(jù)進行規(guī)范化表達,這在后面將會具體討論。

關系數(shù)據(jù)結構的建立:在進行了數(shù)據(jù)基本結構的規(guī)范化重組后,還必須建立整體數(shù)據(jù)的關系結構。這一步設計完成后數(shù)據(jù)庫和數(shù)據(jù)結構設計工作基本完成,只待系統(tǒng)實現(xiàn)時將數(shù)據(jù)分析和數(shù)據(jù)字典的內容代入到所設計的數(shù)據(jù)整體關系結構中,一個規(guī)范化數(shù)據(jù)庫系統(tǒng)結構就建立起來了。

建立關系數(shù)據(jù)結構涉及三方面內容:確定關聯(lián)的關鍵指標項并建立關聯(lián)表;確定單一的父系記錄結構;建立整個數(shù)據(jù)庫的關系結構。

(1)鏈接關系的確定

在進行了上述數(shù)據(jù)規(guī)范化重組后,已經(jīng)可以確保每一個基本數(shù)據(jù)表(我們簡稱為表)是規(guī)范的,但是這些單獨的表并不能完整地反映事物,通常需要通過指標體系整體指標數(shù)據(jù)才能完整全面地反映問題。也就是說在這些基本表的各宇段中,所存儲的是同一事物不同側面的屬性。那么計算機系統(tǒng)如何能知道哪些表中的哪些記錄應與其它表中的哪些記錄相對應,它們表示的是同一個事物呢?這就需要在設計數(shù)據(jù)結構時將這種各表之間的數(shù)據(jù)記錄關系確定下來。這種表與表之間的數(shù)據(jù)關系一般都是通過主或輔關鍵詞之間的連接來實現(xiàn)的。因為在每個表中只有主關鍵詞才能唯一地標識表中的這一個記錄值(因為根據(jù)第三范式的要求,表中其它數(shù)據(jù)字段函數(shù)都依賴于主關鍵詞),所以將表通過關鍵詞連接就能夠唯一地標識出某一事物不同屬性在不同表中的存放位置。

(2)確定單一的父子關系結構

所謂確定單一的父系關系結構就是要在所建立的各種表中消除多對多(以下用M:N來表示)的現(xiàn)象,即設法使得所有表中記錄之間的關系呈樹狀結構(只能由一個主干發(fā)出若干條分支,而不能有若干條主干交錯發(fā)出若干條分支狀況)。所謂的“父系”就是指表的上一級關系表。消除多對多關系可以借助于E-R圖的方法來解決,也可以在系統(tǒng)分析時予以注意,避免這種情況的發(fā)生。

消除這種M:N情況的辦法也很簡單,只需在二表之間增加一個表,則原來M:N的關系就改成了M:1,1:N的關系了。

確定數(shù)據(jù)資源的安全保密屬性:

一般DBMS都提供給我們自己定義數(shù)據(jù)安全保密性的功能。系統(tǒng)所提供的安全保密功能一般有8個等級(0-7級),4種不同方式(只讀、只寫、刪除、修改),而且允許用戶利用這8個等級的4種方式對每一個表自由地進行定義。

定義安全保密性的方法一般有如下幾種:

a.原則上所有文件都定義為4級,個別優(yōu)先級特別高的辦公室(終端或微機的入網(wǎng)賬號)可定義高于4級的級別,反之則定義為低于4的級別。

b.統(tǒng)計文件(表)和數(shù)據(jù)錄入文件一般只對本工作站定義為只寫方式,對其它工作站則定義為只讀方式。

c.財務等保密文件一般只對中工作站(如財務科等)定義為可寫、可改、可刪除方式,對其它工作站則定義為只讀方式,而且不是每個人都能讀,只有級別相同和高級別者才能讀。

2.1.2數(shù)據(jù)庫設計范式分析

建立起一個良好的數(shù)據(jù)指標體系,是建立數(shù)據(jù)結構和數(shù)據(jù)庫的最重要的一環(huán)。一個良好的數(shù)據(jù)指標體系是建立DB的必要條件,但不是充分條件。我們完全可以認為所建指標體系中的一個指標類就是關系數(shù)據(jù)庫中的一個基本表,而這個指標類下面的一個個具體指標就是這個基本表中的一個字段。但如果直接按照這種方式建庫顯然還不能算最佳。對于指標體系中數(shù)據(jù)的結構在建庫前還必須進行規(guī)范化的重新組織。

a.數(shù)據(jù)組織的規(guī)范化形式

在數(shù)據(jù)的規(guī)范化表達中,一般將一組相互關聯(lián)的數(shù)據(jù)稱為一個關系(relation),而在這個關系下的每個數(shù)據(jù)指標項則被稱為數(shù)據(jù)元素(dataelement),這種關系落實到具體數(shù)據(jù)庫上就是基本表,而數(shù)據(jù)元素就是基本表中的一個字段(field)。規(guī)范化表達還規(guī)定在每一個基本表中必須定義一個數(shù)據(jù)元素為關鍵字(key),它可以唯一地標識出該表中其它相關的數(shù)據(jù)元素。在規(guī)范化理論中表是二維的,它有如下四個性質:

l在表中的任意一列上,數(shù)據(jù)項應屬于同一個屬性(如圖中每一列都存放著不同合同記錄的同一屬性數(shù)據(jù))。

l表中所有行都是不相同的,不允許有重復組項出現(xiàn)(如圖中每一行都是一個不同的合同記錄)。

l在表中,行的順序無關緊要(如圖中每行存的都是合同記錄,至于先放哪一個合同都沒關系)。

l在表中,列的順序無關緊要,但不能重復(如圖中合同號和合同名誰先誰后都沒關系,但二者不可重復或同名)。

在對表的形式進行了規(guī)范化定義后,數(shù)據(jù)結構還有五種規(guī)范化定義,定名為規(guī)范化模式,稱為范式。在這五種范式中,一般只用前三種,對于常用系統(tǒng)就足夠了。而且這五種范式是“向上兼容”的,即滿足第五范式的數(shù)據(jù)結構自動滿足一、二、三、四范式,滿足第四范式的數(shù)據(jù)結構自動滿足第一、二、三范式,……,依此類推。

第一范式(firstnormalform,簡稱1stNF)就是指在同一表中沒有重復項出現(xiàn),如果有則應將重復項去掉。這個去掉重復項的過程就稱之為規(guī)范化處理。在本文所討論的開發(fā)方法里,1stNF實際上是沒有什么意義的。因為我們按規(guī)范化建立的指標體系和表的過程都自動保證了所有表都滿足1stNF。

第二范式(secondnormalform,簡稱2ndNF)是指每個表必須有一個(而且僅一個)數(shù)據(jù)元素為主關鍵字(primarykey),其它數(shù)據(jù)元素與主關鍵字一一對應。例如,在圖l9.7中如果我們將合同號定義為主關鍵字(其它數(shù)據(jù)元素中的記錄數(shù)據(jù)都有可能重名,故不能作為主關鍵字),故只要知道了一個合同記錄的合同號,就可以唯一地在同一行中找到該合同的任何一項具體信息。通常我們稱這種關系為函數(shù)依賴(functionaldepEndence)關系。即表中其它數(shù)據(jù)元素都依賴于主關鍵字,或稱該數(shù)據(jù)元素唯一地被主關鍵字所標識。

第三范式(thirdnormalform,簡稱3rdNF)就是指表中的所有數(shù)據(jù)元素不但要能夠唯一地被主關鍵字所標識,而且它們之間還必須相互獨立,不存在其它的函數(shù)關系。也就是說對于一個滿足了2ndNF的數(shù)據(jù)結構來說,表中有可能存在某些數(shù)據(jù)元素依賴于其它非關鍵宇數(shù)據(jù)元素的現(xiàn)象,必須加以消除。

為防止數(shù)據(jù)庫出現(xiàn)更新異常、插入異常、刪除異常、數(shù)據(jù)冗余太大等現(xiàn)象,關系型數(shù)據(jù)庫要盡量按關系規(guī)范化要求進行數(shù)據(jù)庫設計。

§2.2SQL語言介紹

2.2.1SQL基礎

SQL(StructuredQueryLanguage,結構查詢語言)是一個功能強大的數(shù)據(jù)庫語言。SQL通常使用于數(shù)據(jù)庫的通訊。ANSI(美國國家標準學會)聲稱,SQL是關系數(shù)據(jù)庫管理系統(tǒng)的標準語言。SQL語句通常用于完成一些數(shù)據(jù)庫的操作任務,比如在數(shù)據(jù)庫中更新數(shù)據(jù),或者從數(shù)據(jù)庫中檢索數(shù)據(jù)。使用SQL的常見關系數(shù)據(jù)庫管理系統(tǒng)有:Oracle、Sybase、MicrosoftSQLServer、Access、Ingres等等。雖然絕大多數(shù)的數(shù)據(jù)庫系統(tǒng)使用SQL,但是它們同樣有它們自立另外的專有擴展功能用于它們的系統(tǒng)。但是,標準的SQL命令,比如"Select"、"Insert"、"Update"、"Delete"、"Create"和"Drop"常常被用于完成絕大多數(shù)數(shù)據(jù)庫的操作。MSSQLServer就是用的Transact-SQL。

SQL語言有著非常突出的優(yōu)點,主要是:

n非過程化語言

n統(tǒng)一的語言

n是所有關系數(shù)據(jù)庫的公共語言

非過程化語言:SQL是一個非過程化的語言,因為它一次處理一個記錄,對數(shù)據(jù)提供自動導航。SQL允許用戶在高層的數(shù)據(jù)結構上工作,而不對單個記錄進行操作,可操作記錄集,所有SQL語句接受集合作為輸入,返回集合作為輸出。SQL的集合特性允許一條SQL語句的結果作為另一條SQL語句的輸入。

SQL不要求用戶指定對數(shù)據(jù)的存放方法,這種特性使用戶更易集中精力于要得到的結果;所有SQL語句使用查詢優(yōu)化器,它是RDBMS的一部分,由它決定對指定數(shù)據(jù)存取的最快速度的手段,查詢優(yōu)化器知道存在什么索引,在哪兒使用索引合適,而用戶則從不需要知道表是否有索引、有什么類型的索引。

統(tǒng)一的語言:SQL可用于所有用戶的DB活動模型,包括系統(tǒng)管理員、數(shù)據(jù)庫管理員、應用程序員、決策支持系統(tǒng)人員及許多其它類型的終端用戶。

SQL為許多任務提供了命令,其中包括:

n查詢數(shù)據(jù)

n在表中插入、修改和刪除記錄

n建立、修改和刪除數(shù)據(jù)對象

n控制對數(shù)據(jù)和數(shù)據(jù)對象的存取

n保證數(shù)據(jù)庫一致性和完整性

以前的數(shù)據(jù)庫管理系統(tǒng)為上述各類操作提供單獨的語言,而SQL將全部任務統(tǒng)一在一種語言中。

所有關系數(shù)據(jù)庫的公共語言:由于所有主要的關系數(shù)據(jù)庫管理系統(tǒng)都支持SQL語言,用戶可將使用SQL的技能從一個RDBMS(關系數(shù)據(jù)庫管理系統(tǒng))轉到另一個,所有用SQL編寫的程序都是可以移植的。

2.2.2SQL語句

SQL功能強大,是一種完備的數(shù)據(jù)處理語言,不僅用于數(shù)據(jù)庫查詢,而且用于數(shù)據(jù)庫中的數(shù)據(jù)修改和更新,概括起來,它可以分成以下幾組:

DML(DataManipulationLanguage,數(shù)據(jù)操作語言):用于檢索或者修改數(shù)據(jù);

DDL(DataDefinitionLanguage,數(shù)據(jù)定義語言):用于定義數(shù)據(jù)的結構,比如創(chuàng)建、修改或者刪除數(shù)據(jù)庫對象;

DCL(DataControlLanguage,數(shù)據(jù)控制語言):用于定義數(shù)據(jù)庫用戶的權限。

DML組可以細分為以下的幾個語句:

SELECT:用于檢索數(shù)據(jù);

INSERT:用于增加數(shù)據(jù)到數(shù)據(jù)庫;

UPDATE:用于從數(shù)據(jù)庫中修改現(xiàn)存的數(shù)據(jù);

DELETE:用于從數(shù)據(jù)庫中刪除數(shù)據(jù)。

DDL語句可以用于創(chuàng)建用戶和重建數(shù)據(jù)庫對象。下面是DDL命令:

CREATETABLE,ALTERTABLE,DROPTABLE,CREATEINDEX,DROPINDEX

下面是一個簡單SQL語句的例子:

我們使用SQL語句來從Book中檢索‘借書證號’為‘000001’的借閱者姓名:

SELECT姓名FROMBookWHERE借書證號=‘000001’

2.2.2.1DDL與DML

數(shù)據(jù)定義語言DDL:它是用來創(chuàng)建和修改數(shù)據(jù)庫結構的一種語句,包括Create、Alter和Drop語句。

數(shù)據(jù)操作語言DML:包括數(shù)據(jù)查詢與數(shù)據(jù)更新。數(shù)據(jù)查詢主要是由Select語句完成,這一點不再贅述。而數(shù)據(jù)更新所造成的風險大大超過數(shù)據(jù)查詢。數(shù)據(jù)庫管理系統(tǒng)必須在更改期內保護所存儲的數(shù)據(jù)的一致性,確保有效的數(shù)據(jù)進入數(shù)據(jù)庫,數(shù)據(jù)庫必須保持一致性,DBMS還必須協(xié)調多用戶的并行更新,以確保用戶和它們的更改不至于影響其它用戶的作業(yè)。

用于修改數(shù)據(jù)庫內容的SQL語句主要有以下三個:

(1)Insert,向一個表中加入新的數(shù)據(jù)行

(2)Delete,從一個表中刪除數(shù)據(jù)行

(3)Update,更改數(shù)據(jù)庫中已經(jīng)存在的數(shù)據(jù)

Insert標準語法:

INSERTINTOtable_name(col1,col2...)VALUES(value1,value2...)

下例要將借書證號為‘000001’作為一個新的借書情況加入借書情況表OWNER中

InsertInto

owner(借書證號,圖書編號,借書日期)

values(‘000001’,‘00000001’,‘2002-9-12’)

Insert語句還可以將多行數(shù)據(jù)添加到目標表中去,在這種形式的Insert語句中,新行的數(shù)據(jù)值不是在語句正文中明確地指定的,而是語句中指定的一個數(shù)據(jù)庫查詢。添加的值來自數(shù)據(jù)庫自身的行,在某些特定的狀態(tài)下,這是非常有用的。多行Insert語句為拷貝數(shù)據(jù)提供了一種緊湊而高效的方法,但我在自已做的圖書管理系統(tǒng)中沒有使用這種方法,我在系統(tǒng)中是使用循環(huán)依照上面的用法來完成多個記錄的插入。

Update語句用于更新單表中選定行的一列或多列的值。要更新的目標表在語句中定義,Set子句則指定要更新哪些列并計算它們的值。Update語句總是包含Where語句,而且Update語句比較危險,所以您必須明確地認識到Where語句的重要性,Where語句被用來指定需要更新的行。

標準語法:

UPDATEtable_name

SETcolumnname1=value1

[,columname2=value2]...

WHEREsearch_condition

Delete語句標準語法:

DELETEFROMtablenameWHEREcondition

2.2.2.2復雜操作實現(xiàn)

在信息管理系統(tǒng)中,我們往往會遇到歸類、匯總、映射、索引、子查詢等復雜操作,相應的支持與實現(xiàn)如下:

uGROUPBY方法

GROUPBY子句語法為:

SELECTcolumn1,SUM(column2)

FROM"list-of-tables"

GROUPBY"column-list";

這個GROUPBY子句將集中所有的行在一起,它包含了指定列的數(shù)據(jù)以及允許合計函數(shù)來計算一個或者多個列。

在本人的系統(tǒng)中在顯示數(shù)據(jù)時用到了此語句來對查詢所得的內容排序然后再顯示。

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關鍵字。

第三章應用系統(tǒng)開發(fā)工具

§3.1Delphi6.0VCL組件的體系結構

Delphi類可以粗略地分成兩部分:一部分是組件類,這些組件類通常以某種方式出現(xiàn)在組件面板上,當用戶從組件面板上點取一個類的圖標后,在程序中就自動生成了該類的對象(非可視組件除外);另一部分是功能類,這此功能類的對象通常出現(xiàn)在程序代碼中,起著不可代替的作用,但是這些功能類在組件面板上是找不到的。在Delphi中,每一個類的祖先都是Tobject類,整個類的層次結構就像一棵倒掛的樹,在最頂層的樹根即為Tobject類。這樣,按照面向對象編程的基本思想,就使得用戶可用Tobject類這個類型代替任何其它類的數(shù)據(jù)類型。實際上在Delphi的類庫中,Tobject類派生出了為數(shù)相當眾多的子類,它們形成了一個龐大的體系,通常情況下,如果不自行開發(fā)組件,就不必了解整個類的體系結構,只用到類層次樹的葉結點就足夠了。

這一小節(jié)簡略介紹一下Delphi6.0中VCL(可視化組件庫)組件的體系結構。凡是做過程序開發(fā)的人都知道從來沒有單純的數(shù)據(jù)應用程序,也就是說,數(shù)據(jù)庫應用程序必須和用戶界面(可以是圖形界面,也可以是命令接口)元素相結合,只講界面或只講數(shù)據(jù)庫本身都構不成數(shù)據(jù)庫應用程序,因而用Delphi6.0開發(fā)數(shù)據(jù)庫應用程序就隱含著界面開發(fā)。Delphi6中的VCL組件可用圖3-1來說明。

組件在Delphi程序的開發(fā)中是最顯眼的角色。大家知道,在編寫程序時一般都開始于在組件面板上選擇組件并定義組件間的相互作用。但也有一些組件不在組件面板上,例如Tform和Tapplication(典型的非可視組件)。組件是Tcomponents派生出來的子類,可以流的形式存放在DFM文件中,具有事件和Publish屬性。

窗口組件類是窗口化的可視化組件類,在Delphi的類庫中占有最大的份額。在實際編程中,窗口組件類的對象都有句柄,可以接受輸入焦點和包含其它組件。

圖形組件與窗口組件并列,是另一大類組件。圖形組件不是基于窗口的,因而不能有窗口句柄,不能接受輸入焦點和包含其它組件。從圖8-43中可以看出,圖形組件的基類是TgraphicControl,在實際編程中,它們必須寄生于它們的宿主——窗口組件類的對象,由它們的擁有者負責其顯示,而且它們還能觸發(fā)一些和鼠標活動相關的事件。圖形控件最典型的例子是Tlabel和TspeedButton。由此可以看出圖形組件的功能很弱,圖形組件的用處何在呢?其實使用圖形組件的最大好處在于節(jié)省資源,正是因為它們的功能較弱,所以使用的系統(tǒng)資源就要少。在一個應用程序中,如果能在不影響其功能的前提下合理大量地使用圖形組件,將會大減少程序對系統(tǒng)資源的消耗。

非可視組件是與可視組件相并列的另一類組件,非可視組件在程序運行中是不可見的(除各種對話框組件之外,事實上有人認為對話框組件不能歸入非可視組件,應該是另一種介于可視與非可視之間的組件)。

最后要說明一下,常說的控件實際上是一種組件。也就是說組件這個概念要大于控件,控件在內涵上包含于組件中。控件由Windows系列操作系統(tǒng)提出并使用,而組件是Borland和其它廠商在對Windows控件做了必要的擴展之后提出來的概念,它們是在不同時期由不同的廠商提出的概念。

§3.2數(shù)據(jù)庫組件介紹

用Delphi6開發(fā)數(shù)據(jù)庫應用,重點是和各種數(shù)據(jù)庫組件打交道,能和數(shù)據(jù)庫掛鉤的組件對象有5種,它們是:Session(數(shù)據(jù)庫會話)、Database(數(shù)據(jù)庫)、Dataset(數(shù)據(jù)集)、DataSource(數(shù)據(jù)源)、Datacontrol(數(shù)據(jù)控制組件,也叫data-controls即數(shù)據(jù)感知組件)。其中前面4種統(tǒng)稱為數(shù)據(jù)訪問(DataAccess)組件。這些組件的相互關系如圖3-2所示。

ADO組件Delphi6.0包含了可以用來訪問Microsoft公司的ActiveXDataObjects(ADO)格式數(shù)據(jù)庫的組件。ADO是Micrsoft公司關于各種類型數(shù)據(jù)的高等界面,后來逐漸演變成滿足所有數(shù)據(jù)訪問需要的完整解決辦法。ADO的對象模型是所有數(shù)據(jù)訪問接口對象模型中最簡單的一種。Microsoft公司用來訪問ADO數(shù)據(jù)的應用程序界面技術是OLEDB。OLEDB是一種底層編程接口,用來訪問許多不同類型的數(shù)據(jù)源,其中包括消息、文件系統(tǒng)以及其他一些非傳統(tǒng)的數(shù)據(jù)源。OLEDB是一個由ComponentObjectModel(COM)接口組成的集合,用來隱藏創(chuàng)建數(shù)據(jù)訪問服務過程中的細節(jié)。OLEDB提供了訪問任何數(shù)據(jù)資源的方法,包括相互關聯(lián)的數(shù)據(jù)庫和相互不關聯(lián)的數(shù)據(jù)庫、Email和文件系統(tǒng)、文本和圖形以及用戶定義的數(shù)據(jù)對象。

Delphi的ADO組件無需依靠BDE而是使用ADO技術,提供了可以通過數(shù)據(jù)控制組件訪問數(shù)據(jù)的新方法。唯一的要求是在使用ADO組件時必須運行ADO/OLE-DB。ADO組件的使用使得DELPHI在訪問數(shù)據(jù)的類型和采用的技術方面都有了很大的突破。

數(shù)據(jù)模塊設計窗口數(shù)據(jù)模塊設計窗口是用來設計和維護數(shù)據(jù)模塊的。數(shù)據(jù)模塊設計窗口中包含了所有以.DTI作為文件擴展名的DataDiagram文件的信息。DTI文件在編譯時不起任何作用。

§3.3SQL語言在Delphi中的應用

在Delphi中使用SQL語言非常方便,一般來說,都是通過Tquery或TADOquery組件來使用SQL語言的。可以在Tquery或TADOquery組件的SQL屬性中設置SQL語句。設計程序時,在該組件的屬性對話框中選擇SQL屬性,單擊帶省略號的按鈕,就可以打開StringListEditor對話框,然后我們就可以在對話框中添加SQL語句。還可以使用Delphi的SQLBuilder來自動生成SQL語句,這樣可以避免手工編寫SQL而可能造成的語法錯誤。

靜態(tài)SQL語句在程序設計時便已固定下來,它不包含任何參數(shù)和變量。

動態(tài)SQL語句,也被稱作參數(shù)化的語句,在其中間包含著表示字段名或表名的參數(shù),例如下面的語句是一條動態(tài)SQL語句:

Select*FromBookWhere圖書編號=:bookCode;

其中的變量bookCode便是一個參數(shù)變量,它由一個冒號引導,在程序運行過程中,必須要為該參數(shù)賦值,該條SQL語句才能正確執(zhí)行,每次運行應用程序時可以為該參數(shù)變量賦予不同的值。為參數(shù)賦值有三種方法:

①根據(jù)參數(shù)在SQL語句中出現(xiàn)的順序,設置TADOQuery組件的parameters屬性值為參數(shù)賦值。

②直接根據(jù)SQL語句中各參數(shù)的名字,調用ParamByName方法來為各參數(shù)賦值。

③將TADOQuery組件的DataSource屬性設置為另一個數(shù)據(jù)源,這樣將另一個數(shù)據(jù)源中與當前TADOQuery組件的SQL語句中的參數(shù)名相匹配的字段值賦給其對應的參數(shù)。利用這種方法也能實現(xiàn)所謂的連接查詢,創(chuàng)建主要—明細型數(shù)據(jù)庫應用。

在使用動態(tài)SQL語句編程時,常常用到一個很重要的方法Prepare,調用Prepare方法之后,Delphi會將帶參數(shù)的SQL語句傳送給與其對應的數(shù)據(jù)庫引擎,對動態(tài)SQL語句進行語法分析和優(yōu)化。雖然在用動態(tài)SQL語句編程時,調用Prepare方法并不是必須的,但是調用Prepare方法后,會極大地提高動態(tài)SQL語句的執(zhí)行性能,特別是當要反復多次執(zhí)行同一條動態(tài)SQL語句時,其優(yōu)越性會更加明顯。如果在應用程序中執(zhí)行一條SQL語句之前并沒有顯式地調用Prepare方法,每次在執(zhí)行SQL語句時,Delphi會隱含地調用Prepare方法以準備這個查詢。

TadoQuery部件還有一個Prepare屬性,這是一個布爾型屬性,當其屬性值為True時,表明該查詢已被準備好了(SQL語句已被傳送到數(shù)據(jù)庫引擎中),當我們使用參數(shù)編輯器ParametersEditor來為動態(tài)SQL語句中的參數(shù)賦值時,當設置完相應的參數(shù)值并退出參數(shù)編輯器時,Delphi會隱含地調用Prepare方法以準備好查詢。

當SQL語句執(zhí)行完之后,要想準備下一個查詢,首先必須調用Close方法,然后才能調用Prepare方法準備下一個查詢。一般來說,在一個應用程序中應該調用一次Prepare方法,常常在窗體的OnCreate事件處理過程中調用Prepare方法,然后用上述介紹的方法為參數(shù)賦值,最后調用Open方法或ExecSQL方法執(zhí)行SQL語句,以完成查詢。

當然在調用Prepare方法準備好一個查詢時,會消耗一些數(shù)據(jù)庫資源,因而每當一個查詢執(zhí)行完畢之后,要養(yǎng)成調用UnPrepare方法以撤消查詢的好習慣。在運行程序過程中,通過程序改變TQuery或TADOquery部件的SQL屬性值時,Delphi會自動地調用Close方法和UnPrepare方法,以撤消查詢。

在程序運行過程中,要想設置Tquery或TADOquery部件的SQL屬性,必須首先調用Close方法,關閉TQuery或TADOquery部件,然后再調用Clear方法清除SQL屬性中現(xiàn)存的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部件已經(jīng)被關閉了,調用Close方法時不會產(chǎn)生任何影響。在應用程序中為SQL屬性設置新的SQL命令語句時,必須要調用Clear方法以清除SQL屬性中現(xiàn)存的SQL命令語句,如果不調用Clear方法,便調用Add方法向SQL屬性中設置SQL命令語句,那么新設置的SQL命令語句會追加在現(xiàn)存SQL命令語句后面,在程序運行時常常會出現(xiàn)出乎意料的查詢結果甚至程序無法運行下去。

在這里要特別注意的,一般情況下TQuery或TADOquery部件的SQL屬性只能包含一條完整的SQL語句,它不允許被設置成多條SQL語句。當然有些數(shù)據(jù)庫服務器也支持在TQuery或TADOquery部件的SQL屬性中設置多條SQL語句,只要數(shù)據(jù)庫服務器允許這樣,我們在編程時可以為SQL屬性設置多條SQL語句。

在為TQuery或TADOquery部件設置完SQL屬性的屬性值之后,也即編寫好適當?shù)腟QL程序之后,可以有多種方式來執(zhí)行SQL程序。

在設計過程中,設置完TQuery或TADOquery部件的SQL屬性之后將其Active屬性的值置為True,這樣便可以執(zhí)行SQL屬性中的SQL程序,如果應用中有與TQuery或TADOquery部件相連的數(shù)據(jù)瀏覽部件(如TDDGridTDBEdit等)那么在這些數(shù)據(jù)瀏覽部件中會顯示SQL程序的執(zhí)行結果。

在應用程序運行過程中,通過程序調用TQuery或TADOquery組件的Open方法或ExecSQL方法可以執(zhí)行其SQL屬性中的SQL程序。Open方法和ExecSQL方法是不一樣的。Open方法只能用來執(zhí)行SQL語言的查詢語句(Select命令),并返回一個查詢結果集,而ExecSQL方法還可以用來執(zhí)行其它常用的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組件可以獲得兩種類型的數(shù)據(jù):

u“活動”的數(shù)據(jù)

這種數(shù)據(jù)就跟通過TTable部件獲得的數(shù)據(jù)一樣,用戶可以通過數(shù)據(jù)瀏覽部件來編輯修改這些數(shù)據(jù),并且當調用Post方法或當焦點離開當前的數(shù)據(jù)瀏覽部件時,用戶對數(shù)據(jù)的修改自動地被寫回到數(shù)據(jù)庫中。

u非活動的數(shù)據(jù)(只讀數(shù)據(jù))

用戶通過數(shù)據(jù)瀏覽部件是不能修改其中的數(shù)據(jù)。在缺省情況下,通過TQuery部件獲得的查詢結果數(shù)據(jù)是只讀數(shù)據(jù),要想獲得“活動”的數(shù)據(jù),在應用程序中必須要設置Tquery或TADOquery組件的RequestLive屬性值為True,然而并不是在任何情況下(通過設置RequestLive的屬值True)都可以獲得“活動”的數(shù)據(jù)的,要想獲得“活動”的數(shù)據(jù),除了將TQuery部件的RequestLive屬性設置為True外,相應的SQL命令還要滿足以下條件。

本地SQL語句查詢情況下,要得到可更新的數(shù)據(jù)集,SQL語句的限制為:

n查詢只能涉及到一個單獨的表

nSQL語句中不能包含ORDERBY命令

nSQL語句中不能含聚集運算符SUM或AVG

n在Select后的字段列表中不能有計算字段

n在Select語句WHERE部分只能包含字段值與常量的比較運算,這些比較運算符是:Like,>,<,>=,<=。各比較運算之間可以有并和交運算:AND和OR

當通過SQL語句查詢數(shù)據(jù)庫服務器中的數(shù)據(jù)庫表:

n查詢只能涉及到一個單獨的表

nSQL語句中不能包含ORDERBY命令

nSQL語句中不能含聚集運算符SUM或AVG運算

另外,如果是查詢Sybase數(shù)據(jù)庫中的表,那么被查詢的表中只能有一個索引。

如果在應用程序中要求TQuery或TADOquery組件返回一個“活動”的查詢結果數(shù)據(jù)集,但是SQL命令語句不滿足上述約束條件時,對于本地數(shù)據(jù)庫的SQL查詢,BDE只能返回只讀的數(shù)據(jù)集。對于數(shù)據(jù)庫服務器中的SQL查詢,只能返回錯誤的代碼。當Tquery或TADOquery組件返回一個“活動”的查詢結果數(shù)據(jù)集時,它的CanModIfy屬性的值會被設置成True。

§3.4MSSQLServer簡述

SQLServer是一個后臺數(shù)據(jù)庫管理系統(tǒng),它功能強大操作簡便,日益為廣大數(shù)據(jù)庫用戶所喜愛。越來越多的開發(fā)工具提供了與SQLServer的接口。SQLServer是一個關系數(shù)據(jù)庫管理系統(tǒng),它最初是由Microsoft、Sybase和Ashton-Tate三家公司共同開發(fā)的。于1988年推出了第一個OS/2版本,在WindowsNT推出后,Microsoft與Sybase在SQLServer的開發(fā)上就分道揚鑣了,Microsoft將SQLServer移植到WindowsNT系統(tǒng)上,專注于開發(fā)推廣SQLServer的WindowsNT版本。

SQLServer2000是Microsoft公司推出的SQLServer數(shù)據(jù)庫管理系統(tǒng)的最新版本,該版本繼承了SQLServer7.0版本的優(yōu)點,同時又比它增加了許多更先進的功能、具有使用方便、可伸縮性好與相關軟件集成程度高等優(yōu)點。可跨越從運行MicrosoftWindows98的膝上型電腦到運行MicrosoftWindows2000的大型多處理器的服務器等多種平臺使用。MSSQLServer不但可以應用于大中型數(shù)據(jù)庫管理中,建立分布式關系數(shù)據(jù)庫,并且也可以開發(fā)桌面數(shù)據(jù)庫。事實上,SQLServer數(shù)據(jù)庫處理的基本結構,采取關系型數(shù)據(jù)庫模式,盡管如此,相信大家都可以輕易的發(fā)現(xiàn),在SQLServer的數(shù)據(jù)庫處理方式,則是使用面向對象的操作方式與精神,也就是說,SQLServer的所有功能,都可以基于系統(tǒng)已經(jīng)建立好的一些對象來達成,是相當OO(面向對象)的一個系統(tǒng)結構。

SQLServer企業(yè)管理器是SQLServer的主要管理工具,它提供了一個遵從MMC標準的用戶界面,使用戶得以:

·定義SQLServer實例組。

·將個別服務器注冊到組中。

·為每個已注冊的服務器配置所有SQLServer選項。

·在每個已注冊的服務器中創(chuàng)建并管理所有SQLServer數(shù)據(jù)庫、對象、登錄、用戶和權限。

·在每個已注冊的服務器上定義并執(zhí)行所有SQLServer管理任務。

·通過喚醒調用SQL查詢分析器,交互地設計并測試SQL語句、批處理和腳本。

·喚醒調用為SQLServer定義的各種向導。

·

第三章圖書管理系統(tǒng)設計分析

§4.1應用需求分析

圖書管理系統(tǒng)需要滿足來自三方面的需求,這三個方面分別是圖書借閱者、圖書館工作人員和圖書館管理人員。圖書借閱者的需求是查詢圖書館所存的圖書、個人借閱情況及個人信息的修改;圖書館工作人員對圖書借閱者的借閱及還書要求進行操作,同時形成借書或還書報表給借閱者查看確認;圖書館管理人員的功能最為復雜,包括對工作人員、圖書借閱者、圖書進行管理和維護,及系統(tǒng)狀態(tài)的查看、維護并生成催還圖書報表。

圖書借閱者可直接查看圖書館圖書情況,如果圖書借閱者根據(jù)本人借書證號和密碼登錄系統(tǒng),還可以進行本人借書情況的查詢和維護部分個人信息。一般情況下,圖書借閱者只應該查詢和維護本人的借書情況和個人信息,若查詢和維護其他借閱者的借書情況和個人信息,就要知道其他圖書借閱者的借書證號和密碼。這些是很難得到的,特別是密碼,所以不但滿足了圖書借閱者的要求,還保護了圖書借閱者的個人隱私。

圖書館工作人員有修改圖書借閱者借書和還書記錄的權限,所以需對工作人員登陸本模塊進行更多的考慮。在此模塊中,圖書館工作人員可以為圖書借閱者加入借書記錄或是還書記錄,并打印生成相應的報表給用戶查看和確認。

圖書館管理人員功能的信息量大,數(shù)據(jù)安全性和保密性要求最高。本功能實現(xiàn)對圖書信息、借閱者信息、總體借閱情況信息的管理和統(tǒng)計、工作人員和管理人員信息查看及維護。圖書館管理員可以瀏覽、查詢、添加、刪除、修改、統(tǒng)計圖書的基本信息;瀏覽、查詢、統(tǒng)計、添加、刪除和修改圖書借閱者的基本信息,瀏覽、查詢、統(tǒng)計圖書館的借閱信息,但不能添加、刪除和修改借閱信息,這部分功能應該由圖書館工作人員執(zhí)行,但是,刪除某條圖書借閱者基本信息記錄時,應實現(xiàn)對該圖書借閱者借閱記錄的級聯(lián)刪除。并且還應具有生成催還圖書報表,并打印輸出的功能。

在本系統(tǒng)中由于沒有打印機設備供試驗,所以預先把報表打印改成報表預覽。

設計不同用戶的操作權限和登陸方法

對所有用戶開放的圖書查詢

借閱者維護借閱者個人部分信息

借閱者查看個人借閱情況信息

維護借閱者個人密碼

根據(jù)借閱情況對數(shù)據(jù)庫進行操作并生成報表

根據(jù)還書情況對數(shù)據(jù)庫進行操作并生成報表

查詢及統(tǒng)計各種信息

維護圖書信息

維護工作人員和管理員信息

維護借閱者信息

處理信息的完整性

對借閱過期的圖書生成報表

圖4-2圖書管理系統(tǒng)數(shù)據(jù)庫應用需求的總結

根據(jù)以上所做的需求分析,并略掉一些細節(jié)(如不考慮用戶的登錄;對記錄的維護),得出以下的三層數(shù)據(jù)流圖。

§4.2系統(tǒng)功能模塊劃分

系統(tǒng)功能框圖如圖4-10所示。

§4.3系統(tǒng)數(shù)據(jù)庫設計

4.3.1概念設計

在概念設計階段中,設計人員從用戶的角度看待數(shù)據(jù)及處理要求和約束,產(chǎn)生一個反映用戶觀點的概念模式。然后再把概念模式轉換成邏輯模式。將概念設計從設計過程中獨立開來,使各階段的任務相對單一化,設計復雜程度大大降低,不受特定DBMS的限制。

利用ER方法進行數(shù)據(jù)庫的概念設計,可分成三步進行:首先設計局部ER模式,然后把各局部ER模式綜合成一個全局模式,最后對全局ER模式進行優(yōu)化,得到最終的模式,即概念模式。

(1)設計局部ER模式

實體和屬性的定義:

圖書(圖書編號,圖書名稱,作者,出版社,出版日期,備注,價格,數(shù)量,)

借閱者(借書證號,姓名,性別,身份證,聯(lián)系電話,密碼)

身份(身份編號,身份描述,最大借閱數(shù))

圖書類別(圖書類別編號,類別描述)

ER模型的“聯(lián)系”用于刻畫實體之間的關聯(lián)。一種完整的方式是對局部結構中任意兩個實體類型,依據(jù)需求分析的結果,考察局部結構中任意兩個實體類型之間是否存在聯(lián)系。若有聯(lián)系,進一步確定是1:N,M:N,還是1:1等。還要考察一個實體類型內部是否存在聯(lián)系,兩個實體類型之間是否存在聯(lián)系,多個實體類型之間是否存在聯(lián)系,等等。聯(lián)系定義如圖4-5所示。解釋如下:

u一個借閱者(用戶)只能具有一種身份,而一種身份可被多個借閱者所具有;

u一本圖書只能屬于一種圖書類別(類別),而一種圖書類別可以包含多本圖書;

u一個用戶可以借閱多本不同的書,而一本書也可以被多個不同的用戶所借閱。

(2)設計全局ER模式

所有局部ER模式都設計好了后,接下來就是把它們綜合成單一的全局概念結構。全局概念結構不僅要支持所有局部ER模式,而且必須合理地表示一個完整、一致的數(shù)據(jù)庫概念結構。

1)確定公共實體類型

為了給多個局部ER模式的合并提供開始合并的基礎,首先要確定各局部結構中的公共實體類型。在這一步中我們僅根據(jù)實體類型名和鍵來認定公共實體類型。一般把同名實體類型作為公共實體類型的一類候選,把具有相同鍵的實體類型作為公共實體類型的另一類候選。

2)局部ER模式的合并

合并的原則是:首先進行兩兩合并;先和合并那些現(xiàn)實世界中有聯(lián)系的局部結構;合并從公共實體類型開始,最后再加入獨立的局部結構。

3)消除沖突

沖突分為三類:屬性沖突、結構沖突、命名沖突。

設計全局ER模式的目的不在于把若干局部ER模式形式上合并為一個ER模式,而在于消除沖突,使之成為能夠被所有用戶共同理解和接受的同一的概念模型。

3)全局ER模式的優(yōu)化

在得到全局ER模式后,為了提高數(shù)據(jù)庫系統(tǒng)的效率,還應進一步依據(jù)處理需求對ER模式進行優(yōu)化。一個好的全局ER模式,除能準確、全面地反映用戶功能需求外,還應滿足下列條件:實體類型的個數(shù)要盡可能的少;實體類型所含屬性個數(shù)盡可能少;實體類型間聯(lián)系無冗余。

綜上所述,“圖書管理系統(tǒng)”的全局ER模式如圖4-13所示。

4.3.2關系數(shù)據(jù)庫的邏輯設計

由于概念設計的結果是ER圖,DBMS一般采用關系型(本人所使用的MSSQLServer就是關系型的DBMS),因此數(shù)據(jù)庫的邏輯設計過程就是把ER圖轉化為關系模式的過程。由于關系模型所具有的優(yōu)點,邏輯設計可以充分運用關系數(shù)據(jù)庫規(guī)范化理論,使設計過程形式化地進行。設計結果是一組關系模式的定義。

(1)導出初始關系模式

book(圖書編號#,圖書名稱,圖書類別#,作者,出版社,出版日期,備注,價格,數(shù)量)class(圖書類別#,類別名)user(借書證號#,姓名,性別,身份編號#,身份證,聯(lián)系電話,密碼)ID(身份編號#,身份描述,最大借閱數(shù))Owner(借書證號#,圖書編號#,借書日期)

圖4-14關系模式集

(2)產(chǎn)生子模式

子模式是用戶所用到的那部分數(shù)據(jù)的描述。除了指出用戶用到的數(shù)據(jù)外,還應指出數(shù)據(jù)與概念模式中相應數(shù)據(jù)的聯(lián)系,即指出概念模式與子模式之間的對應性。

借書子模式(借書證號#,姓名,圖書編號#,圖書名稱,借書日期)

圖4-15部分子模式

(3)根據(jù)設計中出現(xiàn)的問題本人在寫系統(tǒng)時還加入了兩個關系模式:

1、ownertemp:用于工作人員在處理借書、還書工作時臨時存儲借書、還書信息,以便打印報表時使用。

2、keyer:用于存儲工作人員和圖書館管理員的用戶名和密碼及權限,以便工作人員或圖書館管理員進入相應的功能模塊時進行驗證用戶的身份。

4.3.3數(shù)據(jù)庫的實現(xiàn)

我選用MicrosoftSQLServer2000(企業(yè)版)數(shù)據(jù)庫來進行數(shù)據(jù)庫的邏輯設計。首先創(chuàng)建七個基本數(shù)據(jù)庫表如表4-1-4-7所示,然后根據(jù)全局ER圖,建立各個表之間的聯(lián)系,如圖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數(shù)據(jù)庫表間聯(lián)系圖

第五章圖書管理系統(tǒng)應用程序設計

§5.1系統(tǒng)窗體模塊組成

§5.2數(shù)據(jù)模塊窗體的設置

在編寫數(shù)據(jù)庫應用程序時,經(jīng)常要遇到這樣的情況,即好多組件、窗體同時訪問相同的數(shù)據(jù)源,如果為每一個組件或者窗體都設置一個數(shù)據(jù)源將是十分耗時的工件,而且要保證這些數(shù)據(jù)源的確是相同的也需花一番功夫。那么,能不能將這些數(shù)據(jù)源集中管理,最好是做成一個統(tǒng)一的模塊,需要時就將該模塊引入而不必直接操作數(shù)據(jù)源本身呢?數(shù)據(jù)模塊(DataModule)是解決這個問題最好的答案。簡單說來,數(shù)據(jù)模塊是用來集中管理數(shù)據(jù)源的一個窗體,該窗體可被需要的地方隨時引入。

但本人在開發(fā)這個系統(tǒng)時,開始使用了一下數(shù)據(jù)模塊,但在使用過程中卻碰到了一些問題。并且考慮這個系統(tǒng)使用到的TADOQuery控件比較多,如果使用數(shù)據(jù)控件可能會帶來管理上的麻煩,如弄混各個數(shù)據(jù)控件的作用。還考慮到使用動態(tài)生成ADOQuery可能會更節(jié)省資源。所以在本人的系統(tǒng)中,開始做的第一個模塊“借閱者個人模塊”中還稍微使用了一下數(shù)據(jù)模塊。但在后面做的兩個模塊中大多都是用動態(tài)生成ADOQuery來實現(xiàn)的。并且由于SQL語句是動態(tài)加入的所以datamodule中的控件也不會多。

§5.3啟動畫面的實現(xiàn)

啟動畫面是為了給用戶一個良好的印像,加深軟件的親和力,沒有實際的功能,在Form1窗體中加入了Image和Time組件。啟動畫面的窗體略,主要的源代碼如下:

§5.4用戶登錄窗體的的實現(xiàn)

本窗體是為三種不同的用戶(一般用戶,工作人員,管理員)提供選擇以進入不同的模塊,滿足不同用戶的需求。源代碼比較簡單,略。

§5.5用戶密碼認證窗體的的實現(xiàn)

本窗體是為了讓工作人員或圖書館管理員按照用戶名和密碼進行登錄,并且跟據(jù)用戶名檢查Keyer表中的“權限”字段,以分辯進入圖書館管理人員模塊還是進入工作人員模塊。窗體界面、源代碼如下

§5.6借閱者服務模塊的實現(xiàn)

借閱者服務窗體的功能主要是圖書的查詢,個人借閱情況查看及個人部分信息的修改。界面圖如下:

5.6.1圖書查詢功能的實現(xiàn)

在本系統(tǒng)中,任何人都有權限使用查詢功能,不做任何限制。界面如下,

由于實現(xiàn)的查詢功能有多種,如按圖書編號、圖書名稱等字段進行完全體配查找和部分體配的模糊查找,還有按多個條件進行邏輯與或是邏輯或的多條件查找。其中實現(xiàn)的方法者差不多,所以只給出多條件查找的代碼,如下:

5.6.2借閱者登錄功能的實現(xiàn)

這個功能的實現(xiàn)與工作人員和管理人員登錄功能實現(xiàn)的方法大致一樣,并且還要簡單。是從User表中查到到借閱證號與密碼,看與用戶輸入的是否一致。如果一致,那么用戶就可查看自已的借閱情況并維護自己的部分信息。源代碼與借閱者登錄界面都略。

5.6.3借閱者借閱情況功能的實現(xiàn)

當借閱者正確登錄到系統(tǒng)后,此功能將被激活,使用戶能查看到自身的借閱情況。在此系統(tǒng)中,信息的顯示一般用ListView來實現(xiàn),只在較少的情況下用到了DBgrid,因為我覺得ListView更好實現(xiàn),并能使信息數(shù)據(jù)對用戶的完全分離。

在這里跟據(jù)借閱者的不同要求實現(xiàn)借閱情況的查詢,有檢查所有的借閱情部、某本書的借閱情況、和根據(jù)已借閱天數(shù)的來查詢。其中根椐借閱天數(shù)來查詢更有代表性,有方式一和方式二。以下給出此功能的源代碼

按借閱天數(shù)查詢方式一

按借閱天數(shù)查詢方式二

5.6.4借閱者個人資料維護功能的實現(xiàn)

此功能實現(xiàn)當前借閱者部份資料的修改,但借書證號和身份類別這樣的信息不允許修改,這是圖書館管理員模塊的功能。在此界面中點擊修改按鈕將出現(xiàn)“修改”窗體(Form8),點擊修改密碼按鈕將出現(xiàn)groupbox8,在這里進行密碼修改。關鍵源代碼如下。

這里給出個人部分信息修改的源代碼:

這里給出密碼修改的源代碼:

5.7工作人員-圖書借閱/歸還模塊的實現(xiàn)

5.7.1工作人員進行圖書借閱功能實現(xiàn)

在這個功能中,工作人員輸入借閱者的借閱證號和所要借閱的圖書的圖書編號,然后點擊借閱按鈕就可進行圖書借閱。考慮到實際中可能會出現(xiàn)只知圖書名而不知圖書編號的情況,在此界面下方加入了一個轉換功能,可以把圖書名稱轉換成圖書編號,再進行圖書借閱。

在借閱完成后會生借閱報表以便借閱者檢查和確認,借閱報表的打印效果如下圖,實現(xiàn)比較簡單,略去實現(xiàn)過程。

5.7.2工作人員進行圖書歸還功能實現(xiàn)

在此功能中,工作人員根據(jù)借閱者的借書證號和歸還的圖書編號進行圖書的歸還工作。并且根據(jù)現(xiàn)實中可能會出現(xiàn)的只知圖書名不知圖書編號的歸還情況,所以加入了按書籍名稱進行歸還的功能。這個功能是圖書借閱功能中把圖書名稱轉換成圖書編號的一種改進方法,這樣就不用如借閱功能中一樣要先轉換再借閱了。歸還完成后,同樣會打印出歸還報表以便用戶檢查和確認。

5.8圖書館管理員模塊的實現(xiàn)

5.8.1圖書館管理員圖書管理功能的實現(xiàn)

在這個功能中可以在(*圖書編號)中輸入圖書編號,點查找按鈕后就會在各個相應的組件中顯示出信息,或按圖書名稱模糊查找到所要的記錄,在各個相應的組件中顯示第一條記錄的信息,也可在下端的ListView組件中點擊某一條記錄,在各個相應的組件中也會顯示所選記錄的信息。在入庫功能中只要不是相同的圖書編號并且?guī)В柼崾镜淖侄尾粸榭站涂刹迦胄碌膱D書記錄。刪除則刪除那些Book表中的圖書記錄,如果借出還可依用戶要求連帶刪除owner表中的記錄。因為圖書修改與圖書入庫的功能與工作人員記錄修改和工作人員記錄添加的實現(xiàn)過程一樣,所以下面僅給出刪除功能的源代碼,如下

5.8.2圖書館管理員工作人員和管理員管理功能的實現(xiàn)

在此功能中可以加入工作人員或是管理員,或是修改他們的密碼、權限。

在此功能中如果選中ListView中的記錄,則在右邊相應的組件中顯示出信息,并且管理員還可對這些記錄進行修改或加入新的記錄。并且也可以點刪除按鈕刪除選中的一條或多條記錄。刪除功能與圖書記錄的刪除一般,所以下面只給出添加與修改的實現(xiàn)過程。

5.8.3圖書館管理員修改圖書類別及統(tǒng)記功能的實現(xiàn)

在此窗體中能對圖書的類別進行刪除,添加和修改,這模塊的功能的實現(xiàn)過程與圖書記錄的刪除,添加和修改一樣的,但是這個窗體還能跟據(jù)圖書類別進行統(tǒng)計,還可根據(jù)Book表和owner表統(tǒng)計出圖書總數(shù)目,庫存圖書數(shù)目,借出圖書數(shù)目及借閱過期的圖書數(shù)目。在這里給出統(tǒng)計圖書總數(shù)目,庫存圖書數(shù)目,借出圖書數(shù)目及借閱過期的圖書數(shù)目的實現(xiàn)過程中的幾個函數(shù)和過程

5.8.4圖書館管理員借閱者管理功能的實現(xiàn)

查詢借閱者可根據(jù)借閱者的借書證號或姓名或身份編號查找到借閱者的信息,也可以實行模糊查找,這個功能的實現(xiàn)與前面圖書查找的實現(xiàn)過程一般,就不再詳細說明。

5.8.5圖書館維護借閱者管理功能的實現(xiàn)

此功能能對借閱者信息進行查看添加、刪除、修改。在這里給出刷新按鈕的實現(xiàn)過程

5.8.6圖書館身份維護功能的實現(xiàn)

篇(3)

2圖書館光盤管理系統(tǒng)中面臨的著作權問題

圖書館光盤管理系統(tǒng)為讀者在電子資源檢索室及圖書館網(wǎng)站上瀏覽和下載光盤文獻資料提供服務,這樣將大大促進作品的傳播和使用。因此,作品的版權人不可能不關心這樣的問題:將光盤內容存儲到服務器中是否屬于版權人的專有權利?是否應該事先獲得該作品版權人的許可?是否違反了著作權法?

2.1復制權

我國著作權法規(guī)定:“圖書館、檔案館、紀念館、博物館、美術館等為陳列或者保存版本的需要,復制本館的作品,可以不經(jīng)著作權人許可,不向其支付報酬,但應當指明作者姓名、作品名稱,并且不得侵犯著作權人依照本法享有的其他權利。”圖書館開發(fā)的光盤管理系統(tǒng),將隨書光盤資源上傳到圖書館專用服務器,改變的只是作品的載體,其作品內容本身的完整性并沒有改變,是一種從數(shù)字到數(shù)字的復制,所以此時的數(shù)字化可以不經(jīng)過版權人的許可,也不必付費。但是高校圖書館必須嚴格遵守相關法律條例,保證隨書光盤的開發(fā)和利用控制在合理使用的范圍內。

2.2信息網(wǎng)絡傳播權

隨書光盤管理系統(tǒng)是在網(wǎng)絡環(huán)境下進行的,必然涉及信息網(wǎng)絡傳播權。對于高校圖書館而言,各圖書館應認真遵守《信息網(wǎng)絡傳播權保護條例》的規(guī)定:“圖書館、檔案館、紀念館、博物館、美術館等可以不經(jīng)著作權人許可,通過信息網(wǎng)絡向本館館舍內服務對象提供本館收藏的合法出版的數(shù)字作品和依法為陳列或者保存版本的需要以數(shù)字化形式復制的作品,不向其支付報酬,但不得直接或者間接獲得經(jīng)濟利益。”圖書館要全面監(jiān)控讀者使用各種資源情況,有效規(guī)避讀者在信息使用過程中侵犯權利人的知識產(chǎn)權。

2.3署名權、修改權、保護作品完整權

光盤管理系統(tǒng)的開發(fā)過程主要涉及著作權人的人身權,雖然不必取得著作權人許可,但要尊重作者的署名權、修改權、保護作品完整權:在對光盤的編輯中應指明作者姓名、不得擅自改變;也不能擅自對作品進行修改、更正補充、篡改,防止作者的名譽、聲望受到損害,維護作品的純潔性。

3防范圖書館光盤管理系統(tǒng)中的著作權問題

3.1對館員進行知識產(chǎn)權知識培訓,嚴防盜版光盤的入藏

在各種盜版活動猖獗的今天,圖書館必須開展知識產(chǎn)權法宣傳與培訓,提高圖書館工作人員的知識產(chǎn)權意識和法律素質,對工作中容易侵權的問題要特別注意:選擇正規(guī)出版社的出版物,保護著者版權,不購買低價盜版光盤,加強隨書光盤訂購、入藏、驗收等環(huán)節(jié)的管理,嚴防盜版光盤的入藏與流通,一經(jīng)發(fā)現(xiàn)應堅決剔除。真正做到從行動上去保護知識產(chǎn)權,避免圖書館侵權行為的發(fā)生,首先要具備較高的知識產(chǎn)權保護意識,

3.2正確利用“合理使用”制度

圖書館是一個為教育服務、非營利性信息服務機構,為促進信息資源的共建共享,世界各國的現(xiàn)行著作權法都在不同程度上允許社會公眾的合理使用。圖書館光盤管理系統(tǒng)是將本館的館藏光盤進行數(shù)字化處理,是基于服務的并且無任何營利目的,在本館內、在原讀者范圍內使用,可以事先不征得著作權人的同意,也無須支付任何費用,但如果著作權人聲明其作品不允許復制,就不能將其作品拷貝并在網(wǎng)上傳播。圖書館應當以知識產(chǎn)權保護為基礎,充分利用“合理使用”這一權力,以保證最大限度地實現(xiàn)信息資源的合理使用,從而進一步擴大信息資源共享的范圍,但同時也應把握好尺度,嚴格遵循合理使用的范圍、權限。

3.3提高讀者知識產(chǎn)權意識

圖書館要對讀者進行知識產(chǎn)權保護的宣講活動,在數(shù)據(jù)庫主頁中版權公告,提醒讀者合理、合法使用數(shù)據(jù)庫資源,對讀者進行有效的引導。圖書館還應盡到注意義務,對有可能發(fā)生的讀者侵權行為進行警示,提醒讀者使用資源時尊重知識產(chǎn)權,不得將從圖書館獲得的資源用于任何商業(yè)目的,同時一旦發(fā)現(xiàn)侵權內容,立即采取適當措施予以移除。只有圖書館廣大讀者確確實實地提高了知識產(chǎn)權保護的意識,才能從根本上杜絕使用中侵權行為的發(fā)生,有效地規(guī)避知識產(chǎn)權風險。

3.4做好技術防范

首先,圖書館要嚴格控制傳播范圍,設置用戶賬號和密碼,確保光盤管理系統(tǒng)僅校內讀者在館域網(wǎng)或校園網(wǎng)內登錄訪問;還可以通過設置防火墻的方法來有效地將互聯(lián)網(wǎng)與內部網(wǎng)隔離,防止不在授權范圍內的網(wǎng)上讀者使用這些信息。其次,通過先進的計算機技術限制讀者下載,只允許讀者在線瀏覽,保護著作權所有人的利益。

篇(4)

一、圖書館管理系統(tǒng)應用的必要性

過去,大多數(shù)學校圖書館都是封閉式管理,通過卡片登記借閱信息,只能實現(xiàn)有限的流通,有的甚至不能正常對學生開放,使得圖書館不能發(fā)揮應有的作用;即使是實現(xiàn)了正常流通的,也不能提供領導管理上需要的各種信息如本館各種資料分布及借閱(流通)情況。

目前,我國學校圖書館辦館的要求及領先標志就是藏書全部開放,師生共享開架借閱。這種借閱方式是當前適合我國國情的發(fā)揮圖書館應有作用的最佳方式,也是素質教育的最好體現(xiàn)。它充分發(fā)揮了圖書館的功效,最大限度地為讀者服務,這也是圖書館自動化管理的最終目標。實現(xiàn)這一目標,必須有現(xiàn)代化的管理手段和管理體制。為此,各地教育主管部門都逐步提出學校要采用圖書館管理系統(tǒng),從而實現(xiàn)人工管理達不到的一些功能并發(fā)揮圖書館的最大效益。而隨著越來越多的學校采用了現(xiàn)代化的管理軟件進行管理,進一步提升了學校管理的現(xiàn)代化水平,從而在競爭中處于有利位置,也對其他兄弟學校起到了示范和促進作用。自身發(fā)展的需要和上級部門的要求以及競爭的需要決定了學校采用圖書館管理系統(tǒng)的必要性。

以計算機技術、存儲技術、通訊技術為主要內容的現(xiàn)代信息技術的發(fā)展,使人類進入了一個嶄新的信息時代。作為信息資源存儲、傳遞的專業(yè)機構,圖書館如何在新的技術條件下,適應形勢發(fā)展,發(fā)揮自身優(yōu)勢,開拓信息渠道,更好地為用戶服務,是一個新課題。也必將對現(xiàn)有的圖書館產(chǎn)生全面而深遠的影響。因此,正確認識信息時代對圖書管理工作的要求,使圖書館工作變得更加便利和高效,使資源共享更容易實現(xiàn),為讀者提供更加優(yōu)質的服務十分重要。

在信息時代,各種冠以“數(shù)字圖書館”之類說法的圖書館現(xiàn)代化論斷到處可見。那么什么是圖書館的現(xiàn)代化呢?判斷一個圖書館的現(xiàn)代化程度,應該從圖書館最本質的特性判斷。圖書館具有信息資源的收集保存、加工整理并使之有序化及傳遞信息資源的功能。這一點是書店和網(wǎng)站都無法做到的,也是圖書館最本質的特性,是圖書館賴以生存的基礎。判斷圖書館的現(xiàn)代化程度,也應該從這個最本質的特性來判斷。

二、成熟的圖書管理系統(tǒng)決定因素

任何一套圖書館管理系統(tǒng)至少必須具備這樣一些功能:對圖書進行編目也就是采集信息并上架、圖書檢索(查找)、圖書流通(借還)。然而僅僅有這些功能是不能稱為真正的現(xiàn)代化的管理型圖書館管理系統(tǒng)的。筆者認為,一套系統(tǒng)是否成熟還決定于以下幾個方面:

1、符合相關的標準

例如教育部最新頒布的《教育管理信息化標準》規(guī)范、我國圖書館界通用的CNMARC格式標準、目前通用的《中圖法四》等。

《教育管理信息化標準》的頒布將為教育部門對教育數(shù)據(jù)進行總體的規(guī)劃和組織,建立起統(tǒng)一的數(shù)據(jù)平臺提供有力的技術保證;它將帶動教育管理信息存儲、訪問、更新、傳遞方式的變革,進一步減輕學校人力資源和財政管理的負擔。

CNMARC是在UNI-MARC(國際通用MARC)的基礎上發(fā)展起來的,它有479個字段,這些字段是針對能著錄多種文獻類型及多文種文獻而制定的,數(shù)據(jù)格式結構復雜繁多,使用時,用其所有字段,只需結合著錄的文獻類型與文種等實際情況選擇適用的機讀目錄格式字段形成數(shù)據(jù)。

中圖法全稱是《中國圖書館分類法》,是我國建國后編制出版的一部具有代表性的大型綜合性分類法。其編制始于1971年,先后出版了四版。自1999年第四版起更名為《中國圖書館分類法》,簡稱不變,英文譯名為ChineseLibraryClassification,英文縮寫為CLC。由于國家圖書館1975年以后的文獻(善本除外)都采用中圖分類法,館藏目錄檢索系統(tǒng)也提供“中圖分類號”檢索字段,了解中圖分類法有助于讀者準確地查詢到需要的文獻資源

2、開發(fā)工具及所采用的數(shù)據(jù)存放格式要求先進

有些人認為只要看看功能和界面是否令人滿意就行了,其他的與我們沒有多少關系,實際上開發(fā)工具及方式和數(shù)據(jù)格式的存放方式?jīng)Q定了系統(tǒng)的穩(wěn)定性和性能以及未來的可升級維護性。目前國內絕大多數(shù)系統(tǒng)在Windows下運行,最先進流行的開發(fā)工具是美國Borland公司的Delphi及Microsoft公司的VC++,后臺數(shù)據(jù)庫一般采用微軟的SQLServer或Sybase大型數(shù)據(jù)庫產(chǎn)品。

3、功能是否強大

目前,一般主流的系統(tǒng)包括系統(tǒng)管理、讀者管理、編目、流通、統(tǒng)計、查詢等功能。比較先進的能夠在一個界面下實現(xiàn)圖書、音像、期刊的管理,設置假期、設置暫離鎖(提高安全性)、暫停某些讀者的借閱權、導入導出讀者、交換MARC數(shù)據(jù)、升級輔助編目庫等。此外,由于學校校園網(wǎng)絡的逐步建立,一個完善的系統(tǒng)還應提供無縫接入校園網(wǎng)的WEB功能,通過IE瀏覽器讓讀者使用借閱資料查詢、更換密碼、預約、資料檢索等功能。有些系統(tǒng)還能提供讀者自助服務,可以開放一些客戶機讓讀者自行管理密碼、查詢自己的借閱史、預約資料、檢索資料等。

4、要有足夠的安全性

安全性一般涉及到操作權限控制和數(shù)據(jù)自動備份兩方面。主流系統(tǒng)都實現(xiàn)了由管理員分配各操作員可使用的功能并設置其密碼,各操作員均需先登錄系統(tǒng)然后再操作各種允許使用的功能。一個完善的系統(tǒng)還應對各操作員的登錄、退出及重要操作記錄在操作日志中。同時還應提供完善的自動備份服務,以實現(xiàn)數(shù)據(jù)的全自動按計劃備份,從而最大限度地保障您的數(shù)據(jù)安全。

5、要有足夠大的輔助編目庫

在對圖書進行編目也就是信息采集時,如果我們通過掃描圖書的ISBN號條碼就能得到大多數(shù)書的書名、作者、出版社等各種標準信息,則我們的編目準確性和效率將會得到極大的提高。這就要求有一個比較完善的準確的輔助編目庫。這也是一個容易被學校忽視而軟件開發(fā)商有意回避的問題。

6、要具有完善的規(guī)則

除了能夠設置讀者的借閱規(guī)則外,還應自動實現(xiàn)一些圖書館界通用的管理規(guī)則,例如有在借資料的讀者是不能被刪除的,有以下情況的讀者是不能借閱的:某類書的借閱數(shù)已達到最大值、有超期資料、有未繳罰款、被暫停借閱等。

7、簡單易用

一個好的系統(tǒng)應具有清楚的操作界面,最簡化的操作過程。日常工作中操作員通過手持式條碼閱讀器應該可以完成絕大部分工作。需要注意的是有些系統(tǒng)將精力花在華麗的界面上,而忽視了用戶真正需要的是實用的完善的功能。

8、有先進的體系結構

當前主流系統(tǒng)采用客戶機服務器(Client/Server)+瀏覽器/服務器(Browser/Server)模式,所有信息均存放在數(shù)據(jù)庫服務器上,各客戶機通過網(wǎng)絡與數(shù)據(jù)庫服務器通訊,WEB服務通過ADO模型訪問數(shù)據(jù)庫服務器,數(shù)據(jù)與應用安全地隔離,可確保數(shù)據(jù)存放的安全性。當然在具體選擇中還需考慮是否得到主管部門例如省電教館等推薦及性價比等。

隨著數(shù)字化技術的飛速發(fā)展,人類正邁向一個以數(shù)字化技術革命為中心的新時代。這一新時代最明顯的特征便是全球范圍內的網(wǎng)絡革命。這場革命催生出的數(shù)字化信息網(wǎng)絡,大大改善了我們所處的信息環(huán)境,信息的類型和形式變得更加復雜,人類信息傳播的途徑及獲取信息的方法,都發(fā)生了前所未有的變化,它不僅改變了圖書館信息服務的方式,同時也對圖書館的情報用戶提出了嚴峻的挑戰(zhàn)。

三、圖書管理系統(tǒng)現(xiàn)代化程度的標準

1、信息資源收集的現(xiàn)代化

現(xiàn)代社會信息資源豐富,信息污染也很嚴重,給圖書館信息資源的收集帶來了極大麻煩。傳統(tǒng)圖書館時期,由于各種信息資源極大部分由正規(guī)渠道獲得,經(jīng)過圖書期刊編輯人員的認真校對,信息質量相對可靠。而現(xiàn)代化信息的載體以及出版發(fā)行方式發(fā)生了很大變化,各種光盤、印刷品、網(wǎng)上信息、聲像讀物等良莠不齊。這就要求圖書館采編人員掌握多方面的信息源,運用現(xiàn)代化的各種手段,對各種信息做出盡可能正確的判斷

2、信息加工整理的現(xiàn)代化

在傳統(tǒng)圖書館時期,文獻資源的分類加工整理比較簡單,所揭示的文獻信息深度有限,對文獻的內在性質、內容的揭示基本沒有。圖書館應用計算機進行分類編目,給文獻內容的揭示帶來了一定的改進,但無實際性的改革。計算機所具有的快速處理數(shù)據(jù)的能力遠遠沒有發(fā)揮出來。信息加工的目的是為了使信息資源有序化,以便于更好地查找和使用文獻信息,如果在文獻信息加工整理上不能實現(xiàn)統(tǒng)一標準的規(guī)范,圖書館現(xiàn)代化的物質基礎就不存在

3、圖書館服務的現(xiàn)代化

服務是圖書館的生命。圖書館所做的一切工作,只有一個目的,就是做好圖書館的讀者服務工作。服務的現(xiàn)代化包括兩個方面,一是圖書館工作人員服務的現(xiàn)代化,二是服務手段的現(xiàn)代化。

觀念的現(xiàn)代化要求我們改變原來重管理輕服務的思想,把以讀者為中心真正落到實處,發(fā)揮圖書館工作人員的主觀能動性,積極收集各種文獻信息資源。在現(xiàn)代化圖書館時期,判斷一個圖書館的大小是以圖書館獲取信息的能力,提供服務的能力來決定的由于現(xiàn)代化的圖書館是一個有機的網(wǎng)絡,各種信息資源許多都是公開的、共享的.只要有一定的專業(yè)技能和一切以讀者為中心的服務觀念,圖書館的服務工作可以比傳統(tǒng)時期有一個質的飛躍。

判斷服務手段的現(xiàn)代化也應該用“一切以讀者為中心”這一圖書館的服務宗旨來判斷。如果圖書館提供的文獻資源必須使用電腦才能得到,這對讀者來說就是服務不好,因為他的要求沒有得到滿足。現(xiàn)代化服務手段真正的含義應該是圖書館根據(jù)讀者不同需要,提供適合各種不同類型的服務方式。

總之,我們通過對圖書管理系統(tǒng)的分析,對管理系統(tǒng)在其他情況下的應用,有了一個基礎性的了解與掌握。同時,對熱門圖書的科學管理,進一步提高其利用率,不斷滿足讀者日益旺盛的閱讀需要,有著十分積極的現(xiàn)實意義。

【參考文獻】

[1]顧俐.圖書館圖書管理系統(tǒng)的設計.《中國科技信息》.2007.11.

[2]孫麗莉.圖書管理系統(tǒng)論.《中國科技信息》.2007.1.

[3]馬慧生、王樹芬.對我校圖書館數(shù)字化的建議.《桂林航天工業(yè)高等專科學校學報》.2005.10.3.

[4]張霞.數(shù)字圖書管理系統(tǒng)及其相關技術探究.《安陽大學學報:綜合版》.2003.3.

主站蜘蛛池模板: 高台县| 昌乐县| 江都市| 阜南县| 富蕴县| 贵阳市| 策勒县| 大足县| 冕宁县| 海门市| 吉安县| 科技| 湛江市| 阿勒泰市| 启东市| 安吉县| 固始县| 金寨县| 昔阳县| 札达县| 卢氏县| 太原市| 陆河县| 密云县| 扶绥县| 将乐县| 三穗县| 宁河县| 南平市| 徐闻县| 祁阳县| 保定市| 高清| 游戏| 乐山市| 巴中市| 镇远县| 鄂尔多斯市| 周至县| 康定县| 通州区|