第7章_數(shù)據(jù)庫設計_第1頁
第7章_數(shù)據(jù)庫設計_第2頁
第7章_數(shù)據(jù)庫設計_第3頁
第7章_數(shù)據(jù)庫設計_第4頁
第7章_數(shù)據(jù)庫設計_第5頁
免費預覽已結(jié)束,剩余3頁可下載查看

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、第7章數(shù)據(jù)庫設計數(shù)據(jù)庫設計:指利用現(xiàn)有的數(shù)據(jù)庫管理系統(tǒng),針對具體的應用對象,構造合適的數(shù)據(jù)庫模式,建立基于數(shù)據(jù)庫的應用系統(tǒng)或信息系統(tǒng)。數(shù)據(jù)庫設計的一般策略:自頂向下(Top-Down)與自底向上(Bottom - Up) 但通常是把兩種方法綜合起來使用。數(shù)據(jù)庫設計的步聚:數(shù)據(jù)庫是某個企業(yè)、組織或部門所涉及的數(shù)據(jù)的綜合,它不僅反映數(shù)據(jù)本身的內(nèi)容,而且反映數(shù)據(jù)之間的聯(lián)系。在數(shù)據(jù)庫中,是用 數(shù)據(jù)摸型.來抽象、表示、處理實現(xiàn)世界中的數(shù)據(jù)和信息的。根據(jù)模型應用的不同目的,將數(shù)據(jù)模型分成兩個層次:概念模型和具體的數(shù)據(jù)模型。概念模型是用戶和數(shù)據(jù)庫設計人員之間進行交流的工具。數(shù)據(jù)模型是由概念模型轉(zhuǎn)化而來的,是

2、按照計算機系統(tǒng)的觀點來對數(shù)據(jù)建模。產(chǎn)生具體數(shù)據(jù)模型的數(shù)據(jù)庫設計即為邏輯設計。數(shù)據(jù)庫設計的六個階段:用戶需求分析階段概念結(jié)構設計階段(即信息分析和定義階段)邏輯結(jié)構設計階段數(shù)據(jù)庫物理結(jié)構設計階段數(shù)據(jù)庫實施階段數(shù)據(jù)庫運行和維護階段一、用戶需求分析階段:需求分析的目的,是準確了解與分析用戶的需求。包括兩個步聚:需求調(diào)查需求分析1、需求調(diào)查任務,主要是了解用戶現(xiàn)行系統(tǒng)的概況、存在問題和對新系統(tǒng)的各 種要求,包括:1)信息要求:用戶需要對哪些數(shù)據(jù)進行查詢和分析,數(shù)據(jù)與數(shù)據(jù)之間的關系如何,以及最后要得到什么樣的信息2)處理要求:用戶需要對數(shù)據(jù)進行何種處理,每一種處理有哪些輸入、輸出要 求,處理的方式如何,

3、每一種處理有無特殊要求等。3)系統(tǒng)要求:包括安全性要求、使用方式要求和可擴充性要求等三個方面。2、需求分析階段的工作內(nèi)容主要有三個方面:1)分析需求調(diào)查所得到的資料,明確計算機應當處理和能夠處理的范圍,確定 新系統(tǒng)應具備的功能。2)綜合各種信息所包含的數(shù)據(jù),各種數(shù)據(jù)之間的關系,數(shù)據(jù)的類型、取值范圍 和流向。3)將需求調(diào)查文檔化,文檔既要為用戶所理解,又要方便數(shù)據(jù)庫的概念結(jié)構設 計。需求分析的結(jié)果應及時與用戶進行交流,反復修改,直到得到用戶的認可。需求分析階段最常使用的兩個工具是 數(shù)據(jù)流程圖和數(shù)據(jù)字典:(1)數(shù)據(jù)流程圖(DFD, Data Flow Diagram)由四個要素組成,即: 數(shù)據(jù)流代

4、表數(shù)據(jù)流的有向線代表數(shù)據(jù)處理邏輯的代表數(shù)據(jù)存儲外部實體代表系統(tǒng)之外數(shù)據(jù)提供者或使用者構造DFD的目的是為了系統(tǒng)分析師與用戶能夠進行明確的交流,以便指導系統(tǒng)的設計,并為一下工作打下基礎。所以要求 DFD既要簡單,又要易于理解。構造DFD通常采用Top Down,逐層分解,直到功能細化為止,形成若干層次 的 DFD。(2)數(shù)據(jù)字典(DD)數(shù)據(jù)字典是將數(shù)據(jù)流程圖中各個要素的具體內(nèi)容和特征,以特定格式記錄下來,所形成的文檔。它主要包括:數(shù)據(jù)項、數(shù)據(jù)結(jié)構、數(shù)據(jù)流、加工、文件、外部實體等 內(nèi)容。在數(shù)據(jù)庫設計過程中,數(shù)據(jù)字典被不斷地充實、修改和完善。(關于DF/口 DD在P125 126有一個有關學生成績管

5、理子系統(tǒng)的例子)需求分析階段是整個數(shù)據(jù)庫設計過程的前提和基礎。本階段的工作最繁瑣,最 困難也最耗時,但同時也是最關鍵的階段。就象一幢大樓的地基一樣,將決定著整個 數(shù)據(jù)庫設計的效率與質(zhì)量。所以必須做好本階段的工作。、概念結(jié)構設計階段概念結(jié)構設計階段的目標,是通過對用戶需求進行綜合、歸納與抽象,形成一個獨立于具體DBMS 的概念模型。這個階段,設計人員是從用戶的角度看待數(shù)據(jù)以及數(shù)據(jù)處理的要求和約束,產(chǎn)生一個反映用戶觀點的概念模型。設計人員與用戶,以這個概念模型為媒介,相互交流意見,并對該概念模型進行修改,最后達到共識。所以要求概念模型必須具有下列四個特點:豐富的語義表達能力。能表達用戶的各種需求,

6、反映現(xiàn)實世界中各種數(shù)據(jù)及數(shù)據(jù)間的各種復雜聯(lián)系,以及用戶對數(shù)據(jù)處理的要求。易于交流與理解,概念模型是設計人員與用戶交流的工具。易于修改,概念模型只有不斷地修改,才能最終符合用戶的需求。易于向各種數(shù)據(jù)模型的轉(zhuǎn)換。概念模型,是系統(tǒng)分析師、數(shù)據(jù)庫設計人員和用戶三方共同完成的。但它本身并不能在計算機上實現(xiàn),必須轉(zhuǎn)換成具體DBMS 所能支持的數(shù)據(jù)模型。目前最常用、最有名的概念模型是E R 模型(實體聯(lián)系模型)這一階段所提供的概念模型,除反映各業(yè)務部門所涉及的各種實體及實體間聯(lián)系外, 還要明確對每一個實體中數(shù)據(jù)進行增、刪、 改所需遵循的業(yè)務規(guī)則及各種完整性約束。三、邏輯結(jié)構設計階段邏輯結(jié)構設計階段的任務是將

7、概念結(jié)構設計階段所得到的概念模型 轉(zhuǎn)換為具體DBMS 所能支持的數(shù)據(jù)模型 (即邏輯結(jié)構),并對其進行優(yōu)化。1、邏輯結(jié)構設計階段主要有以下輸入信息:E R 模型:概念結(jié)構設計階段所得到的所有的局部和全局E R 模型處理需求:需求分析階段產(chǎn)生的業(yè)務活動分析結(jié)果:用戶需求、數(shù)據(jù)的使用頻率和數(shù)據(jù)庫的規(guī)模。DBMS 特性:即特定的DBMS 所支持的數(shù)據(jù)結(jié)構,如RDBMS 的數(shù)據(jù)結(jié)構是二維表。下面就以關系數(shù)據(jù)庫的設計為例,繼續(xù)學習以下內(nèi)容:2、邏輯結(jié)構設計階段需要完成的任務有:將 E R 模型轉(zhuǎn)換為等價的關系模式。按需要對關系模式進行規(guī)范化。對規(guī)范化后的模式進行評價。根據(jù)局部應用的需要,設計用戶外模式。3

8、、模式評價模式評價可以檢查規(guī)范化后的關系模式,是否滿足用戶的各種功能要求和性能要求,并確定需要修正的模式部分。( 1) 功能評價關系模式中必須包含用戶可能訪問的所有屬性。涉及多個關系模式的連接應用時,應確保連接具有無損性。對于檢查出有冗余的關系模式和屬性,應分析產(chǎn)生冗余的原因,分清楚是為了提高查詢效率和應用擴展而有意安排的冗余,還是由于某種疏忽或錯誤造成的冗余。( 2) 性能平價對數(shù)據(jù)庫模式的性能評價比較困難,因為缺乏相應的評價手段。一般采用的是LRA 評價技術進行估算,以提出改進意見。LRA即Logical Record Access (邏輯記錄存?。且环N算法。它主要用于估算 數(shù)據(jù)庫操縱

9、的邏輯記錄傳送量及數(shù)據(jù)的存儲空間。4、邏輯模式的修正目的 :改善數(shù)據(jù)庫的性能、節(jié)省存儲空間。在關系模式規(guī)范化過程中,很少注意數(shù)據(jù)庫的性能問題,一般認為,數(shù)據(jù)庫的物理設計與數(shù)據(jù)庫的性能關系更密切一些,事實上邏輯設計的好壞對它也有很大的影響。除了性能評價提出的模式修改意見外,還要考慮以下幾個方面:( 1)盡量減少連接運算在數(shù)據(jù)庫操作中,連接運算的開銷很大。參與連接的關系越多、越大,開銷也越大。所以,對于一些常用的、性能要求比較高的數(shù)據(jù)查詢,最好是單表操作。這與規(guī)范化理論相矛盾。有時為了保證性能,不得不把規(guī)范化了的關系再連接起來,即反規(guī)范化。 當然, 這又可能會帶來數(shù)據(jù)冗余和更新異常等問題,需要在數(shù)

10、據(jù)庫的物理設計和應用程序中加以控制。( 2)減小關系的大小和數(shù)據(jù)量關系的大小對查詢的速度影響也很大。有時為了提高查詢的速度,需要把一個 大關系從縱向或橫向劃分成多個小關系。關系的元組個數(shù)太多時,需要從橫向進行劃分。如學生關系,可把全校學生放在一個關系中,也可按系建立學生關系,前者可方便全校學生的查詢,后者可提高按系查詢的速度。當然也可按年級建立學生關系。總之要按照應用的具體情況確定不同的劃分策略。關系的屬性太多時,需要從縱向劃分關系,可將常用的和不常用的屬性分別放在不同的關系中,以提高查詢關系的速度。( 3)為每個屬性的選擇合適的數(shù)據(jù)類型關系中每個屬性都要求有一定的數(shù)據(jù)類型,為屬性選擇合適的數(shù)

11、據(jù)類型不但可以提高數(shù)據(jù)的完整性,還可以提高數(shù)據(jù)庫的性能,節(jié)省系統(tǒng)的存儲空間。使用變長的數(shù)據(jù)類型:當用戶和 DBA不能確定一個屬性數(shù)據(jù)的實際長度時, 可使用變長的數(shù)據(jù)類型。如 Varbinary()和Varchar(粒很多DBMS都支持的變長數(shù)據(jù) 類型。預期屬性值的最大長度:在關系設計中,必須能預期屬性的最大長度,只有這樣才能為屬性定制最有效的數(shù)據(jù)類型。如表示人的年齡可選擇Tinyint( 2 bytes) ;如表示書的頁數(shù),就可選擇Smallint( 4 bytes) 。使用用戶自定義的數(shù)據(jù)類型如果使用的DBMS 支持用戶自定義的數(shù)據(jù)類型,則利用它可以更好地提高系統(tǒng)性能,更有效地提高存儲效率,

12、并能保證數(shù)據(jù)安全。5、設計用戶外模式外模式也叫子模式,是用戶可直接訪問的數(shù)據(jù)模式。同一系統(tǒng)中,不同用戶可有不同的外模式。外模式來自邏輯模式,但在結(jié)構和形式上可能不同于邏輯模式,所以它不是邏輯模式的簡單子集。外模式主要有三個作用:通過外模式對邏輯模式的屏蔽,為應用程序提供了一定的邏輯獨立性;更好地適應不同用戶對數(shù)據(jù)的不同需求為不同用戶劃定了訪問數(shù)據(jù)的不同范圍,有利于數(shù)據(jù)的保密。在關系型DBMS 中,都提供了視圖功能。設計符合局部用戶需要的視圖,再加上與局部用戶有關的基本表,就構成了用戶的外模式。在設計外模式時,可以參照局部E R 模型,因為E R 模型本來就是用戶對數(shù) 據(jù)需求的反映。四、數(shù)據(jù)庫物

13、理結(jié)構設計階段數(shù)據(jù)庫物理結(jié)構設計是為邏輯數(shù)據(jù)模型選取一個最適合應用環(huán)境的物理結(jié)構。數(shù)據(jù)庫物理結(jié)構:主要由存儲記錄格式、記錄在物理設備上的安排及訪問的路徑(存取方法)等構成。數(shù)據(jù)庫物理結(jié)構設計主要包括以下三個方面:存儲記錄結(jié)構設計存儲記錄布局存取方法設計數(shù)據(jù)庫物理結(jié)構設計的目的,是為了在數(shù)據(jù)檢索中盡量減少I/O操作的次數(shù)以 提高數(shù)據(jù)檢索的效率,以及在多用戶共享系統(tǒng)中,減少多用戶對磁盤的訪問沖突,均衡I/O負荷,提高I/O的并行性,縮短等待時間,提高查詢效率。在關系數(shù)據(jù)庫系統(tǒng)中,存儲記錄結(jié)構設計和存儲記錄布局主要由RDBMS 自動完成。存取方法是快速存取數(shù)據(jù)庫中數(shù)據(jù)的技術。數(shù)據(jù)庫系統(tǒng)是多用戶共享的

14、系統(tǒng),只有對同一個關系建立多條存取路徑,才能滿足多個用戶的多種應用要求。在數(shù)據(jù)庫中建立存取路徑 最普遍的方法就是建立索引 。索引是用于提高查詢性能的,但它要犧牲額外的存儲空間,增大更新維護的代價。所以,必須根據(jù)用戶的需求和應用的需要來合理使用和設計索引。索引從物理上分為聚簇索引和普通索引。確定索引的一般順序是:( 1) 確定關系的存儲結(jié)構,即記錄的存放是無序的,還是按某屬性(或?qū)傩越M)聚簇存放;( 2)確定不宜建立索引的屬性或表。1) 太小的表2) 經(jīng)常更新屬性或表:需要對索引的進行頻繁地維護,代價太大。3)屬性值很少的表:如“性別”,只有兩個值4) 過長的屬性:索引所占存儲空間較大,有不利之

15、處5) 一些特殊數(shù)據(jù)類型的屬性:如大文本、多媒體數(shù)據(jù)等6) 不出現(xiàn)或很少出現(xiàn)在查詢條件中的屬性。3)確定宜建立索引的屬性。1) 關系的主碼或外碼一般應建立索引。因為數(shù)據(jù)進行更新時,系統(tǒng)對主碼 和外碼分別作唯一性和參照完整性檢查,建立索引,可加快之。2) 對于以查詢?yōu)橹骰蛑蛔x的表,可以多建索引。3)對于范圍查詢,即以=、&、等比較符確定查詢范圍的,可在有關的屬性上建立索引。4)使用聚集函數(shù)(Min、Max、Avg、Sum、Count:)或需要排序輸出的屬性最好建立索引。在 RDBMS 中,索引是改善存取路徑的重要手段。使用索引的最大優(yōu)點是可以減少檢索的CPU 服務時間和I/O 服務時間,

16、提高檢索效率。如果沒有索引,系統(tǒng)只能通過順序掃描數(shù)據(jù)表來尋找相匹配的檢索對象,時間開銷太大。但是不能在頻繁作存儲操作的關系上,建立過多的的索引。因為,當進行存儲操作(增、刪、改)時,不僅要對關系本身作存儲操作,而且還要增加一定的CPU開銷, 來對各個有關的索引作相應的修改。因此, 關系上過多的索引會影響存儲操作的性能。五、數(shù)據(jù)庫實施階段在數(shù)據(jù)庫實施階段,設計人員運用DBMS 提供的數(shù)據(jù)語言及其宿主語言,根據(jù)邏輯設計和物理設計的結(jié)果建立數(shù)據(jù)庫,編制與調(diào)試應用程序,組織數(shù)據(jù)入庫,并進行試運行和評價。在數(shù)據(jù)庫實施階段,包括三個方面的內(nèi)容:1、建立實際的數(shù)據(jù)庫結(jié)構2、加載必要的數(shù)據(jù)3、數(shù)據(jù)庫試運行和評

17、價其中建立實際的數(shù)據(jù)庫結(jié)構又分為以下四個主要內(nèi)容:1)數(shù)據(jù)庫模式與子模式,以及數(shù)據(jù)庫空間等描述2)數(shù)據(jù)庫完整性描述3)數(shù)據(jù)庫安全性描述4)數(shù)據(jù)庫物理存儲參數(shù)描述這四個內(nèi)容中最重要的是數(shù)據(jù)庫的完整性描述,因為數(shù)據(jù)庫的完整性是指數(shù)據(jù)庫中數(shù)據(jù)的有效性、正確性和一致性。在數(shù)據(jù)庫設計中如果沒有一定的措施確保數(shù)據(jù)的完整性,就無法從數(shù)據(jù)庫中獲得可信的數(shù)據(jù)。數(shù)據(jù)庫的完整性約束一般包括如下四個方面:(1)對表中列的約束。包括:列的數(shù)據(jù)類型、列取值約束,如 Not Null、 Unique、Primary Key、Foreign Key、列的 Check檢查等;(2)對表的約束。主要指對表的 Check檢查(多個

18、屬性之間的關系)( 3)表間參照完整性約束。指多個表之間的數(shù)據(jù)一致性,主要是外部碼的定義 與檢查。( 4)對復雜的業(yè)務規(guī)則的約束。可以有三種方法實現(xiàn)它:用DBMS的Trigger等工具,定義在數(shù)據(jù)庫結(jié)構中,由系統(tǒng)自動控制。寫入設計說明,提示編程人員以代碼形式在應用程序中加以控制。寫入用戶手冊,由用戶來執(zhí)行。關于數(shù)據(jù)庫實施階段的其它詳細內(nèi)容,請同學們參照有關的參考書。六、數(shù)據(jù)庫運行和維護階段數(shù)據(jù)庫系統(tǒng)經(jīng)過實施,并試運行合格后即可交付使用,投入正式運行。正式運行標志著數(shù)據(jù)庫維護工作的開始。在數(shù)據(jù)庫系統(tǒng)運行過程中必須不斷地對其進行評價、調(diào)整與修改。這個階段主要包括三個方面的工作:1、對數(shù)據(jù)庫性能的監(jiān)測與

溫馨提示

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

評論

0/150

提交評論