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

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-04-12 09:52:46

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

如果 ‘{$$n}’ 标志表示列/属性列表中的属性引用,那么将 SQL 表达式模板中的 ‘{$$n}’ 替换为这个属性的 SQL 表达式。

表 6. time 维属性的 SQL 表达式
属性 产生的 SQL 表达式
MONTH_NUMBER T1."MONTH_NUMBER"
YEAR T1."YEAR"
MONTH_NAME T1."MONTH_NAME"
QUARTER_NAME 'Qtr ' CONCAT (cast(T1."QUARTER_NUMBER" as char(1)))
TIMEID (TIME) T1."TIMEID"

表 7. market 维属性的 SQL 表达式
属性 产生的 SQL 表达式
CITY_NAME T3."CITY_NAME"
STATE_NAME T3."STATE_NAME"
POSTALCODEID (STORE) T2."POSTALCODEID"
POSTALCODEID (LOCATION) T3."POSTALCODEID"
STOREID (STORE) T2."STOREID"

表 8. product 维属性的 SQL 表达式
属性 产生的 SQL 表达式
PRODUCTID (PRODUCT) T4."PRODUCTID"
LINE_NAME T5."LINE_NAME"
LINEID (PRODUCT) T4."LINEID"
LINEID (LINE) T5."LINEID"
FAMILYID (LINE) T5."FAMILYID"
FAMILYID (FAMILY) T6."FAMILYID"
FAMILY_NAME T6."FAMILY_NAME"

  判断查询中使用的事实对象属性

  需要按照与维对象相似的方式处理事实对象。首先,寻找将出现在查询中的事实对象属性。

  • 如果事实对象包含任何联结引用,那么要查看每个联结对象,记录这些联结左右两边的所有属性。需要从这些属性创建 SQL 表达式,从而形成 SQL 语句的联结谓词。
  • 用来将查询的维联结到事实对象的联结对象会引用事实对象的一个或多个属性。在前面,已经检查了这些事实-维联结中属于维对象的属性。一边的属性来自维,另一边的属性来自事实对象。对于每个联结,查明联结的哪一边包含事实对象属性。这一边上的属性需要转换为 SQL 表达式,从而形成 SQL 语句的联结谓词。
  • 如果事实对象的任何属性上有任何谓词,那么这些属性也需要转换为 SQL 表达式。
阅读(353) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~