重要的重點整理
資料庫設計包含- 操作介面設計:就是表單設計或是以程式設計所撰寫的操作介面。可使使用者不必接觸資料庫的結構,方便操作資料庫。
- 結構設計:是指設計出適當且最佳化的資料表。可提升其整體的存取效率及儲存效率。
了解客戶需求→概念設計→邏輯設計→建立資料庫
了解客戶需求:設計者最主要的工作是收集建立資料庫所需的資訊。 主要的工作包含:
- 針對客戶需求,確定設計範圍
- 收集和分析資料
概念設計:主要的工作是將收集的資料,經過分析及整理後,產生一個能符合使用者需求的資料庫模型,並以簡單的形式表現出來。
- 第一階段:
建立分區概念設計圖:分別針對不同需求的使用者,確定使用範圍。 - 其次:
整合為全區概念設計圖:完成分區的概念模型後,將它們整合為一個全區概念模型。 必須注意解決各分區概念設計之間不一致的情形和刪除概念設計中重複或多餘的物件
邏輯設計:是將概念設計階段產生的結果,轉換為實際使用的資料表。 可分為以下兩項:
- 轉換為資料表:完成概念設計階段後,我們還必須遵循規則,將實體-關係圖正確無誤地轉換為實際使用的資料表。
- 資料表正規化:在轉換資料表後,能依照正規化的步驟重新檢驗一次,最好讓每一個資料表都能符合BCNF的規範。
建立資料庫:經過邏輯設計階段後,紙上的分析工作即已完成。接著將結果建立成資料庫。
從客戶分析到建立實體-關係圖
Step1:
收集資料,確定設計範圍: 主要的工作為
- 處理客戶訂單,並產生出貨單交由倉庫出貨
- 將出貨單中詳列的產品包裝後,運送到客戶手中
- 依照出貨單上的產品產生請款單,送到客戶手中
- 客戶依照請款單上的金額繳付,公司收到客戶的帳款後,便開立發票寄送到客戶處
Step2:
依照不同的使用者訂出分區的設計範圍:主要牽涉到三個不同部門的使用者;分別為業務部門(負責處理訂單事宜)、發行部門(負責依照業務人員開立的出貨單,將產品送到客戶手中)及財務部門(負責處理開立發票及催收帳款事宜),設計時必須針對不同需求,分別設計。
Step3:
列出系統中的實體及其屬性:實體通常是整理資料中的名詞。 從業務部門可得知實體為:
- 訂單:包含(*訂單編號)、客戶名稱、聯絡人、地址、電話、訂單日期、訂單細目、總金額即備註等屬性
- 書籍:
- 客戶:包含(*訂單編號)、客戶名稱、聯絡人、地址及電話等屬性
- 出貨單:包含(*出貨單編號)、產品名稱、地址、電話、客戶名稱及聯絡人等屬性
財務部門的實體為:訂單、請款單、客戶及發票
發行部門的實體為:出貨單、產品及客戶
Step4:
建立實體之間的關係: 探討業務部門實體之間的關係
- 訂單與產品的關係
- 客戶和訂單的關係
- 出貨單與訂單的關係
Step5:
加入屬性:實體和關係確認後,只要將屬性加入,即完成了實體-關係圖
整合為全區的概念模型:最主要的工作就是要消除各分區圖的不一致,產生一個能被所有使用者接受的概念模型
整合分區實體-關係圖可能遭遇的問題有三類:
- 屬性不一致:各分區圖,對於相同實體的屬性類型、範圍、單位等會有不同。
- 命名不一致:可能發生在實體或關係上,也可能發生在屬性上。 可分為兩種
同名不同義:不同的物件,在不同的分區圖中,具有相同的名稱同義不同名:相同的物件,在不同的分區圖中,具有不同的名稱 - 結構不一致: 為了滿足不同需求,整合時可使用多對多的關係來表示。 常見的幾種情形
同一物件在不同的分區圖中的表現的方式不同同一實體在不同的分區圖中,所包含的屬性不相同實體間的關係在不同的分區圖中不相同
全區的概念設計:
Step1:
整合實體:主要是檢討各分區圖中,實體名稱及其代表的意義是否有衝突
Step2:
整合關係:主要是針對不同分區圖中相同實體之間的關係整合,看是否有不一致的地方
Step3:
整合屬性:主要是檢討各實體中的屬性名稱及其代表的意義是否有衝突
Step4:
清除不必要的實體、關係及屬性:許多實體、關係及屬性可由其他的實體、關係及屬性推導出來。因為這些實體和關係,如果留在資料庫的結構中,可能會破壞資料庫的完整性,增加維護的困難度,因此我們必須將其刪除
將實體-關係圖轉換為關聯式的資料表: 遵守以下的規則
- 實體及屬性的轉換:實體-關係圖中所有的實體都用資料表來表示;而屬性則轉換成為資料表欄位,若為鍵屬性,則會成為該資料表的主鍵
- 弱實體的轉換:必須將其依賴實體的鍵屬性加入,做為該弱實體的連外鍵,並與該弱實體的識別屬性合起來,成為弱實體的主鍵
- 多值屬性的轉換:必須為該屬性另外建立資料表
- 實體間關係的轉換: 主要分為以下的轉換
一對一關係的轉換:將部份參與實體的主鍵放入全部參與的實體中,做為連外鍵一對多關係的轉換:在實體-關係圖中,一對多的關係是將一個父資料表("一"的這一方)中的主鍵放入子資料表("多"的這一方)中,做為子資料表的連外鍵
- 多對多關係的轉換:必須為關係另外建立一個資料表,且該資料表要包含她所關聯的實體的主鍵
- 超類型和子類型的轉換:
Disjoint子類型的轉換:子類型為兩個不想交Overlap子類型的轉換:子類型為重疊關係
如何轉換為關聯式的資料表:
Step1:
將實體轉換為資料表、屬性轉換為欄位:對於實體-關係圖中的所有實體和屬性,分別轉換為資料表及欄位,鍵屬性則轉換為該資料表的主鍵
Step2:
建立資料表之間的關聯:根據各實體之間的關係,轉換成資料表之間的關聯
實力評量
檢測實力
選擇題
- (4):經過邏輯設計階段後,紙上的分析工作即已完成。接著將結果建立成資料庫
- (3):實體-關係圖中所有的實體都用資料表來表示
- (4):鍵屬性,則會成為該資料表的主鍵
- (4):每一個資料表都能符合BCNF的規範
- (3):必須為該屬性另外建立資料表
- (3):解決各分區概念設計之間不一致的情形和刪除概念設計中重複或多餘的物件
填充題
- 了解客戶需求;概念設計;邏輯設計;建立資料庫
- 轉換為資料表;資料表正規化
- 父資料表;子資料表
- 父資料表;子資料表
問答題
- 先操作介面設計再來結構設計

沒有留言:
張貼留言