資料庫設計總結

不開心也要好一生發表於2019-01-16

資料庫設計總結:
第一次寫部落格,剛學了資料庫設計,簡單回顧總結一下。
寫在前面,瞭解一下專案開發流程:
1.需求調研----系統邊界
2.需求文件
3.原型設計—UI,HTML頁面
4.設計資料庫
5.後臺開發,公共程式碼編寫
6.功能編碼

1.資料庫的三正規化:
第一正規化:保持屬性的原子性,概念分的不能再分,如姓名可分為姓和名,所以姓名不滿足第一正規化。
第二正規化:所有列依賴於主鍵,一個表只描述一件事情。
第三正規化:每一列直接依賴於主鍵
如:A依賴於B,B依賴於C,在數學上我們可以認為A依賴C,但在資料庫違反第三正規化。
注:只有主鍵才能設定自動增長,自動增長一定是主鍵,而主鍵不一定自動增長。

2.E-R圖:資料庫關係圖,用來描述現實世界的概念模型。
使用E-R圖的好處:
(1)方便梳理表與表的關係
(2)可以快速生成sql建庫指令碼
小發現:
可以先使用流程圖梳理各角色各模組之間的關係,再使用E-R畫出表之間的關係,效果更佳。

3.資料庫設計步驟:
(1)標識表
(2)標識表的欄位
(3)標識表與表之間的關係
4.表的關係:由需求決定。
(1)型別:一對一,一對多,多對一,多對多。
(2)資料庫中沒有直接多對多關係的存在,原因是資料庫裡面的欄位不能儲存集合。
實現多對多的方式:a.使用中間表 b.表中欄位之間用逗號

5.冗餘可能會帶來的問題:
(1)資訊重複
(2)更新異常
(3)插入異常
(4)刪除異常:在某些特定情況下,當刪除一行時,可能會丟失有用的資訊

6.資料庫設計原則:
設計資料庫的時候應儘量符合三大正規化,避免資料的冗餘,但有時為了資料庫的訪問效能,允許適當的冗餘
如:商品表中的金額欄位,可分解為單價*數量 ,說明金額是冗餘項,不符合第一正規化,但從業務邏輯考慮,增加金額欄位,可以提高查詢速度,使用的目的是為了提高處理速度。

有寫的不好的地方還望大家海涵。

相關文章