首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

面向對象關聯式資料庫設計:從物件模型到關聯模式的映射策略

     編輯:關於SqlServer

概念釐清

  • 面向對象資料庫設計:使用者定義資料庫模式的思路,可應用於任何 DBMS(關聯、網狀、階層、OO、甚至檔案系統)。
  • 面向對象 DBMS (OODBMS):資料庫管理程式的實作理論,非設計方法。
  • OOSE (Object-Oriented Software Engineering) 自上而下貫徹 OO 思維,資料庫設計僅是其中一環。

資料庫設計的關鍵地位

開發步驟:系統架構 → DBMS 架構選型 → 平台/工具選擇 → 資料庫設計 (撰寫 DDL) → 介面程式 → 載入資料 → 測試驗證。
最重要、最困難 的環節是資料庫設計,非應用系統設計。許多開發者迷信 DBMS 功能強大便忽略設計,實則 DBMS 只提供舞台,劇本由設計者撰寫。

設計方法論:實體主導 vs 屬性主導

  • 屬性主導:由屬性歸納實體,維持函數相依。
  • 實體主導:先識別有意義實體,再定義屬性。
    面向對象設計屬於實體主導,從物件模型出發。當實體數遠少於屬性數(< 1/10)時最適合。

三層模式架構的 OO 擴充

  • 內部模式:DBMS 內部儲存結構(SQL 定義),最接近物理。
  • 概念模式:多個內部模式聚合,邏輯資料庫邊界(如:計劃處 DB、機務處 DB),實現物理意義與特定 DBMS 操作的資訊隱藏。
  • 外部模式:應用程式視圖,不同子系統見到的資料子集。

面向對象設計在概念模式層建立物件模型與關聯模式的映射規範。

物件模型到關聯模式的核心映射規則

  1. 類別 → 資料表:每個實體類別對應一張基礎表,主鍵對應物件識別碼 (OID)。
  2. 屬性 → 欄位:單值屬性直接映射;多值屬性需建立關聯表(一對多)。
  3. 關聯 → 外鍵/關聯表:
    - 1:1 可合併或雙向外鍵
    - 1:N 「多」端加外鍵
    - N:M 建立中介關聯表,雙向外鍵 + 複合主鍵
  4. 繼承 → 三種策略:
    - 單表繼承:全屬性合一表,加判別欄位
    - 具體表繼承:各具體類別一表,共用屬性重複
    - 類別表繼承:超類別一表,子類別各一表,主鍵同為外鍵
  5. 聚合/組合 → 擁有關係:組合生命週期綁定(級聯刪除),聚合獨立。
  6. 行為 → 預存程序/觸發器/檢視:業務邏輯封裝於伺服器端,確保資料完整性與一致性。

關鍵原則

映射規範必須文件化、版本化、團隊共識。資料庫模式一旦上線,變更成本極高;物件模型演進需透過嚴格映射規範同步至關聯模式,避免「物件-關聯阻抗不匹配」擴大。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved