整合性チェック 

整合性チェックの背景にある基本的な考えは、データモデラの柔軟性を維持するために、すべてのモデル、エンティティタイプなどに、各作業ステップで整合性がなくてもよいようにするということです。

一方、ディクショナリでは、オブジェクトを登録または変更するたびに、完全な整合性を保証しようとします。 これが重要である理由は、ディクショナリオブジェクトは、実行されるプログラムやデータベースアクセスの土台となるからです。 しかし、モデラの視点では、モデル全体が整合性のある状態であることをいつも保証するのは、わずらわしいことです。 この理由から、モデルの登録中に行われるチェックはごく少数です。

モデラはまずオブジェクトを登録してから、不整合があるのかを単独のチェック手順でチェックします。 これが整合性チェックの目的です。 一度チェックしたら、エラーを修正することができます。

データモデル、エンティティタイプなどを移送するとき、参照オブジェクトを忘れる可能性もあります。 ソースシステムでモデルの整合性が取れていても、対象システムで不整合が発生することがあります。 その場合でも、整合性チェックを使用して不整合を特定し、適切な補正転送を編成することができます。

現在、重要なチェックとしては以下のものがあります。

データモデルの完全性チェック

チェックの目的は、データモデルに属していないソースエンティティタイプを持つ関係と専化を検出することです。 このタイプの不整合は、行われていない割当があることを示します。 このチェックは、アプリケーションデータモデルに適さないのが普通です。

データモデル DM1 がエンティティタイプ E1 E2 、および E3 から構成されているとします。 たとえば、エンティティタイプ E4 から E2 への関係や、専化 E3 に対する汎化 E5 がある場合、チェック基準 ' 完全 ' 2 度違反します ( 不整合関係 : E4 から E2 、チェックする専化 / 汎化 : E5 から E3)

データモデルの先行の存在チェック

チェックの目的は、ソースエンティティタイプが存在しない関係と専化を検出することです。 このような不整合の原因として最も可能性が高いのは、移送エラーです。

データモデル DM1 がエンティティタイプ E1 E2 、および E3 から構成されているとします。 たとえば、エンティティタイプ E2 が存在しない場合、チェック基準に違反します。

データモデルの結合性チェック

チェックの目的は、データモデルのエンティティタイプに結合性があるのかを確認することです。 つまり、チェックの目的は、データモデルの各エンティティタイプをそのモデルの他の各エンティティタイプに結合するパスが存在するかどうかを調べることです。 このパスは、関係と専化のいずれかです。

データモデルに結合性がない場合、データモデルを構成するエンティティタイプのセットは、複数の未結合サブセットに分解されます。 しかし、これらのサブセットは、どれも自身の内部では結合性があります。 このタイプの不整合は、関係が欠落していることを示します。

データモデル DM1 に、エンティティタイプ E1 E2 E3 E4 、および E5 が含まれているとします。 E1 E2 間と E3 E4 間の関係が存在する場合、データモデルに結合性がありません。 このデータモデルは、 (E1 E2) (E3 E4) 、および (E5) という 3 つのサブセットに分割されます。

階層の階層オブジェクト存在チェック

このチェックの目的は、階層に含まれるにもかかわらず存在しないデータモデルとエンティティタイプを検出することです。 このタイプの不整合は、一般に移送エラーが原因です。

データモデル DM1 に、エンティティタイプ E1 E2 E3 、およびサブモデル DM2 DM3 が含まれているとします。 データモデル DM3 とエンティティタイプ E2 が存在しない場合、チェック基準に 2 度違反します。

 

他の題目 :

データモデラ : 概要

エンティティタイプ

エンティティタイプの属性

関係

専化 / 汎化

構造コンセプト : データモデルとデータモデル階層

トップダウンおよびボトムアップモデリング