1. 程式人生 > >SQL資料庫設計(一)---需求分析與邏輯設計

SQL資料庫設計(一)---需求分析與邏輯設計

今天先來介紹 資料庫設計中的需求分析和邏輯設計(ER圖)階段,明天介紹物理設計與維護優化,資料庫設計是非常有意思的:-)

資料庫設計

根據系統業務的需要,結合我們所選用的DBMS,為這個業務系統構建出最優的資料儲存模型。
並建立好資料庫中的表結構,以及表與表之間的關聯關係的過程.使之能有效的對應用系統中的資料進行儲存,
並可以高效的對已經儲存的資料進行訪問.

優良的資料庫設計

  • 減少資料冗餘
  • 避免資料維護異常
  • 節約儲存空間
  • 高效的訪問

需求分析

分析資料和屬性各自的特點

  1. 瞭解系統中所要儲存的資料
  2. 瞭解資料的儲存特點
  3. 瞭解資料的儲存週期

需求分析中需要了解的問題

  1. 實體之間的關係
  2. 實體包含的屬性是什麼
  3. 那些屬性或屬性的組合可以唯一標示一個實體

電商網站資料模組的分解

模組 屬性 可選唯一標識屬性 儲存特點
使用者模組 使用者名稱,密碼,電話,郵箱,身份證號,地址,姓名等 使用者名稱,身份證號,電話 隨上線時間增加,需要永久儲存
商品模組 商品編碼,商品名稱,商品描述,商品品類,供應商名稱,重量,有效期,價格等 (商品名稱,供應商名稱),商品編碼 對於下線商品可以歸檔儲存
訂單模組 訂單號,使用者姓名,使用者電話,收貨地址,商品編號,商品名稱,數量,價格,訂單狀態,支付狀態,訂單型別 訂單號 永久儲存(分表,分庫儲存)
購物車模組 使用者名稱,商品編號,商品名稱,商品和價格,商品描述,商品分類,加入時間,商品數量 (使用者名稱,商品編號,加入時間),購物車編號 不用永久儲存(設定歸檔,清理規則)
供應商模組 供應商編號,供應商名稱,聯絡人,電話營業執照號,地址,法人 供應商編號,營業執照號 永久儲存

邏輯設計

ER圖:邏輯模型得到展示方式
使用ER圖對資料庫進行邏輯建模,與DBMS無關。

ER圖的圖形含義

這裡寫圖片描述

電商網站資料模組ER圖

這裡寫圖片描述

邏輯設計名詞解釋

這裡寫圖片描述
不滿足三個正規化的設計的資料庫會出現操作異常及資料冗餘


操作異常
這裡寫圖片描述
資料冗餘:相同的資料在多個地方得到,或者說表中的某個列可以由其他列計算得到。

第一正規化(1NF)

資料庫表中所有欄位都是單一屬性的,不可再分的,這些單一屬性使用基本的資料結構構成的.
第一正規化要求資料庫中所有的表都是二維表.

第二正規化(2NF)

資料庫中的表不存在非關鍵欄位對任意候選關鍵的欄位的部分函式依賴.
部分函式依賴指存在組合關鍵字中某一關鍵字決定非關鍵字的情況.
所有單關鍵欄位的表都符合第二正規化

不滿足第二正規化的示例
這裡寫圖片描述

解決不滿足第二正規化造成的操作異常問題

這裡寫圖片描述

第三正規化(3NF)

第三正規化是建立在第二正規化的基礎上的
如果資料庫表不存在非關鍵欄位對任意候選關鍵欄位的傳遞函式依賴則符合第三正規化

不滿足第三正規化的示例
這裡寫圖片描述
解決不滿足第三正規化造成的操作異常
這裡寫圖片描述

BC正規化(BCNF)

在第三正規化的基礎上,資料庫表中如果不存在任何欄位對任意候選關鍵欄位的傳遞函式依賴則符合BC正規化
如果是複合關鍵字,則複合關鍵字之間也不能存在函式依賴關係.

這裡寫圖片描述