sql – 如何设计一个星型模式
我很困惑,我应该从哪里开始设计一个星型模式.
例如 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年贷款总额. 创建星型模式时,应该从哪里开始? 对于我的理解,所有的星型模式都必须有一个中心,而中心事实表包含“度量”和“与其他事实表的关系”. 那么,是在设计星型模式时,我们总是从中心开始, 但我还有另一个问题,我们应该选择做“措施”? 解决方法星型模式的设计始终由客户的业务需求驱动.问题是什么?答案应该如何细微?在您的例子中,有趣的问题可能是“分行或贷款管理人员的合同数量”或“分行或贷款管理人员的贷款总额”.在这种情况下,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) 把这两个都放在同一个星型模式中并没有什么意义,因为它们既不共享维度也没有措施. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |