亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

數據庫設計規范化

系統 1777 0
規范化

數據庫的邏輯設計(包括各種表和表間關系)是優化關系數據庫的核心。設計好邏輯數據庫,可以為優化數據庫和應用程序性能打下基礎。邏輯數據庫設計不好,會影響整個系統的性能。

規范化邏輯數據庫設計包括使用正規的方法來將數據分為多個相關的表。有幾個具有較少列的窄表是規范化數據庫的特征。有少量具有較多列的寬表是非規范化數據庫的特征。

通常,合理的規范化會提高性能。如果包含有用的索引,SQL Server 查詢優化器可有效地在表間選擇快速、有效的聯接。

下面給出了規范化的一些好處:

  • 使排序和創建索引更加迅速。
  • 聚集索引的數目更大。有關詳細信息,請參閱 聚集索引設計指南
  • 索引更窄、更緊湊。
  • 每個表的索引更少。這可提高 INSERT、UPDATE 和 DELETE 語句的性能。
  • 空值更少,出現不一致的機會更少。這可增加數據庫的緊湊性。

隨著規范化的不斷提高,檢索數據所需的聯接數和復雜性也將不斷增加。太多表間的關系聯接太多、太復雜可能會影響性能。合理的規范化通常很少包括經常性執行且所用聯接涉及 4 個以上表的查詢。

有 時,邏輯數據庫設計已經固定,全部進行重新設計是不現實的。但是,盡管如此,將大表有選擇性地進行規范化處理,分為幾個更小的表是可能的。如果是通過存儲 過程對數據庫進行訪問,則在不影響應用程序的情況下架構可能發生更改。如果不是這種情況,那么可以創建一個視圖,以便從應用程序隱藏架構的更改。

?獲得設計良好的數據庫

在關系數據庫設計理論中,規范化規則指出了在設計良好的數據庫中必須出現或不出現的某些屬性。關于規范化規則的完整討論不屬于本主題的范疇。不過,有幾個可幫助獲得合理的數據庫設計的規則:

  • 表應該有一個標識符。
    數據庫設計理論的基本原理是:每個表都應有一個唯一的行標識符,可以使用列或列集將任何單個記錄同表中的所有其他記錄區別開來。每個表都應有一個 ID 列,任何兩個記錄都不能共享同一 ID 值。作為表的唯一行標識符的列是表的主鍵。在 AdventureWorks 數據庫中,每個表有一個標識列作為主鍵列。例如, VendorID Purchasing.Vendor 表的主鍵。
  • 表應只存儲單一類型實體的數據。
    試圖在表中存儲過多的信息會影響對表中的數據進行有效、可靠的管理。在 AdventureWorks 示例數據庫中,銷售訂單和客戶信息存儲在不同的表中。雖然可在單獨的表中創建包含有關銷售訂單和客戶信息的列,但是此設計會導致出現幾個問題。必須在每個 銷售訂單中另外添加和存儲客戶信息、客戶姓名和地址。這將使用數據庫中的其他存儲空間。如果客戶地址發生變化,必須更改每個銷售訂單。另外,如果從 Sales.SalesOrderHeader 表中刪除了客戶最近的銷售訂單,該客戶的信息將會丟失。
  • 表應避免可為空的列。
    表中的列可定義為允許空值。空值表示沒有值。雖然在個別情況下,允許空值可能是有用的,但是應盡量少用。這是因為需要對它們進行特殊處理,從而會增加數據 操作的復雜性。如果某一表中有幾個可為空值的列,并且列中有幾行包含空值,則應考慮將這些列置于鏈接到主表的另一表中。通過將數據存儲在兩個不同的表中, 主表的設計會非常簡單,而且仍能夠滿足存儲此信息的臨時需要。
  • 表不應有重復的值或列。
    數據庫中某一項目的表不應包含有關特定信息的一些值。例如, AdventureWorks 數據庫中的某產品可能是從多個供應商處購買的。如果 Production.Product 表有一列為供應商的名稱,這就會產生問題。一個解決方案是將所有供應商的名稱存儲在該列中。但是,這使得列出各個供應商變得非常困難。另一個解決方案是更 改表的結構來為另一個供應商的名稱再添加一列。但是,這只允許有兩個供應商。此外,如果一本書有三個供應商,則必須再添加一列。
    如果您發現需要在單個列中存儲多個值,或者一類數據(例如 TelephoneNumber1 TelephoneNumber2 )對應于多列,則應考慮將重復的數據置于鏈接回主表的另一個表中。 AdventureWorks 數據庫有一個用于存儲產品信息的 Production.Product 表和一個用于存儲供應商信息的 Purchasing.Vendor 表,還有第三個表 Purchasing.ProductVendor 。第三個表只存儲產品的 ID 值和產品供應商的 ID 值。這種設計允許產品有任意多個供應商,而無需修改表的定義,也無需為單個供應商的產品分配未使用的存儲空間。
摘自 規范化 http://technet.microsoft.com/zh-cn/library/ms191178.aspx

數據庫設計規范化


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦?。?!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 经典三级久久久久 | 亚洲国产日韩在线一区 | 欧美日韩激情在线一区 | 精品一久久香蕉国产线看播放 | 天天干天天舔 | 国产精品一区二区四区 | 天天爽夜夜爽人人爽 | 伊人久久成人爱综合网 | 久久免费观看国产精品 | 天天天天天天操 | 九九久久亚洲综合久久久 | 97影院理论在线观看 | 91亚洲精品久久 | 99精品国产久热在线观看66 | 天天色天天操天天射 | 国产欧美日韩精品第二区 | 国产精品久久久久久久免费大片 | 色丁香在线观看 | 久久福利小视频 | 成人午夜影视全部免费看 | 日本人又黄又爽免费视频 | 四虎影院免费在线播放 | 亚欧视频在线观看 | 欧美xo影院 | 久久爱www. | 成人国产一区二区 | 国产精品18 | 97av麻豆蜜桃一区二区 | 免费观看黄色毛片 | 欧美一区二区三区成人看不卡 | 老子影院无码午夜伦不卡 | 婷婷涩| 国产波波社区精品视频 | 五月开心婷婷 | 97在线观看完整免费 | 青青国产成人久久激情911 | 国产亚洲欧美另类久久久 | 老子影院午夜伦手机在线看 | 国产欧美综合一区二区 | 亚洲精品视频在线 | 日本最黄视频 |