Cognos 简明教程
Cognos - Relationships in Metadata Model
关系用于创建元数据模型中多个对象上的查询。关系可以是双向的,若不创建关系,则对象就是元数据模型中没有用处的独立实体。
元数据模型中的每个对象都使用数据源中的主键或外键进行连接。您可以在元数据模型中创建或删除关系以满足业务要求。
有一些可用的关系,其中一部分包括:
-
One to One - 当一个查询主题的实例与另一个实例相关时。例如:每个客户都有一个客户 ID。
-
One to Many - 当一个查询主题的实例与多个实例相关时,就会发生这种关系。例如:每个医生都有许多患者。
-
Many to Many - 当一个查询主题的许多实例与多个实例相关时,就会发生这种关系。例如:每个患者都有许多医生。
Cardinality Concept
它被定义为两个查询主题中每个主题的相关行的数目。基数以下列方式使用:
-
星形架构中的循环联接
-
优化访问数据源
-
避免对事实数据进行重复计数
当使用关系型数据库作为数据源时,可以考虑以下规则来定义基数 −
-
Primary and Foreign keys
-
匹配查询项名称唯一表示已编制索引的列
-
Matching query item names
定义基数的最常用方法是使用主键和外键。若要查看已导入的关键信息,请右键单击查询主题 → 编辑定义。您可以从数据源中导入多对多关系、可选关系和外连接。
Relationship Notation in Metadata Model
在 Framework manager 中,关系由 Merise notation 表示。该符号的第一部分表示此关系的连接类型。
-
0..1 表示零或一个匹配
-
1..1 表示一对一匹配
-
0..n 表示零或无匹配
-
1..n 表示一个或多个匹配
-
1 − 来自两个对象的包含所有匹配行的内连接。
-
0 − 来自两方的包含不匹配项的外部连接。
Creating or Modifying the Relationships
在元数据导入中创建一个关系,或者组合无连接的逻辑相关对象。您可以在对象之间手动创建关系,也可以基于选定条件自动定义对象之间的关系。
若要创建关系,请使用 CTRL 键选择一个或多个查询项目、主题或维度。然后转到 Action Menu → Create Relationship 。
如果这是个有效关系,Framework manager 将创建此关系的快捷方式。然后您可以单击确定按钮。
在元数据导入后创建关系后,您还可以在 Framework manager 中修改该关系或基数。
若要编辑关系,请单击关系,然后从 Action menu → click Edit Definition 中选择。
从 Relationship Expression tab → Select Query items, Cardinalities and Operators 中选择。
若要创建附加连接,请转到 Relationship Expression tab → New Link and Define New Relationship 。
若要测试此关系,请转到 Relationship SQL tab → rows to be returned → Test 。
单击确定按钮。
Creating a Relationship Shortcut
关系快捷方式定义为指向现有关系的指针,并重用现有关系的定义。如果对源关系进行任何更改,则会自动在快捷方式中更新更改。关系快捷方式还用于解决查询主题之间的模棱两可的关系。
只要您创建关系并满足以下这两个条件,Framework Manager 就会询问您是否要创建关系快捷方式。
-
新关系的至少一端是快捷方式。
-
原始对象之间存在关系。
转到 Action Menu → Create Relationship 。
如果这是有效的关系,则 Framework manager 希望创建到该关系的快捷方式。单击是。将显示一个列表,其中列出了所有关系,这些关系的一端是模型对象,而另一端是另一个模型对象或到另一个模型对象的快捷方式。
单击确定。
Create a Query Subject
查询主题定义为具有一对固有关系的查询项目集合。可以使用 Framework Manager 使用查询主题自定义他们检索的数据。
以下是 Framework Manager 中的查询主题类型 −
-
Data Source Query Subject − 这些查询主题基于 SQL 语句定义的关系元数据,并且在将元数据导入模型时为每个表和视图自动创建。 Note − 数据源查询主题一次仅引用一个数据源的数据,但您可以直接编辑定义检索数据的 SQL 以编辑查询主题。
-
Model Query Subjects − 它们不是直接从数据源创建的,而是基于在其他查询主题或维度中定义的查询项目。使用模型查询主题,它允许您创建更抽象和业务化的数据源视图。
-
Stored Procedure Query Subjects − 从关系数据源导入过程时创建这些查询主题。IBM Cognos Framework Manager 仅支持用户定义的存储过程,不支持系统存储过程。
How to create a Data Source Query Subject?
来自 Actions Menu → Create → Query Subject 。
输入新查询主题的名称。
单击 Data Source → OK to open new Query Subject wizard 。
按照步骤操作直到出现完成按钮 → 完成
右键单击 Query Subject → Edit Definition 。单击 SQL tab → Available database objects box, drag objects to the SQL box 。
您还可以插入数据源引用、插入宏、嵌入计算并嵌入筛选器。
从列表中选择操作,然后单击确定。
Purpose |
Action |
Granularity Control |
Determinants Tab |
To test query subject |
Test Tab |
To view SQL |
Query Information Tab |
查看数据源中的系统表 |
“显示系统对象”复选框 |
Edit SQL
当您编辑任何关系数据源,创建或查询关系数据库时,将在后台使用 SQL。您可以使用以下选项:
-
Cognos SQL
-
Native SQL
-
Pass through SQL
要编辑模型查询主题的 SQL,请从查询信息选项卡复制代码,并粘贴到新的数据源查询主题。有可能将模型查询主题转换为数据源查询主题。
-
单击数据源查询主题和 Action menu → Edit Definition 。
-
单击 SQL 按钮,拖动对象或键入所需的 SQL。
-
Click OK.
Change Type of SQL
在定义数据源查询主题时,可以选择要使用的 SQL 类型。在考虑 SQL 类型时应考虑以下因素:
SQL Type |
Advantage |
Disadvantage |
Cognos SQL |
改进性能可用于所有受支持的数据库 |
不支持非标准 SQL |
Native SQL |
Performance Optimized Specific to Database |
SQL 在不同的数据库上不起作用。对子查询,您不能使用数据源不支持的 SQL。 |
Pass Through SQL |
数据库支持的任何 SQL |
FrameworkManager 没有自动优化性能的选项 |
另请注意,不能更改基于 OLAP 数据源的查询主题的 SQL 类型。
要更改 SQL 类型,请转到要更改的查询主题。
转到 Actions menu → Edit Definition and go to Query Information button 。
转到 Options → SQL Settings tab 。
要更改 SQL 类型,请单击“SQL 类型列表”。然后,单击“确定”。