データベースのリファクタリング

進化的なデータベース設計

スコット・J・アンブラー、プラモード・J・サダラージ著

2006

10年前、「リファクタリング」という言葉は、主にSmalltalkコミュニティのごく一部の人々しか知らない言葉でした。規律正しく効果的な方法で動作中のコードを変更するために、より多くの人々がリファクタリングの使い方を学ぶのを見るのは素晴らしいことでした。その結果、多くの人が今ではコードのリファクタリングをソフトウェア開発に不可欠な一部と見なしています。

私はエンタープライズアプリケーションの世界に住んでおり、エンタープライズアプリケーション開発の大部分はデータベースとの連携です。リファクタリングに関する私の最初の本では、データベースをリファクタリングすると新たな問題が生じるため、リファクタリングにおける大きな問題領域としてデータベースを選びました。これらの問題は、エンタープライズソフトウェアの世界で発生した、データベースの専門家とソフトウェア開発者が相互不理解と軽蔑の壁で隔てられているという悲しい分裂によってさらに悪化しています。

私がスコットとプラモードを好きな理由の一つは、彼らが異なる方法で、この分裂を乗り越えようと努力してきたことです。データベースに関するスコットの著作は、一貫してそのギャップを埋める試みであり、オブジェクト-リレーショナルマッピングに関する彼の業績は、エンタープライズアプリケーションアーキテクチャに関する私の著作に大きな影響を与えています。プラモードはあまり知られていないかもしれませんが、私への影響は同じくらい大きいです。彼がThoughtworksで私と一緒にプロジェクトに取り組み始めたとき、私たちはデータベースのリファクタリングは不可能だと言われました。プラモードはその概念を拒否し、いくつかの大雑把なアイデアを取り上げ、データベーススキーマを継続的かつ制御された動きに保つ規律あるプログラムに変えました。これにより、アプリケーション開発者はコードでも進化的な設計を使用できるようになりました。プラモードはその後、これらの技術を多くのクライアントに提供し、Thoughtworksの同僚に広め、少なくとも私たちにとっては、データベースを継続的な設計への障害のリストから永久に排除しました。

この本は、アプリケーションとデータの間の中間地帯に住み、データベースにリファクタリング技術を適用する方法に関するガイドを提示する二人の教訓をまとめたものです。リファクタリングに精通していれば、プログラムとデータ構造を変更する必要があるだけでなく、データ自体の継続的な移行を管理する必要があることが大きな変更点であることがわかるでしょう。この本は、それらの二人が蓄積してきたプロジェクト経験(と傷跡)に裏打ちされて、その方法を説明します。

この本の登場を大変嬉しく思っていますが、これが第一歩に過ぎないことも願っています。私のリファクタリング本が出版された後、多くのリファクタリングタスクを自動化する高度なツールが登場したことに非常に喜んでいます。データベースでも同じことが起こり、ベンダーがスキーマとデータの継続的な移行を誰にとっても簡単にするツールを提供し始めることを願っています。それが起こる前に、この本はあなた自身のプロセスとツールを構築するのに役立ちます。その後も、この本は、そのようなツールを正常に使用するための基礎として、永続的な価値を持つでしょう。

参考資料

データベースリファクタリングウェブサイト

リファクタリングの概要をまとめた書籍のウェブサイト。

データ管理ガイド

データベースとデータ管理に関するこのサイトのその他の資料