ビジネス・インテリジェンス チュートリアル

レッスン 11. ターゲット表のキーの定義

このレッスンでは、ターゲット表の 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 ターゲット表の対応する外部キーを定義します。


1 次キーの定義

この練習では、LOOKUP_MARKET、LOOKUP_TIME、LOOKUP_PRODUCT、および LOOKUP_SCENARIO ターゲット表の 1 次キーを定義します。

1 次キーを定義するには、以下の手順に従ってください。

  1. 「DB2 コントロール・センター (DB2 Control Center)」ウィンドウを表示します。
  2. TUTWHS データベースの表のリストで、LOOKUP_MARKET 表を見付けます。表を右クリックし、「更新 (Alter)」をクリックします。

    「表の変更 (Alter Table)」ノートブックがオープンします。

  3. 「1 次キー (Primary Key)」タブをクリックします。「1 次キー (Primary Key)」ページがオープンします。
  4. 「使用可能列 (Available columns)」で、 1 次キーとして「CITY_ID」を選択します。
  5. 「>」 をクリックして、 CITY_ID を「1 次キー列 (Primary key columns)」リストに移動します。
  6. DB2 ユニバーサル・データベースに制約名を生成させるために、 「制約名 (Constraint name)」フィールドは空のままにしておきます。選択された列のすべての値が固有でなければならないため、 1 次キーは制約と考えることができます。



    「SQL ステートメント (SQL Statement)」ページ上の GEOGRAPHIES SELECT ステートメント

  7. 「了解 (OK)」をクリックして、定義を保管します。

同じ手順に従って、他のターゲット表の 1 次キーを定義します。次のように定義してください。


外部キーの定義

FACT_TABLE と他のターゲット表の間の関連を表す外部キーを定義する必要があります。

この練習では、LOOKUP_MARKET 表 (親表) の 1 次キーに基づいて、 FACT_TABLE (従属表) の外部キーを定義します。

外部キーを定義するには、以下の手順に従ってください。

  1. TUTWHS データベースの表のリストで、FACT_TABLE 表を見付けます。表を右クリックし、「更新 (Alter)」をクリックします。

    「表の変更 (Alter Table)」ノートブックがオープンします。

  2. 「外部キー (Foreign Keys)」タブをクリックします。「外部キー (Foreign Key)」ページがオープンします。
  3. 「追加 (Add)」をクリックします。「外部キーの追加 (Add Foreign Key)」ウィンドウがオープンします。
  4. 「表スキーマ (Table schema)」フィールドで、 レッスン 2, ウェアハウス・データベースの作成でウェアハウス・データベースを作成する際に使用したユーザー ID を入力します。
  5. 「表名 (Table name)」フィールドで、親表である「LOOKUP_MARKET」を指定します。 「1 次キー (Primary key)」フィールドに LOOKUP_MARKET の 1 次キーが表示されます。
  6. 「使用可能列 (Available column)」リストで、外部キーとして定義する列として「CITY_ID」を選択します。
  7. 「>」 をクリックして、 CITY_ID を「外部キー (Foreign key)」リストに移動します。

    「削除時 (On delete)」および 「更新時 (On update)」フィールドはデフォルトを受け入れます。これらのフィールドの詳細については、オンライン・ヘルプを参照してください。

  8. DB2 ユニバーサル・データベースに制約名を生成させるために、 「制約名 (Constraint name)」フィールドは空のままにしておきます。従属表の外部キー列のそれぞれの値について、対応する値が 1 次キー列に入った行が親表にあるため、外部キーは制約と考えることができます。



    「SQL ステートメント (SQL Statement)」ページ上の GEOGRAPHIES SELECT ステートメント

  9. 「了解 (OK)」をクリックして、定義を保管します。

同じ手順に従って、他のターゲット表に対する FACT_TABLE 表の外部キーを定義します。次のように定義してください。


「SQL ステートメント (SQL Statement)」ページ上の GEOGRAPHIES SELECT ステートメント


このレッスンで行ったこと

このレッスンでは、 LOOKUP_MARKET、 LOOKUP_TIME、 LOOKUP_PRODUCT、および LOOKUP_SCENARIO ターゲット表の 1 次キーを定義しました。さらに、1 次キーに対応する FACT_TABLE の外部キーを定義しました。 レッスン 16, データウェアハウスセンター内からのスタースキーマの作成では、これらのキーを使用して、スタースキーマの表を結合します。


[ ページのトップ | 前ページ | 次ページ | 目次 ]