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

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-04-12 09:51:24

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

生成 SQL 的中间步骤

  下面几步研究事实和维对象,以便:

  • 判断在查询中使用哪些来自事实和维对象的属性。在这一步中选择的属性(以及度量的列表)用来创建 SQL 语句中使用的所有 SQL 表达式。
  • 判断事实和维对象使用哪些表。
  • 将属性和度量转换为 SQL 表达式,这些表达式用来构造对多维数据集模型进行查询的 SQL 语句。

  判断在查询中使用的维属性

  对于查询中的每个(维、层次结构、级)集,判断使用哪些维属性。正在分析的当前维、层次结构和级称为维 Di、层次结构 Hi 和级 Li

  • 选择 Di 的某些属性作为 SQL 语句中的列。SQL 语句中至少需要有 Li 的级键属性。SQL 语句将按照 Li 的级键进行选择和分组,从而确保查询采用 Di 的正确细节级。

    Li 的默认属性或相关属性可以可选地添加到查询中,从而提供可能对用户有用的其他细节和信息。

    另外,来自 Li 的任何父级的级键、默认属性或相关属性也可以添加到查询中。Hi 将列出 Li 的父级。

    如果为 Di 选择了 “All Level”,那么不应该选择 Di 的任何属性作为选择语句中的列。

    示例:
    • 对于 time 维:
      month 级的级键属性(必需):
      • MONTH_NUMBER
      • YEAR
      添加到查询中的其他属性:
      • MONTH_NAME
      • QUARTER_NAME

    • 对于 market 维:
      city 级的级键属性(必需):
      • CITY_NAME
      • STATE_NAME
      没有添加到查询中的其他属性

    • 对于 product 维:
      product 级的级键属性(必需):
      • PRODUCTID(PRODUCT)
      添加到查询中的其他属性:
      • LINE_NAME
  • 如果 Di 包含任何联结引用,那么要查看每个联结对象,记录这些联结左右两边的所有属性。需要从这些属性创建 SQL 表达式,从而形成 SQL 语句的联结谓词。
阅读(623) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~