模型介紹
面向對象數據模型是捕獲在面向對象程式設計中所支持的對象語義的邏輯數據模型,它是持久的和共享的對象集合,具有模擬整個解決方案的能力。面向對象數據模型把實體表示為類,一個類描述了對象屬性和實體行為。例如,CUSTOMER類不僅含有客戶的屬性(比如CUST.ID、CUST.NAME和CUST.ADDRESS等),還包含模仿客戶行為(如修改訂單)的過程。類-對象的實例對應於客戶個體。在對象內部,類的屬性用特殊值來區分每個客戶(對象),但所有對象都屬於類,共享類的行為模式。面向對象資料庫通過邏輯包含(logical containment)來維護聯繫。
面向對象資料庫把數據和與對象相關的代碼封裝成單一組件,外面不能看到其裡面的內容。因此,面向對象數據模型強調對象(由數據和代碼組成)而不是單獨的數據。這主要是從面向對象程式設計語言繼承而來的。在面向對象程式設計語言裡,程式設計師可以定義包含其自身的內部結構、特徵和行為的新類型或對象類。這樣,不能認為數據是獨立存在的,而是與代碼(成員函式的方法)相關,代碼(code)定義了對象能做什麼(它們的行為或有用的服務)。面向對象數據模型的結構是非常容易變化的。與傳統的資料庫(如層次、網狀或關係)不同,對象模型沒有單一固定的資料庫結構。編程人員可以給類或對象類型定義任何有用的結構,例如,鍊表、集合、數組等。此外,對象可以包含可變的複雜度!
模型優點
適合處理各種各樣的數據類型:與傳統的資料庫(如層次、網狀或關係)不同,面向對象資料庫適合存儲不同類型的數據,例如,圖片、聲音、視頻,包括文本、數字等。
面向對象程式設計與資料庫技術相結合:面向對象數據模型結合了面向對象程式設計與資料庫技術,因而提供了一個集成套用開發系統。
提高開發效率:面向對象數據模型提供強大的特性,例如繼承、多態和動態綁定,這樣允許用戶不用編寫特定對象的代碼就可以構成對象並提供解決方案。這些特性能有效地提高資料庫應用程式開發人員的開發效率。
改善數據訪問:面向對象數據模型明確地表示聯繫,支持導航式和關聯式兩種方式的信息訪問。它比基於關係值的聯繫更能提高數據訪問性能。
模型缺點
沒有準確的定義:很難提供一個準確的定義來說明面向對象DBMS應建成什麼樣,這是因為該名稱已經套用到很多不同的產品和原型中,而這些產品和原型考慮的方面可能不一樣。
維護困難:隨著組織信息需求的改變,對象的定義也要求改變並且需移植現有資料庫,以完成新對象的定義。當改變對象的定義和移植資料庫時,它可能面臨真正的挑戰。
不適合所有的套用:面向對象數據模型用於需要管理數據對象之間存在的複雜關係的套用,它們特別適合於特定的套用,例如工程、電子商務、醫療等,但並不適合所有套用。當用於普通套用時,其性能會降低並要求很高的處理能力。