第二章 規劃關連式資料庫
DESCRIPTION
第二章 規劃關連式資料庫. 章節概覽. 規劃關連式資料庫前的準備工作 開始規劃關連式資料庫 資料庫的三個正規化 資料表與資料表的關連建立 資料庫正規化的檢查. 減少儲存空間 降低輸入錯誤 增進資料庫效率. 規劃資料庫目的. 2.1 規劃關連式資料庫前的準備工作. 第一步驟:系統使用者的訪談 第二步驟:可行性分析 第三步驟:將系統所需儲存的資訊欄位寫出來 第四步驟:資料庫的正規化 正規化 資料表關聯 商業邏輯規則與限制式. 2.1.1 第一步驟:系統使用者的訪談. 系統建立前的準備工作 主要了解應用系統的主要功能為何 了解商業流程的走向. - PowerPoint PPT PresentationTRANSCRIPT
1
第二章規劃關連式資料庫
2
章節概覽
規劃關連式資料庫前的準備工作 開始規劃關連式資料庫 資料庫的三個正規化 資料表與資料表的關連建立 資料庫正規化的檢查
減少儲存空間減少儲存空間降低輸入錯誤降低輸入錯誤增進資料庫效率增進資料庫效率
規劃資料庫目的
3
2.1 規劃關連式資料庫前的準備工作
第一步驟:系統使用者的訪談 第二步驟:可行性分析 第三步驟:將系統所需儲存的資訊欄位寫出來 第四步驟:資料庫的正規化
正規化 資料表關聯 商業邏輯規則與限制式
4
2.1.1 第一步驟:系統使用者的訪談
系統建立前的準備工作 主要了解應用系統的主要功能為何 了解商業流程的走向
5
2.1.2 第二步驟:可行性分析
分析完成這個專案所需耗費的時間與所使用的技術
將專案所需的技術列出 依照訪談內容評估需要的技術及估計完成的時間
( 如 : 甘特圖 )
6
2.2 開始規劃關連式資料庫
第三步驟:將系統所需儲存的資訊欄位寫出來 第四步驟:資料庫的正規化
7
第三步驟:將系統所需儲存的資訊欄位寫出來
將可能會用到的資料列舉出來 設定資料的格式與資料型別 可利用實際的報表、表單、歷史資料
8
資料表列法 Notation : 主鍵有底線
Table name
Primary key is underlined
Table columns
Customer(CustomerID, Phone, Name, Address, City, State, ZipCode)
CustomerID Phone LastName FirstName Address City State Zipcode
1 502-666-7777 Johnson Martha 125 Main Street Alvaton KY 421222 502-888-6464 Smith Jack 873 Elm Street Bowling Green KY 421013 502-777-7575 Washington Elroy 95 Easy Street Smith’s Grove KY 421714 502-333-9494 Adams Samuel 746 Brown Drive Alvaton KY 421225 502-474-4746 Rabitz Victor 645 White Avenue Bowling Green KY 421026 616-373-4746 Steinmetz Susan 15 Speedway Drive Portland TN 371487 615-888-4474 Lasater Les 67 S. Ray Drive Portland TN 371488 615-452-1162 Jones Charlie 867 Lakeside Drive Castalian Springs TN 370319 502-222-4351 Chavez Juan 673 Industry Blvd. Caneyville KY 4272110 502-444-2512 Rojo Maria 88 Main Street Cave City KY 42127
9
第四步驟:資料庫的正規化
將大資料表切割成小資料表 資料表與資料表之間有關連性 用來維護資料的一致性
10
2.3 資料庫的三個正規化
資料庫的第一正規化:避免重覆群組 First Normal Form , 1NF
資料庫的第二正規化:欄位與主鍵有相依性與建立關連 Second Normal Form , 2NF
資料庫的第三正規化:檢查欄位與欄位間是否有從屬關係 Third Normal Form , 3NF
E.F. Codd1970 年
11
資料庫的第一正規化:避免重覆群組
避免重覆群組 每個資料表要找尋主索引鍵 利用主索引鍵可以將資料表中唯一的一筆資料取
出
12
1NF 範例 :
原始資料 :
訂單 ( 訂單編號 , 訂單日期 , 項目 1, 書籍名稱 1, 價格 1, 數量 1, 項目 2, 書籍名稱 2, 價格 2, 數量 2, 項目 3 , 書籍名稱 3, 價格 3, 數量 3… , 送貨地點 , 連絡人 )
1NF 資料 (1 張訂單有很多筆訂貨資料 )
訂單 ( 訂單編號 , 訂單日期 , 總金額 , 送貨地點 , 連絡人 )
訂單項目表 ( 訂單編號 , 項目編號 , 書籍名稱 , 價格 , 數量 )
一對多關聯一對多關聯
13
資料庫的第二正規化:欄位與主鍵有相依性與建立關連
主索引鍵與其他欄位之間,有沒有直接的關連性 若沒有直接關連性,必需要拆成另一個資料表
非 PRIMARY KEY 的欄位 不能 只與 PK 中的部份欄位有關係
14
2NF 範例 :
原始資料 :
訂單項目表 ( 訂單編號 , 項目編號 , 書籍名稱 , 價格 , 數量 )
2NF 資料 :
訂單項目表 ( 訂單編號 , 項目編號 , 書籍編號 , 數量 )
書籍資料表 ( 書籍編號 , 書籍名稱 , 價格 )
一對多關聯一對多關聯∞∞
11
15
2.4 欄位與主鍵有相依性與建立關連
16
一對一的資料表關連性
17
一對多的資料表關連性
18
建立關連的方式
19
關連的建立成功
20
多對多的資料表關連性 ( 一 )
21
多對多的資料表關連性 ( 二 )
22
多對多的資料表關連性 ( 三 )
23
2.5 資料庫正規化注意事情
非主索引鍵的欄位間不應該有相依的從屬關係
2.5.1 資料庫的第三正規化:檢查欄位與欄位間是否有從屬關係
24
3NF 範例 :
原始資料 :
訂單 ( 訂單編號 , 訂單日期 , 總金額 , 送貨地點 , 連絡人 )
3NF 資料 :
客戶 ( 客戶編號 , 連絡人 , 送貨地點 )
訂單 ( 訂單編號 , 訂單日期 , 總金額 , 客戶編號 )
一對多關聯一對多關聯11∞∞
25
2.5.2 資料庫正規化要注意的事項
避免過度的正規化 正規化後應試著新增、修改、刪除幾筆資料看看
26
本章學習成果
一個專案在開發時的步驟。 資料庫正規化的目的。 第一正規化的目的。 第二正規化的目的。 第三正規化的目的。 資料庫的正規化適可而止,因為在現實社會中
,還要搭配商業邏輯規則。