在表之间创建关系(教程)

在本课中,您将使用 PowerPivot 查看和创建来自不同数据源的数据之间的关系。 关系是在两个数据表之间建立的连接,用于确立两个表中的数据应该如何相关。 例如,DimProduct 表和 DimProductSubcategory 表基于每个产品属于某个子类别的事实具有某种关系。 有关关系的详细信息,请参阅关系概述

PowerPivot 中的关系或者通过在 PowerPivot 窗口中手动“联接”表,或者通过在关系图视图中手动“联接”列中来创建,也可以自动创建(如果在将数据导入到 PowerPivot 工作簿中时 PowerPivot for Excel 检测到现有关系)。 可以通过联接包含类似或相同数据的来自不同表的列来手动创建关系。 例如,DimProduct 表和 DimProductSubcategory 表通过两个表中都有的 ProductSubcategoryKey 列关联起来。 这些列不必具有相同的名称,但是其名称通常相同。

先决条件

本主题是 PowerPivot for Excel 教程的一部分,该教程应按顺序学习。 有关教程中的先决条件和第一个步骤的信息,请参阅PowerPivot for Excel 教程简介

为什么创建关系?

为了执行有意义的分析,数据源之间必须建立某种关系。 更具体地说,使用关系,您可以:

  • 依据相关表中的数据列来筛选某一表中的数据。

  • 将来自多个表中的列集成到一个数据透视表或数据透视图中。

  • 使用数据分析表达式 (DAX) 公式轻松地查找相关表中的值。

查看现有关系

在您的 PowerPivot 工作簿中您已具有来自三个不同数据源的数据:

  • 从 Access 数据库导入的销售和产品数据。 现有关系会自动与数据一起导入。

  • 从 Access 数据库导入的产品类别数据。

  • 从包含商店信息的 Excel 工作表复制或链接到此类工作表的数据。

查看现有关系

  1. 在 PowerPivot 窗口中单击**“设计”选项卡,然后在“关系”组中单击“管理关系”**。

  2. 在**“管理关系”**对话框中,应可以看到以下关系,这些关系是在导入第一个 Access 数据库时创建的:

    相关查找表

    DimProduct [ProductSubcategoryKey]

    DimProductSubcategory [ProductSubcategoryKey]

    FactSales [channelKey]

    DimChannel [ChannelKey]

    FactSales [DateKey]

    DimDate [Datekey]

    FactSales [ProductKey]

    DimProduct [ProductKey]

  3. 请注意,您可以从该对话框中创建、编辑和删除关系。 单击**“关闭”**。

在来自两个不同源的数据之间创建新关系

至此您查看了自动创建的关系,接下来将创建其他关系。

创建您的第一个关系

  1. 单击 Stores 表选项卡。

  2. 右键单击 GeographyKey 列标题,然后选择**“创建关系”**。

    **“表”框和“列”**框将自动填充。

  3. 在**“相关查找表”**框中,选择 Geography(您从 Excel 工作表中粘贴后重命名的表)。

  4. 在**“相关查找列”**框中,请确保选择 GeographyKey

  5. 单击**“创建”**。

  6. 在创建了该关系后,在列顶部将显示一个图标。 指向单元以便显示关系详细信息。

在 Access 和 Excel 中的数据之间创建更多的关系

  1. 单击 Stores 选项卡。

  2. 选择 StoreKey 列。

  3. 在**“设计”选项卡上,单击“创建关系”**。

    **“表”框和“列”**框将自动填充。

  4. 在**“相关查找表”**框中,选择 FactSales

  5. 在**“相关查找列”**框中,请确保选择 StoreKey

    请注意**“相关查找列”框旁边的信息图标。 此图标表示正在按错误的顺序创建此关系。 创建关系时,必须为“相关查找列”**选择具有唯一值的列。

  6. 颠倒顺序。 从**“表”框中选择 dbo_FactSales,然后从“列”框中选择 StoreKey。 选择 Stores 作为“相关查找表”,然后选择 StoreKey 作为“相关查找列”**。

  7. 单击**“创建”**。

在关系图视图中创建关系

在关系图视图中,您可以在单独表的各列之间轻松地创建关系。 这些关系可以形象地显示出来,使您可以对所有表之间的关系一目了然。 在此步骤中,您将使用关系图视图创建完成该教程所需的最后一个关系。 有关关系图视图的详细信息,请参阅 PowerPivot 窗口:关系图视图

导航关系图视图

  1. 在 PowerPivot 窗口的**“主文件夹”选项卡上,在“视图”区域中单击“关系图视图”**。 数据视图电子表格布局将更改为可视的关系图布局,并且表将基于其关系自动组织。

  2. 若要在屏幕上看到所有表,请在关系图视图的右上角中单击**“适合屏幕大小”**图标。

  3. 若要组织成合适的视图,请使用**“拖动以缩放”**控件、Minimap,并且将表拖到您喜欢的布局中。 还可以使用滚动条和鼠标滚轮来滚动屏幕。

  4. 指向关系线(两端带有箭头和圆形的黑色线条)以便突出显示相关表。

在关系图视图中创建各表之间的关系

  1. 在仍处于关系图视图中时,右键单击 DimProductSubcategory 表关系图,然后单击**“创建关系”**。 将打开“创建关系”对话框。

  2. 在**“列”框中选择 ProductCategoryKey,在“相关查找表”框中选择 ProductCategory,在“相关查找列”**框中选择 ProductCategoryKey

  3. 单击**“创建”**。

  4. 通过从**“设计”选项卡单击“管理关系”**并查看列表,检查是否已成功创建所有关系。

下一步

要继续学习本教程,请转到下一个主题:创建计算列(教程)

请参阅

概念

数据分析表达式 (DAX) 概述

PowerPivot 窗口:关系图视图

其他资源

表之间的关系