2010年10月20日 星期三

Ch11. 建立關聯式資料庫

重點整理 :

11-1 如何設計一個完善的資料庫

資料庫設計包含兩大部分 :
  • 操作者介面設計 : 就像是表單的設計,或是以程式語言所撰寫的操作介面。讓使用者不必接觸資料庫的結構,就能操作資料庫。
  • 結構設計 :是指設計出適當且最佳化的資料表。結構良好的資料庫可提升整體的存取效率及儲存效率。
資料庫的設計流程

資料庫的規劃過程大致可分為 4 個階段
  • 了解客戶需求概念設計 邏輯設計建立資料庫
了解客戶需求

在這個階段,設計者需要收集建立資料庫所需的資訊,做為後續設計的基礎。其中主要的工作包含兩項 :
  • 針對客戶需求,確定設計範圍
  • 收集和分析資料
※ 從現有的表單來收集資料,是快速又有效率的方法。

概念設計

這個階段中,設計者不需考慮資料的儲存及處理等與電腦相關的問題。主要需將收集的資料,經過分析及整理後,產生一個能符合使用者需求的資料庫模型。(如 : 實體 - 關係圖)

通常我們將概念設計分為兩個階段 :
  • 建立分區概念設計圖 : 需分別針對不同需求的使用者,確定使用範圍。應針對不同的需求,設計不同的概念模型。
  • 整合為全區概念設計圖 : 完成分區的概念模型後,便要將它們整合為一個全區概念模型。
整合時必須注意 : 解決各分區概念設計之間不一致的情形、刪除概念設計中重複或多餘的物件,以免造成後續設計時的困擾。

邏輯設計

此階段的主要工作,必須將概念設計產生的結果,轉換成實際使用的資料表。大致上的工作可分為兩項。
  • 轉換為資料表 : 我們必須將 實體 - 關係圖 正確無誤的轉換為實際使用的資料表。
  • 資料表正規化 : 為使資料庫最佳化,在轉換資料表後,能依照正規化的步驟重新檢驗一次,最好讓每一個資料表都能符合 BCNF 的規範 。
建立資料庫

經過上述步驟後,接著就是要將結果建立成為資料庫


11-2  從客戶分析到建立實體 - 關係圖
  • Step 1 : 收集資料,確定設計範圍。
  • Step 2 : 依照不同的使用者訂出分區的設計範圍。
  • Step 3 : 列出系統中的實體及其屬性,例如 地點、人物、概念、設備等。
  • Step 4 : 建立實體之間的關係,這時就可利用到上一章所學分別為一對一一對多多對多的關係。
  • Step 5 : 加入屬性,實體和關係確認後,只要將屬性加入,即可完成實體 - 關係圖

※ 當我們在判斷一個物件究竟是實體屬性時,必須注意它是否還有其他屬性,或與其他實體產生關係。若有的話,則應被視為實體

11-3  整合為全區的概念模型

由於各分區的實體 - 關係模型面對的問題不同,容易導致各分區圖存在許多不一致的地方。因此整合時,最重要的工作便是消除各分區圖的不一致,產生一個能被所有使用者接受的概念模型。


整合分區實體 - 關係圖時可能遭遇的問題

整合實體 - 關係圖時可能遇到的問題有 3 類 :
  • 屬性不一致 : 各分區圖,對於相同實體的屬性類型、範圍、單位 ...等 會有不同。若遇上屬性不一致,通常容易解決,只要與各部門討論協商,訂出共同標準即可。
  • 命名不一致 : 大致上可分為兩種,同名不同義 同義不同名。與屬性不一致一樣,只要訂出一個共同標準即可。
  • 結構不一致 同一物件在不同的分區圖中的表現方式不同;或同一個實體在不同的分區圖中,所包含的屬性不相同;又或者實體間的關係在不同的分區圖中不相同。
※  為了滿足不同的需求,在整合時,就可使用多對多的關係來表示。

實體 - 關係圖的整合可分為實體關係屬性 3 部分的整合。
  • 整合實體
  • 整合關係
  • 整合屬性
  • 消除不必要的實體、關係及屬性
11- 4  將實體 - 關係圖轉換為關聯式的資料表

實體及屬性的轉換,實體 - 關係圖中所有的實體都用資料表來表示;而屬性則轉換成資料表的欄位,若有鍵屬性,則成為資料表的主鍵


弱實體的轉換,轉換時,必須將其依賴實體的鍵屬性加入,做為該弱實體的連外鍵,並與該弱實體的識別屬性合起來,成為弱實體的主鍵


多值屬性的轉換,在轉換時,必須為該屬性另外建立資料表。


實體間關係的轉換,我們可將其分為 :
  • 『 一對一 』關係的轉換
  • 『 一對多 』關係的轉換
  • 『 多對多 』關係的轉換
超類型和子類型的轉換,轉換中子類型會有兩種情況,分別為子類型為兩個不相交、子類型屬於重疊的關係,這兩種狀況。

如何轉換為關聯式資料表 :
  • Step 1 : 將實體轉換為資料表屬性轉換為欄位
  • Step 2 : 建立資料表之間的關聯

一、選擇題

1. ( 2 ) 設計實體 - 關係模型是屬於資料庫設計步驟中的概念設計階段

2. ( 3 ) 由實體 - 關係圖推導出關聯式資料庫的過程中,若為實體,則會被轉換為資料表

3. ( 4 ) 由實體 - 關係圖推導出關聯式資料庫的過程中,若該屬性為鍵屬性,則會被轉換為主鍵

4. ( 3 ) 利用實體 - 關係模型設計出來的資料庫,一般都能符合資料庫正規化第三階段的規範。

5. ( 2 ) 由實體 - 關係圖導出關聯式資料庫的過程中,若學生實體的專長屬性為多值屬性,則必須 " 為專長屬性另外建立專長資料表,將學生實體的鍵屬性加入專長資料表,成為專長資料表的連外鍵,並且與該資料表的識別欄位合起來成為主鍵 " 。

6. ( 3 ) 調查使用者需求,並不是整合實體 - 關係圖時應注意的事項。


二、填充題

1.  資料庫的規劃過程大致可分為哪 4 個階段 : 了解客戶需求概念設計 邏輯設計

2.  以實體 - 關係圖為例,在邏輯設計階段的工作為 轉化為資料表資料表正規化 等兩項。

3.  在實體 - 關係圖的轉換過程中,若兩實體間是一對多的關係,則必須將 資料表的主鍵放入 資料表中做為連外鍵。

4.  在一對多的關係中," " 的這一方是 資料表,而 " " 的這一方則是 資料表。


三、問答題

1. 資料庫設計的步驟大致上可分為 :
  • 了解客戶需求概念設計 邏輯設計建立資料庫
2. 將實體 - 關係圖轉換為關聯式資料表 :

3. 一旦對使用者的需求有了更進一步的認知,我們才可以依照使用者的需求來製作資料庫,不但對製作上的方向可以更確定,且使用者往後在操作上,也會帶來更多的便利,不會說找不到需要的功能或式操作不易 ...等問題的產生。


四、實作題




    沒有留言:

    張貼留言