MDA之路

MDA,UML,XML,Eclipse及Java相关的Blog
posts - 53, comments - 494, trackbacks - 0, articles - 2
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

ORM随想

Posted on 2005-05-22 20:21 wxb_nudt 阅读(881) 评论(1)  编辑  收藏 所属分类: 技术杂谈

ORM随想

前言

周末的夜晚,总显得特别无聊,总看卫斯理的书不是办法,得找点事情干干。前几天为了验证自己的一个想法,到网上搜索,结果发现了hibernate,为了跑一跑hibernate,结果学习了Ant,最后发现hibernate是一个ORM工具,于是自然把视线转移到了ORM。在网上的资料中游荡,发现对于ORM没有一个完整的中文资料,English的资源也不甚明了。于是有必要把自己所看、所想、所用的做一个小小的总结。

ORM的定义及来由

ORMObject-Relational Mapping的简称,中文含义是“对象――关系映射”。此处的“对象”,乃是Object Oriented(面向对象技术)中的对象,而“关系”则是关系数据库中的关系。

为什么需要ORM呢?自然是因为需要将对象和关系互相转换,而为什么需要互相转换,就需要解释一下“程序”的概念。最早关于程序的概念是:

程序=算法+数据结构

而在信息处理领域,目前我们实际面对的程序概念是:

程序=数据+数据处理

计算机的程序有两个大的应用领域:科学计算和信息处理,最初的计算机程序大部分是为了进行科学计算的,这也是为什么在早期的大学中计算机系是数学系的一个分支的原因。而随着计算机技术的不断发展,尤其是网络技术的发展,信息处理已经成为计算机重点关注的问题。“信息技术”(Information TechnologyIT)产业也不断发展状态,甚至脱离了计算机技术的领域,自立门派了。说了那么多,其实就是为了说明一个问题,目前的计算机程序,大部分是为了进行信息处理的,而进行信息处理的程序,就等于数据+数据处理。

而目前程序中的数据大部分是保存在关系数据库中的。目前程序的数据处理流程大部分是用面向对象语言编写的,因此

程序=关系数据库+面向对象语言

这个等式在大部分状况下成立。面向对象语言中的基本信息存储单位是“对象”,而关系数据库中的基本信息存储单位是“记录”。那么,当程序需要在数据的处理和数据的存储之间交换信息时,不可避免的要将“对象”和“记录”进行转换。

关系数据库的理论基础是关系代数,面向对象语言的理论基础是面向对象技术,如果能够在具体的程序编写之前解决“对象”和“记录”的映射问题,提出一个通用的解决方案,那么一定能够大大加快程序开发的效率和质量。这个通用的解决方案在部分上已经实现了,就是ORM

力有未逮,下次再续……


评论

# re: ORM随想  回复  更多评论   

2005-08-12 23:50 by zx
程序=问题空间的最细致总结+解空间中的最优解

其中
问题空间=一般而言的业务逻辑
解空间=一般而言的分析、设计

只有注册用户登录后才能发表评论。


网站导航: