成人AV在线无码|婷婷五月激情色,|伊人加勒比二三四区|国产一区激情都市|亚洲AV无码电影|日av韩av无码|天堂在线亚洲Av|无码一区二区影院|成人无码毛片AV|超碰在线看中文字幕

圖書管理系統(tǒng)數(shù)據(jù)庫設(shè)計實例_chp7_448109770

第10章 圖書管理系統(tǒng)數(shù)據(jù)庫設(shè)計實例 通過前面章節(jié)對數(shù)據(jù)庫基礎(chǔ)知識的學(xué)習(xí),本章將通過一個圖書管理系統(tǒng)的數(shù)據(jù)庫設(shè)計實例來重點講述如何設(shè)計數(shù)據(jù)庫。在設(shè)計數(shù)據(jù)庫的過程中應(yīng)該遵循哪些設(shè)計原則及技巧。通過本章

第10章 圖書管理系統(tǒng)數(shù)據(jù)庫設(shè)計實例 通過前面章節(jié)對數(shù)據(jù)庫基礎(chǔ)知識的學(xué)習(xí),本章將通過一個圖書管理系統(tǒng)的數(shù)據(jù)庫設(shè)計實例來重點講述如何設(shè)計數(shù)據(jù)庫。在設(shè)計數(shù)據(jù)庫的過程中應(yīng)該遵循哪些設(shè)計原則及技巧。通過本章的數(shù)據(jù)庫實例設(shè)計,要求對數(shù)據(jù)庫的整體過程有個概念性的理解,并能通過所學(xué)知識,在具體的開發(fā)環(huán)境下設(shè)計一個較優(yōu)化數(shù)據(jù)庫并實現(xiàn)設(shè)計過程。

10.1 數(shù)據(jù)庫設(shè)計原則及技巧

10.1.1數(shù)據(jù)庫設(shè)計原則 隨著計算機(jī)技術(shù)越來越廣泛地應(yīng)用于國民經(jīng)濟(jì)的各個領(lǐng)域,在計算機(jī)硬件不斷微型化的同時,應(yīng)用系統(tǒng)向著復(fù)雜化、大型化的方向發(fā)展。數(shù)據(jù)庫是整個系統(tǒng)的核心,它的設(shè)計直接關(guān)系系統(tǒng)執(zhí)行的效率和系統(tǒng)的穩(wěn)定性。因此在軟件系統(tǒng)開發(fā)中,數(shù)據(jù)庫設(shè)計應(yīng)遵循必要的數(shù)據(jù)庫范式理論,以減少冗余、保證數(shù)據(jù)的完整性與正確性。只有在合適的數(shù)據(jù)庫產(chǎn)品上設(shè)計出合理的數(shù)據(jù)庫模型,才能降低整個系統(tǒng)的編程和維護(hù)難度,提高系統(tǒng)的實際運行效率。雖然對于小項目或中等規(guī)模的項目,開發(fā)人員可以很容易地利用范式理論設(shè)計出一套符合要求的數(shù)據(jù)庫,但對于一個包含大型數(shù)據(jù)庫的軟件項目,就必須有一套完整的設(shè)計原則與技巧。

1. 設(shè)計原則

在設(shè)計數(shù)據(jù)庫時,至關(guān)重要的工作就是要理解為之建模的業(yè)務(wù)職能和表示這些業(yè)務(wù)職能的數(shù)據(jù)庫概念及功能,并能準(zhǔn)確地設(shè)計數(shù)據(jù)庫,進(jìn)而建立優(yōu)化的業(yè)務(wù)模型。因為數(shù)據(jù)庫的設(shè)計在整個系統(tǒng)中是至關(guān)重要的一步,一旦數(shù)據(jù)庫設(shè)計完成,在進(jìn)行修改及優(yōu)化就需花費大量的時間。因此,再設(shè)計數(shù)據(jù)庫時,應(yīng)考慮以下事項: 1) 規(guī)范命名。所有的庫名、表名、域名必須遵循統(tǒng)一的命名規(guī)則,并進(jìn)行必要說明,以方便設(shè)計、維護(hù)、查詢。

2) 控制字段的引用。在設(shè)計時,可以選擇適當(dāng)?shù)臄?shù)據(jù)庫設(shè)計管理工具,以方便開發(fā)人員的分布式設(shè)計和數(shù)據(jù)小組的集中審核管理。采用統(tǒng)一的命名規(guī)則,如果設(shè)計的字段已經(jīng)存在,可直接引用;否則,應(yīng)重新設(shè)計。

3) 庫表重復(fù)控制。在設(shè)計過程中,如果發(fā)現(xiàn)大部分字段都已存在,開發(fā)人員應(yīng)懷疑所設(shè)計的庫表是否已存在。通過對字段所在庫表及相應(yīng)設(shè)計人員的查詢,可以確認(rèn)庫表是否確實重復(fù)。

4) 并發(fā)控制。設(shè)計中應(yīng)進(jìn)行并發(fā)控制,即對于同一個庫表,在同一時間只有一個人有控制權(quán),其他人只能進(jìn)行查詢。

5) 必要的討論。數(shù)據(jù)庫設(shè)計完成后,數(shù)據(jù)小組應(yīng)與相關(guān)人員進(jìn)行討論,通過討論來熟悉數(shù)據(jù)庫,從而對設(shè)計中存在的問題進(jìn)行控制或從中獲取數(shù)據(jù)庫設(shè)計的必要信息。

6) 數(shù)據(jù)小組的審核。庫表的定版、修改最終都要通過數(shù)據(jù)小組的審核,以保證符合必要的要求。

7) 頭文件處理。每次數(shù)據(jù)修改后,數(shù)據(jù)小組要對相應(yīng)的頭文件進(jìn)行修改(可由管理軟件自動完成),并通知相關(guān)的開發(fā)人員,以便進(jìn)行相應(yīng)的程序修改。

2. 設(shè)計技巧

1

,

分類拆分?jǐn)?shù)據(jù)量大的表。對于經(jīng)常使用的表(如某些參數(shù)表或代碼對照表),由于其使用頻率很高,要盡量減少表中的記錄數(shù)量。例如,銀行的戶主賬表原來設(shè)計成一張表,雖然可以方便程序的設(shè)計與維護(hù),但經(jīng)過分析發(fā)現(xiàn),由于數(shù)據(jù)量太大,會影響數(shù)據(jù)的迅速定位。如果將戶主賬表分別設(shè)計為活期戶主賬、定期戶主賬及對公戶主賬等,則可以大大提高查詢效率。

索引設(shè)計。對于大的數(shù)據(jù)庫表,合理的索引能夠提高整個數(shù)據(jù)庫的操作效率。在索引設(shè)計中,索引字段應(yīng)挑選重復(fù)值較少的字段;在對建有復(fù)合索引的字段進(jìn)行檢索時,應(yīng)注意按照復(fù)合索引字段建立的順序進(jìn)行。例如,如果對一個5萬多條記錄的流水表以日期和流水號為序建立復(fù)合索引,由于在該表中日期的重復(fù)值接近整個表的記錄數(shù),用流水號進(jìn)行查詢所用的時間接近3秒;而如果以流水號為索引字段建立索引進(jìn)行相同的查詢,所用時間不到1秒。因此在大型數(shù)據(jù)庫設(shè)計中,只有進(jìn)行合理的索引字段選擇,才能有效提高整個數(shù)據(jù)庫的操作效率。

數(shù)據(jù)操作的優(yōu)化。在大型數(shù)據(jù)庫中,如何提高數(shù)據(jù)操作效率值得關(guān)注。例如,每在數(shù)據(jù)庫流水表中增加一筆業(yè)務(wù),就必須從流水控制表中取出流水號,并將其流水號的數(shù)值加一。正常情況下,單筆操作的反應(yīng)速度尚屬正常,但當(dāng)用它進(jìn)行批量業(yè)務(wù)處理時,速度會明顯減慢。經(jīng)過分析發(fā)現(xiàn),每次對流水控制表中的流水號數(shù)值加一時都要鎖定該表,而該表卻是整個系統(tǒng)操作的核心,有可能在操作時被其他進(jìn)程鎖定,因而使整個事務(wù)操作速度變慢。對這一問題的解決的辦法是,根據(jù)批量業(yè)務(wù)的總筆數(shù)批量申請流水號,并對流水控制表進(jìn)行一次更新,即可提高批量業(yè)務(wù)處理的速度。

數(shù)據(jù)庫參數(shù)的調(diào)整。數(shù)據(jù)庫參數(shù)的調(diào)整是一個經(jīng)驗不斷積累的過程,應(yīng)由有經(jīng)驗的系統(tǒng)管理員完成。以informion 數(shù)據(jù)庫為例,記錄鎖的數(shù)目太少會造成鎖表的失敗;邏輯日志的文件數(shù)目太少會造成插入大表失敗等,這些問題都應(yīng)根據(jù)實際情況進(jìn)行必要的調(diào)整。

必要的工具。在整個數(shù)據(jù)庫的開發(fā)與設(shè)計過程中,可以先開發(fā)一些小的應(yīng)用工具,如自動生成庫表的頭文件、插入數(shù)據(jù)的初始化、數(shù)據(jù)插入的函數(shù)封裝、錯誤跟蹤或自動顯示等,以此提高數(shù)據(jù)庫的設(shè)計與開發(fā)效率。

避免長事務(wù)。對單個大表的刪除或插入操作會帶來大事務(wù),解決的辦法是對參數(shù)進(jìn)行調(diào)整,也可以在插入時對文件進(jìn)行分割。對于一個由一系列小事務(wù)順序操作共同構(gòu)成的長事務(wù)(如銀行交易系統(tǒng)的日終交易),可以由一系列操作完成整個事務(wù),但其缺點是有可能因整個事務(wù)太大而使不能完成,或者,由于偶然的意外而使事務(wù)重做所需的時間太長。較好的解決方法是,把整個事務(wù)分解成幾個較小的事務(wù),再由應(yīng)用程序控制整個系統(tǒng)的流程。這樣,如果其中某個事務(wù)不成功,則只需重做該事務(wù),因而既可節(jié)約時間,又可避免長事務(wù)。

適當(dāng)超前。計算機(jī)技術(shù)發(fā)展日新月異,數(shù)據(jù)庫的設(shè)計必須具有一定前瞻性,不但要滿足當(dāng)前的應(yīng)用要求,還要考慮未來的業(yè)務(wù)發(fā)展,同時必須有利于擴(kuò)展或增加應(yīng)用系統(tǒng)的處理功能。

總之,相對于中小型數(shù)據(jù)庫,大型數(shù)據(jù)庫的設(shè)計與開發(fā)要復(fù)雜得多,因此在設(shè)計、開發(fā)過程中,除了要遵循數(shù)據(jù)庫范式理論、增加系統(tǒng)的一致性和完整性外,還要在總體上根據(jù)具體情況進(jìn)行分布式設(shè)計,緊緊把握集中控制、統(tǒng)一審核的基本原則,保證數(shù)據(jù)庫設(shè)計結(jié)構(gòu)緊湊、分布平衡、定位迅速。在數(shù)據(jù)庫操作上,要采用一定的技巧提高整個應(yīng)用系統(tǒng)的執(zhí)行效率,并注意適當(dāng)超前,以適應(yīng)不斷變化的應(yīng)用及系統(tǒng)發(fā)展的要求。

2

,

10.2 圖書管理系統(tǒng)數(shù)據(jù)庫設(shè)計實例

設(shè)計一個系統(tǒng)的核心是前期的分析設(shè)計,如果前期的分析設(shè)計沒有合理、正確、可預(yù)見且清晰的思路,整個系統(tǒng)就無法實現(xiàn)一個優(yōu)化的高性能系統(tǒng)。那么數(shù)據(jù)庫的設(shè)計是整個系統(tǒng)設(shè)計的關(guān)鍵。本章重點介紹圖書管理系統(tǒng)的數(shù)據(jù)庫設(shè)計,而對于數(shù)據(jù)庫應(yīng)用的什么開發(fā)環(huán)境設(shè)計的系統(tǒng),本文不再介紹。從數(shù)據(jù)庫的設(shè)計過程可知,數(shù)據(jù)庫設(shè)計的首要任務(wù)就是需求分析,可見如果需求分析做不好,就不可能設(shè)計出一個合理、優(yōu)化的數(shù)據(jù)庫。 10.2.1數(shù)據(jù)庫設(shè)計過程

數(shù)據(jù)庫設(shè)計是設(shè)計一個數(shù)據(jù)庫管理系統(tǒng)的核心技術(shù),因此,在設(shè)計一個系統(tǒng)之前必須設(shè)計好數(shù)據(jù)庫,目前數(shù)據(jù)設(shè)計的一般過程分為六個階段如10.1階段、物理結(jié)構(gòu)設(shè)計階段、實施階段和運行與維護(hù)階段。

1、需求分析階段:調(diào)查現(xiàn)實世界要處理的對象, 明確用戶的各種需求, 不僅要按照當(dāng)前的應(yīng)用要求來設(shè)計, 能的擴(kuò)充和改變。

2、概念結(jié)構(gòu)設(shè)計階:求分析階段所得到的用戶需求抽象為概念模型, 型的具體工具主要是E-R 模型。

3、邏輯結(jié)構(gòu)設(shè)計階段:概念結(jié)構(gòu)設(shè)計階段設(shè)計的基本E-R 模型轉(zhuǎn)換為與選用DBMS 品所支持的數(shù)據(jù)模型相符合的邏輯結(jié)構(gòu)。具體來說, 將概念結(jié)構(gòu)轉(zhuǎn)換為一般的關(guān)系、網(wǎng)狀、層次模型, 來的模型向特定DBMS 支持下的數(shù)據(jù)模型轉(zhuǎn)換, 型進(jìn)行優(yōu)化。

4、物理結(jié)構(gòu)設(shè)計階段:物理結(jié)構(gòu)設(shè)計階段的主要任務(wù)是為一個指定的邏輯數(shù)據(jù)模型選取一個符合應(yīng)用要求的物理結(jié)構(gòu)。具體來說, 就是首先確定數(shù)據(jù)庫的物理結(jié)構(gòu), 即數(shù)據(jù)庫的存取方法和存儲結(jié)構(gòu);然后對數(shù)據(jù)庫的物理結(jié)構(gòu)進(jìn)行評估, 評估的重點是存取時間的長短和存儲空間的大小。

5、實施階段:實施階段的主要任務(wù)是用RDBMS 提供的數(shù)據(jù)定義語言和其他實用程序?qū)⑦壿嫿Y(jié)構(gòu)設(shè)計和物理結(jié)構(gòu)設(shè)計的結(jié)果詳細(xì)描述出來, 成為DBMS 可以接受的源代碼;再經(jīng)過系統(tǒng)調(diào)試產(chǎn)生目標(biāo)模式, 最后完成數(shù)據(jù)的載入工作。

6、運行與維護(hù):運行與維護(hù)階段的主要任務(wù)包括數(shù)據(jù)庫的轉(zhuǎn)儲和恢復(fù), 數(shù)據(jù)庫完整性和安全性控制, 數(shù)據(jù)庫性能改造、分析和監(jiān)督, 數(shù)據(jù)庫的重構(gòu)造和重組織。 10.2.2需求分析階段

10.2.2.1 概述

進(jìn)行系統(tǒng)設(shè)計,首先要對系統(tǒng)的現(xiàn)狀進(jìn)行分析。根據(jù)系統(tǒng)的目標(biāo)、需求和功能,制定 3

,

和選擇一個較好的系統(tǒng)方案,從而達(dá)到一個合理的優(yōu)化系統(tǒng)。而需求分析是在于要弄清用戶對所開發(fā)的數(shù)據(jù)庫應(yīng)用系統(tǒng)的確切要求。所以,數(shù)據(jù)庫設(shè)計的第一步是明確數(shù)據(jù)庫的目的和如何使用,也就是說需要從數(shù)據(jù)庫中得到哪些信息。明確目的之后,就可以確定您需要保存哪些主題的信息(表),以及每個主題需要保存哪些信息(表中字段)。

在構(gòu)造系統(tǒng)時,首先從需求出發(fā)構(gòu)造數(shù)據(jù)庫表,然后再由數(shù)據(jù)庫表結(jié)合需求劃分系統(tǒng)功能模塊。這樣,就把一個大的系統(tǒng)分解成了幾個小系統(tǒng)。經(jīng)過對圖書管理系統(tǒng)的分析,因圖書數(shù)量、規(guī)模大,管理信息量大,建立圖書管理系統(tǒng)是為了解決人工手動管理圖書信息在實踐的問題。這里把系統(tǒng)的層次劃分為了四個部分:圖書維護(hù),人員信息管理,圖書借閱管理,信息查詢。能夠?qū)崿F(xiàn)以下功能:

1) 進(jìn)行新書入庫、現(xiàn)有圖書信息修改以及刪除;

2) 能夠?qū)崿F(xiàn)對讀者基本信息的查詢和編輯管理;

3) 能夠進(jìn)行超期罰款功能;

4) 能夠進(jìn)行借閱信息的查詢功能;

10.2.2.2 需求階段的目標(biāo)及任務(wù)

需求分析的目標(biāo)及任務(wù)就是為了提取有效的信息,概念模型的抽象化,轉(zhuǎn)化為計算機(jī)系統(tǒng)能夠識別的信息。則通過需求分析所得的信息如下:

證日期

管理員信息:管理員編號,姓名,性別,權(quán)限,登錄口令,住址,電話

館藏圖書信息:圖書編號,索書號,圖書名稱,作者,出版社,單價,摘要,關(guān)鍵字,副本數(shù),分類,出版日期,狀態(tài)

借閱信息:圖書編號,讀者編號,圖書名,作者,借閱日期,歸還日期,歸還日期,應(yīng)還日期,罰金

借閱歷史信息:圖書編號,讀者編號,圖書名,作者,借閱日期,還書日期

罰款信息:讀者編號,圖書編號,圖書名,作者,借閱日期,應(yīng)還日期,歸還日期,罰款金額,處理狀態(tài),管理員編號

● 處理功能及要求

用戶對圖書管理系統(tǒng)的功能及要求如下:

1. 能夠存儲一定數(shù)量的圖書信息, 并方便有效的進(jìn)行相應(yīng)的書籍?dāng)?shù)據(jù)操作和管理,這主要包括:

a) 圖書信息的錄入、刪除及修改。

b) 圖書信息的多關(guān)鍵字檢索查詢。

c) 圖書的出借、返還及超期罰款或丟失賠償。

2. 能夠?qū)σ欢〝?shù)量的讀者、管理員進(jìn)行相應(yīng)的信息存儲與管理,這其中包括:

a) 讀者信息的登記、刪除及修改。

b) 管理員信息的增加、刪除及修改。

c) 讀者資料的統(tǒng)計與查詢。

3. 能夠提供一定的安全機(jī)制,提供數(shù)據(jù)信息授權(quán)訪問,防止隨意刪改、查詢。

4. 對查詢、統(tǒng)計的結(jié)果能夠列表顯示。

4 處理對象 讀者信息:讀者編號,姓名,性別,學(xué)號,學(xué)院,專業(yè),年級,類型,類別編號,辦

,

10.2.2.3安全性和完整性要求

1) 安全性要求

系統(tǒng)安全性要求體現(xiàn)在數(shù)據(jù)庫安全性、信息安全性和系統(tǒng)平臺的安全性等方面。安全性先通過視圖機(jī)制,不同的用戶只能訪問系統(tǒng)授權(quán)的視圖,這樣可提供系統(tǒng)數(shù)據(jù)一定程度上的安全性,再通過分配權(quán)限、設(shè)置權(quán)限級別來區(qū)別對待不同操作者對數(shù)據(jù)庫的操作來提高數(shù)據(jù)庫的安全性;系統(tǒng)平臺的安全性體現(xiàn)在操作系統(tǒng)的安全性、計算機(jī)系統(tǒng)的安全性和網(wǎng)絡(luò)體系的安全性等方面。

2) 完整性要求

系統(tǒng)完整性要求系統(tǒng)中數(shù)據(jù)的正確性以及相容性??赏ㄟ^建立主、外鍵,使用check 約束,或者通過使用觸發(fā)器和級聯(lián)更新。

在系統(tǒng)進(jìn)行設(shè)計時,一定根據(jù)第七章所學(xué)知識對數(shù)據(jù)的安全性及完整性進(jìn)行設(shè)計。以保證數(shù)據(jù)庫更為完善。

10.2.2.4 建立數(shù)據(jù)業(yè)務(wù)流程及數(shù)據(jù)字典

系統(tǒng)需求分析主要是通過對本校圖書管理員的咨詢、請教,了解我校圖書館的管理規(guī)則和運行機(jī)制,并通過上網(wǎng)搜索有關(guān)圖書管理系統(tǒng)的知識,了解到了圖書管理的現(xiàn)狀,以及在管理中的一些問題,然后通過所了解的文字信息,理解數(shù)據(jù)業(yè)務(wù)流程及數(shù)據(jù)字典,為后期數(shù)據(jù)庫設(shè)計提供概念基礎(chǔ)。

● 圖書管理系統(tǒng)業(yè)務(wù)流程圖

本文的業(yè)務(wù)流程是從讀者角度考慮的業(yè)務(wù)流程圖:

● 圖書管理系統(tǒng)數(shù)據(jù)流程圖

(一) 頂層數(shù)據(jù)流圖:

(二) 第2層數(shù)據(jù)流圖:(讀者借閱,讀者還書,讀者查詢,管理員查詢,管理員修改)

5

,

圖10.4第2層數(shù)據(jù)流圖

(三) 第3層數(shù)據(jù)流圖:(讀者借閱)

(四) 第3

6

,

(五) 第3層數(shù)據(jù)流圖:(查詢圖書信息,查詢讀者信息,查詢借閱歷史,查詢罰款信息)

(六) 第3層數(shù)據(jù)流圖:(管理員添加、刪除、修改圖書信息)

圖10.8 圖書的維護(hù)數(shù)據(jù)流圖

(七) 第3層數(shù)據(jù)流圖:(管理員添加、刪除、修改讀者信息)

圖10.9 更改讀者信息的數(shù)據(jù)流圖

(八) 第3層數(shù)據(jù)流圖:(管理員添加、刪除、修改管理員信息)

7

,

圖10.10 更改管理員信息的數(shù)據(jù)流圖

圖書管理系統(tǒng)數(shù)據(jù)字典

表1.1 數(shù)據(jù)項列表

(a )數(shù)據(jù)項:系統(tǒng)涉及的數(shù)據(jù)項有44項

8

,

(b )數(shù)據(jù)結(jié)構(gòu):

表1.2 數(shù)據(jù)結(jié)構(gòu)列表

9

,

(c )處理邏輯描述

表1.3 處理邏輯列表

10.2.3概念分析階段

概念設(shè)計階段主要是將需求分析階段得到的用戶需求抽象為信息結(jié)構(gòu)(概念模型) 的過程, 它是整個數(shù)據(jù)庫設(shè)計的關(guān)鍵。本圖書管理系統(tǒng)的主要任務(wù)及目標(biāo)如下: (1) 選擇中層數(shù)據(jù)流為切入點,通常選擇實際系統(tǒng)中的子系統(tǒng); (2) 設(shè)計分E-R 圖,即各子模塊的E-R 圖;

(3) 生成初步E-R 圖,通過合并方法,做到各子系統(tǒng)實體、屬性、聯(lián)系統(tǒng)一; (4) 生成全局E-R 圖,通過消除沖突等方面。

在本圖書管理系統(tǒng)中,從第3層數(shù)據(jù)流程圖下手。分析各3層數(shù)據(jù)流圖和數(shù)據(jù)字典,知道整個系統(tǒng)功能圍繞“讀者”、“管理員”和“圖書”的處理。根據(jù)實體與屬性間的兩條準(zhǔn)則:

① 作為“屬性”,不能再具有需要描述的性質(zhì)。 ② “屬性”不能與其他實體具有聯(lián)系。

數(shù)據(jù)流程圖10.5 、圖10.6、圖10.7可綜合成借閱子系統(tǒng)的分E-R 圖10.11,數(shù)據(jù)流程圖10.8可抽象為分E-R 圖10.12,數(shù)據(jù)流程圖10.9可抽象為分E-R 圖10.13,數(shù)據(jù)流程圖10.10可抽象為分E-R 圖10.14。然后采用逐步集成的方式將各分E-R 圖合并,消除不必要的冗余和沖突后就生成了基本E-R 圖10.15。其各個E -R 圖如下:(1)根據(jù)不同的對象,從第3層數(shù)據(jù)流程圖入手,分別畫出各分E -R 圖:

10

標(biāo)簽: