一 、 數據庫設計的概念
1.1 數據庫設計的流程
在數據庫設計的流程上,我們通常根據需求,畫出數據的ER圖.然后在通過ER圖生成數據庫的建庫腳本。
ER圖,所謂的ER圖就是數據庫關系圖
1.2 為什么我們使用ER圖來實現數據庫設計的設計呢?
-
可見即可得.使用ER圖可以通過圖形的方式展示表與表直接的關系
-
可以根據設置的數據庫,方便生成不同的數據庫的SQL建庫腳本
-
可以快速的生成數據庫文檔
二 、 數據庫設計的基礎理論
2.1 數據庫設計的步驟
數據庫設計師根據需求進行設計的
第一步:標識表的設計
第二步:表字段的設計
第三布:表與表之間的設計
2.2 標識表的注意事項
表分為實體表以及業務表
-
實體表:記錄中描述一個對象的表,就是名詞,例如用戶、商品、訂單等
-
業務表:就是需求中一個行為,關注、收藏等(大部分是中間表)
-
但我們通常在標識表時會先標識實體表,再標識業務表.
-
因為業務表一般是用於標識實體表與另一個實體的多對多的關系的.
2.3 標識字段要符合數據庫三大范式
-
第一范式:確保標識的字段的原值性,字段的概念分得不能再分。如:姓名可以分為姓和名。
-
第二范式:確保標識的字段與表有依賴的關系,在用戶表定義一個商品價格
-
第三方范式:確保標識的字段與表有直接依賴的關系,用戶表,用戶類型的名稱
1.第一范式(確保每列保持原子性)
第一范式是最基本的范式。如果數據庫表中的所有字段值都是不可分解的原子值,就說明該數據庫表滿足了第一范式。
2.第二范式(確保表中的每列都和主鍵相關)
第二范式在第一范式的基礎之上更進一層。第二范式需要確保數據庫表中的每一列都和主鍵相關,而不能只與主鍵的某一部分相關(主要針對聯合主鍵而言)。也就是說在一個數據庫表中,一個表中只能保存一種數據,不可以把多種數據保存在同一張數據庫表中。
3.第三范式(確保每列都和主鍵列直接相關,而不是間接相關)
第三范式需要確保數據表中的每一列數據都和主鍵直接相關,而不能間接相關。
三大范式解決了什么問題呢?
使用三大范式的原則標識的數據庫字段,保證了字段在數據庫表中的唯一性.從而避免了數據庫的數據的冗余.
三 、 總結
1. 數據庫設計就是建立項目的表結構
2. 基於數據的復雜性,一般數據庫數據庫是先畫ER圖的。
3. 數據庫設計的步驟是:標識表,標識字段,標識表與表之間關系
標識表,先標識實體表,在標識業務表
實體表(名詞,沒有行為)
業務表(包括業務動作,一般就是一個中間表)
標識字段,必須要求理解三大范式
為什么需要三大范式,避免數據的冗余,導致數據的異常。
數據庫設計總體上要符合三大范式,但是基於業務需求和性能要求,有時候可以有少許的冗余
數據設計冗余,設計者必須要說明原因
標識表與表之間的關系
1. 有哪些表與表之間關系,一對多,多對一,一對一,多對多
2. 表與表之間的關系是由需求決定,討論表之間的關系前,必須要先確定需求
3. 關系數據庫是不能直接支持多對多的業務關系的,如果出現多對多必須要拆分一個中間表,原因是數據庫里面的字段不能存儲一個集合數據。