----------------------android培训、java培训、期待与您交流! ----------------------
一、实验环境
操作系统:Windows Sever2003
数据库软件:SQL Sever2005
二、实验内容:
本次作业给出的数据集中包含了多家银行业务处理信息,现在我们希望通过建立一个数据仓库对业绩进行分析,了解各业务的运营情况,以期对日常业务处理(诸如发放贷款额度,用户信用卡等级等)提供决策支持。请从如下三方面对数据进行分析:
1.针对各地区、各银行,对订单(order)总额进行分析。
2.针对不同的时间、不同地区、不同银行,分析账户交易(trans)情况, 包括交易前额度、交易额和结余。
3. 针对不同时间、不同地区、不同贷款状态,分析贷款(loan)情况,包括贷款总额,已还款额、未还款额。
三、数据仓库的逻辑模型(结构设计说明)
(一)针对各地区、各银行,对订单(order)总额进行分析。
(二)针对不同的时间、不同地区、不同银行,分析账户交易(trans)情况, 包括交易前额度、交易额和结余。
(三)针对不同时间、不同地区、不同贷款状态,分析贷款(loan)情况,包括贷款总额,已还款额、未还款额。
四、事实表、维度表及其维的概念层次说明
(一)事实表
1. VIEW_CUBE1:以地区维度和银行维度的主键district_id和 bank_id 作为外键。字
段“moneys”和“times”通过聚合函数得到。
2. VIEW_CUBE2:以交易时间维度、交易银行维度和地区维度的主键transTime_id、transBank_id 和district_id做外键。字段“交易前额度”、“交易额”和“结余”通过聚合函数
得到。
3. VIEW_CUBE3:以贷款时间维度、贷款状态维度和地区维度的主键loanTime_id、loanStatus_id 和district_id。字段“贷款总额”、“已还款”和“未还款”通过聚合函数
得到。
(二)维表
1.银行维度:提取order表中的所有的接受银行分类。
2.地区维度:提取district表中的所有region(大地区)和district(小地区)分类。
3.交易时间维度:提取trans表中的交易日期,以years、months、days为三份量,粒度依次变细。表示以年、月、日为单位对数据进行分析。
4.交易银行维度:提取trans表中的所有交易银行分类。
5.贷款时间维度:提取loan表中贷款日期,以years、months、days为三份量,粒度依次变细。表示以years、moths、days为单位对数据进行分析。
6.贷款时间维度:提取loan表中的所有贷款状态分类。
五、数据库还原并建立关系数据库视图如下
六、数据预处理
(一)对account表进行清洗
/*------account表的约束------*/
--以下语句选出业务发生频率不符的列及空值,选出0行,说明此处无噪
select * from account where frequency not in ('POPLATEK MESICNE','POPLATEK TYDNE','POPLATEK PO OBRATU')
--以下语句为account表添加主键约束和业务发生频率类型约束
ALTER TABLE account
ADD CONSTRAINT PK_account_id PRIMARY KEY(account_id),
CONSTRAINT CK_frequency CHECK(frequency IN('POPLATEK MESICNE','POPLATEK TYDNE','POPLATEK PO OBRATU'))
GO