国产成人毛片视频|星空传媒久草视频|欧美激情草久视频|久久久久女女|久操超碰在线播放|亚洲强奸一区二区|五月天丁香社区在线|色婷婷成人丁香网|午夜欧美6666|纯肉无码91视频

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

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

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

10.1 數據庫設計原則及技巧

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

1. 設計原則

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

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

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

4) 并發(fā)控制。設計中應進行并發(fā)控制,即對于同一個庫表,在同一時間只有一個人有控制權,其他人只能進行查詢。

5) 必要的討論。數據庫設計完成后,數據小組應與相關人員進行討論,通過討論來熟悉數據庫,從而對設計中存在的問題進行控制或從中獲取數據庫設計的必要信息。

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

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

2. 設計技巧

1

,

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

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

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

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

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

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

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

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

2

,

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

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

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

1、需求分析階段:調查現實世界要處理的對象, 明確用戶的各種需求, 不僅要按照當前的應用要求來設計, 能的擴充和改變。

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

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

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

5、實施階段:實施階段的主要任務是用RDBMS 提供的數據定義語言和其他實用程序將邏輯結構設計和物理結構設計的結果詳細描述出來, 成為DBMS 可以接受的源代碼;再經過系統(tǒng)調試產生目標模式, 最后完成數據的載入工作。

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

10.2.2.1 概述

進行系統(tǒng)設計,首先要對系統(tǒng)的現狀進行分析。根據系統(tǒng)的目標、需求和功能,制定 3

,

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

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

1) 進行新書入庫、現有圖書信息修改以及刪除;

2) 能夠實現對讀者基本信息的查詢和編輯管理;

3) 能夠進行超期罰款功能;

4) 能夠進行借閱信息的查詢功能;

10.2.2.2 需求階段的目標及任務

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

證日期

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

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

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

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

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

● 處理功能及要求

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

1. 能夠存儲一定數量的圖書信息, 并方便有效的進行相應的書籍數據操作和管理,這主要包括:

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

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

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

2. 能夠對一定數量的讀者、管理員進行相應的信息存儲與管理,這其中包括:

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

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

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

3. 能夠提供一定的安全機制,提供數據信息授權訪問,防止隨意刪改、查詢。

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

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

,

10.2.2.3安全性和完整性要求

1) 安全性要求

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

2) 完整性要求

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

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

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

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

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

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

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

(一) 頂層數據流圖:

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

5

,

圖10.4第2層數據流圖

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

(四) 第3

6

,

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

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

圖10.8 圖書的維護數據流圖

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

圖10.9 更改讀者信息的數據流圖

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

7

,

圖10.10 更改管理員信息的數據流圖

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

表1.1 數據項列表

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

8

,

(b )數據結構:

表1.2 數據結構列表

9

,

(c )處理邏輯描述

表1.3 處理邏輯列表

10.2.3概念分析階段

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

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

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

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

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

10

標簽: