一、資料庫設計的必要性
在實際的軟體專案中,如果系統中需要儲存的資料量比較大,需要設計的表比較多,表與表之間的關係比較複雜,那我們就需要進行規範的資料庫設定。如果不經過資料庫的設計,我們構建的資料庫不合理、不恰當,那麼資料庫的維護、執行效率會有很大的問題。這將直接影響到專案的執行性和可靠性。
二、什麼是資料庫設計
資料庫設計實際上就是規劃和結構化資料庫中的資料物件以及這些資料物件之間的關係過程。
三、資料庫設計的重要性
ø 不經過設計的資料庫或是設計糟糕的資料庫很可能導致
1、 資料庫執行效率地下
2、 更新、刪除、新增資料出現問題
ø 良好設計的資料庫
1、 執行效率高
2、 使應用程式更便於開發
3、 擴充套件性好
4、 維護性好
四、資料模型
資料模型就像是資料間聯絡的乙個輪廓圖,整個模型就像乙個框架。
如果按照記錄間聯絡的表示方式,對資料模型進行分類,可以分為:層次模型、網狀模型、關係模型。前兩種又稱為格式化資料模型。資料模型的好壞直接影響到資料庫的效能,所以資料模型的選擇是資料庫設計的首要任務。
ø 實體-關係(e-r)資料模型
e-r資料模型(entity-relationship data model),即實體-關係資料模型。e-r資料模型不同於傳統的關係資料模型,它不是面向實現,而是面向現實物體的。
ø 實體(entity)
資料是用來描述現實中的物體的,而描述的物件都是形形色色的,有具體的、也有抽象的;有物理上存在的、也有概念性的。凡是可以互相區別而且可以被人們認識的事、物、概念等統統抽象為實體。多個相同的型別的實體可以稱為實體集(entity set)。因此,在e-r資料模型中,也有型與值之分;實體可以作為型來定義,每個實體可以是它的例項和值。
ø 屬性(attribute)
實體一般具體若干特徵,這些特徵稱為實體的屬性。而每個屬性都有自己的取值範圍,在e-r資料模型中稱為值集(value set)。在同一實體集中,每個實體的屬性及其值集都是相同的,但可能取不同的值。屬性對應資料庫表的列。
ø 關係(relationship)
實體之間會有各種關係,這些關係抽象為聯絡。不但實體可以有屬性,關係也可以有屬性。
五、資料庫設計步驟
ø 資料庫設計可以分為以下幾個階段
1、 需求分析階段:分析客戶的業務需求,特別是資料方面的需求
2、 概要設計階段:繪製資料庫的e-r圖,並確認需求文件的正確性和完整性,e-r圖是專案的設計人員、開發人員、測試人員,以及和客戶進行溝通的重要憑據
3、 詳細設計階段:將概要設計階段的e-r圖轉換為資料庫表,進行邏輯設計,確定各個表之間的主外來鍵關係,運用資料庫的三正規化進行審核,並進行技術評審。最後決定選哪種資料庫(oracle、sqlserver、mysql)來建庫、建表。
ø 需求分析階段:資料庫系統分析
秀氣分析階段的重點是調查、收集、分析客戶的業務資料需求以及資料的安全性、完整性需求等。
需求分析步驟:
1、 確認業務需求
2、 標識關係實體
3、 標識每個實體的具有的屬性
4、 確認實體之間的關係
ø 概要設計階段:繪製e-r圖
作為資料庫設計者,你需要和專案組內其他成員分享你的設計思路,共同研討資料庫設計的合理性、安全性、完整性,並確認是否符合客戶的業務需求。那麼使用e-r圖,這種圖形化的表示方式最為直觀。
* e-r圖中的實體、屬性和關係
上面的簡單e-r圖可以看出使用者和收支之間的關係。在上圖中可以看出:用矩形表示實體,實體是一般名詞;橢圓表示屬性,一般也是名詞;菱形表示關係,一般是動詞。
* 對映基數
對映基數表示可以通過關係與該實體的個數。對於實體集a和b之間的二元關係,可能的對映基數有:
1、 一對一:也就是a實體中最多只有乙個b實體的關聯,而b實體的最多只有乙個a實體的關聯。用e-r圖表示:
2、 一對多:a實體可以與b實體任意數量的進行關聯,b中的實體最多與a中的乙個實體關聯。e-r圖表示:
3、 多對一:a實體最多與乙個b實體進行關聯,而b實體可以和任意多個a實體進行關聯。e-r圖表示:
4、 多對多:a實體可以有多個b實體,而b實體也可以有任意多個a實體。e-r圖表示:
* e-r圖
e-r圖可以以圖形化的方式將資料庫的整個邏輯結構表示出來,組成部分有:
1、 矩形表示實體集
2、 橢圓表示屬性
3、 菱形表示關係、
4、 直線用來連線實體集與屬性、實體集和關係
5、 直線箭頭表示實體集之間對映基數
ø 詳細設計階段:將e-r圖轉換為表
步驟如下:
1、 將各個實體轉換為對應的表,將各屬性轉換為對應的列
2、 標識每張表的主鍵
3、 將實體之間的關係轉換為表與表之間的主外來鍵關係
六、資料庫設計規範化
ø 資料庫設計中經常出現的問題
1、 資料冗餘大
2、 插入資料異常
3、 刪除異常
4、 更新異常
ø 規範設計
乙個較好的關聯式資料庫模型,它的每個關係中的屬性一定要滿足某種內在的語義條件,即要按一定的規範設計關係模型,這就是設計的規範化。
在資料庫設計時,有一些專門的規則,稱為資料庫的設計正規化,遵循這些規則,就可以建立出良好的資料庫,資料庫著名的三大正規化理論:
1、 第一正規化(1nf)
第一正規化是滿足關聯式資料庫模型所要遵循的最基本的條件正規化,幾關係中的每個屬性必須是不可再分的簡單項,不能是屬性組合,即屬性的取值是不可拆分的原子值。
2、 第二正規化(2nf)
第二正規化是在第一正規化的基礎上,確保表中的每列都和主鍵相關。其定義是如果乙個關係滿足1nf,並且除了主鍵關係外的其他列都依賴於該主鍵,則滿足第二正規化。
3、 第三正規化(3nf)
ø 規範化和效能關係
為了滿足三大正規化,資料庫的效能可能會有一定程度的降低。所以,在實際資料庫設計中,我們既要盡量滿足三大正規化,從而避免資料冗餘和各種資料庫的操作異常,同時也要考慮資料的訪問效能。有時候,為了提高資料庫的訪問效率,適當的允許少量資料冗餘咧存在,才是最適合的資料庫設計方案。
SQL Server 資料庫設計
一 資料庫設計的必要性 在實際的軟體專案中,如果系統中需要儲存的資料量比較大,需要設計的表比較多,表與表之間的關係比較複雜,那我們就需要進行規範的資料庫設定。如果不經過資料庫的設計,我們構建的資料庫不合理 不恰當,那麼資料庫的維護 執行效率會有很大的問題。這將直接影響到專案的執行性和可靠性。二 什麼...
SQL Server 資料庫設計
一 資料庫設計的必要性 在實際的軟體專案中,如果系統中需要儲存的資料量比較大,需要設計的表比較多,表與表之間的關係比較複雜,那我們就需要進行規範的資料庫設定。如果不經過資料庫的設計,我們構建的資料庫不合理 不恰當,那麼資料庫的維護 執行效率會有很大的問題。這將直接影響到專案的執行性和可靠性。二 什麼...
SQL Server 資料庫設計
在實際的軟體專案中,如果系統中需要儲存的資料量比較大,需要設計的表比較多,表與表之間的關係比較複雜,那我們就需要進行規範的資料庫設定。如果不經過資料庫的設計,我們構建的資料庫不合理 不恰當,那麼資料庫的維護 執行效率會有很大的問題。這將直接影響到專案的執行性和可靠性。資料庫設計實際上就是規劃和結構化...