資料庫的反正規化化(Denormalization)設計- IT閱讀

文章推薦指數: 80 %
投票人數:10人

資料庫的反正規化化(Denormalization)設計. mysql教程 · 發表 2018-10-08. 正規化化設計目標的主要目的就是“減少不必要的更新”。

但事事都具有兩面性,在對資料庫進行 ... mysql教程 資料庫的反正規化化(Denormalization)設計 mysql教程 · 發表2018-10-08 正規化化設計目標的主要目的就是“減少不必要的更新”。

但事事都具有兩面性,在對資料庫進行正規化話設計的時候也不可避免的帶來了一些副作用。

一個完全正規化化設計的資料庫經常會面臨“查詢緩慢”這個問題。

資料庫越正規化化,就需要Join越多的表。

例如,把使用者地址用獨立的一張表來儲存,在需要顯示使用者地址的時候就需要去join使用者地址表。

資料庫的正規化設計其中的一些優點可能並不這麼值得稱道: 正規化化節省了儲存空間,但儲存空間卻很便宜 正規化化簡化了更新,但讀更普遍 反正規化化設計 對不可改變資料的反模式設計。

也就是說對不可改變的資料無需模式化設計。

例如,使用者資訊中要記錄該使用者的國籍,由於國家資訊(國家程式碼、簡稱都是不可改變的資料或者說改變的機率很小),所以無需在使用者資訊表中新增列來關聯國家資訊表,可以直接將相關的國家資訊列作為使用者資訊表中的列。

將多張表合併成一張。

下面舉一個這樣的例子,正規化化的資料庫設計如下。

USERTABLE使用者基本資訊表 USER_ID FIRST_NAME LAST_NAME SEX HOMETOWN RELATIONSHIP_STATUS 12345 John Doe Male Atlanta,GA married USER_PHONE_NUMBERSTABLE使用者電話資訊表 USER_ID(FOREIGN_KEY) PHONE_NUMBER PHONE_TYPE 12345 425-555-1203 Home 12345 425-555-6161 Work 12345 206-555-0932 Cell USER_SCREEN_NAMESTABLE使用者IM資訊表 USER_ID(FOREIGN_KEY) SCREEN_NAME IM_SERVICE 12345 [email protected] AIM 12345 [email protected] Skype 對這樣的表設計進行反模式就可以將user_phone_numberstable,user_screen_namestable都併入usertable中。

USER_TABLE使用者IM資訊表 列名 說明 user_id first_name last_name sex hometown relationship_status phone_type_home phone_type_work phone_type_cell im_service_aim …   在提升資料庫效能的時候我們可以考慮索引、物化檢視、快取等技術,但反正規化設計的確是很重要的一種手段。

看一下Flickr的這組資料吧。

標籤: 更多相關知識… 資料庫的反正規化化(Denormalization)設計 正規化化設計目標的主要目的就是“減少不必要的更新”。

但事事都具有兩面性,在對資料庫進行正規化話設計的時候也不可避免的帶... 資料庫的三正規化 第一正規化(1NF):資料庫表中的欄位都是單一屬性的,不可再分。

這個單一屬性由基本型別構成,包括整型、實數、字元型、邏輯... 資料庫三大正規化(第一正規化,第二正規化,第三正規化) 資料庫中的三大正規化,在資料庫開發實際應用和麵試中是常見的問題。

1、正規化     英文名稱是Normal... 資料庫三大正規化詳解(通俗易懂) 正規化:英文名稱是NormalForm,它是英國人E.F.Codd(關係資料庫的老祖宗)在上個世紀70年代提出關係... 弄懂資料庫三大正規化 資料庫的設計正規化是資料庫設計所需要滿足的規範,滿足這些規範的資料庫是簡潔的、結構明晰的,同時,不會發生插入(inser... 資料庫(第一正規化,第二正規化,第三正規化) 轉載: http://blog.csdn.net/famousdt/article/details/6921622 ... 資料庫三大正規化 Mysql複習 from:http://blog.csdn.net/u010503822/article/detail... JDBC-資料庫的更新操作程式設計(三) 首先建立一個靜態方法,程式碼如下: publicstaticStatementgetStatement(){... 物件的序列化存入資料庫,與反序列化 開發過程中遇到一個問題,我想到的解決方法是將一個dictionary字典如何存如資料庫,讀出來的時候還是這個字典 然後... 關係資料庫的查詢優化策略----總結了一些查詢優化的方法,希望可以對大家有所幫助(原創) 1        引言 隨著計算機應用技術的不斷普及和發展,資料庫系統正越來越多的走進人們的日常生活。

在要求查詢結果... 淺談資料庫的架構優化(讀書體會)   年前參加過一次培訓,講資料庫架構優化。

講師中英文混雜講的,個人英文很爛,大概記了三點。

  通過負載均衡策略,有效... MYSQL資料庫的查詢優化技術 資料庫系統是管理資訊系統的核心,基於資料庫的聯機事務處理(OLTP)以及聯機分析處理(OLAP)是銀行、企業、政府等部門... 例項講解MYSQL資料庫的查詢優化技術 資料庫系統是管理資訊系統的核心,基於資料庫的聯機事務處理(OLTP)以及聯機分析處理(OLAP)是銀行、企業、政府等部門... 關係代數對於資料庫的查詢優化的指導意義 ... MySQL詳解(17)-----------海量資料庫的查詢優化 許多程式設計師認為查詢優化是DBMS(資料庫教程管理系統)的任務,與程式設計師所編寫的SQL語句關係不大,這是錯誤的。

一... 贊助商廣告 ads Android WEB開發 其它 0.21986699104309



請為這篇文章評分?