关系数据库的根本问题分析及数据库革命之走向

关系数据库长久以来在数据库市场占据了绝对的地位,而针对关系数据库将老去的评论也层出不穷。本文探讨了关系数据库最根本的问题,并讨论了数据库革命可能的走向。
关系数据库相信大家都不陌生,而有关关系数据库将落伍,数据库革命即将来临的预言,近日也传出不少了。一说起数据库,大多数情况下就等于在说关系型数据库(RDBMS),关系数据库都使用SQL查询语言作为访问数据库,有些简单的产品直接运行在桌面机上,但如果你在服务器上部署用于重要的业务计算的数据库,就必须要大型关系数据库,如果有钱的话可以购买成熟的Oracle,SQL Server,DB2等商业产品,如果没有预算或资金不足,可以使用开源的数据库,如MySQL和PostgreSQL。
关系数据库在多个表中存储数据,表与表之间使用外键进行关联。关系数据库一词源于在IBM工作的Edgar Codd在1970发表的一篇论文。基于这个数据库模型的产品很快就代替了许多层次型和其它技术种类的数据库。虽然它的性能还比不上替代品,但在数据布局,添加和访问方面却更加灵活。
得益于计算机处理速度越来越快(RDBMS也在许多方面得到了增强),后台进程的性能得到了显著提升,但关系数据库的缺点暴露得越来越多,对象数据库正欲取代关系数据库,但在相当长的一段内它们将会并存。随着真正大规模分布式计算基础设施的完善,即使RDBMS不会被新兴技术取代,但很多新兴技术都会作为其一个补充。
关系数据库的根本问题
RDBMS最根本的问题是它的处理架构和存储,所有事务都是绝对可靠的(ACID,原子性,一致性,隔离和耐用性,它是一套用来描述性能要求的术语),这对于金融系统是绝好的解决方案,提款时要立即返回银行存款余额,系统要防止同一时间偶然发生从同一余额提款多次。假设数据要保存很长一段时间,RDBMS及其关联的基础架构也要支持才行,在传统数据库角色背景下它的意义非凡,不仅是商务上想保存几年甚至更长时间,按照法律要求也要保存多年。
但我们在大型分布式系统中看到的是越来越多地使用替代方法,这些方法不要求严格的一致性或产生大量的不需要永久保存的中间结果,它们也可以使用复制提高性能和可用性。
数据库革命:SimpleDB?
亚马逊CTO在一篇文章中谈到,先容忍不一致以提高读写性能和高并发处理行为,然后采取一种方法实现最终一致性。
亚马逊的SimpleDB就实现了这种模式,它保持每个域的多个副本,当数据写入或更新(使用PutAttributes,DeleteAttributes,CreateDomain或DeleteDomain)时如果返回成功,则所有数据的副本都会被更新,但要将更新传播到所有存储位置是需要时间的,数据最终将会一致,但立即的读取操作可能看不到最新的修改。
数据库革命:Terracotta,Memcached
我们看到许多产品本质上是通过增加RDBMS的数量来减少它们需要存储的数据的容量,Terracotta是一款商业产品,它可以为Java应用提供分布式缓存,Terracotta说它们一般可以卸下40-60%的事务,性能自然提高了很多。
Memcached是一款类似的开源分布式内存缓存系统,它将数据(连同相关的结构)分布到多个系统,以减少访问数据存储,它广泛用于大型网站,如Twitter,YouTube和Wikimedia。
但这些技术不能象RDBMS取代传统层次数据库那样取代RDBMS,相反,它们会权衡那些在数据库中不是非必需的特性,如完全一致性。
目前许多应用比传统业务应用程序更多地使用异步和读密集技术,面需要跨多个系统实现高性能。要为组织实施这种应用,配对的RDBMS和各种各样的分布式数据存储,只有可伸缩的方法才是唯一出路,同时需要考虑一个价格平衡点才使业务发展具有重要意义。

相关推荐

  • 泰格商霸 连不上数据库 问题解决 数据库安装连接问题 连不上数据库,数据连接不上问题总结家里开了个小超市不大,也有200来平米吧,不是很赚钱,不过生意还算不错,因为价钱的问题经常出现尴尬,又兼于生意太忙,所以想弄套收银设备,当然软件是少不了的,这不这几天天找软件,当然是PJ的喽,谁让咱穷呢,逛
  • ASP数据库连接设置问题的解决方法---转 1 设置问题  制作动态网页时,通常,需要与数据库建立连接。是:  第一步,在“ODBC数据源管理器”对话框“系统DSN(DataSourceName)”选项卡的“系统数据源”列表框中,添加新的“系统数据源(DSN)”。  第二步,为站点建
  • MSDE2000数据库安装常见问题及解决办法? 1、安装用友MSDE2000数据库时卡在几秒那不动了?http://www.cwrjxz.com/zixun/9.html2、安装用友MSDE2000数据库时提示“指定的实例名称无效”?http://www.cwrjxz.com/zixun
  • 新浪服务器与数据库连接后的问题 上篇已经写到了ssh项目中Hibernate与新浪云自身的数据的连接方法。但是在使用的时候,就发现的若干问题,在这里分享一下:首先,就是,对于自己写的项目在本地运行,一点问题都没有,但是部署到新浪的服务器上,却是各种bug。实在让人抓狂。e
  • 解决页面数据(和修改数据)传到数据库中文乱码问题 **修改数据时(我就是这个错!!找了好久(▼-▼)!!)​检查页面中的提交方式是否为get,如果是get改为post!get和post区别:​1)get是从服务器上获取数据,post是向服务器
  • 如何解决php写入mysql数据库中文乱码问题 一、PHP获取数据乱码问题1、mysql_query("SETNAMES'utf8'")2、mysql_query("SETCHARACTER_SET_CLIENT=utf8")3、mysql_query("SETCHARACTER_SET
  • mysql数据库中文乱码问题 mysql>showvariableslike"%char%";查看数据库是什么字符集然后mysql>setnameslatin1;
  • jfinal 和Druid 采用postgresql数据库,解决schema问题 jdbc的url中带currentSchema,网上有篇博文是错误的。jdbc:postgresql://127.0.0.1:5432/database?currentSchema=jfinal
  • 在安装配置oracle数据库时遇到的问题 1、System.Data.OracleClient需要Oracle客户端软件version8.1.7或更高版本。解决:http://www.cnblogs.com/TerryFeng/archive/2009/02/23/1396625.
  • 数据库并发问题[Z] 一、问题提出设某银行存款帐户数据如下表:现在要求编写一程序,完成两项功能:存款与取款。每次操作完成后向明细表中插入一行记录并更新帐户余额。 二、问题似乎很简单解决办法:①读取最后一行记录的帐户余额数据②根据存、取款金额计算出新的帐户余额③将
  • ASP数据库连接的问题 数据写不进数据库中 这几天学校有任务,所以昨天才开始好好的学习。数据库连接的时候总是不成功,数据写不进库中,上网查了很多资料,自己也做了无数实验,总结一下:1、是数据库文件的权限问题:必须有写的权限网上好多人都写好了方法,我就不详细说了。关键就是将查看文件夹选
  • sql2000 数据库挂 起问题解决方法 SQLSERVER2000数据库挂起和服务管理器不能启动在工作过程当中,经常接触到SQLSERVER2000数据库,当然也会碰到很多的问题了,今天把部分的问题汇总一下,就算是总结吧!以下就是问题和解决的方案,和朋友一起分享!1.SQLSer

你的评论

就没有什么想说的吗?

最新博客

关于我们 移动版

©2017传客网    琼ICP备15003173号-2    

本站部分文章来源于互联网,版权归属于原作者。
本站所有转载文章言论不代表本站观点,如是侵犯了原作者的权利请发邮件联系站长(weishubao@126.com),我们收到后立即删除。
站内所有资源仅供学习与参考,请勿用于商业用途,否则产生的一切后果将由您自己承担!

X