Cognos-relationships-in-metadata-model
Cognos-メタデータモデルの関係
リレーションシップは、メタデータモデルの複数のオブジェクトでクエリを作成するために使用されます。 関係は双方向であり、関係を作成することなく、オブジェクトはメタデータモデルで使用されない個々のエンティティです。
メタデータモデルの各オブジェクトは、データソースのプライマリキーまたは外部キーを使用して接続されます。 メタデータモデルで関係を作成または削除して、ビジネス要件を満たすことができます。
可能なさまざまな関係があり、それらのいくつかは-
- One to One -あるクエリサブジェクトのインスタンスが別のインスタンスに関連している場合。 例:各顧客には1つの顧客IDがあります。
- * 1対多*-この関係は、クエリサブジェクトの1つのインスタンスが複数のインスタンスに関連している場合に発生します。 例:各医師には多くの患者がいます。
- 多対多-この関係は、クエリサブジェクトの多くのインスタンスが複数のインスタンスに関連している場合に発生します。 例:各患者には多くの医師がいます。
カーディナリティの概念
これは、2つのクエリサブジェクトそれぞれの関連行の数として定義されます。 カーディナリティは次の方法で使用されます-
- スタースキーマのループ結合
- データソースへの最適化されたアクセス
- ファクトデータの二重カウントを避ける
データソースとしてリレーショナルデータベースを使用しながら、次のルールを考慮してカーディナリティを定義することができます-
- 主キーと外部キー
- 一致クエリアイテム名は一意にインデックス付けされた列を表します
- クエリアイテム名の一致
カーディナリティを定義する最も一般的な方法は、主キーと外部キーを使用することです。 インポートされたキー情報を表示するには、クエリサブジェクト→定義の編集を右クリックします。 データソースから多対多のリレーションシップ、オプションのリレーションシップ、および外部結合をインポートできます。
メタデータモデルの関係表記
フレームワークマネージャーでは、リレーションは* Merise表記*で表されます。 この表記の最初の部分は、この関係の結合のタイプを表します。
- 0..1は0または1つの一致を表します
- 1..1は1対1の一致を表します
- 0..nはゼロまたは一致なしを表します
- 1..nは1つ以上の一致を表します
- 1-両方のオブジェクトからのすべての一致する行との内部結合。
- 0-一致しないアイテムを含む、両方のすべてのオブジェクトとの外部結合。
関係の作成または変更
リレーションシップを作成するか、メタデータのインポートで結合されていない論理的に関連するオブジェクトを結合します。 オブジェクト間の関係を手動で作成するか、選択した条件に基づいてオブジェクト間の関係を自動的に定義できます。
関係を作成するには、CTRLキーを使用して、1つ以上のクエリアイテム、サブジェクト、またはディメンションを選択します。 次に、[アクション]メニュー→[関係の作成]に移動します。
これが有効なリレーションシップである場合、フレームワークマネージャーはリレーションシップへのショートカットを作成したいと考えています。 次に、[OK]ボタンをクリックします。
メタデータのインポート後に関係を作成したら、Framework Managerで関係またはカーディナリティを変更することもできます。
関係を編集するには、関係をクリックし、[アクション]メニューから[定義の編集]をクリックします。
[関係式]タブ→[クエリアイテム、カーディナリティ、および演算子]を選択します。
追加の結合を作成するには、[関係式]タブ→[新しいリンク]に移動して、新しい関係を定義します*。
この関係をテストするには、*関係SQLタブ→返される行→テスト*に移動します。
OKボタンをクリックしてください。
関係のショートカットを作成する
関係のショートカットは、既存の関係へのポインターとして定義され、既存の関係の定義を再利用します。 ソースの関係に変更を加えると、ショートカットで自動的に更新されます。 関係のショートカットは、クエリサブジェクト間のあいまいな関係を解決するためにも使用されます。
Framework Managerは、リレーションシップを作成し、これらの条件が両方とも当てはまる場合に、リレーションシップショートカットを作成するかどうかを尋ねます。
- 新しい関係の少なくとも1つの端はショートカットです。
- 元のオブジェクト間に関係が存在します。
[アクション]メニュー→[関係の作成]に移動します。
これが有効なリレーションシップである場合、フレームワークマネージャーはリレーションシップへのショートカットを作成したいと考えています。 はいをクリックします。 一方の端がモデルオブジェクトで、もう一方の端が別のモデルオブジェクトまたは別のモデルオブジェクトへのショートカットであるすべての関係のリストが表示されます。
OKをクリックしてください。
クエリサブジェクトを作成する
クエリサブジェクトは、固有の関係を持つクエリアイテムのセットとして定義されます。 クエリサブジェクトを使用して、Framework Managerを使用して取得するデータをカスタマイズできます。
以下は、Framework Managerのクエリサブジェクトタイプです-
- データソースクエリサブジェクト-これらはSQLステートメントで定義されたリレーショナルメタデータに基づいており、メタデータをモデルにインポートすると、各テーブルおよびビューに対して自動的に作成されます。 + _ 注-データソースクエリサブジェクトは、一度に1つのデータソースのみからのデータを参照しますが、取得データを定義するSQLを直接編集して、クエリサブジェクトを編集できます。
- モデルクエリサブジェクト-データソースから直接作成されるのではなく、他のクエリサブジェクトまたはディメンションで定義されたクエリアイテムに基づいています。 モデルクエリサブジェクトを使用すると、データソースのより抽象的なビジネスビューを作成できます。
- ストアドプロシージャクエリサブジェクト-プロシージャがリレーショナルデータソースからインポートされるときに作成されます。 IBM Cognos Framework Managerはユーザー定義のストアドプロシージャのみをサポートし、システムストアドプロシージャはサポートされていません。
データソースクエリサブジェクトの作成方法
- [アクション]メニュー→[作成]→[サブジェクトのクエリ]から。
新しいクエリサブジェクトの名前を入力します。
- データソース→OKをクリックして、新しいクエリサブジェクトウィザード*を開きます。
[完了]ボタンが表示されるまで手順に従ってください→完了
件名の照会→定義の編集*を右クリックします。 [ SQL]タブ→[使用可能なデータベースオブジェクト]ボックスをクリックし、オブジェクトを[SQL]ボックスにドラッグします*。
データソース参照の挿入、マクロの挿入、計算の埋め込み、フィルターの埋め込みもできます。
リストからアクションを選択し、[OK]をクリックします。
Purpose | Action |
---|---|
Granularity Control | Determinants Tab |
To test query subject | Test Tab |
To view SQL | Query Information Tab |
To view system tables from data source | Show System Objects check box |
SQLを編集
リレーションデータベースソースを編集、リレーションデータベースを作成またはクエリすると、バックグラウンドでSQLが使用されます。 次のオプションを使用できます-
- Cognos SQL
- ネイティブSQL
- SQLをパススルーする
モデルクエリサブジェクトのSQLを編集するには、クエリ情報タブからSQLをコピーし、新しいデータソースクエリサブジェクトに貼り付けます。 モデルクエリサブジェクトをデータソースクエリサブジェクトに変換することができます。
- [データソースクエリサブジェクト]および[アクション]メニュー→[定義の編集]をクリックします。
- [SQL]ボタンをクリックして、オブジェクトをドラッグするか、必要なSQLを入力します。
- OKをクリックしてください。
SQLのタイプを変更
データソースクエリサブジェクトを定義するときに使用するSQLのタイプを選択できます。 SQLのタイプを検討しながら、これらの要因を考慮する必要があります-
SQL Type | Advantage | Disadvantage |
---|---|---|
Cognos SQL |
Improved performance サポートされているすべてのデータベースで作業する |
Non Standard SQL not supported |
Native SQL |
Performance Optimized データベース固有 a |
SQLは別のデータベースでは機能しません。 データソースがサブクエリをサポートしていないSQLは使用できません。 |
Pass Through SQL | Any SQL supported by database |
No option for Framework 最適化するマネージャー 自動的にパフォーマンス |
また、OLAPデータソースに基づいてクエリサブジェクトのSQLのタイプを変更することはできません。
SQLタイプを変更するには、変更するサブジェクトにアクセスします。
- [アクション]メニュー→[定義を編集]に移動し、[クエリ情報]ボタンに移動します*。
[オプション]→[SQL設定]タブ*に移動します。
SQLのタイプを変更するには、[SQLタイプリスト]をクリックします。 次に、[OK]をクリックします。