这些天云仍然蠢蠢欲动,所以我不会很快这么想。
这是一篇很好的文章,可以回答你的一些问题。它具有RDBMS系统与通常用于云存储基础架构的系统之间的良好比较:
http://www.readwriteweb.com/enterprise/2009/02/is-the-relational-database-doomed.php
关系数据库模型在关系代数中具有坚实的数学基础。这使得易于推理,扩展和正确使用(理论上)。即使数据库访问模式因这些新API和使用而发生显着变化,由于这个原因,关系数据库很可能会形成底层实现。
我不认为云计算会杀死RDBMS。还有别的东西可能。
首先,给定应用程序使用什么类型的存储引擎不会(或不应该)依赖于它运行的位置(云或特定服务器),而是取决于它如何存储数据。
第二, 据我所知 人们认为RDBMS出路的唯一原因是它们不像非关系型DBMS(如面向文档的DBMS,如CouchDB)那样可以更容易地扩展到云中。但是,没有理由认为RDBMS将来不会变得更加适合云。作为一个早期的例子,看看 毛毛雨 :
Drizzle项目正在构建针对云和网络应用程序优化的数据库。它被设计用于现代多CPU /核心架构的大规模并发。
所以不,我不认为云计算会杀死RDBMS。他们只会被迫适应。然而,可能会杀死它们的是现有替代方案或新方案如何变得像RDBMS一样强大且易于使用。我的意思是一个解决方案,它具有完全可靠的软件(不允许测试),并且程序员很容易切换到。他们向了解RDBMS的人颁发学位。由于所有的辅助软件(例如像ActiveRecord,SQLAlchemy这样的ORM,以及我假设的.NET民间使用的东西),即使对于不知道第一个普通形式是什么的人来说,使用RDBMS也变得容易了。所以我认为,除非人们有方便地使用(例如)DODBMS,否则RDBMS将继续占主导地位。我也不是说这一定是坏事。同样,您使用的DBMS应该取决于您的数据,而不是人们所说的酷和更好。
不,RDBMS因其功能而总是占有一席之地。不仅仅是他们自己,也是其他系统(如OODBMS)的骨干。
关系数据库对于需要查询更多结构化数据的应用程序没有任何问题(例如,“有多少人购买了产品XYZ,在此日期,支付了超过100美元,但不到150美元?”)。随着这些系统的扩展和发展,需要解决潜在的重要架构问题。一旦你的数据库超出你开始使用的一台机器和/或流量/请求开始超载可用资源,那么(如果你仍想保留你的关系数据库)你必须开始添加层。值得庆幸的是,在过去几年中,还有更多选项可供使用......包括缓存,映射和缩减以及其他功能 - 但这些附加层确实增加了复杂性和维护开销。从某种意义上说,我会考虑这些设计的“创可贴”,它们很可能解决了今天关系数据库的可扩展性和分布问题,但是长期存在?谁知道。我今天也看到了这些流行的层 - 所有这些层基本上都试图模拟对象DB中已有的功能,为开发人员提供了一个“虚拟对象数据库”层,他们可以使用它们的对象语言来更快,更高效地完成任务,并获得过去的增长和业绩障碍。所以我想我的总体看法是,关系数据库成为了事实上的数据库,可能主要是因为查询数据库的方式(相对)容易,并使用它将结果返回给一个客户端/应用程序。随着数量的增长,以及今天的应用程序复杂性呈指数级增长,我认为更多的开发人员将决定咬紧牙关,学习对象数据库的语法(这实际上就像关系数据库一样标准化),并且只是跳过所有中间件以及仅模拟可在OODBMS中本机获取的功能的图层。我已经看到OODB只是安装在任意数量的服务器上,并根据需要自动分发数据,并为开发人员提供任何规模的数据库联合的单一视图......在我看来,随着系统变得更加分散,最好的解决方案,获得可以具有本机分布式体系结构的数据库。无论如何,只是一个想法。
我见过的云计算平台都有关系数据库产品。因此,我没有看到云计算真正改变了参考所使用的数据库类型的图片。
但是,最终会取代我们习以为常的数据库。问题是,这是否是RDB的更高级别版本或不同的东西。这个问题的另一个方面是目前的RDB数量需要多长时间才能淡出? (我也没有答案。)
关系数据库仍然与本地存储(例如特定于应用程序的存储)和服务器存储相关。