1 / 18

第十八章 面向对象的数据库系统 自从六十年代末七十年代初数据库系统诞生以来,经历了基于 层次、网状和关系三个传统数据模型的发展阶段,在八十年代

R. 第十八章 面向对象的数据库系统 自从六十年代末七十年代初数据库系统诞生以来,经历了基于 层次、网状和关系三个传统数据模型的发展阶段,在八十年代 已经取得辉煌的成就。但是应用领域基本局限在事务处理方面。 随着计算机应用的扩展,在非事务处理领域应用数据库的迫切 要求下,以面向对象数据模型为核心的数据库技术,即面向对 象的数据库系统 (OODBMS) 产生了并得到快速的发展。人们认 为面向对象数据库系统能有效地支持新一代数据库应用。 第一节 面向对象程序设计方法 第二节 面向对象的数据模型 第三节 面向对象数据库的物理组织

kamana
Télécharger la présentation

第十八章 面向对象的数据库系统 自从六十年代末七十年代初数据库系统诞生以来,经历了基于 层次、网状和关系三个传统数据模型的发展阶段,在八十年代

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. R 第十八章 面向对象的数据库系统 自从六十年代末七十年代初数据库系统诞生以来,经历了基于 层次、网状和关系三个传统数据模型的发展阶段,在八十年代 已经取得辉煌的成就。但是应用领域基本局限在事务处理方面。 随着计算机应用的扩展,在非事务处理领域应用数据库的迫切 要求下,以面向对象数据模型为核心的数据库技术,即面向对 象的数据库系统(OODBMS)产生了并得到快速的发展。人们认 为面向对象数据库系统能有效地支持新一代数据库应用。 第一节 面向对象程序设计方法 第二节 面向对象的数据模型 第三节 面向对象数据库的物理组织 第四节 面向对象数据库管理系统OODBMS 第五节 面向对象数据库在图形中的应用 第六节 面向对象数据库管理系统(OODBMS)产品介绍 第七节 对象关系数据库系统(ORDBS)

  2. R1 第一节 面向对象程序设计方法 面向对象的思想把现实世界抽象为一系列对象及其联系的集合。 面向对象程序设计方法是一种支持模块化程序设计和软件重用 的编程方法。它把程序设计的主要活动限定为建立对象及其联 系。一个面向对象程序就是相互联系的对象集合。封装性和继 承性是对象概念的两个重要特性。 对象的封装性是指,对象是以对象名封装的数据结构和可施加 在这些数据上的操作集合。若对象A要启动对象B的操作C,则 A只需以操作名C为主要信息向B发消息。B即启动C完成对数据 结构的加工,使其达到新的状态。程序的运行使各对象达到了 各自的终止状态,输入和输出也由对象自己完成。 消息(操作C) 对象的继承性是指,对 象可有子孙对象形成层 次结构。子孙对象继承 前辈的结构和操作,并 可增加新的结构和操作 对 象 A 对 象 名 对 象 名 对 象 B 操作 算法 操作 算法 数据 结构 数据 结构 C

  3. R21 第二节 面向对象的数据模型 面向对象程序设计方法和数据库技术的结合产生了面向对象 数据库系统OODBS。传统数据库面向元组,而OODBS面向 的是对象,对象是具有复杂结构的逻辑整体。 本节介绍OODBS的数据模型,简称为面向对象数据模型。 一 对象的结构 对象是经名字封装的数据结构(若干个变量)及其操作代码集(方法)。 对象之间的界面由一组消息(操作要求)定义。对象有三个组成部分: 1.变量集合:即对象数据的数据 结构。每个变量的值本身也是 一个对象。 2.消息集合:是对象对外提供的 操作界面。每个消息都能够由 该对象接收和响应。 3.方法集合:每个方法是实现对 应消息的程序代码。 主要优点: 修改对象定义而不影响系统其它部分 消息(操作要求) 对 象 名 对 象 名 数据结构 操作算法 数据结构 操作算法 对象A 对象B 接下页

  4. 类和类层次 • [类的概念] 结构(消息集,方法集,变量集)相同的对象集称为类。 • 对象是类的实例。同一类的各个实例称为是相似的,它们共 • 享一个类定义,差别仅在于对变量的赋值不同。类的概念相 • 似于抽象数据类型,但有更多的特点。 • 类可看成是特殊的对象,称为类对象。它由三个部分组成: • 1. 一个变量,其值是该类全体实例构成的集合。 • 2. 消息new, 其功能是建立该类的一个新实例。 • 3. 方法, 这是实现上述消息的程序代码。 • [类层次结构] 面向对象数据库模式是类的集合。在一个面向对 • 象数据库模式中,存在相似而又不同的类。这些类有共同的 • 变量消息方法,也有各自的变量消息方法。为此提供了一种 • 类层次结构,统一定义共同的变量消息方法,分别定义各自 • 的变量消息方法。类A可以是类B的子类,并因此称类B是类 • A的父类(或称为超类)。于是,一个面向对象数据库模式的 • 一组类构成有限的层次结构,称为类层次。每个类继承其所 • 有超类的变量方法消息。一个面向对象数据库模式包含若干 • 个类层次。 R22 接下页

  5. R21 例子:银行业务应用的面向对象数据库类层次结构 (为简单计,每个对象仅给出变量) 公民 证号,姓名,地址 客户 雇员 工号,雇用日,工资 信贷类,帐号,电话 办事员 出纳 秘书 职责,办公地点 周时数,上级姓名 周时数,台号 每个对象的变量方法消息提供给后代对象所共享,后代对象 还可以增加自身的变量方法消息。例如,对象办事员逻辑地 具有前辈对象公民和雇员以及自身的变量方法消息。 上述六个对象构成一棵对象层次树。结点是对象。后代结点 继承前辈结点的数据结构和操作。

  6. R23 • 多重继承性 • 简单的类层次结构不适合描述某些应用,例如,雇员的种类中 • 有全职出纳、半职出纳、全职秘书和半职秘书,若专门定义这 • 些对象,则产生形式上的冗余以及潜在的不一致性。 • 多重继承性是一个解决方法。这种方法允许一个类可以继承多 • 个超类的变量方法消息。类/子类关系用一个有向无环图DAG • 表示。下边DAG图简洁地描述了全职/半职的出纳/秘书对象。 公民 客户 雇员 全职 半职 出纳 秘书 办 事 员 全职 出纳 半职 出纳 半职 秘书 全职 秘书 为了防止子类继承超类的变量方法消息时发生同名冲突的情 况,可预先约定选择的方法。

  7. R24 • 对象的标识OID • 关系元组利用其键值作为唯一标识,这类标识称为值标识。 • 程序变量使用用户提供的名字作为唯一标识,这类标识称 • 为名标识。 • 面向对象数据库系统使用‘内标识’。跟上述两类标识不同, • 对象标识的概念是建立在数据模型和程序设计语言中, • 不要求用户给出标识。可以简单地由指向对象的物理 • 存储地址的指针来表示,但物理指针的持久性很差, • 面向对象数据库系统中标识要求‘永久持久性’。 • 为了理解对象标识的特殊性,我们讨论标识的三种持久性。 • 1.程序内持久性:标识仅在程序或查询执行期间有效。例 • 如程序设计语言中的变量名和SQL语言中的元组标识符。 • 2.程序间持久性:标识在执行不同程序过渡时仍然有效, • 但数据重组时可能改变。例如SQL语言中的关系名。 • 3.永久持久性:标识不仅在程序执行和程序过渡中而且在 • 数据重新组合中保持不变。面向对象数据库系统要求对 • 象标识OID具有这种永久持久性。使能独立于对象内部 • 的结构,即使变量和方法发生变化,标识仍然保持不变。

  8. R25 五 对象的嵌套 对象的变量值可以是在较低级别上实现的标准数据类型实例, 也可以是对象。后者的情况导致产生对象之间的嵌套层次结 构。若对象B是对象A某变量的值,则称:A包含B,B含于A, B是A的子对象,A是复合对象或复杂对象。 右边是对象嵌套层次结构的例: 计算机系统 电路板 指令 设备 总线 界面集 芯片集 电路板、总线、设备和指令都是对象计算机系统的子对象; 芯片集和界面集分别是电路板和总线的子对象。计算机系统 类可能还包含了其它一些变量,例如名称、编号、负责人和 完成日期等,由于性能上的原因,这些变量的值作为直接在 较低级别上实现的标准数据类型实例比作为子对象更为合适 些。嵌套层次结构使得不同的用户采取不同的粒度观察对象。

  9. R3 第三节 面向对象数据库的物理组织 我们按照如下方式物理地表示类: 1.基本类:对应于基本数据类型(如整数、浮点数和字符串)的类称 为基本类,它直接由计算机系统实现,用于构造其它类。 2.非基本类:按如下方式表为一个记录型。用定长记录文件存储。 类的每个变量用记录型的域来表示, 若变量是基本类,则域存储基本类对象本身的值; 若变量是非基本类,则域存储该类的对象标识。 类的每个集合值变量由链表表示。 记录型提供‘长域’,通过指针存储特殊变量,例如三种数据类型: 文本数据:即由正文处理程序编辑的字符序列; 音频数据:即由音频软件处理过的数字化音频数据序列; 视频和图形数据:由特殊软件处理的位图或几何对象的集合。 允许这些变量对应的对象携带非常大的数据量。 长域表示的变量对象通常存储在一个特殊的文件中。

  10. R4 第四节 面向对象数据库管理系统OODBMS OODBMS是面向对象技术与数据库管理的结合体。除具有面 向对象的概念和方法之外,还具有传统DBMS的所有功能。 1989年12月在日本举行的第一届演绎与面向对象数据库国际 会议发表了著名的面向对象数据库宣言。在这个宣言中明确 地提出了OODBMS所需的条件。这些条件分为三类: 第一类是基本功能必需的十五个条件,前七个是有关面 向对象的概念和原理,即对象、对象标识符、封装 性、类、类与类层次结构、重定义和重载;后八个 是传统DBMS所必须满足的条件。 第二类是附加的5个条件,在多继承、扩充的完整性约束、 分布式功能、较强的事务处理能力和版本管理能力 等方面强化OODBMS的功能。 第三类是可选的4个条件。 接下页

  11. R41 一 面向对象数据库管理系统的内容 OODBMS由类管理、对象管理和对象控制三部分组成。 1. 类管理 对类的定义和操作进行管理。 类定义 建立类层次结构, 主要定义类的数据结构、方法和类间的继承和合成。 类模式演化,是与传统DBS的重要差别之一。主要内容是: 类中内容(属性、方法和类名)的变化; 类间关系(继承关系和合成关系)的变化; 类结构重组 包括:在类层次结构中对类的增删、 对类的合成分解和产生超类等。 类层次结构模型的查询, 查询类中的内容(数据结构与方法)、类间关系和类结构。 其它,如权限管理、实例加载和打印功能等。 2. 对象管理(实例管理) 完成对类中对象的操纵管理。主要是: 对象查询(以类层次结构模型图为依据沿图中路径实现查询); 对象的增删改操作;建立索引和集簇。 3.对象控制 完整性约束条件及检验;安全性表示和检查; 并发控制和事务处理;故障恢复等。 接下页

  12. R42 • 面向对象数据库语言 • 为实现OODBMS的功能,需要提供一种数据库语言。目前 • 所用的语言大多选用类SQL形式,其中较为著名的是SQL-3, • 它是在SQL-2基础上扩充对象成分的一种OO数据库语言。以下 • 简单介绍的OSQL具有面向对象数据库语言的特色。 • 1. 模式定义子语言 主要的语句是: • 类创建; 方法创建;类演化; 类名修改; • 方法修改;类删除; 方法删除。 • 2. 对象查询子语言 主要用于对对象的查询和增删改。 • 对象查询选用SQL中的select-from-where子句形式,但对其 • 语法语义赋予新的含义。select是必备的目标子句,指出查 • 询目标属性;from是任选的范围子句,指出查询涉及的类; • where是任选的条件子句,以复杂路径式指出查询的限制。 • 删除对象 delete-from-where • 插入对象 insert-into-value • 修改对象 update-set-where • 3. 对象控制子语言

  13. R5 第五节 面向对象数据库在图形中的应用 本节以图形应用为例说明,面向对象数据库由于它有别于传 统数据库的特色,因而在新兴的应用领域显示出优越性。为 了用面向对象方法建立图形的数据模型,首先用类表示图元, 然后用类层次结构表示图形中的面与层,最后用类层次结构 模型表示图形应用。 2.图元的结构模型 1.类与图元 图元是图形基本元素,用类表示如下: 图元 接下页 名称 标识 属性 方法 点 pno 位置参数x,y 移动 直线 lno 位置参数a,b,c,d 移动 方向参数ld 旋转拼接 园 cno 圆心x,y 移动 半径r,方向ld 放大缩小 椭圆 eno 中心x,y 移动旋转 横径a,纵径b 放大缩小 点 线 椭圆 直线 园 直线段 园 弧 椭圆弧 直线段、圆弧段、椭圆弧段、双曲线、 抛物线和二次曲线等图元从略。 图元的上述结构反映 他们之间的继承关系

  14. R51 3. 类层次结构与面(plane) 图形中的面由若干条线组合而成。面内可着色。每个面有唯 一标识,有放大缩小旋转移动等操作。组成面的线必须满足 封闭性约束。面是一个类,与线形成合成关系,可用类层次 结构表示。 4. 类层次结构与图层(layer) 图形中的图层由若干个点线面组合而成。每个图层有唯一标 识。一般无操作。层是一个类,与点线面形成合成关系,可 用类层次结构表示。 5. 类层次结构与图(graph) 一个完整的图由若干层组合而成。每个图有唯一标识,一般 无操作。图是一个类,与层有合成关系,用类层次结构表示。

  15. R6 第六节 面向对象数据库管理系统(OODBMS)产品介绍 1.OODBMS发展阶段 OODBMS自上世纪八十年代中期以来经历了三个发展阶段 实验室原型阶段 1985-1989 其结构体系和技术路线 为商业化打下基础 工业界原型产品vbasic和orien 初期商业化产品 九十年代初 有实际应用能力,但在功能完整 性、开发工具和稳、定性有待提高 成熟产品阶段 至今 有完整的OODBMS功能;有配套 工具软件,多种平台运行能力; 有众多应用范例和较大的市场。 产品例:object store、ontos及O2 接下页

  16. R61 • OODBMS产品的结构流派 • OOP的扩充 • 充分利用面向对象程序设计语言的能力,以OOP为核心扩 • 充其持久性成分,增加传统数据库功能。OO功能较强,但 • 数据库功能不足。典型产品是 object store和ontos. • RDBMS的扩充 • 以RDBMS为核心扩充OO功能,增加传统数据库功能,典 • 型产品是postgres和openodb,其特点与OOP扩充流派相反。 • 数据库功能较强,但OO功能不足。目前知名的RDBMS产品 • oracle,sybase,informix及ingress均已按此方式扩充,因而具有 • 一定的OODBMS的功能。RDBMS扩充型是最流行的流派。 • 独立型 • 不依附某种传统技术,直接按OODBMS的客观需求独立构 • 建系统,因而具有标准的OODBMS功能和形式。但研制缺 • 乏参照物,故有生产周期长和使用方式不易为用户接受等 • 缺点。此类产品的代表是O2 接下页

  17. R62 • OODBMS典型产品介绍 • object store(http://www.objectstore.net/index.ssp) • 由美国object design公司于1989年推出。目前版本是V6.1 • 它是C++的持久性扩充,具备OODBMS15个必备条件的大 • 部分,具备5个附加条件。硬件平台以SUN和SGI等工作 • 站为主,以UNIX为操作系统, C++为基本系统软件。 • ontosdb • 由美国ontologic公司于1989年推出,前身称为Vbase。目前 • 版本是V3.0,它是C++的持久性扩充。硬件平台有微机和工 • 作站,操作系统以UNIX为主, 软件工具以C++为主。 • O2 • 由法国Altair公司于1991年推出,目前版本是V4.0,属于独 • 立型产品。具有OODBMS较全面的功能,有一套完整的开 • 发工具,其数据库语言OSQL具有较强的功能,有嵌入型和 • 自主型两种组织方式。目前用户以西欧为主。以工作站为 • 硬件平台,基本操作系统是UNIX, 基本语言工具是C,C++等. • 上述三个产品均能在C/S方式结构下的网上运行。

  18. R7 第七节 对象关系数据库系统(ORDBS) ORDBS是OODBS的一个分支,属于第二种结构流派,即 RDBMS的OO扩充。它以关系型的方式吸取OO的部分功 能,既支持广泛使用的SQL,又具有OO特性,适应了传 统应用领域发展和新应用领域的需要。它有如下特征: 对基本类型扩充的支持 具有可扩充的数据类型、函数和操作符,并把一些数据 类型及有关的函数、操作符和访问方法进行封装。 对复杂对象的支持 通过一些构件把多种基本类型或用户定义类型构建成复 杂对象。其中最基本的构件是组合、集合和引用。 支持继承 子类对超类各种特性的继承,包括数据继承和 函数继承、单继承和多重继承。 提供强大和通用的规则系统 RDBMS通过约束定义和触发 器对规则提供支持,ORDBMS支持的规则系统更强大灵活 近年国际上主要数据库产品ORACLE,INGRESS,UDB均先后 推出ORDBS的功能结构模式,这可能预兆着今后数据库发 展的方向。

More Related