数据库重构

演化数据库设计

作者:Scott J Ambler 和 Pramod J. Sadalage

2006

十年前,“重构”这个词只有少数人知道,主要是在 Smalltalk 社区。看到越来越多的人学习如何使用重构以纪律化和有效的方式修改工作代码,真是太好了。因此,现在许多人将代码重构视为软件开发中不可或缺的一部分。

我生活在企业应用程序的世界里,企业应用程序开发的一个重要部分是与数据库打交道。在我的第一本关于重构的书中,我将数据库选为重构中的一个主要问题领域,因为重构数据库会带来一组新的问题。这些问题因企业软件世界中数据库专业人员和软件开发人员之间相互不理解和蔑视的隔阂而加剧。

我喜欢 Scott 和 Pramod 的一点是,他们以不同的方式都努力跨越了这种隔阂。Scott 关于数据库的著作一直试图弥合差距,他对对象关系映射的工作对我自己的企业应用程序架构著作产生了很大影响。Pramod 可能不太出名,但他的影响对我来说同样大。当他开始与我在 Thoughtworks 的一个项目合作时,我们被告知数据库的重构是不可能的。Pramod 拒绝了这种说法,他将一些粗略的想法变成了一个纪律化的程序,使数据库模式始终处于受控的运动中。这使应用程序开发人员能够在代码中也使用演化设计。Pramod 后来将这些技术带给了我们的许多客户,将其传播到我们 Thoughtworks 的同事中,至少对我们来说,数据库永远不再是持续设计道路上的障碍。

本书汇集了两个生活在应用程序和数据之间无人区的人的经验教训,并提供了一份关于如何将重构技术应用于数据库的指南。如果您熟悉重构,您会注意到主要的变化是,您不仅要更改程序和数据结构,还要管理数据的持续迁移。本书告诉您如何做到这一点,并以这两位积累的项目经验(和伤疤)为支撑。

尽管我对这本书的出现感到高兴,但我希望这只是一个开始。我的重构书出版后,我很高兴地发现出现了复杂的工具,可以自动执行许多重构任务。我希望数据库领域也能发生同样的事情,我们开始看到供应商提供工具,使每个人都能更轻松地持续迁移模式和数据。在此之前,本书将帮助您构建自己的流程和工具来提供帮助;之后,本书将作为成功使用此类工具的基础,具有持久价值。

进一步阅读

数据库重构网站

本书的网站,包含重构的摘要。

数据管理指南

本网站上关于数据库和数据管理的更多资料