Successfully reported this slideshow.
Your SlideShare is downloading. ×

關聯式資料庫系統的規劃

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Loading in …3
×

Check these out next

1 of 33 Ad

More Related Content

Slideshows for you (20)

Advertisement

Similar to 關聯式資料庫系統的規劃 (20)

Advertisement

Recently uploaded (20)

關聯式資料庫系統的規劃

  1. 1. 關聯式資料庫系統的規劃
  2. 2. 本章內容 • MySQL實體資料庫檔案結構 • MySQL的資料表與索引結構 • 如何規劃與設計資料庫 • 資料庫正規化
  3. 3. 學習本章後,你將會 • 瞭解並指出MySQL的實體檔案的預設資料夾位置 • 變更預設的MySQL實體檔案存放資料夾位置 • 瞭解MySQL的資料表結構及其作用 • 瞭解MySQL的索引結構 • 瞭解關聯式資料庫規劃的方法 • 能夠簡單說明資料庫正規化的用途 • 能夠運用第一正規化、第二正規化、第三正規化及Boyce-Codd正 規化進行簡單的資料庫規劃
  4. 4. 規劃資料庫系統的儲存空間 • 資料庫系統會隨著存放的資料量增加而佔用更多硬碟空間 • 規劃資料庫系統的第一步是要預估資料量 • 按資料量來規劃需要的儲存設備(硬碟)空間
  5. 5. MySQL儲存資料的方法 • 指定預設的資料庫檔案儲存資料夾 • 可以是連線在MySQL Server上的儲存設備 • MySQL Server有權限讀寫資料檔案 • 對資料夾要擁有系統管理者權限 • 建立附檔名為.frm、.MYD、.MYI的MySLQ資料庫檔案 • .frm:紀錄資料表的結構 • .MYD:儲存 MyISAM 資料表的資料 • .MYI:儲存 MyISAM 資料表的索引檔
  6. 6. MySQL的資料庫實體檔案 • MySQL 5.6安裝完成的預設資料庫實體檔案資料夾為 C:ProgramDataMySQLMySQL Server 5.6data • 下頁圖示為預設安裝完成後的MySQL資料庫實體檔案資 料夾內容 • 主檔名為db者,即為系統資料庫 • MySQL資料庫檔案可以複製 • 最好先停止MySQL資料庫服務再複製 • 複製,是遷移MySQL資料庫檔案最直接的方法
  7. 7. MySQL預設的資料庫實體檔案圖示
  8. 8. MySQL的預設資料庫檔案儲存資料夾 • 預設的C:ProgramData資料夾是被 Windows隱藏的系統資料夾 • 由檔案總管視窗的資料夾選項設定 • 點選“顯示隱藏的檔案、資料夾及磁碟機” • 取消勾選“隱藏保護的作業系統檔案” • 參見左圖 • 再由檔案總管打開C磁碟機資料夾,即 可見到系統資料夾C:ProgramData
  9. 9. 變更MySQL預設資料庫檔案資料夾(一) • MySQL資料庫管理需要進入 資料庫檔案資料夾 • 為避免破壞Windows作業系 統的系統安全,建議變更 MySQL的預設資料庫檔案資 料夾位置 • 由“服務”停止MySQL資料庫 系統
  10. 10. 變更MySQL預設資料庫檔案資料夾(二) • 建立新的MySQL資料庫檔案資料 夾,例如C:MySQLDBFiles • 將原MySQL資料庫檔案資料夾 C:ProgramDataMySQLMySQL Server 5.6data中的所有檔案及 子資料夾複製到新的MySQL資料 庫檔案資料夾C:MySQLDBFiles中 • 參見左圖複製完後的新MySQL資 料庫檔案資料夾內容
  11. 11. 變更MySQL預設資料庫檔案資料夾(三) • 複製完成後,以筆記本(Notepad) 打開MySQL的系統架構檔My.ini C:ProgramDataMySQLMySQL Server 5.6My.ini • 找到My.ini的[mysqld]節點,編輯 其中datadir參數,將其內容變更 為 datadir="C:/MySQLDBFiles“ • 參見左圖
  12. 12. 變更MySQL預設資料庫檔案資料夾(四) • 重新啟動MySQL資料庫服務, 如左圖,狀態必須為“執行 中” • 檢查新的MySQL資料檔案資 料夾中的各個資料庫檔案是 否變更為最新系統時間 • 如變更,完成預設資料夾 • 沒有變更,請重新由步驟(一) 進行
  13. 13. 變更MySQL預設資料庫檔案資料夾(五) • 恢復Windows作業系統資料夾安全性 • 點選“不顯示隱藏的檔案、資料夾及磁碟機” • 勾選“隱藏保護的作業系統檔案” • 參見左圖 • 進入C磁碟機資料夾,確定無法點選 C:ProgramData資料夾
  14. 14. 回顧 MySQL預設資料庫檔案資料夾 • 本節說明MySQL資料庫系統的資料庫檔案預設資料夾 • 說明在Windows作業系統中變更MySQL資料庫檔案預設資料夾的 原因 • 說明在Windows作業系統中變更MySQL資料庫檔案預設資料夾的 操作步驟 • 在Linux作業系統中,變更MySQL資料庫檔案預設資料夾的操作步 驟類似
  15. 15. MySQL資料庫系統的資料表結構 • MySQL資料庫系統的資料表,由下列要素構成 • 資料表的名稱 • 資料表中的欄位(Field),由下列要素構成 • 欄位名稱(Field Name) • 可存放的資料型別(Data Type) • 存放資料的限制條件,例如不可存放空值(Null) • 索引鍵(Index Key)
  16. 16. 綱要(Schema) • 綱要是指資料庫系統中,資料儲存架構的定義 • 由一群有關聯的資料表,及其相關的引索鍵與控制程式組成 • 綱要的應用視不同的資料庫管理系統(DBMS)的設計而異 • MySQL資料庫管理系統對綱要的應用主要是在資料庫層級 • 資料庫 = 綱要 • Oracle資料庫管理系統對綱要的應用主要是在使用者帳號層級 • 資料庫 -> 使用者帳號 = 綱要 • Microsoft SQL Server則是提供獨立的綱要層級,不一定會用到 • 資料庫 -> 綱要
  17. 17. MySQL資料庫系統的索引 • MySQL資料庫系統的索引有以下數種 • INDEX,或稱為Key,是種直接、非惟一值的索引 • Unique,惟一值索引,限制索引值必須是惟一 • Primary,主索引,每個資料表只能有一個主索引,其索引值惟一 • FullText,全文檢索,這是用來建立搜尋功能的索引
  18. 18. MySQL資料庫系統的索引結構 • MySQL資料庫系統提供兩種索引結構 • B-Tree,二元樹索引結構,預設使用 • Hash,雜湊索引結構,只用在Memory/Heap Table • Memory/Heap Table是比較特殊的資料表結構,和一般儲存在碟硬 上的資料表不同,主要是以記憶體為儲存設備,講求速度、效能 的情況下可運用這種特殊的資料表結構
  19. 19. B-Tree索引結構 • 如左圖,先以13為比較 基礎,小於13的數字放 左邊,大於13的數字放 右邊 • 依此類推小於4,介於4 和7,及大於7的數字分 別存放 • 當搜尋數字1,先比較13, 再比較4,只要比較兩次 即可找到數字1,大幅縮 減搜尋資料時的比較次 數及時間
  20. 20. 回顧 MySQL資料庫系統的資料表及引索 • 資料表主要由:欄位名稱、資料型別及限制條件構成 • 資料表中有索引鍵的結構,來簡化搜尋資料的過程 • MySQL的索引鍵結構有B-Tree和Hash兩種 • 預設使用B-Tree索引結構 • Hash是用在特殊的Memory/Hash Table中
  21. 21. 如何規劃與設計資料庫 • 規劃一個資料庫,和建立資料庫的目的有直接關聯 • 例如 • • • • 購物網站資料庫 學生學籍資料庫 國家地理資訊資料庫 戶政資料庫 • 設計資料庫是將資料庫的細節,如資料表結構、索引結構等資料 庫物件的實際結構,予以詳細的設計
  22. 22. 規劃資料庫的考量 • 資料量大小 • 資料的型態,文字、圖形、多媒體 • 資料被存取的方法 • 資料庫反應速度的要求 • 資料庫的存取權限及資訊安全 • 資料庫的服務水準的要求,例如一週7天每天24小時不能停頓 • 儲存設備的要求 • 備援機制的設計,異地備援的要求 • 建置資料庫的預算
  23. 23. 設計資料庫的要求 • 遵循資料庫正規化的步驟,適當移除資料表結構中重覆資料欄位 • 根據查詢資料表內容的條件,設計適當的主鍵及相關索引鍵 • 注意資料型別應用的限制,例如整數可容納數字大小 • 儘量保存與設計資料庫相關的原始文件,以利日後瞭解設計的考 量何在
  24. 24. 資料庫正規化(Database Normalized) • 正規化是為關聯式資料庫系統的設計而發展出來的方法 • 由下而上評估關聯表綱要是否符合正規化型式(Normal Form) • 正規化型式的目的在 • 去除資料表結構中的重覆性(Redundancy),例如學生姓名只要出現在學籍 基本資料表中,不用在成績資料表與選課資料表中出現 • 去除不一致相依性(Inconsistent Dependency),例如學生王大同在成績資 料表中,有五個不同課程的成績,對照學籍基本資料表中,兩個課程對 照記錄A,三個課程對照記錄B,記錄A與B均指向相同的王大同,發生資 料不一致的情形。
  25. 25. 正規化型式(Normal Form) • 正規化型式是用來設計資料庫中資料表結構的方法 • 有六個正規化型式 • • • • • • 第一正規化型式(First Normal Form) 第二正規化型式(Second Normal Form) 第三正規化型式(Third Normal Form) Boyce-Codd正規化型式(Boyce-Codd Normal Form) 第四正規化型式(Fifth Normal Form) 第五正規化型式(Sixth Normal Form) • 通常做到第三正規化型式或Boyce-Codd正規化型式即可
  26. 26. 正規化型式的步驟
  27. 27. 未正規化的關聯表
  28. 28. 第一正規化型式(1NF)
  29. 29. 第二正規化型式(2NF)
  30. 30. 第三正規化型式(3NF)
  31. 31. Boyce-Codd正規化型式(BCNF) • 對大多數應用,執行到第三正規化型式即可,不用再執行BCNF及 其後的第四、第五正規化型式 • 如果資料表的主鍵是由多個欄位構成(又稱為複合欄位)時,就要 再執行Boyce-Codd正規化型式。 • 其步驟 • 檢查第三正規化型式後的關聯表 • 若主鍵只有一個欄位,符合BCNF。 • 若主鍵有多個欄位,則需檢查主鍵中的各欄位不可以相依於其他非主鍵 的欄位。 • 上頁中的各個關聯表的主鍵均只有一個欄位,故均符合BCNF。
  32. 32. BCNF舉例 • 下圖最右方成績關聯表主鍵有兩個欄位:學號、課程編號 • 成績欄位相依於學號及課程編號欄位:對課程編號欄位而言,並沒有相依於成績欄位;對 學號欄位而言,, 也沒有相依於「成績」欄位。 • 所以成績資料表是符合BCNF的資料表。。
  33. 33. 回顧 資料庫正規化 • 資料庫正規化有六個的步驟 • 一般做到第三正規化型式即可算是完成資料庫正規化 • BCNF主要是檢查 • 關聯表的主鍵是否有多個欄位構成 • 若主鍵有多個欄位,主鍵中的欄位不可相依於非主鍵的欄位 • 只有一個欄位的主鍵,即符合BCNF,不用再檢查 • 商業應用的資料庫設計,很少用到第四、第五正規化型式

×