• 沒有找到結果。

第四增量 - 資料庫設計

第三章 遊戲系統分析與設計

3.4 第四增量 - 資料庫設計

資料模型(data model)是指一組工具,可用於描述資料庫的架構(蔣定 安,2000)。而所謂資料庫的架構是指資料庫中各種不同的資料類型(data type)和資料及資料間各種不同的關係(relationships)。在眾多資料模型中,

由 於 關 聯 式 資 料 庫 最 廣 泛 的 被 應 用 且 容 易 設 計(Hoffer and Prescott, 2003),因此本研究決定採用關聯式資料模型。

3.4.1 關聯式資料模型的結構

簡單來說,關聯式資料模型是用一群表格(table)來代表一個關聯式資 料庫,而這種表格稱之為關聯表。資料庫中的每個關聯表都有唯一的名 稱,表3為一關聯表名稱為玩家的例子。在每一個關聯表中,每一列皆代 表一個實體(entity),在每一行則代表一個屬性(attribute)(如表 3中的學號、

姓名和電子信箱),關聯表中的每個屬性都有唯一的名稱;而每一個屬性皆 有其特定的定義域。

表3 玩家關聯表

玩家 學號 姓名 電子信箱

U123456789 王小明 a@yahoo.com.tw U987654321 林小美 b@yahoo.com.tw U111122222 陳小華 c@yahoo.com.tw

所謂實體可分為實際存在的物體和具有抽象觀念的個體(Dayal and Chen, 1995)。舉例來說,對於一個姓名為王小明而學號是 U123456789 的 學生來說,他就是一個實際存在的實體;對於一門課號為ABC-123 的供應 鏈管理課程來說,它就是一個抽象的實體。而屬性就是描述該實體的特 性。以王小明的例子來說,他是一個實體玩家,具有姓名及學號兩個屬性;

因此我們可以藉由姓名及學號描述該實體的特性。

在關聯式資料庫模型中,鍵(key)的觀念是相當重要的。鍵有很多種 類,不過由於在本研究中,主要用到的鍵為主鍵(primary key, pk)和外鍵

(foreign key, fk)。主鍵是一個實體中的一個屬性,此屬性可以區別出關聯 表中的每一列,而每一個實體只能存在「唯一」的主鍵。在關聯表中,本 研究以底線表示出該關聯表中當作主鍵的屬性,如在表3中,學號就是該 關聯表中的主鍵。而外鍵就是各實體可以透過它建立起彼此的關係性。

3.4.2 設計資料庫

為了完成SIMPLE 2.0 資料庫的建構,本研究透過正規化(normalization) 的步驟來決定哪些屬性應該放在同一個關聯表中,如此可以將關聯表分解 Ahhway

Alumi Step 2:轉換成第一正規化形式(first normal form, 1NF)

,則 當關聯表中沒有重複群組,且每個關聯表都有可以辨識的主鍵時

完成第一正規化的步驟。因此,我們從表4中,找出三個決定性的屬 性,分別為「帳號」、「設定編號」與「遊戲編號」,其功能相依性如 下:

帳號 → 遊戲編號,玩家資料,歷史資料 (second normal f

當關聯表符合第一正規化形式,且屬性間無部分相依性時

Step 4:轉換成第三正規化形式(third normal form, 3NF)

如果關聯表符合第二正規化形式,且屬性間無可遞移相依性時,就完 成第三正規化的步驟。在圖 23中,帳戶這個關聯表在完成第二正規化 的同時,因為沒有可遞移相依部份,同時完成第三正規化形式;而關 聯表2 中仍有可遞移相依,因此將遊戲這個關聯表的可遞移相依部份 從關聯表 2 中分開產生新的關聯表,並將此關聯表命名為「編號」,

其結果如圖24所示。

移除可遞移相依部份 圖24

完成上述四個步驟之後,則合併圖24中的三個關聯表;由於透過帳戶 關聯表中的遊戲編號可以找到遊戲關聯表中的設定編號,透過遊戲關聯表 中的設定編號可以找到編號關聯表中的人數設定及成本設定,因此帳戶關 聯表中的遊戲編號和遊戲關聯表中的設定編號為外鍵,最後產生的資料關 聯式綱要如圖25所示。

遊戲編號 設定編號 遊戲編號

帳號 玩家資料 歷史資料 帳戶(3NF)

遊戲(3NF)

人數設定 成本設定

設定編號 編號(3NF)

遊戲 主鍵 遊戲編號

圖25 資料的關聯式綱要 設定編號

帳戶 主鍵 帳號

遊戲編號 玩家資料 歷史資料

編號 主鍵 設定編號

人數設定 成本設定

外鍵 外鍵

相關文件