370 likes | 559 Views
第 8 章. 物件導向資料庫 資料庫系統設計實務與管理,5 e. 學習目標. 管理 OO 系統的基本概念 OO 概念對資料模型的建立與設計可能產生哪些影響 OO 特性與傳統的關聯式和 E-R 模型的關聯性 OO 資料庫管理系統( OODBMS )的基本特性 OODBMS 的優缺點. 物件導向. 物件導向 一組設計與開發的原則 以稱為 「 物件 」 的自主電腦結構為主 OO 的貢獻領域 程式設計語言 圖形化使用者介面 資料庫 設計 作業系統. 物件導向概念的演進. 源自於物件導向程式設計 (OOPL) 的概念
E N D
第 8 章 物件導向資料庫 資料庫系統設計實務與管理,5e
學習目標 • 管理 OO 系統的基本概念 • OO 概念對資料模型的建立與設計可能產生哪些影響 • OO 特性與傳統的關聯式和 E-R 模型的關聯性 • OO 資料庫管理系統(OODBMS)的基本特性 • OODBMS 的優缺點 資料庫系統設計實務與管理,5e
物件導向 • 物件導向 • 一組設計與開發的原則 • 以稱為「物件」的自主電腦結構為主 • OO 的貢獻領域 • 程式設計語言 • 圖形化使用者介面 • 資料庫 • 設計 • 作業系統 資料庫系統設計實務與管理,5e
物件導向概念的演進 • 源自於物件導向程式設計 (OOPL) 的概念 • Ada, ALGOL, LISP, SIMULA • OOPL 的目的 • 提供容易使用的軟體發展環境 • 提供功能強大的軟體模型建立工具 • 減少程式碼與應用程式的發展時間 • 讓程式碼可再利用 • OO 的特性 • 資料集本身不再是被動的 • 資料和程序會被綁在一起建立成為一個物件 • 物件本身有能力可以對自己作用 資料庫系統設計實務與管理,5e
OO 概念:物件 • 現實世界中實體的抽象表示 • 唯一的識別名稱 • 內含一些屬性 • 具有和其他物件相互作用與對自己作用的能力 • OID • 物件的唯一識別碼 • 不是主鍵 • 屬性 • 亦稱為實例變數 (instance variable) • 定義域 (Domain) • 物件狀態 • 物件在任何一個給定時間上的值 資料庫系統設計實務與管理,5e
OO 概念:物件 (續) • 方法 • 對物件的資料執行某些操作的程式碼 • 具有名稱與程式主體 • 訊息 • 呼叫方法 • 傳送給物件 • 類別 • 類似物件的集合 • 共用屬性與結構 • 協定 • 代表物件的公用部分 資料庫系統設計實務與管理,5e
OO 概念:物件 (續) • 類別階層 • 對物件的資料執行某些操作的程式碼 • 具有名稱與程式主體 資料庫系統設計實務與管理,5e
物件的特性 圖 8.7 資料庫系統設計實務與管理,5e
類別階層 • 母類別 (Superclass) • 子類別 (Subclass) • 類別格狀 (Class lattice) 圖 8.8 資料庫系統設計實務與管理,5e
繼承 • 物件繼承其上層類別的資料結構和行為的能力 • 單一繼承 • 類別的上一層只有一個母類別 圖 8.9 資料庫系統設計實務與管理,5e
繼承 (續) • 多重繼承 • 類別的上一層有一個以上的母類別 圖 8.10 資料庫系統設計實務與管理,5e
方法覆寫 (Method Override) • 在子類別中重新定義方法 圖 8.12 資料庫系統設計實務與管理,5e
多型 (Polymorphism) 允許不同物件以不同方法回應相同的訊息 圖 8.13 資料庫系統設計實務與管理,5e
抽象資料型別 (ADT) • 描述一組相似的物件 • 與傳統的資料型別不同 • 操作是由使用者定義 • 使用封裝 • 建立前必須先定義 • 名稱 • 資料表示方式 • 抽象資料型別的操作和限制 資料庫系統設計實務與管理,5e
物件分類 • 簡單 • 只包含單值屬性 • 沒有任何屬性參考到其他物件 • 綜合 • 至少包含一個多值屬性 • 沒有任何屬性參考到其他物件 • 複合 • 至少包含一個參考其他物件的屬性 • 混合 • 包含多個屬性的重複群組 • 至少有一個參考到其他物件 資料庫系統設計實務與管理,5e
OODM 的特性 • 支援複雜物件 • 必須可延展 • 支援封裝 • 支援繼承 • 支援物件識別 資料庫系統設計實務與管理,5e
OO 與 E-R 模型組成元件的比較 表 8.3 資料庫系統設計實務與管理,5e
PERSON 類別所有物件的共用圖示 圖 8.14 圖 8.15 資料庫系統設計實務與管理,5e
物件的參考共用 圖 8.19 資料庫系統設計實務與管理,5e
類別與子類別之間的關聯性 圖 8.21 圖 8.20 資料庫系統設計實務與管理,5e
物件之間的關聯性 • 屬性與類別的連結 • 物件的屬性參考其他物件 • 關聯性表示方式 • 相關類別置於同一個方框內 • 方框右邊的兩條橫線表示它是一個強制性關聯 • 每個方框旁邊的記號表示連結性 • 1:M • M:N • M:N 與一個交叉類別 資料庫系統設計實務與管理,5e
1:1 與 1:M 關聯性 圖 8.24 資料庫系統設計實務與管理,5e
Employee和Dependent的關聯性 圖 8.25 資料庫系統設計實務與管理,5e
M:N 的關聯性表示 圖 8.26 資料庫系統設計實務與管理,5e
帶有相關屬性的 M:N 關聯性表示 圖 8.27 資料庫系統設計實務與管理,5e
帶有交叉類別的 M:N 關聯性表示 圖 8.28 資料庫系統設計實務與管理,5e
物件空間表示 圖 8.29 資料庫系統設計實務與管理,5e
延遲與提早繫結 • 延遲繫結 • 屬性的資料型別必須等到執行時期才會知道 • 允許相同類別的不同實例在同一個屬性內包含不同資料型別 • 提前繫結 • 允許資料庫在編譯時期或定義時期檢查資料型別 資料庫系統設計實務與管理,5e
OODM 與 E-R 資料模型 • 物件、實體與值組(Tuple) • OODM 的物件具有行為、繼承與封裝等特性 • 以 OO 方式建立模型比較自然 • 類別、實體集與資料表 • 類別可以用來描述資料與行為 • 類別可以描述抽象資料型別 • 封裝與繼承 • 母類別的物件繼承特性 • 封裝能夠隱藏資料表視方式和方法 資料庫系統設計實務與管理,5e
物件 ID 關聯式模性不支援 關聯性 OODM 類別間的參考 類別階層的繼承 關聯模型 以值為主 存取 關聯性模型 SQL OODM 瀏覽式 集合式存取 OODM 與 E-R 資料模型 (續) 資料庫系統設計實務與管理,5e
OODBMS • 整合一般資料庫系統優點與 OODM 特性的資料庫管理系統 • 可處理許多不同資料型別的組合 • 遵循 OO 規則 • 遵循 DBMS 規則 資料庫系統設計實務與管理,5e
OO 與資料庫設計 • 提供資料識別與操作資料的程序 • 資料與程序一起組成實體 • 反覆與漸增式 • DBA 必須做更多的程式設計工作 • 缺乏標準 資料庫系統設計實務與管理,5e
OODBMS 的優點 • 更具語意的資訊 • 支援複雜物件 • 資料型別可擴充 • 使用效率高的快取方式可以增進執行效率 • 版本控制 • 重複使用性 • 使用繼承可以加快應用程式開發的速度 • 具有將 DBMS 整合成單一環境的潛力 資料庫系統設計實務與管理,5e
OODBMS 的缺點 • RDBMS 是它強力的競爭對手 • 缺乏理論基礎 • 回到了舊式的指標系統 • 缺乏標準且特殊的查詢語言 • 缺乏商業資料設計與管理的工具 • 學習曲線陡峭 • 市場佔有率低 • 不同 OODBMS 之間缺少相容性 資料庫系統設計實務與管理,5e
OO 概念對關聯式模型的影響 • 新的使用者定義(抽象)資料型別的延伸 • 複雜物件 • 繼承 • 程序呼叫 (規則或觸發程序) • 系統產生的識別碼 (用來代替 OID) 資料庫系統設計實務與管理,5e
下一代 的 DBMS • 物件導向式資料庫系統 • 人工智慧系統 • 專家系統 • 分散式資料庫 • 網際網路 資料庫系統設計實務與管理,5e