本文首先討論了基於第三正規化的資料庫表的基本設計,著重論述了建立主鍵和索引的策略和方案,然後從資料庫表
的擴充套件設計和庫表物件的放置等角度概述了資料庫管理系統的優化方案。
1 引言
資料庫優化的目標無非是避免磁碟i/o瓶頸、減少cpu利用率和減少資源競爭。為了便於讀者閱讀和理解,筆者參閱了sybase、informix和oracle等大型資料庫系統參考資料,基於多年的工程實踐經驗,從基本表設計、擴充套件設計和資料庫表物件放置等角度進行討論,著重討論了如何避免磁碟i/o瓶頸和減少資源競爭,相信讀者會一目了然。
2 基於第三正規化的基本表設計
在基於表驅動的資訊管理系統(mis)中,基本表的設計規範是第三正規化(3nf)。
第三正規化的基本特徵是非主鍵屬性只依賴於主鍵屬性。
基於第三正規化的資料庫表設計具有很多優點:
一是消除了冗餘資料,節省了磁碟儲存空間;
二是有良好的資料完整性限制,即基於主外來鍵的參照完整限制和基於主鍵的實體完整性限制,這使得資料容易維護,也容易移植和更新;
三是資料的可逆性好,在做連線(join)查詢或者合併表時不遺漏、也不重複;
四是因消除了冗餘資料(冗餘列), 在查詢(select)時每個資料頁存的資料行就多,這樣就有效地減少了邏輯i/o,每個cash存的頁面就多,也減少物理i/o;
五是對大多數事務(transaction)而言,執行效能好;
六是物理設計(physical design)的機動性較大,能滿足日益增長的使用者需求。
在基本表設計中,表的主鍵、外來鍵、索引設計占有非常重要的地位,但系統設計人員往往只注重於滿足使用者要求,而沒有從系統優化的高度來認識和重視它們。實際上,它們與系統的執行效能密切相關。現在從系統資料庫優化角度討論這些基本概念及其重要意義:
資料庫同步設計方案
需求 目前我們公司開發的系統大部分都涉及到資料傳輸,簡單的系統架構如下,有企業輸入單證資訊,提交到 機關進行審批,將審批的結果返回到企業端,由於企業客戶端系統,和行政審批中心的系統存在多不多的複雜關係 同時又存在大量的資料報文的交換 為了提高整個系統在資料傳輸過程中的可靠性,安全性及時性。我們在中間...
資料庫表的設計方案
1 一對多或者多對一的物件在資料庫裡面如何設定表來儲存資料原理解說當在程式中物件的關係為1對多或者多對1的關係時,在資料庫裡面我們怎樣設計表來儲存資料呢?1 首先分別設計兩個表來儲存兩個物件的基本屬性,不用管他們之間的關係 2 然後再在多的物件的表裡面設定外來鍵來描述兩個表之間資料的關係即可滿足需求...
拖拽資料庫設計方案小結
對於公告或者選單或者帖子通常會有拖拽排序的需求,這個時候資料庫設計呢。本文就來簡述一下幾個方案。方案概述 優點缺點 存json 對於每次排序,涉及影響的列表作為乙個大json重新更新 省事列表太大的話,每次更新太多不好 每次更新受影響記錄的排序字段 假設有個position欄位,每拖拽其中一條記錄,...