ルールを使用したデータ整合性の向上

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

ER Studio DA の使用 への移動

ルールを使用すると、属性やカラムに設定されたデータを検証して、データの整合性を向上させることができます。たとえば、属性またはカラムのデータ値を 0 以上と指定する「NotLessThanZero」というルールを定義したとします。このルールを設定したテーブル カラムでは、負の値を指定するトランザクションは拒否されます。ルールは、CHECK 制約のように動作する独立したデータベース オブジェクトですが、データ モデル全体で再利用することができます。

データ ディクショナリにルールを作成すると、デフォルトと同様に、頻繁に使用されるルールを管理および再利用できます。ルールは、ドメインやユーザー定義データ型、属性、カラムなどのオブジェクトにバインドできます。ルールは、[ルール]フォルダで作成する以外に、ドメインのプロパティとして管理することもできます。

たとえば、多数のカラムに適用する包括的な制約がある場合は、それぞれのカラムにルールを設定するのではなく、ルールを設定したドメインを作成すると便利です。テーブルのカラムを直接指定する代わりに、プレース ホルダを使用できます。「@var」変数を使用して、カラム名を置き換えます。ER/Studio では、「@var」変数を使用すると、データ ディクショナリのルールがカラムにバインドされるときに、カラム名を返します。

たとえば、サンプル モデルの「自動車部品販売.dm1」には、以下の構文のルールが含まれています。

UPPER(@var) in ('Y', 'N')

このルールは、物理モデルの[DEPARTMENT]テーブルの "ManagerCount" カラムにバインドされています。

RuleBinding.gif

「@var」変数は、以下のように展開されます。

UPPER(CURRENT_CUSTOMER) in ('Y', 'N')

テーブル エディタのカラム編集領域の[ルール/制約]タブでは、以下のように、展開される前の式が表示されます。

Rule Constraint.gif

データ ディクショナリのルールを作成および編集する

  1. モデル エクスプローラ[データ ディクショナリ]タブをクリックします。
  2. [データ ディクショナリ]タブで[ルール]フォルダを右クリックし、ショートカット メニューの[ルールの新規作成]をクリックします。
  3. [ルールの追加]または[ルール定義の編集]ダイアログ ボックスで必要な設定を行い、[OK]をクリックして変更を反映します。
  4. 作成したルールを編集するには、ルールをダブルクリックして、[ルール定義の編集]ダイアログ ボックスを開きます。

次に、一部のオプションについて補足説明します。

[ルール式]タブ

ルールを指定します。ルールを使用する対象データベースがサポートする構文で、式を追加する必要があります。

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

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

[バインド情報]タブ

作成したルールをバインドするオブジェクト クラスおよび特定のオブジェクトを選択します。この設定は、ルールをバインドできる各オブジェクトのエディタの[ルール/制約]タブで上書きできます。

関連項目