面向对象的基本概念是在上世纪70年代萌发出来的,它的基本做法是把系统工程中的某个模组和构件视为问题空间的一个或一类对象。到了80年代,面向对象的方法得到很快发展,在系统工程、计算机、人工智慧等领域获得了广泛套用。但是,在更高级的层次上和更广泛的领域内对面向对象的方法进行研究还是90年代的事。面向对象的基本思想是通过对问题领域进行自然的分割,用更接近人类通常思维的方式建立问题领域的模型,并进行结构模拟和行为模拟,从而使设计出的软体能儘可能地直接表现出问题的求解过程。因此,面向对象的方法就是以接近人类通常思维方式的思想,将客观世界的一切实体模型化为对象。每一种对象都有各自的内部状态和运动规律,不同对象之间的相互联繫和相互作用就构成了各种不同的系统。
模型介绍
面向对象数据模型是捕获在面向对象程式设计中所支持的对象语义的逻辑数据模型,它是持久的和共享的对象集合,具有模拟整个解决方案的能力。面向对象数据模型把实体表示为类,一个类描述了对象属性和实体行为。例如,CUSTOMER类不仅含有客户的属性(比如CUST.ID、CUST.NAME和CUST.ADDRESS等),还包含模仿客户行为(如修改订单)的过程。类-对象的实例对应于客户个体。在对象内部,类的属性用特殊值来区分每个客户(对象),但所有对象都属于类,共享类的行为模式。面向对象资料库通过逻辑包含(logical containment)来维护联繫。
面向对象资料库把数据和与对象相关的代码封装成单一组件,外面不能看到其里面的内容。因此,面向对象数据模型强调对象(由数据和代码组成)而不是单独的数据。这主要是从面向对象程式设计语言继承而来的。在面向对象程式设计语言里,程式设计师可以定义包含其自身的内部结构、特徵和行为的新类型或对象类。这样,不能认为数据是独立存在的,而是与代码(成员函式的方法)相关,代码(code)定义了对象能做什幺(它们的行为或有用的服务)。面向对象数据模型的结构是非常容易变化的。与传统的资料库(如层次、网状或关係)不同,对象模型没有单一固定的资料库结构。编程人员可以给类或对象类型定义任何有用的结构,例如,鍊表、集合、数组等。此外,对象可以包含可变的複杂度!
模型优点
适合处理各种各样的数据类型:与传统的资料库(如层次、网状或关係)不同,面向对象资料库适合存储不同类型的数据,例如,图片、声音、视频,包括文本、数字等。
面向对象程式设计与资料库技术相结合:面向对象数据模型结合了面向对象程式设计与资料库技术,因而提供了一个集成套用开发系统。
提高开发效率:面向对象数据模型提供强大的特性,例如继承、多态和动态绑定,这样允许用户不用编写特定对象的代码就可以构成对象并提供解决方案。这些特性能有效地提高资料库应用程式开发人员的开发效率。
改善数据访问:面向对象数据模型明确地表示联繫,支持导航式和关联式两种方式的信息访问。它比基于关係值的联繫更能提高数据访问性能。
模型缺点
没有準确的定义:很难提供一个準确的定义来说明面向对象DBMS应建成什幺样,这是因为该名称已经套用到很多不同的产品和原型中,而这些产品和原型考虑的方面可能不一样。
维护困难:随着组织信息需求的改变,对象的定义也要求改变并且需移植现有资料库,以完成新对象的定义。当改变对象的定义和移植资料库时,它可能面临真正的挑战。
不适合所有的套用:面向对象数据模型用于需要管理数据对象之间存在的複杂关係的套用,它们特别适合于特定的套用,例如工程、电子商务、医疗等,但并不适合所有套用。当用于普通套用时,其性能会降低并要求很高的处理能力。