じめに

はじめに

本書では、筆者が業務系、Web系のシステム開発を通じて見てきた「RDBアンチパターン」について話していきます。
⁠データベースの寿命はアプリケーションよりも長い」が筆者の持論です。なぜならば、データベースはサービス開発当初から存在することが一般的で、アプリケーションコードのようにリプレースされることは稀だからです。また複数のサービスから参照されることも多々あり、その場合、最初に使われていたサービスが終了しても、データベースはほかのサービスとともに運用され続けます。
このように、データベースは長く付き合っていかねばならない相手であり、開発者はその特性ゆえの問題にぶつかることがあります。そういった、開発の現場で実際に起こっている、発生しやすいリレーショナルデータベース(RDB)全般の問題をアンチパターンとして紹介していきます。
RDBは広く使われている反面、次のような注意事項があります。

  • データベースの停止はサービスの停止を伴うことが多いため、メンテナンスしにくい
  • データは常に増え続け、リファクタリングしにくい
  • サービスの中核を担うため、変更による影響が大きい

このように、RDBのアンチパターンはアプリケーションのアンチパターン以上にダメージが大きいのです。
そして厄介なことに、RDBの問題はある日を境に顕在化するということが多いです。当初は良かれと思った設計が、あとになって問題を引き起こすこともままあります。しかし、誰かが経験したその問題をパターン化して共有しておくことで、初めのうちからその問題を避けられます。そういった点から、RDBアンチパターンを紹介することはたいへん有意義なのです。
本書ではRDBのアンチパターンを通して問題を提起し、多くの方に周知していただくことで問題を未然に防ぎ、現在の問題と戦っていくための1つの答えを提供できればと思います。

曽根壮大(そねたけとも)

Twitter:@soudai1025
株式会社オミカレ副社長兼CTO。数々の業務システム,Webサービスなどの開発・運用を担当し,2017年に株式会社はてなでサービス監視サービス「Mackerel」のCRE(Customer Reliability Engineer)を経て現職。コミュニティ活動としては,Microsoft MVPをはじめ,日本PostgreSQLユーザ会の理事兼勉強会分科会座長として勉強会の開催を担当し,各地で登壇もしている。そのほか,岡山Python勉強会を主催し,オープンラボ備後にも所属。「builderscon 2017」「YAPC::Kansai 2017」などのイベントでベストスピーカーを受賞するなど,わかりやすく実践的な内容のトークに定評がある。『Software Design』誌ではデータベースに関する連載「RDBアンチパターン」などを執筆。