天天看點

軟體設計師筆記之資料庫模組化一、資料庫設計的階段劃分二、ER模型進階知識

本章的内容主要集中在下午的第二題,相對比較簡單。

(1)設計關系模式:掌握給定一個實際的應用問題如何設計E-R模型,如何将E-R模型轉換成關    系模式,确定聯系類型、主鍵、候選鍵、外鍵,判斷關系模式規範化的程度。

(2)資料庫語言(SQL):掌握給定一個實際的應用問題如何用SQL進行資料定義(建立表、   視圖)、完整性定義及權限定義。

(3)資料庫通路:掌握常用資料庫的通路方法。

本章的考點主要有:E-R模型、關系模式、主鍵、外鍵,偶爾出現SQL   語言方面的試題。

目錄

一、資料庫設計的階段劃分

二、ER模型進階知識

資料庫模組化技術

之前已經對資料庫系統的基礎知識進行了詳細說明(詳細内容參考 “軟體設計師筆記之資料庫系統基礎”),這些知識點也是解答案例分析題的要點。但這些知識相對比較獨立,本節從資料庫模組化的角度來分析整個資料庫設計是怎樣做的,解決比選擇題更難的案例分析題。

一、資料庫設計的階段劃分

前面的幾篇文章曾提到軟體的開發分了多個階段,而軟體開發的本身包括了流程方面的設計與資料方面的設計。資料庫設計正是資料層面的規劃,是以資料庫設計也有階段的劃分,它與軟體開發的階段是吻合的。資料庫設計包括需求分析、概念結構設計、邏輯結構設計和資料庫實體設計四個階段。如圖 “ 資料庫設計流程圖” 所示。

軟體設計師筆記之資料庫模組化一、資料庫設計的階段劃分二、ER模型進階知識

 資料庫設計流程圖

這四個階段的主要工作與産出物總結起來,如表 “資料庫設計的階段劃分” 所示。

軟體設計師筆記之資料庫模組化一、資料庫設計的階段劃分二、ER模型進階知識

資料庫設計的階段劃分

二、ER模型進階知識

關于ER模型的相關内容,第5章已有相關說明,應對上午考試的相關問題那些知識已經足夠用   了,但下午案例分析題難度将超過該水準,因為會涉及ER模型的進階知識。ER模型的進階知識包    括:弱實體、特殊化、概括、聚集,考試中要求掌握弱實體與特殊化。

(1)弱實體

弱實體是一類特殊的實體,這種實體需要依賴于另一個實體,若另一個實體不存在了,它也随之消失。相對而言,弱實體所依賴的那個實體稱為強實體。

例如:訂單實體與訂單明細之間便存在這樣的關系,訂單實體是強實體,而訂單明細為弱實體,若訂單實體不存在了,訂單明細也就沒有存在的必要性了。強實體與弱實體之間的關系表達,   與正常的ER模型略有差異,如圖 “弱實體示意圖” 所示。

軟體設計師筆記之資料庫模組化一、資料庫設計的階段劃分二、ER模型進階知識

弱實體示意圖

(2)特殊化

在資料庫的設計過程中,有時我們會發現,一個實體可以按照某些特征分為幾個子實體,這其實是從普遍到特殊的一個過程,這被稱為“特殊化”。僅從概念了解,會非常抽象,下面看一個例子。

例如:學生這個實體,它就包含了多個子集:大專生、大學生、碩士生、博士生。這便是特殊化。其示意圖如圖 “特殊化示意圖” 所示。

軟體設計師筆記之資料庫模組化一、資料庫設計的階段劃分二、ER模型進階知識

特殊化示意圖