黑马程序员____数据清洗实验

这篇博客介绍了如何在Windows Sever2003和SQL Sever2005环境下,通过数据清洗建立数据仓库,对银行订单、账户交易和贷款情况进行分析,涉及地区、银行、时间、交易额、贷款状态等多个维度。内容涵盖事实表和维表的设计、数据预处理、汇总表建立以及多维数据集架构和立方体展现。
摘要由CSDN通过智能技术生成

----------------------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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值