一.數據庫設計的概念數據庫
數據庫設計是將數據庫中的數據實體及這些數據實體之間的關係,進行規劃和結構化的過程.數據庫設計
二.數據庫設計的重要性性能
若是一個數據庫沒有進行一個良好的設計,那麼這個數據庫完成以後他的缺點是:spa
1.效率會很低設計
2更新和檢索數據時會出現不少問題,3d
反之,一個數據庫被盡心策劃了一番,具備良好的設計,那他的優勢是:blog
1.效率會很高.開發
2.便於進一步擴展.效率
3.使得應用程序的開發變得更容易.基礎
三.設計數據庫的步驟
1.需求分析階段:分析客戶的業務和數據處理需求.
2.概要設計階段:他主要就是繪製數據庫的E-R圖.
3.詳細設計階段:應用數據庫的三大範式進行審覈數據庫的結構.
總結:在進行數據庫的系統分析時,都如下列4點位參考的基本步驟.
01.收集信息.
02.標識實體.
03.標識每一個實體須要儲存的詳細信息.
04.標識實體之間的關係.
四.學會繪製E-R圖
繪製E-R圖首先要了解什麼是實體,什麼是屬性,什麼是聯繫.
1.首先實體是指現實世界中具備區分其餘事物的特徵或屬性與其餘實體有聯繫的實體,針對於數據庫中的表而言實體是指表中一行一行特定數據,但咱們在開發中,也經常把整個表稱爲一個實體.
2.屬性能夠理解爲實體的特徵,針對於數據庫中的表而言實體是指表中的列.
3.聯繫是兩個或多個實體之間的關聯關係.
4.實體關係圖:
例:酒店管理系統E-R圖:
五.映射基數
1.一對一:X中的一個實體最對與Y中的一個實體關聯,而且Y中的一個實體最多與X中的一個實體關聯.
Eg:一我的只有一張身份證.
2.一對多:X中的一個實體能夠與Y中的任意數量的實體關聯;Y中的一個實體最多與X中的一個實體關聯.
Eg:一個班級有多名學生.
3.多對一:X中的一個實體最多與Y中的一個實體關聯;Y中的一個實體能夠與X中的任意數量的實體關聯.
Eg:客人與客房之間的關係,一個客人只能住一間客房.
4.多對多:X中的一個實體能夠與Y中的任意數量的實體關聯,反之亦然.
Eg:學生和課程之間的關係,一個學生能夠有多門課程,一門課程能夠對應多名學生.
六.繪製數據庫模型圖
以酒店管理系統爲例:
七.數據庫規範化
若是數據庫沒有進行相應的規範設計,雖然在查詢數據庫可能會比較容易,但有時會形成一些問題,主要的問題以下:
1.信息重複(會形成儲存空間的浪費及一些其餘問題).
2.更新異常(冗餘信息不只浪費空間,還會增長更新的難度).
3.插入異常
4.刪除異常(在某些狀況下,當刪除一行時,可能會丟失有用的信息).
八.三大範式
1.第一範式:
目標是確保每列的原子性.若是每列都是不可再分的最小數據單元,則知足第一範式.
2.第二範式:
第二範式在第一範式的基礎上更進一層,其目標是確保表中的每列都和主鍵相關,也就是說在一個數據庫表中,一個表中只能保存一種數據,不能夠把多種數據保存在同一張數據庫表中.若是一個關係知足第一範式,而且除了主鍵之外的其餘列都依賴與該主鍵.則知足第二範式.
3.第三範式:
第三範式在第二範式的基礎上更進一層,第三範式的目標是確保每列都和主鍵列直接相關,而不是間接相關.若是一個關係知足第二範式,而且除了主鍵之外的其餘列都這能依賴於主鍵列,列和列之間不存在相互依賴關係,則知足第三範式.
九.規範性和性能的關係
爲了知足三大範式,咱們的數據操做性能會受到相應的影響,因此,在實際的數據庫設計中,既要考慮三大範式,避免數據的冗餘和各類數據操做異常;有要考慮到數據訪問性能,有時,爲了減小表間鏈接,提升數據庫的訪問性能,容許適當的數據冗餘列,這多是最合適的數據庫設計方案.