はじめに
本書では、筆者が業務系、Web系のシステム開発を通じて見てきた「RDBアンチパターン」について話していきます。
「データベースの寿命はアプリケーションよりも長い」が筆者の持論です。なぜならば、データベースはサービス開発当初から存在することが一般的で、アプリケーションコードのようにリプレースされることは稀だからです。また複数のサービスから参照されることも多々あり、その場合、最初に使われていたサービスが終了しても、データベースはほかのサービスとともに運用され続けます。
このように、データベースは長く付き合っていかねばならない相手であり、開発者はその特性ゆえの問題にぶつかることがあります。そういった、開発の現場で実際に起こっている、発生しやすいリレーショナルデータベース(RDB)全般の問題をアンチパターンとして紹介していきます。
RDBは広く使われている反面、次のような注意事項があります。
- データベースの停止はサービスの停止を伴うことが多いため、メンテナンスしにくい
- データは常に増え続け、リファクタリングしにくい
- サービスの中核を担うため、変更による影響が大きい
このように、RDBのアンチパターンはアプリケーションのアンチパターン以上にダメージが大きいのです。
そして厄介なことに、RDBの問題はある日を境に顕在化するということが多いです。当初は良かれと思った設計が、あとになって問題を引き起こすこともままあります。しかし、誰かが経験したその問題をパターン化して共有しておくことで、初めのうちからその問題を避けられます。そういった点から、RDBアンチパターンを紹介することはたいへん有意義なのです。
本書ではRDBのアンチパターンを通して問題を提起し、多くの方に周知していただくことで問題を未然に防ぎ、現在の問題と戦っていくための1つの答えを提供できればと思います。