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

属性は、エンティティタイプのエンティティに対して可能なプロパティを定義します。

属性タイプ

属性タイプは属性の機能を説明します ( 属性がキー属性であるかなど )

属性の定義

属性は、直接エンティティタイプに割り当てられるか、 ABAP ディクショナリから転送されます。

直接割り当てられる属性は、その属性に割り当てられたデータエレメントから、意味特性と技術特性を取得します。 データモデラと ABAP ディクショナリは同じデータエレメントを使用するので、データモデラで定義したデータエレメントを後で ABAP ディクショナリで使用したり、その逆ができます。

ABAP ディクショナリから属性を転送するには、テーブルかビューをエンティティタイプに割り当てます。 テーブルかビューの項目は、属性としてエンティティタイプに転送され、意味特性と技術特性を項目のデータエレメントから受け取ります。 テーブルかビューから転送された属性には、データモデラにおいてフラグが設定されます。 ビューかテーブルをエンティティタイプへ割り当てると、データモデラと ABAP ディクショナリ間の接続が確立されます。 専化では、汎化から継承された属性も照会することができます ( 専化 / 汎化を参照 )

ディクショナリ割当

テーブルの割当 :

エンティティタイプは 1 つだけの ABAP ディクショナリテーブルにマップされます。 テーブルの項目は属性としてエンティティタイプに転送され、属性照会に取り入れられます。

ビューの割当 :

ビューを使用すると、エンティティタイプは 1 つ以上の ABAP ディクショナリテーブルにマップされます。 ビューを割り当てることをお奨めする例の一覧を以下に示します。

 

  1. モデリングの観点から多数の異なるエンティティタイプに分配される情報が、 1 つのテーブルに含まれる場合 :
  2. 結果として、テーブルにはエンティティタイプの属性でない項目が含まれます。 必要な項目の 射影によって、エンティティタイプの属性に対応する項目だけを含むビューが生成されます。 テーブルには他のエンティティタイプのエントリも含まれます。 これらのエントリを 選択によって除外することができます。

    エンティティタイプ従業員社用車の所有者をモデル化したとします。 すべての属性を含むテーブルがディクショナリに 1 つだけあります。 この問題を解決するため、選択と射影によってビューを関連エンティティタイプに割り当てます。

     

  3. 1 つのエンティティタイプの属性が複数のテーブルに分散される場合 :
  4. ビューを使用して、関連するテーブルの項目をまとめることができます。 その結果、エンティティタイプの属性に対応する項目を正確に示す仮想テーブルが作成されます。

    属性学部課程番号課程名課程説明を持つエンティティタイプ大学課程をモデル化したとします。 ABAP ディクショナリで、属性はテーブル UKURS および UKRSB に分散しています ( 課程が複数の言語で開講されるため )

  5. 専化に割り当てられるビュー :

エンティティタイプの専化を登録すると、汎化の属性がその専化に渡されます。 このことは専化に割り当てられたビューにも適用されます。 このようなビューを登録すると、汎化に割り当てられたテーブル、項目、およびビューかテーブルの選択条件を、そのビューがすべて継承します。

専化の方が特性が多いため、ビューに項目やテーブルをさらに追加できるようになります。 選択条件を厳しくして、専化に属するエンティティだけが選択されるようにすることもできます。

汎化に割り当てられたビューを後で変更すると、その変更を必要に応じて専化のビューに渡すことができます。 自動的に渡されるのではありません。モデルの変更がわずかでも、操作使用のビューに対する影響が大きくなる可能性があるからです。

要求があれば、汎化の属性がビュー更新の際に専化に渡されます。 ビューがエンティティタイプに割り当てられると、そのエンティティタイプに対して汎化が存在するのかがチェックされます。 汎化が存在する場合、 ABAP ディクショナリの ( テーブルかビューの ) 割当によって定義された汎化属性が、専化のビューに転送されます。

 

他の題目 :

データモデラ : 概要

エンティティタイプ

関係

専化 / 汎化

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

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

整合性チェック