リソース系とイベント系

リソース系とイベント系


   データモデリングの基礎知識をマスターしたところで、今度はデータモデリングツールの上手な使い方について説明します。まずは色分けによる視野性の向上について紹介しましょう。

   もともとER図はテーブル設計情報を"ビジュアル"的に表現することが目的です。ですので、"色"という便利な情報も使わない手はありません。色の使い方は人それぞれですが、筆者の場合はエンティティがリソース系かイベント系かで色分けしています。つまりマスタテーブルとトランザクションテーブルで色を変えています(図1)。
依存型と非依存型
図1:依存型と非依存型(再掲)

   アプリケーションの設計において、マスタ系かトランザクション系かを把握するのは重要です。そのため、よく「受注トラン」「顧客マスタ」などとエンティティ名自体で区別している例があります。しかし、ERツールを使って色で区別するようにすれば、このように名称に"トラン"や"マスタ"などの文字をつけなくても済みます。


ドメイン


   データモデリングツールにはドメインという便利な機能が用意されていますので、積極的に使ってみましょう。ドメインとは「個々のアトリビュートの属性を共通化するディクショナリ」のことです。といわれてもピンとこないと思いますので、画面を参照しながら具体的に説明しましょう。

   図3はデータモデリングツール上のドメインとER図の表示画面です。画面左側にドメインの一覧が並び、右側にER図が描かれています。

データモデリングツールのドメインとER図
図3:データモデリングツールのドメインとER図
(画像をクリックすると別ウィンドウに拡大図を表示します)

   左側のツリーからドメイン「顧客番号」を開くと、図4のようなドメイン定義情報が確認できます。このドメインを右側のER図上のエンティティ(テーブル)にドラッグすると自動的にアトリビュート(列)が追加されます。図3においては「受注」テーブルと「顧客」テーブルに含まれる「顧客番号」列がドメイン「顧客番号」に関連付けられています。

ドメインの定義画面
図4:ドメインの定義画面

   ドメインを利用するメリットは、データ型やデータサイズを統一できることです。例えば、図4のドメイン「顧客番号」は、"char(5)"というデータ型・サイズで定義されています。

   これをエンティティにドラッグすると、エンティティ内のアトリビュート「顧客番号」のデータ型やサイズも"char(5)"というデータ型・サイズに統一されます。このような使い方により、「顧客」テーブルでは"char(5)"なのに、「受注」テーブルを"varchar(5)"で設計してしまうような、よくあるミスを防止できます。

   また、ドメインの情報の変更は一括してすべてのエンティティに反映されます。例えば、設計途中でデータサイズを"char(5)"から"char(8)"に仕様変更する場合、ドメイン1箇所を修正すれば済むことになります。


サブモデルとER図マージ


   ER図を紙に描いていた時代、システム規模が大きくなると複数のER図をセロテープでつないで全体をあらわしていました。同じようにツールでも、システムが大きくなるとテーブル数が増えて、1つのER画面ですべてを表示するのが大変になってきます。

   これを解決する機能がサブモデル機能です。図3の下側を見ると、「メインモデル」というタブの横に「受注」や「受注情報」などのタブがありますが、これらがサブモデルです。

   サブモデルとは、指定したエンティティだけを選んで別タブ上に表示する機能です。エンティティの情報は完全に連動していますので、サブモデルで変更した内容は全モデルに反映されます。一方、レイアウト情報は完全に独立していますので、あるサブモデルの配置を変えても他のタブには影響はありません。

   ERPのような規模の大きなER図を描く際は、このように機能単位でサブモデルをたくさん作成して設計作業を行うことになります。また、サブシステム単位で複数の設計者に分かれてER図を作成する場合も多いので、一般のツールにはER図のマージ機能なども用意されています。

人気記事トップ10

人気記事ランキングをもっと見る

企画広告も役立つ情報バッチリ! Sponsored

ClickHouse Cloudが実現した広告運用SaaS「ATOM」のデータ基盤革新、パフォーマンスを向上しながら、運用負荷とコストを削減 6:20 AIで開発が加速する時代、品質保証はどう変わる? Tricentisが示すAIエージェント活用の実像 11月9日 6:45 悪用までの猶予が「1分」に迫るフロンティアAI時代に開発と本番を貫く脆弱性管理が必要 10月29日 8:30 欧州CRA対応とSBOM運用。AI生成コードのOSS混入問題の対策とは ――スニペット単位で検出する「FossID」「Insignary Clarity」によるSBOM運用 9月16日 6:40 PostgreSQLからTiDBへ、稼働中SaaSで進める段階的DB移行の実践と再設計への展望 9月7日 6:30 機能安全開発におけるGoogleTestの活用を支援!「Parasoft C/C++test CT」で実現する効率化&AI連携 4月14日 6:30 【CNDW2025】Grafanaが明かす「オブザーバビリティの哲学」ー最小限の労力で実用的なインサイトを得るには 1月23日 6:30 【CNDW2025】プロダクト急増に備える基盤刷新 ーウェルスナビがECSからEKSへの移行で得た知見とは 1月15日 6:30 【CNDW2025】250環境を5人で運用、構築時間は30分に ーKINTOテクノロジーズが語るインフラ基盤組織の作り方 2025年12月18日 6:30 新たな自動化で熱視線! AIエージェントの「推論能力」を支える2つのコンポーネントとは? 2025年11月28日 6:30