ドメインを使用した属性定義の再利用

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

データ ディクショナリの操作 への移動

ドメインは、モデル内で頻繁に使用されるエンティティ属性やテーブル カラムを作成する際に役立ちます。オブジェクトを一度だけ定義してドメインを作成し、それをエンティティ属性やテーブル カラムに適用することで、同じ定義を何度も再利用できます。

ドメインは再利用可能な属性テンプレートであり、これを使用することで一貫したドメイン定義を実現できます。ドメインの作成方法は属性の場合と同じで、名前、データ型のプロパティ、NULL ステータス、デフォルト値、および検証ルールを指定します。ドメインを作成した後、属性やテーブル カラムに適用することで、ドメインに設定した定義内容をデータ モデル内で再利用できます。また、ドメイン定義に対して加えた変更を、そのドメインを参照するすべての属性とテーブル カラムに反映させることもできます。

ビジネス ルールを実装する有力な方法として、ドメイン制約を定義して適用する場合があります。ドメイン制約とは、属性がとるべき値を決定するルールです。属性の値を制限および検証することにより、当座勘定をプラス残高に保持する、無効な電話番号の入力を防止するといった重要なビジネス ルールを実装することができます。

ER Studio Data Architect では、ドメイン フォルダを使用してドメインを整理します。ドメイン フォルダによって、データ ディクショナリのドメインを作成および管理できます。さまざまなドメイン フォルダを作成すると、ドメインを独自のグループに分類できます。また、ドメイン フォルダ内にサブフォルダを作成して、階層構造で管理できます。既存のドメインをドメイン フォルダに移動したり、フォルダ内に新しいドメインを作成できます。

ドメインをテーブルまたはエンティティにドラッグ アンド ドロップして、カラムまたは属性を作成できます。ドメインを他のドメインにドラッグ アンド ドロップして、ネストしたサブドメインを作成することもできます。また、ドメインをコピーして他のドメイン上に貼り付けると、コピー先ドメインのネストしたサブドメインとして、選択したドメインのコピーが作成されます。コピー元のドメインに変更を加えても、作成されたサブドメインには反映されません。

ドメインには、ネストしたサブドメイン(子ドメイン)を含めることができます。最初、これらのドメインには親ドメインのほとんどのプロパティが複製されますが、作成後に親ドメインと異なるプロパティを設定することが可能です。[ドメインの追加]または[ドメインの編集]ダイアログ ボックスの[コントロールの上書き]タブのオプションでは、属性やカラムとの間の有効なリレーション(バインド情報)を失うことなく、ドメイン システムの継承および上書きを設定できます。

  • ドメイン フォルダを削除すると、そのフォルダ内にあるドメインおよびドメイン フォルダもすべて削除されます。属性およびカラムへのドメインのバインドもすべて解除されます。

ドメイン フォルダの作成

  1. モデル エクスプローラの[データ ディクショナリ]タブで[ドメイン]フォルダを右クリックし、[ドメイン フォルダの作成...]をクリックします。
  2. ドメインの名前を入力して[OK]をクリックします。

ドメインまたはサブドメインの作成と編集

[ドメイン]フォルダの直下にドメインを作成するには、[データ ディクショナリ]タブの[ドメイン]フォルダを右クリックして、ショートカット メニューの[ドメインの作成...]をクリックします。

ドメイン フォルダ内にドメインを作成するには、[データ ディクショナリ]タブで[ドメイン]フォルダを展開し、ドメイン フォルダのノードを右クリックして、ショートカット メニューの[ドメインの作成...]をクリックします。

サブドメイン(ドメイン フォルダ内のドメイン)を作成するには、[データ ディクショナリ]タブでサブドメインを作成したいドメイン フォルダを探し、そのドメイン フォルダを右クリックして、ショートカット メニューの[ドメインの作成...]をクリックします。

  1. 必要に応じてドメインを定義し、[OK]をクリックしてエディタを閉じます。
  2. 作成したドメインを編集するには、[データ ディクショナリ]タブでドメインをダブルクリックして、エディタを開きます。

以下のセクションでは、ドメイン エディタのオプションの設定について説明します。

[データ型]タブ

[デフォルト]タブ

[ルール/制約]タブ

[参照値]タブ

[名前付け標準]タブ

[定義]タブ

[ノート]タブ

[コントロールの上書き]タブ

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

[バインド情報]タブ

[データ型]タブ

  • [親の修正を継承]サブドメインの場合に、親ドメインの属性に対して加えられた変更を、サブドメインの属性に反映させます。このオプションを選択すると、[参照値]、[名前付け標準]、[アタッチメントのバインド]、および[バインド情報]タブを除く、親ドメインとサブドメインのプロパティを自動的にシンクロできます。このオプションを選択しない場合、サブドメインの作成直後は親ドメインと同じプロパティが設定されます(ただしアタッチメントはサブドメインにはバインドされません)。その後で親ドメインに加えた変更内容は、サブドメインには継承されません。サブドメインに変更を加えると、親ドメインから継承された値が上書きされます。それ以降は、サブドメインで指定していないプロパティのみが親ドメインから継承されます。
  • [ドメインと属性/カラム名のシンクロ]: このチェック ボックスをオンにすると、ドメイン名、属性名、およびカラム名が同じになります。[属性名]および[カラム名]フィールドにドメイン名と異なる名前を入力している場合に、このチェック ボックスをオンにすると、入力済みの名前がドメイン名で上書きされます。
  • [すべてのバインド カラムへ NULL の設定を適用]: このオプションは、[データ型]タブで NULL を許可するデータ型を選択し、[NULL を許可]を[いいえ]に設定した場合に利用可能になります。バインドされたカラムがない場合、このチェック ボックスをオンにしても効果はありません。
  • [Identity プロパティ]領域: この領域は、物理モデルのデータベース プラットフォームで IDENTITY プロパティがサポートされており、選択したデータ型が TINYINT のように IDENTITY プロパティをサポートしている場合に利用可能になります。

[デフォルト]タブ

  • [デフォルトのバインド]: デフォルト値がまだドメインにバインドされていない場合([データ ディクショナリ|デフォルト|デフォルトの編集|バインド情報])、[デフォルト式]に値を入力するか、[デフォルトのバインド]一覧からデフォルト値を選択できます。このデフォルト式は、物理モデルで[データベースの生成...]を実行したときに生成される SQL に含まれます。
  • [デフォルト式]: 挿入時に値が明示的に指定されない場合のデフォルトのドメイン値を指定します。DEFAULT 定義はすべてのカラムに適用できます。ただし、データ型が timestamp の場合と、IDENTITY プロパティを持つ場合は除きます。DEFAULT に割り当てることができるのは、文字列などの定数値、SYSTEM_USER() などのシステム関数、NULL、または制約名だけです。

[ルール/制約]タブ

制約を追加、編集、または削除します。CHECK 制約を使用すると、データベース内のデータの有効性を保証し、データの整合性を保つことができます。詳細は、「CHECK 制約を使用したデータ整合性の保証」を参照してください。

[参照値]タブ

参照値は、使用できる値が定義された属性です。ルックアップ テーブル カラム、コード値の範囲、またはカラムに適用されるルールや制約を表します。詳細は、「参照値を使用した有効な属性データの定義」を参照してください。

[名前付け標準]タブ

名前付け標準テンプレートをオブジェクトにバインドすると、そのテンプレートが、名前付け標準ユーティリティまたは[物理モデルの生成]ウィザードで選択されたテンプレートの代わりに使用されます。これによって、モデルの一部で異なる名前付け標準が必要な場合に、オブジェクトごとに別の名前付け標準を適用できます。たとえば、一部のオブジェクトが既にデータベース内に存在しており、それらには名前付け標準を新たに適用したくない場合に役立ちます。詳細は、「名前付け標準テンプレートを使用した名前付け標準の適用」を参照してください。

[定義]タブ

ドメインの定義を入力または編集します。対象データベースでサポートされている場合、SQL コードの生成時に、この定義がドメイン コメントとして追加されます。

[ノート]タブ

ここに追加したノートの内容は、モデルのレポート生成時に HTML レポートに含まれます。このノートには標準の HTML タグを使用することができます。

[コントロールの上書き]タブ

ドメインから継承されたプロパティのうち、バインドされたカラムで上書きできるプロパティ、上書きできないプロパティを制御します。

  • [全般的な上書き]領域: [許可しない]に設定されている場合、バインドされた属性またはカラムの[バインドされたデータを上書き]チェック ボックスは無効になります。ドメインの上書き制御を変更し、1 つまたは複数の上書きオプションを[許可しない]に設定すると、そのプロパティの既存の上書き設定がすべて削除されます。エンタープライズ データ ディクショナリのドメインの場合も同様です。
  • [名前のシンクロ]
    • [シンクロしない]: バインドされた属性またはカラムからドメイン名が完全に切り離されます。こうすることで、属性やカラムの名前が同じドメインにバインドされている場合に、その名前がドメイン エディタで変更された結果として、意図せず名前が変更されるのを避けることができます。ドメインでの名前の変更は、そのドメインにバインドされた属性やカラムの名前に影響しません。
    • [部分シンクロ]: ドメイン エディタで属性やカラムの名前を変更すると、それにバインドされた古い名前を持つ(つまり名前が上書きされていない)属性やカラムの名前が更新されます。たとえば、ドメインのある属性を持つ 2 つのエンティティを作成し、片方の属性名はデフォルトのものを使用し、もう片方の属性名は上書きしたとします。その後、[部分シンクロ]を選択してドメイン エディタで属性名を変更すると、名前が上書きされていないエンティティの属性名にはドメインにおける変更が反映されますが、名前が上書きされているエンティティの属性名は変更されません。名前が一致しない場合には、変更は反映されません。

Notepad blue icon 2.pngメモ: [名前のシンクロ]の設定は、バインドするドメインを切り替えた場合には適用されません。これが適用されるのは、バインドされたドメインを編集した場合だけです。

  • [アタッチメントのシンクロ]: ドメインのアタッチメントが、バインドされたカラムにもシンクロされます。ドメインに追加されているアタッチメントは、バインドされた属性とカラムにも追加されます。[常に移行]に設定すると、ドメインに追加される新規アタッチメントが常にカラムに追加されます。その他のアタッチメントを直接カラムに追加することもできます。

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

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

[バインド情報]タブ

作成したドメインをバインドするオブジェクト クラスや特定のオブジェクトを選択します。この設定は、[エンティティ エディタ]の[属性]タブや[テーブル エディタ]の[カラム]タブで上書きできます。

関連項目