第九章——规范数据库设计
生活随笔
收集整理的這篇文章主要介紹了
第九章——规范数据库设计
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
第九章——規范數據庫設計
9.1 為什么需要設計數據庫?
糟糕的數據庫
- 數據冗余,浪費空間
- 數據庫的插入和刪除都會麻煩、異常【屏蔽使用物理外鍵】
- 程序性能差
良好的數據庫
- 節省內存空間
- 保證數據的完整性
- 方便我們開發
數據開發中你那個,關于數據庫的設計需要:
- 分析需求:分析業務和需要處理的數據庫需求
- 概要設計:設計關系圖E-R圖
設計數據庫的步驟(以個人博客為例):
- 收集信息,分析需求
- 用戶表(用戶登錄注銷、用戶個人信息、寫博客、創建分類)
- 分類表(文章分類,是由誰創建的)
- 文章表(文章的信息)
- 評論表
- 友情鏈接表(友鏈信息)
- 自定義表(系統信息,某個關鍵的字,或者一些主題)
- 說說表(發表心情)
- 標識實體(把需求落地到每個字段)
- 標識實體之間的關系
- 寫博客:user--->blog
- 創建分類:user--->category
- 關注:user--->user
- 友鏈:links
- 評論:user--->user--->blog
9.2 三大范式
為什么需要數據規范化?
- 信息重復
- 更新異常
- 插入異常
- 無法正常顯示信息
- 刪除異常
- 丟失有效信息
三大范式
?第一范式(1NF)
要求數據庫的表的每一列都是不可分割的原子數據項
原子性:保證每一列不可再分
?第二范式(2NF)
前提是滿足第一范式,非主屬性必須完全依賴于候選碼(在1NF的基礎上消除非主屬性對主碼的部分函數依賴)
每張表只描述一件事情
?第三范式(3NF)
前提是滿足第一范式和第二范式,任何非主屬性不依賴于其他主屬性(在2NF的基礎上消除傳遞依賴),第三范式需要確保數據表中的每一列數據都和主鍵直接相關,而不能間接相關。
第三范式需要確保表中的每一列數據都與主鍵直接相關,而不能間接相關。
?參考鏈接:三大范式 - 云夢曦 - 博客園
總結
以上是生活随笔為你收集整理的第九章——规范数据库设计的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: iOS webview 实现不允许上拉回
- 下一篇: C++笔记-学习算法与实现-计算几何-二