數(shù)據(jù)庫應(yīng)用案例分析課件_第1頁
數(shù)據(jù)庫應(yīng)用案例分析課件_第2頁
數(shù)據(jù)庫應(yīng)用案例分析課件_第3頁
數(shù)據(jù)庫應(yīng)用案例分析課件_第4頁
數(shù)據(jù)庫應(yīng)用案例分析課件_第5頁
已閱讀5頁,還剩75頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

數(shù)據(jù)庫應(yīng)用案例分析第8章

圖書館管理信息系統(tǒng)學(xué)習(xí)目的與要求隨著圖書館管理要求的不斷提高,傳統(tǒng)的圖書管理已不再適用。因而現(xiàn)代圖書館的管理基本上都采用了計(jì)算機(jī)軟件進(jìn)行輔助管理,可大大提高效率。本章將以圖書管理信息系統(tǒng)案例為主線,介紹如何結(jié)合VisualBasic和Access數(shù)據(jù)庫開發(fā)數(shù)據(jù)庫應(yīng)用系統(tǒng),并講解典型圖書管理信息系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)。在該系統(tǒng)中,把前面幾章學(xué)習(xí)過的數(shù)據(jù)庫基礎(chǔ)知識(shí)進(jìn)行了綜合應(yīng)用。2第8章

圖書館管理信息系統(tǒng)學(xué)習(xí)目的與要求28.1

VisualBasic對(duì)數(shù)據(jù)庫開發(fā)的支持在VisualBasic開發(fā)環(huán)境中,提供了3種數(shù)據(jù)訪問方式:數(shù)據(jù)訪問對(duì)象(DAO)、遠(yuǎn)程數(shù)據(jù)對(duì)象(RDO)和ActiveX數(shù)據(jù)對(duì)象(ADO)。1.DAO(DataAccessObjects)DAO最適用于單系統(tǒng)應(yīng)用程序或在小范圍本地分布使用。其內(nèi)部已經(jīng)對(duì)Jet數(shù)據(jù)庫的訪問進(jìn)行了加速優(yōu)化,而且它使用起來也比較方便。2.RDO(RemoteDataObjects)遠(yuǎn)程數(shù)據(jù)對(duì)象是位于ODBCAPI之上的一個(gè)對(duì)象模型薄層,它依賴ODBCAPI、選定的ODBC驅(qū)動(dòng)程序以及后端數(shù)據(jù)庫引擎實(shí)現(xiàn)大部分的智能和功能,因此短小、快速、強(qiáng)健。3.ADO(ActiveXDataObject)ActiveX數(shù)據(jù)對(duì)象是基于全新的OLEDB技術(shù),OLEDB可對(duì)電子郵件、文本文件、復(fù)合文件、數(shù)據(jù)表等各種各樣的數(shù)據(jù)通過統(tǒng)一的接口進(jìn)行存取。38.1

VisualBasic對(duì)數(shù)據(jù)庫開發(fā)的支持在Vi8.1.1

ADO的編程過程ADO所提供的類和對(duì)象可以完成以下動(dòng)作。(1)連接(Connection)數(shù)據(jù)源,并可選擇開始一個(gè)事務(wù)。(2)可選擇創(chuàng)建表示SQL查詢命令(Command)的對(duì)象。(3)可選擇在SQL命令中將值作為變量參數(shù)。(4)執(zhí)行命令(Command、Connection或Recordset)。(5)如果命令以行返回,將行存儲(chǔ)在存儲(chǔ)對(duì)象中。(6)可選擇對(duì)數(shù)據(jù)進(jìn)行定位、檢查、操作和編輯。(7)適當(dāng)情況下,可以使用存儲(chǔ)對(duì)象中的變更對(duì)數(shù)據(jù)源進(jìn)行更新。(8)可選擇在事務(wù)處理中嵌入更新數(shù)據(jù)。(9)在使用事務(wù)之后,可以接受或拒絕在完成事務(wù)之前所做的更改。(10)結(jié)束事務(wù)(Connection)。48.1.1

ADO的編程過程ADO所提供的類和對(duì)象可以完8.1.2

ADO的對(duì)象模型ADO對(duì)象模型定義了一個(gè)可編程的分層對(duì)象集合,大體上可分為7個(gè)層次。其中由3個(gè)對(duì)象成員Connection(連接)、Command(命令)和Recordset(記錄集),以及幾個(gè)集合對(duì)象Errors(錯(cuò)誤)、Parameters(參數(shù))和Fields(字段)等所組成。1.Connection對(duì)象Connection對(duì)象是交換數(shù)據(jù)所必需的環(huán)境,通過Connection對(duì)象可使應(yīng)用程序訪問數(shù)據(jù)源。Connection對(duì)象代表與數(shù)據(jù)源進(jìn)行的惟一會(huì)話。如果是客戶端/服務(wù)器數(shù)據(jù)庫系統(tǒng),該對(duì)象可以等價(jià)于到服務(wù)器的實(shí)際網(wǎng)絡(luò)連接。2.Command對(duì)象使用Command對(duì)象可以查詢數(shù)據(jù)庫并返回Recordset對(duì)象中的記錄,以便執(zhí)行大量操作或處理數(shù)據(jù)庫結(jié)構(gòu)。該對(duì)象的功能取決于其提供者的功能。3.Recordset對(duì)象Recordset對(duì)象表示的是來自基本表或命令執(zhí)行結(jié)果的記錄集合,它可以操縱來自提供者的數(shù)據(jù)。在使用ADO時(shí),通過Recordset對(duì)象幾乎可對(duì)所有數(shù)據(jù)進(jìn)行操作。而所有Recordset對(duì)象均使用記錄(行)和字段(列)進(jìn)行構(gòu)造。4.Error集合該對(duì)象包含與單個(gè)操作有關(guān)的數(shù)據(jù)訪問錯(cuò)誤的詳細(xì)信息。任何涉及ADO對(duì)象的操作都可能產(chǎn)生一個(gè)或多個(gè)提供者的錯(cuò)誤。5.Parameter集合Command對(duì)象具有由Parameter對(duì)象組成的Parameters集合。6.Field集合Recordset對(duì)象含有由Field對(duì)象組成的Fields集合。每個(gè)Field對(duì)象對(duì)應(yīng)于Recordset中的一列。7.Property(屬性)ADO對(duì)象有兩種類型的屬性:內(nèi)置屬性和動(dòng)態(tài)屬性。58.1.2

ADO的對(duì)象模型ADO對(duì)象模型定義了一個(gè)可編8.1.3

ADO數(shù)據(jù)控件ADO數(shù)據(jù)控件是ActiveX外部控件,它使用MicrosoftActiveX數(shù)據(jù)對(duì)象(ADO)來快速建立數(shù)據(jù)綁定控件和數(shù)據(jù)源之間的連接。1.添加ADO數(shù)據(jù)控件2.ADO數(shù)據(jù)控件的屬性1)ConnectionString屬性ADO控件使用ConnectionString屬性與數(shù)據(jù)庫建立連接。2)RecordSource屬性RecordSource確定具體可訪問的數(shù)據(jù),這些數(shù)據(jù)構(gòu)成記錄集對(duì)象Recordset。該屬性值可以是數(shù)據(jù)庫中的單個(gè)表名、一個(gè)用于查詢的存儲(chǔ),也可以是使用SQL查詢語言的一個(gè)查詢字符串3)ConnectionTimeout屬性該屬性用于數(shù)據(jù)連接的超時(shí)設(shè)置,若在指定時(shí)間內(nèi)連接不成功則顯示超時(shí)信息。時(shí)間單位為秒。4)MaxRecords屬性定義從一個(gè)查詢中最多能返回的記錄數(shù)。如果設(shè)置為0,則表示沒有限制最多返回的記錄數(shù)。5)BOFAction該屬性用于設(shè)置當(dāng)ADO數(shù)據(jù)控件將當(dāng)前記錄指針移動(dòng)到BOF時(shí),ADO數(shù)據(jù)控件采取的操作。6)EOFAction該屬性用于設(shè)置當(dāng)ADO數(shù)據(jù)控件將當(dāng)前記錄指針移動(dòng)到EOF時(shí),ADO數(shù)據(jù)控件采取的操作。7)Caption屬性設(shè)置顯示在ADO控件上的內(nèi)容。68.1.3

ADO數(shù)據(jù)控件ADO數(shù)據(jù)控件是ActiveX8.1.3

ADO數(shù)據(jù)控件3.ADO數(shù)據(jù)控件的方法數(shù)據(jù)控件的內(nèi)置功能很多,可在代碼中用數(shù)據(jù)控件的方法訪問數(shù)據(jù)控件屬性。1)Refresh方法2)UpdateControls方法3)AddNew方法4)Move方法組5)UpdateBatch6)CancelUpdate方法78.1.3

ADO數(shù)據(jù)控件3.ADO數(shù)據(jù)控件的方法78.1.4

數(shù)據(jù)綁定控件數(shù)據(jù)邦定控件是用于顯示ADO控件的記錄集中字段的值的控件,并且可以通過邦定控件接受經(jīng)過編輯或添加的記錄。1.綁定控件的分類VisualBasic6.0版本中提供了許多綁定控件。這些綁定控件總體上可分為兩大類。1)內(nèi)部控件總共有7個(gè),分別是:TextBox(文本框)、Label(標(biāo)簽)、Image(圖像框)、PictureBox(圖片框)、ListBox(列表框)、ComboBox(組合框)、CheckBox(復(fù)選框)。2)外部控件RichText控件:用于格式文本的輸入和處理。MSChart控件:將數(shù)據(jù)圖形化顯示。MaskedEdit控件:提供受限制的數(shù)據(jù)輸入和格式化輸出。DataCombo控件:是一個(gè)數(shù)據(jù)綁定組合框,它自動(dòng)地由一個(gè)附加數(shù)據(jù)源中的一個(gè)字段充填;并且可選擇地更新另一個(gè)數(shù)據(jù)源的一個(gè)相關(guān)表中的一個(gè)字段。DataList控件:是一個(gè)數(shù)據(jù)綁定列表框,功能與DataCombo控件相同。DataGrid控件:用于顯示并允許對(duì)Recordset對(duì)象中代表記錄和字段的一系列行和列進(jìn)行數(shù)據(jù)操縱。DataRepeater控件:該控件的功能是作為數(shù)據(jù)綁定用戶控件的可滾動(dòng)的容器。每一個(gè)控件都作為“重復(fù)的”控件出現(xiàn)在自己所在的行里,使用戶能夠一次瀏覽多個(gè)數(shù)據(jù)綁定用戶控件。HierarchicalFlexGrid控件:用于對(duì)表格數(shù)據(jù)進(jìn)行顯示和操作。在對(duì)包含字符串和圖片的表格進(jìn)行分類、合并以及格式化時(shí),具有完全的靈活性。88.1.4

數(shù)據(jù)綁定控件數(shù)據(jù)邦定控件是用于顯示ADO控件8.1.4

數(shù)據(jù)綁定控件2.綁定控件的兩個(gè)屬性以上綁定控件均有兩個(gè)相同的屬性:DataSource屬性和DataField屬性。可以通過設(shè)置控件的這兩個(gè)屬性來使它成為ADO數(shù)據(jù)控件的數(shù)據(jù)綁定控件。1)DataSource屬性該屬性用來指定要與控件綁定的Data控件。在【屬性】對(duì)話框中選中該屬性,然后單擊其右邊的向下箭頭按鈕,可在下拉列表框中選擇當(dāng)前可用的Data控件。2)DataField屬性該屬性用來設(shè)置控件對(duì)應(yīng)的數(shù)據(jù)庫字段。在設(shè)置了DataSource屬性后,DataField屬性的下拉列表框中將列出可用的字段。98.1.4

數(shù)據(jù)綁定控件2.綁定控件的兩個(gè)屬性98.2

概述圖8.9所示的是一個(gè)典型的圖書管理信息系統(tǒng)的界面。圖書管理信息系統(tǒng)的主要功能包括:圖書庫存管理、管理員信息管理、借閱卡管理、圖書借閱管理和圖書返還管理。圖書庫存管理:是這個(gè)管理信息系統(tǒng)的核心部分,它必須提供添加、修改、查詢和刪除圖書等操作的功能。管理員信息管理:每個(gè)管理員只有憑分配的ID和密碼才能登錄圖書管理信息系統(tǒng),以避免非法使用該管理信息系統(tǒng)。此外,還能增加和刪除管理員和更改管理員的信息。借閱卡管理:包括新增、刪除、修改和查詢借閱卡信息等功能。圖書借閱管理:通過該功能把讀者和其借閱的書籍的信息保存下來。圖書返還管理:通過該功能可以記錄讀者還書的情況,并查詢?cè)撟x者所借圖書是否過期。108.2

概述圖8.9所示的是一個(gè)典型的圖書管理信8.3

需求分析需求分析是數(shù)據(jù)庫系統(tǒng)開發(fā)的第一步,也是最重要的一步。首先要通過對(duì)客戶調(diào)研來獲取需求,通過理解后嚴(yán)格定義該系統(tǒng)的需求規(guī)格說明書。本節(jié)中將需求分析分為兩個(gè)步驟來講解,分別是理解需求和分析需求。118.3

需求分析需求分析是數(shù)據(jù)庫系統(tǒng)開發(fā)的第一步,8.3.1

理解需求理解需求是設(shè)計(jì)圖書管理信息系統(tǒng)的前提,開發(fā)人員只有在同用戶充分的溝通,并理解了用戶的真正需求才能開始設(shè)計(jì)系統(tǒng)。由于業(yè)務(wù)的需要和保密性,也為了便于管理,管理員用戶應(yīng)該具有不同的等級(jí),即不同的權(quán)限。按等級(jí)分為兩個(gè),超級(jí)管理員用戶和一般管理員用戶。超級(jí)管理員用戶可以查詢、添加、修改和刪除一般管理員的記錄,而一般管理員用戶只能查詢。通過該系統(tǒng)可以建立讀者的信息,主要為借閱卡號(hào)、姓名、性別、年齡和系別等信息。一般管理員可以新增、修改讀者信息和注銷借閱卡。通過該系統(tǒng)一般管理員可以對(duì)擁有借閱卡的用戶辦理借書、還書業(yè)務(wù)。通過該系統(tǒng)一般管理員可以統(tǒng)計(jì)所有借出的圖書的信息。該系統(tǒng)中,一般管理員可以修改圖書信息,新增和刪除圖書和圖書種類。通過該系統(tǒng)一般管理員可以為用戶查詢其所需借的圖書的在庫信息。系統(tǒng)可以運(yùn)行在Windows平臺(tái)上,系統(tǒng)還應(yīng)該有一個(gè)較好的圖形用戶界面。系統(tǒng)應(yīng)該有很好的可擴(kuò)展性。128.3.1

理解需求理解需求是設(shè)計(jì)圖書管理信息系統(tǒng)的前提8.3.2

分析需求需求分析就是描述系統(tǒng)的需求,通過定義系統(tǒng)中的關(guān)鍵類域來建立模型。分析的根本目的是在開發(fā)者和提出需求的用戶之間建立一種理解和溝通的機(jī)制。需求分析的第一步描述圖書管理信息系統(tǒng)的功能,即定義用例,以此確定系統(tǒng)的功能需求。圖書管理信息系統(tǒng)的用例分析主要找出系統(tǒng)中所有的用例,以及對(duì)用例進(jìn)行說明。在開發(fā)人員和用戶進(jìn)行討論后,可確定圖書管理信息系統(tǒng)的用例包括:管理員信息管理;圖書庫存信息管理;借閱卡信息管理;圖書借閱管理;圖書返還管理。圖書管理信息系統(tǒng)中可以把模塊分為3個(gè)功能集合。(1)基本信息管理功能集合。(2)借還管理功能集合。(3)用戶管理及權(quán)限功能集合。138.3.2

分析需求需求分析就是描述系統(tǒng)的需求,通過定義8.4

UML系統(tǒng)建模需求分析完成后,就可以對(duì)圖書管理信息系統(tǒng)進(jìn)行UML建模了。下面講解圖書管理信息系統(tǒng)的UML建模過程。這部分的內(nèi)容主要包括系統(tǒng)的用例分析、系統(tǒng)的類域分析和系統(tǒng)的設(shè)計(jì)。148.4

UML系統(tǒng)建模需求分析完成后,就可以對(duì)圖書管理信8.4.1

圖書館管理信息系統(tǒng)的用例分析使用RationalRose軟件進(jìn)行UML建模,其用例圖如圖8.12所示。該用例圖標(biāo)記了所有的用例,從中可以得知,圖書管理信息系統(tǒng)的角色可以劃分為兩類。一般管理員:可操作除管理員信息管理外所有的用例。超級(jí)管理員:可操作所有的用例。158.4.1

圖書館管理信息系統(tǒng)的用例分析使用Ration8.4.2

圖書館管理信息系統(tǒng)的域類分析域類分析的主要目的是確定系統(tǒng)中所用到的類以及這些類之間的關(guān)系,并得到類圖。由于域類分析是建立在用例分析基礎(chǔ)上的,因此需要根據(jù)上一節(jié)中的用例來確定圖書管理信息系統(tǒng)中所要用到的類及其關(guān)系,從而得到類圖,如圖8.13所示。168.4.2

圖書館管理信息系統(tǒng)的域類分析域類分析的主要目8.4.3

圖書館管理信息系統(tǒng)的設(shè)計(jì)使用UML對(duì)系統(tǒng)的動(dòng)態(tài)方面建模分5個(gè)部分:用例圖,活動(dòng)圖、狀態(tài)圖、時(shí)序圖和協(xié)作圖。這里我們需要使用狀態(tài)圖來描述對(duì)象的狀態(tài),以顯示對(duì)象的生命周期。在圖書管理信息系統(tǒng)中,狀態(tài)圖的類有借還信息(Borrow)和借閱卡信息(Reader)。這里把兩個(gè)狀態(tài)圖結(jié)合在一起,如圖8.14所示。借書管理的時(shí)序圖,如圖8.15所示。178.4.3

圖書館管理信息系統(tǒng)的設(shè)計(jì)使用UML對(duì)系統(tǒng)的動(dòng)8.5

系統(tǒng)配置一個(gè)好的數(shù)據(jù)庫系統(tǒng)必須有一個(gè)相對(duì)最優(yōu)的系統(tǒng)配置方案才能發(fā)揮這個(gè)數(shù)據(jù)庫系統(tǒng)的效率。系統(tǒng)配置主要依據(jù)是系統(tǒng)的吞吐量和系統(tǒng)對(duì)穩(wěn)定性的要求。此外,還需要考慮到用戶的維護(hù)水平和經(jīng)濟(jì)實(shí)力也是一個(gè)比較重要的方面。188.5

系統(tǒng)配置一個(gè)好的數(shù)據(jù)庫系統(tǒng)必須有一個(gè)相對(duì)最8.5.1

軟件配置軟件配置主要包括數(shù)據(jù)庫的選擇和操作系統(tǒng)的選擇。1.數(shù)據(jù)庫選擇2.操作系統(tǒng)選擇198.5.1

軟件配置軟件配置主要包括數(shù)據(jù)庫的選擇和操作系8.5.2

硬件配置圖書管理信息系統(tǒng)的硬件配置同樣需要根據(jù)用戶對(duì)系統(tǒng)的穩(wěn)定性要求、系統(tǒng)的容量、系統(tǒng)的吞吐量以及用戶的維護(hù)水平來確定,如表8.4所示。用

戶每秒數(shù)據(jù)庫并發(fā)數(shù)據(jù)訪問的記錄數(shù)穩(wěn)定性

要求維護(hù)

水平備選服務(wù)器中小學(xué)圖書館2~50低

差PentiumⅢ/256MB/20GB個(gè)人計(jì)算機(jī)高中/??圃盒D書館50~200中

一般XEON雙CPU/1GB/RAID53×72GB綜合性大學(xué)圖書館200~1000較高

較好XEON雙CPU/1GB/RAID56×72GB國家級(jí)圖書館1000以上高

好計(jì)算機(jī)集群/雙機(jī)熱備208.5.2

硬件配置圖書管理信息系統(tǒng)的硬件配置同樣需要根8.5.3

網(wǎng)絡(luò)配置該系統(tǒng)需要有能夠支持TCP/IP相關(guān)協(xié)議的局域網(wǎng)。可以根據(jù)用戶情況選擇不同的網(wǎng)絡(luò)配置,如表8.5所示。用

戶每秒數(shù)據(jù)庫并發(fā)數(shù)據(jù)訪問的記錄數(shù)穩(wěn)定性

要求維護(hù)

水平備選網(wǎng)絡(luò)方案中小學(xué)圖書館2~50低

差單機(jī)模式高中/??圃盒D書館50~200中

一般百兆模式綜合性大學(xué)圖書館200~1000較高

較好百兆模式國家級(jí)圖書館1000以上高

好千兆模式218.5.3

網(wǎng)絡(luò)配置該系統(tǒng)需要有能夠支持TCP/IP相關(guān)8.6

數(shù)據(jù)庫分析在UML建模工作完成后,可以說該系統(tǒng)的需求分析階段已經(jīng)完成。下面我們需要對(duì)數(shù)據(jù)庫進(jìn)行分析。數(shù)據(jù)庫分析是數(shù)據(jù)庫設(shè)計(jì)過程中一個(gè)重要環(huán)節(jié),它具體可分為兩部分:概念結(jié)構(gòu)設(shè)計(jì)和邏輯結(jié)構(gòu)設(shè)計(jì),也可以稱為E-R圖分析和表與字段的分析。228.6

數(shù)據(jù)庫分析在UML建模工作完成后,可以說該系統(tǒng)的8.6.1

E-R圖分析通過對(duì)前面建模的結(jié)果進(jìn)行分析,并設(shè)計(jì)其局部的E-R圖,對(duì)局部的E-R圖進(jìn)行消除沖和冗余,并集成為一個(gè)基本的E-R圖,如圖8.17所示。238.6.1

E-R圖分析通過對(duì)前面建模的結(jié)果進(jìn)行分析,并8.6.2

表與字段分析和數(shù)據(jù)庫建模表與字段分析,即邏輯結(jié)構(gòu)設(shè)計(jì)。它的目標(biāo)是在E-R圖的基礎(chǔ)上,確定系統(tǒng)所需要的表以及表中的字段,并給表和字段命名。同時(shí)還要確定每個(gè)字段的數(shù)據(jù)類型,將E-R圖轉(zhuǎn)換成具體數(shù)據(jù)庫可使用的數(shù)據(jù)模型。如圖8.18所示,帶下劃線且屬性前標(biāo)志為PK的為主鍵,其屬性前標(biāo)志為FK的為外鍵,黑體的表示不能為空。248.6.2

表與字段分析和數(shù)據(jù)庫建模表與字段分析,即邏輯8.7

數(shù)據(jù)庫設(shè)計(jì)8.7.1創(chuàng)建數(shù)據(jù)庫創(chuàng)建數(shù)據(jù)庫的步驟比較簡單,其步驟如下:(1)選擇【開始】|【程序】|

MicrosoftOffice

|

MicrosoftAccess命令,即可打開Access軟件。(2)打開MicrosoftAccess后,選擇菜單【文件】|【新建】命令,即可新建一個(gè)空數(shù)據(jù)庫文件,將新建的空數(shù)據(jù)庫保存為library.mdb。258.7

數(shù)據(jù)庫設(shè)計(jì)8.7.1創(chuàng)建數(shù)據(jù)庫258.7.2

創(chuàng)建表1.管理員信息表2.圖書類別信息表3.圖書信息表4.借閱卡信息表5.借還記錄表6.讀者類別表7.系別信息表268.7.2

創(chuàng)建表1.管理員信息表268.7.3

設(shè)定表關(guān)系當(dāng)表創(chuàng)建好以后,它們之間并沒有設(shè)定關(guān)系。在Access中可以設(shè)定表之間的關(guān)系。選擇【工具】|【關(guān)系】命令,可以打開如圖8.21所示的界面。選擇【關(guān)系】|【顯示表】命令,將彈出如圖8.22所示的對(duì)話框。選擇除Librarian外所有的表,單擊【添加】按鈕,將把表添加到編輯關(guān)系的面板中。編輯關(guān)系時(shí),使用鼠標(biāo)將一個(gè)表中的字段拖動(dòng)到另一表就可以為兩個(gè)表建立外鍵關(guān)系。添加表的關(guān)系如圖8.23所示。278.7.3

設(shè)定表關(guān)系當(dāng)表創(chuàng)建好以后,它們之間并沒有設(shè)定8.8

創(chuàng)建數(shù)據(jù)源在使用數(shù)據(jù)庫library.mdb之前,必須在Windows的ODBC數(shù)據(jù)源管理器中注冊(cè)該數(shù)據(jù)庫,具體步驟如下:(1)依次單擊或選擇【開始】|【設(shè)置】|【控制面板】|【管理工具】|【數(shù)據(jù)源(ODBC)】,打開系統(tǒng)提供的ODBC數(shù)據(jù)源管理器,如圖8.24所示。(2)單擊【用戶DSN】選項(xiàng)卡中的【添加】按鈕,在彈出的創(chuàng)建新數(shù)據(jù)源的對(duì)話框中選擇DriverdoMicrosoftAccess(*.mdb)并單擊完成。(3)系統(tǒng)會(huì)彈出如圖8.25所示的ODBCMicrosoftAccess安裝對(duì)話框。單擊【選擇】按鈕,找到library.mdb所在的目錄,選擇該文件并確定。所選擇的文件會(huì)在【數(shù)據(jù)庫】文本后顯示。(4)在【數(shù)據(jù)源名】文本框中輸入library,單擊【確定】按鈕。這時(shí)在圖8.25所示的“系統(tǒng)數(shù)據(jù)源”選項(xiàng)組中出現(xiàn)了library的數(shù)據(jù)源。至此,數(shù)據(jù)源的創(chuàng)建完成。288.8

創(chuàng)建數(shù)據(jù)源在使用數(shù)據(jù)庫library.mdb之前,8.9

設(shè)計(jì)工程框架在數(shù)據(jù)庫分析和設(shè)計(jì)的工作完成后,以下的工作就是具體的編寫代碼實(shí)現(xiàn)。從本節(jié)開始設(shè)計(jì)工程的框架和各個(gè)模塊,并使用VisualBasic6.0創(chuàng)建工程實(shí)現(xiàn)各個(gè)模塊的功能。298.9

設(shè)計(jì)工程框架在數(shù)據(jù)庫分析和設(shè)計(jì)的工作完成后,以下8.9.1

創(chuàng)建工程項(xiàng)目實(shí)現(xiàn)具體的功能之前,首先要使用VisualBasic6.0創(chuàng)建圖書管理系統(tǒng)的工程,該工程的文件名為LibManage.vbp,以下為創(chuàng)建工程的步驟:(1)運(yùn)行VisualBasic6.0軟件,在新建工程的工程模板中選擇【標(biāo)準(zhǔn)EXE】。(2)單擊【打開】按鈕,主窗口中會(huì)出現(xiàn)一個(gè)默認(rèn)的窗體Form1。(3)選擇菜單【工程】|【工程1屬性】命令,彈出【工程屬性】對(duì)話框,將該對(duì)話框中的工程名稱下面的文本改為LibManage,即將該工程的名稱更改為LibManage。(4)單擊【確定】按鈕,然后選擇【文件】|【保存工程】命令,將工程保存為LibManage.vbp。默認(rèn)的窗體Form1保存為FrmLogin.frm。308.9.1

創(chuàng)建工程項(xiàng)目實(shí)現(xiàn)具體的功能之前,首先要使用V8.9.2

添加模塊這里模塊指的是標(biāo)準(zhǔn)模塊(Module)。在VisualBasic6.0中,標(biāo)準(zhǔn)模塊(文件擴(kuò)展名為.BAS)是應(yīng)用程序內(nèi)其他模塊訪問的過程和聲明的容器。它們可以包含變量、常量、類型、外部過程和全局過程的全局聲明或模塊級(jí)聲明。選擇【工程】|【添加模塊】命令,為項(xiàng)目添加一個(gè)模塊。在屬性框中將該模塊的名稱更改為mdlMain,并保存為mdlMain.bas。該模塊中定義了一個(gè)全局常量ConnectionString,用于保存連接數(shù)據(jù)源的配置信息。其中,DSN指定為前面所創(chuàng)建的用戶數(shù)據(jù)源library。UID用于指定用戶名,PWD用于指定用戶的密碼。用戶名和密碼必須和創(chuàng)建數(shù)據(jù)源時(shí)使用的用戶名和密碼一致。318.9.2

添加模塊這里模塊指的是標(biāo)準(zhǔn)模塊(Module8.9.3

添加類模塊選擇菜單【工程】|【添加類模塊】命令,在彈出的對(duì)話框中選擇類模塊即可為項(xiàng)目添加一個(gè)空的類模塊。1.DbConnection類模塊DbConnection類模塊主要用來完成對(duì)數(shù)據(jù)庫的連接和數(shù)據(jù)庫表的相關(guān)操作的功能。2.clsCombo類模塊定義GetComboList方法。該方法包含兩個(gè)參數(shù):第一個(gè)是指定添加內(nèi)容的組合框;第二個(gè)參數(shù)是一條查詢語句。通過執(zhí)行該查詢語句獲得組合框控件中所需的數(shù)據(jù)。328.9.3

添加類模塊選擇菜單【工程】|【添加類模塊】命8.10

界面設(shè)計(jì)及其代碼分析圖書管理信息系統(tǒng)的界面主要由如下幾個(gè)部分組成:系統(tǒng)主界面管理員登錄界面管理員管理界面借閱卡信息管理界面圖書信息管理界面借/還書管理界面338.10

界面設(shè)計(jì)及其代碼分析圖書管理信息系統(tǒng)的界面主要8.10.1

管理員登錄界面及系統(tǒng)主界面設(shè)計(jì)

系統(tǒng)的主界面用于加載各個(gè)模塊的界面,一般而言都把該界面設(shè)計(jì)為多文檔界面(MDI),用戶可以通過主界面的菜單來調(diào)用不同的管理界面。通過選擇【工程】|【添加MDI窗體】命令,即可添加。管理員登錄界面使用創(chuàng)建工程時(shí)默認(rèn)的窗體Form1。把窗體的名稱設(shè)為FrmLogin,并保存為FrmLogin.frm。在該窗體上添加控件并作相應(yīng)的設(shè)置,如圖8.26所示。 348.10.1

管理員登錄界面及系統(tǒng)主界面設(shè)計(jì) 系統(tǒng)的主界8.10.2

管理員信息模塊設(shè)計(jì)選擇【工程】|【添加窗體】命令,給工程中添加一個(gè)新窗體,并給該窗體添加控件,做相應(yīng)的設(shè)置,如圖8.27所示。其中Adodc控件命名為AdodcAdmin,并設(shè)置該控件的Visible屬性值為False,ConnectionString屬性值為Provider=MSDASQL.1;PersistSecurityInfo=False;DataSource=library和RecordSource屬性值為select*fromLibrarian。管理員列表里是一個(gè)DataGrid控件DataGrid1,并設(shè)置其DataSource屬性值為AdodcAdmin,這樣就將DataGrid1綁定到AdodcAdmin控件上了。358.10.2

管理員信息模塊設(shè)計(jì)選擇【工程】|【添加窗體8.10.3

借閱卡管理模塊設(shè)計(jì)借閱卡管理即讀者信息的管理,該模塊分為3個(gè)模塊:辦理借閱卡、注銷借閱卡和借閱卡信息管理,分別對(duì)應(yīng)主界面菜單的3個(gè)子菜單。其中借閱卡信息管理包括對(duì)借閱卡的查詢和編輯,其界面如圖8.28所示。選擇菜單中的【辦理借閱卡】命令,會(huì)出現(xiàn)如圖8.29所示的對(duì)話框。選擇菜單中的【注銷借閱卡】命令,可以看到如圖8.30所示的【注銷借閱卡管理】對(duì)話框。首先單擊【查找】按鈕,在數(shù)據(jù)庫中查找該借閱卡是否存在,然后再進(jìn)行注銷。單擊【注銷】按鈕即可把查詢到的借閱卡信息從數(shù)據(jù)庫中刪除,如果這個(gè)借閱卡還有書未還,將會(huì)被拒絕注銷。368.10.3

借閱卡管理模塊設(shè)計(jì)借閱卡管理即讀者信息的管8.10.4

借/還書業(yè)務(wù)模塊設(shè)計(jì)借書/還書業(yè)務(wù)是圖書管理信息系統(tǒng)的主要功能。借書管理的對(duì)話框如圖8.31所示。在借書時(shí),首先要驗(yàn)證借閱卡是有效的借閱卡,然后才可以允許借書。因此當(dāng)單擊【確定】按鈕檢索借閱卡的信息時(shí),需要對(duì)借閱卡進(jìn)行檢驗(yàn)。當(dāng)單擊【查詢】按鈕查詢圖書時(shí),需要判斷該編號(hào)的書是否存在,或者是否已借出。如果借閱卡驗(yàn)證可以借書,且圖書在庫,則單擊【借閱】按鈕可以實(shí)現(xiàn)借書功能。還書時(shí),首先單擊【查詢】按鈕,查詢借閱的記錄;然后單擊【還書提交】按鈕,通過更新還書日期來消除借書記錄。此外,在還書時(shí)還需要取消因借書達(dá)到上限所設(shè)置的狀態(tài)(sState)標(biāo)志。還書的對(duì)話框如圖8.32所示。378.10.4

借/還書業(yè)務(wù)模塊設(shè)計(jì)借書/還書業(yè)務(wù)是圖書管8.10.5

庫存管理模塊設(shè)計(jì)圖書庫存管理的窗體如圖8.33所示。該對(duì)話框包含了圖書的添加、編輯和刪除功能。單擊【添加】按鈕,彈出如圖8.34所示的添加圖書種類窗口。在該對(duì)話框中,可以添加新的圖書信息。單擊【提交】按鈕,可觸發(fā)cmdPost_Click事件。388.10.5

庫存管理模塊設(shè)計(jì)圖書庫存管理的窗體如圖8.8.11

實(shí)例演示選擇【工程】|【LibManage屬性】命令,出現(xiàn)如圖8.35所示的對(duì)話框。在“啟動(dòng)對(duì)象”下的下拉列表框中選擇SubMain,這表示設(shè)置系統(tǒng)從模塊mdlMain中定義的Main過程作為開始運(yùn)行的過程。然后按F5鍵或選擇【運(yùn)行】|【啟動(dòng)】命令,系統(tǒng)經(jīng)過編譯后開始運(yùn)行,出現(xiàn)登錄界面,如圖8.36所示。輸入用戶名和密碼,單擊【確認(rèn)】按鈕,如果身份驗(yàn)證通過則可進(jìn)入到系統(tǒng)主界面。如圖8.37所示。選擇【庫存管理】|【圖書信息】命令,進(jìn)入圖書信息對(duì)話框,如圖8.38所示。398.11

實(shí)例演示選擇【工程】|【LibManag本章小結(jié)本章主要包括以下內(nèi)容:VisualBasic對(duì)數(shù)據(jù)庫開發(fā)的支持。圖書管理信息系統(tǒng)的需求分析。圖書管理信息系統(tǒng)的UML建模。圖書管理信息系統(tǒng)的系統(tǒng)配置。圖書管理信息系統(tǒng)的數(shù)據(jù)庫分析和設(shè)計(jì)。圖書管理信息系統(tǒng)的數(shù)據(jù)庫連接。圖書管理信息系統(tǒng)的界面設(shè)計(jì)和代碼分析。圖書管理信息系統(tǒng)的演示示例。40本章小結(jié)本章主要包括以下內(nèi)容:40數(shù)據(jù)庫應(yīng)用案例分析第8章

圖書館管理信息系統(tǒng)學(xué)習(xí)目的與要求隨著圖書館管理要求的不斷提高,傳統(tǒng)的圖書管理已不再適用。因而現(xiàn)代圖書館的管理基本上都采用了計(jì)算機(jī)軟件進(jìn)行輔助管理,可大大提高效率。本章將以圖書管理信息系統(tǒng)案例為主線,介紹如何結(jié)合VisualBasic和Access數(shù)據(jù)庫開發(fā)數(shù)據(jù)庫應(yīng)用系統(tǒng),并講解典型圖書管理信息系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)。在該系統(tǒng)中,把前面幾章學(xué)習(xí)過的數(shù)據(jù)庫基礎(chǔ)知識(shí)進(jìn)行了綜合應(yīng)用。42第8章

圖書館管理信息系統(tǒng)學(xué)習(xí)目的與要求28.1

VisualBasic對(duì)數(shù)據(jù)庫開發(fā)的支持在VisualBasic開發(fā)環(huán)境中,提供了3種數(shù)據(jù)訪問方式:數(shù)據(jù)訪問對(duì)象(DAO)、遠(yuǎn)程數(shù)據(jù)對(duì)象(RDO)和ActiveX數(shù)據(jù)對(duì)象(ADO)。1.DAO(DataAccessObjects)DAO最適用于單系統(tǒng)應(yīng)用程序或在小范圍本地分布使用。其內(nèi)部已經(jīng)對(duì)Jet數(shù)據(jù)庫的訪問進(jìn)行了加速優(yōu)化,而且它使用起來也比較方便。2.RDO(RemoteDataObjects)遠(yuǎn)程數(shù)據(jù)對(duì)象是位于ODBCAPI之上的一個(gè)對(duì)象模型薄層,它依賴ODBCAPI、選定的ODBC驅(qū)動(dòng)程序以及后端數(shù)據(jù)庫引擎實(shí)現(xiàn)大部分的智能和功能,因此短小、快速、強(qiáng)健。3.ADO(ActiveXDataObject)ActiveX數(shù)據(jù)對(duì)象是基于全新的OLEDB技術(shù),OLEDB可對(duì)電子郵件、文本文件、復(fù)合文件、數(shù)據(jù)表等各種各樣的數(shù)據(jù)通過統(tǒng)一的接口進(jìn)行存取。438.1

VisualBasic對(duì)數(shù)據(jù)庫開發(fā)的支持在Vi8.1.1

ADO的編程過程ADO所提供的類和對(duì)象可以完成以下動(dòng)作。(1)連接(Connection)數(shù)據(jù)源,并可選擇開始一個(gè)事務(wù)。(2)可選擇創(chuàng)建表示SQL查詢命令(Command)的對(duì)象。(3)可選擇在SQL命令中將值作為變量參數(shù)。(4)執(zhí)行命令(Command、Connection或Recordset)。(5)如果命令以行返回,將行存儲(chǔ)在存儲(chǔ)對(duì)象中。(6)可選擇對(duì)數(shù)據(jù)進(jìn)行定位、檢查、操作和編輯。(7)適當(dāng)情況下,可以使用存儲(chǔ)對(duì)象中的變更對(duì)數(shù)據(jù)源進(jìn)行更新。(8)可選擇在事務(wù)處理中嵌入更新數(shù)據(jù)。(9)在使用事務(wù)之后,可以接受或拒絕在完成事務(wù)之前所做的更改。(10)結(jié)束事務(wù)(Connection)。448.1.1

ADO的編程過程ADO所提供的類和對(duì)象可以完8.1.2

ADO的對(duì)象模型ADO對(duì)象模型定義了一個(gè)可編程的分層對(duì)象集合,大體上可分為7個(gè)層次。其中由3個(gè)對(duì)象成員Connection(連接)、Command(命令)和Recordset(記錄集),以及幾個(gè)集合對(duì)象Errors(錯(cuò)誤)、Parameters(參數(shù))和Fields(字段)等所組成。1.Connection對(duì)象Connection對(duì)象是交換數(shù)據(jù)所必需的環(huán)境,通過Connection對(duì)象可使應(yīng)用程序訪問數(shù)據(jù)源。Connection對(duì)象代表與數(shù)據(jù)源進(jìn)行的惟一會(huì)話。如果是客戶端/服務(wù)器數(shù)據(jù)庫系統(tǒng),該對(duì)象可以等價(jià)于到服務(wù)器的實(shí)際網(wǎng)絡(luò)連接。2.Command對(duì)象使用Command對(duì)象可以查詢數(shù)據(jù)庫并返回Recordset對(duì)象中的記錄,以便執(zhí)行大量操作或處理數(shù)據(jù)庫結(jié)構(gòu)。該對(duì)象的功能取決于其提供者的功能。3.Recordset對(duì)象Recordset對(duì)象表示的是來自基本表或命令執(zhí)行結(jié)果的記錄集合,它可以操縱來自提供者的數(shù)據(jù)。在使用ADO時(shí),通過Recordset對(duì)象幾乎可對(duì)所有數(shù)據(jù)進(jìn)行操作。而所有Recordset對(duì)象均使用記錄(行)和字段(列)進(jìn)行構(gòu)造。4.Error集合該對(duì)象包含與單個(gè)操作有關(guān)的數(shù)據(jù)訪問錯(cuò)誤的詳細(xì)信息。任何涉及ADO對(duì)象的操作都可能產(chǎn)生一個(gè)或多個(gè)提供者的錯(cuò)誤。5.Parameter集合Command對(duì)象具有由Parameter對(duì)象組成的Parameters集合。6.Field集合Recordset對(duì)象含有由Field對(duì)象組成的Fields集合。每個(gè)Field對(duì)象對(duì)應(yīng)于Recordset中的一列。7.Property(屬性)ADO對(duì)象有兩種類型的屬性:內(nèi)置屬性和動(dòng)態(tài)屬性。458.1.2

ADO的對(duì)象模型ADO對(duì)象模型定義了一個(gè)可編8.1.3

ADO數(shù)據(jù)控件ADO數(shù)據(jù)控件是ActiveX外部控件,它使用MicrosoftActiveX數(shù)據(jù)對(duì)象(ADO)來快速建立數(shù)據(jù)綁定控件和數(shù)據(jù)源之間的連接。1.添加ADO數(shù)據(jù)控件2.ADO數(shù)據(jù)控件的屬性1)ConnectionString屬性ADO控件使用ConnectionString屬性與數(shù)據(jù)庫建立連接。2)RecordSource屬性RecordSource確定具體可訪問的數(shù)據(jù),這些數(shù)據(jù)構(gòu)成記錄集對(duì)象Recordset。該屬性值可以是數(shù)據(jù)庫中的單個(gè)表名、一個(gè)用于查詢的存儲(chǔ),也可以是使用SQL查詢語言的一個(gè)查詢字符串3)ConnectionTimeout屬性該屬性用于數(shù)據(jù)連接的超時(shí)設(shè)置,若在指定時(shí)間內(nèi)連接不成功則顯示超時(shí)信息。時(shí)間單位為秒。4)MaxRecords屬性定義從一個(gè)查詢中最多能返回的記錄數(shù)。如果設(shè)置為0,則表示沒有限制最多返回的記錄數(shù)。5)BOFAction該屬性用于設(shè)置當(dāng)ADO數(shù)據(jù)控件將當(dāng)前記錄指針移動(dòng)到BOF時(shí),ADO數(shù)據(jù)控件采取的操作。6)EOFAction該屬性用于設(shè)置當(dāng)ADO數(shù)據(jù)控件將當(dāng)前記錄指針移動(dòng)到EOF時(shí),ADO數(shù)據(jù)控件采取的操作。7)Caption屬性設(shè)置顯示在ADO控件上的內(nèi)容。468.1.3

ADO數(shù)據(jù)控件ADO數(shù)據(jù)控件是ActiveX8.1.3

ADO數(shù)據(jù)控件3.ADO數(shù)據(jù)控件的方法數(shù)據(jù)控件的內(nèi)置功能很多,可在代碼中用數(shù)據(jù)控件的方法訪問數(shù)據(jù)控件屬性。1)Refresh方法2)UpdateControls方法3)AddNew方法4)Move方法組5)UpdateBatch6)CancelUpdate方法478.1.3

ADO數(shù)據(jù)控件3.ADO數(shù)據(jù)控件的方法78.1.4

數(shù)據(jù)綁定控件數(shù)據(jù)邦定控件是用于顯示ADO控件的記錄集中字段的值的控件,并且可以通過邦定控件接受經(jīng)過編輯或添加的記錄。1.綁定控件的分類VisualBasic6.0版本中提供了許多綁定控件。這些綁定控件總體上可分為兩大類。1)內(nèi)部控件總共有7個(gè),分別是:TextBox(文本框)、Label(標(biāo)簽)、Image(圖像框)、PictureBox(圖片框)、ListBox(列表框)、ComboBox(組合框)、CheckBox(復(fù)選框)。2)外部控件RichText控件:用于格式文本的輸入和處理。MSChart控件:將數(shù)據(jù)圖形化顯示。MaskedEdit控件:提供受限制的數(shù)據(jù)輸入和格式化輸出。DataCombo控件:是一個(gè)數(shù)據(jù)綁定組合框,它自動(dòng)地由一個(gè)附加數(shù)據(jù)源中的一個(gè)字段充填;并且可選擇地更新另一個(gè)數(shù)據(jù)源的一個(gè)相關(guān)表中的一個(gè)字段。DataList控件:是一個(gè)數(shù)據(jù)綁定列表框,功能與DataCombo控件相同。DataGrid控件:用于顯示并允許對(duì)Recordset對(duì)象中代表記錄和字段的一系列行和列進(jìn)行數(shù)據(jù)操縱。DataRepeater控件:該控件的功能是作為數(shù)據(jù)綁定用戶控件的可滾動(dòng)的容器。每一個(gè)控件都作為“重復(fù)的”控件出現(xiàn)在自己所在的行里,使用戶能夠一次瀏覽多個(gè)數(shù)據(jù)綁定用戶控件。HierarchicalFlexGrid控件:用于對(duì)表格數(shù)據(jù)進(jìn)行顯示和操作。在對(duì)包含字符串和圖片的表格進(jìn)行分類、合并以及格式化時(shí),具有完全的靈活性。488.1.4

數(shù)據(jù)綁定控件數(shù)據(jù)邦定控件是用于顯示ADO控件8.1.4

數(shù)據(jù)綁定控件2.綁定控件的兩個(gè)屬性以上綁定控件均有兩個(gè)相同的屬性:DataSource屬性和DataField屬性。可以通過設(shè)置控件的這兩個(gè)屬性來使它成為ADO數(shù)據(jù)控件的數(shù)據(jù)綁定控件。1)DataSource屬性該屬性用來指定要與控件綁定的Data控件。在【屬性】對(duì)話框中選中該屬性,然后單擊其右邊的向下箭頭按鈕,可在下拉列表框中選擇當(dāng)前可用的Data控件。2)DataField屬性該屬性用來設(shè)置控件對(duì)應(yīng)的數(shù)據(jù)庫字段。在設(shè)置了DataSource屬性后,DataField屬性的下拉列表框中將列出可用的字段。498.1.4

數(shù)據(jù)綁定控件2.綁定控件的兩個(gè)屬性98.2

概述圖8.9所示的是一個(gè)典型的圖書管理信息系統(tǒng)的界面。圖書管理信息系統(tǒng)的主要功能包括:圖書庫存管理、管理員信息管理、借閱卡管理、圖書借閱管理和圖書返還管理。圖書庫存管理:是這個(gè)管理信息系統(tǒng)的核心部分,它必須提供添加、修改、查詢和刪除圖書等操作的功能。管理員信息管理:每個(gè)管理員只有憑分配的ID和密碼才能登錄圖書管理信息系統(tǒng),以避免非法使用該管理信息系統(tǒng)。此外,還能增加和刪除管理員和更改管理員的信息。借閱卡管理:包括新增、刪除、修改和查詢借閱卡信息等功能。圖書借閱管理:通過該功能把讀者和其借閱的書籍的信息保存下來。圖書返還管理:通過該功能可以記錄讀者還書的情況,并查詢?cè)撟x者所借圖書是否過期。508.2

概述圖8.9所示的是一個(gè)典型的圖書管理信8.3

需求分析需求分析是數(shù)據(jù)庫系統(tǒng)開發(fā)的第一步,也是最重要的一步。首先要通過對(duì)客戶調(diào)研來獲取需求,通過理解后嚴(yán)格定義該系統(tǒng)的需求規(guī)格說明書。本節(jié)中將需求分析分為兩個(gè)步驟來講解,分別是理解需求和分析需求。518.3

需求分析需求分析是數(shù)據(jù)庫系統(tǒng)開發(fā)的第一步,8.3.1

理解需求理解需求是設(shè)計(jì)圖書管理信息系統(tǒng)的前提,開發(fā)人員只有在同用戶充分的溝通,并理解了用戶的真正需求才能開始設(shè)計(jì)系統(tǒng)。由于業(yè)務(wù)的需要和保密性,也為了便于管理,管理員用戶應(yīng)該具有不同的等級(jí),即不同的權(quán)限。按等級(jí)分為兩個(gè),超級(jí)管理員用戶和一般管理員用戶。超級(jí)管理員用戶可以查詢、添加、修改和刪除一般管理員的記錄,而一般管理員用戶只能查詢。通過該系統(tǒng)可以建立讀者的信息,主要為借閱卡號(hào)、姓名、性別、年齡和系別等信息。一般管理員可以新增、修改讀者信息和注銷借閱卡。通過該系統(tǒng)一般管理員可以對(duì)擁有借閱卡的用戶辦理借書、還書業(yè)務(wù)。通過該系統(tǒng)一般管理員可以統(tǒng)計(jì)所有借出的圖書的信息。該系統(tǒng)中,一般管理員可以修改圖書信息,新增和刪除圖書和圖書種類。通過該系統(tǒng)一般管理員可以為用戶查詢其所需借的圖書的在庫信息。系統(tǒng)可以運(yùn)行在Windows平臺(tái)上,系統(tǒng)還應(yīng)該有一個(gè)較好的圖形用戶界面。系統(tǒng)應(yīng)該有很好的可擴(kuò)展性。528.3.1

理解需求理解需求是設(shè)計(jì)圖書管理信息系統(tǒng)的前提8.3.2

分析需求需求分析就是描述系統(tǒng)的需求,通過定義系統(tǒng)中的關(guān)鍵類域來建立模型。分析的根本目的是在開發(fā)者和提出需求的用戶之間建立一種理解和溝通的機(jī)制。需求分析的第一步描述圖書管理信息系統(tǒng)的功能,即定義用例,以此確定系統(tǒng)的功能需求。圖書管理信息系統(tǒng)的用例分析主要找出系統(tǒng)中所有的用例,以及對(duì)用例進(jìn)行說明。在開發(fā)人員和用戶進(jìn)行討論后,可確定圖書管理信息系統(tǒng)的用例包括:管理員信息管理;圖書庫存信息管理;借閱卡信息管理;圖書借閱管理;圖書返還管理。圖書管理信息系統(tǒng)中可以把模塊分為3個(gè)功能集合。(1)基本信息管理功能集合。(2)借還管理功能集合。(3)用戶管理及權(quán)限功能集合。538.3.2

分析需求需求分析就是描述系統(tǒng)的需求,通過定義8.4

UML系統(tǒng)建模需求分析完成后,就可以對(duì)圖書管理信息系統(tǒng)進(jìn)行UML建模了。下面講解圖書管理信息系統(tǒng)的UML建模過程。這部分的內(nèi)容主要包括系統(tǒng)的用例分析、系統(tǒng)的類域分析和系統(tǒng)的設(shè)計(jì)。548.4

UML系統(tǒng)建模需求分析完成后,就可以對(duì)圖書管理信8.4.1

圖書館管理信息系統(tǒng)的用例分析使用RationalRose軟件進(jìn)行UML建模,其用例圖如圖8.12所示。該用例圖標(biāo)記了所有的用例,從中可以得知,圖書管理信息系統(tǒng)的角色可以劃分為兩類。一般管理員:可操作除管理員信息管理外所有的用例。超級(jí)管理員:可操作所有的用例。558.4.1

圖書館管理信息系統(tǒng)的用例分析使用Ration8.4.2

圖書館管理信息系統(tǒng)的域類分析域類分析的主要目的是確定系統(tǒng)中所用到的類以及這些類之間的關(guān)系,并得到類圖。由于域類分析是建立在用例分析基礎(chǔ)上的,因此需要根據(jù)上一節(jié)中的用例來確定圖書管理信息系統(tǒng)中所要用到的類及其關(guān)系,從而得到類圖,如圖8.13所示。568.4.2

圖書館管理信息系統(tǒng)的域類分析域類分析的主要目8.4.3

圖書館管理信息系統(tǒng)的設(shè)計(jì)使用UML對(duì)系統(tǒng)的動(dòng)態(tài)方面建模分5個(gè)部分:用例圖,活動(dòng)圖、狀態(tài)圖、時(shí)序圖和協(xié)作圖。這里我們需要使用狀態(tài)圖來描述對(duì)象的狀態(tài),以顯示對(duì)象的生命周期。在圖書管理信息系統(tǒng)中,狀態(tài)圖的類有借還信息(Borrow)和借閱卡信息(Reader)。這里把兩個(gè)狀態(tài)圖結(jié)合在一起,如圖8.14所示。借書管理的時(shí)序圖,如圖8.15所示。578.4.3

圖書館管理信息系統(tǒng)的設(shè)計(jì)使用UML對(duì)系統(tǒng)的動(dòng)8.5

系統(tǒng)配置一個(gè)好的數(shù)據(jù)庫系統(tǒng)必須有一個(gè)相對(duì)最優(yōu)的系統(tǒng)配置方案才能發(fā)揮這個(gè)數(shù)據(jù)庫系統(tǒng)的效率。系統(tǒng)配置主要依據(jù)是系統(tǒng)的吞吐量和系統(tǒng)對(duì)穩(wěn)定性的要求。此外,還需要考慮到用戶的維護(hù)水平和經(jīng)濟(jì)實(shí)力也是一個(gè)比較重要的方面。588.5

系統(tǒng)配置一個(gè)好的數(shù)據(jù)庫系統(tǒng)必須有一個(gè)相對(duì)最8.5.1

軟件配置軟件配置主要包括數(shù)據(jù)庫的選擇和操作系統(tǒng)的選擇。1.數(shù)據(jù)庫選擇2.操作系統(tǒng)選擇598.5.1

軟件配置軟件配置主要包括數(shù)據(jù)庫的選擇和操作系8.5.2

硬件配置圖書管理信息系統(tǒng)的硬件配置同樣需要根據(jù)用戶對(duì)系統(tǒng)的穩(wěn)定性要求、系統(tǒng)的容量、系統(tǒng)的吞吐量以及用戶的維護(hù)水平來確定,如表8.4所示。用

戶每秒數(shù)據(jù)庫并發(fā)數(shù)據(jù)訪問的記錄數(shù)穩(wěn)定性

要求維護(hù)

水平備選服務(wù)器中小學(xué)圖書館2~50低

差PentiumⅢ/256MB/20GB個(gè)人計(jì)算機(jī)高中/??圃盒D書館50~200中

一般XEON雙CPU/1GB/RAID53×72GB綜合性大學(xué)圖書館200~1000較高

較好XEON雙CPU/1GB/RAID56×72GB國家級(jí)圖書館1000以上高

好計(jì)算機(jī)集群/雙機(jī)熱備608.5.2

硬件配置圖書管理信息系統(tǒng)的硬件配置同樣需要根8.5.3

網(wǎng)絡(luò)配置該系統(tǒng)需要有能夠支持TCP/IP相關(guān)協(xié)議的局域網(wǎng)??梢愿鶕?jù)用戶情況選擇不同的網(wǎng)絡(luò)配置,如表8.5所示。用

戶每秒數(shù)據(jù)庫并發(fā)數(shù)據(jù)訪問的記錄數(shù)穩(wěn)定性

要求維護(hù)

水平備選網(wǎng)絡(luò)方案中小學(xué)圖書館2~50低

差單機(jī)模式高中/專科院校圖書館50~200中

一般百兆模式綜合性大學(xué)圖書館200~1000較高

較好百兆模式國家級(jí)圖書館1000以上高

好千兆模式618.5.3

網(wǎng)絡(luò)配置該系統(tǒng)需要有能夠支持TCP/IP相關(guān)8.6

數(shù)據(jù)庫分析在UML建模工作完成后,可以說該系統(tǒng)的需求分析階段已經(jīng)完成。下面我們需要對(duì)數(shù)據(jù)庫進(jìn)行分析。數(shù)據(jù)庫分析是數(shù)據(jù)庫設(shè)計(jì)過程中一個(gè)重要環(huán)節(jié),它具體可分為兩部分:概念結(jié)構(gòu)設(shè)計(jì)和邏輯結(jié)構(gòu)設(shè)計(jì),也可以稱為E-R圖分析和表與字段的分析。628.6

數(shù)據(jù)庫分析在UML建模工作完成后,可以說該系統(tǒng)的8.6.1

E-R圖分析通過對(duì)前面建模的結(jié)果進(jìn)行分析,并設(shè)計(jì)其局部的E-R圖,對(duì)局部的E-R圖進(jìn)行消除沖和冗余,并集成為一個(gè)基本的E-R圖,如圖8.17所示。638.6.1

E-R圖分析通過對(duì)前面建模的結(jié)果進(jìn)行分析,并8.6.2

表與字段分析和數(shù)據(jù)庫建模表與字段分析,即邏輯結(jié)構(gòu)設(shè)計(jì)。它的目標(biāo)是在E-R圖的基礎(chǔ)上,確定系統(tǒng)所需要的表以及表中的字段,并給表和字段命名。同時(shí)還要確定每個(gè)字段的數(shù)據(jù)類型,將E-R圖轉(zhuǎn)換成具體數(shù)據(jù)庫可使用的數(shù)據(jù)模型。如圖8.18所示,帶下劃線且屬性前標(biāo)志為PK的為主鍵,其屬性前標(biāo)志為FK的為外鍵,黑體的表示不能為空。648.6.2

表與字段分析和數(shù)據(jù)庫建模表與字段分析,即邏輯8.7

數(shù)據(jù)庫設(shè)計(jì)8.7.1創(chuàng)建數(shù)據(jù)庫創(chuàng)建數(shù)據(jù)庫的步驟比較簡單,其步驟如下:(1)選擇【開始】|【程序】|

MicrosoftOffice

|

MicrosoftAccess命令,即可打開Access軟件。(2)打開MicrosoftAccess后,選擇菜單【文件】|【新建】命令,即可新建一個(gè)空數(shù)據(jù)庫文件,將新建的空數(shù)據(jù)庫保存為library.mdb。658.7

數(shù)據(jù)庫設(shè)計(jì)8.7.1創(chuàng)建數(shù)據(jù)庫258.7.2

創(chuàng)建表1.管理員信息表2.圖書類別信息表3.圖書信息表4.借閱卡信息表5.借還記錄表6.讀者類別表7.系別信息表668.7.2

創(chuàng)建表1.管理員信息表268.7.3

設(shè)定表關(guān)系當(dāng)表創(chuàng)建好以后,它們之間并沒有設(shè)定關(guān)系。在Access中可以設(shè)定表之間的關(guān)系。選擇【工具】|【關(guān)系】命令,可以打開如圖8.21所示的界面。選擇【關(guān)系】|【顯示表】命令,將彈出如圖8.22所示的對(duì)話框。選擇除Librarian外所有的表,單擊【添加】按鈕,將把表添加到編輯關(guān)系的面板中。編輯關(guān)系時(shí),使用鼠標(biāo)將一個(gè)表中的字段拖動(dòng)到另一表就可以為兩個(gè)表建立外鍵關(guān)系。添加表的關(guān)系如圖8.23所示。678.7.3

設(shè)定表關(guān)系當(dāng)表創(chuàng)建好以后,它們之間并沒有設(shè)定8.8

創(chuàng)建數(shù)據(jù)源在使用數(shù)據(jù)庫library.mdb之前,必須在Windows的ODBC數(shù)據(jù)源管理器中注冊(cè)該數(shù)據(jù)庫,具體步驟如下:(1)依次單擊或選擇【開始】|【設(shè)置】|【控制面板】|【管理工具】|【數(shù)據(jù)源(ODBC)】,打開系統(tǒng)提供的ODBC數(shù)據(jù)源管理器,如圖8.24所示。(2)單擊【用戶DSN】選項(xiàng)卡中的【添加】按鈕,在彈出的創(chuàng)建新數(shù)據(jù)源的對(duì)話框中選擇DriverdoMicrosoftAccess(*.mdb)并單擊完成。(3)系統(tǒng)會(huì)彈出如圖8.25所示的ODBCMicrosoftAccess安裝對(duì)話框。單擊【選擇】按鈕,找到library.mdb所在的目錄,選擇該文件并確定。所選擇的文件會(huì)在【數(shù)據(jù)庫】文本后顯示。(4)在【數(shù)據(jù)源名】文本框中輸入library,單擊【確定】按鈕。這時(shí)在圖8.25所示的“系統(tǒng)數(shù)據(jù)源”選項(xiàng)組中出現(xiàn)了library的數(shù)據(jù)源。至此,數(shù)據(jù)源的創(chuàng)建完成。688.8

創(chuàng)建數(shù)據(jù)源在使用數(shù)據(jù)庫library.mdb之前,8.9

設(shè)計(jì)工程框架在數(shù)據(jù)庫分析和設(shè)計(jì)的工作完成后,以下的工作就是具體的編寫代碼實(shí)現(xiàn)。從本節(jié)開始設(shè)計(jì)工程的框架和各個(gè)模塊,并使用VisualBasic6.0創(chuàng)建工程實(shí)現(xiàn)各個(gè)模塊的功能。698.9

設(shè)計(jì)工程框架在數(shù)據(jù)庫分析和設(shè)計(jì)的工作完成后,以下8.9.1

創(chuàng)建工程項(xiàng)目實(shí)現(xiàn)具體的功能之前,首先要使用VisualBasic6.0創(chuàng)建圖書管理系統(tǒng)的工程,該工程的文件名為LibManage.vbp,以下為創(chuàng)建工程的步驟:(1)運(yùn)行VisualBasic6.0軟件,在新建工程的工程模板中選擇【標(biāo)準(zhǔn)EXE】。(2)單擊【打開】按鈕,主窗口中會(huì)出現(xiàn)一個(gè)默認(rèn)的窗體Form1。(3)選擇菜單【工程】|【工程1屬性】命令,彈出【工程屬性】對(duì)話框,將該對(duì)話框中的工程名稱下面的文本改為LibManage,即將該工程的名稱更改為LibManage。(4)單擊【確定】按鈕,然后選擇【文件】|【保存工程】命令,將工程保存為LibManage.vbp。默認(rèn)的窗體Form1保存為FrmLogin.frm。708.9.1

創(chuàng)建工程項(xiàng)目實(shí)現(xiàn)具體的功能之前,首先要使用V8.9.2

添加模塊這里模塊指的是標(biāo)準(zhǔn)模塊(Module)。在VisualBasic6.0中,標(biāo)準(zhǔn)模塊(文件擴(kuò)展名為.BAS)是應(yīng)用程序內(nèi)其他模塊訪問的過程和聲明的容器。它們可以包含變量、常量、類型、外部過程和全局過程的全局聲明或模塊級(jí)聲明。選擇【工程】|【添加模塊】命令,為項(xiàng)目添加一個(gè)模塊。在屬性框中將該模塊的名稱更改為mdlMain,并保存為mdlMain.bas。該模塊中定義了一個(gè)全局常量ConnectionString,用于保存連接數(shù)據(jù)源的配置信息。其中,DSN指定為前面所創(chuàng)建的用戶數(shù)據(jù)源library。UID用于指定用戶名,PWD用于指定用戶的密碼。用戶名和密碼必須和創(chuàng)建數(shù)據(jù)源時(shí)使用的用戶名和密碼一致。718.9.2

添加模塊這里模塊指的是標(biāo)準(zhǔn)模塊(Module8.9.3

添加類模塊選擇菜單【工程】|【添加類模塊】命令,在彈出的對(duì)話框中選擇類模塊即可為項(xiàng)目添加一個(gè)空的類模塊。1.DbConnection類模塊DbC

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論