» 最近のデータ設計

株式会社データ総研 データ総研のオンサイト教育
製品案内 DMBOK ITコンサルティングサービス ITコンサルティング事例 紹介セミナー 教育コース 技術情報 DRIブログ 会社概要
最近のデータ設計

仕事がら新しく設計したデータ構造のレビュを依頼されることもあるのですが、最近はデータ設計の質が落ちていると思います。今回はなぜ、良いデータ設計ができないのか、その原因を考えてみます。

データ構造が正しくないと、それをカバーするために余分なプログラムを開発することになり、大変非効率です。また、同じデータが複数個所に実装されてしまうと、同期がとれない状態が発生し、業務に支障をきたすこともあるでしょう。「A画面で照会した顧客住所とB帳票に載っている顧客住所は同じはずなのになぜ違うの?」といった具合です。

誰もが良いデータ構造にしたいと願っているにもかかわらず、いまだにひどいデータ設計が横行しているのはなぜでしょう?原因はいくつか考えられます。

1 設計者のスキル問題

ゼロからデータ構造を設計したことのある人が少なくなりました。ほとんどのシステム開発は再構築です。ですから、既存のファイルやテーブルをそのまま踏襲すれば、新しい業務でもほぼ動きます。このため、データ構造のあるべき姿を深く考える機会が少なくなりました。また、ERPパッケージの導入によって、データ設計が不要になったケースも増加しています。

2 現状分析フェーズ軽視の問題

一昔前のシステム開発では、現状分析フェーズに一定期間を割くことができました。この中でプロジェクトメンバは業務とシステムに関する知識を吸収することができます。プロジェクトメンバすべてが、既存業務を知っているわけではないので、この作業は貴重です。プロジェクトメンバは、現状のデータモデル図を作成する過程で、正規化のためにさまざまな業務内容を確認することになり、業務をある程度深く理解することもできました。

たとえば、受注明細の識別子が[受注番号.受注明細番号]なのか、[受注番号.商品コード]なのか確認する際には、次のような質問をします。

「受注明細に同じ商品コード値・商品名が現れることはありますか?もし、現れる場合はどういった違いによるのですか?」

すると、利用部門の方は

「通常の販売目的で商品を出荷する商品数と宣伝目的で無償提供する商品数を分けたいときです」

などといった応えが返ってきます。こういったやりとりによって、業務知識が増えていくわけです。

ところが、今のシステム開発プロジェクトはそれほど余裕がありません。

「なぜ、現状分析なんてやるの?新規設計の時間を多くとるべきだ」

「情報システム部門は運用・保守しているわけだから、現状業務は知っているはずでしょ」

などど、充分な時間を取ることは許されません。

業務構造の理解なくして良いデータ設計はあり得ないのに、そのための工数が割けないのです。

3 難易度の問題

最近の正しい数値は知りませんが「電化製品の製品寿命は1.7年」と言われた時期があります。すなわち、企業は次々と新しい商品を開発して市場に投入しなければなりません。(製造業に限らず、通信業も似たような状況にあります。)

シリーズものの新商品投入を短期にできる、しかも新旧で共通部品の割合を多くすることで、質とコストにも貢献できる、そんなBOM構造(製品の部品展開構造)はどうあるべきか?

新規データ設計の場面で出くわすのは、このような本質的な難しさです。この種の業務要件は、各業界における最先端ですから、どこかの本に答えが書いてあるという類のものではありません。自分達で新たな価値をもったデータ構造を発明しなければなりませんが、短期間で正解がみつかるような簡単な問いではありません。

4 なんちゃって技術リーダの問題

「SOAの場合は疎結合がポイントですから、サービス単位にデータを設計すべきなのです。同じ意味のファイルが複数できた場合は、サービス同士で同期をとって整合性を維持すれば良いのです」

こんな指導によって、本来は1つのファイルとして実装されるべき商品ファイルが重複して存在することになります。これには正直まいります。こういったなんちゃって技術リーダはなるべく早期に見つけて、プロジェクトから追い出す以外に手はありません。

ほかにもいくつか理由がみつかるかもしれませんが、開発プロジェクトの中に「求められた質でデータ設計できる人が不在である」

状態が問題です。プロジェクト内で解決するのであれば、なるべく早期に問題箇所を発見し、データ設計のプロに意見を聞くと良いでしょう。長期的な解決策をとるのであれば、人財育成カリキュラムや開発標準の見直しなどが有効と思われます。

データ総研 コンサルタント