QCon 演讲火热征集中,快来分享技术实践与洞见! 了解详情
写点什么

Martin Fowler 看到了数据存储方式的复苏

  • 2008-11-30
  • 本文字数:1221 字

    阅读完需:约 4 分钟

著名的软件思想领导者 Martin Fowler 在最近的一篇博文中提到了上周的 QCon,他说应用架构中的数据库思想已经有复苏的迹象了。这个世界对每个应用都在使用着 RDBMS 数据库,但是现在我们还可以考虑使用 RISC RDBMS 或者分布式的面向文档的数据库。Tim Bray 在 QCon 上谈到了变化的存储这个主题,同时也提到了它是如何影响着应用架构并讨论了分布式的面向文档的数据库

随着 ODBMS 数据库的失败,Martin 解释了 RDBMS 为何能够成功:“相对于其在数据管理中的作用,RDBMS 的优势在于其在集成上的作用”。他继续说到:

对当今的很多组织来说,主要的集成模式是共享数据库集成——你可以使用一个通用数据库来集成多个应用。当你使用这些集成数据库时,重要的一点是应用可以轻松获得这些共享数据——因此 SQL 在其中扮演着重要的角色。SQL 这种几乎是标准的查询语言在数据库中处于中心地位。

Internet 通过新的集成方案正在改变着这一切:

数据库空间的核心已经从这两种方式慢慢转向了集成方式——尤其是 Web Service 的出现更加促成了这一转变。伴随着各种宣传的出现,应用之间的通信越来越多的通过 HTTP 上的文本(几乎都是 XML)文档来实现。Web(既包括 Internet,也包括 Intranet)已经让这种集成模式比 SQL 更加流行。这是件好事,我向来不喜欢将多个应用通过一个通用数据库紧紧耦合在一起的方式——这样做的话你无法获得更大的自由。

根据 Martin 所述,HTTP 将影响着数据库的使用方式:

如果你将集成方式从 SQL 转向 HTTP,这意味着你可以将数据库从集成数据库转为应用数据库。这种变化的意义是巨大的。首先,它支持更加简单的对象关系映射方式——例如 Ruby on Rails 所采取的方式。然而,这将打破牢固的关系数据模型。如果通过 HTTP 集成,那么应用存储其自身数据的方式就变得无关紧要了,这意味着应用可以选择自己所需的一种数据模型。

但 Martin 并不认为 RDBMS 很快就会消亡,他指出了 Tim Bray 所提到的多种可能的选择:

  • Drizzle 是一种关系数据库,但它却缺少现代关系数据库产品的很多特性。我将它看作是一种 RISC RDBMS——只支持关系特征集中的一些核心内容。
  • Couch DB 是对分布式的键——值对模型的一种改进。尽管它只是一种简单的数据模型(无外乎就是一个 Hashmap 而已),但这种方式已经广泛应用在一些高性能站点上了。
  • Gemstone 是一种对象数据库,我发现 Gemstone 与 Smalltalk 的组合为我们提供了异常强大的开发环境(比大多数后来者还要好)。Gemstone 虽然还很不起眼,但它可能会获得更多的关注。
  • Maglev 项目将其所采取的方式(本质上是数据库和虚拟机的融合)带到了 Ruby 世界中。

最后 Martin 总结到 RDBMS 还不会消亡,它依然是“很多情况下的正确选择”。他在博客上表示无论有多少种选择,“应用开发者都应该思考到底哪种选择才是最符合其需要的。随着非关系项目的不断流行和成熟,越来越多的人会选择其他的方式”。你是怎么看的呢?

查看英文原文: Martin Fowler Sees a Thaw in Frozen Thinking about Data Storage

2008-11-30 00:48948
用户头像

发布了 88 篇内容, 共 264.1 次阅读, 收获喜欢 8 次。

关注

评论

发布
暂无评论
发现更多内容

JSON.parse无双引号如何实现转换

吴脑的键客

JavaScript

看来,MySQL next-key lock 的 bug 并没有被修复!

程序员小航

MySQL 数据库锁

大数据分析与运营(一)

soho

我不信有Java程序员没犯过这10个SQL错误

北游学Java

Java sql

微服务架构实施原理详解

xcbeyond

微服务 6月日更

Go 并发基础

Damon

Go 语言 6月日更

大数据分析与运营(二)

soho

【Flutter 专题】111 图解关乎 SQL 数据库的二三事 (二) 之【小封装】

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 6月日更

商业模式创新

soho

架构实战营 模块五:课后作业

👈

架构实战营

3种面向“对象”编程,你是哪一种?

凌晞

架构 研发管理

网络攻防学习笔记 Day37

穿过生命散发芬芳

网络攻防 6月日更

记一次 go-micro 服务异常退出问题的根因分析

ccx

如果父母依旧辛苦,那我们的成长又有什么意义?

牧小农

故事 父母

身为程序员 你真的会使用github搜索吗?

madison

GitHub GitHub Pages 高效搜索 搜索技巧

使用 Docker 安装并连接 MySQL

程序员小航

MySQL Docker

架构实战营 - 模块 5- 作业

请弄脏我的身体

架构实战营

架构实战营 - 模块 05 作业

架构实战营

设计微博系统中”微博评论“的高性能高可用计算架构

Vincent

架构训练营

揭秘苹果应用审核团队(史上最全版)

37手游iOS技术运营团队

ios apple Apple Developer iOS Developer 苹果退款

Crontab中文表达式解析

Java crontab

可落地的积极心态

蛋先生DX

心态 6月日更

架构实战营 模块五:学习总结

👈

架构实战营

MySQL普通索引的加锁

程序员小航

MySQL 数据库锁

架构训练营模块5作业

Neil43

架构训练营

Kubernetes手记(3)- 核心组件/附件

雪雷

k8s 6月日更

web ssh解决方案——WGCLOUD

王逅逅

zabbix linux运维 运维监控

模块五作业 - ”微博评论“的高性能高可用计算架构

张大彪

架构训练营作业5

梦寐凯旋

架构训练营

MySQL next-key lock 加锁范围是什么?

程序员小航

MySQL 索引 数据库锁 主键

架构实战营 模块五:课后作业

Ahu

架构实战营

Martin Fowler看到了数据存储方式的复苏_Java_Abel Avram_InfoQ精选文章