數據庫系統概論(第七章數據庫設計)

第7章 數據庫設計

7.1 數據庫設計概述

數據庫設計,廣義的講,是數據庫及其應用系統的設計,即設計整個數據庫應用系統,狹義的講,是設計數據本身,即設計數據庫的各級模式並建立數據庫,這是數據庫應用系統設計的一部分。

數據庫設計的一般定義

數據庫設計是指對於一個給定的應用環境,構造優化的數據庫邏輯模式和物理結構,並據此建立數據及其應用系統,是指能夠有效的存儲和管理數據,滿足各種用戶的應用需求,包括信息管理要求和數據操作要求

信息管理要求是指在數據庫中應該存儲和管理哪些數據對象,數據操作要求是指對數據對象需要進行哪些操作。

7.1.1 數據庫設計的特點

1、數據庫建設的基本規律

三分技術,七分管理,十二分基礎數據

2、結構數據設計和行爲處理設計相結合。

7.1.2 數據庫設計方法 

7.1.3 數據庫設計的基本步驟

  • 需求分析
  • 概念結構設計
  • 邏輯結構設計
  • 物理結構設計
  • 數據庫實施
  • 數據庫運行和維護

需求分析和概念結構設計可以獨立於任何數據庫管理系統進行,

邏輯結構設計和物理結構設計與選用的數據庫管理系統密切相關

1、 需求分析階段(數據流圖)

進行數據庫設計首先必須準確瞭解和分析用戶需求,需求分析是整個設計過程的基礎,是最困難和最耗時的一步。

2、概念結構設計階段

概念結構設計是整個數據設計的關鍵,它通過對用戶需求進行綜合、歸納與抽象

3、邏輯結構設計階段

邏輯結構設計是將個概念結構轉換爲某個數據庫管理系統所支持的數據模型,並對其進行優化

4、物理結構設計階段

物理結構設計是爲邏輯數據模型選取一個最合適應用環境的物理結構(包括存儲結構和存取方法)

5、數據庫實施階段

在數據庫實施階段,設計人員運用數據庫管理系統提供的數據庫語言及其宿主語言,根據邏輯設計和物理設計的結果建立數據庫,編寫與調試應用程序,組織數據入庫,並進行試運行。

6、數據庫運行和維護階段

數據庫應用系統經過試運行後即可投入正式運行。過程中不斷對其進行評估、調整、修改。

7.1.4 數據庫設計過程中的各級模式

7.2 需求分析

7.2.1 需求分析的任務

調查的重點是數據和處理,通過調查、收集與分析,獲得用戶對數據庫的如下要求:

  • 信息要求
  • 處理要求
  • 安全性與完整性要求

7.2.2 需求分析的方法

  • 首先調查用戶的實際要求,與用戶達成共識。
  • 調查用戶需求的具體步驟:
  • 調查組織機構情況
  • 調查各部門的業務活動情況
  • 協助用戶明確對新系統的各種要求
  • 確定新系統的邊界

常用的調查方法:

  • 跟班作業
  • 調查會
  • 詢問
  • 查閱記錄

 7.2.3 數據字典

數據字典是進行詳細的數據收集和數據分析所獲得的主要成果。

它是關於數據庫中數據的描述,即元數據,而不是數據本身。數據字典是在需求分析階段建立,在數據庫設計過程中不斷修改、充實、完善。

1、數據項

2、數據結構

3、數據流

4、 數據存儲

7.3  概念結構設計

7.3.1 概念模型

  • 主要特點:能真實、充分的反映現實世界,
  • 易於理解
  • 易於更改
  • 易於向關係、網狀、層次各種數據模型轉換

7.3.2 E-R模型  概念設計階段

實體之間的聯繫

2、 E-R圖

7.3.5 概念結構的設計

 

7.4 邏輯結構設計

什麼是邏輯結構設計

7.4.1  E-R圖向關係模型的轉換

(1)一個1:1聯繫可以轉換爲一個獨立的關係模式,也可以與任意一端對應的關係模式合併。

7.4.2  數據模型的優化

7.4.3  設計用戶子模式

設計步驟:

  • 概念結構轉換爲一般的關係網狀結構
  • 將轉換來的關係網狀、層次進行數據模型轉換
  • 對數據模型進行優化
  • 設計用戶子模式

7.5 物理設計結構

  1. 確定數據庫的物理結構,在關係數據庫中主要指存取方法和存儲結構。
  2. 對物理結構進行評價,評價的重點是時間和空間效率。
    如果評價結構滿足原設計要求,則可進入到物理實施階段,否則,就需要重新設計或修改物理結構,有時甚至要返回邏輯設計階段修改數據模型。

7.5.1 數據庫物理設計的內容和方法

不同的數據庫產品所提供的物理環境、存取方法和存儲結構有很大差別,能供設計人員使用的設計變量、參數範圍也很不相同,隱藏沒有通用的物理設計方法可遵循,只能給出一般的設計內容和原則。
數據庫上運行的各種事務響應時間小、存儲空間利用率高、事務吞吐率大,

  • 首先對要進行的事務進行詳細分析,獲得選擇物理數據庫設計所需要的參數;
  • 其次,要充分了解所用關係數據庫管理系統的內部特徵,特別是系統所提供的存取方法和存取結構。
     

以下是確定關係的存取方法的依據:
1. 對於數據庫查詢事務,需要得到:

  • 查詢的關係,
  • 查詢條件所涉及的屬性,
  • 連接條件所涉及的屬性,
  • 查詢的投影屬性。

2. 對於數據更新事務,需要得到:

  • 被更新的關係,
  • 每個關係上的更新操作條件所涉及的屬性,
  • 修改操作要改變的屬性值。

3. 除此之外,還需要制定每個事務在各關係上運行的頻率和性能要求。
通常關係數據庫物理設計的內容主要包括爲關係模式選擇存取方法,以及設計關係、索引等數據庫文件的物理存儲結構。

7.5.2 關係模式存取方法選擇

數據庫系統是多用戶共享的系統,對同一個關係要簡歷多條存取路徑才能滿足多用戶的多種應用要求。物理結構設計的任務之一是根據關係數據庫管理系統支持的存取方法確定選擇哪些存取方法。
存取方法是快速存取數據庫中數據的技術。數據庫管理系統一般提供索引方法和聚簇方法


B+樹索引存取方法的選擇
所謂選擇索引存取方法,實際上就是根據應用要求確定對關係的那些屬性列建立索引、哪些屬性列建立組合索引、哪些索引要設計唯一索引。
1)如果一個(或一組)屬性經常在查詢條件中出現,則考慮在這個(或這組)屬性上建立索引(或組合索引)。
2)如果一個屬性經常作爲最大值和最小值等聚集函數的參數,則考慮在這個屬性上建立索引。
3)如果一個(或一組)屬性經常在連接操作的連接條件中出現,則考慮在這個(或這組)屬性上建立索引。
hash索引存取方法的選擇
選擇hash存取方法的規則:如果一個關係的屬性主要出現在等值連接條件中或主要出現在等值比較選擇條件中,而且滿足下列兩個條件之一,則此關係可以選擇hash存取方法。
1)一個關係的大小可預知,而且不變。
2)關係的大小動態改變,但數據庫管理系統提供了動態hash存取方法。

聚簇存取方法的選擇

爲了提高某個屬性(或屬性組)的查詢速度,把這個或這些屬性上具有相同值的元組集中存放在連續的物理塊中稱爲聚簇。該屬性(或屬性組)稱爲聚簇碼。
聚簇功能可以大大提高按聚簇碼進行查詢的效率。
聚簇功能不單適用於單個關係,也適用於經常進行連接操作的多個關係。即把多個連接關係的元組按連接屬性值聚集存放。這就相當於把多個關係按“預連接”的形式存放,從而大大提高連接操作的效率。
一個數據庫可以連接多個聚簇,一個關係只能加入一個聚簇。這樣聚簇存取方法,即確定要建立多少個聚簇,每個聚簇中包括哪些關係。

首先設計候選聚簇,一般來說:
對經常在一起進行連接操作的關係可以建立聚簇。
如果一個關係的一組屬性經常出現在相等比較條件中,則該單個關係可建立聚簇。
如果一個關係的一個(或一組)屬性上的值重複率很高,則此單個關係可建立聚簇。即對應每個聚簇碼值的平均元組數不能太少,太少則聚簇的效果不明顯。
然後檢查候選聚簇中的關係,取消其中不必要的關係
從聚簇中刪除經常進行全表掃描的關係。
從聚簇中刪除更新操作遠多於連接操作的關係。
不同的聚簇中可能包含相同的關係,一個關係可以在某一個聚簇中,但不能同時加入多個聚簇。要從這多個聚簇方案(包括不建立聚簇)中選擇一個較優的,即在這個聚簇上運行各種事務的總代價最小。

7.5.3 確定數據庫的存儲結構

確定數據庫物理結構主要指確定數據的存放位置和存儲結構,包括確定關係、索引、聚簇、日誌、備份等的存儲安排和存儲結構,確定系統配置等。
確定數據的存放位置和存儲結構要綜合考慮存取時間、存儲空間利用率和維護代價三方面的因素。這三個方面常常是相互矛盾的,因此需要進行權衡選擇一個折中方案。

1. 確定數據的存放位置
爲了提高系統性能,應根據應用情況將數據的易變部分與穩定部分、經常存取部分和存取頻率較低部分分開存放。

2. 確定系統配置
關係數據庫管理系統產品一般都提供了一些系統配置變量和存儲分配參數,供設計人員和數據庫管理員對數據庫進行物理優化。

7.5.4 評價物理結構

數據庫物理設計過程中需要對時間效、空間效率、維護代價和各種用戶要求進行權衡,其結果可以產生多種方案。評價物理數據庫的方法完全依賴於所選用的關係數據庫管理系統,主要是從定量估算各種方案的存儲空間、存取時間和維護代價入手,對估算結果進行權衡、比較,選擇出一個較優的、合理的物理結構。
7.6 數據庫的實施和維護

數據的載入和應用程序的調試

數據庫的試運行

數據庫的運行和維護

  • 數據庫的轉儲和恢復
  • 數據庫的安全性、完整性控制
  • 數據庫性能的監督、分析和改造
  • 數據庫的重組織和重構造

習題:

1.試述數據庫設計過程。

答:這裏只概要列出數據庫設計過程的六個階段:

  • ( l )需求分析;
  • ( 2 )概念結構設計;
  • ( 3 )邏輯結構設計;
  • ( 4 )數據庫物理設計;
  • ( 5 )數據庫實施;
  • ( 6 )數據庫運行和維護。

這是一個完整的實際數據庫及其應用系統的設計過程。不僅包括設計數據庫本身,還包括數據庫的實施、運行和維護。設計一個完善的數據庫應用系統往往是上述六個階段的不斷反覆。

2 .試述數據庫設計過程各個階段上的設計描述。

答:各階段的設計要點如下:

  • ( l )需求分析:準確瞭解與分析用戶需求(包括數據與處理)。
  • ( 2 )概念結構設計:通過對用戶需求進行綜合、歸納與抽象,形成一個獨立於具體 DBMS 的概念模型。
  • ( 3 )邏輯結構設計:將概念結構轉換爲某個 DBMS 所支持的數據模型,並對其進行優化。
  • ( 4 )數據庫物理設計:爲邏輯數據模型選取一個最適合應用環境的物理結構(包括存儲結構和存取方法)。
  • ( 5 )數據庫實施:設計人員運用 DBMS 提供的數據語言、工具及宿主語言,根據邏輯設計和物理設計的結果建立數據庫,編制與調試應用程序,組織數據入庫,並進行試運行。
  • ( 6 )數據庫運行和維護:在數據庫系統運行過程中對其進行評價、調整與修改。

3 .試述數據庫設計過程中結構設計部分形成的數據庫模式。

答:數據庫結構設計的不同階段形成數據庫的各級模式,

  • 即: ( l )在概念設計階段形成獨立於機器特點,獨立於各個 DBMS 產品的概念模式,在本篇中就是 E 一 R 圖;
  • ( 2 )在邏輯設計階段將 E 一 R 圖轉換成具體的數據庫產品支持的數據模型,如關係模型,形成數據庫邏輯模式,然後在基本表的基礎上再建立必要的視圖 ( Vi 娜),形成數據的外模式;
  • ( 3 )在物理設計階段,根據 DBMS 特點和處理的需要,進行物理存儲安排,建立索引,形成數據庫內模式。

4 .試述數據庫設計的特點。

答:數據庫設計既是一項涉及多學科的綜合性技術又是一項龐大的工程項目。其主要特點有:

( l )數據庫建設是硬件、軟件和幹件(技術與管理的界面)的結合。

( 2 )從軟件設計的技術角度看,數據庫設計應該和應用系統設計相結合,也就是說,整個設計過程中要把結構(數據)設計和行爲(處理)設計密切結合起來。

5 .需求分析階段的設計目標是什麼?調查的內容是什麼?

答:需求分析階段的設計目標是通過詳細調查現實世界要處理的對象(組織、部門、企業等),充分了解原系統(手工系統或計算機系統)工作概況,明確用戶的各種需求,然後在此基礎上確定新系統的功能。調查的內容是“數據’夕和“處理”,即獲得用戶對數據庫的如下要求:

  • ( l )信息要求,指用戶需要從數據庫中獲得信息的內容與性質,由信息要求可以導出數據要求,即在數據庫中需要存儲哪些數據;
  • ( 2 )處理要求,指用戶要完成什麼處理功能,對處理的響應時間有什麼要求,處理方式是批處理還是聯機處理;
  • ( 3 )安全性與完整性要求。

6 .數據字典的內容和作用是什麼?

答:數據字典是系統中各類數據描述的集合。數據字典的內容通常包括:

( l )數據項; ( 2 )數據結構; ( 3 )數據流; ( 4 )數據存儲; ( 5 )處理過程五個部分。

其中數據項是數據的最小組成單位,若干個數據項可以組成一個數據結構。數據字典通過對數據項和數據結構的定義來描述數據流和數據存儲的邏輯內容。數據字典的作用:數據字典是關於數據庫中數據的描述,在需求分析階段建立,是下一步進行概念設計的基礎,並在數據庫設計過程中不斷修改、充實、完蓋。

7 .什麼是數據庫的概念結構?試述其特點和設計策略。

答:概念結構是信息世界的結構,即概念模型,其主要特點是:

( l )能真實、充分地反映現實世界,包括事物和事物之間的聯繫,能滿足用戶對數據的處理要求,是對現實世界的一個真實模型;

( 2 )易於理解,從而可以用它和不熟悉計算機的用戶交換意見,用戶的積極參與是數據庫設計成功的關鍵;

( 3 )易於更改,當應用環境和應用要求改變時,容易對概念模型修改和擴充;

( 4 )易於向關係、網狀、層次等各種數據模型轉換。概念結構的設計策略通常有四種:

  • l )自頂向下,即首先定義全局概念結構的框架,然後逐步細化;
  • 2 )自底向上,即首先定義各局部應用的概念結構,然後將它們集成起來,得到全局概念結構;
  • 3 )逐步擴張,首先定義最重要的核心概念結構,然後向外擴充,以滾雪球的方式逐步生成其他概念結構,直至總體概念結構;
  • 4 )混合策略,即將自頂向下和自底向上相結合,用自頂向下策略設計一個全局概念結構的框架,以它爲骨架集成由自底向上策略中設計的各局部概念結構。

8 .什麼叫數據抽象?試舉例說明。

答:數據抽象是對實際的人、物、事和概念進行人爲處理,抽取所關心的共同特性,忽略非本質的細節,並把這些特性用各種概念精確地加以描述,這些概念組成了某種模型。如“分類’夕這種抽象是:定義某一類概念作爲現實世界中一組對象的類型。這些對象具有某些共同的特性和行爲。它抽象了對象值和型之間的, ' i 5 member of ”的語義。在 E 一 R 模型中,實體型就是這種抽象。例如在學校環境中,李英是老師,表示李英是教師類型中的一員,則教師是實體型,李英是教師實體型中的一個實體值,具有教師共同的特性和行爲:在某個系某個專業教學,講授某些課程,從事某個方向的科研。

 9 .試述數據庫概念結構設計的重要性和設計步驟。

答:重要性:數據庫概念設計是整個數據庫設計的關鍵,將在需求分析階段所得到的應用需求首先抽象爲概念結構,以此作爲各種數據模型的共同基礎,從而能更好地、更準確地用某一 DBMS 實現這些需求。設計步驟:概念結構的設計方法有多種,其中最經常採用的策略是自底向上方法,該方法的設計步驟通常分爲兩步:第 1 步是抽象數據並設計局部視圖,第 2 步是集成局部視圖,得到全局的概念結構。

10 .爲什麼要視圖集成?視圖集成的方法是什麼?

答:在對數據庫系統進行概念結構設計時一般採用自底向上的設計方法,把繁雜的大系統分解子系統。首先設計各個子系統的局部視圖,然後通過視圖集成的方式將各子系統有機地融合起來,綜合成一個系統的總視圖。這樣,設計清晰,由簡到繁。由於數據庫系統是從整體角度看待和描述數據的,因此數據不再面向某個應用而是整個系統。因此必須進行視圖集成,使得數據庫能被全系統的多個用戶、多個應用共享使用。一般說來,視圖集成可以有兩種方式: ( l )多個分 E 一 R 圖一次集成; ( 2 )逐步集成,用累加的方式一次集成兩個分 E 一 R 圖。無論採用哪種方式,每次集成局部 E 一 R 圖時都需要分兩步走: ( l )合併,解決各分 E 一 R 圖之間的衝突,將各分 E 一 R 圖合併起來生成初步 E 一 R 圖; ( 2 )修改和重構,消除不必要的冗餘,生成基本 E 一 R 圖。

11 .什麼是數據庫的邏輯結構設計?試述其設計步驟。

答:數據庫的邏輯結構設計就是把概念結構設計階段設計好的基本 E 一 R 圖轉換爲與選用的 DBMS 產品所支持的數據模型相符合的邏輯結構。設計步驟爲 : ( l )將概念結構轉換爲一般的關係、網狀、層次模型; ( 2 )將轉換來的關係、網狀、層次模型向特定 DBMS 支持下的數據模型轉換; ( 3 )對數據模型進行優化。

14 .規範化理論對數據庫設計有什麼指導意義?

答:規範化理論爲數據庫設計人員判斷關係模式的優劣提供了理論標準,可用以指導關係數據模型的優化,用來預測模式可能出現的問題,爲設計人員提供了自動產生各種模式的算法工具,使數據庫設計工作有了嚴格的理論基礎。

15 .試述數據庫物理設計的內容和步驟。

答:數據庫在物理設備上的存儲結構與存取方法稱爲數據庫的物理結構,它依賴於給定的 DBMS 。爲一個給定的邏輯數據模型選取一個最適合應用要求的物理結構,就是數據庫的物理設計的主要內容。數據庫的物理設計步驟通常分爲兩步:

( l )確定數據庫的物理結構,在關係數據庫中主要指存取方法和存儲結構;

( 2 )對物理結構進行評價,評價的重點是時間效率和空間效率。

16 .數據輸入在實施階段的重要性是什麼?如何保證輸入數據的正確性?

答:數據庫是用來對數據進行存儲、管理與應用的,因此在實施階段必須將原有系統中的歷史數據輸入到數據庫。數據量一般都很大,而且數據來源於部門中的各個不同的單位。數據的組織方式、結構和格式都與新設計的數據庫系統有相當的差距,組織數據錄入就要將各類源數據從各個局部應用中抽取出來,分類轉換,最後綜合成符合新設計的數據庫結構的形式,輸入數據庫。因此這樣的數據轉換、組織入庫的工作是相當費力費時的工作。特別是原系統是手工數據處理系統時,各類數據分散在各種不同的原始表格、憑證、單據之中,數據輸入工作量更大。保證輸入數據正確性的方法:爲提高數據輸入工作的效率和質量,應該針對具體的應用環境設計一個數據錄入子系統,由計算機來完成數據入庫的任務。在源數據入庫之前要採用多種方法對它們進行檢驗,以防止不正確的數據入庫。

 17 .什麼是數據庫的再組織和重構造?爲什麼要進行數據庫的再組織和重構造?

答:數據庫的再組織是指:按原設計要求重新安排存儲位置、回收垃圾、減少指針鏈等,以提高系統性能。數據庫的重構造則是指部分修改數據庫的模式和內模式,即修改原設計的邏輯和物理結構。數據庫的再組織是不修改數據庫的模式和內模式的。進行數據庫的再組織和重構造的原因:數據庫運行一段時間後,由於記錄不斷增、刪、改,會使數據庫的物理存儲情況變壞,降低了數據的存取效率,數據庫性能下降,這時 DBA 就要對數據庫進行重組織。 DBMS 一般都提供用於數據重組織的實用程序。數據庫應用環境常常發生變化,如增加新的應用或新的實體,取消了某些應用,有的實體與實體間的聯繫也發生了變化等,使原有的數據庫設計不能滿足新的需求,需要調整數據庫的模式和內模式。這就要進行數據庫重構造。

18 .現有一局部應用,包括兩個實體:“出版社”和“作者”,這兩個實體是多對多的聯繫,請讀者自己設計適當的屬性,畫出 E 一 R 圖,再將其轉換爲關係模型(包括關係名、屬性名、碼和完整性約束條件)。

答:

關係模型爲:作者(作者號,姓名,年齡,性別,電話,地址)出版社(出版社號,名稱,地址,聯繫電話)出版(作者號,出版社號,書的數量)出版關係的主碼作者號,出版社號分別參照作者關係的主碼作者號和出版社關係的主碼出版社號。

 

19 .請設計一個圖書館數據庫,此數據庫中對每個借閱者保存讀者記錄,包括:讀者號,姓名,地址,性別,年齡,單位。對每本書存有:書號,書名,作者,出版社。對每本被借出的書存有讀者號、借出日期和應還日期。要求:給出 E 一 R 圖,再將其轉換爲關係模型。

答 :E 一 R 圖爲:

關係模型爲:讀者(讀者號,姓名,地址,性別書(書號,書名,作者,出版社)借書(讀者號,書號,借出日期,年齡,單位)應還日期)

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章