写点什么

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:48939
用户头像

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

关注

评论

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

Java包装类(Integer 详解 )

若尘

java编程 6月日更

阿里云视频云 Retina 多媒体 AI 体验馆开张啦!

阿里云CloudImagine

阿里云 短视频 视频处理 媒体处理 视频制作

校友会小程序开发笔记二:功能需求设计

CC同学

小程序云开发 校友录小程序 校友会小程序

连续七年,我们持续领跑

一分钟开发一个表单

蛋先生DX

vue.js 表单 动态表单 6月日更

快来,这里有23种设计模式的Go语言实现

华为云开发者联盟

线程 设计模式 单例模式 Go 语言

【LeetCode】石子游戏Java题解

Albert

算法 LeetCode 6月日更

618 技术特辑(二)几百万人同时下单的秒杀,为什么越来越容易抢到了

华为云开发者联盟

数据库 服务器 流量 618 弹性负载均衡

针对 MySQL IO 特点进行的存储优化揭秘

焱融科技

MySQL 技术 分布式 高性能 文件存储

并发王者课-铂金1:探本溯源-为何说Lock接口是Java中锁的基础

MetaThoughts

Java 多线程 并发 并发王者

项目经理如何有效管理需求变更?

万事ONES

需求管理 ONES 项目经理

译文 | AI产品经理:如何打造一款SaaS+AI的优质产品

LigaAI

产品经理 研发管理

MySQL中的pid与socket是什么?

Simon

MySQL

故事|订单系统中的补偿事务

悟空聊架构

故事 事务 6月日更 订单系统 补偿事务

缓存的世界 Redis(二)-持久化

卢卡多多

redis redis持久化 配置文件持久化 6月日更

618 技术特辑(一)不知不觉超预算3倍,你为何买买买停不下来?

华为云开发者联盟

电商 图数据库 知识图谱 618 图引擎服务

拍乐云受邀2021亚太CDN峰会,技术创新赋能行业新价值

拍乐云Pano

RTC

教你两招,解决数据膨胀

华为云开发者联盟

数据 GaussDB(DWS) VACUUM 数据膨胀 FSM

Java8 的时间库(1):介绍 Java8 中的时间类及常用 API

看山

Java 6月日更

密码学系列之:feistel cipher

程序那些事

加密解密 密码学 程序那些事

Python——字典的使用

在即

6月日更

JavaScript 学习(三)

空城机

JavaScript 大前端 6月日更

软件工程,其实没有任何工程而言

实力程序员

react源码解析13.hooks源码

全栈潇晨

React

校友会小程序开发笔记三:数据库设计

CC同学

小程序云开发 校友录小程序 校友会小程序

【Flutter 专题】103 初识 Flutter Mixin

阿策小和尚

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

用EasyRecovery“监控硬盘”功能检测硬盘问题的方法

淋雨

数据恢复 EasyRecovery 文件恢复

PO 就是Scrum中的产品经理?别再搞不清啦

万事ONES

项目管理 Scrum 敏捷开发 PO ONES

JAVA笔记(三)--变量及运算符

加百利

Java 程序员 后端 6月日更

6月26日,HarmonyOS开发者日将于杭州举办

科技汇

校友会小程序开发笔记一:背景与技术方案的选型

CC同学

小程序云开发 校友录小程序 校友会小程序

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