国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【SQL Server】數(shù)據(jù)庫開發(fā)指南(一)數(shù)據(jù)庫設計的核心概念和基本步驟

這篇具有很好參考價值的文章主要介紹了【SQL Server】數(shù)據(jù)庫開發(fā)指南(一)數(shù)據(jù)庫設計的核心概念和基本步驟。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

本系列博文還在更新中,收錄在專欄:#MS-SQL Server 專欄中。

本系列文章列表如下:

【SQL Server】 Linux 運維下對 SQL Server 進行安裝、升級、回滾、卸載操作
【SQL Server】數(shù)據(jù)庫開發(fā)指南(一)數(shù)據(jù)庫設計的核心概念和基本步驟
【SQL Server】數(shù)據(jù)庫開發(fā)指南(二)MSSQL數(shù)據(jù)庫開發(fā)對于庫、表、數(shù)據(jù)類型、約束等相關(guān)操作
【SQL Server】數(shù)據(jù)庫開發(fā)指南(三)面向數(shù)據(jù)分析的 T-SQL 編程技巧與實踐
[ 云原生 | Docker ] 構(gòu)建高可用性的 SQL Server:Docker 容器下的主從同步實現(xiàn)指南
【SQL Server】數(shù)據(jù)庫開發(fā)指南(五)T-SQL 高級查詢綜合應用與實戰(zhàn)
【SQL Server】數(shù)據(jù)庫開發(fā)指南(六)索引和視圖的使用技巧、方法與綜合應用
【SQL Server】數(shù)據(jù)庫開發(fā)指南(七)MS-SQL存儲過程全面解析:種類、優(yōu)點和創(chuàng)建方法詳解
【SQL Server】數(shù)據(jù)庫開發(fā)指南(八)高級數(shù)據(jù)處理技術(shù) MS-SQL 事務、異常和游標的深入研究
【SQL Server】數(shù)據(jù)庫開發(fā)指南(九)詳細講解 MS-SQL 觸發(fā)器的基礎概念與應用場景

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

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

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

數(shù)據(jù)庫設計是指在建立數(shù)據(jù)庫之前,通過分析和規(guī)劃,確定數(shù)據(jù)模型、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)表、數(shù)據(jù)關(guān)系、數(shù)據(jù)約束等一系列數(shù)據(jù)庫的組成要素,以及如何存儲、檢索和維護數(shù)據(jù)的方法。

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

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

  • 不經(jīng)過設計的數(shù)據(jù)庫或是設計糟糕的數(shù)據(jù)庫很可能導致

    1. 數(shù)據(jù)庫運行效率地下
    2. 更新、刪除、添加數(shù)據(jù)出現(xiàn)問題
  • 良好設計的數(shù)據(jù)庫

    1. 執(zhí)行效率高
    2. 使應用程序更便于開發(fā)
    3. 擴展性好
    4. 維護性好

數(shù)據(jù)庫設計是建立可靠、高效、易于維護的數(shù)據(jù)庫系統(tǒng)的基礎,它可以確保數(shù)據(jù)一致性,提高數(shù)據(jù)訪問效率。

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

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

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

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

E-R數(shù)據(jù)模型(Entity - Relationship data model),即實體 - 關(guān)系數(shù)據(jù)模型。E-R數(shù)據(jù)模型不同于傳統(tǒng)的關(guān)系數(shù)據(jù)模型,它不是面向?qū)崿F(xiàn),而是面向現(xiàn)實物體的。它是最常用的數(shù)據(jù)建模技術(shù)之一,用于設計關(guān)系型數(shù)據(jù)庫系統(tǒng)。E-R數(shù)據(jù)模型是一種圖形化方法,是一種用于描述實體、屬性和它們之間關(guān)系的方法。

5.2 實體(Entity)

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

5.3 屬性(Attribute)

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

5.5 關(guān)系(Relationship)

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

六、數(shù)據(jù)庫設計步驟

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

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

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

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

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

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

需求分析步驟:

  1. 確認業(yè)務需求

  2. 標識關(guān)系實體

  3. 標識每個實體的具有的屬性

  4. 確認實體之間的關(guān)系

6.2 概要設計階段:繪制 E-R 圖

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

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

在 E-R 數(shù)據(jù)模型中,實體被表示為矩形,屬性被表示為橢圓形,關(guān)系被表示為菱形。實體代表現(xiàn)實世界中的一個對象或概念,屬性是實體的特征或?qū)傩?,而關(guān)系是實體之間的連接。

【SQL Server】數(shù)據(jù)庫開發(fā)指南(一)數(shù)據(jù)庫設計的核心概念和基本步驟

上面的簡單 E-R 圖可以看出學生和飯卡之間的關(guān)系。在上圖中可以看出:用矩形表示實體實體是一般名詞;橢圓表示屬性一般也是名詞;菱形表示關(guān)系一般是動詞。

6.2.2 映射基數(shù)

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

6.2.2.1 一對一關(guān)系

也就是 A 實體中最多只有一個 B 實體的關(guān)聯(lián),而 B 實體的最多只有一個 A 實體的關(guān)聯(lián)。用 E-R 圖表示:

【SQL Server】數(shù)據(jù)庫開發(fā)指南(一)數(shù)據(jù)庫設計的核心概念和基本步驟

6.2.2.2 一對多關(guān)系

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

【SQL Server】數(shù)據(jù)庫開發(fā)指南(一)數(shù)據(jù)庫設計的核心概念和基本步驟

6.2.2.3 多對一關(guān)系

3、 多對一:A 實體最多與一個 B 實體進行關(guān)聯(lián),而 B 實體可以和任意多個A實體進行關(guān)聯(lián)。E-R 圖表示:

【SQL Server】數(shù)據(jù)庫開發(fā)指南(一)數(shù)據(jù)庫設計的核心概念和基本步驟

6.2.2.5 多對多關(guān)系

4、 多對多:A 實體可以有多個 B 實體,而B實體也可以有任意多個 A 實體。E-R 圖表示:

【SQL Server】數(shù)據(jù)庫開發(fā)指南(一)數(shù)據(jù)庫設計的核心概念和基本步驟

6.2.3 E-R 總結(jié)

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

  1. 矩形表示實體集
  2. 橢圓表示屬性
  3. 菱形表示關(guān)系
  4. 直線用來連接實體集與屬性、實體集和關(guān)系
  5. 直線、箭頭表示實體集之間映射基數(shù)

注意在上述關(guān)系圖中,箭頭所指的方向基數(shù)為1,也可以都沒有箭頭,在關(guān)系線上用1表示即可

6.3 詳細設計階段:將 E-R 圖轉(zhuǎn)換為表

步驟如下:

  1. 將各個實體轉(zhuǎn)換為對應的表,將各屬性轉(zhuǎn)換為對應的列
    對于 E-R 圖中的每個實體,創(chuàng)建一張對應的表,表名應該與實體名相同或者相似。每個表應該包含與實體相關(guān)的所有屬性,這些屬性應該被轉(zhuǎn)換為表的列。

  2. 標識每張表的主鍵
    每張表都需要一個主鍵來唯一標識表中的每一行。通常情況下,實體中的一個屬性會被選定為主鍵。如果沒有合適的屬性可以用作主鍵,則可以為表添加一個自增長的整數(shù)列作為主鍵。

  3. 將實體之間的關(guān)系轉(zhuǎn)換為表與表之間的主外鍵關(guān)系
    對于 E-R 圖中的每個關(guān)系,需要將它們轉(zhuǎn)換為表與表之間的主外鍵關(guān)系。每個關(guān)系將在其對應的表中生成一個外鍵列。該列將引用另一個表中的主鍵列。

更多詳細關(guān)于 E-R 圖的畫法以及介紹推薦可以參看:數(shù)據(jù)庫系統(tǒng)設計原理–E-R模型

七、數(shù)據(jù)庫設計規(guī)范化

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

  1. 數(shù)據(jù)冗余大
  2. 插入數(shù)據(jù)異常
  3. 刪除異常
  4. 更新異常

7.2 規(guī)范設計

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

在數(shù)據(jù)庫設計時,有一些專門的規(guī)則,稱為數(shù)據(jù)庫的設計范式,遵循這些規(guī)則,就可以創(chuàng)建出良好的數(shù)據(jù)庫,數(shù)據(jù)庫著名的三大范式理論:

  1. 第一范式(1NF)

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

  1. 第二范式(2NF)

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

  1. 第三范式(3NF)

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

更多關(guān)于范式的介紹,請參閱:[ 數(shù)據(jù)庫原理 ] 舉例講解數(shù)據(jù)庫范式(1NF、2NF、3NF、BCNF)與不滿足數(shù)據(jù)庫范式的影響

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

為了滿足三大范式,數(shù)據(jù)庫的性能可能會有一定程度的降低。所以,在實際數(shù)據(jù)庫設計中,我們既要盡量滿足三大范式,從而避免數(shù)據(jù)冗余和各種數(shù)據(jù)庫的操作異常,同時也要考慮數(shù)據(jù)的訪問性能。有時候,為了提高數(shù)據(jù)庫的訪問效率,適當?shù)脑试S少量數(shù)據(jù)冗余咧存在,才是最適合的數(shù)據(jù)庫設計方案。文章來源地址http://www.zghlxwxcb.cn/news/detail-487728.html

到了這里,關(guān)于【SQL Server】數(shù)據(jù)庫開發(fā)指南(一)數(shù)據(jù)庫設計的核心概念和基本步驟的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務器費用

相關(guān)文章

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包