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