数据库风格
2004年5月24日
当我谈论数据库及其与应用程序的关系时,我发现区分两种数据库风格很有用:应用程序数据库 和 集成数据库。两者之间的区别在于数据库是否在一个单独的 应用程序边界 内被控制和封装。
我发现,在关于如何管理数据库的讨论中,人们通常假设正在使用其中一种风格 - 如果不同的参与者假设不同的风格,那么讨论很快就会变得非常混乱,因为两种风格暗示了关于数据库管理的截然不同的假设。当然,在数据库和数据管理社区,人们倾向于假设数据库将是 集成数据库。这是数据库社区多年来的工作假设。然而,这种假设越来越受到质疑。集成数据库最终会产生具有较大表面积和有限能力将接口与实现分离的接口。应用程序和数据库之间产生的链接最终会变得脆弱,因此难以更改。
面向服务的架构的兴起似乎对不同的人意味着不同的东西,但一个合理的线索是自主应用程序的兴起,它们拥有自己的 应用程序数据库,并通过服务接口进行通信 - 有效地用 共享数据库 集成替换 rpc 或 消息 基于集成。我非常赞同这种观点,特别偏爱通过消息进行集成 - 这就是我鼓励开发 EIP 的原因。在这个世界观中,集成数据库不再是默认假设。
因此,我的主要观点是:注意两种数据库风格之间的区别,并在讨论数据库管理问题时将其考虑在内。