数据仓库课程设计pubs出版物分析系统.docx
- 文档编号:12907790
- 上传时间:2023-04-22
- 格式:DOCX
- 页数:39
- 大小:2.54MB
数据仓库课程设计pubs出版物分析系统.docx
《数据仓库课程设计pubs出版物分析系统.docx》由会员分享,可在线阅读,更多相关《数据仓库课程设计pubs出版物分析系统.docx(39页珍藏版)》请在冰豆网上搜索。
数据仓库课程设计pubs出版物分析系统
数据仓库课程设计说明书
题目pubs出版物分析系统
系(部)信息与计算科学
专业(班级)信息与计算科学
(2)班
姓名
学号
指导教师
起止日期2011-5-20到2011-5-24
数据仓库课程设计任务书
专业信息与计算科学
班级09级1、2班
指导老师
任务书发出时间2012-5-9
信息与计算科学系
2012年5月9日
课程设计任务书
课程
数据仓库课程设计
题目
pubs出版物分析系统
序号
8
主
要
内
容
基于pubs数据库,创建数据库仓库并进行数据分析,要求满足以下分析需求。
(说明:
销售情况指销售总额、销售数量)
1.按时间级别分析不同出版社(按国家、洲、城市、具体出版社)的销售情况;
2.按时间级别分析各书店(按国家、洲、城市、具体出版社)的销售情况;
3.按时间级别分析不同作者的销售情况;
4.按时间级别分析不同雇员的销售情况;
5.按时间级别分析不同折扣的销售情况;
6.通过浏览器和报表方式分析以上需求。
要
求
基本要求
1.按需求完成详细的设计,包括事实表和维度的设计;
2.按设计方案选择相关数据表以及各表的字段,表之间的关系;
3.有详细的数据准备方案,包括验证、清理、转换、装载等;
4.合并employee中lname和fname字段为name;
5.将discounts的discount字段值划分为高、中、低、无等四个等级;
6.按设计方案构建多维数据集;
7.按需求分析数据。
高级要求
可分析销售总额的年增长率;
工作计划
及进度
提前两周:
分组、选题;
提前一周:
明确需求分析、组内分工;
第一天:
与指导老师讨论,确定需求、分工,并开始设计;
第二~四天:
构建多维数据集、分析数据;
第五天:
完成设计说明书,答辩;
第六天:
针对答辩意见修改设计说明书,打印、上交。
指导教师签字谭义红陈治平赵碧海
2012年5月3日
教研室
审定意见
同意实施
签字陈治平
2012年5月5日
长沙学院课程设计鉴定表
姓名
学号
专业
信息与计算科学
班级
2
设计题目
pubs出版物分析系统
指导教师
指导教师意见:
评定等级:
教师签名:
日期:
答辩小组意见:
评定等级:
答辩小组长签名:
日期:
教研室意见:
教研室主任签名:
日期:
系(部)意见:
系主任签名:
日期:
说明
课程设计成绩分“优秀”、“良好”、“及格”、“不及格”四类;
长沙学院课程设计鉴定表
姓名
学号
专业
信息与计算科学
班级
2
设计题目
Pubs出版物分析系统
指导教师
指导教师意见:
评定等级:
教师签名:
日期:
答辩小组意见:
评定等级:
答辩小组长签名:
日期:
教研室意见:
教研室主任签名:
日期:
系(部)意见:
系主任签名:
日期:
说明
课程设计成绩分“优秀”、“良好”、“及格”、“不及格”四类;
第1章系统需求
1.1系统背景
本系统是对pubs出版物的数据进行多维分析.该数据库包括authors、discounts、sales等数据表.这些表所记录的主要信息如下表所示:
表1.1pubs数据库中的表信息
序号
表名
名称
含义
1
authors
作者表
记录作者的基本信息,例如作者的电话
2
discounts
折扣表
记录折扣的基本信息,例如折扣的金额
3
employee
雇员表
记录雇员的基本信息,例如雇员的姓名
4
jobs
工作表
记录工作的基本信息,例如工作职位
5
publishers
出版社表
记录出版社的基本信息,例如出版社的名称
6
sales
销售表
记录销售的基本信息,例如销售的日期
7
stores
书店表
记录书店的基本信息,例如书店的地址
8
titles
图书表
记录图书的基本信息,例如图书的价格
9
roysched
版税表
记录版税的基本信息
10
titleauthor
图书和作者关系表
记录图书和作者的关系
11
pub_info
出版社
描述表
记录对出版社的描述信息
12
sales_s
事实表
记录各表之间的联系
1.2系统需求
基于pubs数据库,创建数据库仓库并进行数据分析,要求满足以下分析需求.
1.按时间级别分析不同出版社(按国家、洲、城市、具体出版社)的销售情况;
2.按时间级别分析各书店(按国家、洲、城市、具体出版社)的销售情况;
3.按时间级别分析不同作者的销售情况;
4.按时间级别分析不同雇员的销售情况;
5.按时间级别分析不同折扣的销售情况;
6.通过浏览器和报表方式分析以上需求。
组内分工
曾杉清:
主要负责需求分析、数据准备以及事实表构建
刘大泽:
主要负责多维数据集的构建以及报表打印
第2章数据仓库设计
2.1问题域的确定
从以上的系统需求可以得到以下信息:
(1)分析的主题
pubs出版物的数据分析.
(2)分析的数值(事实)
按时间级别分析不同出版社、不同书店、不同作者、不同雇员、不同折扣的销售情况,包括销售金额和销售数量.
(3)分析的角度(维度)
出版社维度、书店维度、作者维度、雇员维度、折扣维度.
(4)分析的粒度(维度级别)
出版社:
pbu_id、pub_name、country、state、city.
书店:
stor_id、stor_name、state、city.
作者:
au_id、au_fname、state、city.
雇员:
emp_id、qname.
折扣:
discount、discountrype.
根据对需求进行分析,得到pubs事实模式图,如图2.1所示.
图2.1pubs事实模式图
2.2识别事实数据和维度数据
识别pubs数据库的事实数据和维度数据.
pubslishers表:
pub_id基于事实表
pub_name,city,state,country属于出版社维度的字段
stores表:
stor_id属于主键
stor_name属于书店维度字段
authors表:
au_id属于主键
au_name属于作者维度的字段。
employee表:
emp_id基于事实表
name属于雇员维度的字段。
discounts表:
discount属于折扣维度的字段
store_id属于书店维度字段。
sales_s表:
pub_id属于出版社维度字段
stor_id属于书店维度字段
au_id属于作者维度字段
emp_id属于雇员维度字段
ora_date属于时间维度字段
discount属于折扣维度
Price,qty,total基于事实表
2.3事实表设计
表2.1事实表的设计
字段
数据类型
来源
功能描述
连接字段
ord_num
varchar(20)
sales
订单编号
stor_id
char(4)
store
商店编号
title_id
varchar(8)
sales
书本编号
pub_id
char(4)
publisher
出版社编号
ord_date
datetime
sales
销售时间
au_id
varchar(11)
authors
作者编号
emp_id
char(9)
employee
雇员编号
discount
decimal(4,2)
discounts
折扣
度量值
qty
smallint
sales
销售数量
total
real
sales
销售总额
price
money
sales
商品单价
2.4粒度设计
出版社:
pbu_id、pub_name、country、state、city.
书店:
stor_id、stor_name、state、city.
作者:
au_id、au_fname、state、city.
雇员:
emp_id、qname.
折扣:
discount、discountrype.
2.5维度设计
出版社表
表2.2出版社维度
字段
数据类型
功能描述
pub_id
char(4)
出版社ID
pub_name
varchar(40)
出版社名称
city
varchar(20)
出版社所在城市
state
char
(2)
出版社所在州
country
varchar(30)
出版社所在国家
书店表
表2.3书店维度
字段
数据类型
功能描述
ctor_id
char(4)
书店ID
stor_name
varchar(40)
书店名称
city
varchar(20)
书店所在城市
state
char
(2)
书店所在州
雇员表
表2.4雇员维度
字段
数据类型
功能描述
Emp_id
char(9)
雇员ID
qname
varchar(50)
雇员名字
折扣表
表2.5折扣维度
字段
数据类型
功能描述
discounttype
varchar(40)
折扣类型
discount
decimal(4,2)
折扣
第3章数据准备
3.1数据表的筛选
根据事实表和维度表的设计,从pubs数据库中选出有用的数据,用SQL语句建立事实表.并从pubs数据库中选出authors,discounts,employee,jobs,
pub-infopublishers,sales,stores,titleauthors,titles等有用的数据表并对数据进行分析.
SQL语句编写:
createviewsales_v
asselectord_num,stor_id,a.title_id,b.pub_id,ord_date,qty,b.price,total=(qty*b.price)fromsalesajointitlesbona.title_id=b.title_id
createviewsales_b
asselectord_num,a.stor_id,a.title_id,a.pub_id,ord_date,qty,price,total,
b.emp_id,c.au_idfromsales_va,employeeb,titleauthorcwherea.pub_id=b.pub_idanda.title_id=c.title_id
createviewsales_c
asselectord_num,a.stor_id,a.title_id,a.pub_id,ord_date,qty,price,total,
a.emp_id,a.au_id,b.discountfromsales_baleftjoindiscountsbona.stor_id=b.stor_id
select*intosales_sfromsales_c
3.2数据验证
在建立多维数据集之前需对数据的参照完整性进行验证,并对不完整的数据进行必要的处理,如补充主码值或删除不符合参照完整性约束的外键内容.
(1)对authors数据表的参照完整性验证
SELECTDISTINCTau_idFROMauthorsWHEREau_id
NOTIN(SELECTau_idFROMtitleauthor)
(2)对discounts数据表的参照完整性验证
SELECTDISTINCTstor_idFROMdiscountsWHERE
stor_idNOTIN(SELECTstor_idFROMstores)
(3)对employee数据表的参照完整性验证
SELECTDISTINCTpub_idFROMemployeeWHEREpub_id
NOTIN(SELECTpub_idFROMpublishers)
(4)对jobs数据表的参照完整性验证
SELECTDISTINCTjob_idFROMjobsWHEREjob_idNOTIN(SELECTjob_idFROMemployee)
(5)对pub_info数据表的参照完整性验证
SELECTDISTINCTpub_idFROMpub_infoWHEREpub_id
NOTIN(SELECTpub_idFROMpublishers)
(6)对publishers数据表的参照完整性验证
SELECTDISTINCTpub_idFROMpublishersWHEREpub_idNOTIN(SELECTstor_idFROMpub_info)
(7)对sales数据表的参照完整性验证
SELECTDISTINCTtitle_idFROMsalesWHEREtitle_idNOTIN(SELECTtitle_idFROMtitles)
(8)对stores数据表的参照完整性验证
SELECTDISTINCTstor_idFROMstoreWHEREstor_idNOTIN(SELECTstor_idFROMsales_a)
(9)对titleauthor数据表的参照完整性验证
SELECTDISTINCTtitle_idFROMtitleauthorWHEREtitle_idNOTIN(SELECTtitle_idFROMtitles)
(10)对titles数据表的参照完整性验证
SELECTDISTINCTpub_idFROMtitlesWHEREpub_idNOTIN
(SELECTpub_idFROMpublishers)
3.2数据清理
3.2.1冗余数据的处理
以authors表为例
select*fromauthors--查询authors表中的所有记录数
selectdistinct*fromauthors--查询authors表中去除重复行后的记录数看两次查询的记录数是否统一,依次对其他表进行查询,显示结果均为记录数相同,说明所有数据表中不存在重复行.
3.2.2空值的处理
编写SQL语句,检查分析所需要的数值、维度字段是否包含空值,如果包含,则采用相应策略替换空值
使用“select*from表名”查找各表中是否有空值
查询结果显示,discounts表中lowqty和highqty存在空值,将lowqty列都替换成100、highqty列替换成1000代码为
UPDATEdiscountsSETlowqty=100
WHERElowqtyISNULL
UPDATEdiscountsSEThighqty=1000
WHERElowqtyISNULL
Publishers表中state列中存在空值,处理方案是若CITY相同,则STATE相同,SQL语句:
Selecet*frompublishers
Updatepublisherssetstate=(selectstatefrompublisherswherecity(selectdityfrompublisherswherestateisnull)andstateisnotnull)wherestateisnull.
Titles表中存在空值,因为单条记录空值太多,而且不存在依赖关系,处理方案为删除该条记录,代码为:
Deletefromtitleswheretitle_id=’mca3026’
其他表没有空值
3.2.3不规范数据的处理
编写SQL语句,检查分析所需要的数值、维度字段是否包含缺失数据、无用空格数据,如果包含,则采用相应策略处理.
使用“select*from表名”查找各表中是否有不规范数据.
查询结果显示employee表中存在不规范数据,替换方案为将所有minit列中的不规范数据替换成V,SQL语句:
Updateemployeesetminit=’V’.
3.3数据转换
3.3.1数据类型的转换
检查日期字段均为标准格式,所以不需要再转换格式.
3.3.2对象名的转换
编写SQL语句,对英文表名或字段转换为中文
将authors字段改为“作者”,SQL语句:
execsp_renameauthors,’作者’;
将discounts字段改为“折扣”,SQL语句:
execsp_renamediscounts,’折扣’;
将employee字段改为“雇员”,SQL语句:
execsp_renameemployee,’雇员’;参照如上形式,以及表1.1的信息将对应英文表名或字段转换为中文.
第4章多维数据集构建
4.1创建项目
使用VisualStudio创建项目
图4.1新建项目
4.2创建多维数据集
1、新建多维数据集
图4.2新建数据集
2、定义度量值
图4.3定义度量值
3、定义维度
图4.4定义维度
4、定义时间段
图4.5定义时间段
5、指定日历
图4.6指定日历
6、定义维度用法
图4.7定义维度用法
7、完成并立即生成架构
图4.8完成创建多维数据集并立即生成架构
4.3创建数据源和视图
1、选择定义连接
图4.9选择定义连接
2、连接数据库
图4.10连接数据库
3、使用服务账户
图4.11选择使用服务账户
4、主题区域数据库架构选项设置
图4.12主题区域数据库架构选项设置
5、成功生成架构
图4.13成功生成架构
4.4替换数据表和建立关系
1、选择所要替换的表,右键如图
图4.14开始替换表
2、选择所要替换成的表
图4.15选择目的表
3、完成所有表的替换
图4.16所有表替换完成
4、点击事实表新建关系
4.17新建关系
5、创建关系具体操作
4.18选择关系
6、依次建立事实表与出版社、书店表、作者表、雇员表、折扣表、时间表之间的关系,如图:
4.19关系建立完成
4.5修改事实和维度属性
1、右击,选择属性
4.20修改度量值属性
2、修改Source属性
4.21修改Source属性
3、依次修改qty、total、unitprice属性值
4、将右表中的各列拖入左边,如图:
4.22将所需字段拖入左边
5、修改维度属性,右击,选择属性
4.23修改维度属性
6、分别修改KeyClumns属性
4.24修改KeyClumns属性
7、修改NameClumns属性
4.25修改NameClumns属性
8、依照步骤4、5、6、7分别修改出版社、书店、作者、雇员、折扣维度属性.
4.6修改维度用法
1、点击图中所圈
4.26修改维度用法
2、下拉,选择度量值
4.27选择度量值
3、按照上述两步,分别修改日期、出版社、书店、作者、雇员、折扣维度
4.7修改分区
1、选择分区栏,点击存储设置
4.28存储设置
2、将滑动条从右拉至HOLAP
4.29存储设置具体操作
4.8部署及多维数据集
1、部署成功
图4.30部署成功
2、构建多维数据集,根据需求设计相应的数据集
图4.31构建多维数据集
第5章数据分析
5.1MDX分析
1、按时间级别分析不同出版社(按国家、洲、城市、具体出版社)的销售情况
select
crossjoin({[时间].[年].[年]},{[Measures].[qty],[Measures].[total]})oncolumns,
crossjoin([出版社].[PubName].[PubName],[出版社].[Country].[Country],
[出版社].[State].[State],[出版社].[City].[City])onrows
from[新建多维数据集]
图5.1MDX查询1
2、按时间级别分析各书店(按国家、洲、城市、具体出版社)的销售情况
select
crossjoin({[时间].[年].[年]},{[Measures].[total]})oncolumns,
crossjoin([书店].[StorName].[StorName],[书店].[State].[State],[书店].[City].[City])onrows
from[新建多维数据集]
图5.2MDX查询2
3、按时间级别分析不同作者的销售情况
select
([作者].[AuFname].[AuFname])oncolumns,
crossjoin([时间].[年].[年],[Measures].[total])onrows
from[新建多维数据集]
图5.3MDX查询3
4、按时间级别分析不同雇员的销售情况
select
crossjoin({[时间].[年].[年]},{[Measures].[qty],[Measures].[total]})oncolumns,
[雇员].[Qname].[Qname]onrows
from[新建多维数据集]
图5.4MDX查询4
5、按时间级别分析不同折扣的销售情况
select
crossjoin({[时间].[年].[年]},{[Measures].[qty],[Measures].[total]})oncolumns,
crossjoin({[折扣].[Discounttype].[Discounttype]},{[折扣].[Discount].[Discount]})onrows
from[新建多维数据集]
图5.5MDX查询5
5.2报表分析
1.按时间级别分析不同出版社(按国家、洲、城市、具体出版社)的销售情况;
2.按时间级别分析各书店(按国家、洲、城市、具体出版社)的销售情况;
3.按
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据仓库 课程设计 pubs 出版物 分析 系统