欢迎来到天天文库
浏览记录
ID:10635711
大小:51.50 KB
页数:3页
时间:2018-07-07
《基于orm技术的面向对象数据与关系型数据交互问题的研究》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、基于ORM技术的面向对象数据与关系型数据交互问题的研究摘要:随着计算机技术的发展,在应用领域,越爱越多的应用技术要接触到大数据,在PB级数据面前,传统关系型数据库的问题逐渐凸显出来。随着而来的面向对象数据库应运而生。针对面向对象数据与关系型数据之间的信息交互问题,该文分析了如何利用ORM技术实现面向对象数据与关系型数据之间的信息交互,并举例说明。中国8/vie 关键词:面向对象数据;ORM;关系型数据;应用 中图分类号:TP311文献标识码:A:1009-3044(2017)06-0144-02 1概述 随着计算机技术的发展,在��用领域,越来越多的应用
2、技术要接触到大数据。在PB级数据的面前,传统的关系型数据库的问题越来越多地被暴露了出来。效率低下、可扩展性差、使用复杂以及与当下流行的面向对象技术不适应等等问题。 在大数据时代下,面向对象数据库得到了广泛的应用。面向对象数据库与生俱来就与当下流程面向对象技术相辅相成,在设计之初,就已经考虑到大数据所带来的性能消耗问题。所以在大数据面前,面向对象数据库具有较大的优势。[1] 但是由于传统关系型数据库在过去很长的一段时间当中,都占领了数据库市场的绝大部分份额。即使在当下大数据时代,市面上大部分系统所用的数据库也都为关系型数据库。比如Oracle、SQLServe
3、r、MySQL、DB2等传统关系型数据库。由于新老数据技术的交替所带来的问题也就油然而生,最主要的问题之一就是传统关系型数据库中的数据与面向对象型数据库的数据之间的交互问题。[2]这个问题是一个另广大开发人员头痛的问题,由于每个系统的业务逻辑不同,没有一个通用的解决方案,所以一般关系型数据与面向对象数据进行数据交互都是特定问题特定分析。这种解决方式不仅仅适用于单独系统,不具备通用性,而且更多的是为企业带来开发成本提高,开发效率下降等现实问题。 2面向对象型数据库与关系型数据库中数据的特点 面向对象型数据库是基于面向对象技术发展起来的,面向对象技术的核心观点是
4、“世间万物皆为对象”,其中对象是一个核心概念,任何一个事物都被认为是一个对象而存在,比如桌子是一个对象,它存在材质、大小、颜色、价格等属性,可以用于书写、吃饭、游戏等方法,多个桌子即可以表示为桌子对象数组。将同一类具有相同的属性和方法的事物用类的方式封装起来,在面向对象技术中,类还可以被继承,利用继承的方式实现对象属性和方法的重用,模拟现实世界中复杂的事物行为。这种设计方式最显著的特点就是事物与事物之间的关联性最大程度的降低,即低耦合,事物间的关联性降低,数据与代码之间的关联性降低对于存储而言更加轻松方便。面向对象型数据库就是将这些事物以对象的形式存起来,所以面
5、向对象型数据库的存储基本单元可以认为是对象。 而关系型数据库中的数据是传统的矩阵的形式即行与列,但是现实世界的事物很难全部都用简单的行与列来表示。即使表示出来,也是用了非常复杂的数据结构进行表示。[3]比如表与表之间的具有多对多、一对一、一对多等多种情况,这种复杂的表示方式带来的问题就是难以解析,尤其在大数据面前,即使每条数据的解析时间相差毫秒级,在PB级的数据面前性能消耗也是开发人员承担不起的。 3利用ORM技术实现对象化数据与关系型数据之间的交互应用 ORM(ObjectRelationMapping),即对象关系映射,是用来把对象模型表示的对象映射到
6、基于SQL的关系模型数据结构当中。这种技术可以让开发人员只关心对象即可,不需要操作复杂的SQL语句。相反的,将利用SQL语句从关系型数据库当中取出来的数据转变为对象,开发人员也是可以直接利用对象来进行业务层的业务逻辑运算即可。 以关系型数据表1为例: books表为图书表,表中有如下字段,bookid书序列、title书名、isbn、author作者、unitprice单价、ctgcode书类别。非常简单的一种关系型数据表结构。在面向对象的世界中,可以将books表定义为books对象,其中有bookid、title、isbn、author、unitpric
7、e、ctgcode属性以及相应的get、set方法。建立books对象代码如下: publicclassBooks{ privateLongbookid; privateStringtitle; privateStringisbn; privateStringauthor; privateDoubleunitprice; privateStringctgcode; publicLonggetBookid(){ returnbookid;} publicvoidsetBookid(Longbookid){ this.bookid=bookid
8、;} publicSt
此文档下载收益归作者所有