Chinaunix首页 | 论坛 | 博客
  • 博客访问: 103593008
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-04-12 09:51:46

   来源:IBM developerWorks 中国网站    作者:Jason Dere

示例:

  • 对于 time 维:
    • time 不包含任何联结引用,所以在这一步中没有识别出属性。
  • 对于 market 维:
    • STORE-LOCATION 联结有以下属性:
      • POSTALCODEID (STORE)
      • POSTALCODEID (LOCATION)
  • 对于 product 维:
    • PRODUCT-LINE 联结有以下属性:
      • LINEID (PRODUCT)
      • LINEID (LINE)
    • PRODUCT-FAMILY 联结有以下属性:
      • FAMILYID (LINE)
      • FAMILYID (FAMILY)
  • 用来将 Di 联结到事实对象的联结对象会引用 Di 的一个或多个属性。要想找到引用的属性,首先要找到 Di 的事实-维联结。这个联结可以在多维数据集模型中找到。多维数据集模型包含一组 (dimension, join) 引用。在这组 (dimension, join) 引用中找到与 Di 对应的联结。

    联结对象具有左属性和右属性,对这两个属性进行比较,从而形成联结谓词。一边的属性来自 Di,另一边的属性来自事实对象。要想了解 Di 在联结的哪一边,可以查看联结左右的属性,看哪一边包含 Di 的属性。这一边上的属性需要转换为 SQL 表达式,从而形成 SQL 语句的联结谓词。对联结的另一边上属性的处理将在后面讨论事实对象所需的步骤时讨论。

    示例:
    • time 维使用 SALESFACT-TIME 联结联结到 sales 事实:

      表 2. SALESFACT-TIME 联结
      左属性 右属性 操作符
      TIMEID (SALESFACT) TIMEID (TIME) =

      因为属性 TIMEID (TIME) 属于 time 维,所以在联结的右边使用这个属性:
      • TIMEID (TIME)
    • market 维使用 SALESFACT-STORE 联结联结到 sales 事实:

      表 3. SALESFACT-STORE 联结
      左属性 右属性 操作符
      STOREID (SALESFACT) STOREID (STORE) =

      因为属性 STOREID (STORE) 属于 store 维,所以在联结的右边使用这个属性:
      • STOREID (STORE)
    • product 维使用 SALESFACT-PRODUCT 联结联结到 sales 事实:

      表 4. SALESFACT-PRODUCT 联结
      左属性 右属性 操作符
      PRODUCTID (SALESFACT) PRODUCTID (PRODUCT) =

      因为属性 PRODUCTID (PRODUCT) 属于 product 维,所以在联结的右边使用这个属性:
      • PRODUCTID (PRODUCT)
  • 如果 Di 的任何属性上有任何谓词,那么这些属性也需要转换为 SQL 表达式。
  • 阅读(401) | 评论(0) | 转发(0) |
    给主人留下些什么吧!~~