第一章:數據庫的設計
1.1:為什么需要規范數據庫的設計
1.1.1:什么是數據庫設計
數據庫設計就是將數據中的數據實體及這些數據實體之間的關系,進行規范和結構的過程。
1.1.2:數據庫設計非常重要
良好的數據庫設計表現的幾個方面:
l 效率高
l 便於進一步擴展
l 可以使應用程序變得更加容易
1.2:設計數據庫的步驟
需求分析階段
概要設計階段
詳細設計階段
1.2.1:收集信息
創建數據庫之前,必須充分的理解數據庫的需要完成的任務和功能
1.2.2:標識實體
在收集信息后,必須標識數據庫要管理的關鍵對象或實體
1.2.3:標識每個實體需要存儲的信息
標識實體的信息,該實體的屬性,這些屬性將組成表中的列
1.2.4:標識實體之間的關系
關系型數據庫有一項很強大的功能,即他可以關聯數據庫中各項的相關信息
1.3:概要設計--------繪制E—R圖
E-R圖(entity-Relationship):實體關系圖
1.3.1:實體-關系模型
1:實體:現實世界中客觀存在的事物,具有行為特征和屬性。
2:屬性:屬性就是實體的特征
3:聯系:聯系就是兩個或連個以上的實體之間的關系
4:映射關系:表示通過聯系與該實體關聯的其他實體的個數。
一對一:X中的一個實體與Y中的一個實體關聯。Y中的一個實體最多與X中的一個實體關聯
一對多: X中的一個實體與Y中的任意多實體關聯。Y中的一個實體最多與X中的一個實體關聯
多對一:X中的實體與Y中的一個實體關聯。Y中的一個實體最多與X中的任意多實體關聯
多對多:X中的一個實體可以與Y中的任意多實體關聯,,反正成立
5:實體關系圖
矩形表示實體集
橢圓表示屬性
菱形表示關系集
1.3.2:關系數據庫模式
用二維表的形式表示實體和實體之間的數據模型稱為關系模型
R(u) 或者R(A,B) R:表示關系名U:表示屬性集合A,B表示U中的屬性
1.4:邏輯設計--------繪制數據庫模型圖
1.4.1:繪制數據庫模型圖的步驟
新建數據庫模型圖
添加實體
添加數據列即相應的屬性
添加實體之間的映射關系
1.5:數據規范化
1.5.1:設計問題
信息重復
比小心輸入代表的意思一樣,但是用的詞卻不一樣。
更新異常
更新時造成的異常。
插入異常(無法表示某些信息)
本來是一樣的實體,最后插入的一個或對個信息不一樣
刪除異常(丟失有用的東西)
在一些情況下,可能刪除莫一行數據,會丟失一些數據
1.5.2:范式設計
確保每列的原子性。表示不可再分的最小數據單元
第一范式的基礎上,每列都與主鍵有直接的關系。其他列都要依賴於主鍵。(即一個表描述意見事情)
第二范式的基礎上,沒列都和主鍵有直接的關系,但每列之間不存在依賴關系。
1.5.3:規范化和性能的關系
在實際開發過程中,既要考慮三大范式,避免數據的永裕和各種數據操作異常,又要考慮數據訪問的性能,有時,為了減少表之間的連接,提高訪問新能,允許適當的永裕,這是最合適的設計方案!!!