DBAという言葉は、もっと広い意味をもつとは思うのですが、ここでは、論理的なデータモデルの設計を管理する人という意味合いで使います。データベース上の物理配置やインデックス設計についてはここでは触れません。
モデルを書く
データモデルの出来は、実際のところ大きくプロジェクトの成否を左右します。
プロジェクトの失敗理由は、こんなところなイメージです。(3D円グラフについてはこちら http://qiita.com/kawasima/items/ada35712b70b3ffd9e3f)
イミュータブルデータモデルは、SIerが欲する一定の手順に沿うことで、一定品質のモデルができることを目指したモデリングの手法です。
イミュータブルデータモデル(入門編) http://www.slideshare.net/kawasima/ss-40471672
ひとことで言うと、「更新日時」をエンティティから排除せよ、ということです。
(続編の世代編もよろしければどうぞ)
イミュータブルデータモデル(世代編) http://www.slideshare.net/kawasima/ss-44958468
SIの現場だと、既存のデータベース設計をどこまで見直すかが難しい判断になりますが、イミュータブルデータモデルは初期構築だけでなく、データ運用や保守でのメリットが大きいので、そこまで含めての費用対効果を算出して、判断するようにしてください。
成果物としてはER図になりますが、ObjectBrowser ERを使うと、次の工程が非常に楽になります。ObjectBrowser ERは、ER図フォーマットのEDMファイルが、非常にパースしやすく、ツール作りやすいという点が特に優れていると思います!
モデルから開発環境をつくる
データモデルができたら、実際に開発環境を作り、各開発者に業務アプリケーションを実装してもらいます。ここで考えなきゃいけないのは、たいていのプロジェクトでは、プログラミング中にも少しずつモデルの変更は入ってくる、ということです。
SIの現場では、数十人〜数百人が同時に開発するわけで、このモデルの変更をいかに安全に素早く開発者の開発環境に反映させるかが、開発進捗に大きく関わってきます。このために開発したツールがGSP DBAプラグイン https://github.com/coastland/gsp-dba-maven-plugin です。
GSP DBAプラグインでは、以下のようなことがコマンド一発で可能です。
- DDLを作る
- スキーマを作りDDLを実行する
- Entityクラスを作る
- テスト用データをロードする
- スキーマをExportする
ExportしたスキーマはJarとして、Mavenリポジトリにアップロードします。各開発者は、MavenリポジトリからスキーマJarをダウンロードし、GSP DBAプラグインのimport-shemaを実行すると、自分のローカル環境にDBAが修正した内容が、最速で反映されます。
テストデータを含むスキーマもバージョン管理ができるというところが重要で、これが「私のところでは動いたのですが…」という事件を少なくできます。
GSP DBAプラグインの使用感や使い方は、「そこ仁」の記事をご覧いただければ、と思います。
http://syobochim.hatenablog.com/entry/2015/12/12/232318
;; TODO GSP DBAプラグインを使ったExampleプロジェクトを作る
まとめ
(ダイジェスト的になってしまいましたが…) データモデルの品質やDBAの作業速度が、プロジェクトに与える影響をもっと評価し、そこにリソース投資するようにしましょう、SIerのみなさん!