数据仓库的建立实验一

合集下载

数据仓库与数据挖掘实验一(数据仓库的构建)

数据仓库与数据挖掘实验一(数据仓库的构建)

一、实验内容和目的目的:1.理解数据库与数据仓库之间的区别与联系;2.掌握典型的关系型数据库及其数据仓库系统的工作原理以及应用方法;3.掌握数据仓库建立的基本方法及其相关工具的使用。

内容:以SQL Server为系统平台,设计、建立数据库,并以此为基础创建数据仓库。

二、所用仪器、材料(设备名称、型号、规格等)操作系统平台:Windows 7数据库平台:SQL Server 2008 SP2三、实验原理数据仓库是在原有关系型数据库基础上发展形成的,但不同于数据库系统的组织结构形式,它从原有的业务数据库中获得的数据形成当前基本数据层,经过综合后形成轻度综合数据层,轻度综合数据再经过综合后形成高度综合数据层。

数据仓库结构包括当前基本数据(current detail data)、历史基本数据(older detail data)、轻度综合数据(lightly summarized data)、高度综合数据(highly summarized data)和元数据(meta data)。

数据仓库系统由数据仓库、仓库管理和分析工具3部分组成,结构形式如下图所示:数据仓库的逻辑数据模型是多维结构的数据视图,也称多维数据模型。

对于逻辑数据模型,可以使用不同的存储机制和表示模式来实现多维数据模型。

目前使用的多维数据模型主要有星型模型、雪花模型、星网模型、第三范式等。

ETL过程在开发数据仓库时,占去70%的工作量。

ETL过程的主要步骤概括为:(1)决定数据仓库中需要的所有的目标数据;(2)决定所有的数据源,包括内部和外部的数据源;(3)准备从源数据到目标数据的数据映射关系;(4)建立全面的数据抽取规则;(5)决定数据转换和清洗规则;(6)为综合表制定计划;(7)组织数据缓冲区域和检测工具;(8)为所有的数据装载编写规程;(9)维度表的抽取、转换和装载;(10)事实表的抽取、转换和装载。

四、实验方法、步骤要求:利用实验室和指导教师提供的实验软件,认真完成规定的实验项目,真实地记录实验中遇到的各种问题和解决的方法与过程,并绘出模拟实验案例的数据仓库模型。

数据仓库实验报告

数据仓库实验报告

数据仓库实验报告本次实验的目的是设计和构建一个数据仓库,并通过使用该数据仓库来进行数据分析。

本报告将分为三个部分:实验设计、实验过程和结果分析。

一、实验设计1. 数据需求:选取了一个电商平台的数据作为实验对象,包括订单数据、用户信息数据、产品数据等。

2. 数据清洗和预处理:对原始数据进行了清洗和预处理,包括数据去重、缺失值处理等。

3. 数据模型设计:根据需求,设计了一个星型模型,以订单信息作为事实表,以用户信息和产品信息作为维度表。

4. 数据仓库构建:使用开源的数据仓库工具进行了数据仓库的构建,包括创建表结构、导入数据等。

二、实验过程1. 数据清洗和预处理:首先对原始数据进行了去重操作,保证数据的唯一性。

然后对缺失值进行了处理,采用填充的方式进行处理。

2. 数据模型设计:根据数据需求,设计了一个星型模型,以订单信息表作为事实表,以用户信息表和产品信息表作为维度表。

通过主键和外键的关系,将这些表进行了关联。

3. 数据仓库构建:使用开源的数据仓库工具,将设计好的数据模型导入到数据仓库中,并创建相应的表结构。

然后将清洗好的数据导入到对应的表中。

三、结果分析1. 数据质量评估:对数据仓库中的数据进行质量评估,包括数据准确性、完整性等。

通过查询数据仓库中的数据,对每个维度表和事实表的数据进行了验证。

2. 数据分析:通过在数据仓库上进行复杂查询和分析操作,获取了一些有价值的信息。

例如:最受用户欢迎的产品、用户购买行为的趋势等。

根据实验结果可以得出以下结论:1. 数据仓库可以提供高效的数据访问和分析能力,对于大规模数据的查询和分析非常高效。

2. 数据仓库可以提供数据一致性和数据质量保证的能力,可以对数据进行清洗和预处理操作。

3. 数据仓库可以满足复杂查询和分析需求,可以提供多维分析、数据挖掘等功能。

总结:本次实验通过设计和构建一个数据仓库,对电商平台的数据进行了分析,得到了一些有价值的信息。

通过实验,我们了解到数据仓库的设计和构建过程,并掌握了使用数据仓库进行数据分析的方法和技巧。

数据库实验报告范文

数据库实验报告范文

实验一建立数据库班级:姓名:学号:分数:一、实验目的1、理解SQL Server 数据库的存储结构;2、掌握SQL Server数据库的建立方法和维护方法。

二、实验内容1、创建数据库(1)要求:创建一个test1数据库,该数据库的主数据文件逻辑名称为test1_data,物理文件名为test1.mdf,初始大小为10MB,最大尺寸为无限大,增长速度为10%;数据库的事务日志文件逻辑名称为test1_log,物理文件名为test1.ldf,初始大小为1MB,最大尺寸为5MB,增长速度为1MB。

并且要求主数据文件和事务日志文件的物理位置在不同的硬盘上。

(2)创建一个指定多个数据文件和日志文件的数据库。

该数据库名称为test2,有1个10MB 和1个20MB的数据文件和2个10MB的事务日志文件。

数据文件逻辑名称为test2_1和test2_2,物理文件名为test2_1.mdf和test2_2.mdf。

主文件是test2_1,由primary指定,两个数据文件的最大尺寸分别为无限大和100MB,增长速度分别为10%和1MB。

事务日志文件的逻辑名为test2_log1和test2_log2,物理文件名为test2_log1.ldf和test2_log2.ldf,最大尺寸均为50MB,文件增长速度为1MB。

(3)使用文件组创建数据库test3。

使用三个文件组(含主文件组,即默认的文件组),每个文件组包含两个数据文件,并且每个文件组要安排在不同的硬盘上。

2、修改数据库(1)修改建立的test1数据库,为之添加一个5MB大小的新数据文件。

(2)修改test1数据库,将其中的主数据文件增加一个5MB的存储空间。

3、删除建立的数据库。

三、实验过程1、创建数据库(1)创建test1数据库的步骤:在SQL Server的查询分析器中输入命令如下:create database test1on(name=test1_data,filename='f:\sqltest1\test1.mdf',size=10mb,filegrowth=10%)log on(name=test1_log,filename='f:\sqltest2\test1.ldf',size=1mb,maxsize=5mb,filegrowth=1mb)(2)创建test2数据库的步骤:在SQL Server的查询分析器中输入命令如下:create database test2onprimary(name=test2_1,filename='f:\sqltest1\test2_1.mdf',size=10mb,filegrowth=10%),(name=test2_2,filename='f:\sqltest1\test2_2.ndf',size=20mb,filegrowth=1mb)log on(name=test2_log,filename='f:\sqltest1\test2_log1.ldf',size=10mb,maxsize=50mb,filegrowth=1mb),(name=test1_log,filename='f:\sqltest1\test2_log2.ldf',size=10mb,maxsize=50mb,filegrowth=1mb)(3)创建test3数据库的步骤:(这里的例子给出定义了两个文件组,一个是默认的,它包括两个文件test3_1.mdf和test3_2.mdf,令一个是group1组,也包括两个文件test3_3.mdf和test3_3.mdf。

北京理工大学-数据库-实验1-建立数据库

北京理工大学-数据库-实验1-建立数据库

北京理工大学数据库实验1主讲老师:赵晓林学生:李经2012/11/20实验 1:建立数据库 (1)1.1 作业声明 (1)1.2 实验目的 (1)1.2.1 熟悉数据库环境、建立表、插入数据、删除数据 (1)1.3 实验过程 (1)1.3.1 建立“学籍与成绩管理系统”表格 (1)1.3.2 使用“INSERT ”语句向主表插入至少5行数据,向子表插入至少30行数据; (2)1.3.3 在子表中输入含有不存在外键值的数据; (4)1.3.4 使用SELECT * FROM ......观察数据; (4)1.3.5 更新部分学生的学籍情况、成绩 (4)1.3.6 删除部分同学的学籍信息 (5)1.3.7 使用所有学习的查询语句对表格的进行查询(自拟题目) (5)1.4 实验结论 (7)1.5 实验体会 (7)实验 1:建立数据库1.1 作业声明本次作业全部由本人完成,若存在抄袭或雷同现象,本人愿意接受老师相应的处理1.2 实验目的1.2.1熟悉数据库环境、建立表、插入数据、删除数据1.3 实验过程1.3.1建立“学籍与成绩管理系统”表格•建立表之间的参照关系•建立适当的索引1.3.1.1 sql代码:create database xuejicreate table xb --系表(xdh char(2) not null PRIMARY KEY,xmc varchar(30) not null,)create table xs --学生表(xm varchar(8) not null,xh char(10) not null PRIMARY KEY,xdh char(2) FOREIGN KEY REFERENCES xb(xdh),bj char(8),chrq datetime,xb char(2),)create table kc --课程表(kcbh char(3) not null PRIMARY KEY,kcmc char(20) not null,lx char(10),xf decimal(5,1),)create table js --教师表(xm varchar(8) not null,jsbh char(10) not null PRIMARY KEY,zc char(6),xdh char(2) FOREIGN KEY REFERENCES xb(xdh),)create table sk --授课表(kcbh char(3) not null FOREIGN KEY REFERENCES kc(kcbh),jsbh char(10) not null FOREIGN KEY REFERENCES js(jsbh),constraint kj_pk PRIMARY KEY (kcbh,jsbh))create table xk --选课表(xh char(10) not null FOREIGN KEY REFERENCES xs(xh),kcbh char(3) not null FOREIGN KEY REFERENCES kc(kcbh),jsbh char(10) not null FOREIGN KEY REFERENCES js(jsbh),cj decimal(5,1),constraint xkj_pk PRIMARY KEY (xh,kcbh,jsbh))create index s_xs on xs(xh); --建立索引建立索引原因:提高查询速度1.3.2使用“INSERT ”语句向主表插入至少5行数据,向子表插入至少30行数据;1.3.2.1 Sql代码insert into xb values('01','计算机');insert into xb values('02','数学');insert into xb values('03','经济');insert into xb values('04','法律');insert into xb values('05','中文');insert into xs values('王一','1120100001','01','08111001','1990-1-1','男');insert into xs values('王二','1120100002','01','08111001','1990-1-2','男');insert into xs values('王三','1120100003','01','08111001','1990-1-3','男');insert into xs values('王四','1120100004','01','08111001','1990-1-4','男');insert into xs values('王五','1120100005','01','08111001','1990-1-5','男');insert into xs values('王六','1120100006','01','08111001','1990-1-6','男');insert into xs values('张一','1120100007','02','08111002','1990-2-1','男');insert into xs values('张二','1120100008','02','08111002','1990-2-2','男');insert into xs values('张三','1120100009','02','08111002','1990-2-3','男');insert into xs values('张四','1120100010','02','08111002','1990-2-4','男');insert into xs values('张五','1120100011','02','08111002','1990-2-5','男');insert into xs values('张六','1120100012','02','08111002','1990-2-6','男');insert into xs values('李一','1120100013','02','08111003','1990-3-1','男');insert into xs values('李二','1120100014','02','08111003','1990-3-1','男');insert into xs values('李三','1120100015','02','08111003','1990-3-1','男');insert into xs values('李四','1120100016','02','08111003','1990-3-1','男'); insert into xs values('李五','1120100017','02','08111003','1990-3-1','男'); insert into xs values('李六','1120100018','02','08111003','1990-3-1','男'); insert into xs values('陈一','1120100019','04','08111004','1990-4-1','女'); insert into xs values('陈二','1120100020','04','08111004','1990-4-1','女'); insert into xs values('陈三','1120100021','04','08111004','1990-4-1','女'); insert into xs values('陈四','1120100022','04','08111004','1990-4-1','女'); insert into xs values('陈五','1120100023','04','08111004','1990-4-1','女'); insert into xs values('陈六','1120100024','04','08111004','1990-4-1','女'); insert into xs values('孙一','1120100025','05','08111005','1990-5-1','男'); insert into xs values('孙二','1120100026','05','08111005','1990-5-1','男'); insert into xs values('孙三','1120100027','05','08111005','1990-5-1','男'); insert into xs values('孙四','1120100028','05','08111005','1990-5-1','男'); insert into xs values('孙五','1120100029','05','08111005','1990-5-1','男'); insert into xs values('孙六','1120100030','05','08111005','1990-5-1','男');insert into kc values('001','操作系统','必修','3');insert into kc values('002','模拟电子技术基础','必修','3.5');insert into kc values('003','数据库原理与设计','必修','3');insert into kc values('004','数字图象处理','专业选修','3');insert into kc values('005','游戏设计概论','专业选修','2');insert into js values('郭靖','9920100001','高级','01');insert into js values('黄蓉','9920100002','一级','02');insert into js values('郭襄','9920100003','二级','03');insert into js values('杨过','9920100004','高级','04');insert into js values('杨康','9920100005','一级','05');insert into sk values('001','9920100001');insert into sk values('002','9920100002');insert into sk values('003','9920100003');insert into sk values('004','9920100004');insert into sk values('005','9920100005');insert into xk values('1120100001','001','9920100001','90');insert into xk values('1120100002','001','9920100001','80');insert into xk values('1120100003','001','9920100001','70');insert into xk values('1120100004','001','9920100001','60');insert into xk values('1120100005','001','9920100001','50');insert into xk values('1120100001','002','9920100002','95');insert into xk values('1120100002','002','9920100002','85');insert into xk values('1120100003','002','9920100002','75');insert into xk values('1120100004','002','9920100002','65');insert into xk values('1120100005','002','9920100002','55');insert into xk values('1120100001','003','9920100003','75');insert into xk values('1120100002','003','9920100003','80');insert into xk values('1120100003','003','9920100003','80');insert into xk values('1120100004','003','9920100003','90');insert into xk values('1120100005','003','9920100003','70');insert into xk values('1120100001','004','9920100004','74');insert into xk values('1120100002','004','9920100004','88');insert into xk values('1120100003','005','9920100005','68');insert into xk values('1120100004','005','9920100005','67');insert into xk values('1120100005','005','9920100005','80');1.3.3在子表中输入含有不存在外键值的数据;•观察数据库系统的反应1.3.3.1 Sql代码insert into xs values('钱一','1120100090','06','08111005','1990-5-1','男');1.3.3.2 执行结果系统显示:消息547,级别16,状态0,第1 行INSERT 语句与FOREIGN KEY 约束"FK__xs__xdh__54968AE5"冲突。

实验1 数据库创建-实验报告

实验1 数据库创建-实验报告

实验一创建数据库和表一、实验目的和要求熟悉上机环境和查询分析器界面;掌握如何启动、停止服务管理器和企业管理器的方法;掌握如何用企业管理器定义数据库、表、约束,如何向表中添加、修改、输出记录,如何查看表的内容等操作;掌握如何在查询分析器中,执行SQL语句、分析语句的执行结果;掌握如何在查询分析器中,用DDL语言定义数据库、表、约束,并用最简单的INSERT语句向表中添加记录。

二、实验内容及指导1.○1启动服务管理器○2使用企业管理器,创建StudentInfo数据库○3在该数据库里定义Students、Courses、Enrollment3个表,问题是开始的时候不清楚如何添加约束,后来知道是在默认值或绑定处添加,也可以右击列名,选择CHECK约束添加○4向3个表中添加若干记录,因为有约束存在,所以如果输入不在约束范围内就会报错。

○5查看已创建的数据库和3个表的内容2.实验2的“提高操作”,具体内容如下:表3- 1图书表结构表3- 2读者表结构表3- 3借阅表结构用SQL语句创建的数据库不知道放在了哪里,创建的3个表也不知道放在了哪里,而且那三个表建完后不在图书馆数据库里面,后来找到了图书馆数据库在安装盘D盘底下的DA TA文件中,3个表在master数据库里,于是又在每个表的前面加了一句话“USE 图书馆 GO”重新保存之后这三个表就在图书馆数据库里面了。

还有一个办法是这样建数据库,如创建一个名为scd3的数据库:create database scd3on primary(name='scd3',filename='g:\scd2\scd3.mdf')log on(name='scd3_log',filename='g:\scd2\scd3_log.ldf')这样所创建的数据库就放在了g盘底下scd2文件夹中。

USE scd3CREATE TABLE用户(ID CHAR(8)PRIMARY KEY,NAME NVARCHAR(20)NOT NULL,PWD NVARCHAR(20)NOT NULL)GO新建的用户表即在scd3数据库中。

实验一 数据仓库的创建

实验一  数据仓库的创建

实验一数据仓库的创建(2学时)
【实验要求】
了解某种数据库管理系统,如oracle、MS SQL Server等的使用;了解数据库系统提供的数据仓库功能,利用现有的数据库系统设计并创建一个数据仓库。

【实验内容】
步骤1:熟悉现有的数据库系统,了解其中的数据仓库功能。

步骤2:利用现有的数据库系统创建一个数据库。

步骤3:针对数据库中的数据,面向某一主题域设计数据仓库结构。

步骤4:创建数据仓库。

实验二 OLAP分析(6学时)
【实验要求】
利用创建的数据仓库设计并实现数据仓库上的一系列操作。

【实验内容】
步骤1:实现数据仓库上的上卷和下钻操作,能够显示原始数据和操作结果。

(2学时)
步骤2:实现数据仓库上的CUBE操作,能够显示原始数据和操作结果。

(4学时)。

数据挖掘-实验一 数据仓库的构建(实验报告)

数据挖掘-实验一 数据仓库的构建(实验报告)

实验一数据仓库的构建
一、实验目的
1.理解数据库与数据仓库之间的区别与联系;
2.掌握典型的关系型数据库及其数据仓库系统的工作原理以及应用方法;
3.掌握数据仓库建立的基本方法及其相关工具的使用。

二、实验要求
利用实验室和指导教师提供的实验软件,认真完成规定的实验项目,真实地记录实验中
遇到的各种问题和解决的方法与过程,并绘出模拟实验案例的数据仓库模型。

实验完成后,应根据实验情况写出实验报告。

三、实验平台
Microsoft SQL Server 2000 的Analysis Services
四、实验方法与步骤
1、建立系统数据源连接
(1)、启动 Analysis Manager
(2)建立数据库结构(3)建立数据源
3、建立多维数据集
(1)打开多维数据集向导
(3)建立时间维度
(4)建立产品维度
(5)建立客户维度
(6)何生成商店维度
(7)完成多维数据集的生成
(1)启用多维数据集编辑器
(2)向现有多维数据集添加维度
5、设计存储和处理多维数据集
(1)使用多维数据集浏览器查看多维数据集数据
(2)替换网格中的维度
(3)按时间筛选数据
7、存档教程数据库
五、实验心得。

实验1 数据库建立数据库

实验1 数据库建立数据库

实验1 建立数据库实验目的:理解sql server数据库的存储结构,掌握sql server数据库的建立方法和维护方法。

实验内容:在sql server环境下建立数据库和维护数据库。

用可视化方法建立数据库:1、在企业管理器中建立一个数据库,数据文件和日志文件放在自己建立的文件夹下;用命令方式建立数据库:1、创建数据库test1,要求指定一个数据文件、一个事务日志文件,并把它们安排在不同的磁盘上;2、创建数据库test2,要求使用3个数据文件盒两个事务日志文件;3、创建数据库test3,要求使用3个文件组,每个文件组包含两个数据文件,并且每个文件组要安排在不同的磁盘上;4、修改建立的数据库test1,为之添加一个5MB大小的新数据文件;5、修改建立的数据库test2,将其中的主数据文件增加5MB的存储空间;6、删除建立的数据库test1。

实验方法:在sql server环境下用create database命令建立数据库,用alter database命令修改数据库,用drop database命令删除数据库。

实验相关知识:1、数据库的逻辑结构和物理结构;2、创建、修改、删除数据库的命令。

参考sql语句:create database test1on(name='test1_data',filename='e:\db1\test1_data.mdf' )log on(name='test1_log',filename='f:\db1\test1_log.ldf')create database test2on(name='test2_data1',filename='e:\db1\test2_data1.mdf' ),(name='test2_data2',filename='e:\db1\test2_data2.ndf' ),(name='test2_data3',filename='e:\db1\test2_data3.ndf' )log on(name='test2_log1',filename='f:\db2\test2_log1.ldf' ),(name='test2_log2',filename='f:\db2\test2_log2.ldf' )create database test3on primary(name='test3_data1',filename='d:\db\test3_data1.mdf' ),(name='test3_data2',filename='d:\db\test3_data2.ndf' ),filegroup fg2(name='test3_data3',filename='e:\db\test3_data3.ndf'(name='test3_data4',filename='e:\db\test3_data4.ndf' ),filegroup fg3(name='test3_data5',filename='f:\db\test3_data5.ndf' ),(name='test3_data6',filename='f:\db\test3_data6.ndf')log on(name='test3_log1',filename='f:\db\test3_log1.ldf')alter database test1add file(name='test1_data2',filename='f:\db1\test1_data2.ndf', size=3MB)alter database test2modify file(name='test2_data1',size=8MB)drop database test1。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

昆明理工大学信息工程与自动化学院学生实验报告(2014 —2015 学年第 1 学期)课程名称:数据库仓库与数据挖掘开课实验室:信自楼4442014 年12月28日一、实验内容和目的目的:1.理解数据库与数据仓库之间的区别与联系;2.掌握典型的关系型数据库及其数据仓库系统的工作原理以及应用方法;3.掌握数据仓库建立的基本方法及其相关工具的使用。

二、实验原理及基本技术路线图(方框原理图)数据库(DataBase,DB)是长期存储在计算机内、有组织的、统一管理的相关数据的集合。

DB能为各种用户共享,具有较小的冗余度、数据间联系紧密而又有较高的数据独立性等特点。

构成的三要素是数据结构、数据操作、约束性条件。

三、所用仪器、材料(设备名称、型号、规格等)PC机和Microsoft SQL Server 2008四、实验方法、步骤1、登录SQL Server登录名:localhost2、使用SQL语句构建数据库(1)还原数据库(2)建立数据--建立数据USE cdCREATE DATABASE[DW]ON PRIMARY(NAME=N'DW',FILENAME=N'G:\DW.mdf')LOG ON(NAME=N'DW_log',FILENAME=N'G:\DW_log.ldf') GO(3)建立数据库:数据库→新建数据库(4)建维表①SQL语句USE DW----------------------------------1、建维表/*1.1 订单方式*/CREATE TABLE DIM_ORDER_METHOD(ONLINEORDERFLAG INT,DSC VARCHAR(20))/*1.2 销售人员及销售地区*/CREATE TABLE DIM_SALEPERSON(SALESPERSONID INT,DSC VARCHAR(20),SALETERRITORY_DSC VARCHAR(50))/*1.3 发货方式*/CREATE TABLE DIM_SHIPMETHOD (SHIPMETHODID INT,DSC VARCHAR(20))/*1.4 订单日期*/CREATE TABLE DIM_DATE(TIME_CD VARCHAR(8),TIME_MONTH VARCHAR(6),TIME_YEAR VARCHAR(6),TINE_QUAUTER VARCHAR(8),TIME_WEEK VARCHAR(6),TIME_XUN VARCHAR(4))/*1.5 客户*/CREATE TABLE DIM_CUSTOMER (CUSTOMERID INT,CUSTOMER_NAME VARCHAR(100), CUSTOMERTYPE VARCHAR(20),AGE INT,SEX VARCHAR(2),MaritalStatus VARCHAR(10), YearlyIncome VARCHAR(50),Education VARCHAR(50),Occupation VARCHAR(50), NumberCarsOwned INT,TotalChildren INT,COUNTRY_NAME VARCHAR(100), STATEPROVINCE_NAME VARCHAR(100), CITY_NAME VARCHAR(100))/*1.6 订单状态*/CREATE TABLE DIM_ORDER_STATUS (STATUS INT,DSC VARCHAR(30))/*1.7 客户价值*/CREATE TABLE V_SUBTOTAL_VALUES (ORDER_VALUES_ID INT,DSC VARCHAR(30),MIN_VALUE INT,MAX_VALUE INT)(5)建维度表的ETL①SQL语句--二、维度表的ETL-------------------------------------INSERT INTO DIM_ORDER_METHODVALUES (0,'销售人员')INSERT INTO DIM_ORDER_METHODVALUES (1,'客户在线')INSERT INTO DIM_SHIPMETHODSELECT ShipMethodID,NAME FROM cd.Purchasing.ShipMethodINSERT INTO DIM_SALEPERSONSELECT A.SalesPersonID,'',FROM cd.Sales.SalesPerson A,cd.Sales.SalesTerritory B WHERE A.TerritoryID=B.TerritoryIDINSERT INTO DIM_ORDER_STATUSVALUES(1,'处理中')INSERT INTO DIM_ORDER_STATUSVALUES(2,'已批准')INSERT INTO DIM_ORDER_STATUSVALUES(3,'预订')INSERT INTO DIM_ORDER_STATUSVALUES(4,'已拒绝')INSERT INTO DIM_ORDER_STATUSVALUES(5,'已发货')INSERT INTO DIM_ORDER_STATUSVALUES(6,'已取消')INSERT INTO V_SUBTOTAL_VALUESVALUES(1,'0-100',0,100 )INSERT INTO V_SUBTOTAL_VALUESVALUES(2,'100-500',100,500 )INSERT INTO V_SUBTOTAL_VALUESVALUES(3,'500-1000',500,1000 )INSERT INTO V_SUBTOTAL_VALUESVALUES(4,'1000-2000',1000,2000 )INSERT INTO V_SUBTOTAL_VALUESVALUES(5,'2000-5000',2000,5000 )INSERT INTO V_SUBTOTAL_VALUESVALUES(6,'5000以上',5000,1000000000 )declare@day dateTIMESET@day='2001-01-01'while@day<'2005-01-01'BEGINinsert into DIM_DATESELECT CONVERT(CHAR(8),@day,112),CONVERT(CHAR(6),@day,112),CONVERT(CHAR(4),@day,112)+'年','第'+CAST(DATEname(QUARTER,@day)AS VARCHAR(1))+'季度',DATEname(weekday,@day),case WHEN DATEPART(DAY,@day)<11 THEN'上旬'WHEN DATEPART(DAY,@day)<21 THEN'中旬'ELSE'下旬'ENDSELECT@day=DATEADD(DAY,1,@day)ENDINSERT INTO DIM_CUSTOMERSELECT A.CustomerID,G.FirstName,CASE WHEN A.CustomerType='I'THEN'个人'ELSE'商店'END,DATEDIFF(YEAR,Demographics.value('declare namespace zhh="/sqlserver/2004/07/adventure-works/Individual Survey";(/zhh:IndividualSurvey/zhh:BirthDate)[1]','VARCHAR(10)'),GETDATE()), Demographics.value('declare namespace zhh="/sqlserver/2004/07/adventure-works/Individual Survey";(/zhh:IndividualSurvey/zhh:Gender)[1]','VARCHAR(2)'),Demographics.value('declare namespace zhh="/sqlserver/2004/07/adventure-works/Individual Survey";(/zhh:IndividualSurvey/zhh:MaritalStatus)[1]','VARCHAR(10)'),Demographics.value('declare namespace zhh="/sqlserver/2004/07/adventure-works/Individual Survey";(/zhh:IndividualSurvey/zhh:YearlyIncome)[1]','VARCHAR(20)'),Demographics.value('declare namespace zhh="/sqlserver/2004/07/adventure-works/Individual Survey";(/zhh:IndividualSurvey/zhh:Education)[1]','VARCHAR(20)'),Demographics.value('declare namespace zhh="/sqlserver/2004/07/adventure-works/Individual Survey";(/zhh:IndividualSurvey/zhh:Occupation)[1]','VARCHAR(20)'),Demographics.value('declare namespace zhh="/sqlserver/2004/07/adventure-works/IndividualSurvey";(/zhh:IndividualSurvey/zhh:NumberCarsOwned)[1]','int'),Demographics.value('declare namespace zhh="/sqlserver/2004/07/adventure-works/Individual Survey";(/zhh:IndividualSurvey/zhh:TotalChildren)[1]','int'),,,D.CityFROM cd.Sales.Customer A,cd.Sales.Individual B,cd.Sales.CustomerAddress C,cd.Person.Address D,cd.Person.StateProvince E,cd.Person.CountryRegion F,cd.Person.Contact GWHERE A.CustomerID=B.CustomerIDAND A.CustomerID=C.CustomerIDAND C.AddressID=D.AddressIDAND D.StateProvinceID=E.StateProvinceIDAND E.CountryRegionCode=F.CountryRegionCodeAND B.ContactID=G.ContactID②执行SQL语句后(6)建事实表--三、建事实表CREATE TABLE FACT_SALEORDER(SALEORDERID INT,TIME_CD VARCHAR(8),STATUS INT,ONLINEORDERFLAG INT,CUSTOMERID INT,SALESPERSONID INT,SHIPMETHOD INT,ORDER_VALUES INT,SUBTOTAL DECIMAL(10,2),TAXAMT DECIMAL(10,2),FREIGHT DECIMAL(10,2))(7)建事实表的ETL①SQL语句--四、事实表的ETL/*4.1 FACT_SALEORDER的ETL*/TRUNCATE TABLE FACT_SALEORDERINSERT INTO FACT_SALEORDERSELECT SalesOrderID,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.FreightFROM cd.Sales.SalesOrderHeader A,V_SUBTOTAL_VALUES BWHERE A.SubTotal>=B.MIN_VALUE AND A.SubTotal<B.MAX_VALUE--缺省值处理INSERT INTO DIM_CUSTOMERselect DISTINCT CUSTOMERID,'未知','商店',0,'N','N','未知','未知','未知',0,0,'未知','未知','未知'from FACT_SALEORDERwhere CUSTOMERID not in(SELECT CUSTOMERIDFROM dbo.DIM_CUSTOMER)②执行SQL语句后五、实验过程原始记录(数据、图表、计算等)将还原后的数据库(cd)的数据转到建立好数据库(DW)维度表和事实表后,效果如下图六、实验结果、分析和结论(误差分析与数据处理、成果总结等。

相关文档
最新文档