當前位置:成語大全網 - 新華字典 - 圖書館管理系統

圖書館管理系統

圖書館管理系統

摘 要

圖書管理系統是典型的信息管理系統(MIS),其開發主要包括後臺數據庫的建立和維護以及前端應用程序的開發兩個方面。對於前者要求建立起數據壹致性和完整性強、數據安全性好的庫。而對於後者則要求應用程序功能完備,易使用等特點。

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

第壹章對數據庫應用系統開發和圖書管理系統進行了簡明的介紹,並分析了開發圖書管理系統所應進行的工作。

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

第三章學習了具體的開發工具Delphi 6.0,對其數據庫組件,SQL語言在Delphi中的應用等數據庫編程關鍵技術進行了系統的介紹。

第四章分析了圖書管理信息系統的應用需求,按照數據庫設計理論壹步壹步地給出了系統需求說明書、局部ER圖、全局ER圖、系統關系模式,子模式,利用MS SQL Server2000建立了數據庫

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

設計充分利用Delphi 6、MS SQL Server2000數據庫技術的強大力量,提高了編程效率和可靠性。

關鍵詞:數據庫,SQL語言,MS SQL Server,Delphi6,

數據庫組件,圖書管理,窗體,listview組件

24

37

§5.2 數據模塊窗體的設置 ……………………………………………………… 第壹章 緒 論

§1.1 數據庫應用系統開發簡介

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

數據庫應用系統開發的目標是建立壹個滿足用戶長期需求的產品。開發的主要過程為:理解用戶的需求,然後,把它們轉變為有效的數據庫設計。把設計轉變為實際的數據庫,並且這些數據庫帶有功能完備、高效能的應用。

數據庫技術在計算機軟件鄰域研究中壹直是非常重要的主題,產生於60年代,30多年來數據庫技術得到了迅速發展,並已形成較為完整的理論體系和壹大批實用系統。並且,近年來,隨著World Wide Web(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中的工具來處理這些數據。

MS SQL Server2000中就支持窗體、存儲過程等應用元數據。

1.1.2 數據庫管理系統

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

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

關系模型和層次、網狀模型的最大判別是用關鍵碼而不是用指針導航數據,表格簡單用戶易懂,編程時並不涉及存儲結構,訪問技術等細節。關系模型是數學化模型。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) MS SQL Server基礎

4) 設計數據庫;設計界面

5) 開發數據庫。數據庫實現的壹些功能有

l 數據和數據說明的醒目顯示;

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

l 數據文件某種存儲格式導入數據窗體,經過數據完整性校驗存入數據庫;

l 數據庫安全性的設計;

l 數據庫的設計、數據接口、界面的設計。

§1.3 本文所作工作

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

第二章介紹了數據庫的設計和範式分析,並系統介紹了SQL語言,為設計和理解應用程序做了鋪墊。

第三章對系統介紹了Delphi 6.0的數據庫編程技術、SQL語言在Delphi 6.0中的應用、MS SQL Server基礎。

第四章分析了圖書管理系統的應用需求,設計了系統的數據庫結構,並根據需求對系統功能進行了劃分和細化。

第五章根據第四章的設計結果利用MSSQL Server2000和Delphi 6.0進行了具體的應用程序設計。

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

第二章 數據庫理論基礎

壹個成功的信息管理系統,是建立在許多條件之上的,而數據庫是其中壹個非常重要的條件和關鍵技術。

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

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

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

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

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

(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),而在這個關系下的每個數據指標項則被稱為數據元素(data element),這種關系落實到具體數據庫上就是基本表,而數據元素就是基本表中的壹個字段(field)。規範化表達還規定在每壹個基本表中必須定義壹個數據元素為關鍵字(key),它可以唯壹地標識出該表中其它相關的數據元素。在規範化理論中表是二維的,它有如下四個性質:

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

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

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

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

在對表的形式進行了規範化定義後,數據結構還有五種規範化定義,定名為規範化模式,稱為範式。在這五種範式中,壹般只用前三種,對於常用系統就足夠了。而且這五種範式是“向上兼容”的,即滿足第五範式的數據結構自動滿足壹、二、三、四範式,滿足第四範式的數據結構自動滿足第壹、二、三範式,……,依此類推。

第壹範式(first normal form,簡稱1st NF)就是指在同壹表中沒有重復項出現,如果有則應將重復項去掉。這個去掉重復項的過程就稱之為規範化處理。在本文所討論的開發方法裏,1st NF實際上是沒有什麽意義的。因為我們按規範化建立的指標體系和表的過程都自動保證了所有?/div>