面向对象数据库系统(精选11篇)
面向对象数据库系统 篇1
摘要:面向对象的出发点和基本原则是尽可能模拟人类习惯的思维方式, 使开发软件的方法与过程接近人类认识世界解决问题的方法与过程。面向对象数据库系统是为了满足新的数据库应用需要而建立的新一代数据库系统。讨论和设计了面向对象数据库的理论概念和含义, 设计和构建了一个面向对象的数据库系统的理论体系。
关键词:数据库,面向对象,数据库系统
随着应用的扩展, 特别是诸如人工智能等复杂应用的需要, 关系型数据库已经显得力不从心, 人们迫切希望建立一种新的数据库解决方案来适应这些复杂需求。面向对象方法是一种崭新的思维方法, 它是把程序看作是相互协作而又彼此独立的对象的集合。由于对象的独立封装, 模块的可构造性、可扩充性、可重用性也大大加强, 从而面向对象的软件工程能够胜任当今大规模复杂、易变软件系统开发应用的要求。
1 面向对象数据库模型
1.1 核心概念
1.1.1 对象与对象标识
对象, 是现实世界中实体的抽象, 是数据和操作的集合, 是持久化到数据库中的最小的存储单位。
这里的对象其实与一般的面向对象程序设计语言中的对象并没有很大不同。但是, 这里的对象是持久性的。数据库中的对象是数据记录的最小单位, 也就是说, 数据库中至少存在一个对象才有意义。当然, 对象中还可以有对象的属性, 方法等, 但一个对象必须是完整的。
对象标识, 指的是唯一标定一个对象的标志, 一个对象对应一个标识符。在现实世界中, 对象可能会随着时间的推移而发生改变, 但对象标识不应该改变, 因此, 对象标识自对象生成后就不应该再改变, 否则无法使用对象标识唯一确定一个对象。即使两个对象的属性和方法以及状态完全一致, 只要其对象标识不同, 则两者是不同的对象。
对象标识一般有以下3种实现方式:
1) 值标识, 使用对象的某一属性作为其对象标识。
2) 名标识, 使用一个名字来表示标识。
3) 内标识, 以上两种方式是由用户建立的, 而这种方式是由系统内部建立的, 不具有任何实际含义, 且只有系统才可以“观察”此类对象标识。
另外, 在对象数据库中, 标识是永久不变的, 即具有永久持久性, 这和面向对象程序中的对象标识不一样, 面向对象程序中的对象标识只具有对象内持久性。
1.1.2 封装
抽象是对象的外部界面与内部实现之间实行清晰隔离的一种抽象, 外部与对象的通信只能通过消息来实现。在对象数据库中, 表现为对象的私有和保护成员只能通过其方法来查询得到, 而公有成员可以直接查询。这种方式的优点是对象被封装成了自含的单元, 对象只接受已定义好的操作, 其他对象不能直接访问对象的非公有成员。缺点是丧失了传统关系数据库中进行即席的、按内容的查询, 这就不够方便灵活了, 因此, 需要做一些改进和妥协。
1.1.3 类
共享同一属性和方法集的所有对象构成的对象类, 一个对象是一个类的实例。在数据库中是一种抽象的数据类型, 相当于关系数据库中的一张表。
1.1.4 类层次
这里涉及到继承的概念, 即类可以继承类, 从而具有与父类的所有符合条件的属性和方法。这是关系数据库中所没有的。
1.1.5 消息
指的是对象的方法调用。通过对象的方法调用可以访问对象的属性数据和执行业务逻辑。这也是关系数据库中没有的。
1.2 对象与对象标识
1.2.1 对象结构
包括两部分, 一个是属性集合;另一个是方法集合。属性集合将用于存储数据, 方法集合将用于操作数据。属性集合即是对象的成员变量, 其中又可以分为公有类型的成员、私有类型的成员和保护类型的成员。公有类型的成员可以直接使用查询语句进行查询, 保护型成员可以在该类的子类的对象中直接访问, 私有类型的成员只能在本类的对象中访问, 外部对象只能通过实现定义好的方法进行访问。如果没有事先定义好的方法, 则外部将无法访问这些变量的值, 这就实现了对象的封装性。在OODB数据库中, 对象结构同样分成这两种集合。
1.2.2 对象标识
表示在一个数据库中一个对象仅有一个唯一不变的标识就是对象标识。这个标识用来精确定位一个对象。在OODB数据库中, 对象标识是唯一标定这一持久性存储单元的唯一依据。其他对象或方法访问本对象的属性和方法必须先找到该对象的对象标识, 否则无法访问。
1.2.3 封装
即将一个对象的属性和方法封装在对象内部, 外部只能通过对象提供的外部接口进行访问。这样就提高了数据的安全性和代码的重用性。
1.3 类与类层次
相似对象的集合称为类, 在数据库中表现为面向对象数据库模式的集合, 它规定了该类的对象的数据结构规则和操作规则。在面向对象数据库中, 一个类相当于关系数据库中的一张表。它同样有字段和属性, 甚至还有关系数据库表所没有的方法。这种思路可以在面向对象数据库中实现复杂的逻辑。
类层次表现在继承上, 即父类和子类的层级关系。这是为了多态和数据共享的目的。这种思路可以象Java中那样使用接口和基类来完成设计。
1.4 继承
就像类层次中所说的, 继承是为了多态和数据共享的目的, 也是面向对象代码重用的重要机制之一。
1.5 滞后联编
即实现了重载的效果, OODBMS不能在编译时把操作名联编到程序上, 必须在运行时根据需要进行抉择。
1.6 对象的嵌套
是一种设计模式组合。将多个类的对象加人到一个类的属性中, 使之实现复杂的功能。
2 面向对象数据库语言
OODB语言用于描述面向对象数据库模式, 说明并操作类定义和对象实例。OODB语言主要包括对象定义语言 (ODL) 和对象操作语言 (OML) , 其中对象操作语言又包括一个重要子集—对象查询语言 (OQL) 。OODB语言一般应该具备下列功能。
2.1 类的定义与操作
包括定义、生成、存取、修改和撤销类。其中类的定义包括定义类的属性, 操作特征、继承性与约束等。
2.2 操作/方法的定义
面向对象数据库语言可以用来定义操作/方法, 在操作实现中, 语言的命令可用于操作对象局部数据结构。
2.3 对象的查询
OODB语言可以用于操作 (包括生成、存取、修改与删除) 实例对象。对于对象的存取—查询部分, OODB语言可以直接查询对象公有成员而不必向每一个对象逐个发送消息。而对于非公有成员, 则只能通过发送消息来实现存取、修改与删除。通过发送消息的查询效率可能会很低, 因此, 对于一些经常要查询的数据应该尽量定义为公有类型。
3 面向对象数据库模式
3.1 模式的一致性
(1) 唯一性约束:
即同一模式中所有类的名字必须唯一、类中属性名和方法名必须唯一。
(2) 存在性约束:
每个被引用的类必须在模式中定义、某操作代码中调用的操作不需给出说明、每一个说明的操作必须存在一个现实程序。
(3) 子类型约束:
子类和父类不能有环、不能有多继承、单一父类必须加以说明。
3.2 模式演进操作
主要包括以下几个部分:
(1) 功类集的改变;
(2) 已有类的成分的改变;
(3) 子类/父类联系的改变。
面向对象数据库是数据库发展的方向。我国目前在操作系统和数据库系统方面是严重的依赖于他国的, 特别是在面向对象数据库领域几乎是一个空白。
参考文献
[1]布莱特, 皮瑞拉尼.面向对象的建模与设计在数据库中的应用[M].宋今, 赵丰年译.北京理工大学出版社, 2001.
[2]布奇.面向对象分析与设计[M].王海鹏, 潘加宇译.人民邮电出版社, 2009.
[3]斯塔姆, 锑格.面向对象的系统分析与设计[M].梁金昆译.清华大学出版社, 2005.
面向对象数据库系统 篇2
基于数据库和面向对象的运载火箭地面测发控软件复用
随着运载火箭地面测发控软件的规模越来越大,测发控软件的复用成为当前运载火箭地面软件的.发展趋势.本文介绍了一种新颖的运载火箭地面测发控软件复用技术,该技术将面向对象技术和数据库技术相结合,实现了运载火箭地面软件的复用,在加快试验进度的同时,也提高了程序的可靠性.目前,该技术已被成功应用在某新型运载火箭的地面测发控软件中.
作 者:孙海峰 陈迪 解月江 邹军 安占新 SUN Haifeng CHEN Di XIE Yuejiang ZOU Jun AN Zhanxin 作者单位:孙海峰,解月江,邹军,安占新,SUN Haifeng,XIE Yuejiang,ZOU Jun,AN Zhanxin(北京航天自动控制研究所,北京,100854)陈迪,CHEN Di(哈尔滨工程大学,哈尔滨,150001)
刊 名:航天控制 ISTIC PKU英文刊名:AEROSPACE CONTROL 年,卷(期):2010 28(2) 分类号:V554 TP31 关键词:运载火箭 测发控系统 软件复用 面向对象面向对象数据库系统 篇3
关键词:面向对象;软件开发;数据库;程序设计
中图分类号:TP311.1 文献标识码:A文章编号:1007-9599 (2010) 09-0000-01
Database Application Based on Object-oriented Technology
Zhang Lin
(Ocean University of China,Shandong266033,China)
Abstract:Based on the object-oriented technology,aiming at the characteristics of relational database application methods are discussed, and some books management system as example analysis.The paper expounds the programmer can make better use of object-oriented technology,in a more natural way of dealing with the underlying database data.
Keywords:Object-oriented;Software development;Database;
Programming
一、面向对象的技术特点
面向对象是一种从组织结构上模拟客观世界的方法,它从客观世界的基本成分——对象出发,通过抽象来实现对客观世界的模拟,并通过抽象提取出对象之间的相互联系和相互作用。面向对象的思想首先出现在程序设计语言中,随后,逐渐渗透到许多复杂工程领域。
面向对象概念的核心是对象,即对一个信息及相应处理的描述。对象可分为客观世界中的对象和目标系统中的对象两大类。前者为现实中遇到的每一个实体,可以是一部电话、一所房子、一本书,可以是数据结构中的栈和队列,也可以是任何的处理过程。后者为面向对象程序设计中的对象,是一种特殊的数据结构,它包括对象的形状数据及对此数据进行的各种操作,可用公式表示为:对象=数据+操作。面向对象技术通过对现实世界中对象的抽象以及对各个对象之间的相互关系、相互作用的描述实现由现实世界到目标系统的映射。
二、基于面向对象技术的关系数据库应用方法
(一)整体思路
面向对象的设计方法需要寻找应用程序的领域类,类中封装了数据和对数据操纵的方法,对类的实例化就得到对象,所以必须要解决好对象的存放、检索等问题。在面向对象数据库中,数据以对象的形式保存,并且数据自动保存对象间的关系。数据库不需要集合也不需要分解,而且数据库由可靠的图像组成,这些图像是与对象有关的状态图像。因为面向对象数据库处理的是对象,而不是行和列,所以需要定义相关的方法以便对对象进行操作。
(二)对象映射成关系数据库
由于RDBMS以二维表为基本管理单元,所以对象模型最终是由二维表及表问关系来描述,即对象模型向数据库概念模型的映射就是向数据库表的变换过程。从数据库的角度看,关联和聚合/组合关系之间的唯一不同是对象相互之问的绑定程度,对于聚合和组合,在数据库中对整体所做的操作通常需要同时对部分进行操作,而关联则不同。在聚合情况下,在整体中读取时,通常希望在部分中读取,而在关联情况下,需要执行什么操作则不明显。在将对象保存到数据库中或从数据库中删除对象也存在相同的情况。
三、基于面向对象技术的数据库应用实例
根据需求,需要开发一个图书管理信息系统,系统选用SQL Server 2000作为后台数据库,前台选择Visual C++作为开发语言,Visual C++中的MFC为Visual C++提供了大量的类,把Windows API函数封装在类中,方便用户开发Windows应用程序。
按照对象映射成关系数据库的有关规则,并结合实际需求,给出系统的数据表结构如下:
管理员信息表(管理员编号PK,管理员姓名,管理员类别,管理员密码,管理员性别,联系电话,地址);
图书类别表(图书类别PK,可借阅天数);
借书信息表(记录编号PK,图书编号FK,图书名称,图书类别FK,价格,读者编号FK,读者姓名,借书时间,借书年份,借书当日位于当年的日子数);
图书信息表(图书编号PK,图书名称,图书类别FK,出版社,价格,入库时间,图书状态,读者编号FK,借阅频率,说明);
读者留言表(记录编号PK,读者编号FK,读者姓名,留言时间,留言信息);
读者信息表(读者编号PK,读者姓名,读者类别FK,读者密码,读者性别,联系电话,地址,读者所在系别,注册时间);
读者类别表(读者类别PK,可借阅册数);
还书信息表(记录编号PK,图书编号FK,图书名称,图书类别FK,价格,读者编号FK,读者姓名,还书时间);
罚款信息表(记录编号PK,图书编号FK,图书名称,图书类别FK,价格,读者编号FK,读者姓名,借书时间,还书时间,超期天数,挂失时间,罚金,是否缴纳罚金);
数据表之间通过主键(PK)和外键(FK)建立关联,以实现数据约束。为了更方便地对数据进行操作和管理,图书管理信息系统设计并使用专门的数据库类CADOCONN来封装系统数据库,其中包含了连接数据库的代码。在ADOCONN.H中定义指向Connection对象的指针和指向Recordset对象的指针。按照面向对象的观点,对数据表封装的伪代码如下:
class 数据表名
{
//数据表中的字段名
//对数据表操作的方法完成查询、更新、删除等操作,这些方法中包含建立、断开连接的语句和要执行的SQL语句
//其他的方法
}
四、结束语
基于面向对象技术的数据库管理系统的设计使得需求分析者和数据库设计者之间能够实现很好的交流,其技术关键是面向对象的对象模型及其向数据库结构的转化。面向对象的数据模型描述了真实世界的对象,以及对象间的关系和限制,并通过面向对象的数据库系统加以实现。
参考文献:
[1]王燕.面向对象的理论与实践[M].北京:清华大学出版社,1997
面向对象数据库系统初步探讨 篇4
数据库技术是计算机技术研究中最为重要的方向之一。经过几十年的发展, 成熟的关系型数据库已被广泛地应用于社会各个领域。但是, 现实社会的复杂多变性以及各种应用要求的提高, 导致信息在数量和结构上都远超传统数据库的承受范围。1990年高级DBMS功能委员会提出的面向对象的数据模型, 就是要把面向对象的方法和数据库技术结合起来, 使数据库系统的分析、设计最大程度地与人们对客观世界的认识保持一致。面向对象数据库系统 (Object-oriented Database) 是为了满足新一代数据库的应用需要而产生的新型数据库系统。
2 面向对象数据库概述
2.1 面向对象数据模型
与其他数据模型一样, 面向对象的数据模型也包括数据结构、数据操作和完整性约束3个部分, 但是其在这3个方面的表现形式和实现方式与传统的关系模型有很大的区别。
面向对象的数据结构是通过对象和类这两个基本要素, 借助封装、继承和组合机制建立起来的复杂结构, 而数据操作是通过方法和消息来实现的。面向对象数据库系统支持面向对象数据模型 (简称OODM) , 即面向对象数据库系统是一个持久的、可共享的对象库的存储者和管理者[1]。OODM是用面向对象观点来描述现实世界实体 (对象) 的逻辑组织、对象间限制、联系等的模型。对象与对象标识、属性、行为、类、类层次、消息、持久性等核心概念构成了OODM的基础[2]。
2.2 面向对象数据库的特点与优势
面向对象程序语言操纵的是对象, 所以面向对象数据库 (简称OODB) 的一个优势是面向对象语言程序员在做程序时, 可直接以对象的形式存储数据[3]。对象数据模型有以下特点:
(1) 使用对象数据模型将客观世界按语义组织成由各个相互关联的对象单元组成的复杂系统[4]。对象可以定义为对象的属性和对象的行为描述, 对象间的关系分为直接关系和间接关系。
(2) 语义上相似的对象被组织成类, 类是对象的集合, 对象只是类的一个实例[5], 通过创建类的实例实现对象的访问和操作。
(3) 对象数据模型具有“封装”、“继承”、“多态”等基本概念[6]。
(4) 方法实现类似于关系数据库中的存储过程, 但存储过程并不和特定对象相关联, 方法实现是类的一部分。
(5) 实际应用中, 面向对象数据库可以实现一些带有复杂数据描述的应用系统, 如时态和空间事务、多媒体数据管理等。
除此之外, 上述特点导致面向对象数据库具有丰富的数据类型, 因此能够表达复杂嵌套对象, 在复杂对象上获得良好的性能。数据库与程序设计语言的类型系统和操作方式的统一, 消除了数据库中的阻抗不匹配问题, 扩展了数据库系统的应用领域, 并提高了应用系统的质量和开发人员的工作效率。
3 面向对象数据库系统的体系结构及发展
3.1 面向对象数据库系统的体系结构
面向对象数据库管理系统涵盖了关系数据库管理系统的全部功能, 只是在面向对象环境中增加了一些新内容, 其中有一些是关系数据库管理系统所没有的。面向对象数据库管理系统 (C/S即客户/服务器结构) 主要由以下5个子系统组成[7] (见图1) 。
3.2 面向对象数据库系统的发展
自20世纪80年代以来, OODBS的发展主要经历了3个阶段: (1) 实验室原型阶段, 很多原型产品于80年代末在实验室完成, 它们大都具有较新的思路和大胆的设计, 但却缺乏实际应用的考验, 代表产品有工业界的Vbase和Orien等, 学术界的Gemstone等; (2) 初期商业化产品阶段, 80年代末至90年代初, 所推出的产品均具有面向对象数据库管理系统的基本特色和实际运用的能力, 为OODBMS占领市场起了重大作用, 但仍有许多缺陷; (3) 成熟产品阶段, 20世纪90年代中期至今, OODBMS的商业化趋于成熟, 代表产品有Object Store、Ontos、O2、Jasmin等。
4 面向对象数据库系统的重要技术及应用
4.1 数据库转换技术
由于关系数据库在当今数据库应用领域处于主导地位, 而面向对象数据库如果要满足更高一级数据库要求, 实现异构数据库之间数据库模式和操作的转换是一个关键研究课题。数据库转换技术包括数据模式技术和数据操作转换技术, 转换时要保证一致性 (对象语义和动作信息在转换过程中不丢失) 。
4.2 模式演进技术
OODB的类为适应需求变化而随时间变化称为模式演进, 包括创建新类、删除旧类、修改类属性和操作等模式演进必须保持模式一致性 (模式自身内部不能有矛盾) , 这由模式一致性约束描述。模式一致性约束分为唯一性约束、存在性约束和子类型约束等, 满足所有这些一致性约束的模式称为一致模式。模式演化是面向对象数据库研究的重点与难点, 实现途径一般有两种:模式改变考虑现有应用程序使二者相互集成和适应;开发新的高级数据库编程语言。
4.3 视图类实现技术
面向对象数据库中很多操作 (如统计、连接查询和视图操作) 都能自由访问数据库数据, 这些操作有利于实现视图操作及降低复杂度并提高效率, 但易破坏对象封装性。为了不破坏对象封装性, 必须对面向对象数据库的核心模型进行扩充, 在对象中设计一组接口, 系统通过这组接口完成视图操作, 这样会增加对象复杂性和面向对象数据库系统设计难度, 因此需要对这些接口实行标准化。基于上述条件, 设计相应类数据结构和操作则可实现OODBS视图操作。
4.4 OODBS事务管理技术
OODBS事务管理子系统包括死锁管理器、锁管理器、恢复管理器和日志管理器等部分。相比传统RDBS, OODBS加锁具有以下特点: (1) 加锁单位是对象而不是类; (2) 给类对象加锁比给关系对象加锁需要更多信息; (3) 当类实例被加锁时, 其父类也被加锁。OODBS采用粗粒度加锁具有很高的并行性, 加锁的一般是对象, 若某一事务要访问同一类多数实例, 则对整个类加锁, 保证可靠性又降低系统开锁代价。另外, OODBS还具有恢复机制, 其中包括多媒体日志恢复和索引页日志恢复两种。多媒体日志恢复是指OODBS把多媒体数据和其描述部分分开, 后者通过对象标识符引用前者。若创建多媒体数据事务失败, 则置空描述部分引用并复位。索引页日志恢复的方法有两种:一是分裂索引页的插入操作, 系统把当前索引页一半表项分给新页, 除拷贝的表项外其余都记录在日志中, 发生故障时则去掉整个新页;二是合并索引页的删除操作, 系统把当前索引页表项拷贝到新页, 除了从当前页删除的表项外其余都记录在日志中, 发生故障时则重新使用当前页。
4.5 面向对象数据库系统的应用
面向对象数据库的产生主要是为了解决“阻抗失配”问题, 它强调高级程序设计语言与数据库的无缝连接。无缝连接即假设不使用数据库, 而使用某种编程语言编写一个程序, 可以基本不经任何改动地将它作用于数据库, 即可以用编程语言透明访问数据库, 就好像数据库根本不存在一样, 所以也有人把面向对象数据库理解为语言的持久化。
面向对象方法综合了在关系数据库中发展的全部工程原理, 以及系统分析、软件工程和专家系统领域的内容, 符合一般人的思维规律, 将现实世界分解成明确的对象。系统设计人员用OODBMS创建的计算机模型能更直接反映客观世界, 使得非计算机专业人员的最终用户也可以通过这些模型理解和评述数据库系统。这些都是传统数据库所缺乏的, 正因为如此, OODBS更能在新兴应用领域中发挥作用。这些领域集中在以下几个方面: (1) 工程应用领域。此领域 (如CAD/CAM) 涉及的数据种类多, 操作和数据间涉及的关系都极为复杂, 由于面向对象数据库实现了无缝连接, 能够支持非常复杂的数据模型, 从而特别适用于工程设计领域。 (2) 多媒体应用领域。由于多媒体中数据种类很多, 它们之间有复杂的联系使之成为一个整体, 在多媒体领域这些要求也能在面向对象数据库中得到解决。 (3) 集成应用领域。随着计算机越来越集成, 系统也跟着越发复杂, 这要求多种应用的集成需要一个能适应不同应用要求的结构模型。 (4) 传统应用领域。近年来商业、事务处理的需求发生了很大的变化, 而面向对象数据库可以适应这些新的变化, 因此在传统领域, 面向对象数据库也有着重要的应用市场。
5 面向对象数据库存在的问题及解决方法初步探讨
5.1 面向对象数据库存在的问题
面向对象数据库技术可望成为继关系数据库技术之后的新一代数据管理技术。尽管目前已有大量的研究开发工作, 有一些可支持的面向对象数据库系统, 但仍存在许多亟待解决的问题。
(1) 实现复杂性问题。在实现复杂性和思维复杂性问题上, 面向对象模型和关系模型之间存在很大差距———关系模型构造集合以及在集合基础上发展出来的关系, 对一个有数学基础的人而言, 其操作语义显然有思维简洁性, 对计算机而言, 关系运算可以递归并具有能行性, 计算简洁;而对面向对象模型而言, 其思想主要是控制流为主导, 也就是通过对象的行为, 指引数据的传递。比如在服务驱动的分布式系统中, 如SOA, 其数据是用XML描述的, 但由于其交互性, 以及消息扮演的控制流的角色, 导致用面向对象的信息传递方式不能发挥作用, 所以在数据库的流程和运算上, OODB并不占优势。
(2) 理论支持问题。面向对象数据库, 并没有严格的理论支持。虽然对象间的关系有聚合、组合、关联、继承等, 但这些并不是理论, 而是实践结果。不能从理论上推导出这些关系, 也就无法实现支持这些关系的对象数据库。
(3) 模型复杂度问题。由于模型较为复杂 (而且缺乏数学基础) , 使得很多系统管理功能难以实现 (如权限管理) , 也不具备SQL处理集合数据的强大能力。
(4) 性能问题。由于面向对象数据库中数据被存放在许多地方, 因此, 有效对象聚集是性能好坏的关键因素。面向对象数据库技术要想能取代传统的数据库技术, 性能改善是必不可少的。
5.2 解决方法初步探讨
就目前面向对象数据库而言, 它与关系数据库之间的比较并不是不能共存的关系。而现在面向对象数据库的兴起是在肯定关系数据库处理数据的简洁性、适合商务用途的基础上的, 它是对关系数据库的补充, 例如工程和多媒体应用。
在一些不需要很强大计算能力的场合, 例如配置一些信息等非业务数据时, 面向对象数据库将成为下一代数据库的典型代表, 并与关系数据库系统并存。它们将在不同的应用领域支持不同的应用需求。
面向对象数据库需要快速索引能力, 以便从庞大的数据集中抽取数据。在这方面做得比较好的关系型数据库使用位图索引技术, 但数据一旦更新, 这些索引就需要重新建立。因为这个原因, 很少有对象数据库有这个功能。如果能把关系数据库的索引技术通过一定的手段嵌套在对象数据库中, 对象数据库的性能将得到进一步的提高。
标准化是面向对象数据库发展的当务之急。早日形成关于对象关系的理论, 形成一种类似于SQL语言的标准, 加强对厂商的约束力和指导, 对面向对象数据库的发展具有重要意义。
6 结语
面向对象技术是近年来计算机技术界研究的热点, 而面向对象方法与先进的数据库技术相结合已成为当今数据库领域研究和发展的主要方向之一。面向对象数据库经过较长时间的发展, 已经取得一些关键的进展:业内对面向对象数据库的核心概念逐步取得了共同的认识, 其标准化工作正在进行中;随着核心技术逐步解决, 外围工具正在开发, 面向对象数据库管理系统正在走向实用阶段。
面向对象数据库技术对复杂对象既要有极强的表达和建模能力, 又要有很强的存储和管理能力, 这正是传统数据库技术面向复杂工程数据所难以胜任的关键技术。但由于面向对象模型本身固有的一些特征, 业内对面向对象数据库性能和形式化理论的担忧仍然存在。总之, 数据库系统发展的趋势是, 面向对象数据库和关系数据库将不断融合, 继承二者的优点, 获得更快的发展, 最终成为DBS发展的主流。
参考文献
[1][美]Ian Graham.面向对象方法原理与实践[M].袁兆山, 译.北京:机械工业出版社, 2003.
[2]来羽, 张华杰.面向对象数据库的特点分析[J].河南科技, 2010 (9) :58-59.
[3]K Kobler, M C Norrie.OMS Java:Lessons Learned from Building a Multi-Tier Object Management Framework[C]//Proceedings of Workshop on Java and Databases:Persistence Options, 1999.
[4]季维岩.面向对象数据库及其实现方法研究[J].科学技术与工程, 2004 (1) :119-131.
[5]乔世权, 张永强, 赵金宝.面向对象数据库研究[J].软件导航, 2008 (9) :282-287.
[6]J Supcik, M C Norrie.An Object-oriented Database Programming Environment for Oberon[C]//Proceedings of the Joint Modular Languages Conference, 1997.
面向对象数据库系统 篇5
面向对象分析与设计试题B卷
一、单项选择题(在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题干的括号内。每小题 1 分,共 20 分)3.下列不属于面向对象技术的基本特征的是()。
A.封装性
B.模块性
C.多态性
D.继承性
4.面向对象程序设计将描述事物的数据与()封装在一起,作为一个相互依存、不可分割的整体来处理。
A.信息
B.数据隐藏
C.对数据的操作
D.数据抽象
5.关于面向对象方法的优点,下列不正确的叙述是()。
A.与人类习惯的思维方法比较一致
B.可重用性好
C.以数据操作为中心
D.可维护性好 8.下列不属于类的成员函数的是()。
A.构造函数
B.析构函数
C.友元函数
D.拷贝构造函数
9.继承机制的作用是()。
A.信息隐藏
B.数据封装
C.派生新类
D.数据抽象
14.()是从用户使用系统的角度描述系统功能的图形表达方法。
A.类图
B.对象图
C.序列图
D.用例图
15.()是表达系统类及其相互联系的图示,它是面向对象设计的核心,建立状态图、协作图和其他图的基础。
A.对象图
B.组件图
C.类图
D.配置图
16.()描述了一组交互对象间的动态协作关系,它表示完成某项行为的对象和这些对象之间传递消息的时间顺序。
A.对象图
B.协作图
C.状态图
D.序列图
17.()就是用于表示构成分布式系统的节点集和节点之间的联系的图示,它可以表示系统中软件和硬件的物理架构。
A.组件图
B.协作图
C.状态图
D.配置图
18.在用UML进行数据库的分析与设计过程中,()就是进行数据库的需求分析,使用用例图、类图、顺序图、活动图等建立业务模型。
A.逻辑数据模型设计
B 业务Use Case模型设计
C.物理数据模型设计
D.物理实现设计
19.使用UML进行关系数据库的()时,需要设计出表达持久数据的实体类及其联系,并把它们映射成为关系数据库表(Table)、视图(View)等。
请大家帮忙把这句话设为QQ签名,“淘热门 , 精选淘宝热门商品” 请大家帮忙把这句话设为QQ签名,“淘热门 , 精选淘宝热门商品”
A.业务Use Case模型设计
B.逻辑数据模型设计 C.物理数据模型设计
C.物理实现设计 20.UML的动态建模表示包含()种图。
A.9
B.5
C.4
D.2
二、填空题(每空 1 分,共 20 分)1.面向对象开发方法一改过去传统的以_______________为基础的______________的结构化分析与设计方法,它模拟人们理解和处理客观世界的方式来分析问题,把系统视为一系列_______的集合,其______________又将分析的结果映射到某种面向对象实现工具的结构上,使映射过程有着比较直接的对应关系,使分析者、设计者和编程者都可使用相同的______,从而使面向对象的软件开发能比较自然地模拟客观世界的活动,使问题描述空间与____________在结构上尽可能一致。因此,采用面向对象方法可以更有效地开发大型软件系统。面向对象方法的________、________、_________等机制不仅支持软件复用,而且使软件维护工作可靠有效,可实现软件系统的柔性制造,更好地克服____________。因此,它已成为成熟的广为采用的软件开发方法。
2.对象是客观实体的抽象表示,是由__________________________和________________________两部分组成。而______是对具有相同属性和行为的一组对象的抽象描述。因此,它可作为一种用户自定义类型和创建对象的样板,而按照这种样板所创建的一个个具体对象就是类的___________。通过________关系又可形成一种类层次结构。
3.UML中用于描述系统的静态建模的视图称为静态视图,包括________、_________、_________、__________和__________。
四.简答题(每空4分,共 20 分)1.简述面向对象软件开发方法的优点。2.简述面向对象技术的三大机制。3.简述OOA模型的层次结构。
4.简述OOD模型的总体结构,并画图表示。
5.应用UML进行系统分析和设计所需建立视图有那几种?
请大家帮忙把这句话设为QQ签名,“淘热门 , 精选淘宝热门商品” 请大家帮忙把这句话设为QQ签名,“淘热门 , 精选淘宝热门商品”
五.试用UML对教学管理系统及相关的数据库系统进行分析和设计。学生选课系统一般包括(1)选课管理功能;(2)成绩管理功能。试完成下列工作:(1)建立系统静态结构模型—画出系统用例图和类图;(10分)(2)建立系统动态结构模型—画出系统序列图和协作图;(10分)(3)建立关系数据库逻辑模型。(10分)
面向对象分析与设计试题参考答案
一、单项选择题(每小题 1 分,共 20 分)
1.D
2.C
3.B
4.C
5.C 6.D
7.D
8.C
9.C
10.D 11.B 12.B 13.B
14.D
15.C 16.D 17.D 18.B
19.B
20.C
二、填空题(每空 1 分,共 20 分)
1.功能分析, 面向过程, 对象,面向对象的设计, 概念,解空间,封装, 继承, 多态, 软件危机 2.描述对象属性的数据,四.简答题
1.简述面向对象技术发展的动因。
答:为了超越程序复杂性障碍,克服软件危机,人们提出了面向对象软件开发方法。面向对象开发方法一改过去传统的以功能分析为基础的面向过程的结构化分析与设计方法,面向对象开发方法模拟人们理解和处理客观世界的方式来分析问题,把系统视为一系列对象的集合,其面向对象的设计又将分析的结果映射到某种面向对象实现工具的结构上,使映射过程有着比较直接的对应关系,使分析者、设计者和编程者都可使用相同的概念,从而使面向对象的软件开发能比较自然地模拟客观世界的活动,使问题描述空间与解空间在结构上尽可能一致。因此,采用面向对象方法可以更有效地开发大型软件系统。面向对象方法的封装、继承、多态等机制不仅支持软件复用,而且使软件维护工作可靠有效,可实现软件系统的柔性制造,更好地克服软件危机。因此,它已成为成熟的广为采用的软件开发方法。请大家帮忙把这句话设为QQ签名,“淘热门 , 精选淘宝热门商品”
2.简述面向对象技术的三大机制。答:(1)封装性(encapsulation)
请大家帮忙把这句话设为QQ签名,“淘热门 , 精选淘宝热门商品” , 类,实例,继承
3.用例图、类图、对象图、包图、构件图、配置图 请大家帮忙把这句话设为QQ签名,“淘热门 , 精选淘宝热门商品”
所谓封装就是把对象的属性和行为结合成一个独立的单位,使外界不能直接访问或修改这些数据和代码,外界只能通过对象提供的接口函数来改变或获取对象的属性数据,这就实现了消息隐蔽。(2)继承性
如果在一个已定义的类上,增加一些特殊属性或操作,可以形成一个新的类,这个类不仅继承了前一个类的全部特征,而且具有新的特性,因此可看作前一个类的特例,是对前一个类的继承。前一个类称为父类,新产生的类叫做子类。通过继承关系可形成一种类层次结构,叫做继承结构。(3)多态性
在类层次结构的不同类中,可用相同的函数名实现功能不同的函数。3.简述OOA模型的层次结构。
答:OOA模型采用五层次结构,它们分别是:(1)对象-类层
划分待开发系统及其环境信息的基本构造单位,标出反映问题域的对象和类,并用符号进行规范的描述,用信息提供者熟悉的术语为对象和类命名。(2)属性层
定义对象和某些结构中的数据单元,继承结构中所有类的公共属性可放于通用类中。标识对象类必需的属性并放在合适的继承层次上,属性的特殊限制和实例连接关系也应标识出来。(3)服务层
表示对象的服务或行为,即是要定义类上的操作。(4)结构层
标识现实世界中对象之间的关系。当一个对象是另一个对象的一部分时,用“整体-部分”关系表示;当一个类属于另一个类时,用类之间继承关系表示。(5)主题层
可将相关类或对象划分为一个主题。4.简述OOD模型的总体结构,并画图表示。OOD体系结构的各个部分内容:(1)问题论域部分,在OOA模型的基础上,细化分析结果,设计一组构成底层应用模型的类和对象。
(2)人机交互部分:设计用户界面模型,该用户界面模型中的类和对象提供实现人机交互操作的接口函数。用户界面设计包括 菜单设计、窗口设计、输入/输出界面设计等等。
请大家帮忙把这句话设为QQ签名,“淘热门 , 精选淘宝热门商品” 请大家帮忙把这句话设为QQ签名,“淘热门 , 精选淘宝热门商品”
(3)任务管理部分:建立一些类,用以负责处理操作系统级的并发问题、中断、调度以及其它与特定平台有关的问题。
(4)数据管理部分:提供数据管理系统中存储和检索对象的基本结构,包括对永久性数据的访问和管理。数据管理设计包括:
— 数据存放设计:数据存放设计选择数据存放的方式(文件存放、关系数据库表格存放或面向对象的数据库存放)。
— 设计相应的操作。为每个需要存储的对象和类增加用于存储管理的属性和操作,在类和对象的定义中加以描述。
class & object layer(类及对象层)attribute layer(类及对象层)service layer(服务层)问题论域部分人机交互部分任务管理部分数据管理部分类边界实例边界实例连接属性消息服务struct layer(结构层)subject layer(主题层)主题图1.5 OOD模型的总体结构5.(1)系统用例图如下
请大家帮忙把这句话设为QQ签名,“淘热门 , 精选淘宝热门商品” 请大家帮忙把这句话设为QQ签名,“淘热门 , 精选淘宝热门商品”
查询课程信息老师老师查询学生成绩选课注册学生学生查询课程成绩管理老师信息学生成绩管理管理学生信息管理员管理课程信息管理开设课程管理员成绩统计(b)成绩管理的用例图(a)选课管理的用例图
对象类图如下:
教师编号姓名地址电话1..*0..*课程课程名描述学时加入课程()1..*0..*学生编号姓名地址电话开设课程课程名授课日期授课时间地点指定老师()学生满否()选修课程学生名课程名学期增加记录()选课统计()(a)选课对象类图开设课程课程名授课日期授课时间地点指定老师()学生满否()学生成绩登记学生名学期课程名成绩加入成绩()打印()(b)成绩管理对象类图成绩统计学期课程名成绩按课程统计()按学生统计()打印()
请大家帮忙把这句话设为QQ签名,“淘热门 , 精选淘宝热门商品” 请大家帮忙把这句话设为QQ签名,“淘热门 , 精选淘宝热门商品”
(2)把需要持久存储的数据实体类及其联系,映射成为如下关系数据库表:
学生(学生号、姓名、出生日期、性别、籍贯、地址、电话、入学时间、专业、班级备注)教师(教师号、姓名、出生日期、性别、籍贯、地址、电话、职称、专长、备注)课程(课程号、课程名、描述、学分、学时、性质、备注)
开设课程(课程号、学期、授课日期、授课时间、地点、选修人数、备注)
面向对象数据库系统 篇6
关键词:VB.NET;面向对象编程;排课系统设计
中图分类号:TP311文献标识码:A文章编号:1007-9599 (2013) 06-0000-02
1引言
排课问题是一所学校的教学及其他活动的基准。我国的高等教育事业的不断发展,通常情况下,各大高校将分配到本校的计算机排课系统提交到院校的教务部,由负责的数据工作人员录入电脑。这种最基本的排课系统,只能在一定程度上提高效率。因此,计算机系统研究人员也在不断探索更先进的计算机技术,从而使教务人员从复杂的任务中解放出来,提高老师的教学备课时间有效地利用教学资源,而且还提高教学管理的质量和教育管理的工作效率。如何减少教务工作者的工作强度,更有效地利用人力和物力资源,如何管理和利用好数据信息,已经成为当前人们关注的主要问题。
VB就是Visual Basic 的简称,它是一种可视化编程语言,功能包括应用程序、编写代码以及用户界面设计。Visual Basic6.0中改变程序的机制,是对传统意义上的主程序的改造,它是通过子程序驱动。作为面向对象编程语言,代码和数据相结合,大大提高了程序设计的效率,当前程序员只需要编写传统上程序员函数代码中的一部分。用户在使用时,也大大简化,只需知道程序的功能,至于它是如何工作的就不必知道了。
2编程语言Visual Basic.NET概述
开发数据库系统的首选语言是Visual Basic.NET,通常被简称为VB.NET,是基于NET框架的面向对象的编程语言。VB.NET是可以用来创建多种程序的编程机制,包括Windows应用程序、网络服务和网络程序、智能设备等,并且支持面向对象。
Visual Basic.NET和现在所知的开发工具完全不同,Visual Basic.NET具有强大的网络功能。其一是VB.NET中有它将是DCOM的取代者;其二是VB.NET中还有Web Forms,它代表了一个一个的Web页面。它的特点包括,作用广泛,容易掌握,使用也十分方面,拥有支持可视化继承的窗口板块设计器,程序采用标准化界面,真正支持面向对象和继承性。
3排课系统需求分析
3.1用户需求分析
班级信息有所在教室、所在教室上课班级的个数、班级学委的联系方式、班级专业编号;课程信息有班级专业编号、每学期总课时数目、每周节数以及是否分单双周上课、任课教师基本信息;教师信息包括手机号或其他联系方式、教师所上课程名称等;时间信息包括所上课程是第几周、第几节以及是否需要临时补课等。每门课程都有自己的期末考核办法,可以是书面作业,也可以是社会实践;每门课程可以规定禁止安排上课时间,也可以指定教师。
每个教室属于一个教学区域、教室名称、教室类型。为了考虑节约教学资源,根据教学班人数来安排合适容量的教室。同时,在同一时间每个教室只能安排某一教学班的授课。
3.2排课系统功能分析
排课系统首先需要实现系统初始化,包括设定教学区域、校区、学年学期、学期起始周次等。此外还有信息管理功能的维护,包括院系专业基本信息、基本信息、教师基本信息、教学班基本信息、班级基本信息、课程基本信息、学生基本信息及自动导入和手动录入教室基本信息。
其次是对于某些特殊情况,比如放长假之前需要补课,又比如任课老师要出差无法按时上课,这时就需要进行手动预排课。此种情况下,班级负责人就需要去上报情况,跟教务管理人员回报需要变动的教学计划,提前查看近期空教室的情况,推迟课程,重新排课。此时,需要考虑对下次授课时间的设定以及对教室容纳量有没有特殊的要求等进行排课,然后教务人员及时录入,并挂在网站上。
再次是网上查询课表、课表打印功能。排课系统提供互联网查询功能,进行计算机排课结束后,要确保学生和任课老师能够在网上查询本学年的课程安排情况,学生能够在网上打印输出自己班级的课表,教务人员可以进行简单的调课和数据修改,还可以查询各种类型课表。
此外还包括用户管理系统和数据备份与恢复。对不同级别的用户根据不同的情况设置不同的访问权限,用户必须先通过身份认证后才能进入系统,进而进行权限范围内的其他操作。计算机系统排课还可以实现排课系统设计中数据库内的信息安全,包括将数据库中的重要数据进行备份、从备份文件中恢复错误删除掉的数据等等。
4排课系统模块设计
排课系统是各大高校每学年开学前排课的工具,排课系统的作用在于它可以方便快捷地生成课表,同时可以储存本学年的课表文档。根据排课系统的需求,结合各个院系班级的情况以及任课老师的分配,由于录入数据比较庞大,因此需要在系统中装载数据模块,完成了这个预备工作后在开始执行程序语言运行。排课系统需要涵盖班级、教师、用户管理多个模块,而且需要在每一个大的功能模块下分派数目不等的子模块,以此来减少教务人员工作的难度,同时也可以方便用户随时在互联网上查询或下载课表。
4.1基本信息设置模块
(1)班级设置模块。“班级设置”模块负责维护班级信息。班级信息设置模块包括班级所在院系,班级每学年课程节数,班级学生人数,班级班主任基本情况等。
(2)课程设置模块。“课程设置”模块负责维护学校的课程信息,课程信息设置项包括专业课程名称,课程每学年安排多少个课时,每周有多少节,是否分单双周上课,任课教师情况等。
(3)教师设置模块。计算机系统对教师设置模块的设计主要解决教师信息维护的问题,包括任课老师的姓名、电话、邮箱等基本信息,以及任课时间与地点的统计。此版块的功能同样可以根据需要添加或是删除信息等。
4.2用户管理设置模块
用户管理设置板块是编写用户的基本信息,包括用户身份认证、名称、类别、密码等。用户管理模块的作用是保证用户信息添加、删除、修改的维护工作,此外用户管理要对对不同用户权限做出审查,同时,判断该用户是对数据库的访问权限达到限制额,这样做的目的是保证用户在使用过程中的信息安全。
用户管理是对用户信息进行添加、修改、删除和查看,并对用户信息的这些方面进行维护。基本操作流程:首先,点击添加新用户,填写用户信息点击提交,添加新用户成功。其次,删除选择要删除的用户,点击确定,删除用户。再次,修改用户信息,点击修改用户信息,选择要修改的用户,点击确定,提交修改。
5结论
高校各个学年开课之前必然需要排好课表,排课任务重要并且复杂,是高校教务管理工作的难题。排课的目的在于保证学生上课有合适的地点,老师有互不冲突的教学时间,从而使每学期的教学工作能够有秩序的展开。在计算机系统广泛应用之前,处理数据以及管理排课日程由教务人员手工操作,任务繁琐,容易出错,出错之后难以及时更改,造成各种麻烦,严重影响教学效率。面向对象编程语言VB.NET,不仅十分轻松的完成编写任务,在代码输入上也大大简化了工作程序,并且这种语言完全面向对象,代码维护方便容易,解决原先不能及时更改错误的难题。本文的主要工作是基于面向对象编程语言VB.NET,以设计高校课程安排管理系统的需求为目的,设计并实现了包括教室安排、班级管理、课程设置、教师设置、用户管理四个功能模块的高校排课管理系统,该系统的实现有利于提高工作效率,实现排课系统管理的信息化和标准。
参考文献:
[1]李英杰.VB.NET2005程序设计实例教程[M].天津:天津大学出版社,2008,11.
[2]郭瑞军,王松.Visual Basic.NET数据库开发实例精粹[M].北京:电子工业出版社,2006(5):34-59.
[3]孙雪莲,冯毅夫.基于B/S模式下的高校食堂管理系统设计[M].吉林师范大学学报(自然科学版),2005,11.
[4]李春葆.VB.NET 2005程序设计教程[M].北京:清华大学出版社,2009,2.
[5]龚辉锋,赵玉意,秦立公.基于VB.6与Excel的物流软件的开发构想中国管理信息化[J].2008,12.
面向对象数据库系统 篇7
电力对象类在构建时, 其对应属性也较为繁杂, 系统存在差异, 则所要求的数据也有所差异。比如, 对于SCADA系统来说, 需完成终端FTU或者RTU参数的采集, 这些参数包含数据转换系统及通信协议等, 但是在设备信息管理系统当中, 还需要知道FTU或者RTU的安装位置、性能、周期、时间等参数。所以, 需以应用为根本, 来完成设备对象类属性的定义。具体参数如下:
1) 对于设备管理属性来说, 其包含设备的规格、型号、时间、价格、日期、生产商家、对应编号等各类信息, 这些信息需与变电站、发电厂设备登记卡一致;
2) 对于设备线路连接属性来说, 其表示投运设备沿着线路方向上下或者左右之间的连接关系, 例如编号为x断路器进行端和y刀闸进行连接, 出线端和z变压器进行连接, 断路器在进行建模时, 需定义x断路器连接性为左联设备y, 右联设备z, 其为最基本的电网连接单元;
3) 对于一次设备电气特性来说, 其包含工作频率、额定功率、电阻、电压、电流等参数, 这些参数通常为电力设备专属特性;
4) 完成遥控设备通用与数据进行交换参数的收集;
5) 对于一次设备实时数据量的属性来说, 其包含开关刀闸状态量、变压器油温、用户点度量、母线电压等参数;
6) 对于特殊对象属性来说, 其包含变电站、发电厂的建成时间、装机容量等业务参数。
总的来说, 电力系统静态数据建模是为了完成系统设备对象面向各类应用属性的确定, 这些属性包含电气特征、地理空间与产品特征等属性。其不仅能够以电网拓扑的结构展现, 还能够完成系统业务关系结构的展现。
2 电网实时数据采集和存储模型的构建
电力系统在数据采集与传输的基础上, 方可完成实时监控。然而, 电力系统数据采集工作十分繁杂, 造成这种局面的原因在于, 电力系统呈现分布式结构, 各个测量点相隔较远, 所选的通信方式也有差异, 对于不同参数在测量时所用到的设备也有所不同。采集设备的厂商不同, 其对应的数据也具有较大差异, 因此, 主站系统, 需要把各类格式不一的通信协议、数据集中在一起, 进而在对电网遥测、电度、遥信量采集之后, 完成遥控、遥调命令的发送。并以数据传送与采集为对象, 完成遥测、电度、遥信、水位等命令类的构建。这不仅是为了数据格式、通信协议等发送属性的确立, 更便于主站前置机对这些数据的运用, 同时建立RTU/FTU终端完成通信通道的构建, 把上传数据转变为工程量。
3 电力系统图形化对象模型的构建
对于电力系统来说, 其涉及的图形包含一次接线图、电流数据图、地理信息图等。这些图形在系统图形化对象模型中, 能够将电网结构做到直观展现, 进而实现对电力系统运行动态地把握, 使得处理结果得到简化, 也使应用系统得到较为便捷的用户交互界面, 使得用户在操作时较为方便。
对于这些图形来说, 其具备标准化的电力设备实物图、网络拓扑关系图以及地理位置图等各种静态图形, 还包含运用各类形状与颜色所标记的各种运行动态图。这些图形需要与实时数据相连接, 同时在数据的驱动下, 完成变化过程。对于图形库来说, 在应用时, 还具备越线报警、显示测量变化趋势等相关功能。建立一套基本的矢量图元分别表征某一类对象。同时为了全面表示各类对象的图形特征, 还需要完成设备图像库与设备动作状态视频库的构建, 运用模型关联的方式, 把图像、图元、视频与电力对象达到关联效果, 进而使系统需要得到满足。
4 结语
面向对象数据库系统 篇8
自从数据库系统诞生以来,经历了从20世纪60年代的层次/网状数据库发展到70年代关系数据库,再到80年代后期产生的面向对象数据库,目前已成为数据库的主流技术,并已取得辉煌的成就。传统的数据库开发技术具有一定的局限性,表现在阻抗失配和语义断层、缺乏支持抽象数据类型、数据结构不能与行为相关联等方面。传统的数据库不能满足复杂的实际应用需要,不利于表达复杂的数据结构,无法处理海量的数据信息。
面向对象数据库技术系统称为第三代数据库系统,受到了人们的高度重视,它成为信息社会发展的必然产物,是当前数据库研究的热点。
1 面向对象数据库概述
面向对象数据库是面向对象技术与数据库技术相结合的产物,以面向对象为基础,以面向对象数据模型(OODM)为核心,增加数据库内部数据处理功能,用以支持持久对象和实现数据共享。面向对象数据库中的表、字段和内容都被当成对象来处理。面向对象的思想就是把现实世界抽象为一系列对象及其联系的集合,对象是具有复杂结构的逻辑整体。将面向对象数据库应用到更广阔的领域中,例如处理空间数据、工程设计数据、超文本和多媒体数据、油田开发数据等,有利于表达复杂对象。
面向对象数据库可以分为三种类型,包括纯粹面向对象数据库、对象关系型数据库、面向对象的关系数据库。本文主要研究对象关系型数据库,它是面向对象数据库的一种特例。
成熟的关系型数据库技术的进一步发展实现了对传统应用与非传统应用的支持,对关系数据库进行面向对象扩展,就是本文所讲的对象—关系型数据库。它是在传统的关系数据模型基础上,提供元祖、数组、集合一类丰富的数据类型以及处理新的数据类型操作的能力,并且有继承性和对象标识等面向对象的特点。与以往的数据库技术相比,对象—关系型书库提供了许多面向对象及多媒体应用的支持,包括用户定义类型,具有对象关系功能的db2允许用户定义新数据类型;用户定义函数:用户用C++、C#等编译语言定义新函数;大对象(LOB):允许用户在一个数据库中存储特大对象;关系扩展器:一个预先包装的用户定义类型、用户定义函数、触发器、约束及存储过程的集合,利用数据库提供的对象关系型特征,把基于内容的搜索能力扩展到如文本、图像、视频之类的数据类型。
2 对象关系型数据库技术在压裂措施信息管理系统中的应用
对象关系型数据库的实现既非纯粹的面向对象的数据库也非纯粹的关系数据库,它代表两者的结合,这种系统既支持已经被广泛使用的SQL,具有良好的通用性,又具有面向对象特性,支持复杂对象和复杂对象的复杂行为,是对象技术和传统关系数据库技术的最佳融合。Oracle 8是典型的对象—关系数据库,它是以市场上领先的Oracle7.3通用关系数据库服务器为基础,是业界一个可靠的、集成的对象型关系数据库产品;它引入了对象标识符的概念;它引入的引用机制称为REF,REF是指向同一个数据库中其他对象的指针,在REF中不必使用关键字;它供了较全面的对象技术解决方案,以满足用户不同的、新的需求;它能够以统一的方式检索、管理和操纵存储在同一数据库中的任何结构化关系数据、业务处理对象和非结构化的多媒体数据;它提供了一致性事务控制、安全备份和恢复、优秀的查询性能、锁定和同步、以及可缩放性等的优点;它能够为用户提供稳定的、具有高度扩展性的应用平台。
对象关系型数据模型扩展了关系数据模型的方式是通过提供一个包括复杂数据类型和面向对象的更丰富的类型系统。Oracle8i支持各种类型的对象,主要包括:可变数组、对象表、对象视图、嵌套表、抽象数据类型。本文研究的压裂措施信息系统整体设计基于面向对象思想,根据用户需求,定制各个功能模块类,严格对类进行封装,并制定了规范的外部和内部接口。所有的业务规则都定义在业务逻辑层,业务逻辑层主要功能是实现具体的业务操作,如涉及查询、更新、删除关键数据,尽量避免非标准接口访问,采用Remoting组件进行了封装,使用Remoting组件技术便于系统以后和其他系统接口访问,在配以数据库表结构,使得最终系统数据实现大容量、高效率。
压裂措施信息管理系统面向对象数据库统一建模,将压裂措施信息管理系统数据分为:(1)公共平台信息数据;(2)上游生产信息数据;(3)压裂设计主体信息数据;(4)基础信息管理数据。并按照数据的要求和用途,将数据库划分为公共平台数据库、压裂基础资料数据库,为了更好地描述该系统的对象模型,该系统整体对象模型如图1所示。
本文着重介绍单位人员该问题与对象的联系:(1)组织机构包含若干人员;(2)为组织机构分配唯一账号;(3)为人员分配唯一账号;(4)账号拥有的操作权限;(5)账号拥有的操作功能;(6)用户功能对应系统功能,比如地质设计主体信息、日月动态查询等;(7)角色功能对应系统功能。
在该单位人员对象关系模式中,定义了账号对象类型,该对象的定义为:
其中,ZH为账号代码,表示为组织机构或者人员分配的账号,在登录时需要输入的信息;JGDM为组织机构代码,是组织结构对象的主键;RYID为人员ID,是人员对象的主键;MM为密码,在登录系统时需要输入的信息;SFQY为是否启用的数据类型,取不同的值表示不同的状态类型,例如,取值为 “是”代表账号启用,账号有效可以登录系统;取值为“否”代表账号注销,账号无效不能登录系统;SFGRZH为是否个人账号,取不同的值表示不同的类型,例如,取值为“是”代表人员账号,取值为“否”代表单位(组织机构)账号。
通过上述账号对象数据类型,就可以实现账号对象关系的操作。例如,账号信息增加、修改、删除,易于通过权限控制来保障操作的安全性;易实现账号对象状态的变化,如某个已注销的账号要恢复使用;区分账号是个人账号还是单位账号,方便系统管理员管理。
如前所述,压裂措施信息管理系统需要处理的数据类型繁多,应用功能多,数据量也就越大。面向对象数据库能提供清晰的数据模型,高效率实现应用系统的功能,能以一定的数据结构表征压裂系统对象的属性,建立对象间的关系,形成面向业务流程的数据处理模式。
3 结束语
目前,面向对象数据库使数据库的技术内容层出不穷,形成了新一代数据库系统。在信息化高速发展的今天,建设以数据库为核心的信息系统和应用系统,对于提高企业的效益、改善部门的管理等方面有重要的意义,这就对数据库技术提出更高的要求。随着技术和理论的不断进步和相互结合,面向对象数据库技术必将在各个领域发挥重大作用。
本文在分析压裂措施信息管理系统的基本工作模式和主要功能子系统业务需求的基础上,论证了在需求分析、开发和实施该类系统时建立统一的面向对象数据库模型的必要性、安全性和可行性,较全面地介绍了基于面向对象的思想来统一压裂措施信息管理系统建模的主要内容。目前该系统已得到应用。
参考文献
[1]11Shamim Abmed.Object-Oriented Database Management System forEngineering[Z].JOOP,June 1992.
[2]王意洁.面向对象的数据库技术[M].电子工业出版社,2003.
[3]李也白,范春晓.面向对象数据库[J].高等教育出版社,1998.
[4]面向对象软件开发教程[M].Scott W Ambler,车皓阳,刘锐,译.北京:机械工业出版社,2003.
[5]杨行健.面向对象技术与面向对象数据库[M].西安:西北工业大学出版社,1996.
面向对象数据库研究 篇9
1.1 传统数据库技术的缺陷
随着应用领域的不断拓展, 传统的关系数据库 (RDB, Relational Database) 系统所能处理事务的范围显得愈发狭窄, 仅能够处理正文、数字型的数据, 同时还表现出其他诸多不足:应用不灵活, 数据类型有限, 可扩充性差, 难以保证复杂应用建模和数据的一致性, 缺乏对层次数据结构的支持, 缺乏导航式查询和关联查询访问等。
1.2 面向对象数据库的优势
与传统的数据库相比, 面向对象数据库系统 (OODB, Object-Oriented Database) 有如下优势: (1) 支持复杂的数据结构; (2) 实体都表示为对象; (3) 将对象的数据和操作封装在对象的类型中; (4) 特殊的继承功能, 是具有面向对象特色的建模手段, 它允许一种类型从另一种类型中获取数据和方法; (5) 多态、重载、滞后联编 (滞后联编是指在系统运行时, 而不是在编译时把操作的名字转换成函数地址) ; (6) 对持久性和易失性存储提供了统一的类型, 保证了计算完整性; (7) 系统为每一个对象生成内部唯一的标识符; (8) 支持复杂的数据类型; (9) 具有许多新的事务处理模型, 如开放嵌套事务模型、工程设计数据库模型、多重提交点模型等。
2 面向对象数据库简介
2.1 面向对象的概念及特性
面向对象的方法就是以接近人类思维方式的思想, 将客观世界的一切实体模型化为对象。在面向对象的方法中, 对象、类、方法和消息是基本的概念。
面向对象方法具有抽象性、封装性、多态性等特性。面向对象方法可以将对象抽象成对象类, 实现抽象的数据类型, 允许用户定义数据类型。封装是指将方法与数据放于某一对象中, 以使对数据的操作只可通过该对象本身的方法来进行。对象是一个封装好的独立模块。多态是指同一消息被不同对象接收时, 可解释为不同的含义。把实现的细节都留给接收消息的对象, 相同的操作可作用于多种类型的对象, 并能获得不同的结果。
2.2 面向对象数据库系统的特征
面向对象数据库系统应该具备的主要性质和特征分为三组:必备的、可选的和开放的 (设计人员可以选择的特性) 。其中必备的特征有:对象标识、封装性、类型和类、类/类型的层次结构、重载/过载/滞后联编、计算完备性、可扩充性、持久性、辅存管理、并发性、恢复。
可选的特性有:多重继承性、类型检查和类型推理、分布、设计事务处理和版本等五个方面。
2.3 面向对象数据模型的四种核心技术
分类:把一组具有相同属性结构和操作方法的对象归纳或映射为一个公共类的过程。对象和类的关系是“实例” (instance-of) 的关系。
概括:把几个类中某些具有部分公共特征的属性和操作方法抽象出来, 形成一个更高层次、更具一般性的超类的过程。子类和超类用来表示概括的特征, 表明它们之间的关系是“即是” (is-a) 关系, 子类是超类的一个特例。
聚集:聚集是将几个不同的类对象组合成一个更高级的复合对象的过程。术语“复合对象”用来描述更高层次的对象, “部分”或“成分”是复合对象的组成部分, “成分”与“复合对象”的关系是“部分” (parts-of) 的关系, 反之“复合对象”与“成分”的关系是“组成”的关系。
联合:将同一类对象中的几个具有部分相同属性值的对象组合起来, 形成一个更高水平集合对象的过程。术语“集合对象”描述由联合而构成的更高水平的对象, 有联合关系的对象称为成员, “成员”与“集合对象”的关系是“成员” (member-of) 的关系。
3 面向对象数据库使用及实例
下面利用实例来说明面向对象数据库的使用。本文采用利用FastObjects提供的API函数展示了在永久性数据库对象上的基本操作及事务操作。Versant公司提供的FastObjects是一个可视化的数据库管理系统。
3.1 采用Publication类演示数据库操作
本部分实例展示了对多态性数据类型的操作。此类型层次包括一个基类:Publication, 它有两个继承类:Book和CD。用Rational Rose建模工具得到的Publication类模型图如图1所示。
(1) 创建数据库步骤如下:
PtBase::POET () ->GetBase (server, existing Base, p Base) ;
PtBase::POET () ->GetDictionary (server, dictionary, pClassDictionary) ;
pClassDictionary->Create Database (newBase) ;
PtBase::POET () ->Unget Dictionary (pClassDictionary) ;
(2) 打开数据库操作:调用InitPOET进行FastObjects数据库的初始化工作 (使用数据库操作之前必须进行初始化) 。使用PtRoot::GetBase, 指定数据库和服务器名字来打开数据库。在本例中, 服务器使用“LOCAL”代表本机。同时注册一个事务, 以便对对象读写操作时使用。
InitPOET (PtTransaction ByThread, "library") ;
int err=PtBase::POET () ->Get Base (server, base, p Base) ;
if (err>=0)
{pTransaction=new Pt Transaction () ;
if (pTransaction)
{
pTransaction->SetUseShadow Indexes (PtFALSE) ;
PtBase::POET () ->Set Current Transaction (pTransaction) ;
err=p Transaction->Register Resource (p Base) ;}
}
(3) 关闭数据库:当你完成对数据库地所有操作后, 关闭数据库。
pTransaction->Deregister Resource (pBase) ;
delete pTransaction;
Pt Base::POET () ->Unget Base (p Base) ;
Deinit POET () ;
调用Deregister Resource注销事务, 调用PtRoot::UngetBase关闭数据库。恢复初始化之前的FastObjects环境, DeinitPOET释放数据库操作申请的系统资源。
(4) 存储:存储一个新对象到数据库的过程。
pTransaction->Begin () ;
Book*pBook=newBook (author, title) ;
pBook->Assign (pBase) ;
pBook->Store () ;
pTransaction->Commit ()
pBook->Forget () ;
调用PtTransaction::Begin开始事务, 并指定数据库, 调用Commit提交事务, 把对象存到数据库, 当对象不再需要时, 通过Forget方法将其移除。
(5) 删除对象时, 首先调用Pt Transaction::Begin开始一个事务, 使用Delete方法从数据库中移除对象, Commit提交事务。
(6) 排序:对所有集合进行排序。此部分例子展示了如何使用索引技术对指定所有集合进行排序的方法。如果为一个类的特殊的属性定义了一个索引, 那么All Sets可以用此成员排序。
UngetAllPublications () ;
GetAllPublications (nItem) ;
Publication*pPublication=0;
Publication SortingOrderSort Order=GetSortOrder () ;
pPublications=newPublication AllSet (pBase) ;
idxName=“Publication TitleIndex”;
err=pPublications->SortByIndex (idx Name) ;
(7) 查询:使用query查找满足特定条件的对象。
query (pBase, queryString) ;//创建查询对象
query<
oql_execute (query, (PtOnDemand Set*&) pPublications) ;//执行查询, 创建并把给结果集赋值
3.2 Person类和Address实例分析
创建数据库, 以此来说明面向对象数据库的思想。该数据库的Person类对象的结构示意如图2所示。
建立Person类, 包括属性:name, age, address, comment。其中address是另一个类CAddress, 通过类之间的指针联系从Person类对象中可以操作address, 这样实现了真正的面相对象数据管理。通过继承Person类, 建立了Family Person类, 它继承了Person类的属性和方法, 然后添加了自己的属性和方法, 真正实现了类重用机制。建立Person类对象的主要代码所下:
persistent class CPerson//类定义
{
public://构造函数和析构函数
CPerson () ;
CPerson (const PtString&name, int age, const PtString&comment) ;
virtual void print () ;
public://服务函数
public://存取函数
const PtString&Name (void) const;
void Set Name (const PtString&name) ;
//age, address, comment同上述SetNameprivate://属性
PtString m_name;
int m_age;
CAddress*m_pAddress;
PtString m_comment;
};//函数实现
CPerson::CPerson () :m_age (0) , m_name ("") , m_pAddress ( (CAddress*) 0) , m_com-ment ("")
{}
CPerson::CPerson (const PtString&name, int age, const PtString&comment)
:m_age (age) , m_name (name) , m_p Address ( (CAddress*) 0) , m_comment (comment)
{}
CAddress*CPerson::Address (void) const
{
return m_pAddress;
}
void CPerson::SetAddress (const CAddress*address)
{
if (m_pAddress!= (CAddress*) 0) m_pAddress->Forget
() ;
m_pAddress= (CAddress*) address;
if (m_pAddress!= (CAddress*) 0) m_pAddress->Remember () ;
member () ;
}
const CAddress*CPerson::GetAddress () const
{
return m_pAddress;
}
4 面向对象数据库技术的发展趋势
面向对象数据库技术是包括面向对象特性的、与关系数据库系统兼容的、成熟的数据库管理系统。尽管目前已有大量的针对OODBS的研究开发工作, 但面向对象数据库技术的成熟仍有赖于许多关键问题的解决: (1) 标准化和形式化; (2) 改善和加强OODBS的性能; (3) 加强建模能力; (4) 加强面向对象数据库的应用开发工具的研制和推广; (5) 视图、演绎能力、语义建模和长事务功能。
参考文献
[1]丁宝康, 董健全.数据库实用教程[M].北京:清华大学出版社, 2001.
[2]叶小平, 汤庸, 汤娜, 等.数据库系统基础教程[M].北京:清华大学出版社, 2007.
[3]季维岩.面向对象数据库及其实现方法研究[J].科学技术与工程, 2004 (11) .
[4]邓正宏, 薛静, 郑玉山.面向对象技术[M].北京:国防工业出版社, 2004.
[5]FastObjects.Versant Corp[OL].http://www.fastobjects.com, 2007-12.
面向对象数据库模型研究 篇10
面向对象的数据库经过十几年的发展, 已经日趋成熟, 有关的国际标准相继出台。ODMG (OMG所属的对象数据库管理组) 分别于1993, 1997, 2000年提出了对象数据库标准O D M G 1.0, O D M G 2.0, O D M G 3.0, 制定ODMG标准的目的是为了让ODBMS的用户编写的可移植的应用, 能运行在多个OODBMS的产品上。本课题的接口实现部分就是参照ODMG标准来实现。
ODMG对象模型主要包括以下基本概念。
(1) 数据建模的基本原语是对象 (Object) 和文字 (Literal) , 每个对象有一个唯一的标识符, 文字没有标识符。
(2) 对象和文字都可以划分为类型 (Type) , 同一类型的对象或文字具有相同的行为和状态, 对象可以称为类型的实例。
(3) 通过一组性质 (Property) 来定义对象的状态, 性质可以分为两种:对象的属性 (Attribute) 和对象之间的关系 (Relationship) 。
1 对象与对象标识
1.1 对象结构
对象是由一组数据结构和在这组数据结构上的操作的程序代码封装起来的基本单位。对象之间的界面由一组消息定义。一个对象包括以下几个部分。
(1) 属性集合:所有属性合起来构成了对象数据的数据结构。属性描述对象的状态、组成合特性。对象的某一属性可以是单值的或值的集合, 进一步地, 一个对象的属性也可以是一个对象, 即对象可以嵌套, 从而组成各种复杂对象。
(2) 方法集合:方法描述了对象的行为特征。方法的定义包括两部分, 一是方法的接口, 二是方法的实现。方法的接口用以说明方法的名称、参数和结果返回值的类型, 也称之为调用说明。方法的实现是一段程序代码, 用以实现方法的功能。
(3) 消息集合:消息是对象向外提供的界面, 消息由对象接收和响应。面向对象数据模型中的“消息”与计算机网络中传输的消息含义不同。它是指对象之间操作请求的传递, 而不考虑操作实现细节。
1.2 对象标识
面向对象数据库中的每个对象都有一个唯一的不变的标识称为对象标识 (OID) 。对象通常与实际领域的实体对应。现实世界中, 实体的属性值可能随着时间的推移会发生改变, 但是每个实体的标识始终保持不变。相应的, 对象的部分 (或全部) 属性、对象的方法会随着时间的推移发生变化, 但对象标识不会改变。
1.3 封装
OO模型的一个关键概念就是封装。每一个对象是其状态与行为的封装。
封装的意义在于将对象的实现与对象的应用互相隔离, 从而允许对操作的实现算法和数据结构进行修改, 而不影响接口, 不必修改使用它们的应用, 这有利于提高数据独立性。
2 类和类层次
在OO数据库中相似对象的集合称为类。每个对象称为它所在类的一个实例。一个类中所有对象共享一个定义, 它们的区别仅在于属性取值不同。可以看到, 类的概念类似关系模式, 类的属性类似关系模式中的属性:对象类似元组的概念, 类的一个实例对象类似关系中的一个元组。可以把类本身也看作一个对象, 称为类对象 (Class Object) 。
3 面向对象数据库的模式演进
面向对象数据库模式是类的集合。模式为适应需求的变化而随时间变化称为模式演进。模式演进包括创建新的类、删除旧的类、修改类的属性和操作等。在关系数据库系统中, 模式的修改比较简单, 主要有如下的模式修改操作。
(1) 创建或删除一个关系。
(2) 在关系模式中增加或删除一个属性。
(3) 在关系模式中修改完整性约束条件。
OODB应用环境对OODB模式演进提出了许多新的要求, 使得面向对象数据库模式的修改要比关系模式的修改复杂得多, 其主要原因有以下几点。
(1) 模式改变频繁。
使用O O D B系统的应用通常需要频繁地改变O O D B数据库模式。例如O O D B经常运用于工程设计环境中, 设计环境特征之一就是不断变化.设计自身在不断变化, 以纠正错误或修改设计使之更完美、更适合于实际:而当设计者对问题及其解决有更深刻理解时也会修改模式。
(2) 模式修改复杂。
从上面讲解的OO模型特征可以看到OO模型具有很强的建模能力和丰富的语义, 包括类本身的语义、类属性之间和类之间丰富的语义联系, 这使得模式修改操作的类型复杂多样。此外, OODB中模式演进往往是动态的, 动态模式演进的实现技术更加复杂。
3.1 模式的一致性
模式的演进必须要保持模式的一致性。模式的一致性是指模式自身内部不能出现矛盾和错误, 它由模式一致性约束来刻画。模式一致性约束可分为唯一性约束、存在性约束和子类型约束等, 满足所有这些一致性约束的模式则称为是一致的。
(1) 唯一性约束, 这一类约束条件要求名字的唯一性。
(2) 存在性约束, 存在性约束是指显式引用的某些成分必须存在。
(3) 子类型约束。
3.2 模式演进操作
下面给出一些主要的模式演进操作, OODBMS应该支持这些模式演进。
(1) 类集的改变; (2) 己有类的成分的改变; (3) 子势超类联系的改变。
3.3 模式演进的实现
模式演进主要的困难是模式演进操作可能影响模式一致性。面向对象数据库中类集的改变比关系数据库中关系模式的改变要复杂得多。因为类的修改操作可能会影响到其它类的定义。例如, 改变了一个类的属性名, 这需要所有使用该属性的地方都要改名。
因此, 在OODB模式演进的实现中必须具有模式一致性验证功能, 这部分的功能类似编译器的语义分析。进一步, 任何面向对象数据库模式修改操作不仅要改变有关类的定义, 而且要修改相关类的所有对象, 使之与修改后的类定义一致。所谓转换的方法是指在OODB中, 己有的对象将根据新的模式结构进行转换以适应新的模式。例如, 在某类中增加一属性时, 所有的实例都将增加该属性。这时还要处理新属性的初值, 例如给定一缺省初值, 或提供一算法来自动计算新属性初值, 还可以让用户设定初值。删除某类中一属性时只需要从该类的所有实例中删除相应属性值即可。
参考文献
[1]数据库系统基础Ramez Elmasri[M].人民邮电出版社.
面向对象的数据库技术研究 篇11
随着应用的日趋复杂和智能化,传统数据库的缺点一点点暴露出来,人们迫切希望产生一种新的数据库解决方案来适应这些复杂需求。一种新的解决方案呼之欲出。而这个解决方案极有可能就是面向对象数据库技术。面向对象数据库的技术机理并不高深,但它的设计思想却极有价值。在传统的面向对象应用开发中,由于传统的关系数据库开发风格完全不同于面向对象风格,使得许多程序员难以从复杂的SQL编程中解脱出来(尽管已经有一些成熟的ORM技术框架,如Hibernate,但程序员仍需要做大量的数据库代码工作),从而也无法从实质上提高工作效率。
1 面向对象数据库概述
面向对象数据库系统(OODBS)首先是一个数据库系统,即系统应具备数据库系统的处理能力,其次它也是一个面向对象系统,包含面向对象的概念和方法。因此,可以用下面公式来定义面向对象的数据库系统:
面向对象的数据库系统=数据库能力+面向对象系统。
面向对象数据库系统是为了满足新的数据库应用需要而产生的新一代数据库系统。在数据库中提供面向对象的技术是为了满足特定应用的需要。随着许多基本设计应用(如MACD和ECAD)中的数据库向面向对象数据库的过渡,面向对象思想也逐渐延伸到其它涉及复杂数据的应用中,其中包括辅助软件工程(CASE)、计算机辅助印刷(CAP)和材料需求计划(MRP)。这些应用如同设计应用一样在程序设计方面和数据类型方面都是数据密集型的,它们需要识别于类型关系的存储技术,并能对相近数据备份进行调整。
还有许多应用要求多媒体数据库,它们要求以集成方式和文本或图形信息一起处理关系数据,这些应用包括高级办公室系统的其它文档管理系统。
面向对象数据库从面向程序设计语言的扩充着手使之成为基于面向对象程序设计语言的面向对象数据库。例如:ONTOS、O-RION等,它们均是C++的扩充,熟悉C++的人均能很方便地掌握并使用这类系统。
面向对象数据库研究的另一个进展是在现有关系数据库中加入许多纯面向对象数据库的功能。在商业应用中对关系模型的面向对象扩展着重于性能优化,处理各种环境的对象的物理表示的优化和增加SQL模型以赋予面向对象特征。如UNISQL、O2等,它们均具有关系数据库的基本功能,采用类似于SQL的语言,用户很容易掌握。
2 面向对象数据库的特点
面向对象数据库将面向对象的能力赋予了数据库设计人员和数据库应用开发人员,从而扩展了数据库系统的应用领域,并能提高开发人员的工作效率和应用系统的质量。面向对象数据库具备如下特点:
首先,它是一个数据库管理系统,具有数据库管理系统的基本功能。一是永久性,数据库中的数据永久保存的;二是存储管理,包括索引管理、数据聚集、数据缓冲、存取路径选择、查询优化等;三是能并发控制,提供高于当前已有数据库管理系统同样级别的、对多个用户并发操作的支持;四是故障恢复能力,提供不低于当前已有的数据库管理系统同样级别的、将数据库从故障后的错误状态中核复到某个正确状态的功能;五是交互式查询功能,且是非过程化的、高效的、独立于应用的。
其次,它是一个面向对象的系统。只有支持面向对象数据库模型,支持复杂对象,具有运用各种构造机制从简单对象组成复杂对象的能力。复杂对象构造能力加强了对客观现实世界的模拟能力,且方法自然、易理解、具有对象标识,对象标识独立于其值而存在的特性可以极大地加快查询速度;具有封装性,对象既封装了数据,又封装操作,实现了信息隐藏,使用户不必知道操作的实现细节,只而利用设计者提供的消息即可访问对象。
它还具备应用领域所需要的一些特性,如版本管理、长事务和嵌套事务、模式演化等等。
3 面向对象技术在数据库中的实现
由于计算机网络、多媒体技术、CAD/CASE等新型数据库应用的需要,数据库领域开始借助面向对象技术来满足这些需要。面向对象技术借助对象、封装和继承机制可以实现对复杂对象和复杂数据模型的支持,将面向对象技术应用于数据库是解决当今许多新型数据库应用中遇到的问题的好办法,虽然面向对象技术和数据库的结合沿着三个方向发展,当前多数数据库生产商都在研发如何将面向对象技术应用到关系数据库中。将面向对象技术应用到关系数据库中可以有两种方式。
3.1 把面向对象技术中的对象作为关系数据库系统中的一种新的数据模型
关系表中的属性值包含对象指针,对象数据的操作在关系数据库之外进行。把面向对象数据模型(ODM)和关系数据模型(RDM)结合起来,对关系数据库管理系统进行扩充,但对象查询功能受到一定的限制。
3.2 把面向对象接口添加在关系数据库中
在关系数据库系统中增加一个对象到关系转换器,将上层的面向对象模式转化为关系存储模式,存放到关系数据库中。这样,在面向对象的数据库中关系存储模型位于底层,数据库用户可以利用标准的面向对象数据库语言进行查询处理,用户输入的面向对象数据库语言被转换成关系数据库语言,从而对底层的关系存储模式进行查询等处理,同时将操作结果按照对象方式返回给用户。这种实现方式使得数据库管理系统在实现关系模型和面向对象模型之间的模型转换时需要一定的开销,执行效率比直接面向对象数据库要低一些,但这种扩充方式实现比较简单。
面向对象技术通过映射接口和关系数据库相结合,面向对象数据库强调的是对象的属性、方法和对象间的关系,设计这种类型的数据库需要理解对象到关系数据库表的映射方法。这种映射方法通过将对象类生成为SQL语言中的数据定义语言(DDL)来将对象转换成一个好的概念层的数据模型(DDL)。
4 面向对象数据库技术的发展趋势及前景展望
4.1 面向对象数据库技术的发展趋势
面向对象数据库技术的发展并不是取代关系数据库系统,而是可望成为继关系数据库技术之后的新一代数据库管理技术。面向对象技术和数据库技术的结合有三种发展途径。
1)对象关系数据库管理系统
对象关系数据库管理系统既支持SQL语句,也支持面向对象技术,实现了传统数据库技术和面向对象技术的完美结合。全球的数据库生产商争相研发这种数据库产品,数据库生产商竞争的一个焦点是如何在现有的数据库中加入面向对象技术。
2)面向对象数据库管理系统
面向对象数据库管理系统以一种面向对象语言为基础,增加数据库的功能,主要支持持久对象和实现数据共享。利用类来描述复杂对象,利用封装方法来模拟对象行为,利用继承性来实现对象的结构和方法的重用。但是这种纯粹的面向对象数据库管理系统不能支持SQL语言,不能和现有的数据库结合起来,在扩展性和通用性方面受到限制。
3)对象关系映射数据库系统
对象关系映射数据库系统是在对象层和关系层之间建立一个映射层,使得数据源中的关系数据能够进入对象领域,并且作为对象供上层使用。
4.2 面向对象数据库技术的前景展望
面向对象技术是近20年来计算机技术界和工业界研究的一大热点。面向对象方法与先进的数据库技术相结合已成为当今数据库领域研究和发展的主要方向之一。
将面向对象技术应用到数据库系统中,使数据库管理系统能够支持面向对象数据模型的数据库模式。对提高数据库系统模拟和操纵客观世界的能力,扩大数据库应用领域具有重要的意义;将面向对象技术应用到数据库的集成开发环境中,使数据库应用开发工具能够支持面向对象的开发方法并提高相应的开发手段,对提高应用软件的开发质量和软件的生产能力是十分重要的。
从根本上讲,面向对象数据库技术对复杂对象既要有极强的表达和建模能力,又要有很强的存储和管理能力,这正是传统数据库技术面向复杂工程数据所难以胜任的关键技术。
摘要:面向对象数据库作为第三代数据库具有前两代数据库无法比拟的优点,把面向对象的方法和数据库技术结合起来可以使数据库系统的分析、设计最大程度地与人们对客观世界的认识相一致。面向对象数据库的技术方法并不高深,但它的设计思想却有着重要价值。
关键词:数据库技术,面向对象,关系数据库
参考文献
[1]邓娟,周冰.面向对象与数据库技术结合发展现状研究[J].科技资讯,2009,(3):5.
[2]Bruce Eckel.Java编程思想[M].4版.陈昊鹏,译.北京:机械工业出版社,2006.
[3]王功明,关永.面向对象数据库发展和研究[J].计算机应用研究,2006,(3):1-4.
[4]Alex Kriegel,Boris M.Trukhnov.SQL宝典[M].高伟等译.北京:电子工业出版社,2003.
[5]张珊靓,支丽平.面向对象的数据库技术初探[J].计算机与信息技术,2007,(15):316.