このレッスンでは、ターゲット表の 1 次および外部キー (後で結合に使用する) を定義します。このレッスンを行うには、スタースキーマの残りの部分の定義 (オプション) で次元表とファクト表を定義していなければなりません。
それぞれのターゲット表で、その表の中で行を固有に識別するために使用できる列を選択します。これが表の 1 次キーになります。 1 次キーとして選択する列は、次の特性を持たなければなりません。
たとえば、LOOKUP_MARKET 表 (レッスン 8, データの変換および移動の定義で作成した) の CITY_ID 列は、 1 次キーとして指定するのに適しています。それぞれの都市が 1 つの識別子を持つため、2 つの都市が同じ識別子を持つ可能性はなく、また、識別子が変わることもほとんどありません。
それぞれの行を固有に識別すると、行アクセスの速度が上がるため、表の 1 次キーを定義することを強くお勧めします。
外部キーは、表の間の関連を定義するために使用します。スタースキーマでは、外部キーは、ファクト表とそれに関連する次元表の間の関連を定義します。次元表の 1 次キーは、ファクト表の中に対応する外部キーを持ちます。外部キーは、ファクト表の特定の列のすべての値が次元表にも存在することを必要とします。たとえば、FACT_TABLE の CITY_ID 列は、 LOOKUP_MARKET 次元表の CITY_ID 列に基づいて定義された外部キーを持つ可能性があります。これは、LOOKUP_MARKET 表に CITY_ID 列が存在しない限り、 FACT_TABLE 表に行が存在できないことを意味します。
このレッスンでは、レッスン 8, データの変換および移動の定義で定義した 4 つのターゲット表 (LOOKUP_MARKET、 LOOKUP_TIME、 LOOKUP_PRODUCT、および LOOKUP_SCENARIO) の 1 次キーを定義します。さらに、FACT_TABLE ターゲット表の対応する外部キーを定義します。
この練習では、LOOKUP_MARKET、LOOKUP_TIME、LOOKUP_PRODUCT、および LOOKUP_SCENARIO ターゲット表の 1 次キーを定義します。
1 次キーを定義するには、以下の手順に従ってください。
「表の変更 (Alter Table)」ノートブックがオープンします。
![]() |
同じ手順に従って、他のターゲット表の 1 次キーを定義します。次のように定義してください。
FACT_TABLE と他のターゲット表の間の関連を表す外部キーを定義する必要があります。
この練習では、LOOKUP_MARKET 表 (親表) の 1 次キーに基づいて、 FACT_TABLE (従属表) の外部キーを定義します。
外部キーを定義するには、以下の手順に従ってください。
「表の変更 (Alter Table)」ノートブックがオープンします。
「削除時 (On delete)」および 「更新時 (On update)」フィールドはデフォルトを受け入れます。これらのフィールドの詳細については、オンライン・ヘルプを参照してください。
![]() |
同じ手順に従って、他のターゲット表に対する FACT_TABLE 表の外部キーを定義します。次のように定義してください。
このレッスンでは、 LOOKUP_MARKET、 LOOKUP_TIME、 LOOKUP_PRODUCT、および LOOKUP_SCENARIO ターゲット表の 1 次キーを定義しました。さらに、1 次キーに対応する FACT_TABLE の外部キーを定義しました。 レッスン 16, データウェアハウスセンター内からのスタースキーマの作成では、これらのキーを使用して、スタースキーマの表を結合します。