一.資料庫設計的概念資料庫設計是將資料庫中的數據實體及這些數據實體之間的關係,進行規劃和結構化的過程.二.資料庫設計的重要性如果一個資料庫沒有進行一個良好的設計,那麼這個資料庫完成之後他的缺點是:1.效率會很低2更新和檢索數據時會出現很多問題,反之,一個資料庫被盡心策划了一番,具有良好的設計,那他的...
一.資料庫設計的概念
資料庫設計是將資料庫中的數據實體及這些數據實體之間的關係,進行規劃和結構化的過程.
二.資料庫設計的重要性
如果一個資料庫沒有進行一個良好的設計,那麼這個資料庫完成之後他的缺點是:
1.效率會很低
2更新和檢索數據時會出現很多問題,
反之,一個資料庫被盡心策划了一番,具有良好的設計,那他的優點是:
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.第三範式:
第三範式在第二範式的基礎上更進一層,第三範式的目標是確保每列都和主鍵列直接相關,而不是間接相關.如果一個關係滿足第二範式,並且除了主鍵以外的其他列都這能依賴於主鍵列,列和列之間不存在相互依賴關係,則滿足第三範式.
九.規範性和性能的關係
為了滿足三大範式,我們的數據操作性能會受到相應的影響,所以,在實際的資料庫設計中,既要考慮三大範式,避免數據的冗餘和各種數據操作異常;有要考慮到數據訪問性能,有時,為了減少表間連接,提高資料庫的訪問性能,允許適當的數據冗餘列,這可能是最合適的資料庫設計方案.