找回密码
 欢迎注册
搜索
热搜: 活动 交友 discuz
查看: 29809|回复: 82

关于cache数据库的一些思考!

[复制链接]
发表于 2005-6-17 15:02:41 | 显示全部楼层 |阅读模式
前几天听了cache数据库的讲座,对它有了一个简单的了解,它的面向对象的特征也知道了一点点,不过感觉现在的关系数据库也可以用o/r mapping做到,而且相应的产品也很多,比如java的hibernate和.net下的nhibernate,还有ibatis那些data mapping的工具也可以实现类似的功能,而且无论用o/r mapping或者data mapping 都可以实现到与数据库无关性,而cache则做不到,必须与数据库紧密嵌入在一起,这也是它速度快的原因之一,由于很多业务逻辑也和数据库层的东西写在了一起,感觉导致了各层之间的耦合性增加,这不符合面向对象应用的特点!而且cahe开发的产品也就不能再移植到别的数据库上!而用java和.net平台开发的可以实现到与数据库无关的程度!
<br>     不过cache作为一个后关系数据库,自然也有它的可取之处,要不老美的医院怎么有很多在用呢!
发表于 2005-6-17 17:42:08 | 显示全部楼层

关于cache数据库的一些思考!

同感,如果我做新的大型产品技术选型,是不会Cache数据库的
发表于 2005-6-18 10:07:14 | 显示全部楼层

关于cache数据库的一些思考!

fancycn,不知道是不是温州的?
<br>我们上周刚在温州举办了温州医学院的校园计划,讲述Cache&#039;的入门课程。注意仅仅是入门课程!通过R/O映射的确可以实现一些面向对象的功能,但并不是全功能的对象特性。的确,这种方式可以在一定程度上做到与数据库无关,但结果是在任意数据库上都不是最优的。这就是少数国内开发者和国外的差距,少数国内的开发者往往想的是如何尽可能减少自己的成本,而将用户那里可能出现的性能问题放在第二位,这也是我们国内鲜有一套完善的、能持续发展的医院信息系统的原因。现在大家都在说移植性问题,但有没有考虑另一个问题:其他数据库厂商还技术支持他们5年前的产品吗?如果你的系统功能设计都很好,有必要每隔几年就要做可能危险的升级吗?美国有很多很老的基于Cache&#039;或更老产品的系统,这些系统很多已经运行超过10年,InterSystems还在为他们提供技术支持。
<br>至于dreamaster:虽然总数上我们不及Oracle多,我们的绝大多数应用都是关键应用。
<br>
发表于 2005-6-18 14:24:01 | 显示全部楼层

关于cache数据库的一些思考!

呵呵,实际上我比较赞同一点,就是没有必要强求数据库和应用层的绝对分离,应当保持一种平衡。如果我是专用于医疗行业,或者专注某方面,那是可以有更紧密的耦合。
<br>对于移植性也是一样的,如果选定一个平台做应用,也不可能说移植就移植。
<br>
<br>但实际上如果单独以在美国的医疗应用市场有多广泛来作为cache的应用论据,我觉得也是有失偏颇。虽然在老美应用很广泛,但在当时,美国佬应用深入的时候,那是oracle这类通用数据库厂商的在医疗方面是可能存在缺陷,但现在再来相比,也许形势会有所不同,谁知道呢?比如现在oracle也推出HTB来做医疗行业的行业应用。三十年河东,三十年河西。
发表于 2005-6-18 23:03:40 | 显示全部楼层

关于cache数据库的一些思考!

其实,我对数据库的知识还很肤浅,学习中……
发表于 2005-6-19 14:46:25 | 显示全部楼层

关于cache数据库的一些思考!

<!--quote-ironstone+2005-06-18 06:24--><div class='quotetop'>引用ironstone &#064; 2005-06-18 06:24)</div><div class='quotemain'><!--quote1-->呵呵,实际上我比较赞同一点,就是没有必要强求数据库和应用层的绝对分离,应当保持一种平衡。如果我是专用于医疗行业,或者专注某方面,那是可以有更紧密的耦合。
<br>对于移植性也是一样的,如果选定一个平台做应用,也不可能说移植就移植。
<br>但实际上如果单独以在美国的医疗应用市场有多广泛来作为cache的应用论据,我觉得也是有失偏颇。虽然在老美应用很广泛,但在当时,美国佬应用深入的时候,那是oracle这类通用数据库厂商的在医疗方面是可能存在缺陷,但现在再来相比,也许形势会有所不同,谁知道呢?比如现在oracle也推出HTB来做医疗行业的行业应用。三十年河东,三十年河西。<!--quote2--></div><!--quote3-->
<br>
<br>1)还是应该建议您去看看M语言的起源,MUMPS语言,简称:M技术,全称:Massachusetts General Hospital Utility Multi-Programming System,麻省总医院多用途程序设计系统;算起来也是一种古老的语言了,与FORTRAN和COBOL属于同时代的语言。因为这门语言最主要是用于医疗数据库方面,所以其应用并不像SQL Server、Oracal等那么广泛,虽然在国外的医疗行业应用较多,但在国内尚不为人们所了解。
<br>具体请看:<a href="http://www.intersystems.cn/cache/technology/whitepapers/mumps.html" target="_blank">http://www.intersystems.cn/cache/techno...pers/mumps.html</a>
<br>Miforum上也有一篇:<a href="http://www.miforum.net/distillate/standard/mumps.htm" target="_blank">http://www.miforum.net/distillate/standard/mumps.htm</a>
<br>至于在医疗卫生行业问哪个数据库能获胜,就相当于问专家和全家谁能在这个专家的领域做地更好的问题
<br>2)在强调一点,Oracle的重点现在已经从数据库转到行业应用,如ERP,你自己也说"比如现在oracle也推出HTB来做医疗行业的行业应用。"Oracle这样的模式是和国内做行业应用的软件开发商形成一个竞争的关系.这恰恰是Cache&#039;不一样的地方.cache寻找的是合作伙伴模式,他和行业应用的软件开发商没有任何竞争,而只有合作共赢
<br>3) "三十年河东,三十年河西",适合于任何企业和任何行业.是一句豁稀泥的话
<br>4) "如果单独以在美国的医疗应用市场有多广泛来作为cache的应用论据,我觉得也是有失偏颇。"那么同样如果以oracle的市场份额来决定Oracle比其他数据库好,是不是也不对
<br>
<br>只是个人的想法.正因为相信Cache&#039;才不遗余力地去推.
<br>
发表于 2005-6-19 15:02:41 | 显示全部楼层

关于cache数据库的一些思考!

<!--quote-fancycn+2005-06-17 07:02--><div class='quotetop'>引用fancycn &#064; 2005-06-17 07:02)</div><div class='quotemain'><!--quote1-->前几天听了cache数据库的讲座,对它有了一个简单的了解,它的面向对象的特征也知道了一点点,不过感觉现在的关系数据库也可以用o/r mapping做到,而且相应的产品也很多,比如java的hibernate和.net下的nhibernate,还有ibatis那些data mapping的工具也可以实现类似的功能,而且无论用o/r mapping或者data mapping 都可以实现到与数据库无关性,而cache则做不到,必须与数据库紧密嵌入在一起,这也是它速度快的原因之一,由于很多业务逻辑也和数据库层的东西写在了一起,感觉导致了各层之间的耦合性增加,这不符合面向对象应用的特点!而且cahe开发的产品也就不能再移植到别的数据库上!而用java和.net平台开发的可以实现到与数据库无关的程度!
<br>&nbsp; &nbsp;  不过cache作为一个后关系数据库,自然也有它的可取之处,要不老美的医院怎么有很多在用呢!<!--quote2--></div><!--quote3-->
<br>
<br>你讲了很多你对 Cache的疑问,而最后一句话是"不过cache作为一个后关系数据库,自然也有它的可取之处,要不老美的医院怎么有很多在用呢!"
<br>
<br>那么我很想听听你对它的可取之处是如何认识的.
<br>
<br>否则自相矛盾:
<br>1)Cache能做的关系型数据库可以做
<br>2) 老米的系统采用了Cache数据库
<br>结论:老米的系统相当落后,米国医疗IT人员思维能力有问题
<br>
<br>
 楼主| 发表于 2005-6-19 21:20:14 | 显示全部楼层

关于cache数据库的一些思考!

Cache能做的关系型数据库可以做,而且更通用,入门也简单,只要会现在的主流开发平台中的一种就可以了。那为什么老米的很多医院还用cache呢,可能的确如intersystem公司所宣传的那样就是性能--用更少的资源做更多的事!这就是我的解释。
<br>我也同样再提出几个问题:1、我用cache有一个缺点,我用它开发的东西如果企业不大,它不愿意花钱买cache数据库怎么办,那我是做这个项目还是不做?如果我用其他的开发则不用担心这个,现在主流的开发平台都支持开源的免费的数据库!客户不想要收费的数据库我就用开源的免费的。也就是说我如果用cache开发的话,就锁死在这个数据库上了。2、我投入很多的精力去学这个平台到底值还是不值,而且cahce的相关的学习资源太少,而主流的开发平台如java和.net上的学习资源太丰富了,而且还有很多完整的例子、开源的项目!
<br>难道我们投入的那么多的精力去学习在cache上开发就是为了获得程序一些性能上的提升!<!--editpost--><br><br><br><div><font class='editinfo'>此帖由 fancycn 在 2005-06-19 13:21 进行编辑...</font></div><!--editpost1-->
发表于 2005-6-19 22:05:49 | 显示全部楼层

关于cache数据库的一些思考!

<!--quote-fancycn+2005-06-19 13:20--><div class='quotetop'>引用fancycn &#064; 2005-06-19 13:20)</div><div class='quotemain'><!--quote1-->Cache能做的关系型数据库可以做,而且更通用,入门也简单,只要会现在的主流开发平台中的一种就可以了。那为什么老米的很多医院还用cache呢,可能的确如intersystem公司所宣传的那样就是性能--用更少的资源做更多的事!这就是我的解释。
<br>我也同样再提出几个问题:1、我用cache有一个缺点,我用它开发的东西如果企业不大,它不愿意花钱买cache数据库怎么办,那我是做这个项目还是不做?如果我用其他的开发则不用担心这个,现在主流的开发平台都支持开源的免费的数据库!客户不想要收费的数据库我就用开源的免费的。也就是说我如果用cache开发的话,就锁死在这个数据库上了。2、我投入很多的精力去学这个平台到底值还是不值,而且cahce的相关的学习资源太少,而主流的开发平台如java和.net上的学习资源太丰富了,而且还有很多完整的例子、开源的项目!
<br>难道我们投入的那么多的精力去学习在cache上开发就是为了获得程序一些性能上的提升!<!--quote2--></div><!--quote3-->
<br>1) "我用它开发的东西如果企业不大,它不愿意花钱买cache数据库怎么办,那我是做这个项目还是不做?如果我用其他的开发则不用担心这个,现在主流的开发平台都支持开源的免费的数据库!"
<br>可以理解.市场上盗版的数据库也很多。但这不是一个软件企业应该长久生存和发展的基础。任何一个企业都是要赚钱的,免费的午餐会有多长?
<br>另外,cache自己带有应用服务器,用了cache,可以大大减低服务器的成本.
<br>2)学习Cache的机会,有啊! <a href="http://www.intersystems.cn/cache/education/education-training.html" target="_blank">http://www.intersystems.cn/cache/educat...n-training.html</a>
<br>真正的Oracle高手也是学英语的.cache有完整的英文档案.<a href="http://www.intersystems.com/cache/downloads/documentation.html" target="_blank">http://www.intersystems.com/cache/downl...umentation.html</a>
<br>HP中国是cache在中国的客户,他们开发物流系统.整个开发团队用的都是英文资料.
<br>3)"难道我们投入的那么多的精力去学习在cache上开发就是为了获得程序一些性能上的提升!"
<br>已经在Cache的介绍上说性能上的提升只是Cache的一个好处.这在cache的ppt上写的很清楚啊
<br>
<br>当然如果你的系统目前没有数据库瓶颈问题,就不会知道那些有数据库瓶颈问题的系统,Cache的未来就在于那些数据库瓶颈问题的公司和医院,因为只有他们才知道原来关系型数据库的缺点.按照辩证法的角度,这也是一个新技术推广的动力.
<br>
<br>所以如果你的系统目前没有数据库瓶颈问题,就不要用Cache,但并不代表cache没有好处
<br>
<br>
<br>
<br>
<br>
发表于 2005-6-19 23:32:28 | 显示全部楼层

关于cache数据库的一些思考!

<!--quote-dreamaster+2005-06-17 09:42--><div class='quotetop'>引用dreamaster &#064; 2005-06-17 09:42)</div><div class='quotemain'><!--quote1-->同感,如果我做新的大型产品技术选型,是不会Cache数据库的<!--quote2--></div><!--quote3-->
<br>
<br>但是全球最大的HIS,电子病历,CIS等用的都是Cache数据库.
<br>我觉得问题在于
<br>1)在很多中国HIS厂商,商务已经高于科技.技术的多少先进在高层决策已经没有多少分量
<br>2) 很多人对cache不懂或一知半解,以至于怀疑而不敢用
<br>
发表于 2005-6-20 10:37:55 | 显示全部楼层

关于cache数据库的一些思考!

大家讨论的很热闹啊,我也来凑凑热闹。我谈谈我对Caché的看法。
<br>
<br>1.从技术发展的趋势来说,关系数据库应该是已经发展到了暮年阶段,所谓的对象关系数据库(在关系表上实现对象)只不过是在延长它的寿命而已。况且采用对象关系数据库的性能很不理想。当然,关系数据库在某些领域还足以发挥它的作用,但是随着应用程序复杂度的增加,数据模型也变得越来越难以用关系结构来描述,这时候,新型的数据库系统的出现已经变得水到渠成。我接触过的一些IT从业人员,有相当多的人在抱怨OR转换太耗费时间和精力,导致项目可控度降低,而现成的OR转换的工具要么无法提供足够的面向对象的模型,要么效率太低。
<br>
<br>2.很多人强调应用的移植性,我认为这会导致项目的周期、成本的增加,从而会使项目失败的风险加大。因为随着适应性的增加,可能就需要更多的时间来进行开发、调试和测试,结果由于时间的增加,需求产生变化的可能性也在增加,随着需求的变化,开发似乎变成了不可完成的任务,于是项目陷入泥潭。如果我们选择好了平台,那么就在这个平台上把应用做好,客户需要的是你的应用,而不是某个具体的平台。本末倒置的事情是很多项目失败的原因。
<br>
<br>3.Caché适合复杂的应用,这里指的是数据模型方面的复杂度。
<br>
<br>4.Caché适合对性能要求高的应用,Caché的ECP技术可以方便地实现三层结构、分布式数据库,而且和编程无关,这是目前其它技术无法比拟的。
<br>
<br>5.Caché安全性很高,可以以非常低的成本为用户提供高可靠性的应用。
<br>
<br>6.Caché也有缺点,我们无法否认,这些缺点可能是,缺乏中文的资料、开发界面不够友好等等,但是我认为这些缺点是暂时的,情况一定会得到改观,况且这些缺点给开发人员带来的不便远远没有Caché带来的好处影响大。
<br>
<br>7.有人说很多项目由于造价的问题,只能采用免费的数据库。其实这个问题我想如果我们在这里讨论的是Oracle、SQL Server,这个问题也存在的。而且我不赞成在商业项目中大量使用免费的软件,这对一个正规的公司来说,弊绝对大于利。
<br>
<br>我个人是Caché坚决的拥护者,欢迎大家排砖,具体的技术问题还是问Intersystems的技术人员吧。
 楼主| 发表于 2005-6-20 13:27:18 | 显示全部楼层

关于cache数据库的一些思考!

to:quanta
<br>1.从技术发展的趋势来说,关系数据库应该是已经发展到了暮年阶段,所谓的对象关系数据库(在关系表上实现对象)只不过是在延长它的寿命而已。况且采用对象关系数据库的性能很不理想。当然,关系数据库在某些领域还足以发挥它的作用,但是随着应用程序复杂度的增加,数据模型也变得越来越难以用关系结构来描述,这时候,新型的数据库系统的出现已经变得水到渠成。我接触过的一些IT从业人员,有相当多的人在抱怨OR转换太耗费时间和精力,导致项目可控度降低,而现成的OR转换的工具要么无法提供足够的面向对象的模型,要么效率太低。
<br>我不知道你接触的人用的是哪些or转换工具,我觉得现在的or转换工具效率很高,没有感觉耗费太多的时间和精力啊。而且还有很多自动转换的工具,我们要做的很多都是ctrl+c和ctrl+v,而性能虽然有些损失,但由于大量使用了缓存,性能和效率也还可以,你看看java上的hibernate是多么的成功啊
<br>
 楼主| 发表于 2005-6-20 13:32:25 | 显示全部楼层

关于cache数据库的一些思考!

to:quanta
<br>2.很多人强调应用的移植性,我认为这会导致项目的周期、成本的增加,从而会使项目失败的风险加大。因为随着适应性的增加,可能就需要更多的时间来进行开发、调试和测试,结果由于时间的增加,需求产生变化的可能性也在增加,随着需求的变化,开发似乎变成了不可完成的任务,于是项目陷入泥潭。如果我们选择好了平台,那么就在这个平台上把应用做好,客户需要的是你的应用,而不是某个具体的平台。本末倒置的事情是很多项目失败的原因。
<br>这个问题我也没有多少感觉啊,现有的成功的o/r mapping的架构可以做到与数据库无关,并没有增加我们项目的周期和成本的增加啊!
<br>3.Caché适合复杂的应用,这里指的是数据模型方面的复杂度。
<br>难道我们的每个项目都是复杂的应用吗,而且作为开发人员,可能经常有一些不是很大的小项目做做
<br>5.Caché安全性很高,可以以非常低的成本为用户提供高可靠性的应用。其他的数据库的安全性可能做的比它还好!
发表于 2005-6-20 13:38:28 | 显示全部楼层

关于cache数据库的一些思考!

<!--quote-Cacheman+2005-06-19 23:32--><div class='quotetop'>引用Cacheman &#064; 2005-06-19 23:32)</div><div class='quotemain'><!--quote1-->但是全球最大的HIS,电子病历,CIS等用的都是Cache数据库.
<br>我觉得问题在于
<br>1)在很多中国HIS厂商,商务已经高于科技.技术的多少先进在高层决策已经没有多少分量
<br>2) 很多人对cache不懂或一知半解,以至于怀疑而不敢用<!--quote2--></div><!--quote3--><br>楼上说的没错,在技术上,Cache是有很多方面是先进的(并非所有方面),但应用风险太大(包括技术风险及市场风险)。
<br>
<br>我说在大型产品中也就是攸关生死的项目中不会选择它,但一些中小型项目还是可以尝试的。
<br>
<br>这个产品总让我想起sybase的EAServer系列
发表于 2005-6-20 13:50:26 | 显示全部楼层

关于cache数据库的一些思考!

<!--quote-dreamaster+2005-06-20 05:38--><div class='quotetop'>引用dreamaster &#064; 2005-06-20 05:38)</div><div class='quotemain'><!--quote1-->楼上说的没错,在技术上,Cache是有很多方面是先进的(并非所有方面),但应用风险太大(包括技术风险及市场风险)。
<br>我说在大型产品中也就是攸关生死的项目中不会选择它,但一些中小型项目还是可以尝试的。
<br>这个产品总让我想起sybase的EAServer系列<!--quote2--></div><!--quote3-->
<br>
<br>其实国外的应用正好相反,攸关生死的项目中选用Cache,而在一般的要求不高的系统使用其他数据库.
<br>您的思维我可以理解,因为刚刚接触他,对Cache的了解自然不如对Oracle,sql Server那么深,把握不大,所以才"一些中小型项目还是可以尝试的。"
<br>不过我坚信 HIS的地位会被电子病历所取代.电子病历将是医院确IT系统的核心.当然HIS会作为一个模块存在.而关系性数据库在开发电子病历是不如Cache.这个在国外被验证.目前在中国的合作伙伴也是如此.只不过,产品正在开发或刚刚推向市场.如东华,海泰,金士达,安博维,青大瑞康等.2006年将是全面开花的时候.
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

快速回复 返回顶部 返回列表