サブタイプ クラスタ リレーションシップの作成

提供: ER/Studio Data Architect
移動先: 案内検索

リレーションシップの操作 への移動

Notepad blue icon 2.pngメモ: サブタイプ クラスタ リレーションシップを表示できるのは論理モデルのみです。論理モデルから物理モデルが生成されると、サブタイプ リレーションシップは依存型リレーションシップに変換されます。

サブタイプ クラスタは、類似した特徴を共有するエンティティのグループであり、「汎化階層」を構成します。各サブタイプ クラスタには、1 つの親エンティティ(スーパータイプと呼びます)と、1 つ以上のサブタイプ エンティティがあります。スーパータイプは、サブタイプのセットを一般化します。つまり、サブタイプ エンティティに含まれる共通の特徴はスーパータイプに割り当てられ、各サブタイプ エンティティには固有の属性が含まれます。サブタイプ(カテゴリ エンティティとも呼びます)は、スーパータイプの同種のサブセットを表します。スーパータイプの属性とリレーションシップは、すべてのサブタイプに移行されます。識別子はサブタイプの属性です。各サブタイプ エンティティを識別します。

汎化階層の識別以外にも、サブタイプに関する重要な問題として、物理モデルにおけるサブタイプ クラスタの実装方法を決定する作業があります。サブタイプをスーパータイプに組み込み、クラスタ全体を 1 つの汎化エンティティとして表すのが適切な場合があります。また、サブタイプ エンティティをさらに細分化することが必要な場合もあります。各サブタイプとスーパータイプを1対1で実装するか、あるいはスーパータイプをサブタイプにロールダウンします。

論理モデルの段階で、属性をエンティティに集約するために一般的な方法を使用できるような階層構造を見つけ出す必要があります。一般的なケースを特定することで、データの格納に関して柔軟で拡張性の高い設計にすることができます。サブタイプは、そのような汎化階層を識別して表すための強力なツールです。

サブタイプの使用法を説明するため、[人]、[顧客]、[従業員]というエンティティのグループを例に挙げます。各エンティティには、従業員についての情報が格納されます。したがって、この例では[人]がスーパータイプであり、その他のエンティティはサブタイプにグループ化できます。サブタイプ エンティティに含まれるすべての人物は、スーパータイプである[人]にも含まれます。各エンティティの主キーは、"名前"です。サブタイプ エンティティの各エンティティ インスタンスはスーパータイプにも含まれるため、スーパータイプ エンティティとすべてのサブタイプ エンティティの関係は常に依存型リレーションシップになります。つまり、エンジニアとライターはすべて従業員である必要があります。[人]、[顧客]、[従業員]、および[サプライヤ]は確定型です。この業務では、これらの人物タイプのみが関与しているためです。[従業員]、[エンジニア]、および[ライター]の間の関係は未確定型のサブタイプです。品質保証アナリストのような他の従業員タイプがある可能性もあるためです。

SubtypeCluster.gif

この例では、[人]エンティティがスーパータイプです。すべての人には名前、住所、および電話番号があります。人は、[従業員]または[顧客]のいずれかに属しています。名前、住所、および電話番号の属性を共有するだけでなく、これらの各サブタイプには固有の属性があります。たとえば、[従業員]には"職種"があり、[顧客]には"与信限度額"があります。エンティティはスーパータイプとサブタイプの両方になることもできます。この例では、[従業員]はさらに[エンジニア]と[ライター]に分割されます。

  1. 論理モデルをクリックします。
  2. [挿入|サブタイプ クラスタ]を選択し、[確定]または[未確定]をクリックします。
  3. 親(スーパータイプ)に指定するエンティティをクリックし、次にサブタイプ クラスタに追加するエンティティ(サブタイプ)をクリックします。
    ヒント: サブタイプ クラスタに複数のエンティティを追加するには、Ctrl キーを押しながら対象のエンティティをクリックします。
  4. 右クリックして[選択]ツールに戻してから、新しく作成されたサブタイプ リレーションシップのインジケータをダブル クリックします。
  5. [サブタイプ クラスタ エディタ]で必要な設定を完了したら、[OK]をクリックします。

以下のセクションでは、[サブタイプ クラスタ エディタ]のオプションの設定について説明します。

[サブタイプ]タブ

  • [タイプ]:  サブタイプ クラスタのタイプを、[確定]または[未確定]から選択します。
  • [確定]:  サブタイプ クラスタ内にすべてのサブタイプ エンティティが含まれている場合、サブタイプ クラスタは確定型です。確定型サブタイプ クラスタの一例は、[人]がスーパータイプで、[男性][女性]がサブタイプの場合です。
  • [未確定]:  サブタイプ クラスタ内にすべてのサブタイプ エンティティが含まれているわけではない場合、サブタイプ クラスタは未確定型です。たとえば、サブタイプ クラスタが[従業員][店長][販売員]、および[在庫係]という複数のエンティティで構成されているとします。各エンティティには、従業員に関する情報が格納されます。この例では、[従業員]をスーパータイプとして設定し、その他のエンティティをサブタイプにグループ化できます。このサブタイプは、おそらく未確定型サブタイプ クラスタです。なぜなら、他の従業員タイプ(警備員やレジ係など)が含まれていない可能性があるためです。
  • メンバシップ型:  [包括的]または[排他的]のいずれかを選択します。
  • [包括的]:  サブタイプを持つ各スーパータイプが、同時に複数のサブタイプとなることができる場合に選択します。たとえば、[従業員][エンジニア]および[ライター]の両方に属することができます。
  • [排他的]:  サブタイプを持つ各スーパータイプが、同時にただ 1 つのサブタイプとなる場合に選択します。たとえば、[人]は[従業員]および[顧客]の両方に属することはできません。
    IE 表記法では、排他的サブタイプは、排他 OR 記号で表されます。ダイアグラムとレポートには、スーパータイプ/サブタイプ クラスタのタイプがモデル ウィンドウに表示されます。ユーザーの選択に基づき、[確定]/[包括的]、[確定]/[排他的]、[未確定]/[包括的]、[未確定]/[排他的]のいずれかとなります。
  • [識別子]:  一覧から識別子を選択します。識別子は、各サブタイプ エンティティを互いに区別する属性です。サブタイプ識別子は、スーパータイプの主キーや非キー属性として使用できます。識別子を定義すると、そのサブタイプ クラスタ記号の横に識別子が表示されます。

[アタッチメントのバインド]タブ

アタッチメント(外部情報)をドメインにバインドします。また、オブジェクトからアタッチメントを削除したり、アタッチメントのバインドのデフォルト値を上書きしたり、バインドされたアタッチメントの位置を変更することもできます。選択したアタッチメントのグリッド(画面の右側)に移動したアタッチメントの値をオーバーライドするには、対象となるアタッチメントの[値]フィールドをダブルクリックします。アタッチメントのデータ型に応じて、[上書き値エディタ]またはリスト ボックスが表示されます。アタッチメントは、[データ ディクショナリ]タブの[アタッチメント]フォルダに作成されます。詳細は、「データ モデルへの外部ドキュメントの関連付け」を参照してください。

メモ

  • エンティティをサブタイプ クラスタに追加するには、[挿入|リレーションシップ|依存]を選択します。次に、エンティティを関連付けるスーパータイプの隣にあるサブタイプ クラスタ記号をクリックしてから、サブタイプ クラスタに追加するエンティティをクリックします。
  • サブタイプを編集するには、サブタイプ クラスタ記号を右クリックし、ショートカット メニューの[サブタイプ クラスタの編集]をクリックします。
  • サブタイプ クラスタ記号の色を変更するには、サブタイプ クラスタ記号を右クリックし、ショートカット メニューの[サブタイプ クラスタの色|サブタイプ クラスタの色]を選択します。
  • サブタイプからエンティティを除去するには、サブタイプとエンティティ間のリレーションシップを選択して、[編集|リレーションシップの削除]を選択します。
  • サブタイプが不要になった場合は、データ モデルから削除できます。サブタイプ クラスタに対するエンティティの追加/削除は、エンティティ間でのリレーションシップの追加/削除と同じ方法で実行できます。サブタイプを削除するには、サブタイプを選択して、[編集|サブタイプ クラスタの削除]を選択します。サブタイプ クラスタを削除すると、親エンティティ(スーパータイプ)と子エンティティ(サブタイプ)間のすべてのリレーションシップが削除されます。
  • サブタイプを削除した後に、エンティティ間のリレーションシップを再定義する必要があります。
  • サブタイプには確定型または未確定型を指定できますが、その違いが画面に表示されるのは IDEF1X 表記法のみです。IE(鳥の足)表記法では、[サブタイプ クラスタ エディタ]を開いて確認するか、または命名ルールや色を指定して区別します。
  • IE 表記法は、サブタイプのサポートに関してより柔軟性があり、ロールアップ(汎化)およびロールダウン(特化)の変換が可能です。

関連項目