加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sql – 如何设计一个星型模式

发布时间:2020-12-12 08:45:00 所属栏目:MsSql教程 来源:网络整理
导读:我很困惑,我应该从哪里开始设计一个星型模式. 例如 我有数据库中的表如下: Branch(branchNo,bStreetAddress,bCity)LoanManager(empNo,empName,phone,branchNo)Customer(custNo,custName,profession,streetAddress,city,state)Account(accNo,accType,balance,
我很困惑,我应该从哪里开始设计一个星型模式.

例如
我有数据库中的表如下:

Branch(branchNo,bStreetAddress,bCity)
LoanManager(empNo,empName,phone,branchNo)
Customer(custNo,custName,profession,streetAddress,city,state)
Account(accNo,accType,balance,accDate,custNo)
LoanContract(contractNo,loanType,amount,loanDate,empNo,custNo)

我想设计一个数据仓库来分析负载
如 :

> 2008年贷款总额.
>对于贷款类型超过10种,贷款类型和合同数量

创建星型模式时,应该从哪里开始?

对于我的理解,所有的星型模式都必须有一个中心,而中心事实表包含“度量”和“与其他事实表的关系”.

那么,是在设计星型模式时,我们总是从中心开始,
确定首先是什么措施?然后选择与另一个事实表的正确关系?

但我还有另一个问题,我们应该选择做“措施”?
在选择措施时,我应该问一些问题?

解决方法

星型模式的设计始终由客户的业务需求驱动.问题是什么?答案应该如何细微?

在您的例子中,有趣的问题可能是“分行或贷款管理人员的合同数量”或“分行或贷款管理人员的贷款总额”.在这种情况下,Branch和LoanManager将成为您的维度,而Count(LoanContract)和Sum(LoanContract.amount)将成为您的尺寸.常见的附加维度是时间,通常是周或季度.

回答这些问题的模式可能如下所示:

DimBranch ( branchNo )
DimLoanManager ( empNo )
DimQuarter ( year,qNo )  -- qNo in (1,2,3,4)
DimWeek ( year,weekNo )  -- weekNo in (0..53),depending on business rules

Measures ( branchNo,year,qNo,weekNo,numContracts,sumLoans )

对于您在问题上已经提出的业务问题,维度和措施将是如此:

> dimension:year,measure:Sum(LoanContract.amount)
> dimension:loanType,measure:Count(LoanContract)

把这两个都放在同一个星型模式中并没有什么意义,因为它们既不共享维度也没有措施.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读