NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

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

公众号推荐:

跳进 AI 的奇妙世界,一起探索未来工作的新风貌!想要深入了解 AI 如何成为产业创新的新引擎?好奇哪些城市正成为 AI 人才的新磁场?《中国生成式 AI 开发者洞察 2024》由 InfoQ 研究中心精心打造,为你深度解锁生成式 AI 领域的最新开发者动态。无论你是资深研发者,还是对生成式 AI 充满好奇的新手,这份报告都是你不可错过的知识宝典。欢迎大家扫码关注「AI前线」公众号,回复「开发者洞察」领取。

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

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

关注

评论

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

论文免费开源:NB-IoT智慧路灯监控系统

不脱发的程序猿

28天写作 论文 3月日更 NB-IoT智慧路灯 大学生毕业

LeetCode题解:213. 打家劫舍 II,动态规划(不缓存偷盗状态),JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

冲击大厂!阿里P9纯手打Java面试小抄(21版)在GitHub上已获80万star

Java 程序员 面试

区块链电子发票平台,区块链电子发票优势

13530558032

快点来学吧!Android性能优化面试题集锦,深度解析,值得收藏

欢喜学安卓

android 程序员 面试 移动开发

华为云应用服务网格最佳实践之从Spring Cloud 到 Istio

华为云开发者联盟

微服务 Spring Cloud istio 华为云 服务网格

一个合格的CloudNative应用:程序当开源软件编写,应用配置外置

华为云开发者联盟

云原生 华为云 Cloud Native CCE CSE

【LeetCode】设计停车系统Java题解

Albert

算法 LeetCode 28天写作 3月日更

GO训练营第10周——日志&指标&链路追踪

Glowry

uni-app跨端开发H5、小程序、IOS、Android(三):理解uni-app框架MVVM思想

黑马腾云

微信小程序 uni-app android iOS Developer 3月日更

在线数据迁移,数字化时代的必修课 —— 京东云数据迁移实践

京东科技开发者

数据库 数据迁移

跟我学ModelArts丨探索ModelArts平台个性化联邦学习API

华为云开发者联盟

AI 联邦学习 API 华为云 modelarts

Java 和 Python 关于 % 的那些坑

与你一起学算法

Java Python

源中瑞智慧社区解决方案,社区服务平台

13530558032

如何批量下载YouTube视频到本地

科技猫

软件 音视频 经验分享 资源分享 工具分享

EGG Network公链技术创新,EFTalk打造高效全能公链

币圈那点事

区块链

收藏!Linux常用命令合集

roseduan

Linux

2B营销路径: 9大步骤自我拆解

boshi

营销数字化 七日更

2021最新总结网易/腾讯/CVTE/字节面经分享(附答案解析)

比伯

Java 编程 架构 面试 程序人生

【前端面试题】关于一些js的一些面试题(金融行业),我和面试官扯了三个小时

孙叫兽

JavaScript 大前端 金融 笔试题

Python if __name__ == ‘main’ 的作用介绍

HoneyMoose

Python 打印回车换行

HoneyMoose

Python 生成 QR 二维码

HoneyMoose

一文搞懂三级管和场效应管驱动电路设计及使用

不脱发的程序猿

28天写作 电路设计 三极管 3月日更 场效应管

使用“零信任”,不惧“内部威胁”!

龙归科技

管理 数据完整性 零信任 内部威胁

智慧党建信息管理平台系统建设

13530558032

安卓嵌入式底层开发!整理出这份8万字Android性能优化实战解析,已开源

欢喜学安卓

android 程序员 面试 移动开发

MySQL的锁

一个大红包

3月日更

干货 | 万字详解整个数据仓库设计体系

五分钟学大数据

大数据 数据仓库 28天写作 3月日更

「面试高频」秒杀架构的设计套路,你值得拥有

我爱娃哈哈😍

架构设计 架构设计实战 秒杀架构

Java面试必看!阿里(嵩山版)分布式核心原理笔记来了

Java架构追梦

Java 阿里巴巴 架构 面试 架构分布式

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