第8章数据仓库开发实例第8章数据仓库开发实例8.1超市销售数据仓库的规划与分析8.2数据仓库开发工具简介8.3SQLServer的数据仓库创建8.4SQLServer数据仓库事实表与多维数据集的建立第8章数据仓库开发实例8.1超市销售数据仓库的规划与分析•某大型连锁超市的业务涵盖于3个省范围内的1000多家门市。每个门市都有较完整的日用品和食品销售部门,包括百货、杂货、冷冻食品、奶制品、肉制品和面包食品等,大约5万多种,其中大约45000种商品来自外部生产厂家,并在包装上印有条形码。每个条形码代表了唯一的商品。•为该超市建立一个能够提高市场竞争能力的数据仓库,首先需要进行数据仓库的规划分析。这就涉及到对数据仓库的需求分析、模型构建两个过程。第8章数据仓库开发实例8.1.1超市销售数据仓库的需求分析•1超市营销售策略分析•超市最高层管理所关注的是如何通过商品的采购、储存与销售,最大限度地获取利润。需要通过加强对每种商品的管理,减低商品的采购成本和管理费用,吸引尽可能多的客户。其中最重要的是关于商品促销的管理决策。需要依靠合适的促销活动,应用适当的促销策略针对合适的客户,以增加超市的销售利润,是超市数据仓库建设的基本需求。•超市不同商品的销售利润是有差别的。希望在数据仓库中通过对商品的赢利分析,了解不同商品的销售赢利状态,以确定企业的销售重点,对那些可以为企业带来较大赢利的商品加大促销力度。第8章数据仓库开发实例8.1.1超市销售数据仓库的需求分析•2超市商品库存分析•超市商品的库存状况对超市的利润具有巨大的影响。超市如果能够在合适的时候销售合适的商品,在不出现脱销的情况下尽可能减少商品库存的库存成本,是超市商品库存分析的主要目的。在商品库存分析中,管理人员还经常要根据商品的库存量和商品库存成本确定商品的销售价格。从超市的商品库存情况来看,库存分析实质上是对超市的价值链进行分析,分析商品库存在超市的整个价值链上所发挥的作用。第8章数据仓库开发实例8.1.1超市销售数据仓库的需求分析•3超市商品采购分析•超市在商品采购工作中需要分析哪些商品是热销的商品,尽可能采购销售热销商品。热销商品往往是加快企业资金流动的动力,快速流动的资金可以使企业在一定的时间内取得比其他企业更多的利润。而且超市营销管理人员在了解热销商品后,可以大量采购热销商品,重新安排热销商品的货架,向更多的客户推销热销商品,便于更多客户的购买,以进一步加快企业资金的流动。第8章数据仓库开发实例8.1.1超市销售数据仓库的需求分析•4超市客户关系分析•用80:20理论分析,占企业客户群20%左右的客户购买金额往往占据了企业销售金额的80%。对客户群体的划分有利于企业了解企业的主要客户群体状况、主要客户群对企业销售服务的需求状况、不同客户群为企业所带来的利润状况。•在对客户进行类型划分的基础上,可以针对不同客户群体的特点采用不同的营销策略,对客户群体的消费进行合理的引导。•超市客户的流失,意味着企业赢利的降低。企业管理者希望了解哪些客户可能会流失,使企业能够提前设法加以挽留。第8章数据仓库开发实例8.1.2超市销售数据仓库E-R模型构造•数据仓库设计中就首先考虑营销主题的设计,确定超市营销主题模型•采用了星型模型,没有采用雪花模型。因为雪花模型通过对维表的分类细化描述,对于主题的分类详细查询具有良好的响应能力。但是雪花模型的构造在本质上是一种数据模型的规范化处理,会给数据仓库操作带来不同表的连接困难。但是在对维度表进行维护时,可能需要对大量重复值进行修改。•星型模型通过对维表的冗余应用,以牺牲维表空间来换取数据仓库的高性能与易使用的优势。第8章数据仓库开发实例8.1.2超市销售数据仓库E-R模型构造日期商品促销客户门市商品营销第8章数据仓库开发实例8.1.3超市数据仓库事实表模型•确定在数据仓库中,怎样的粒度数据才能满足管理人员对数据仓库营销策划分析的需要。•超市商品销售主题中,最理想的原子数据是来自POS机上的每个销售事务数据•分析超市高层管理人员通过那些角度,即需要通过那些维度来考察、选择营销方案。一般情况下,在确定超市营销策划时,超市管理人员需要通过日期、商品、门市、促销和客户五个维度对促销方案进行分析,了解促销方案的可用性和效果第8章数据仓库开发实例超市营销数据仓库事实表模型超市营销主题日期关键字门市关键字商品关键字促销关键字商品销售编号商品销售量商品销售额商品成本商品销售利润日期维日期关键字商品维商品关键字门市维门市关键字促销维促销关键字客户维客户关键字第8章数据仓库开发实例超市营销数据仓库事实表模型•从销售系统中可直接获取商品销售量、销售单价、商品成本。但管理人员考察超市的营销策略时,需要考虑营销策略和相应的商品销售利润。商品销售利润可以直接通过商品销售量、销售单价和商品成本计算获得,但商品销售利润具有良好的可加性,管理人员又经常需要查看。将利润数据存放在事实表中可大大减少数据仓库工作时的工作量,还可以保证所有用户在使用商品销售利润这一重要数据时的一致性。•商品销售单价对于计算商品利润十分重要,但将某个商品一段时间内的所有销售单价相加是毫无意义的。管理人员可能只对某一时间段内某个商品的平均销售价感兴趣。平均销售价格可以用该时间段内的商品销售额除以商品销售量获取。在事实表中可以不用商品销售单价,代之以商品销售额,销售额也常常是管理人员衡量营销策略好坏的重要指标。第8章数据仓库开发实例超市营销数据仓库事实表模型•超市管理者还可能对商品销售的利润率感兴趣,该数据可以用商品销售利润除以销售额获得,该数据不是一个可加数据。将比率或百分数的数据进行相加,所获得的数据是没有什么意义的。管理人员在了解某一时期某些商品的利润率时,完全可以利用该时期该商品利润和销售额获得。•因此,事实表中确定度量数据为商品销售量、商品销售额、商品成本和商品销售利润。第8章数据仓库开发实例8.1.4超市数据仓库维表模型设计•1.日期维•日期维模型是许多数据仓库应用中的常用维度,其设计方式与其他多数维模型有差别。具体设计时,日期维可以存放以日期表示的5到10年的数据行,也可以将3至4年的数据行作为日期维内容。如果对10年的每一天都进行存储,也只需要3650行•日期维的每列由行所代表的特定日期进行定义。“星期”列含有像“星期一”这样的名称内容,该列可用于创建比较“星期一”与“星期日”销售情况对比的查询。日历日期编号从1开始取值,然后根据月份的情况取到28、29、30或者31,这一列主要用于对每个月的同一天进行比较。同样,可以给出日历周编号、和日历月编号(1,…,12)。第8章数据仓库开发实例8.1.4超市数据仓库维表模型设计•纪元表示法采用从某纪元开始连续对日期进行计数的方法来给出日编号,在表中还可以给出“星期”与“月份”的绝对编号列。这些数据支持跨年度跨月份的简单数据运算。在生成报表时,经常要给出像“一月”这样的月份名称。因此,为报表确定一个“年月”(YYYY-MM)列标题也有必要。报表中很可能需要季度编号(Q1,…,Q4)或年季度编号列。如果企业的财政年度与日历表在周期上不一致,还需要为财政年度给出类似列。•在“节假日”列中给出“节假日”或者“非节假日”的内容,维表属性作为数据分析的导航,简单地在“节假日”列中给出“Y”或者“N”对数据分析没有多大用处。例如,在生成某种商品的节假日与非节假日销售情况比较查询时,列中给出“节假日”或者“非节假日”这样有意义的值要比一个简单的“Y”或者“N”之类的值有用得多。第8章数据仓库开发实例8.1.4超市数据仓库维表模型设计•“星期六”与“星期日”要归入“周末”之列。当然,可以对多个日期表属性进行共同约束,从而能够实现一些像平日假期销售与周末假期销售进行比较的数据仓库应用。•“销售时节”列应设置为销售时节的名称,例如,春节、情人节、端午节、五一节、国庆节、中秋节、重阳节、圣诞节、或者标为“不是”。•“重大事件”列与“销售时节”列情形类似,可以标记为“周日大采购”或者“中秋合家欢”这样与日期有特殊联系的促销事件。而一般性的促销活动通常不放在日期表中处理,以促销维表的形式进行更加完整的描述。因为促销事件并不是仅仅由日期来定义,通常还需要由日期、商品与商店的组合来定义。第8章数据仓库开发实例日期维度销售事实日期关键字日期关键字星期商品关键字日历日期编号门市关键字日历周编号促销关键字日历月编号客户关键字纪元日编号POS事务编号纪元周编号销售量纪元月编号销售额财政月日编号成本额年度日历周数利润金额年度日历月数日历年月(YYYY-MM)日历季度日历年季度日历半年度第8章数据仓库开发实例日历年财政周年度财政周数财政月年度财政月数财政年月财政季度财政年季度财政半年度财政年节假日指示符星期指示符销售时节重大事件……第8章数据仓库开发实例8.1.4超市数据仓库维表模型设计•2.商品维•一般超市门市可能存储60000个商品编号,但大型连锁超市保留不再销售的历史商品营销方案情况,商品维度可能至少需要150000行乃至多达百万行。•商品维度数据主要来源于业务系统的商品主文件。超市总部对所销售商品的主文件进行统一管理。•商品主文件的一个重要作用,就是维护每个商品存储标志的许多描述属性。商品维是一组重要的属性。•某个商品种类包含多个商品子类,商品子类包含多个商标,商标包含多个商品存储标志。•还应包含描述商品形状或存储位置的层次属性,例如商品的包装类型、包装尺寸、包装数量、托盘中的包装数,以及与商品存储的层次:存储类型、货架结构等维度。第8章数据仓库开发实例8.1.4超市数据仓库维表模型设计•3.门市维•门市维表用于描述超市的各个链锁店。门市维表是基本的地理维度,每个门市可被看成一个位置。这样,可以由门市形成诸如街道、邮政编码、县、市、省这样的任意地理属性。地理体系与门市地区体系对每个门市来说,都有良好的定义。•在连锁超市所使用的门市维表中有建筑面积、金融服务、最早开业时间等描述特定门市的文字描述。描述销售面积的列应该是数字型的,并且在理论上是跨门市可相加的,以表示某一地区的销售面积。它是门市的一个不变属性,通常作为报表约束或者行标题使用。而且为了能够分析不同种类商品对超市销售利润的贡献情况,还需要设立不同商品的销售面积。第8章数据仓库开发实例8.1.4超市数据仓库维表模型设计•4.促销维•超市的促销方案可能包含:临时降价、柜台展销、报纸广告与优惠券发放等。促销维应该可以反映商品促销方案的成效。•促销的成效评估因素:促销商品的销售是否在促销区间出现增长、是否在促销进行之前或者随后出现减少状况;是否发生促销商品的销售出现增长,而临近货架上的其他商品销售却呈现出相应的降低情况(同类相食);促销类别中所有商品的销售是否都经历了一个实际的总体增长;促销是否赢利。促销利润的计算要考虑促销类别的利润增量与时间过渡、同类调剂以及销售底线等各种情况。第8章数据仓库开发实例8.1.4超市数据仓库维表模型设计•4.促销维•在促销维度中为促销出现的每种组合都建立一行记录是很有意义的。在一年的销售活动中,可能出现1000个广告,5000次临时降价和1000次柜台展销,但可能只有10000个组合促销能影响任何特定的商品。例如,在某给定维度中,大多数门市都会同时运作所有促销售手段,而只有少数几个门市不进行柜台展销。在这种情况下,就需要两个单独的促销记录行,一个用于通常的降价并外加广告与柜台展销,而另一个用于降价并外加单纯的广告。•超市的促销维度可以包含促销名称、减价类型、促销媒体类型、广告类型和优惠券类型等。超市的主要促销方式是降价、广告、柜台展销与优惠券。如果将这些因素分别建立促销维度,就可以记录分析这些促销方法非常相似的信息,使用户更加容易理解促销方案的作用。但是将所有的促销因素合并在一个维表中,则能够方便用户的浏览,能够弄清各种不同的价格降低、广告、展销与优惠券是如何在一起共同发挥促销作用的。第8章数据仓库开发实例8.1.4超市数据仓库维表模型设计•5.客户维•超市的客户维度可以包含客户账号、姓名、地