ER図 論理・物理を使い分ける例

 2018.02.26  株式会社システムインテグレータ

論理モデル 物理モデル

こんにちは、皆さん頑張って設計していますか?

ER図には論理モデルと物理モデルがあり、SI Object Browser ER(以下OBER)でも当然両方のモデルを管理できます。これまでの記事でも、たまに論理だ、物理だと言葉自体は数回ほど出てきていますが、一体どこが違って、どのように使い分けるのでしょうか。

ER図 論理モデルと物理モデル(と概念モデル)

ER図には論理モデルと物理モデルがある」と書きましたが、実はもう一つ「概念モデル」というものがあり、それぞれ下記の特徴があります。 

概念モデル

システム全体をモデル化し、事象ごとに大まかな分類をしたもの。

論理モデル

概念モデルを基に、詳細に落とし込んだもの。ER図上だけの情報。

物理モデル

論理モデルを基に、さらに詳細に落とし込んだもの。実際のデータベースの情報と1対1の関係になる。

概念・論理・物理の三階層
 

通常ER図を用いたモデリング技法では、概念モデル→論理モデル→物理モデルの順に、トップダウンアプローチで設計していくことが多いですが、OBERに代表されるモデリングツールでは概念モデルを省き、論理モデル以降を管理するのが一般的です。なお、OBERでは論理・物理表裏一体の管理となるため、通常は同時に設計していきます。 

物理モデルは実際のデータベースと同じですが、論理モデルをどのように作成したらよいでしょうか。特徴で上げたように論理モデルは「ER図上だけの情報」となり、実際のDBとは異なる情報(実体がないエンティティなど)を記述することができます。考え方は様々ですが、ここでは論理モデルを利用して「わかりやすさ優先」の設計方法についてご紹介します。

ER図 作成例その1:論理モデルではカラム名を日本語にする

まずよくやるのが、物理モデル上でアルファベットを使用して英語やローマ字で設計したテーブル名やカラム名を、論理モデル上では日本語で定義することです。

ローマ字であれば日本語として読むことができますが、パッと頭に入ってこない場合もありますし、英語記述の場合は英語が苦手な人はテーブル名やカラム名から意味を理解するのに一苦労です。論理モデル上で日本語定義されていれば、そんな場合でもすぐに理解が可能です。OBERではコンボボックスの切り替えという簡単な操作で論理・物理を切り替えることができますので、定義さえしっかりできていれば確認作業も簡単です。

OBERのエンティティエディタを例にあげますと、エンティティ名欄や属性名欄に入力されたものは論理名となり、テーブル名欄やカラム名欄に入力されたものは物理名となります。

ert1.png

日本語(論理)・英語(物理)

ER図 作成例その2:論理モデルでは物理テーブル、物理リレーションシップを隠す

続いては、「物理テーブル、物理リレーションシップを隠す」です。おさらいになりますが、リレーションシップはエンティティの関連性を表す線のことです。過去ブログ「ER図 リレーションシップを正しく使い分けよう」で解説した、多対多リレーションシップが良い例です。物理的に表現できない多対多の関係性を構築するために中間テーブルを用いる方法をご紹介しましたが、ER図上だけの情報であり「わかりやすさ優先」の論理モデルでは多対多リレーションシップを使えばよく、中間テーブル自体なくてもよいものです。なので、隠してしまいます。

まずは下記のように論理、物理上での設計を行います。論理モデル上にも担当地区エンティティが見えている状態です。

データベース設計・移行に関するお役立ち資料

ert2.png

論理モデル上に表示されている物理情報

OBERでは論理オブジェクト、物理オブジェクトの設定が可能です。対象オブジェクトの右クリックメニューから実施します。ここでは担当地区エンティティと、それに伸びている依存リレーションを物理のみの情報へと切り替えます。

ert3.png
 右クリックメニュー

ert4.png

物理オブジェクトに変換

赤くなりました。このオブジェクトが物理のみの情報になったことを表しています。なお、論理のみの情報の場合は青で表現されます。※両方ともデフォルト色。変更可能。

まだオブジェクトが赤い状態で見えていますので、オプションを変更して見えなくしましょう。オプション画面の「論理(物理)オブジェクトを物理(論理)モデルにも表示」のチェックを外します。

ert5.png

オプション画面
 

先ほどまで赤く表示されていたリレーションシップとエンティティが見えなくなりました。

ert6.png

物理オブジェクトを論理モデルで非表示にする

なお、このオプションはデフォルトONとなっております。設計中にオブジェクトがモデルによって見えなくなると、いろいろと不都合ですからね。

同じように、多対多リレーションシップを論理のみの情報に設定して終了です。

ert7.png

論理オブジェクトを物理モデルで非表示にする
 

その他にも、バッチ処理のためのワークテーブルなどは、論理モデル上では非表示にし、すっきりさせるとよいでしょう。 [RELATED_POSTS]

ER図 作成例その3:論理モデルでは物理カラムを隠す

最後は、作成例その2のカラム単位バージョンのご紹介です。論理・物理の切り替えはカラム単位でも可能です。下図赤枠内のボタンを押することで、論理/物理の切り替えをすることができます。
 ert8.png

 カラムごとに論理・物理を切り替える 1

「処理終了フラグ」は、バッチ処理が終わったかどうかを表すフラグだとします。例えばエンドユーザーとの打ち合わせでER図を見せる際に、特に必要がないと思われますので、物理のみに設定しました。

青字で表現されているものは、開発中のメモ書きですね。誤ってフォワードエンジニアリングしてしまうとエラーとなりますので、論理のみの情報に設定しました。このテーブルの簡単な説明を書いておく、といった使い方もできるでしょう。エンティティの定義情報に書いておく方法もありますが、こうしておけばエンティティエディタを展開せずとも、ER図上で確認することができます。

ert9.png

カラムごとに論理・物理を切り替える 2
 

まとめ 論理モデルをうまく使おう

いかがでしたか。今回は3例ほどご紹介しましたが、いずれも論理モデルでは必ずしなければいけない、といったものではありません。そもそもそんな決まりもありませんので、ある程度個人の裁量で定義しても問題はないでしょう。最後の「メモ書きに使う」なんていう設定の仕方はカラムごとに論理物理が設定できるOBERならではかもしれませんね。

「論理モデルはER図上だけの情報」ですから、見やすいER図を作るために、いろいろと試してみてください。

SI Object Browser ER ガイドブック

RECENT POST「OBERをトコトン極める」の最新記事


この記事が気に入ったらいいねしよう!