我正在使用RDBMS建立一个穷人的数据仓库.我已经确定要记录的关键“属性”:
> sex(true / false)
>人口统计分类(A,B,C等)
>出生地
>出生日期
>体重(每天记录):正在记录的事实
我的要求是能够运行“OLAP”查询,允许我:
“切片和骰子”
>“向上/向下”数据和
>一般来说,能够从不同的角度查看数据
在阅读本主题领域之后,普遍的共识似乎是使用维度表而不是标准化表来最好地实现.
假设这个断言是真的(即解决方案最好使用事实和维度表实现),我想在这些表的设计中寻求一些帮助.
“自然”(或明显)的维度是:
>日期维度
>地理位置
哪些具有层次属性.但是,我正在努力建模以下领域:
> sex(true / false)
>人口统计分类(A,C等)
我正在努力与这些领域的原因是:
>他们没有明显的层次属性,这将有助于聚合(AFAIA) – 这表明它们应该在事实表中
>他们大多是静态的或很少改变 – 这表明它们应该在维度表中.
也许我上面使用的启发式原则太粗糙了
我将给出一些关于我想在数据仓库上进行分析的类型的例子,希望这将进一步澄清.
>男性和女性的权重如何比较不同的人口统计分类?
>哪个人口统计学分类(男性和女性)在本季度呈现最大的增长.
等等
任何人都可以澄清性别和人口分类是事实表的一部分,还是(我怀疑)维度表.
还假设它们是维度表,有人可以详细说明表结构(即字段)吗?
“明显”模式:
CREATE TABLE sex_type (is_male int); CREATE TABLE demographic_category (id int,name varchar(4));
可能不是正确的.