Oracle8.0是一个对象关系数据库,因为它非纯面向对象数据库也非纯关系数据库,代表两者的组合。
以下理由可以使大家相信面向对象的方法将成为主流
1:面向对象数据库对用户当前的关系数据库是向下兼容的,因为用户可以把当前关系数据库和应用移植到oracle8i中而不用重写。
2:现在的对象数据库支持sql数据库标准的特定查询,企业界过去迅速接受关系数据库的原因之一就是可以创建非凡的查询的能力。现在对象数据库已经提供给标准sql工具接口了。意味着可以轻松地从关系数据库过渡到对象数据库。
3:面向对象与关系表达的结合在oracle8i中是语义清楚的,比单独的关系或面向对象的表达更加有力得多。这使设计紧凑有效的数据库更加轻易。
4:对象关系数据库是一个能存数据、数据间的关系以及数据的行为(即它与其他数据相互作用的方式)的数据库。它不只是停留在处理数据这一低级的层次上,而且上升到处理包裹着数据的对象的层次。
以下将学习面向对象的基本概念,不过会偏向于面向数据库的对象:
对象(object):是现实世界实体的软件表示,由属性和操作组成。
类(class):可以把相互间的行为和属性类似的多个对象归成类。类即为对象的模板。对象为类包含了血肉的实体。
封装(encapsulation):指数据绑定与特定的对象中,使它的访问仅能通过该对象提供或接受的动作来进行(这样能避免非法的访问)。封装意味着数据库中每个对象都具有清楚的定义良好的接口。
数据触发器(database trigger):关系数据库具有的一种封装形式,但是它不具备成为提供封装功能的工具的能力,因为用过多的数据库触发器将降低整个数据库的性能。
可扩充性(extensibility):是面向对象数据库增加新对象及其行为而不会影响其他对象和应用的一种能力。
继续(inheritance):一种代码共享的形式。子类可以拥有父类的数据和行为。它是创建对象新类作为已有类的非凡化的一种能力。
多态(polymorphism):它是对象对相同消息做出不同反应的功能。同一对象基于提供的信息做出不同的反应,并且能理解输入信息的上下文。