溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

如何分析SQL?Server?數(shù)據(jù)庫(kù)的設(shè)計(jì)

發(fā)布時(shí)間:2022-01-19 13:29:08 來(lái)源:億速云 閱讀:191 作者:柒染 欄目:開(kāi)發(fā)技術(shù)

如何分析SQL Server 數(shù)據(jù)庫(kù)的設(shè)計(jì),相信很多沒(méi)有經(jīng)驗(yàn)的人對(duì)此束手無(wú)策,為此本文總結(jié)了問(wèn)題出現(xiàn)的原因和解決方法,通過(guò)這篇文章希望你能解決這個(gè)問(wèn)題。

一、數(shù)據(jù)庫(kù)設(shè)計(jì)的必要性

在實(shí)際的軟件項(xiàng)目中,如果系統(tǒng)中需要存儲(chǔ)的數(shù)據(jù)量比較大,需要設(shè)計(jì)的表比較多,表與表之間的關(guān)系比較復(fù)雜,那我們就需要進(jìn)行規(guī)范的數(shù)據(jù)庫(kù)設(shè)置。如果不經(jīng)過(guò)數(shù)據(jù)庫(kù)的設(shè)計(jì),我們構(gòu)建的數(shù)據(jù)庫(kù)不合理、不恰當(dāng),那么數(shù)據(jù)庫(kù)的維護(hù)、運(yùn)行效率會(huì)有很大的問(wèn)題。這將直接影響到項(xiàng)目的運(yùn)行性和可靠性。

二、什么是數(shù)據(jù)庫(kù)設(shè)計(jì)

數(shù)據(jù)庫(kù)設(shè)計(jì)實(shí)際上就是規(guī)劃和結(jié)構(gòu)化數(shù)據(jù)庫(kù)中的數(shù)據(jù)對(duì)象以及這些數(shù)據(jù)對(duì)象之間的關(guān)系過(guò)程。

三、數(shù)據(jù)庫(kù)設(shè)計(jì)的重要性

不經(jīng)過(guò)設(shè)計(jì)的數(shù)據(jù)庫(kù)或是設(shè)計(jì)糟糕的數(shù)據(jù)庫(kù)很可能導(dǎo)致

1、 數(shù)據(jù)庫(kù)運(yùn)行效率地下

2、 更新、刪除、添加數(shù)據(jù)出現(xiàn)問(wèn)題

良好設(shè)計(jì)的數(shù)據(jù)庫(kù)

1、 執(zhí)行效率高

2、 使應(yīng)用程序更便于開(kāi)發(fā)

3、 擴(kuò)展性好

4、 維護(hù)性好

四、數(shù)據(jù)模型

數(shù)據(jù)模型就像是數(shù)據(jù)間聯(lián)系的一個(gè)輪廓圖,整個(gè)模型就像一個(gè)框架。

如果按照記錄間聯(lián)系的表示方式,對(duì)數(shù)據(jù)模型進(jìn)行分類(lèi),可以分為:層次模型、網(wǎng)狀模型、關(guān)系模型。前兩種又稱(chēng)為格式化數(shù)據(jù)模型。數(shù)據(jù)模型的好壞直接影響到數(shù)據(jù)庫(kù)的性能,所以數(shù)據(jù)模型的選擇是數(shù)據(jù)庫(kù)設(shè)計(jì)的首要任務(wù)。

 實(shí)體-關(guān)系(E-R)數(shù)據(jù)模型

E-R數(shù)據(jù)模型(Entity-Relationship data model),即實(shí)體-關(guān)系數(shù)據(jù)模型。E-R數(shù)據(jù)模型不同于傳統(tǒng)的關(guān)系數(shù)據(jù)模型,它不是面向?qū)崿F(xiàn),而是面向現(xiàn)實(shí)物體的。

實(shí)體(Entity)

數(shù)據(jù)是用來(lái)描述現(xiàn)實(shí)中的物體的,而描述的對(duì)象都是形形色色的,有具體的、也有抽象的;有物理上存在的、也有概念性的。凡是可以互相區(qū)別而且可以被人們認(rèn)識(shí)的事、物、概念等統(tǒng)統(tǒng)抽象為實(shí)體。多個(gè)相同的類(lèi)型的實(shí)體可以稱(chēng)為實(shí)體集(Entity set)。因此,在E-R數(shù)據(jù)模型中,也有型與值之分;實(shí)體可以作為型來(lái)定義,每個(gè)實(shí)體可以是它的實(shí)例和值。

屬性(Attribute)

實(shí)體一般具體若干特征,這些特征稱(chēng)為實(shí)體的屬性。而每個(gè)屬性都有自己的取值范圍,在E-R數(shù)據(jù)模型中稱(chēng)為值集(value set)。在同一實(shí)體集中,每個(gè)實(shí)體的屬性及其值集都是相同的,但可能取不同的值。屬性對(duì)應(yīng)數(shù)據(jù)庫(kù)表的列。

關(guān)系(Relationship)

實(shí)體之間會(huì)有各種關(guān)系,這些關(guān)系抽象為聯(lián)系。不但實(shí)體可以有屬性,關(guān)系也可以有屬性。

五、數(shù)據(jù)庫(kù)設(shè)計(jì)步驟

數(shù)據(jù)庫(kù)設(shè)計(jì)可以分為以下幾個(gè)階段

1、 需求分析階段:分析客戶(hù)的業(yè)務(wù)需求,特別是數(shù)據(jù)方面的需求

2、 概要設(shè)計(jì)階段:繪制數(shù)據(jù)庫(kù)的E-R圖,并確認(rèn)需求文檔的正確性和完整性,E-R圖是項(xiàng)目的設(shè)計(jì)人員、開(kāi)發(fā)人員、測(cè)試人員,以及和客戶(hù)進(jìn)行溝通的重要憑據(jù)

3、 詳細(xì)設(shè)計(jì)階段:將概要設(shè)計(jì)階段的E-R圖轉(zhuǎn)換為數(shù)據(jù)庫(kù)表,進(jìn)行邏輯設(shè)計(jì),確定各個(gè)表之間的主外鍵關(guān)系,運(yùn)用數(shù)據(jù)庫(kù)的三范式進(jìn)行審核,并進(jìn)行技術(shù)評(píng)審。最后決定選哪種數(shù)據(jù)庫(kù)(OracleSQLServer、MySQL)來(lái)建庫(kù)、建表。

需求分析階段:數(shù)據(jù)庫(kù)系統(tǒng)分析

秀氣分析階段的重點(diǎn)是調(diào)查、收集、分析客戶(hù)的業(yè)務(wù)數(shù)據(jù)需求以及數(shù)據(jù)的安全性、完整性需求等。

需求分析步驟:

1、 確認(rèn)業(yè)務(wù)需求

2、 標(biāo)識(shí)關(guān)系實(shí)體

3、 標(biāo)識(shí)每個(gè)實(shí)體的具有的屬性

4、 確認(rèn)實(shí)體之間的關(guān)系

概要設(shè)計(jì)階段:繪制E-R圖

作為數(shù)據(jù)庫(kù)設(shè)計(jì)者,你需要和項(xiàng)目組內(nèi)其他成員分享你的設(shè)計(jì)思路,共同研討數(shù)據(jù)庫(kù)設(shè)計(jì)的合理性、安全性、完整性,并確認(rèn)是否符合客戶(hù)的業(yè)務(wù)需求。那么使用E-R圖,這種圖形化的表示方式最為直觀。

E-R圖中的實(shí)體、屬性和關(guān)系

如何分析SQL?Server?數(shù)據(jù)庫(kù)的設(shè)計(jì)

上面的簡(jiǎn)單E-R圖可以看出用戶(hù)和收支之間的關(guān)系。在上圖中可以看出:用矩形表示實(shí)體,實(shí)體是一般名詞;橢圓表示屬性,一般也是名詞;菱形表示關(guān)系,一般是動(dòng)詞。

映射基數(shù)

映射基數(shù)表示可以通過(guò)關(guān)系與該實(shí)體的個(gè)數(shù)。對(duì)于實(shí)體集A和B之間的二元關(guān)系,可能的映射基數(shù)有:

1、 一對(duì)一:也就是A實(shí)體中最多只有一個(gè)B實(shí)體的關(guān)聯(lián),而B(niǎo)實(shí)體的最多只有一個(gè)A實(shí)體的關(guān)聯(lián)。用E-R圖表示:

如何分析SQL?Server?數(shù)據(jù)庫(kù)的設(shè)計(jì)

2、 一對(duì)多:A實(shí)體可以與B實(shí)體任意數(shù)量的進(jìn)行關(guān)聯(lián),B中的實(shí)體最多與A中的一個(gè)實(shí)體關(guān)聯(lián)。E-R圖表示:

如何分析SQL?Server?數(shù)據(jù)庫(kù)的設(shè)計(jì)

3、 多對(duì)一:A實(shí)體最多與一個(gè)B實(shí)體進(jìn)行關(guān)聯(lián),而B(niǎo)實(shí)體可以和任意多個(gè)A實(shí)體進(jìn)行關(guān)聯(lián)。E-R圖表示:

如何分析SQL?Server?數(shù)據(jù)庫(kù)的設(shè)計(jì)

4、 多對(duì)多:A實(shí)體可以有多個(gè)B實(shí)體,而B(niǎo)實(shí)體也可以有任意多個(gè)A實(shí)體。E-R圖表示:

如何分析SQL?Server?數(shù)據(jù)庫(kù)的設(shè)計(jì)

E-R圖

E-R圖可以以圖形化的方式將數(shù)據(jù)庫(kù)的整個(gè)邏輯結(jié)構(gòu)表示出來(lái),組成部分有:

1、 矩形表示實(shí)體集

2、 橢圓表示屬性

3、 菱形表示關(guān)系、

4、 直線(xiàn)用來(lái)連接實(shí)體集與屬性、實(shí)體集和關(guān)系

5、 直線(xiàn)箭頭表示實(shí)體集之間映射基數(shù)

詳細(xì)設(shè)計(jì)階段:將E-R圖轉(zhuǎn)換為表

步驟如下:

1、 將各個(gè)實(shí)體轉(zhuǎn)換為對(duì)應(yīng)的表,將各屬性轉(zhuǎn)換為對(duì)應(yīng)的列

2、 標(biāo)識(shí)每張表的主鍵

3、 將實(shí)體之間的關(guān)系轉(zhuǎn)換為表與表之間的主外鍵關(guān)系

六、數(shù)據(jù)庫(kù)設(shè)計(jì)規(guī)范化

數(shù)據(jù)庫(kù)設(shè)計(jì)中經(jīng)常出現(xiàn)的問(wèn)題

1、 數(shù)據(jù)冗余大

2、 插入數(shù)據(jù)異常

3、 刪除異常

4、 更新異常

規(guī)范設(shè)計(jì)

一個(gè)較好的關(guān)系數(shù)據(jù)庫(kù)模型,它的每個(gè)關(guān)系中的屬性一定要滿(mǎn)足某種內(nèi)在的語(yǔ)義條件,即要按一定的規(guī)范設(shè)計(jì)關(guān)系模型,這就是設(shè)計(jì)的規(guī)范化。

在數(shù)據(jù)庫(kù)設(shè)計(jì)時(shí),有一些專(zhuān)門(mén)的規(guī)則,稱(chēng)為數(shù)據(jù)庫(kù)的設(shè)計(jì)范式,遵循這些規(guī)則,就可以創(chuàng)建出良好的數(shù)據(jù)庫(kù)

數(shù)據(jù)庫(kù)著名的三大范式理論:

1、 第一范式(1NF)

第一范式是滿(mǎn)足關(guān)系數(shù)據(jù)庫(kù)模型所要遵循的最基本的條件范式,幾關(guān)系中的每個(gè)屬性必須是不可再分的簡(jiǎn)單項(xiàng),不能是屬性組合,即屬性的取值是不可拆分的原子值。

2、 第二范式(2NF)

第二范式是在第一范式的基礎(chǔ)上,確保表中的每列都和主鍵相關(guān)。其定義是如果一個(gè)關(guān)系滿(mǎn)足1NF,并且除了主鍵關(guān)系外的其他列都依賴(lài)于該主鍵,則滿(mǎn)足第二范式。

3、 第三范式(3NF)

第三范式是在第二范式的基礎(chǔ)上進(jìn)行的,第三范式的目標(biāo)是確保每列都和主鍵列直接相關(guān),而不是間接相關(guān)的。其定義是:如果一個(gè)關(guān)系滿(mǎn)足2NF,并且除主鍵外的其他列都不傳遞依賴(lài)于該主鍵。

規(guī)范化和性能關(guān)系

為了滿(mǎn)足三大范式,數(shù)據(jù)庫(kù)的性能可能會(huì)有一定程度的降低。所以,在實(shí)際數(shù)據(jù)庫(kù)設(shè)計(jì)中,我們既要盡量滿(mǎn)足三大范式,從而避免數(shù)據(jù)冗余和各種數(shù)據(jù)庫(kù)的操作異常,同時(shí)也要考慮數(shù)據(jù)的訪(fǎng)問(wèn)性能。有時(shí)候,為了提高數(shù)據(jù)庫(kù)的訪(fǎng)問(wèn)效率,適當(dāng)?shù)脑试S少量數(shù)據(jù)冗余咧存在,才是最適合的數(shù)據(jù)庫(kù)設(shè)計(jì)方案。

看完上述內(nèi)容,你們掌握如何分析SQL Server 數(shù)據(jù)庫(kù)的設(shè)計(jì)的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI