数据库设计【笔记】
                            
                            
                            數據庫設計
?一、設計步驟
?? 1.收集信息(來源項目需求分析)
?? 2.標識實體(一般是需求分析中需要管理的信息名詞)
?? 3.標識每個實體的屬性
?? 4.實體之間的關系
二、畫e-r圖(實體關系圖)
?? 1.矩形表示實體
?? 2.橢圓表示實體的屬性
?? 3.菱形表示實體之間的關系
?? 4.用直線連接實體和屬性,實體和實體之間的關系
三、實體之間的關系:
?? 1.一對一? 1:1????????? 車和車位
?? 2.一對多? 1:N (1:M) 客人和客房
?? 3.多對多? N:M????????? 圖書和作者
四、E-R圖映射到數據表
?? 1.一般一類實體映射為表
?? 2.實體中的屬性映射為表中的列
?? 3.關系的映射:
????? (1)一對一:映射為一個表,其中一個實體的屬性
????? (2)一對多:每個實體一個表,通過主外鍵表示關系,如客人和客房,在客人表里添加一個房間號作為外鍵,客房中的房間號就是主鍵。
????? (3)多對多:每個實體一個表,關系映射為一個表
????? 映射3個表,圖書表? 作者表? 關系表
五、用三大范式衡量或規范數據庫
?? 1.每列都是一個不可再分的單元(保持原子性)? 符合第一大范式
?? 2.在滿足第一范式的情況下,每個表只描述一件事,就符合第二范式
?? 3.在滿足一二范式的情況下,并且除主鍵外,其他列都不傳遞依賴于主鍵,符合第三范式(除主鍵外, 所有的列都是直接依賴于主鍵而不是間接的依賴于主鍵)
六、數據非規范化設計:
??? 規范化設計的話是把大表拆分成小表,節約空間但同時會降低性能,為了提高性能,進行非規劃化設計
                        
                        
                        ?一、設計步驟
?? 1.收集信息(來源項目需求分析)
?? 2.標識實體(一般是需求分析中需要管理的信息名詞)
?? 3.標識每個實體的屬性
?? 4.實體之間的關系
二、畫e-r圖(實體關系圖)
?? 1.矩形表示實體
?? 2.橢圓表示實體的屬性
?? 3.菱形表示實體之間的關系
?? 4.用直線連接實體和屬性,實體和實體之間的關系
三、實體之間的關系:
?? 1.一對一? 1:1????????? 車和車位
?? 2.一對多? 1:N (1:M) 客人和客房
?? 3.多對多? N:M????????? 圖書和作者
四、E-R圖映射到數據表
?? 1.一般一類實體映射為表
?? 2.實體中的屬性映射為表中的列
?? 3.關系的映射:
????? (1)一對一:映射為一個表,其中一個實體的屬性
????? (2)一對多:每個實體一個表,通過主外鍵表示關系,如客人和客房,在客人表里添加一個房間號作為外鍵,客房中的房間號就是主鍵。
????? (3)多對多:每個實體一個表,關系映射為一個表
????? 映射3個表,圖書表? 作者表? 關系表
五、用三大范式衡量或規范數據庫
?? 1.每列都是一個不可再分的單元(保持原子性)? 符合第一大范式
?? 2.在滿足第一范式的情況下,每個表只描述一件事,就符合第二范式
?? 3.在滿足一二范式的情況下,并且除主鍵外,其他列都不傳遞依賴于主鍵,符合第三范式(除主鍵外, 所有的列都是直接依賴于主鍵而不是間接的依賴于主鍵)
六、數據非規范化設計:
??? 規范化設計的話是把大表拆分成小表,節約空間但同時會降低性能,為了提高性能,進行非規劃化設計
總結
 
                            
                        - 上一篇: DreamHost vs HostGat
- 下一篇: 数据库的实现【笔记】
