web-dev-qa-db-ja.com

レイマンの用語で説明されるEAV構造

EAV構造がどのように機能するかを説明するいくつかの記事をオンラインで読みましたが、それらの解釈は異なります。一部の記事では、これがデータモデルメタデータ(またはスキーマ)の表現であると述べています。他の記事では、EAV構造がオントロジーであると説明しています。私は、オントロジーを概念モデル(世界の「もの」間の関係を示す)、またはデータベース内の実際のデータへのクラスインスタンスとして描いています。

このモデルの各テーブルがレイマンの条件で何を表しているか、およびこのEAVデータモデルをどのように使用するかを誰かが説明できますか?

[オブジェクト]は[属性]に直接リンクされていないため、これをデータモデルの表現とは見なしませんでした。これら2つを関連付けるには、実際の値が必要です。したがって、AがデータモデルのテーブルOのフィールド/列である場合、[属性] Aを[オブジェクト] Oで使用できることを強制するものは何もありません。今私はRIテーブルを見ました。それは「参照整合性」を意味すると思いました。しかし、オントロジーについて話しているのであれば、それを関係アイデンティティと呼ぶことができます。オントロジーのトリプルについて話すとき、私は単に関係または述語に言及しているだけです。つまり、主語/述語/オブジェクトを意味します。結合は属性と関連付けられていないことに注意してください。これは、テーブル列とのリレーショナルデータモデルのFK/PK関係を表すため、オブジェクトではなく属性に接続されることを期待していました。 [オブジェクト]に接続されています。

可能であれば、これについて少し説明してください。多分私はこれについてあまり考えすぎています。役に立つ別のEAVモデルがある場合は、お知らせください。

リファレンス: http://eav.codeplex.com

enter image description here

6
MacGyver

これがこのモデルで意図されているものです:

  • Categoryは一種のことです。データモデルではエンティティタイプ、データベースではテーブル
  • 属性はモノのファセットです。データモデルでは述語タイプ、データベースでは
  • Objectはモノのインスタンスです。データモデルではエンティティ、データベースでは(特定のテーブル内)。
  • Valueは、述語のインスタンスまたはデータベーステーブルの列値です。
  • ドメイン検索は、属性値を制約できるメカニズムです。この実装は、値を一連の正当な値の1つに制限することで機能します。データベースでは、これはチェック制約またはルックアップテーブルに例えることができます。明らかに、範囲制約など、他のタイプの制約を課すことができます(ただし、このメタデータモデルにはありません)。
  • RIConfigは、2種類の間の関係制約です。これは、データモデルの関係タイプまたは外部キー制約ですデータベース内。このレベルでは、関係のインスタンスではなく、関係ルールを記述しています。
  • [〜#〜] ri [〜#〜]は、特定のエンティティとの関係のインスタンスです。物理データベースでは、これは外部キーインデックスのレコードになります(たぶん?)

リレーションシップのモデル化には、これらのリレーションシップの実装が考慮されていない限り、欠陥があることを理解するのは当然です。 RIConfigは結合する必要がありますAttribute結合しないCategory-または、RIConfigと属性の間に交差テーブルがあり、プライマリ/外部の複合を可能にする必要があります重要な関係。

上記で述べたように、ドメイン制約も現実的な柔軟性では処理されません。

このモデルの制限を考えると、実際のデータベースの多くのメタデータリポジトリとしては十分ではありません。

5
Joel Brown