数据仓库中建立星型模型

0
mysql中有个employee的例子,其中有6张表:
employee:里面有员工编号,名字,性别等信息
dept_emp:有员工编号,部门编号和员工属于部门的起止日期
department:部门编号和部门名称
dept_manager:即部门管理人员的信息,里面包含部门编号,管理人员编号和起止日期
titles:有员工编号,和员工所属职称以及职称所对应的起止日期
salary:有员工编号,薪水和获得薪水的起止日期

要用这个例子建立星型模型,解决下面三个问题:
1)公司每个员工每月的薪资分别是多少?
2)哪些部门每个月开出的薪资比较高?
3)哪种职称的每月得到的薪资比较高?
这个星型模型怎么建啊,要弄几个维度表?关键是日期维度怎么搞,求大神指教啊
已邀请:
1

BAO胖子 - 15年BI经验,涉足电力,快消品,医药,信息服务等行业的BI老兵。 2015-10-20 回答

假设:月薪水按照员工当月最后一天薪水计算。
 
dim_dept: dept_skey, dept_name
dim_employee: employee_skey, employee_name, employee_current_tittle
dim_title: tittle_skey, tittle_name
dim_month: month_skey, month_name, month_year
fact_employee_salary: month_skey, employee_skey, title_skey, dept_skey, salary_amt
 
以上是仅仅满足你提出的三个需求而设计的,所以员工工资的start date, end date信息会丢失
0

老头子 - 专注是唯一的捷径 2015-10-21 回答

抛开员工、部门等维表的缓慢变化不讨论的话
 1)公司每个员工每月的薪资分别是多少?--- salary 关联 employee表 得出
2)哪些部门每个月开出的薪资比较高? --- salary 关联 department 和employee  得出
3)哪种职称的每月得到的薪资比较高? --- salary 关联 titles 和employee  得出
 
所以:
1. 你的salary表需要增加部门ID 和 时间ID即可
2. 增加时间维表
3. 维表和之前保持一致
 
其他没什么了。

要回复问题请先登录注册