数据仓库与数据挖掘实验一 数据仓库的构建.docx
- 文档编号:4397906
- 上传时间:2022-12-01
- 格式:DOCX
- 页数:11
- 大小:229.44KB
数据仓库与数据挖掘实验一 数据仓库的构建.docx
《数据仓库与数据挖掘实验一 数据仓库的构建.docx》由会员分享,可在线阅读,更多相关《数据仓库与数据挖掘实验一 数据仓库的构建.docx(11页珍藏版)》请在冰豆网上搜索。
数据仓库与数据挖掘实验一数据仓库的构建
昆明理工大学信息工程与自动化学院学生实验报告
(2015—2016学年第1学期)
课程名称:
数据库仓库与数据挖掘开课实验室:
信自楼2342015年11月12日
年级、专业、班
计科122
学号
201210405204
姓名
邹华宇
成绩
实验项目名称
实验一数据仓库的构建
指导教师
周海河
教师评语
该同学是否了解实验原理:
A.了解□B.基本了解□C.不了解□
该同学的实验能力:
A.强□B.中等□C.差□
该同学的实验是否达到要求:
A.达到□B.基本达到□C.未达到□
实验报告是否规范:
A.规范□B.基本规范□C.不规范□
实验过程是否详细记录:
A.详细□B.一般□C.没有□
教师签名:
年月日
一、实验目的、内容与要求
目的:
1.理解数据库与数据仓库之间的区别与联系;
2.掌握典型的关系型数据库及其数据仓库系统的工作原理以及应用方法;
3.掌握数据仓库建立的基本方法及其相关工具的使用。
内容:
以SQLServer为系统平台,设计、建立数据库,并以此为基础创建数据仓库。
要求:
利用实验室和指导教师提供的实验软件,认真完成规定的实验项目,真实地记录实验中遇到的各种问题和解决的方法与过程,并绘出模拟实验案例的数据仓库模型。
实验完成后,应根据实验情况写出实验报告。
二、实验原理及基本技术路线图(方框原理图)
数据库(DataBase,DB)是长期存储在计算机内、有组织的、统一管理的相关数据的集合。
DB能为各种用户共享,具有较小的冗余度、数据间联系紧密而又有较高的数据独立性等特点。
构成的三要素是数据结构、数据操作、约束性条件。
数据仓库是在原有关系型数据库基础上发展形成的,但不同于数据库系统的组织结构形式,它从原有的业务数据库中获得的数据形成当前基本数据层,经过综合后形成轻度综合数据层,轻度综合数据再经过综合后形成高度综合数据层。
数据仓库结构包括当前基本数据(currentdetaildata)、历史基本数据(olderdetaildata)、轻度综合数据(lightlysummarizeddata)、高度综合数据(highlysummarizeddata)和元数据(metadata)。
数据仓库系统由数据仓库、仓库管理和分析工具3部分组成,结构形式如下图所示:
数据仓库的逻辑数据模型是多维结构的数据视图,也称多维数据模型。
对于逻辑数据模型,可以使用不同的存储机制和表示模式来实现多维数据模型。
目前使用的多维数据模型主要有星型模型、雪花模型、星网模型、第三范式等。
ETL过程在开发数据仓库时,占去70%的工作量。
ETL过程的主要步骤概括为:
(1)决定数据仓库中需要的所有的目标数据;
(2)决定所有的数据源,包括内部和外部的数据源;
(3)准备从源数据到目标数据的数据映射关系;
(4)建立全面的数据抽取规则;
(5)决定数据转换和清洗规则;
(6)为综合表制定计划;
(7)组织数据缓冲区域和检测工具;
(8)为所有的数据装载编写规程;
(9)维度表的抽取、转换和装载;
(10)事实表的抽取、转换和装载。
三、所用仪器、材料(设备名称、型号、规格等)
操作系统平台:
Win7
数据库平台:
MicrosoftSQLServer2008
四、实验方法、步骤
本次实验使用MicrosoftSQLServer的示例数据库AdventureWorks,用其用户订单模型相关数据建立数据仓库。
AdventureWorks由来:
AdventureWorksCycles,AdventureWorks示例数据库所基于的虚构公司,是一家大型跨国生产公司。
公司生产金属和复合材料的自行车,产品远销北美、欧洲和亚洲市场。
公司总部设在华盛顿州的伯瑟尔市,拥有290名雇员,而且拥有多个活跃在世界各地的地区性销售团队。
1、登录MicrosoftSQLServer2008
登录名:
localhost
2、使用SQL语句构建数据库
(1)还原数据库
(2)建立数据
--建立数据
USEcd
CREATEDATABASE[DW]ONPRIMARY
(NAME=N'DW',FILENAME=N'G:
\DW.mdf')
LOGON
(NAME=N'DW_log',FILENAME=N'G:
\DW_log.ldf')
GO
(3)建立数据库:
数据库→新建数据库
(4)建维表
USEDW
--------------------------------
--1、建维表
/*1.1订单方式*/
CREATETABLEDIM_ORDER_METHOD
(ONLINEORDERFLAGINT,DSCVARCHAR(20))
/*1.2销售人员及销售地区*/
CREATETABLEDIM_SALEPERSON
(SALESPERSONIDINT,
DSCVARCHAR(20),
SALETERRITORY_DSCVARCHAR(50))
/*1.3发货方式*/
CREATETABLEDIM_SHIPMETHOD
(SHIPMETHODIDINT,DSCVARCHAR(20))
/*1.4订单日期*/
CREATETABLEDIM_DATE
(TIME_CDVARCHAR(8),
TIME_MONTHVARCHAR(6),
TIME_YEARVARCHAR(6),
TINE_QUAUTERVARCHAR(8),
TIME_WEEKVARCHAR(6),
TIME_XUNVARCHAR(4))
/*1.5客户*/
CREATETABLEDIM_CUSTOMER
(CUSTOMERIDINT,
CUSTOMER_NAMEVARCHAR(100),
CUSTOMERTYPEVARCHAR(20),
AGEINT,
SEXVARCHAR
(2),
MaritalStatusVARCHAR(10),
YearlyIncomeVARCHAR(50),
EducationVARCHAR(50),
OccupationVARCHAR(50),
NumberCarsOwnedINT,
TotalChildrenINT,
COUNTRY_NAMEVARCHAR(100),
STATEPROVINCE_NAMEVARCHAR(100),
CITY_NAMEVARCHAR(100))
/*1.6订单状态*/
CREATETABLEDIM_ORDER_STATUS
(STATUSINT,
DSCVARCHAR(30))
/*1.7客户价值*/
CREATETABLEV_SUBTOTAL_VALUES
(ORDER_VALUES_IDINT,
DSCVARCHAR(30),
MIN_VALUEINT,
MAX_VALUEINT)
(5)建维度表的ETL
--二、维度表的ETL
-------------------------------------
INSERTINTODIM_ORDER_METHOD
VALUES(0,'销售人员')
INSERTINTODIM_ORDER_METHOD
VALUES(1,'客户在线')
INSERTINTODIM_SHIPMETHOD
SELECTShipMethodID,NAMEFROMcd.Purchasing.ShipMethod
INSERTINTODIM_SALEPERSON
SELECTA.SalesPersonID,'',B.Name
FROMcd.Sales.SalesPersonA,cd.Sales.SalesTerritoryB
WHEREA.TerritoryID=B.TerritoryID
INSERTINTODIM_ORDER_STATUS
VALUES(1,'处理中')
INSERTINTODIM_ORDER_STATUS
VALUES(2,'已批准')
INSERTINTODIM_ORDER_STATUS
VALUES(3,'预订')
INSERTINTODIM_ORDER_STATUS
VALUES(4,'已拒绝')
INSERTINTODIM_ORDER_STATUS
VALUES(5,'已发货')
INSERTINTODIM_ORDER_STATUS
VALUES(6,'已取消')
INSERTINTOV_SUBTOTAL_VALUES
VALUES(1,'0-100',0,100)
INSERTINTOV_SUBTOTAL_VALUES
VALUES(2,'100-500',100,500)
INSERTINTOV_SUBTOTAL_VALUES
VALUES(3,'500-1000',500,1000)
INSERTINTOV_SUBTOTAL_VALUES
VALUES(4,'1000-2000',1000,2000)
INSERTINTOV_SUBTOTAL_VALUES
VALUES(5,'2000-5000',2000,5000)
INSERTINTOV_SUBTOTAL_VALUES
VALUES(6,'5000以上',5000,1000000000)
declare@daydateTIME
SET@day='2001-01-01'
while@day<'2005-01-01'
BEGIN
insertintoDIM_DATE
SELECTCONVERT(CHAR(8),@day,112),
CONVERT(CHAR(6),@day,112),
CONVERT(CHAR(4),@day,112)+'年',
'第'+CAST(DATEname(QUARTER,@day)ASVARCHAR
(1))+'季度',
DATEname(weekday,@day),
caseWHENDATEPART(DAY,@day)<11THEN'上旬'WHENDATEPART(DAY,@day)<21THEN'中旬'ELSE'下旬'END
SELECT@day=DATEADD(DAY,1,@day)
END
INSERTINTODIM_CUSTOMER
SELECTA.CustomerID,G.FirstName,CASEWHENA.CustomerType='I'THEN'个人'ELSE'商店'END,
DATEDIFF(YEAR,Demographics.value('declarenamespacezhh="
(/zhh:
IndividualSurvey/zhh:
BirthDate)[1]','VARCHAR(10)'),GETDATE()),
Demographics.value('declarenamespacezhh="
(/zhh:
IndividualSurvey/zhh:
Gender)[1]','VARCHAR
(2)'),
Demographics.value('declarenamespacezhh="
(/zhh:
IndividualSurvey/zhh:
MaritalStatus)[1]','VARCHAR(10)'),
Demographics.value('declarenamespacezhh="
(/zhh:
IndividualSurvey/zhh:
YearlyIncome)[1]','VARCHAR(20)'),
Demographics.value('declarenamespacezhh="
(/zhh:
IndividualSurvey/zhh:
Education)[1]','VARCHAR(20)'),
Demographics.value('declarenamespacezhh="
(/zhh:
IndividualSurvey/zhh:
Occupation)[1]','VARCHAR(20)'),
Demographics.value('declarenamespacezhh="
(/zhh:
IndividualSurvey/zhh:
NumberCarsOwned)[1]','int'),
Demographics.value('declarenamespacezhh="
(/zhh:
IndividualSurvey/zhh:
TotalChildren)[1]','int'),
F.Name,E.Name,D.City
FROMcd.Sales.CustomerA,
cd.Sales.IndividualB,
cd.Sales.CustomerAddressC,
cd.Person.AddressD,
cd.Person.StateProvinceE,
cd.Person.CountryRegionF,
cd.Person.ContactG
WHEREA.CustomerID=B.CustomerID
ANDA.CustomerID=C.CustomerID
ANDC.AddressID=D.AddressID
ANDD.StateProvinceID=E.StateProvinceID
ANDE.CountryRegionCode=F.CountryRegionCode
ANDB.ContactID=G.ContactID
执行SQL语句后
(6)建事实表
--三、建事实表
CREATETABLEFACT_SALEORDER(
SALEORDERIDINT,
TIME_CDVARCHAR(8),
STATUSINT,
ONLINEORDERFLAGINT,
CUSTOMERIDINT,
SALESPERSONIDINT,
SHIPMETHODINT,
ORDER_VALUESINT,
SUBTOTALDECIMAL(10,2),
TAXAMTDECIMAL(10,2),
FREIGHTDECIMAL(10,2))
(7)建事实表的ETL
--四、事实表的ETL
/*4.1FACT_SALEORDER的ETL*/
TRUNCATETABLEFACT_SALEORDER
INSERTINTOFACT_SALEORDER
SELECTSalesOrderID,CONVERT(CHAR(8),A.OrderDate,112),
A.Status,A.OnlineOrderFlag,ISNULL(A.CustomerID,0),ISNULL(A.SalesPersonID,0),A.ShipMethodID,B.ORDER_VALUES_ID,A.SubTotal,A.TaxAmt,A.Freight
FROMcd.Sales.SalesOrderHeaderA,
V_SUBTOTAL_VALUESB
WHEREA.SubTotal>=B.MIN_VALUEANDA.SubTotal --缺省值处理 INSERTINTODIM_CUSTOMER selectDISTINCTCUSTOMERID,'未知','商店',0,'N','N','未知','未知','未知',0,0,'未知','未知','未知'fromFACT_SALEORDER whereCUSTOMERIDnotin(SELECTCUSTOMERID FROMdbo.DIM_CUSTOMER) 执行SQL语句后 五、实验过程原始记录(数据、图表、计算等) 将还原后的数据库(cd)的数据转到建立好数据库(DW)维度表和事实表后,如图: 六、实验结果、分析和结论(误差分析与数据处理、成果总结等。 ) 通过本次实验,我掌握了建立数据仓库的一般步骤: 首先分析业务模型和客户需求,从而确定数据源,建立分析主题,然后设计数据仓库表结构,最后根据设计的表和数据源进行ETL,其中有些表的数据可能需要手动生成,有些表的数据需要从数据源获得,并且经常需要对数据进行转换以符合数据仓库的需要,这是数据仓库建立过程中比较重要的一个步骤,同时工作量也比较大。 在构建数据仓库时出现了一些问题,但是都在老师的指导和同学的帮助下解决了,在以后的学习和生活中会不断对数据库和数据仓库进行探索。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据仓库与数据挖掘 实验一 数据仓库的构建 数据仓库 数据 挖掘 实验 构建
![提示](https://static.bdocx.com/images/bang_tan.gif)