数据仓库的建立实验一Word格式.doc
《数据仓库的建立实验一Word格式.doc》由会员分享,可在线阅读,更多相关《数据仓库的建立实验一Word格式.doc(9页珍藏版)》请在冰豆网上搜索。
![数据仓库的建立实验一Word格式.doc](https://file1.bdocx.com/fileroot1/2022-10/19/e529f84e-8c73-4cd4-a237-c15cef71cc33/e529f84e-8c73-4cd4-a237-c15cef71cc331.gif)
该同学的实验是否达到要求:
A.达到□ B.基本达到□ C.未达到□
实验报告是否规范:
A.规范□ B.基本规范□ C.不规范□
实验过程是否详细记录:
A.详细□ B.一般□ C.没有□
教师签名:
年月日
一、实验内容和目的
目的:
1.理解数据库与数据仓库之间的区别与联系;
2.掌握典型的关系型数据库及其数据仓库系统的工作原理以及应用方法;
3.掌握数据仓库建立的基本方法及其相关工具的使用。
二、实验原理及基本技术路线图(方框原理图)
数据库(DataBase,DB)是长期存储在计算机内、有组织的、统一管理的相关数据的集合。
DB能为各种用户共享,具有较小的冗余度、数据间联系紧密而又有较高的数据独立性等特点。
构成的三要素是数据结构、数据操作、约束性条件。
三、所用仪器、材料(设备名称、型号、规格等)
PC机和MicrosoftSQLServer2008
四、实验方法、步骤
1、登录SQL Server
登录名:
localhost
2、使用SQL语句构建数据库
(1)还原数据库
(2)建立数据
--建立数据
USEcd
CREATEDATABASE[DW]ONPRIMARY
(NAME=N'
DW'
FILENAME=N'
G:
\DW.mdf'
)
LOGON
DW_log'
\DW_log.ldf'
)
GO
(3)建立数据库:
数据库→新建数据库
(4)建维表
①SQL语句
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,'
销售人员'
)
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,'
处理中'
VALUES(2,'
已批准'
VALUES(3,'
预订'
VALUES(4,'
已拒绝'
VALUES(5,'
已发货'
VALUES(6,'
已取消'
INSERTINTOV_SUBTOTAL_VALUES
0-100'
0,100)
100-500'
100,500)
500-1000'
500,1000)
1000-2000'
1000,2000)
2000-5000'
2000,5000)
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'
个人'
商店'
END,
DATEDIFF(YEAR,Demographics.value('
declarenamespacezhh="
(/zhh:
IndividualSurvey/zhh:
BirthDate)[1]'
'
VARCHAR(10)'
),GETDATE()),
Demographics.value('
Gender)[1]'
VARCHAR
(2)'
),
MaritalStatus)[1]'
YearlyIncome)[1]'
VARCHAR(20)'
Education)[1]'
Occupation)[1]'
Demograp