テーブルの関係の理解と評価
2 つの特定のテーブル間の関係を評価する場合、あるテーブル内の可能なオカレンスが別のテーブルのエンティティに属する可能性がある場合の数を理解する必要があります。逆の場合も同様です。 例えば、 users
テーブルと orders
テーブル。 この場合、人数を把握する必要があります 注文件数 与えられた ユーザー はを配置し、可能な数 ユーザー an 順序 はに属することができます。
関係を理解することは、の精度に影響を与えるので、データの整合性を維持するために重要です 計算される列 および 寸法. 詳しくは、 関係タイプ および Data Warehouseのテーブルを評価する方法。
関係タイプ types
2 つのテーブル間に存在できる関係には、次の 3 つのタイプがあります。
One-to-One
onetoone
In a one-to-one
関係、テーブル内のレコード B
テーブル内の 1 つのレコードのみに属する A
. テーブルのレコード A
テーブルの 1 つのレコードのみに属する B
.
例えば、人と運転免許証番号の関係では、人は 1 つの運転免許証番号しか持つことができず、運転免許証番号は人のみに属します。
One-to-Many
onetomany
In a one-to-many
関係、テーブル内のレコード A
テーブル内の複数のレコードに属している可能性があります B
. ~間の関係について考える orders
および items
– 注文には多数の項目を含めることができますが、1 つの項目は 1 つの注文に属します。 この場合、 orders
テーブルは一方の側で、 items
テーブルは多くの側面です。
Many-to-Many
manytomany
In a many-to-many
関係、テーブル内のレコード B
テーブル内の複数のレコードに属している可能性があります A
. テーブル内のレコード A
テーブル内の複数のレコードに属している可能性があります B
.
~間の関係について考える 製品 および カテゴリ:製品は多くのカテゴリに属することができ、1 つのカテゴリには多くの製品を含めることができます。
テーブルの評価 eval
テーブル間に存在するリレーションシップの種類を指定すると、Data Warehouse内のテーブルを評価する方法を確認できます。 これらの関係は、複数テーブルの計算列の定義方法を決定するので、テーブルの関係を識別する方法と側を理解することが重要です。 one
または many
- テーブルは、に属しています。
Data Warehouse内の特定のテーブルのペアのリレーションシップを評価する方法は 2 つあります。 最初のメソッドでは、 概念フレームワーク では、テーブルのエンティティが相互にやり取りする方法を考慮します。 2 番目のメソッドは、 テーブルのスキーマ.
概念フレームワークの使用 concept
この方法では、概念フレームワークを使用して、2 つのテーブル内のエンティティが相互にどのようにやり取りできるかを記述します。 このフレームワークは、関係を考慮して、可能なものを評価することを理解することが重要です。
例えば、ユーザーと注文について考える場合は、関係で可能なことをすべて考慮してください。 登録ユーザーは、有効期間内に、注文を行ったり、1 回だけ、または複数の注文を行ったりすることはできません。 ビジネスを開始しても注文がない場合は、特定のユーザーが生涯に多くの注文を行える可能性があります。 テーブルは、これに対応するように作成されています。
このメソッドを使用するには:
-
各テーブルで説明されているエンティティを識別します。 ヒント:通常、名詞です. 例:
user
およびorders
テーブルは、ユーザーと注文を明示的に記述しています。 -
これらのエンティティの相互作用を説明する 1 つ以上の動詞を識別します。 例えば、ユーザーと注文を比較する場合、ユーザーは注文を「発注」します。 もう一方の方向に行くと、注文はユーザーに「属する」と表示されます。
このタイプのフレームワークは、Data Warehouse内のテーブルの任意のペアに適用できます。 これにより、関係のタイプ、片側のテーブル、多側のテーブルを簡単に識別できます。
2 つのテーブルの関係を表す用語を識別したら、最初のエンティティの特定のインスタンスと 2 番目のエンティティのインスタンスとの関係を考慮することにより、双方向のインタラクションを設定します。 各関係の例を次に示します。
One-to-One
1 人の人は、運転免許証番号を 1 つしか持つことができません。 特定の運転免許証番号が 1 人の人のみに属しています。
これは one-to-one
各テーブルが片側である関係。
One-to-Many
1 つの指定された順序に、多くの項目を含めることができます。 1 つの特定の項目は、1 つの注文にのみ属します。
これは one-to-many
注文テーブルが一方の側であり、品目テーブルが多の側である関係。
Many-to-Many
1 つの特定の製品が複数のカテゴリに属する可能性があります。 1 つの特定のカテゴリに多数の製品を含めることができます。
これは many-to-many
各テーブルが多辺である関係。
テーブルのスキーマの使用 schema
2 つ目のメソッドは、テーブルスキーマを使用します。 スキーマは、どの列が以下であるかを定義します Primary
および Foreign
キー。 これらのキーを使用すると、テーブルを相互にリンクし、関係タイプを判断するのに役立ちます。
2 つのテーブルをリンクする列を特定したら、列タイプを使用してテーブルの関係を評価します。 次に例を示します。
One-to-one
を使用してテーブルにリンクする場合 primary key
両方のテーブルで、各テーブルに同じ一意のエンティティが記述されており、その関係は one-to-one
.
例: users
テーブルには、補足情報を含めて、ほとんどのユーザー属性(名前など)を取り込むことができます user_source
表には、ユーザー登録ソースが取り込まれています。 各テーブルでは、行は 1 人のユーザーを表します。
One-to-many
を使用してテーブルをリンクする場合 Foreign key
を指して primary key
、この設定は one-to-many
関係。 一方の側は、以下を含むテーブルです primary key
多側は、以下を含むテーブルです。 foreign key
.
Many-to-many
次のいずれかに該当する場合、関係は次のようになります many-to-many
:
Non-primary key
列は、2 つのテーブルのリンクに使用されています
- コンポジットの一部
primary key
2 つのテーブルをリンクするために使用されます
次の手順
テーブルの関係を正しく評価することは、データを正確にモデリングするために重要です。 これで、テーブルが相互にどのように関連付けられているかを理解できたので、次を参照してください Data Warehouseマネージャーでできること.