論理モデル 物理モデル
こんにちは、皆さん頑張って設計していますか?
ER図には論理モデルと物理モデルがあり、SI Object Browser ER(以下OBER)でも当然両方のモデルを管理できます。これまでの記事でも、たまに論理だ、物理だと言葉自体は数回ほど出てきていますが、一体どこが違って、どのように使い分けるのでしょうか。
ER図 論理モデルと物理モデル(と概念モデル)
「ER図には論理モデルと物理モデルがある」と書きましたが、実はもう一つ「概念モデル」というものがあり、それぞれ下記の特徴があります。
概念モデル |
システム全体をモデル化し、事象ごとに大まかな分類をしたもの。 |
論理モデル |
概念モデルを基に、詳細に落とし込んだもの。ER図上だけの情報。 |
物理モデル |
論理モデルを基に、さらに詳細に落とし込んだもの。実際のデータベースの情報と1対1の関係になる。 |
概念・論理・物理の三階層
通常ER図を用いたモデリング技法では、概念モデル→論理モデル→物理モデルの順に、トップダウンアプローチで設計していくことが多いですが、OBERに代表されるモデリングツールでは概念モデルを省き、論理モデル以降を管理するのが一般的です。なお、OBERでは論理・物理表裏一体の管理となるため、通常は同時に設計していきます。
物理モデルは実際のデータベースと同じですが、論理モデルをどのように作成したらよいでしょうか。特徴で上げたように論理モデルは「ER図上だけの情報」となり、実際のDBとは異なる情報(実体がないエンティティなど)を記述することができます。考え方は様々ですが、ここでは論理モデルを利用して「わかりやすさ優先」の設計方法についてご紹介します。
ER図 作成例その1:論理モデルではカラム名を日本語にする
まずよくやるのが、物理モデル上でアルファベットを使用して英語やローマ字で設計したテーブル名やカラム名を、論理モデル上では日本語で定義することです。
ローマ字であれば日本語として読むことができますが、パッと頭に入ってこない場合もありますし、英語記述の場合は英語が苦手な人はテーブル名やカラム名から意味を理解するのに一苦労です。論理モデル上で日本語定義されていれば、そんな場合でもすぐに理解が可能です。OBERではコンボボックスの切り替えという簡単な操作で論理・物理を切り替えることができますので、定義さえしっかりできていれば確認作業も簡単です。
OBERのエンティティエディタを例にあげますと、エンティティ名欄や属性名欄に入力されたものは論理名となり、テーブル名欄やカラム名欄に入力されたものは物理名となります。
日本語(論理)・英語(物理)
ER図 作成例その2:論理モデルでは物理テーブル、物理リレーションシップを隠す
続いては、「物理テーブル、物理リレーションシップを隠す」です。おさらいになりますが、リレーションシップはエンティティの関連性を表す線のことです。過去ブログ「ER図 リレーションシップを正しく使い分けよう」で解説した、多対多リレーションシップが良い例です。物理的に表現できない多対多の関係性を構築するために中間テーブルを用いる方法をご紹介しましたが、ER図上だけの情報であり「わかりやすさ優先」の論理モデルでは多対多リレーションシップを使えばよく、中間テーブル自体なくてもよいものです。なので、隠してしまいます。
まずは下記のように論理、物理上での設計を行います。論理モデル上にも担当地区エンティティが見えている状態です。
論理モデル上に表示されている物理情報
OBERでは論理オブジェクト、物理オブジェクトの設定が可能です。対象オブジェクトの右クリックメニューから実施します。ここでは担当地区エンティティと、それに伸びている依存リレーションを物理のみの情報へと切り替えます。
右クリックメニュー
物理オブジェクトに変換
赤くなりました。このオブジェクトが物理のみの情報になったことを表しています。なお、論理のみの情報の場合は青で表現されます。※両方ともデフォルト色。変更可能。
まだオブジェクトが赤い状態で見えていますので、オプションを変更して見えなくしましょう。オプション画面の「論理(物理)オブジェクトを物理(論理)モデルにも表示」のチェックを外します。
オプション画面
先ほどまで赤く表示されていたリレーションシップとエンティティが見えなくなりました。
物理オブジェクトを論理モデルで非表示にする
なお、このオプションはデフォルトONとなっております。設計中にオブジェクトがモデルによって見えなくなると、いろいろと不都合ですからね。
同じように、多対多リレーションシップを論理のみの情報に設定して終了です。
論理オブジェクトを物理モデルで非表示にする
その他にも、バッチ処理のためのワークテーブルなどは、論理モデル上では非表示にし、すっきりさせるとよいでしょう。 [RELATED_POSTS]
ER図 作成例その3:論理モデルでは物理カラムを隠す
最後は、作成例その2のカラム単位バージョンのご紹介です。論理・物理の切り替えはカラム単位でも可能です。下図赤枠内のボタンを押することで、論理/物理の切り替えをすることができます。
カラムごとに論理・物理を切り替える 1
「処理終了フラグ」は、バッチ処理が終わったかどうかを表すフラグだとします。例えばエンドユーザーとの打ち合わせでER図を見せる際に、特に必要がないと思われますので、物理のみに設定しました。
青字で表現されているものは、開発中のメモ書きですね。誤ってフォワードエンジニアリングしてしまうとエラーとなりますので、論理のみの情報に設定しました。このテーブルの簡単な説明を書いておく、といった使い方もできるでしょう。エンティティの定義情報に書いておく方法もありますが、こうしておけばエンティティエディタを展開せずとも、ER図上で確認することができます。
カラムごとに論理・物理を切り替える 2
まとめ 論理モデルをうまく使おう
いかがでしたか。今回は3例ほどご紹介しましたが、いずれも論理モデルでは必ずしなければいけない、といったものではありません。そもそもそんな決まりもありませんので、ある程度個人の裁量で定義しても問題はないでしょう。最後の「メモ書きに使う」なんていう設定の仕方はカラムごとに論理物理が設定できるOBERならではかもしれませんね。
「論理モデルはER図上だけの情報」ですから、見やすいER図を作るために、いろいろと試してみてください。
- カテゴリ:
- キーワード: