【正文】
“出版社管理 ”用于設(shè)置圖書所屬出版社的基礎(chǔ)信息,內(nèi)容包括出版社編號, ISBN、出版社名稱等。 “圖書注銷 ”用于注銷、報廢圖書,將圖書檔案的 “是否注銷 ”字段設(shè)置為 1,被注銷的圖書不可以再借出。 “圖書驗收 ”用于征訂的圖書到貨后驗收 ,增加圖書的庫存。 期刊管理 “期刊管理 ”用于管理期刊相關(guān)的信息,包含的功能模塊如圖 35期刊管理 “和圖書管理 ”的功能是一致的,只是期刊的檔案內(nèi)容和流通管理方式和圖書有所區(qū)別。 圖 35 期刊管理功能模塊 圖書 流通 管理 圖書流通管理用于管理圖書流通環(huán)節(jié)相關(guān)的操作,包含如圖 36 所示的功能模塊。 圖書歸還用于登記讀者到期圖書的續(xù)借記錄。 圖書丟失用于報失圖書,內(nèi)容包括丟失編號、圖書編號、讀者編號、賠償金額、操作時間、操作員等。 期刊流通管理 期刊流通管理實際的功能和圖書流通管理是一致的,只是管理的對象是期刊,包含的功能模塊如圖 37 所示。 圖 38 統(tǒng)計分析功能模塊 統(tǒng)計分析管理 圖書借閱查詢 圖書歸還查詢 圖書超期查詢 圖書注銷查詢 圖書訂購查詢 圖書借閱排行 讀者檔案查詢 其他查詢 期刊流通管理 期刊借閱 期刊歸還 期刊續(xù)借 期刊預(yù)約 期刊丟失 期刊罰款 哈爾濱理工大學(xué)學(xué)士學(xué)位論文 14 第 4章 圖書館 管理系統(tǒng) 數(shù)據(jù)庫 分析 數(shù)據(jù)庫 數(shù)據(jù)庫由 DBMS(數(shù)據(jù)庫管理系統(tǒng))處理, DBMS 則由開發(fā)人員和用戶通過應(yīng)用程序直接或間接地使用。 用戶數(shù)據(jù) 目前,大多數(shù)主流數(shù)據(jù)庫管理系統(tǒng)把用戶數(shù)據(jù)表示為關(guān)系。表的列包含域或?qū)傩裕淼男邪瑢?yīng)業(yè)務(wù)環(huán)境中的實體的記錄。第二章描述了一個用以產(chǎn)生良好結(jié)構(gòu)關(guān)系的過程,稱作規(guī)范化。因為 DBMS產(chǎn)品是用來存儲和操縱表的,以大多數(shù)產(chǎn)品把元數(shù)據(jù)以表的形式存儲,有時稱作系統(tǒng)表。在表中存儲元數(shù)據(jù)不僅對 DBMS 是有效的,對用戶也是方便的 ,因為他們可以使用與查詢用戶數(shù)據(jù)同樣的查詢工具來查詢元數(shù)據(jù)。索引 可以用來排序和快速訪問數(shù)據(jù)。并非所有的 DBMS都支持應(yīng)用組件,支持組件的 DBMS 也不一定把全部組件的結(jié)構(gòu)作為應(yīng)用元數(shù)據(jù)存儲在數(shù)據(jù)庫中。一般來說,數(shù)據(jù)庫開發(fā)人員和用戶都不直接訪問應(yīng)用元數(shù)據(jù),想反,他們通過 DBMS 中的工具來處理這些數(shù)據(jù)。 DBMS是數(shù)據(jù)庫系統(tǒng)的核心 組成部分。 DBMS 總是基于某種數(shù)據(jù)模型,可以把 DBMS 看成是某種數(shù)據(jù)模型在計算機(jī)系統(tǒng)上的具體實現(xiàn)。數(shù)據(jù)庫模式是一種設(shè)計,數(shù)據(jù)庫和應(yīng)用正是建立在此基礎(chǔ)上的。必須為每一個表的每一列確定域。 數(shù)據(jù)庫模式的最后一個要素 是業(yè)務(wù)規(guī)則,它是對需要反映在數(shù)據(jù)庫和數(shù)據(jù)庫應(yīng)用程序中的業(yè)務(wù)活動的約束。不管無效的數(shù)據(jù)變化請求是來自窗體的用戶、查詢 /修改請求還是應(yīng)用程序 DBMS 都應(yīng)該拒絕。在某些情況下, DBMS 產(chǎn)品不具備實施必要業(yè)務(wù)規(guī)則的能力,必須以代碼形式把它們編入應(yīng)用程序。在各行各業(yè)中離不開信息處理,這正是計算機(jī)被廣泛應(yīng)用于信息管 理系統(tǒng)的環(huán)境。使用計算機(jī)進(jìn)行信息控制,不僅提高了工作效率,而且大大的提高了其安全性。計算機(jī)進(jìn)行信息管理與信息管理系統(tǒng)的開發(fā)密切相關(guān),系統(tǒng)的開發(fā)是系統(tǒng)管理的前提。 圖書館作為一種信息資源的集散地,圖書和用戶借閱資料繁多,包含很多的信息數(shù)據(jù)的管理,現(xiàn)今,有很多的圖書館都是初步開始使用,甚至尚未使用計算機(jī)進(jìn)行信息管理。數(shù)據(jù)信息處理工作量大,容易出錯;由于數(shù)據(jù)繁多,容易丟失,且不易查找。盡管有的圖書館有計算機(jī),但是尚未用于信息管理,沒有發(fā)揮它的效力,資源閑置比較突出,這就是管理信息系統(tǒng)的開發(fā)的基本環(huán)境。圖書館采取手工方式對圖書借閱情況進(jìn)行人工管理,由于信息比 較多,圖書借閱信息的管理工作混亂而又復(fù)雜;一般借閱情況是記錄在借書證上,圖書的數(shù)目和內(nèi)容記錄在文件中,圖書館的工作人員和管理員也只是當(dāng)時對它比較清楚,時間長,如再要進(jìn)行查詢,就得在眾多的資料中翻閱、查找了,造成查詢費(fèi)時、費(fèi)力。 基于這此問題,我認(rèn)為有必要建立一個圖書管理系統(tǒng),使圖書管理工作規(guī)范化,系統(tǒng)化,程序化,避免圖書管理的隨意性,提高信息處理的速度和準(zhǔn)確性,能夠及時、準(zhǔn)確、有效的查詢和修改圖書情況。圖 41為圖書館管理系統(tǒng)關(guān)鍵實體的 ER 圖。 哈爾濱理工大學(xué)學(xué)士學(xué)位論文 16 圖 41 系統(tǒng) ER 圖 圖書館管理系統(tǒng) 數(shù)據(jù)表 清單 下面我們僅列出一些重要表的名稱及其用途供參考。其中每張表所包含的字段讀者可以自己查看建庫腳本和前面的需求分析。下面我們將實例說明如何利用 Microsoft 完成系統(tǒng)的開發(fā)。 圖 51 詳細(xì)介紹的功能模塊 系統(tǒng)流程圖 系統(tǒng)流程圖如圖 52 所示。系統(tǒng)共需要 8 張表,用途分 別如表 61 所示。完成數(shù)據(jù)庫的設(shè) 計。 ALTER TABLE [dbo].[圖書信息 ] WITH NOCHECK ADD CONSTRAINT [PK_圖書信息 ] PRIMARY KEY CLUSTERED ( [編號 ] ) ON [PRIMARY] GO ALTER TABLE [dbo].[圖書借閱 ] WITH NOCHECK ADD CONSTRAINT [PK_圖書借閱 ] PRIMARY KEY CLUSTERED ( [借閱編號 ] ) ON [PRIMARY] GO ALTER TABLE [dbo].[圖書歸還 ] WITH NOCHECK ADD CONSTRAINT [PK_圖書歸還 ] PRIMARY KEY CLUSTERED ( [歸還編號 ] ) ON [PRIMARY] GO 哈爾濱理工大學(xué)學(xué)士學(xué)位論文 23 ALTER TABLE [dbo].[圖書征訂 ] WITH NOCHECK ADD CONSTRAINT [PK_圖書征訂 ] PRIMARY KEY CLUSTERED ( [征訂編號 ] ) ON [PRIMARY] GO ALTER TABLE [dbo].[圖書注銷 ] WITH NOCHECK ADD CONSTRAINT [PK_圖書注銷 ] PRIMARY KEY CLUSTERED ( [注銷編號 ] ) ON [PRIMARY] GO ALTER TABLE [dbo].[圖書類型 ] WITH NOCHECK ADD CONSTRAINT [PK_圖書類型 ] PRIMARY KEY CLUSTERED ( [類型編號 ] ) ON [PRIMARY] GO ALTER TABLE [dbo].[圖書罰款 ] WITH NOCHECK ADD CONSTRAINT [PK_圖書罰款 ] PRIMARY KEY CLUSTERED ( [罰款編號 ] ) ON [PRIMARY] GO SET QUOTED_IDENTIFIER ON GO SET ANSI_NULLS ON GO 創(chuàng)建存儲過程 系統(tǒng)使用了 “sl_圖書征訂 ”, “sf_圖書借閱 ”, “sf_圖書歸還 ”三個存儲過程,實現(xiàn)的功能分別為征訂圖書入庫、借閱圖書出庫和歸還圖書入庫,產(chǎn)生罰款信息等功能。 create proc sf_圖書借閱 as begin tran 借書出庫 ,減少圖書庫存量 update 圖書信息 set 現(xiàn)存量 = isnull(現(xiàn)存量 ,0) 1 from 圖書信息 as a, 圖書借閱 as b where = and =39。 哈爾濱理工大學(xué)學(xué)士學(xué)位論文 24 設(shè)置借閱狀態(tài) update 圖書借閱 set 續(xù)借次數(shù) =0,狀態(tài) =39。 where 狀態(tài) =39。 mit GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_NULLS ON GO create proc sf_圖書歸還 借閱編號 int, 罰款金額 money as begin tran 借書出庫 ,減少圖書庫存量 update 圖書信息 set 現(xiàn)存量 = isnull(現(xiàn)存量 ,0) + 1 from 圖書信息 as a, 圖書借閱 as b where = and =借閱編號 如果罰金不是 0, 在 圖書罰款 中產(chǎn)生記錄 if 罰款金額 0 insert into 圖書罰款 (圖書編號 ,讀者編號 ,罰款日期 ,應(yīng)罰金額 ,是否交款 ) select 圖書編號 ,讀者編號 ,getdate(), 罰款金額 , 0 from 圖書借閱 where 借閱編號 =借閱編號 插入圖書歸還表 insert into 圖書歸還 (圖書編號 ,讀者編號 ,歸還時間 ) select 圖書編號 ,讀者編號 ,getdate() from 圖書借閱 where 借閱編號 =借閱編號 設(shè)置借閱狀態(tài) update 圖書借閱 set 狀態(tài) =39。 where 借閱編號 =借閱編號 mit GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO 哈爾濱理工大學(xué)學(xué)士學(xué)位論文 25 SET ANSI_NULLS ON GO create proc sf_圖書征訂 as begin tran 驗收入庫 ,增加圖書庫存量 update 圖書信息 set 庫存總量 = isnull(庫存 總量 ,0) + , 現(xiàn)存量 = isnull(現(xiàn)存量 ,0) + , 入庫時間 = 圖書信息 as a, 圖書征訂 as b where = and =0 設(shè)置圖書征訂記錄的標(biāo)志 ,標(biāo)志為已驗收 update 圖書征訂 set 驗收日期 =getdate(), 是否驗收 =1 where 是否驗收 =0 mit GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO 哈爾濱理工大學(xué)學(xué)士學(xué)位論文 26 第 7章 程序開發(fā) 程序結(jié)構(gòu)仍然為 MDI 模式,這種開發(fā)模式結(jié)構(gòu)清楚簡單,容易理解,每一個功能對應(yīng)一個窗體 程序運(yùn)行結(jié)果 本程序運(yùn)行后的效果如圖 71 所示。 圖 71 實例運(yùn)行效果 [讀者管理 ]讀者類別設(shè)置菜單命令,進(jìn)入讀者類別設(shè)置功能窗體,在其中管理讀者的類別信息,如圖 72所示。這和我們在實際中遇到的圖書館的管理制度是非常類似的。單擊刪除按鈕并選確定按鈕,即可刪除某條記錄。 哈爾濱理工大學(xué)學(xué)士學(xué)位論文 27 圖 72 讀者類型設(shè)置功能窗體 置后,選擇讀者管理讀者檔案管理菜單命令,即可進(jìn)入讀者檔案管理子窗體,該窗體主要完成對各個讀者基本信息的設(shè)定,如下圖 73 所示。在編輯狀態(tài)下,可以從窗體下方的面板中修改讀者的餓一些信息。在單擊工具欄中的新增按鈕后,軟件會根據(jù)當(dāng)前數(shù)據(jù)中的讀者的編號情況自動生成一個 4位的新編號,以免編號重復(fù),此時即可編輯要新增的讀者的信息,需要注意的是,該編號并不顯示在窗體中,而是自動保存在數(shù)據(jù)表中,該功能和SQL server 數(shù)據(jù)表的自動增量選項有關(guān)。選擇圖書管理圖書類別設(shè)置菜單命令,就可以進(jìn)入圖書類別設(shè)置功能窗體,該窗體的基本功能和讀者類別哈爾濱理工大學(xué)學(xué)士學(xué)位論文 28 設(shè)置窗體類似,只不過設(shè)置的是圖書的類別信息。 圖 74 圖書類別設(shè)置功能窗體 ,則可以進(jìn)入圖書信息的設(shè)置和管理窗口,見圖75,在這個窗口中,可以對圖書館所藏有的所有圖書的信息進(jìn)行管理。 圖 75 圖書信息管理功能 ,就可以實際進(jìn)行圖書的借閱,歸還罰款等一系列了。單擊工具欄中的新增按鈕,系統(tǒng)將自動計算新的征訂編號以免新增加的圖書增訂編號與原有的征訂圖書定單重復(fù),在單擊窗體下部選區(qū)中的有放大鏡標(biāo)志的按鈕,即可彈出一個新的窗體,在其中選擇要征訂的圖書名,雙擊字段即可將該圖書的編號和書名添加到圖書征訂窗體下部選區(qū)的編輯框中。整個過程如下圖76 和圖 77 所示。我們在程序使用中使用從文本框中手工輸入讀者條紋碼或者編號并回車的方法來模擬上述的過程,如圖 78 所示。窗體下方則將顯示讀者已借出的數(shù)量和本次借書數(shù)量,如果兩者相加大于讀者所能允許借書的數(shù)量,軟 件將提示已達(dá)到借書極限并拒絕將新書的記錄添加到表中,如