200 likes | 353 Views
物件導向式資料塑模 與設計 ( 一 ). Modern Database Management Brief Edition Jeffrey A. Hoffer, Mary B. Prescott, Fred R. McFadden. 何謂物件導向式資料塑模?. 以物件與類別為核心,涉及繼承,同時封裝資料與行為 物件導向式塑模的優點 能夠應付更具挑戰性的問題 改善使用者、分析師、設計人員與程式人員間的溝通 增加分析與設計間的一致性 明確呈現系統元件之間的共通性 更強固的系統 分析、設計與程式成果的再利用. OO vs. EER 資料塑模. EER. 物件導向.
E N D
物件導向式資料塑模 與設計(一) Modern Database Management Brief Edition Jeffrey A. Hoffer, Mary B. Prescott, Fred R. McFadden
何謂物件導向式資料塑模? • 以物件與類別為核心,涉及繼承,同時封裝資料與行為 • 物件導向式塑模的優點 • 能夠應付更具挑戰性的問題 • 改善使用者、分析師、設計人員與程式人員間的溝通 • 增加分析與設計間的一致性 • 明確呈現系統元件之間的共通性 • 更強固的系統 • 分析、設計與程式成果的再利用
OO vs. EER 資料塑模 EER 物件導向 類別 實體類型 物件 實體實例 關聯 關係 屬性的繼承 屬性的繼承 行為的繼承 無法表示行為 物件導向式資料塑模通常是使用統一塑模語言(UML)
圖13-2 UML類別與物件圖 (a) 有兩個類別的類別圖 類別 屬性 運算 類別圖顯示物件導向式模型的靜態結構:物件類別、內部結構、與關係
(b) 有兩個實例的物件圖 物件圖顯示符合特定類別圖的實例
運算 • 類別之所有實例都會提供的功能或服務 • 運算子的類型: • 建構子:建立類別的新實例 • 查詢:存取物件狀態,但是不改變它的狀態(使用OQL來查詢資料) • 更新:改變物件的狀態(使用OQL來更新資料) • 範圍:應用於類別、而非實例上的運算 運算是物件行為的實作
關聯 • 關聯: • 物件類別間的關係 • 關聯角色: • 關聯中的物件角色 • 連到類別的關聯端點 • 多重性: • 在關聯中有多少參與物件。下限..上限(基數)
圖13-8 大學資料庫的UML類別圖 下面的投影片將顯示這個UML圖形的ODL實作
圖13-9 大學資料庫的ODL綱要 由class關鍵字開始類別的定義。類別的成份包含在 { 與 }之間
屬性有資料型態與名稱 圖13-9 大學資料庫的ODL綱要 使用enum指定可容許的值
圖13-9 大學資料庫的ODL綱要 extent = 類別的所有實例集合
圖13-9 大學資料庫的ODL綱要 運算的定義:傳回型態、名稱、與參數列。參數中包含資料型態與名稱
圖13-9 大學資料庫的ODL綱要 • 只有一元與二元關係可以有雙向關係,使用 inverse 關鍵字實作 • relationship表示類別是位於多基數邊 • relationship set表示類別是位於單基數邊﹐且另一類別(多基數邊)的實例沒有排序 • relationship list表示類別是位於一對多關係中的單基數邊﹐且另一類別(多基數邊)的實例經過排序 relationship set表示對另一類別之無序實例集合的1:N 關係 inverse建立雙向的關係
圖13-9 大學資料庫的ODL綱要 • 只有一元與二元關係可以有雙向關係,使用 inverse 關鍵字實作 • relationship表示類別是位於多基數邊 • relationship set表示類別是位於單基數邊﹐且另一類別(多基數邊)的實例沒有排序 • relationship list表示類別是位於一對多關係中的單基數邊﹐且另一類別(多基數邊)的實例經過排序 relationship list表示對另一類別之有序實例集合的1:N 關係
圖13-9 大學資料庫的ODL綱要 • 只有一元與二元關係可以有雙向關係,使用 inverse 關鍵字實作 • relationship表示類別是位於多基數邊 • relationship set表示類別是位於單基數邊﹐且另一類別(多基數邊)的實例沒有排序 • relationship list表示類別是位於一對多關係中的單基數邊﹐且另一類別(多基數邊)的實例經過排序 relationship 表示對另一類別之實例的N:1關係
OODB物件的查詢 Select s.age From student s Where s.name=“John Marsh” Select s From students s Where s.gpa>=3.0 物件的屬性 為物件
OODB物件的查詢 物件定義的relation Select x.enrollment From courseofferings x, x.belongs_to y Where y.crse_code=“MBA 664” and x.selection=1 Select c.crse_code, c. crse_title From students s s.takes x, x.belongs_to c Where s.name=“Mary Jones”
現有的ODBMS產品 • 普及的原因: • CAD/CAM 應用 • 地理資訊系統 • 多媒體 • 網站的應用 • 資料型態日益複雜 • ODBMS的應用 • 材料表 • 電信資料 • 醫療 • 工程設計 • 財務與貿易