Xupper技術サポート部のページ

弊社開発手法やXupper(クロスアッパー)の活用法等について、ご説明させていただきます。

自己参照関係ってどんな関係?

2005年04月20日 | データモデル入門
自己参照とは、参照するエンティティが自分自身である場合をいいます。

前述しましたが、この自己参照という関係は1対Nの参照関係のバリエーションです。
例えば、”上司社員”と”部下社員”の関係を考えてください。
”上司社員”には、複数の”部下社員”が存在し、”部下社員”には直属の”上司社員”が一人だけ存在したとします。その場合、上司と部下との間には1対N関係が存在することになります。 しかし、上司も部下も同じ社員であるということは変わりありません。
また、社員は上司でもあり部下でもあるという関係があります。もしも、上司と部下というエンティティを独立して定義してしまうと、データが重複してしまいます。

そこで、”上司社員”も”部下社員”も同じ”社員”というエンティティに統合し、上司と部下という関係(リレーション)のみ残します。そうすると、この自己参照関係となります。

(図1)自己参照

この時の参照先は、同一エンティティ内の別オカレンスという関係になります。(オカレンスとは、識別キーによって特定されるエンティティ内の1データであり、RDBではテーブルの行(ロー)のことです。) 自己参照の結果として自分自身の識別キー以外に、別のオカレンスを参照するための参照キーが属性項目として継承されます。

(図2)別オカレンスの参照

●自己参照は通常、参照先が唯一の場合に使用します。
●自己参照は参照関係で定義します。(従属関係で定義した場合、上位エンティティが必須という意味になり、無限ループします。)
●自己参照のオプショナリティは0(任意)となります。(下位エンティティが必須であれば、無限ループになります。)

(図3)自己参照の例
コメント    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« N対M関係について | トップ | 構成関係ってどんな関係? »
最新の画像もっと見る

コメントを投稿

データモデル入門」カテゴリの最新記事