在本课中,你将验证导入数据时自动创建的关系,并在不同表之间添加新关系。 关系是两个表之间的连接,用于确定这些表中的数据应如何关联。 例如,Product 表与 Product Subcategory 表之间的关系是基于每个产品都属于某个子类别。 若要了解详细信息,请参阅“关系”(SSAS 表格)。
完成本课程的估计时间: 10 分钟
先决条件
本主题是表格建模教程的一部分,应按顺序完成。 在执行本课程中的任务之前,应已完成上一 课:第 3 课:重命名列。
查看现有关系并添加新关系
使用表导入向导导入数据时,从 AdventureWorksDW 数据库导入了七个表。 通常,如果从关系源导入数据,则现有关系会自动与数据一起导入。 但是,在继续创作模型之前,应验证表之间的关系是否已正确创建。 在本教程中,还将添加三个新关系。
审查现有关系
在 SQL Server Data Tools 中,单击“ 模型 ”菜单,然后指向 “模型视图”,然后单击“ 关系图视图”。
模型设计器现在显示在“关系图视图”中,该图形格式显示你导入的所有表,其中包含它们之间的线条。 表之间的行指示导入数据时自动创建的关系。
使用模型设计器右上角的微型地图控件调整视图,以包含尽可能多的表。 还可以单击表格并将其拖动到不同的位置,将表放在一起,或按特定顺序放置表。 移动表不会影响已经存在的表之间的关系。 若要查看特定表中的所有列,请单击表边缘并拖动以展开或缩小。
单击 “客户 ”表和 “地理位置” 表之间的实线。 这两个表之间的实线显示此关系处于活动状态,也就是说,在计算 DAX 公式时,它默认使用。
请注意,“客户”表中的“地理位置 ID”列和“地理”表中的“地理 ID”列现在都显示在一个框中。 这表示这些列用于关系中。 关系的属性现在也显示在 “属性” 窗口中。
小窍门
除了在关系图视图中使用模型设计器之外,还可以使用“ 管理关系 ”对话框显示表格式的所有表之间的关系。 单击“ 表 ”菜单,然后单击“ 管理关系”。 “ 管理关系 ”对话框显示导入数据时自动创建的关系。
使用关系图视图中的模型设计器或“ 管理关系 ”对话框,验证从 AdventureWorksDW 数据库导入每个表时是否创建了以下关系:
活跃 表 相关查找表 是的 客户 [地理 ID] 地理 [Geography Id] 是的 产品 [Product Subcategory Id] 产品子类别 [Product Subcategory Id] 是的 产品子类别 [产品类别 ID] 产品类别 [产品类别 ID] 是的 Internet 销售 [客户 ID] 客户 [客户 ID] 是的 互联网销售 [产品 ID] 产品 [产品 ID]
如果缺少上表中的任何关系,请验证模型是否包含以下表:客户、日期、地理、产品、产品类别、产品子类别和 Internet 销售。 如果同一数据源连接中的表在单独的时间导入,则不会创建这些表之间的任何关系,并且必须手动创建。
在某些情况下,可能需要在模型中的表之间创建其他关系以支持某些业务逻辑。 在本教程中,需要在 Internet Sales 表和 Date 表之间创建三个附加关系。
在表之间添加新关系
在模型设计器的 Internet Sales 表中,单击并按住“订单日期”列,然后将光标拖动到“日期”表中的“日期”列,然后释放。
此时会显示一条实线,显示已在 Internet Sales 表中的“订单日期”列与“日期”表中的“日期”列之间创建了活动关系。
注释
创建关系时,主表与相关查找表之间的顺序会自动按正确的顺序排列。
在 Internet Sales 表中,单击并按住 “截止日期 ”列,然后将光标拖到 “日期 ”表中的 “日期 ”列,然后释放。
此时会显示一条虚线,显示已在 Internet Sales 表中的“截止日期”列与“日期”表中的“日期”列之间创建了非活动关系。 表格之间可以有多个关系,但每次只能有一个关系处于活动状态。
最后,再创建一个关系;在 Internet Sales 表中,单击并按住“发货日期”列,然后将光标拖到 Date 表中的“日期”列,然后释放。
此时会显示一条虚线,显示已在 Internet Sales 表中的“发货日期”列与“日期”表中的“日期”列之间创建了非活动关系。
下一步
若要继续本课程,请转到下一课: 第 6 课:创建计算列。