对象化数据库与管理

2024-10-17

对象化数据库与管理(精选6篇)

对象化数据库与管理 篇1

摘要:伴随着计算机技术的不断发展完善, 人们的生活方式已经发生了较大的改变, 人们生活更加便捷, 在不同阶段的网络技术所表现出来的方式存在一定差异, 但是越加完善, 对于互动交流所造成的影响差异性越大。所以, 本文就对于网络技术初期发展对于互动交流的影响进行分析研究, 从对象/关系映射技术角度进行比较。

关键词:面向对象数据库技术,对象/关系映射技术,网络技术

通讯手段及通讯工具在实际应用过程中, 人们在互动交流过程中会受到范围及方式等方面的限制。但是伴随着互联网技术的发展及完善, 人们在互动交流过程中所具有的局限也被突破, 人们互动交流能够逐渐无线及普适, 网络技术的完善, 在其中起到关键作用, 能够有效推动互动交流的发展。

1 网络技术发展初期及其对互动交流的影响

1.1 网络技术的表现形式

网络技术在刚开始发展过程中, 最具有代表性的技术主要有两个, 分别是报文分组交换技术与WEB技术。报文分组交换技术主要表示的是将数据分解为到数据包内, 利用通讯阶段对于数据信息进行传输, 还能够有效保证数据信息的完整性, 其中主要特征就是在数据信息传输过程中, 容易出现数据包丢失的情况, 这就需要对于数据包进行重新传输, 能够有效降低节点在数据信息传输过程中的重要性, 网络系统内不同节点能够有效连接。WEB技术在实际应用中能够满足用具对于信息交流及搜索, 利用互联网技术提供真毒性服务, WEB技术产生最为显著标志就是图形浏览器的出现。

1.2 对互动交流的影响的表现

网络技术初期发展过程中, 网络互动交流形式主要特点就是延时通信的出现。网络技术在刚开始推出的之后, 主要目的就是满足军事在发展中的实际需求, 伴随着计算机技术不断完善, 已经逐渐成为人们实际生活中主要互动交流的方式。在这个时间段内, 网络互动交流最为主要的核心就是文字互动交流, 双方在实际共同交流过程中, 主要通过文本内容的方式进行沟通交流, 在这个过程中所出现的图形也是十分简单, 交流过程中并不需要受到时间及空间上面的限制, 能够根据自身实际情况传输电子邮件, 但是这个时间段内互动交流程度较低, 造成信息在沟通传输过程中容易出现延时性。

2 从面向数据库技术和对象/关系映射技术角度进行比较

2.1 面相数据库技术

面向对象数据库技术是数据库技术与面向对象技术发展到一定水平之下的成果, 在对于复杂对象进行描述的时候, 主要应用的方式是使用类的封装方式, 进而对于复杂对象的行为进行模拟。面向数据库技术在实际应有中最为显著特点就是代码及数据并不是独立存在的, 主要是通过函数关系对于数据进行计算。

2.2 对象/关系映射技术

面向对象软件在实际开发过程中, 根据有关软件开发方法, 进而形成了对象/关系映射技术。对象/关系映射技术是以关系模型数据库结构作为基础, 映射对象模型对于有关对象进行描述, 人们在实际操作过程中, 能够具体将所接触到的语句进行描述, 所应用的对象及操作方式十分简单便捷, 如图1所示, 为对象/关系映射技术结构示意图。

2.3 面向数据库技术与对象/关系映射技术的比较

面向数据库技术在实际应用中, 所应用的数据库类型是新类型, 并不是传统关系型数据库, 这种数据库类型能够有效解决传统数据库所具有的阻抗失谐问题进行解决。对象/关系映射技术在实际应用中, 能够有效将关系性数据库与对象数据进行连接, 承担着一个相互转化数据的责任, 但是在技术仅仅能够将数据库内的对象划分为表格, 并没有有效解决传统数据库类型所存在的阻抗失谐问题。

3 面向数据库技术和对象/关系映射技术的优点及缺点

3.1 面向数据库技术

面向数据库技术在实际应用中, 能够从本质上面解决传统数据库所存在的阻抗失谐问题, 维护性能显著提高。要是从维护角度进行分析, 面向数据库技术最为显著性能就是耦合性能十分突出, 能够在不同网络平台上面应用, 所应用的查询方式较为简单。虽然面向数据库技术在实际应用中拥有十分显著优势, 但是还存在一定缺点, 首先就是面向数据库技术无法兼容SQL标准, 无法对于现在关系数据库进行转换, 主要现在关系数据库所应用的接口都是SQL标准。

3.2 对象/关系映射技术

对象/关系映射技术在实际应用应用中拥有良好的数据库转换性能, 在对于数据操作过程中, 能够根据面向对象的形式, 提高数据库性能。在数据操作方面, 能够直接对于业务对象进行处理, 并不需要对于储存方式及语句进行分析, 同时在宽展及维护方面也具有重要作用。但是对象/关系映射技术在实际应用中却存在一定缺点, 最为主要的就是对象/关系映射技术并没有解决传统关系数据库所存在的阻抗失谐问题, 其次就是在数据缓存方面存在一定缺陷。

4 结论

简而言之, 在对于对象/关系映射技术与面向对象数据库技术比较分析之后, 能够发现对象/关系映射技术与面向对象数据库技术在实际应用中所存在的优势及缺点, 应用效果也存在一定差异, 能够有效推动对象/关系映射技术及面向对象数据库技术的共同发展, 对象/关系映射技术与面向对象数据库技术在数据库内共同应用, 对于数据库系统发展具有重要意义。

参考文献

[1]赖朝新, 瞿晓静.面向对象数据库技术的两种发展途径[J].现代情报, 2014 (11) .

[2]汪琛, 胡浩民.面向对象数据库技术的发展与前景[J].福建电脑, 2015 (05) .

[3]王意洁.面向对象的数据库技术[M].电子工业出版社, 2013 (03) .

[4]何治成.面向对象的电力系统异构应用信息共享研究[D].重庆:重庆大学, 2015 (06) .

[5]杨艳亮.NETRemoting技术在分布式数据库中的研究及应用[D].昆明:云南大学, 2015 (09) .

面向对象数据库系统设计 篇2

关键词:面向对象;数据库;系统设计

一、数据查询(OQL)

作为数据库,最重要的估计是数据查询了,面向对象数据同样如此。在这里,我设计了以下查询语法:get(…)if(…),其中get里面是要查询的类,类的属性等,相当于SQL里面的select … where …。比如有类A,A中有一个属性a(数字型,关于类型后面会说)。则获取所有A类实例中所有a的值小于0的实例集合的查询语句是:get(A)if(A.a<0);

执行该语句应该要返回所有类A实例中所有a小于0的实例集合。具体使用方法如下:

(一)单类查询

即在一个类中进行查询。如:get(A)if(A.a<0);就返回是所有类A实例中所有a小于0的实例集合。而不带条件的查询是get(A);这将返回类A的所有实例。

(二)多类查询

如:get(A,B);将返回类A和类B的所有实例的数据。

(三)方法查询(暂不实现)

(四)表达式计算

如:get(3+3);返回的将是6。

(五)复杂查询

如:get(A.a+B.b,C,C.a/A.a)if(A.a5);这个查询语句将返回的是类A的a字段和类B的b字段的相加之和,类C的实例以及C类字段a与A类字段a的商,并且尽在类A的a字段小于类B的b字段并且(##是并号)类C的字段a的值小于5。此类操作可能比较耗时,并且可能返回重复的数据。如在A类实例和B类实例确定的情况下C类实例变化时将返回多个相同结果的A.a+B.b的值。记住返回的都是集合。

二、数据操作(OML)

(1)插入数据:new 类名(构造函数参数列表);这样即生成了一个实例(即插入一个实例)。举例如下:

Test t = new Test(1,2,3);//假如类Test的构造参数是三个数字类型的参数。

(2)更新数据:直接调用该类实例的引用的属性复制即可实现更新。举例如下:

t.a = 3;//假如类Test有个公有成员a且是数字型的。

可以有更复杂的、有逻辑的更新,如:if(Test.a>3){Test.a = 1;//将所有符合条件的Test类的实例的a字段复制为1,是集合操作。}

又如:while(t.a>0){Test.a——;//只要实例t的字段a的值还大于0,则所有Test的实例的值继续减一。}

(3)删除数据:free(类名)if(删除条件表达式)。如果没有if,则删除此类的所有实例。free(Test)if(Test.a>0);这将删除类Test的实例t。

(4)数据定义(ODL)

定义语言包括类的定义和对象的定义。语法模仿的Java的语法。具体如下:

定义类:

class :定义类,语法如下:class 类名{

属性定义:其中包括变量权限声明,值定义,类型声明,目前仅支持三种类型,字符串型,数字型和 比特型。

方法定义:方法定义,跟Java类似,但目前仅留接口,不做实现。}

下面是一个实例:

class Test{private num a;//数字型;public str b;//字符串型;protected byte c;//比特型,变长比特型,用来存储大容量数据;public void testMethod(num a){//方法定义,目前暂不实现a++;this.a = a;}“;//”一定要加 “;”号,否则不能结束。

alter:更新类。语法如下:alter 类名.字段名或者方法名 =

{//字段或者方法的新式描述,如果没有任何信息,则表示删除该字段或者方法};举例如下:

alter Test.a {public num a;//如果不是命名为a,而是b,则将删除a字段,新建b字段。

该语句将把字段a的访问权限从私有变为公有。下面是更新方法:alter Test. testMethod {public void testMethod(num a){//方法更新,目前暂不实现a++;this.a = a——};

drop:删除类。此关键字只有一个语法,即:

drop 类名;如:

drop Test;//即表示删除Test类。

(5)数据控制使用try{//行为}catch(){}的语法形式,用来控制事务。在try块中的行为必须全部执行成功数据库才会更改,相当于事务提交。如果发生异常(即不能全部执行成功),则事务回滚。同时还要执行catch块中的信息。一般说来,catch块中留空则只回滚事务。

参考文献:

[1]邢斌、高荣芳、刘予东,《基于JSP的学生就业管理系统》,福建电脑。2006-9

作者简介:

对象化数据库与管理 篇3

电力对象类在构建时, 其对应属性也较为繁杂, 系统存在差异, 则所要求的数据也有所差异。比如, 对于SCADA系统来说, 需完成终端FTU或者RTU参数的采集, 这些参数包含数据转换系统及通信协议等, 但是在设备信息管理系统当中, 还需要知道FTU或者RTU的安装位置、性能、周期、时间等参数。所以, 需以应用为根本, 来完成设备对象类属性的定义。具体参数如下:

1) 对于设备管理属性来说, 其包含设备的规格、型号、时间、价格、日期、生产商家、对应编号等各类信息, 这些信息需与变电站、发电厂设备登记卡一致;

2) 对于设备线路连接属性来说, 其表示投运设备沿着线路方向上下或者左右之间的连接关系, 例如编号为x断路器进行端和y刀闸进行连接, 出线端和z变压器进行连接, 断路器在进行建模时, 需定义x断路器连接性为左联设备y, 右联设备z, 其为最基本的电网连接单元;

3) 对于一次设备电气特性来说, 其包含工作频率、额定功率、电阻、电压、电流等参数, 这些参数通常为电力设备专属特性;

4) 完成遥控设备通用与数据进行交换参数的收集;

5) 对于一次设备实时数据量的属性来说, 其包含开关刀闸状态量、变压器油温、用户点度量、母线电压等参数;

6) 对于特殊对象属性来说, 其包含变电站、发电厂的建成时间、装机容量等业务参数。

总的来说, 电力系统静态数据建模是为了完成系统设备对象面向各类应用属性的确定, 这些属性包含电气特征、地理空间与产品特征等属性。其不仅能够以电网拓扑的结构展现, 还能够完成系统业务关系结构的展现。

2 电网实时数据采集和存储模型的构建

电力系统在数据采集与传输的基础上, 方可完成实时监控。然而, 电力系统数据采集工作十分繁杂, 造成这种局面的原因在于, 电力系统呈现分布式结构, 各个测量点相隔较远, 所选的通信方式也有差异, 对于不同参数在测量时所用到的设备也有所不同。采集设备的厂商不同, 其对应的数据也具有较大差异, 因此, 主站系统, 需要把各类格式不一的通信协议、数据集中在一起, 进而在对电网遥测、电度、遥信量采集之后, 完成遥控、遥调命令的发送。并以数据传送与采集为对象, 完成遥测、电度、遥信、水位等命令类的构建。这不仅是为了数据格式、通信协议等发送属性的确立, 更便于主站前置机对这些数据的运用, 同时建立RTU/FTU终端完成通信通道的构建, 把上传数据转变为工程量。

3 电力系统图形化对象模型的构建

对于电力系统来说, 其涉及的图形包含一次接线图、电流数据图、地理信息图等。这些图形在系统图形化对象模型中, 能够将电网结构做到直观展现, 进而实现对电力系统运行动态地把握, 使得处理结果得到简化, 也使应用系统得到较为便捷的用户交互界面, 使得用户在操作时较为方便。

对于这些图形来说, 其具备标准化的电力设备实物图、网络拓扑关系图以及地理位置图等各种静态图形, 还包含运用各类形状与颜色所标记的各种运行动态图。这些图形需要与实时数据相连接, 同时在数据的驱动下, 完成变化过程。对于图形库来说, 在应用时, 还具备越线报警、显示测量变化趋势等相关功能。建立一套基本的矢量图元分别表征某一类对象。同时为了全面表示各类对象的图形特征, 还需要完成设备图像库与设备动作状态视频库的构建, 运用模型关联的方式, 把图像、图元、视频与电力对象达到关联效果, 进而使系统需要得到满足。

4 结语

对象化数据库与管理 篇4

关键词:高校;教育教学;管理;机制;对象;义务

中图分类号:G645 文献标志码:A 文章编号:1674-9324(2012)09-0252-02

新中国成立60多年来,我国教育事业的确有了很大的发展,取得了巨大的成绩。但是,我们又必须清醒地看到,我国高等教育从整体上而言,还不太适应我国经济社会发展的大趋势,还不太适应国家经济与社会建设对人才培养的根本要求。笔者以为,主要原因在于以下三个方面的问题至今未能得到根本性的解决:

第一,关于高校教育教学管理机制的问题。

长期以来,由于受到我国行政管理体制的影响,使得我国高校教育教学管理一般都存在管理方向上由上而下的单向性特征。准确地讲,即从行政职能机构作用于——教育教学承担单位、教育教学承担者——的纵向性的管理。例如,我国高校的管理机制多年来一般都是三层架构,即作为第一层的学校领导层,作为第二层的高校二级学院、教务、科研、人事、后勤部门等中间层,作为第三层又分别隶属于各个中间管理层的各个科级单位和下属基层员工。当然,这种管理机制的明显好处是它很好地呈现了“管理”的本色,其一以贯之的单向性特征尤其有助于上令下达。否则,这种机制也不会长期成为我国高校教育教学管理的“固定动作”或“习惯作为”。然而,正如任何事物都有其两面性一样,这种自上而下的管理机制并不是十全十美的。其最大的弊病就在于,在这种管理机制之下,下情上达会受限,人文气息被拘束,特色个性遇阻挡,集思广益不被看重。其最终结果一来很可能造成上令得不到通畅地下达、工作任务的落实被打折扣的结果;二来也不排除因上级在工作策略、工作安排上的失误造成难以弥补的损失的可能性。特别是当教学管理行政化现象严重,民主氛围不良的情状变成常态的时候,高校教育教学管理就等同于现代化工业生产中的流水线一样,不得不陷入生硬刻板机械的复制程序中。由此,学校或二级学院就完全成为了上级乃至平级行政部门的佣属机构,而行政管理的浓重痕迹也就在教育教学管理的过程中大肆蔓延。这给大家的印象和造成的事实就是,办学的主体主要在于上级或平级行政部门,而不是广大一线教师。而且“行政化”教育教学管理完全按照行政管理机制的规范行事,学校内各个层次的行政人员也就变成了管理主体,成了学校运行的核心和主角,而具体的教学人员在相当程度上被放置在了教学机体的末位,成了行政管理的对象之一,成了缺少独立自主发展、缺少参与制度创新的被动的任务完成者。其中的根本缘由就在于:当一种事物或一种体制已然陷入一种惟一的、单向性的路径时,其内在应有的多样性、可变性、丰富性必然受损,甚至消泯。

第二,质疑高校教育教学管理的对象问题。

长期以来,高校教育教学管理的主要对象包括教师与学生。就教师而言,高校传统的教学管理模式主要从管理层面出发,基本上是管理者布置、分配教学任务,教师服从安排、实施教学的固定程序,而不去考虑这一过程中教师的想法与感受。而上述自上而下单向性的管理机制使得普通教师在持有不同的观点和建议时,很少得到重视、沟通与交流,其结果势必影响教学质量的不断提升。例如,在教学评价体制当中,由于高校的教学评估机制存在严重的“一刀切”、模式化、“标准作业”等弊病,致使当今许多高校的教育教学管理的评价体系也随之变得单调、刻板又拘谨。这种做法,很可能忽略了教师与学生的个性需求,也很可能阻碍原本可以生长的教育创新机遇。笔者认为,高校教育教学管理的终极目的应该是提高教师的参与意识和创新意识,而教师决不应该是教育教学管理的对象,而应该是高校教育教学终极目标实现的重要部分。如果高校教师的主动性、积极性实现了最大化,那么高校教育教学效果也会最大化地实现。所以,应该善待每一位教师的付出,尊重每一位教师人格与个性,使其专业素养得到最大实现。高校教育教学管理的另一对象是学生。目前高校在校生基本上都是90年代初期出生的孩子,这一代年轻人的成长环境和精神特点又不同于80后,整个状况显得更为复杂。总之,上述情形给高校的管理工作带来了新的问题和要求。我们知道,高等教育的三大职能就是培养人才、发展科学和服务社会。在这当中,培养人才既是高等学校的基本职能和中心任务,也是高等学校之所以是高等学校的根本理由。笔者认为,在高等学校的三大职能当中,培养人才是首当其冲、至关重要的基础性职能。因为创新型人才的培养是需要一个相对宽松的环境和一个合理的管理机制的,所以,眼下的高校的管理机制的确不能满足新时代、新环境下人才培养的根本需求。

第三,高校教育教学管理者的服务与支持意识。

教育部《高等学校教学管理要点》中提到了教学管理的基本方法就是:从事高等学校的教学管理,要以唯物辩证法等科学方法论为指导,注意综合运用科学合理的行政管理方法、思想教育方法,以及必要的经济管理手段,避免依靠单一的行政手段。要注重现代管理方法在教学管理中的应用。努力推动教学管理的现代化。笔者以为,上述教育部规定的教学管理基本方法应该得到修改,因为任何方法的采用与实施首先来自于一种理念,而我们现在需要确立的理念就是提升高校教育教学管理者的服务与支持意识。我们知道,教育是一种满足人的发展需求的服务。学校是服务的提供者,理应以服务的对象为本,即以人为本,以满足人的发展需要为出发点。而现代新的教育理念认为,教学任务直接的完成者、落实者是教育教学的主体与中心,而教学单位的其他部门包括领导层全都属于教学支持机构范畴。所以,教学管理人员的新定位就是必须树立明确的服务与支持意识,明确服务与支持教学的思想,清醒地认识到教学管理工作的义务。所以,教学管理人员要牢牢树立服务教学支持教学的思想,强化服务与支持意识,牢牢树立以教师为本、以学生为本的工作理念,以确保教学活动有条不紊地开展。此外,教学管理人员还要不断学习新知识,根据新形势的变化,时刻准备接受新知识,切实提高工作水平,扎实有效地开展教学服务与支持工作。为此,打破刚性、居高临下、缺少人文性、交流性的管理者心态,是教育教学管理者必须首先完成的心理课题。

总之,高校教育教学管理的新理念、新模式应该重在“理”,而不在“管”,这里的“理”应该包括梳理、护理、调理等多方面,所以管理者只有放低姿态、放平心态,以最大的热情支持并服务于高校教育教学工作,才算是真正尽到了义务。

对象化数据库与管理 篇5

本文针对在开发设计数据库时schema经常变动而导致原有存放在数据库中的数据失效, 频繁将数据导入导出的问题, 提出一种基于schema可变技术的面向对象数据库, 使得数据库能够在schema变动的情况下尽量保证能够继续使用以前的存储的数据而不必重新导入数据, 提高数据库的可用性。

1 数据库的概要设计

依据分层设计的思想是将每个模块划分为不同的层次。整个数据库共分为三个层次, 从上到下分别是接口层、数据操纵层、数据存储层, 结构如如图1所示。

1.1 用户接口层

该层是数据库提供给用户的接口, 主要是用于规范客户端程序如何访问数据库的应用接口, 其提供了诸如查询和更新数据库中数据的方法。该层主要包含两个部分:

(1) 程序接口:增加 (Create) 、查询 (Retrieve) 、更新 (Update) 和删除 (Delete) 操作是数据库的最基本的操作, 它们主要被用于描述软件系统中持久层的基本操作, 同时也是数据库中最为常用的操作。

(2) 管理接口:提供数据库的基基本本方方法法, , 如删除schema结构, 查看数据库表中中数数据据内内容等。

1.2 数据操纵层

该层主要负责对数据库内的对象象进进行行操操纵, 包括反射Java的类结构、类的sscchheemmaa的的存储、索引的维护以及创建等, 主要要分分为为以以下下几个模块:

(1) Refl ector:反射 (refl ectoorr) ) 是是JJaavvaa语言提供的一种动态的获取加载到JJVVMM中中的的类的方法、属性以及方法和属性上的的标标注注的的技技术。在schema可变技术的面向对象数数据据库库中中, , 在很多的地方需要借助到Java语言的的反反射射技技术, 如类结构的解析、schema的检测测、、实实例例中数据的获取等。

(2) Classic Metadata:主要是用用来来存存储储解析出来的类的结构, 避免对已经解解析析过过的的类的结构再次进行解析, 管理类的版版本本以以及及schema的演化。

(3) Index Query:主要是对索引引进进行行管管理。它的功能体现在以下几个方面:: (1) (1) 当当需需要要创建索引时, 根据创建索引的条件, 创创建建索索引引;; (2) 当查询条件使用到索引时, 根据索索引引的的特特点点以及查询的方式, 选择一种最为适合合此此种种查查询询的索引操作; (3) 当用户插入的数据造造成成索索引引的的更新时, 更新和调整索引等; (4) 对索索引引的的状状态态进行管理和监控。

1.3 数据存储层

该层主要用于维护已经存储在数数据据库库中中的数据, 包括类的存储的组织方式, , 类类的的索索引引的结构等。主要分为以下几个模块::

(1) Class Index:由于在面向对对象象数数据据库中每个类的实例都是用UUID标识识的的。。根根据UUID的重复率低、长度固定、数数据据结结构构为为string类型的特点, 构建索引全部类的实例的数据结构。

(2) Class Field index:由于在每个类中, 可以依据每个类的属性, 为某个属性建立索引, Classic Field index提供了索引, 方便用户快速查询到需要的数据。

(3) ACID transection slot:ACID是指事务的原子性、一致性、独立性及持久性, 是数据库必须具备的性质。ACID transection slot就是为了保证ACID在数据库中的实现而设置的。同时它也提供了部分基本的数据结构, 为数据的存储提供了可能。

2 schema可变技术的实现

2.1 面向对象数据库中的Schema可变技术

数据库的Schema是对数据模型的实现。Schema表示了数据库的结构或者是数据库中的一个名字空间, 包含了一组表结构、视图、和存储过程等对象。在面向对象数据库中, 数据库的schema是通过类的结构来表示的, schema的变化可能会导致数据库中存放的原有数据失效或丢失。

Schema可变技术即意味着当数据库的类结构发生变化时, 如果该类的部分数据以及数据的限定与上一个版本的类结构中存储的数据以及数据限制兼容时, 则上一个版本的类结构存储的数据依然可以在当前的类结构当中使用, 不必进行数据库中数据的调整或者更新操作。再该面向对象数据库中, 通过建立的类结构与数据库中存储的数据做映射的方式实现schema可变技术, 我们使用的映射方法为:将类的名称与版本号相结合的方式——“原类名+版本号”为类命名。

数据库支持schema可变技术可以带来很多的优势:

(1) 尽可能的保留已经存储在数据库中的原始数据, 使其在schema发生变动时, 不丢失数据。

(2) 在schema变动时, 不必对数据库进行调整或者更新的操作, 简化了数据库管理员的工作。

2.2 面向对象数据库中Schema变化的原因

Schema变化是由类结构的变化造成的, 类结构变化的原因可分为以下几种:

2.2.1 由于类自身的变化而造成的

(1) 增加属性。

(2) 减少属性。

(3) 改变属性的类型。

(4) 改变属性的约束条件。

2.2.2 由于父类的变化而造成的

在面向对象语言中存在继承关系, 即子类继承父类中的属性, 当该类父类的结构发生改变的时, 子类的结构会同时发生改变。

2.3 Schema可变技术的主要流程

在Schema可变的面向对象数据库中, 实现schema可变技术的重要操作位主要有三个, 分别是是Schema的解析, Schema发生变化后的处理以及如何将Schema中的数据添加到不同版本的类结构中。

2.3.1 Schema的解析流程

Schema的解析是指获取指定类内部的属性以及属性的标识等信息的过程, 解析完之后会将解析后的schema信息添加到数据库中。其具体流程如下所示:

(1) 将类名加入队列中, 并从队列中取出一个类名进行解析, 如果该类为object则放弃解析, 如果不是object则转到2。

(2) 将该类的父类父类添加到队列中。

(3) 逐个解析该类的属性。

a.如果是基本类型, 则解析其名称以及约束。

b.如果不是基本的类型, 则解析器名称以及约束, 并将该类的名称加入到队列中。

(4) 转到1。

2.3.2 Schema变化后的对Schema处理

Schema变化后, 数据库能够识别出该schema的变化, 然后根据解析出来的类结构, 生成新的版本信息, 如果该类与数据库中存储的该类以前的版本信息兼容, 则生成新的类结构和版本号, 具体流程如下所示:

(1) 检测该类的结构是否存在, 如果存在则不再进行类结构的演化并删除该结构;如果不存在, 则转到 (2) 。

(2) 根据兼容性列表 (如表1所示) , 检测该schema中保存的类的结构是否与其它的版本相冲突, 如果不冲突, 则存储该类的结构, 转到 (4) ;如果冲突, 则给出冲突的原因、版本号等信息。

(3) 根据已经存在的类的结构, 生成新的版本号。

2.3.3 Schema变化后对类的处理

当程序进行查询操作时, 根据传递过来的客户端的schema信息, 查询在服务器端是否已经存储与该Scheme相应的版本, 如果不存在, 则返回空;如果存在, 则依据查询条件进行查询, 具体流程如下所示:

(1) 从数据库中获取该类的所有数据, 如果数据库中所有的类都应解析完毕, 则退出解析过程并返回结果;如果还有未解析的类, 则取出一个, 进行解析。

(2) 根据数据库中存储的类中的属性和类的版本信息, 逐一解析数据库中存储的类的每个属性, 并将值填入查询结果中。

a.在数据库中的类不包含该类属性时, 如果该属性允许此值为空, 则将该属性设置为null;如果该属性不允许为空, 则放弃对数据库中类的解析, 转到1。

b.类中同名属性的类型发生改变, 则放弃对数据库中存储的类的解析并转到 (1) 。

c.类中属性的标示发生改变, 如果兼容则继续解析, 如果不兼容, 则放弃对数据库中存储的类的解析并转到1。

d.如果数据库中的类包含该类的属性时, 如果兼容则继续解析, 如果不兼容, 则放弃对数据库中存储的类的解析并转到1。

(3) 转到1。

3 系统测试

3.1 面向对象数据的存取

3.1.1 构造POJO类结构

3.1.2 将name设置为test, age设置为20, 并将该类数据存入数据库中。

3.1.3 从数据库中取出数据, name=test, age=20

由此可以说明, 数据库能够完成对类结构的解析, 并可以取出相应的数据。

3.2 在兼容的情况下schema变更测试

3.2.1 更改后的Person类

在这里增加一个属性description, 它为String类型的, 默认的情况下, 允许该字段为null, 所以属于能够与前边所存储的类的实例相兼容。

3.2.2 在服务器端输入命令对版本进行查看, 版本信息显示如下内容

3.2.3 读取数据, 读取结果为:Name=test, Age=20, Description=。

在这组测试中, 可以得出该数据库所提供的schema可变技术是正确的。

3.3 在不兼容情况下schema变更测试

3.3.1 更改后的Person类

在这里将原有的名称为age的属性由int修改为Age类。

3.3.2 使用该类添加数据, 则返回错误信息

在这组测试中, 可以得出该数据库可能够识别不兼容的schema, 并提示有冲突的版本。

4 总结

基于schema可变技术的面向对象数据库实现了schema可变技术, 使得数据库在schema变化的过程中, 尽可能的保留数据库中存储的原有数据, 减少数据库中数据因schema变化而引起的数据丢失问题, 提高面向对象数据库的可用性。但是其也有部分不足的地方, 如不能够很好的支持泛型、对静态变量不能够做到有效的支持、不支持事务等。在以后的工作中, 将根据面向对象数据库的发展逐渐的完善该数据库, 使其融入新的技术融入更多的技术并且在已有的技术上进行创新。

参考文献

[1]Object database[N/OL].2010.http://en.wikipedia.org/wiki/Object_database.

[2]埃史尔.Java编程思想 (第四版) [M].北京:机械工业出版社, 2007.

[3]王珊、萨师煊等.数据库系统概论[M].北京:教育出版社, 2006.

对象化数据库与管理 篇6

1 大对象数据的存储

数值型数据或其它小对象数据都是通过二维表来实现存储, 将数据集成在数据表的行中, 通过数据表的操作来实现数据的存放。大对象数据因为数据量大只能将数据块存储在存储设备上, 通过一个16字节的指针指向数据块, 而16字节的指针则放在二维数据表中, 作为一个小对象数据存储。这个16字节的指针指向一个数据块存储片段的根节点, 可以映射指向该数据块存储片段的内部指针。大对象数据的存取时, 先读二维数据表中的指针信息, 通过指针链接读取专门存储大对象数据的存储块。

2 Oracle大对象数据类型

Oralce数据库是由美国甲骨文开发的一款分布式数据库产品, 也是全世界最著名的一款B/S架构下的数据库产品之一。Oracle数据库是一款通用性极好的数据库, 具备完整的数据库管理功能, 是一款完备的关系数据库, 遵循关系数据库的所有约束, 也是一款分布式数据库, 能实现分布式处理数据功能。目前市场上普遍采用Oracle Database 12c, 该款产品引入了一个多承租方架构, 可以让用户轻松管理数据库云, 为未来海量数据处理提供方便。

Oracle数据库中总共包括了LONG, LONG RAW和LOB三种大对象数据类型。LONG和LONG RAW是Oracle早期版本就带有的数据类型, 最大长度为2G, 只支持顺序访问, 也不可以作为对象的属性处理。LOB是Oracle8i版本后的数据类型, 该数据类型包括内部LOB (BLOB CLOB NCLOB) 和外部LOB (BFILE) , 所谓内部LOB就是指存放在数据中的大对象数据类型, 所谓外部LOB就是指存放在操作系统中大对象数据类型。通常用BLOB来存放像图像、音频和视频等这样的二进制格式数据;用CLOB来存放像大的文本数据这样的数据库字符集格式字符数据;用NCLOB来存放像长文本数据这样Unicode字符集字符数据;用BFILE来存放指向某文本文件或二进制文件的操作系统文件指针。

3 Oracle中大对象数据的存取方法

3.1 新建测试用表.

为方便大对象数据的存取, 创建一个指针文件指向大对象数据。

将操作目标设置好后, 将该目录的读写权限放开, 释放给当前数据库用户。

3.2 利用PL/SQL存储过程实现大对象数据存取

设计PL/SQL存储过程pic_insert, 用来存放像图片, 大文本段或视频等这样的大对象数据。

3.2.1 存入大对象的存储过程:

3.2.2 读取的存储过程

这样两个存储过程exec pic_insert和exec pic_read就创建好了, 通过执行这两个存储过程可以实现对Oracle数据库中的大对象数据存取。

4 结语

Oracle数据库中的大对象数据应用是数据库技术中最关键的技术, 通过PL/SQL存储过程来实现是最有效也是最简单的方法, 比较容易让软件设计师掌握。通过实验, 该方法性能优良, 能准确处理大对象数据, 同时因为该大对象数据支持分布式环境处理, 适合B/S架构应用软件的开发。

摘要:随着计算机应用系统的广泛应用, 应该系统的数据库越来越大, 可以存储或应用的数据类型也越来越多。大对象数据作为普通数据类型的补充可以帮助我们解决很多现实问题。但大对象数据的存储和读取却是困扰数据库设计师的难题, 通常会使用高级语言JAVA等来实现Oracle数据库中大对象数据。本文试利用PL/SQL存储过程来实现Oracle数据库中LOB数据的处理, 丰富Oracle LOB数据库的技术理论。

关键词:大对象数据,Oracle,LOB,PL/SQL

参考文献

[1]东庭, 孙学康.使用JDBC数据接口存取Oracle LOB (大对象) [J].电脑编程技巧与维护, 2005 (12) :47-49.

上一篇:放射免疫分析方法下一篇:差异化市场营销