資源描述:
《SQL Server 數(shù)據(jù)庫設計》由會員上傳分享,免費在線閱讀,更多相關內容在行業(yè)資料-天天文庫。
1、SQLServer數(shù)據(jù)庫設計一、數(shù)據(jù)庫設計的必要性在實際的軟件項目中,如果系統(tǒng)中需要存儲的數(shù)據(jù)量比較大,需要設計的表比較多,表與表之間的關系比較復雜,那我們就需要進行規(guī)范的數(shù)據(jù)庫設置。如果不經(jīng)過數(shù)據(jù)庫的設計,我們構建的數(shù)據(jù)庫不合理、不恰當,那么數(shù)據(jù)庫的維護、運行效率會有很大的問題。這將直接影響到項目的運行性和可靠性。二、什么是數(shù)據(jù)庫設計數(shù)據(jù)庫設計實際上就是規(guī)劃和結構化數(shù)據(jù)庫中的數(shù)據(jù)對象以及這些數(shù)據(jù)對象之間的關系過程。三、數(shù)據(jù)庫設計的重要性?不經(jīng)過設計的數(shù)據(jù)庫或是設計糟糕的數(shù)據(jù)庫很可能導致1、數(shù)據(jù)庫運行效率地下2、更新、
2、刪除、添加數(shù)據(jù)出現(xiàn)問題?良好設計的數(shù)據(jù)庫1、執(zhí)行效率高2、使應用程序更便于開發(fā)3、擴展性好4、維護性好四、數(shù)據(jù)模型數(shù)據(jù)模型就像是數(shù)據(jù)間聯(lián)系的一個輪廓圖,整個模型就像一個框架。如果按照記錄間聯(lián)系的表示方式,對數(shù)據(jù)模型進行分類,可以分為:層次模型、網(wǎng)狀模型、關系模型。前兩種又稱為格式化數(shù)據(jù)模型。數(shù)據(jù)模型的好壞直接影響到數(shù)據(jù)庫的性能,所以數(shù)據(jù)模型的選擇是數(shù)據(jù)庫設計的首要任務。?實體-關系(E-R)數(shù)據(jù)模型E-R數(shù)據(jù)模型(Entity-Relationshipdatamodel),即實體-關系數(shù)據(jù)模型。E-R數(shù)據(jù)模型不同于傳統(tǒng)
3、的關系數(shù)據(jù)模型,它不是面向實現(xiàn),而是面向現(xiàn)實物體的。?實體(Entity)數(shù)據(jù)是用來描述現(xiàn)實中的物體的,而描述的對象都是形形色色的,有具體的、也有抽象的;有物理上存在的、也有概念性的。凡是可以互相區(qū)別而且可以被人們認識的事、物、概念等統(tǒng)統(tǒng)抽象為實體。多個相同的類型的實體可以稱為實體集(Entityset)。因此,在E-R數(shù)據(jù)模型中,也有型與值之分;實體可以作為型來定義,每個實體可以是它的實例和值。?屬性(Attribute)實體一般具體若干特征,這些特征稱為實體的屬性。而每個屬性都有自己的取值范圍,在E-R數(shù)據(jù)模型中稱
4、為值集(valueset)。在同一實體集中,每個實體的屬性及其值集都是相同的,但可能取不同的值。屬性對應數(shù)據(jù)庫表的列。?關系(Relationship)實體之間會有各種關系,這些關系抽象為聯(lián)系。不但實體可以有屬性,關系也可以有屬性。五、數(shù)據(jù)庫設計步驟?數(shù)據(jù)庫設計可以分為以下幾個階段1、需求分析階段:分析客戶的業(yè)務需求,特別是數(shù)據(jù)方面的需求2、概要設計階段:繪制數(shù)據(jù)庫的E-R圖,并確認需求文檔的正確性和完整性,E-R圖是項目的設計人員、開發(fā)人員、測試人員,以及和客戶進行溝通的重要憑據(jù)3、詳細設計階段:將概要設計階段的E-
5、R圖轉換為數(shù)據(jù)庫表,進行邏輯設計,確定各個表之間的主外鍵關系,運用數(shù)據(jù)庫的三范式進行審核,并進行技術評審。最后決定選哪種數(shù)據(jù)庫(Oracle、SQLServer、MySQL)來建庫、建表。?需求分析階段:數(shù)據(jù)庫系統(tǒng)分析秀氣分析階段的重點是調查、收集、分析客戶的業(yè)務數(shù)據(jù)需求以及數(shù)據(jù)的安全性、完整性需求等。需求分析步驟:1、確認業(yè)務需求2、標識關系實體3、標識每個實體的具有的屬性4、確認實體之間的關系?概要設計階段:繪制E-R圖作為數(shù)據(jù)庫設計者,你需要和項目組內其他成員分享你的設計思路,共同研討數(shù)據(jù)庫設計的合理性、安全性、
6、完整性,并確認是否符合客戶的業(yè)務需求。那么使用E-R圖,這種圖形化的表示方式最為直觀。*E-R圖中的實體、屬性和關系上面的簡單E-R圖可以看出用戶和收支之間的關系。在上圖中可以看出:用矩形表示實體,實體是一般名詞;橢圓表示屬性,一般也是名詞;菱形表示關系,一般是動詞。*映射基數(shù)映射基數(shù)表示可以通過關系與該實體的個數(shù)。對于實體集A和B之間的二元關系,可能的映射基數(shù)有:1、一對一:也就是A實體中最多只有一個B實體的關聯(lián),而B實體的最多只有一個A實體的關聯(lián)。用E-R圖表示:2、一對多:A實體可以與B實體任意數(shù)量的進行關聯(lián),B
7、中的實體最多與A中的一個實體關聯(lián)。E-R圖表示:3、多對一:A實體最多與一個B實體進行關聯(lián),而B實體可以和任意多個A實體進行關聯(lián)。E-R圖表示:4、多對多:A實體可以有多個B實體,而B實體也可以有任意多個A實體。E-R圖表示:*E-R圖E-R圖可以以圖形化的方式將數(shù)據(jù)庫的整個邏輯結構表示出來,組成部分有:1、矩形表示實體集2、橢圓表示屬性3、菱形表示關系、4、直線用來連接實體集與屬性、實體集和關系5、直線箭頭表示實體集之間映射基數(shù)?詳細設計階段:將E-R圖轉換為表步驟如下:1、將各個實體轉換為對應的表,將各屬性轉換為對
8、應的列2、標識每張表的主鍵3、將實體之間的關系轉換為表與表之間的主外鍵關系六、數(shù)據(jù)庫設計規(guī)范化?數(shù)據(jù)庫設計中經(jīng)常出現(xiàn)的問題1、數(shù)據(jù)冗余大2、插入數(shù)據(jù)異常3、刪除異常4、更新異常?規(guī)范設計一個較好的關系數(shù)據(jù)庫模型,它的每個關系中的屬性一定要滿足某種內在的語義條件,即要按一定的規(guī)范設計關系模型,這就是設計的規(guī)范化。在數(shù)據(jù)庫設計時,有一