面向對象數據模型

面向對象數據模型

面向對象的基本概念是在上世紀70年代萌發出來的,它的基本做法是把系統工程中的某個模塊和構件視為問題空間的一個或一類對象。到了80年代,面向對象的方法得到很快發展,在系統工程、計算機、人工智慧等領域獲得了廣泛應用。但是,在更高級的層次上和更廣泛的領域內對面向對象的方法進行研究還是90年代的事。面向對象的基本思想是通過對問題領域進行自然的分割,用更接近人類通常思維的方式建立問題領域的模型,並進行結構模擬和行為模擬,從而使設計出的軟體能儘可能地直接表現出問題的求解過程。因此,面向對象的方法就是以接近人類通常思維方式的思想,將客觀世界的一切實體模型化為對象。每一種對象都有各自的內部狀態和運動規律,不同對象之間的相互聯繫和相互作用就構成了各種不同的系統。

模型介紹


面向對象數據模型是捕獲在面向對象程序設計中所支持的對象語義的邏輯數據模型,它是持久的和共享的對象集合,具有模擬整個解決方案的能力。面向對象數據模型把實體表示為類,一個類描述了對象屬性和實體行為。例如,CUSTOMER類不僅含有客戶的屬性(比如CUST.ID、CUST.NAME和CUST.ADDRESS等),還包含模仿客戶行為(如修改訂單)的過程。類-對象的實例對應於客戶個體。在對象內部,類的屬性用特殊值來區分每個客戶(對象),但所有對象都屬於類,共享類的行為模式。面向對象資料庫通過邏輯包含(logical containment)來維護聯繫。
面向對象資料庫把數據和與對象相關的代碼封裝成單一組件,外面不能看到其裡面的內容。因此,面向對象數據模型強調對象(由數據和代碼組成)而不是單獨的數據。這主要是從面向對象程序設計語言繼承而來的。在面向對象程序設計語言里,程序員可以定義包含其自身的內部結構、特徵和行為的新類型或對象類。這樣,不能認為數據是獨立存在的,而是與代碼(成員函數的方法)相關,代碼(code)定義了對象能做什麼(它們的行為或有用的服務)。面向對象數據模型的結構是非常容易變化的。與傳統的資料庫(如層次、網狀或關係)不同,對象模型沒有單一固定的資料庫結構。編程人員可以給類或對象類型定義任何有用的結構,例如,鏈表、集合、數組等。此外,對象可以包含可變的複雜度!

模型優點


適合處理各種各樣的數據類型:與傳統的資料庫(如層次、網狀或關係)不同,面向對象資料庫適合存儲不同類型的數據,例如,圖片、聲音、視頻,包括文本、數字等。
面向對象程序設計與資料庫技術相結合:面向對象數據模型結合了面向對象程序設計與資料庫技術,因而提供了一個集成應用開發系統。
提高開發效率:面向對象數據模型提供強大的特性,例如繼承、多態和動態綁定,這樣允許用戶不用編寫特定對象的代碼就可以構成對象並提供解決方案。這些特性能有效地提高資料庫應用程序開發人員的開發效率。
改善數據訪問:面向對象數據模型明確地表示聯繫,支持導航式和關聯式兩種方式的信息訪問。它比基於關係值的聯繫更能提高數據訪問性能。

模型缺點


沒有準確的定義:很難提供一個準確的定義來說明面向對象DBMS應建成什麼樣,這是因為該名稱已經應用到很多不同的產品和原型中,而這些產品和原型考慮的方面可能不一樣。
維護困難:隨著組織信息需求的改變,對象的定義也要求改變並且需移植現有資料庫,以完成新對象的定義。當改變對象的定義和移植資料庫時,它可能面臨真正的挑戰。
不適合所有的應用:面向對象數據模型用於需要管理數據對象之間存在的複雜關係的應用,它們特別適合於特定的應用,例如工程、電子商務、醫療等,但並不適合所有應用。當用於普通應用時,其性能會降低並要求很高的處理能力。