1、 Ralph Kimball(Microsoft SQL Server产品开发产品开发团队的实现者、顾问组成员团队的实现者、顾问组成员)根据数据仓库设计的一根据数据仓库设计的一般规律,提出了数据仓库设计的九个步骤:般规律,提出了数据仓库设计的九个步骤:第一步:选择主题的内容第一步:选择主题的内容第二步:确定如何表达事实表第二步:确定如何表达事实表第三步:识别并确认维度第三步:识别并确认维度第四步:选择事实第四步:选择事实第五步:在事实表中存储事先计算的公式第五步:在事实表中存储事先计算的公式第六步:修饰维度表第六步:修饰维度表第七步:选择数据库的持续时间第七步:选择数据库的持续时间第八步:跟踪
2、变化缓慢的维度第八步:跟踪变化缓慢的维度第九步:决定查询优先级别和查询方式第九步:决定查询优先级别和查询方式4.4 CRM数据仓库设计示例数据仓库设计示例SQL Server 2000的安装与进入企业管理器的安装与进入企业管理器SQL Server 2000 的某些功能要求在的某些功能要求在Microsoft Windows 2000 Server以上的版本才能运行。以上的版本才能运行。因此大家安装因此大家安装Windows Server 2000(建议为建议为Advanced版本版本),可以学习和使用到,可以学习和使用到SQL Server 2000的更多功能,以及享受更好的性能。的更多功能
3、,以及享受更好的性能。安装完成后,会在安装完成后,会在开始菜单开始菜单 程序程序中创建中创建SQL Server 2000程序组程序组,里面有很多管理工具,一般,里面有很多管理工具,一般用的最多的就是用的最多的就是“企业管理器企业管理器”。1安装初始界面,选择相应安装初始界面,选择相应SQL2000版本版本2选择选择“安装安装SQL Server 2000 组件组件”3选择选择“安装数据库服务器安装数据库服务器”4下一步下一步5在在“本地计算机本地计算机”创建或修改创建或修改“SQL实例实例”6如果想创建一个新的如果想创建一个新的SQL2000服务实例,选第一服务实例,选第一项;如果想删除修改
4、已有实例就选第二项项;如果想删除修改已有实例就选第二项7这个名字随意,默认的就是计算机名这个名字随意,默认的就是计算机名8许可协议,当然是许可协议,当然是“YES”“是是”了了 9我们学习我们学习SQL2000,当然要服务器端和客户端全,当然要服务器端和客户端全部安装了,不然很多操作就做不了部安装了,不然很多操作就做不了10初次安装默认名字就是计算机名!如果想改用别的初次安装默认名字就是计算机名!如果想改用别的名字,就把名字,就把“默认默认”前的勾去掉,在下面的文本框里写前的勾去掉,在下面的文本框里写11这步很重要,自己选择安装组件,以及安装路径,这步很重要,自己选择安装组件,以及安装路径,建
5、议不要安装在系统盘,安装到别的盘上去,至少保建议不要安装在系统盘,安装到别的盘上去,至少保留留1G可用空间!可用空间!12一般一般“使用本地系统帐户使用本地系统帐户”,远程服务器才用域,远程服务器才用域13登陆验证,我们一般选登陆验证,我们一般选“混合模式混合模式”,密码最好,密码最好自己设置一个不易破解的了,这里的使用自己设置一个不易破解的了,这里的使用“空密码空密码”是为了学习方便才采用的,注意!是为了学习方便才采用的,注意!14启动启动SQL 2000服务器:开始菜单服务器:开始菜单程序程序Microsoft SQL Server服务管理器服务管理器在图中点击在图中点击“开始继续开始继续
6、”,选中,选中“当启动当启动OS时时自动启动服务自动启动服务”。如果不希望自动启动,则在每。如果不希望自动启动,则在每次使用演示环境前需要重新按照此说明启动。次使用演示环境前需要重新按照此说明启动。15.开始菜单开始菜单-程序程序-SQL Server程序组程序组-企业管理器企业管理器启动启动SQL Server企业管理器企业管理器4.4.1 SQL Server 2000数据仓库简介数据仓库简介I/O通过通过Data Transformation Services 实现。实现。SQL Server提供了比较完善的元数据服务,通过提供了比较完善的元数据服务,通过与默认知识库(与默认知识库(Mi
7、crosoft Repository)数据库集)数据库集成,共享有关的元数据。成,共享有关的元数据。SQL Server OLAP Services支持在线分析处理。支持在线分析处理。PivotTable Services提供客户端提供客户端OLAP数据访问。数据访问。Microsoft Management Console提供日程安排、提供日程安排、存储管理、性能监测、报警和通知的核心管理。存储管理、性能监测、报警和通知的核心管理。Access和和Excel可以作为数据展现工具。可以作为数据展现工具。4.4.2 概念模型概念模型设计设计数据仓库是面向主题、集成的、相对稳定的,反数据仓库是面向
8、主题、集成的、相对稳定的,反映历史变化的数据集合,它整合了在线联机处理映历史变化的数据集合,它整合了在线联机处理过程中产生的过程中产生的零散的、杂乱的、面向处理的数据零散的、杂乱的、面向处理的数据。客户数据处理一般面向几个核心主题:客户数据处理一般面向几个核心主题:客户销售客户销售事实信息事实信息、客户销售机会信息客户销售机会信息、客户抱怨信息客户抱怨信息和和客户关怀信息客户关怀信息等。等。数据仓库数据模型多采用数据仓库数据模型多采用星型关系构架星型关系构架,以一个,以一个核心的主题数据表核心的主题数据表(称为称为事实表事实表)为中心,其他关为中心,其他关系表系表(维表维表)通过主键外键关系同
9、主体数据表关联,通过主键外键关系同主体数据表关联,维表之间没有直接的关联关系。维表之间没有直接的关联关系。例如,例如,客户抱怨客户抱怨作为一个主题,其星型架构由一作为一个主题,其星型架构由一个事实表和个事实表和5个维表构成。个维表构成。事实表事实表:客户抱怨客户抱怨维表维表:相关产品相关产品维表维表:客户客户维表维表:抱怨时间抱怨时间维表维表:抱怨接受员工抱怨接受员工维表维表:抱怨处理部门抱怨处理部门SQL Server 2000提供的示例数据库提供的示例数据库Northwind作作为为OLTP基础数据库,介绍基础数据库,介绍客户销售主题客户销售主题数据仓数据仓库的设计。库的设计。需求分析:需
10、求分析:多角度多层次分析客户的销售事实,多角度多层次分析客户的销售事实,为客户关系管理提供依据。如:方便得到具体客为客户关系管理提供依据。如:方便得到具体客户的销售数据,得到不同客户在不同产品上的销户的销售数据,得到不同客户在不同产品上的销售数据,分析不同地区的销售情况,分析不同时售数据,分析不同地区的销售情况,分析不同时间的销售情况等。间的销售情况等。分析基础分析基础OLTP数据库数据库,辨别事实数据和维数据。,辨别事实数据和维数据。Northwind是一个商贸公司销售数据库,它存储是一个商贸公司销售数据库,它存储了:订单数据、客户数据、产品数据、员工数据、了:订单数据、客户数据、产品数据、
11、员工数据、供货商数据等。以交易为处理单位,关系复杂,供货商数据等。以交易为处理单位,关系复杂,如图所示。如图所示。ProductsProductID*ProductNameSupplierIDCategoryIDQuantityPerUnitUnitPriceUnitInStockUnitOnOrderReorderlevelDiscontinuedCategoriesCategoryID*CategoryNameDescriptionPictureOrder DetailsOrderID*ProductIDUnitPriceQuantityDiscountSuppliersSupplierI
12、D*CompanyNameContactNameContactTitleAddressCityRegionPostalCodeCountryPhoneFaxHomePageOrdersOrderID*CustomerIDEmployeeIDRequireDateShippedDateShipViaFreightShipNameShipAddressShipCityShipRegionEmployeesEmployeeID*LastNameFirstNameTitleTitleOfCourtesyBirthDateHiredateAddressCityRegionPostalCodeCountr
13、yCustomersCustomerID*CompanyNameContactNameContactTitleAddressCityRegionPostalCodeCountryPhoneFax分析可得销售事实数据有:分析可得销售事实数据有:Quantity,Discount,UnitPrice,和由此计算出来的,和由此计算出来的Total。基本数据基本数据:Customer,Product,Supplier,Time。CustomersCustomerID*CustomerNameContactNameCityRegionCountryEmployeesEmployeeID*NameTitl
14、eReportsToSuppliersSupplierID*CompanyNameCategoriesCategoryID*CategoryNameProductsProductID*CategoryIDProductNameQuantityPerUnitSalesEmployeeID*ProductID*SupplierID*CustomerID*OrderDate*QuantityUnitPriceDiscountTotal4.4.3 数据数据仓库创仓库创建建模型设计模型设计完成以后,就可以将完成以后,就可以将OLTP数据库中数据库中的数据转入数据仓库中了。的数据转入数据仓库中了。Data
15、 Transformation Service/DTS可以执行数可以执行数据的导入据的导入Import、导出、导出Export和转换和转换Transform。DTS设计器设计器是是SQL Server提供的数据转换工具,提供的数据转换工具,提供图形用户接口,支持用户自定义。提供图形用户接口,支持用户自定义。以以NorthWind为数据源,根据上面设计的为数据源,根据上面设计的概念概念模型模型,介绍,介绍CRM数据仓库的创建。数据仓库的创建。1、新建目的数据库、新建目的数据库数据转移也是转移到数据库中去数据转移也是转移到数据库中去SQL Server 2000中中数据仓库也是以数据库的形数据仓库
16、也是以数据库的形式存在式存在的,只是它的设计模式与的,只是它的设计模式与OLTP系统不同系统不同罢了。罢了。首先要新建一个数据库:首先要新建一个数据库:Northwind_DW打开打开SQL Server企业管理器企业管理器,登录服务器,鼠,登录服务器,鼠标右键单击标右键单击“数据库数据库”图标,在弹出菜单中选图标,在弹出菜单中选择择“新建数据库新建数据库”。在在常规选项常规选项中填写数据库名字中填写数据库名字Northwind_DW,设置数据库属性,一般用默认就可以了。单击设置数据库属性,一般用默认就可以了。单击“确定确定”,创建完成。,创建完成。2、DTS创建数据源和目的数据库创建数据源和
17、目的数据库在在Enterprise Manager上右击上右击数据转换服务数据转换服务图表图表-新建包新建包,将弹出,将弹出DTS设计器界面。设计器界面。在设计器左侧工具栏中找到在设计器左侧工具栏中找到Microsoft OLE DB Provider for SQL Server图标图标 ,左键单击。,左键单击。建立一个与建立一个与数据源数据源的连接:在弹出对话框的的连接:在弹出对话框的新建链新建链接接(T)栏输入栏输入Northwind,在数据库,在数据库(B)的下拉列表的下拉列表中选取中选取Northwind选项。其他默认设置,选项。其他默认设置,确定。确定。与上面一样,再在设计器左侧工
18、具栏中找到与上面一样,再在设计器左侧工具栏中找到Microsoft OLE DB Provider for SQL Server图标图标 ,左键单击。,左键单击。建立一个与建立一个与数据目的地数据目的地的连接:在弹出对话框的的连接:在弹出对话框的新新建链接建链接(T)输入输入Northwind_DW,其中数据库,其中数据库(B)下下拉列表选项中选取拉列表选项中选取 Northwind_DW选项。选项。此时在此时在 DTS 设计器中显示了设计器中显示了两个连接两个连接3、转移事实表、转移事实表创建好源与目的地之后,接下来就是将数据从创建好源与目的地之后,接下来就是将数据从数据源数据源目的地目的地
19、,首先转移事实表,首先转移事实表-“Sales”。先单击先单击Northwind图标,然后按住图标,然后按住ctrl键再单击键再单击Northwind_DW图标,即同时选中图标,即同时选中Northwind图图标和标和Northwind_DW图标。图标。注意顺序不能反!注意顺序不能反!然后在工具栏上找到然后在工具栏上找到“转换数据任务转换数据任务”按钮按钮 ,单击即可以创建一个从,单击即可以创建一个从Northwind数据源指向数据源指向Northwind_DW数据目的地的箭头,为这个箭数据目的地的箭头,为这个箭头命名头命名“Sales事实表转换数据任务事实表转换数据任务”。双击转换数据任务箭
20、头双击转换数据任务箭头弹出转换任务属性框弹出转换任务属性框单击单击【源源】标签,在标签,在【描述描述(D):】中输入中输入“Sales事实表转换数据任务事实表转换数据任务”,然后选中,然后选中【SQL查询查询(S):】单选按钮,并输入以下语句:单选按钮,并输入以下语句:SELECT e.EmployeeID,p.ProductID,s.SupplierID,c.CustomerID,o.OrderDate,od.UnitPrice,Od.Quantity,od.DiscountFROM Orders o,Order Details od,Employees e,Products p,Suppl
21、iers s,Customers cWHERE(o.OrderID=od.OrderID)and(o.EmployeeID=e.EmployeeID)and(o.CustomerID=c.CustomerID)and(od.ProductId=p.ProductID)and(p.SupplierID=s.SupplierID);单击单击【目的目的】标签,因为标签,因为Sales还不存在,所以还不存在,所以继续单击继续单击【创建创建(R)】,输入语句:,输入语句:CREAT Table Sales(EmployeeID int NOT NULL,ProductID int NOT NULL,Su
22、pplierID int NOT NULL,CustomerID nchar(5)NOT NULL,OrderDate datetime NULL,Quantity smallint NOT NULL,Uintprice money NOT NULL,Discount real Not NULL,Total money NOT NULL)得到的结果如下:得到的结果如下:单击单击【转换转换】标签,可以看到标签,可以看到DTS设计器为我设计器为我们指定的字段之间的转换任务。们指定的字段之间的转换任务。观察箭头,观察箭头,名字相同名字相同的字段已的字段已经自动对经自动对应转换了。应转换了。选择选择左
23、边的三个字段左边的三个字段,再选择,再选择右边的右边的total(按住按住ctrl键不动键不动);然后点;然后点“新建新建”按钮。按钮。在弹出的窗口中选择在弹出的窗口中选择“ActiveX Script”,单击,单击“确定确定”。在弹出对话框里单击在弹出对话框里单击“属性属性”按钮,进入按钮,进入ActiveX脚本转换属性脚本转换属性设置窗口。设置窗口。在在【语言语言(L)】标签的下拉列表中选取标签的下拉列表中选取JScript Language 选项,并在右侧窗口中输入以下代选项,并在右侧窗口中输入以下代码:码:Function Main()DTSDestination(“Total”)=D
24、TSSource(“Quantity”)*DTSSource(“Unitprice”)*(1.0-DTSSource(“Discount”);Return(DTSTransformStat_OK);单击单击确定确定按钮,表示按钮,表示ActiveX Script编辑完成编辑完成完成脚本转换完成脚本转换编辑后,返回编辑后,返回转换任务属性转换任务属性窗口。可以看窗口。可以看见,右边的见,右边的total由左边的由左边的三个字段转换三个字段转换得到。得到。4、转移维表、转移维表与事实表与事实表“Sales”同样的操作流程同样的操作流程。我们可以。我们可以完成其他维表的转换工作。完成其他维表的转换工
25、作。Sales事实表转换任务事实表转换任务Customer维表转换任务维表转换任务Employee维表转换任务维表转换任务Product维表转换任务维表转换任务Category维表转换任务维表转换任务Supplier维表转换任务维表转换任务点击工具栏上的保存图标,保存点击工具栏上的保存图标,保存DTS包的名称包的名称为为“事实表事实表Sales”5、执行包并设置完整性约束、执行包并设置完整性约束点击点击企业管理器企业管理器的的数据转换服务数据转换服务中的中的本地包本地包节点节点在右侧的在右侧的事实表事实表Sales图标上右击鼠标选择执行包。图标上右击鼠标选择执行包。选择要设置为选择要设置为主键主键的列:可以选择一列也可以选择的列:可以选择一列也可以选择多列。在所选的列上多列。在所选的列上右击鼠标右击鼠标在弹出的菜单中选择在弹出的菜单中选择设置主键设置主键或点击工具栏上的或点击工具栏上的图标图标 。在设计面板的在设计面板的空白处右击鼠标空白处右击鼠标,在弹出的菜单中,在弹出的菜单中选择选择关系关系点击点击新建按钮新建按钮这时系统为新建的关系取了一个这时系统为新建的关系取了一个以以 FK_开始的名称,显示在关系名文本框中。开始的名称,显示在关系名文本框中。