《分析服务从入门到精通读书笔记》第三章、数据源视图修改(4)
目的
其实在我们这个应用的数据库中,包含在数据源视图内的产品类别和子类信息的表。这两个表的元数据是不完整的,没有定义主键和关系,下面。我们就将在Internet Sales关系图中显示这些表,并添加逻辑主键关系。数据库的主键是唯一能标示表中不同行的,并不且允许任何的行主键列值重复。同样,数据源视图中的逻辑主键也指定了唯一能标示表中不同行的列,但不强制唯一性。我们必须采用其他方式来保证表格中的每一行都有唯一值,否则,在处理维度时,分析服务会出现错误。
内容
1、在“表”列表框中,选中DimProductSubcategory,将其拖动到关系窗口中并放置到DimProduct表的旁边。
2、在DimProductSubcategory表中,右击ProductSubcategoryKey列并选择“设置逻辑主键”。这时BIDS会自动的在DimPriductSubcategory表中创建逻辑主键并在ProductSubcategoryKey列旁边显示一个键图标。
提示:一个表可以设置一列或者多个列为主键,只需要选中主键列,右击,选择设置“设置逻辑主键”即可。
3、在DimProduct表中单击ProductSubcategoryKey列并将其拖放到DimProductSubcategory表的ProductSubcategoryKey上
BIDS在DimProduct和DimProductSubCategory表之间创建关系,并出现一条关系来表明两者是以ProductSubcategoryKey连接的。关系图窗格如下图所示:
4、在“表”窗格中,选中DimProductCategory,将其拖动到关系窗口中,并放置在DimProductSubcategory表旁边
5、在DimProductCategory表中右击ProductCategory列并选择“设置逻辑主键”。
6、在DimProductCategory表中单击ProductCategoryKey列并将其拖放到DimProductSubcategory表中的ProductCategoryKey上。出现了“指定关系”对话框,如果你设置颠倒了他们的关系,会弹出提示:
单击“反向”按钮来纠正逻辑外键关系,并单击“确定”。您可能需要对关系图中的表进行重新排以便数据源视图如下图所示:
上面是“逻辑主键”的建立,下面我们尝试着“增加命名计算”
有时候我们需要对数据源进行转换。常见的作用一般包括:追加到新的列、解析列中的数据或进行计算。例如,需要添加顾客的姓名或者希望增加销售额、税额和运算来获得总金额。我们来练习一下,我们添加FY来代表财政年度,以便用户能很容易的区分财政日期和公历日期。
1、右击DimData表头、然后选择“新建命名计算”,将弹出“创建命名计算”对话框
2、在“列明”文本框中,输入FiscalYearName。
3、在“表达式”文本框中,输入:
‘FY’+convert(char(4),FiscalYear)
提示:这里要求输入的是正确的T-SQL语句,可以在查询分析器里面先保证正确,任何拷贝到这里。
“创建命名计算”对话框如下图所示:
4、单击“确定”,新的命名计算FiscalYearName出现在DimDate表的最后一列,并且生成了一个小图标。
5、可以右击DimData表头,冰选择“浏览数据”。开查看自己新建的命名计算列是否正确。
以上介绍的是怎样添加命名计算,通俗点也就是如何添加新列。
下面我们介绍如何添加命名查询
有时候对数据的转换要比简单的应用SQL表达式复杂的多。我们可能要筛选、分组从多个表中连接数据。可以创建SQL Server语句并将其加入命名查询中实现上述目标,简单点讲就是在数据源视图中新建逻辑表。
下面我们练习,我们将把DimCustomer表替换成一个命名查询。SQL Server语句将DimCustomer和DimGeography表连接起来,以便能确定顾客所在的城市、州和国家。
1、右击DimCustomer表头,并指向“替换表”,选择“使用新建命名查询”。
这时候将弹出“创建命名查询”的对话框。关系图窗口显示了DimCustomer表中每个选中的字段。网格窗口显示了来自DimCustomer的每一列,SQL窗口显示了对应的SQL Select语句。这3个窗口用户显示相同的信息。
看到此窗口,如果经常使用微软的vs编程工具的人员应该很亲切,简单的讲就是用来拼接SQL 语句的。
2、点击“添加表”按钮。
3、在“添加表”对话框中,选择DimGeography,单击“添加”,然后单击“关闭”。
4、在DimGeograophy表中,选择City、StateProvinceName 和EnglishCountryRegionName。
提示:这里同样可以在查询分析器中显写好SQL语句,然后直接拷贝到这里就行
5、单击“确定”,DimCustomer表头旁边的图标从单个图标变成了多个表图标。用来说明DimCustomer现在是一个命名查询。
6、在“关系图组织程序”窗口中,选择“<所有表>”关系图,然后在“表”窗格中选择DimCustomer。
在我们自定义视图中所做的更改也都应用到了“<所有表>”关系图。无论在DimCustomer表中滚动是,可以看到在命名查询中选中的项目。
单击“全部保存”按钮,关闭BIDS.
总结
在这里咱们总结下,我们前几章学习的要点:首先、创建数据源,其中包含分析服务用于连接数据库的信息。接着,创建数据源视图,包含在源数据库中的表和视图的定义。由于数据库源视图中含有大量得表难以理解,我们创建了能显示数据源视图中表子集的图表。由于数据库缺少了一些主键和外键关系,我们向数据源视图添加了逻辑主键和关系。最后,为了转换数据源,我们向数据源视图中增加了包含SQL表达式的命名计算和包含SQL查询的命名查询。