當前位置:文書都 >

實用範文 >論文 >

小議DELPHI圖書管理信息制度論文

小議DELPHI圖書管理信息制度論文

摘要:這篇論文主要講述關於圖書管理信息系統的信息。在本論文中講述的圖書管理信息系統擁有一個交互式的界面、邏輯的數據庫結構。許多涉及到圖書、圖書借閲者的信息的功能在本系統中都有實現。例如,你可以將新書的信息插入到數據庫的圖書基本情況表裏;還可以對已經插入的關於圖書的信息進行修改;更重要的是,圖書借閲者可以從圖書館裏借閲書籍。

小議DELPHI圖書管理信息制度論文

關鍵詞:圖書、圖書借閲者、管理系統、Delphi7.0、SQLServer2000數據庫

一、前言

隨着人類社會的發展,人類對知識的需求也在不斷增長。雖然人們可以從互聯網上獲得知識,但書本閲讀起來更加方便,所以,在這種形勢下,書籍就漸漸地成為人們獲取並增長知識的主要途徑,而圖書館就理所當然的在人們的生活中佔據了一定的位置,如何科學合理的管理圖書不僅關係到讀者求知的方便程度,也關係到圖書館的發展,面對龐大的信息量,就需要有圖書管理系統來提高圖書管理工作的效率。傳統手工的圖書管理,就是對圖書的編目、查詢及讀者信息的管理,核心是圖書的信息管理,包括圖書的採購、編目、下架、遺失等。圖書的管理是一個工作量大而且較為繁雜的工作,執行效率低並且易於出錯。通過開發這樣的系統,我們可以做到圖書規範管理和快速查詢,從而減少了管理方面的工作量;可以實現圖書管理的系統化和自動化,提高管理效率,降低管理成本。因此,開發一套完善的圖書管理系統,是必不可少的了。

本系統的開發不僅讓圖書合理規範的管理,同時也方便借閲者快速的查詢。對圖書信息進行圖書入庫、借閲登記、借閲查詢、過期提示等這些日常業務的管理。

(一)系統開發工具

本系統的開發工具是用面向對象的Delphi進行設計的。Delphi是著名的Borland公司開發的可視化軟件開發環境,是面向對象的可視化軟件開發平台,它提供了大量VCL(可視化組件庫)組件,具有強大的數據庫開發和網絡編程能力,極大地提高了應用系統的開發速度,是目前最優秀的軟件開發工具之一。Delphi語言具有簡單、高效和功能強大等特點,具備豐富的環境、友好的界面、高速的編譯器、強大的數據庫支持,提供了方便、快捷的Windows應用程序開發工具。對於廣大的程序開發人員而言,使用Delphi開發應用軟件,無疑會大大提高編程效率。

Delphi最顯著的特點就是高效性和穩定性,主要體現在以下4個方面:

(1)可視化的開發環境的性能。

(2)編譯器的速度和已編譯代碼的效率。

(3)程式語言的功能及複雜性。

(4)豐富的VCL。

Delphi應用程序主要是圍繞着窗體和單元兩個部分進行,窗體(Form)是與用户直接可見的對象,Delphi的應用程序由多個窗體(Form)組成,與之相對應的是單元,每個單元對應一個Form程序區段,包含事件處理程序、過程和函數。

(二)數據庫選擇

圖書管理信息系統是一個小型的數據庫系統。我選擇MicrosoftSQLServer2000數據庫進行開發。MicrosoftSQLServer是一種關係型數據庫管理系統,具有使用方便、學習簡單、易學易用、安全性高等特點。關係模型是當前最受歡迎的數據存儲和數據檢索模型。所有的數據處理都涉及存儲和檢索數據的操作,MicrosoftSQLServer是作為一個組織內部的全部數據的中心存儲器來設計的。組織中數據的關鍵特徵強調了這一方法的重要性。MicrosoftSQLServer在其網絡組件的頂部添加了服務特有的中介組件:開放式數據庫連接(OpenDatabaseConnectivity,ODBC)能使不同客户機進行相互連接,而不要求變更服務器及其他現存客户應用程序。

二、數據庫應用系統開發基礎

在數據庫應用系統開發之前,對開發數據庫的基本概念應當瞭解,對數據庫的結構、開發數據庫應用程序的步驟、開發體系及方法都應當有相當清晰的瞭解和認識。數據庫應用系統開發的目標是建立一個滿足用户長期需求的產品。開發的主要過程為:理解並分析用户的需求,然後把它們轉變為有效的數據庫設計。把設計轉變為實際的數據庫,並且這些數據庫帶有功能完備、高效能的應用。

數據庫由DBMS(數據庫管理系統)處理,DBMS則由開發人員和用户通過應用程序直接或間接地使用。它主要包括四個要素:用户數據、元數據、索引和應用元數據。

(一)用户數據

目前,大多數主流數據庫管理系統把用户數據表示為關係。現在把關係看作數據表。表的列包含域或屬性,表的行包含對應業務環境中實體的記錄。並非所有的關係都同樣符合要求,有些關係比其它關係更結構化一些。

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

user(借書證號,姓名,性別,身份編號,身份證,聯繫電話,)

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

(二)元數據

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

在表中存儲元數據不僅對DBMS是有效的,對用户也是方便的,因為他們可以使用與查詢用户數據同樣的查詢工具來查詢元數據。

(三)索引

第三種類型的數據改進了數據庫的性能和可訪問性,儘管有時也採用其他類型的數據結構,如鏈表,但主要還是索引。索引可以用來排序和快速訪問數據。下面以我所設計的圖書管理信息系統中的book表為例來説明。

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

索引用於快速訪問數據。例如一個用户只想訪問book表中‘圖書類別’值為“01”的那些圖書,如果沒有索引,則必須搜索整個源表;但有了索引之後,可以找到索引條目,並使用它來挑選所有合適的行。索引對排序和查找是有幫助的,但要付出代價。book表中的行每次改變時,索引也必須改變,這意味着索引並非隨意的,應該在真正需要時保存。

(四)應用元數據

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

我所選用的MSSQLServer2000中就支持窗體、存儲過程等應用元數據。

三、圖書系統設計分析

(一)需求分析

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

圖書借閲者可直接查看圖書館圖書情況,如果圖書借閲者根據本人借書證號和密碼登錄系統,還可以進行本人借書情況的查詢和維護部分個人信息,但是不能查詢和維護其他借閲者的借書情況和個人信息,這不但滿足了圖書借閲者的要求,還保護了圖書借閲者的個人隱私。

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

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

(二)系統數據庫的概念設計

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

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

1、設計局部ER模式

實體和屬性的定義:

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

借閲者(借書證號,姓名,性別,身份證,聯繫電話,密碼)

身份(身份編號,身份描述,最大借閲數)

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

ER模型的“聯繫”用於刻畫實體之間的關聯。一種完整的方式是對局部結構中任意兩個實體類型,依據需求分析的結果,考察局部結構中任意兩個實體類型之間是否存在聯繫。若有聯繫,進一步確定是1:N,M:N,還是1:1等。還要考察一個實體類型內部是否存在聯繫,兩個實體類型之間是否存在聯繫,多個實體類型之間是否存在聯繫等等。分析如下:

1)一個借閲者(用户)只能具有一種身份,而一種身份可被多個借閲者所具有;

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

3)一個用户可以借閲多本不同的書,而一本書也可以被多個不同的用户所借閲。

2、設計全局ER模式

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

1)確定公共實體類型

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

2)局部ER模式的合併

合併的原則是:首先進行兩兩合併;先和合並那些現實世界中有聯繫的局部結構;合併從公共實體類型開始,最後再加入獨立的局部結構。

3)消除衝突

衝突分為三類:屬性衝突、結構衝突、命名衝突。設計全局ER模式的目的不在於把若干局部ER模式形式上合併為一個ER模式,而在於消除衝突使之成為能夠被所有用户共同理解和接受的同一概念模型。

3、全局ER模式的優化

在得到全局ER模式後,為了提高數據庫系統的效率,還應進一步依據處理需求對ER模式進行優化。一個好的全局ER模式,除能準確、全面地反映用户功能需求外,還應滿足下列條件:實體類型的個數要儘可能的少;實體類型所含屬性個數儘可能少;實體類型間聯繫無宂餘。

(三)系統數據庫的邏輯設計

由於概念設計的結果是ER圖,DBMS一般採用關係型(MSSQLServer就是關係型的DBMS),因此數據庫的邏輯設計過程就是把ER圖轉化為關係模式的過程。由於關係模型所具有的優點,邏輯設計可以充分運用關係數據庫規範化理論,使設計過程形式化地進行。設計結果是一組關係模式的定義。

1、導出初始關係模式

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

2、產生子模式

子模式是用户所用到的那部分數據的描述。除了指出用户用到的數據外,還應指出數據與概念模式中相應數據的聯繫,即指出概念模式與子模式之間的對應性。

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

3、特別的兩個關係模式:

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

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

(四)系統數據庫的物理實現

我選用MicrosoftSQLServer2000數據庫來進行數據庫的物理實現。

四、圖書系統應用程序設計

程序的結構設計如圖所示,該程序由11個窗體組成,它們是數據模塊窗體,用户登錄窗口的窗體,圖書館管理系統界面窗體,修改圖書記錄的窗體,修改供閲者記錄的窗體,修改密碼設置的窗體,生成預約圖書報表的窗體,生成催還圖書報表的窗體,圖書館服務系統界面窗體,查詢、借閲、預約圖書的窗體以及查詢個人借閲信息和歸還已借閲圖書的窗體。

(一)系統窗體模塊

(二)數據模塊窗體的設置

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

但在開發這個系統時,在開始使用數據模塊過程中卻碰到了一些問題。並且考慮這個系統使用到的TADOQuery控件比較多,如果使用數據控件可能會帶來管理上的麻煩,如弄混各個數據控件的作用。還考慮到使用動態生成ADOQuery可能會更節省資源。所以在本系統中,開始做的第一個模塊“借閲者個人模塊”中還使用了數據模塊。但在後面做的兩個模塊中大多都是用動態生成ADOQuery來實現的。並且由於SQL語句是動態加入的所以datamodule中的控件也不會多。

(三)啟動畫面的實現

啟動畫面是為了給用户一個良好的印像,加深軟件的親和力,在Form1窗體中加入了Image和Time組件。

(四)用户登錄窗體的實現

本窗體是為三種不同的用户(圖書借閲者、圖書館工作人員和圖書館管理人員)提供選擇以進入不同的模塊,滿足不同用户的需求。

(五)用户密碼論證窗體的實現

本窗體是為了讓工作人員或圖書館管理員按照用户名和密碼進行登錄,並且跟據用户名檢查Keyer表中的“權限”字段,以分辯進入圖書館管理人員模塊還是進入工作人員模塊。

以下為不同用户功能模塊的實現。

(六)供閲者服務模塊的實現

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

1、圖書查詢功能的實現

在系統中任何人都有權限使用查詢功能,不做任何限制。由於實現的查詢功能有多種,如按圖書編號、圖書名稱等字段進行完全體配查找和部分體配的模糊查找,還有按多個條件進行邏輯與或是邏輯或的多條件查找。

2、供閲者登錄功能的實現

這個功能的實現與工作人員和管理人員登錄功能實現的方法大致一樣,是從User表中查到到借閲證號與密碼,看與用户輸入的是否一致。如果一致用户就可查看自已的借閲情況並維護自己的部分信息。

3、借閲者借閲情況功能的實現

當借閲者正確登錄到系統後,用户能查看到自已的借閲情況。在此係統中,信息的顯示一般用ListView來實現,只在較少的情況下用到了DBgrid,因為ListView更好實現,並能使信息數據對用户的完全分離。

借閲者對借閲情況的查詢有多種方式,但主要是根椐借閲天數來查詢。

4、供閲者個人資料維護功能的實現

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

(七)工作人員――圖書借閲/歸還模塊的實現

1、工作人員進行圖書借閲功能的實現

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

在借閲完成後會生借閲報表以便借閲者檢查和確認,實現過程比較簡單。

2、工作人員圖書歸還功能的實現

在此功能中,工作人員根據借閲者的借書證號和歸還的圖書編號進行圖書的歸還工作。並且根據現實中可能會出現的只知圖書名不知圖書編號的歸還情況,所以加入了按書籍名稱進行歸還的功能。這個功能是圖書借閲功能中把圖書名稱搜索轉換成圖書編號的一種改進方法。歸還完成後,同樣會打印出歸還報表以便用户檢查和確認。

(八)圖書館管理員模塊和管理員圖書管理功能的實現

在這個功能模塊中可以在(圖書編號)中輸入圖書編號,點查找按鈕後就會在各個相應的組件中顯示出信息,或按圖書名稱模糊查找到所要的記錄,在各個相應的組件中顯示第一條記錄的信息,也可在下端的ListView組件中點擊某一條記錄,在各個相應的組件中也會顯示所選記錄的信息。在入庫功能中只要不是相同的圖書編號並且帶*號提示的字段不為空就可插入新的圖書記錄。刪除則刪除那些Book表中的圖書記錄,如果借出還可依用户要求連帶刪除owner表中的記錄。因為圖書修改與圖書入庫的功能與工作人員記錄修改和工作人員記錄添加的實現過程一樣。

1、圖書館管理員管理功能的實現

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

如果選中ListView中的記錄,則在右邊相應的組件中顯示出信息,並且管理員還可對這些記錄進行修改或加入新的記錄。也可以點刪除按鈕刪除選中的一條或多條記錄。刪除功能與圖書記錄的刪除一般。

2、圖書館管理員修改圖書類別及統計功能的實現

在此窗體中能對圖書的類別進行刪除,添加和修改,此模塊功能的實現過程與圖書記錄的刪除,添加和修改一樣的,但是這個窗體還能跟據圖書類別進行統計,還可根據Book表和owner表統計出圖書總數目,庫存圖書數目,借出圖書數目及借閲過期的圖書數目。

3、圖書館管理員借閲者管理功能的實現

查詢借閲者可根據借閲者的借書證號或姓名或身份編號查找到借閲者的信息,也可以實行模糊查找,這個功能的實現與前面圖書查找的實現過程一樣。

4、圖書館維護借閲者管理功能的實現

此功能能對借閲者信息進行查看添加、刪除、修改。

5、圖書館身份維護功能的實現

這一部分是對借閲者身份進行管理,能對身份進行添加、刪除、修改。並且同樣的在listview中選中某條或多條記錄時會在相應的右邊的組件中顯示出信息。

6、圖書館借閲者統計功能的實現

此功能按借閲者身份進行統計,得出具有某種身份的借閲者總數。

7、圖書館統計借閲過期記錄功能的實現

此報表能顯示按借書證號升序排列的借閲信息超過限定時限的信息。

五、結論

通過本次畢業設計我學到了不少新的東西。在開發的過程中,很多看起來簡單的問題實際動手起來卻不是那麼回事,往往有這樣或那樣的錯誤,需要我一步一步地去解決,我查閲了大量的資料,向老師請教,學到了不少課本上學不到的知識,也發現了大量的問題,有些在設計過程中已經解決,有些還有待今後慢慢學習。

最後,向在此次畢業設計寫作過程中給與我幫助的指導教師表示感謝,也感謝她給予我的這次機會,謝謝!

參考文獻:

[1]李炎清編著,畢業論文寫作與範例[M],廈門大學出版社,2007

[2]韓強編著,SQLSERVER2000程序員手冊,機械工業出版社,2000

[3]蔡宏編著,開發技術原理與實踐教程,電子工業出版社,2007

[4]薩師煊、王珊編著,數據庫系統概論,高等教育出版社,2000

[5]楊長春主編,DELPHI程序設計教程,清華大學出版社,2008

[6]李之明,高玉編著,Delphi7.0組件經典解析,中國鐵道出版社,2003

  • 文章版權屬於文章作者所有,轉載請註明 https://wenshudu.com/shiyongfanwen/lunwen/z2g9oq.html
專題