分享
 
 
 

在对象OR映射中采用对象存储范式代替关系存储是否可行?

王朝java/jsp·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

原文

在关系结构中,一对多是最常见也是最简单的关系。一般需要两个管理界面(interface)进行管理:主记录的管理,基于主记录对子记录的管理界面。而

对于一个多对多关系在应用客户端,一般需要三到四个管理界面进行管理:主表记录的添加和管理界面,基表记录的添加和管理界面,以及以主表为基准对关系记录

(多对多的关联表)的管理界面,有可能还包括以基表记录为基准的对多对多关系的管理界面。每一个一般情况下都不算太复杂,但当记录达到成千上万时,每一个

这样的一个实体结构的管理都成为名符其实的大工程,并且,很难复制;当遇到新的模块实体时,只能按同样的方式再次开发,而极难达到重用的水平。

对象数据库完全抛弃了多对多,甚至是一对多的关系结构,采用子集合的形式,作为对象的一个属性存在。但对于多对多形式,仍然存在一个基类确定的困难:没有

了多表关系,意味着常规的设立基表的办法不再通用于对象数据范式。象PMI(Privileges Management

Infrastruture,权限管理基本架构)中的RBAC(Role Based Access Control,组角色管理),就算可以把组作为人员对象属性,但总还需要有一个地方定义组和访问对象吧?结果,必然导致另一个象组对象这样的基对象的产生,同时出现另一个问题,就是两个对象各自管理同类属性时出现的一致性冲突的可能。

如果仅仅是在两层应用系统中,由于应用端可以直接调用sql,所以这时侯考虑对象存储范式反而显得复杂低效;但在基于关系对象映射(OR)的三层结构应用

中,复杂的多对多关系无论是使用BMP还是CMP配置,都是复杂而多歧义的,这时侯,很自然就会产生是否能够通过把关系结构异化成对象结构实现单表存储

(形式上),从而简化了OR的难度并提高了它的可用性呢?这样,对象范式的数据库就有了存在的积极意义。

但是在OR映射中,对象的集合属性和一般属性还是有着很大的区别的。最起码,它很难使用简单的setter/getter进行设置和访问;这就已经超出了

目前java有关现行规范的范围。而且,很重要的是,这种集合如果按照sql92的标准组织的话,通常是需要进一步的初始化才能从普通形式的属性转为对象

的集合属性,除非,使用特定数据库的特定属性,象OC4j中使用oracle中的行集合;从通用性来说,这种解决方案过分基于某一单一厂商,那怕是

oracle或者微软这样的大公司,都是令人难以接受的;特别是对于java这样与平台无关的解决方案,却要与某个数据库方案绑定,简直就是笑话。

另一方面,这种初始化对象集合属性的操作也不应该由对象的消费者来调用,对于调用者来说,对象属性的无论原始组织就是集合,还是是从普通属性转化来的,都

应该是透明的,无非考虑的,否则就失去了OR映射的意义。这个初始化过程,毫无疑问应该是在find得到这个对象之前的过程中完成。对于对象管理容器来

说,在获得对象基本属性后针对对象的另一个设置实行进一步的初始化,并不是一件困难的事情。

这样,对于使用者来说,对象的复杂关系就可以隐藏着简单的getByName这样的方法下面,通过简单的add/remove方法进行管理,或者通过iterate实现穷举迭代;总之,可以减少了对多对多结构模型的开发难度。这样,OR才是用得其所。

包括J2EE,Hibernate,Liberante,JDO,HanvaJDO在内的诸多OR对象映射方案,是继续采用面向传统的关系映射方式,艰难

地与多对多关系的布署困难作斗争,还是改改思路,针对对象来存储已有数据,大概会是一个值得思索的问题。这个问题换一种说法也就是:对象(应用)方式与关

系(存储)方式,总有一个向另一个妥协,今天是对象应用向关系存储范式妥协,反过来,如果让关系结构向对象应用范式妥协,是否会打开一遍新的天地呢?

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有