2010年10月23日 星期六

第11章 建立關聯式資料庫

11-1如何設計一個完善的資料庫
資料庫設計包含2部分:
操作介面設計:就ACCESS而言,操作介面設計就是表單的設計,或是以程式語言所撰寫的操作介面。

結構設計:指設計出適當且最佳化的資料表。(結構良好能提升整體的存取效率及儲存效率)

資料庫設計流程
規劃過程分為4階段:了解客戶需求 > 概念設計 > 邏輯設計 > 建立資料庫

了解客戶需求包含2項:1.針對客戶需求,確定設計範圍 2.收集和分析資料

概念設計:主要工作是將收集的資料,經過分析及整理後,產生一個能符合使用者需求的資料庫模型,以簡單型式展現出來(實體-關係模型是主要工具)。
主要分2個階段:第一個階段是建立分區概念設計圖;其次將分區整合為一個全區的概念設計圖

邏輯設計:主要工作是將概念設計階段產生的結果,轉換為實際使用的資料表。
此階段工作有2項:
轉換為資料表:完成概念設計階段後,必須將實體-關係圖轉換為實際使用的資料表,才能為資料庫使用。

資料表正規化:在轉換為資料表後,能依照正規化的步驟重新檢驗一次,最好讓每個資料都符合BCNF的規範。

完成邏輯階段設計後,紙上的分析工作即已完成。接著將結果建立成資料庫。

搶答時間:步驟如上

11-2從客戶分析到建立實體-關係圖

1.收集資料,確定設計範圍
2.依照不同的使用者訂出分區的設計範圍
3.列出系統中的實體及其屬性(屬性前有標示 "*" 符號者,為識別各個實體的鍵屬性)
4.建立實體之間的關係
5.加入屬性

11-3整合為全區的概念模型
整合分區實體-關係圖可能遭遇的問題有3類:

屬性不一致:有時分區圖,對於相同實體的屬性類型、範圍、單位...會有不同。

命名不一致:分為同名不同義(不同物件,在不同分區圖中,具有相同名稱),同義不同名(相同物件,在不同分區圖中,具有不同名稱)。

結構不一致:1.同一物件在不同的分區圖中表現的方式不同。
                        解決:檢查該物件在圖中是否擁有屬性,或和其他實體產生關係。若是,即可將之設為實體。
                        2.同一實體在不同的分區圖中,所包含屬性不相同。
                       解決:因為分區圖所重視的物件屬性並不相同,解決方法是將所有屬性都納入。
                        3.實體間的關係在不同的分區圖中不相同。
                       解決:在整合時,就可使用多對多關係來設計。

整合全區的概念設計
1.整合實體:實體的整合主要是檢討各分區圖中,實體的名稱及其代表的意義是否有衝突。

2.整合關係:關係的整合主要是針對不同分區圖中相同時體之間的關係整合,看是否有不一致的地方。

3.整合屬性:屬性的整合主要是檢討個實體中的屬性名稱及其代表的意義是否有衝突。

4.消除不必要的實體、關係及屬性

11-4將實體-關係同轉換為關聯式的資料表
實體及屬性的轉換
實體-關係圖中所有的實體都用資料表來表示;而屬性則轉換成為資料表的欄位,若為鍵屬性,則會成為該資料表的主鍵。

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

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

實體間關係的轉換
一對一關係的轉換:將部分參與實體的主鍵放入全部參與的實體中,做為連外鍵。

一對多關係的轉換:在實體-關係圖中,一對多的關係是將一個父資料表中的主鍵放入子資料表中,作為子資料表的連外鍵。

多對多關係的轉換:實體為多對多關係時,必須為關係另外建立一個資料表,且該資料表要包含它所關連的實體的主鍵。

超類型和子類型的轉換


實力評量
一、選擇題
1.設計實體-關係模型是屬於資料庫設計中的概念設計階段。(2)
2.由實體-關係圖推導出關聯式資料庫過程中,若為實體,則轉換為資料表。(3)
3.由實體-關係圖推導出關聯式資料庫過程中,若該屬性為鍵屬性,則轉換為主鍵。(4)
4.實體-關係模型設計出來的資料庫,一般都能符合資料庫正規化的第三階段的規範。(.3)
5.若學生實體的專長為多值屬性,則另外建立專長資料表,將學生實體的鍵屬性加入專長資料表,成為專長資料表的連外鍵,並且與該資料表的識別欄位合起來成為主鍵。(2)
6.調查使用者需求不式整合實體-關係模型應注意事項。(3)

二、填充題
1.了解客戶需求 > 概念設計 > 邏輯設計 > 建立資料庫

2.轉換為資料表、資料表正規化

3.父、子

4.父、子

三、問答題
1.資料庫設計2大部分;操作介面設計、結構設計。
設計過程分4個階段執行:了解客戶需求 > 概念設計 > 邏輯設計 > 建立資料庫。

2.



3.確定資料庫設計的範圍及應具備的功能。

四、實作題



沒有留言:

張貼留言