版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、目 次 TOC o 1-4 h z u 绪论引言随着在数据库中存储的数据越来越多,人们差不多不满足于仅仅用计算机来实现业务的电子化,而希望从已有的数据中提炼出信息服务于决策人员。在这种情况下。OLAP作为一种强有力的分析和决策工具,被越来越多的没、部门使用,同时在OLAP技术上也进行了许多工作。然而要紧工作差不多上集中在如何有效对数据进行分析上。OLAP的数据仓库是为了解决能从大量的数据中得到有用的信息而做出了专门大的贡献。关于一个企业而言,每天都要面临着大量的决策问题,随着企业市场竞争的加剧和信息社会需求的进展,企业从大量数据中提取所需的各类信息就显得越来越重要了,传统的数据库技术是单一的数
2、据库资源,他适合操作型事务处理,但对分析型处理的能力较弱。近几年来,在信息技术领域兴起并日益成熟的数据仓库技术以其面向主题组织、存储海量信息,以及在线分析支持组织机构治理决策等优秀功能成为和应用的热点。数据仓库系统的差不多功能是:数据猎取、数据存储和治理、信息的访问。其最终目的是把分散的、不利于访问的数据转换成集中、统一、随时可用的信息,即为了决策目标将不同形式的数据集合成为一种专门的格式,建立起一种新的数据存储体系,使数据操作环境与数据分析环境相到分离。数据仓库利用了计算机和信息技术(IT)的最新进展,把那些大量的,分散的企业数据进行集成,并从中把企业决策所需要的信息分离出来,借助OLAP利
3、用存储在数据仓库中的数据,去进行各种分析操作,并以较为直观易明白的形式将结果返回给用户,能更加有效地支持企业的分析和决策,从而提高决策的质量与速度。WEB环境下的OLAP技术的背景和历史现状WWW(World Wide web)技术的问世,给Internet带来了新的活力,也得到全世界的认可和信赖。随着WEB的普及,人们之间的信息沟通更加的快捷和方便。WEB上的访问数据库也得到了日益广泛的应用,使数据库技术不断地进展和更新。近年来,随着企业信息化的飞速进展。企业拥有大量业务数据,但难以及时有效的利用数据信息用来给治理者做决策工作。数据仓库技术的运用使那个问题迎刃而解,数据仓库正是由数据库演化而
4、来是为了更好的处理和维护WEB上的庞大的访问数据和企业中的业务数据。不仅如此,数据仓库技术还有另一方面的用处即使如何让经营治理者更好的使用数据信息来做决策工作,从而给企业治理者或经营者带来经济效益。为了实现如此的目的还要把OLAP技术运用于数据仓库技术上面。OLAP技术作为一种强大有力的分析和决策工具,被越来越多的企业治理者和经营者使用。为了在OLAP技术上得到更有效的数据信息,并使用了体系结构即是C/S结构。在C/S体系结构中使用OLAP技术差不多暴露出专门多问题。为了解决如此的问题而进行对WEB环境下的OLAP技术的研究和实现。在数据库进展的早期,因为数据量不大而使数据库技术的查询功能和操
5、作功能没得到明显的区分。然而随着数据库规模的扩大,人们对数据的要求也有了其他的方法,比如想取得以往的历史数据来做决策工作使在激烈的社会经营中取得胜利。治理者或经营用户要想拿到如此的历史性有用处的数据信息必须通过复杂的查询才能得到,特不是那些高层人员更需要如此有决定性的数据信息来做决策工作。在数据仓库中使用OLAP技术正好让如此工作得到满足。然而现在传统的基于C/S结构的OLAP体系结构却带来专门多问题。传统的基于C/S结构的OLAP体系结构,其差不多流程是由熟悉数据库结构的系统治理员对数据库结构进行分析,依照其业务知识将数据库中的表及字段映射为多维结构,构造由多维结构构成的超立方体,然后依照用
6、户分析员在使用过程中的要求对多维视图进行修改,从而再次构造超立方体,如此循环往复。这种结构在使用过程中暴露出了许多的问题:如首先,顾客使用一次而要进行一次安装和配置,使维护工作量大大的增加。其次,对存放在顾客端的报告的修改也是专门复杂的。再者,其安全性也是专门薄弱的。OLAP技术是一种对数据进行多维查询的工具,要紧是给治理者和经营者等决策性人员使用的,因此需求是多变性的。C/S结构不适应需求的多变性所带来的要求,而有足够灵活性的Internet/Intranet的3层结构适应了OLAP技术对需求的多变性的要求。系统设计的技术创新数据仓库技术依照数据仓库概念的含义,数据仓库拥有以下四个特点:(1
7、)面向主题。操作型数据库的数据组织面向事务处理任务,各个业务系统之间各自分离,而数据仓库中的数据是按照一定的主题域进行组织。主题是一个抽象的概念,是指用户使用数据仓库进行决策时所关怀的重点方面,一个主题通常与多个操作型信息系统相关。(2)集成的。面向事务处理的操作型数据库通常与某些特定的应用相关,数据库之间相互独立,同时往往是异构的。而数据仓库中的数据是在对原有分散的数据库数据抽取、清理的基础上通过系统加工、汇总和整理得到的,必须消除数据源中的不一致性,以保证数据仓库内的信息是关于整个企业的一致的全局信息。 (3)相对稳定的。操作型数据库中的数据通常实时更新,数据依照需要及时发生变化。数据仓库
8、的数据要紧供企业决策分析之用,所涉及的数据操作要紧是数据查询,一旦某个数据进入数据仓库以后,一般情况下将被长期保留,也确实是数据仓库中一般有大量的查询操作,但修改和删除操作专门少,通常只需要定期的加载、刷新。(4)反映历史变化。操作型数据库要紧关怀当前某一个时刻段内的数据,而数据仓库中的数据通常包含历史信息,系统记录了企业从过去某一时点(如开始应用数据仓库的时点)到目前的各个时期的信息,通过这些信息,能够对企业的进展历程和以后趋势做出定量分析和预测。企业数据仓库的建设,是以现有企业业务系统和大量业务数据的积存为基础。数据仓库不是静态的概念,只有把信息及时交给需要这些信息的使用者,供他们做出改善
9、其业务经营的决策,信息才能发挥作用,信息才有意义。而把信息加以整理归纳和重组,并及时提供给相应的治理决策人员,是数据仓库的全然任务。因此,从产业界的角度看,数据仓库建设是一个工程,是一个过程。如图2.1.1所示。图2.1.1数据仓库体系结构图数据源:是数据仓库系统的基础,是整个系统的数据源泉。通常包括企业内部信息和外部信息。内部信息包括存放于RDBMS中的各种业务处理数据和各类文档数据。外部信息包括各类法律法规、市场信息和竞争对手的信息等等;数据的存储与治理:是整个数据仓库系统的核心。数据仓库的真正关键是数据的存储和治理。数据仓库的组织治理方式决定了它有不于传统数据库,同时也决定了其对外部数据
10、的表现形式。要决定采纳什么产品和技术来建立数据仓库的核心,则需要从数据仓库的技术特点着手分析。针对现有各业务系统的数据,进行抽取、清理,并有效集成,按照主题进行组织。数据仓库按照数据的覆盖范围能够分为企业级数据仓库和部门级数据仓库(通常称为数据集市)。 OLAP服务器:对分析需要的数据进行有效集成,按多维模型予以组织,以便进行多角度、多层次的分析,并发觉趋势。其具体实现能够分为:ROLAP、MOLAP和HOLAP。ROLAP差不多数据和聚合数据均存放在RDBMS之中;MOLAP差不多数据和聚合数据均存放于多维数据库中;HOLAP差不多数据存放于RDBMS之中,聚合数据存放于多维数据库中。前端工
11、具:要紧包括各种报表工具、查询工具、数据分析工具、数据挖掘工具以及各种基于数据仓库或数据集市的应用开发工具。其中数据分析工具要紧针对OLAP服务器,报表工具、数据挖掘工具要紧针对数据仓库。 OLAP 技术联机分析处理(OLAP)要紧有两个特点,一是在线性(On-Line),表现为对用户请求的快速响应和交互式操作,它的实现是由Client/Server这种体系结构来完成的,二是多维分析(Multi-dimensional),这也是OLAP技术的核心所在。OLAP的在线性体现在于用户的交互响应和快速响应,多维性则体现在它建立在多维视图的基础上,对数据进行由浅到深的分析。OLAP的用户是企业中的专业
12、分析人员及治理决策人员,他们在分析业务经营的数据时,从不同的角度来审视业务的衡量指标是一种专门自然的考虑模式。例如分析销售数据,可能会综合时刻周期,产品类不,分销渠道,区域分布,客户等多种因素来考虑。这些分析角度尽管能够通过报表来反映,然而每一个分析的角度能够生成一张报表,各个分析角度的不同组合又能够生成不同的报表,使得IT人员的工作量相当大,而且往往难以跟上治理决策人员考虑的步伐。因此OLAP的多维性较好地满足了企业治理人员的需要。治理人员可对OLAP进行操作,即对多维数据集中的数据进行切片,切块,旋转,上卷和下钻操作,以对数据进行分析,让用户多角度、多侧面地去观看数据仓库中的数据,从而深入
13、了解数据仓库中数据所蕴含的信息,并找出隐含在数据中的商业模式。依照综合性数据的组织方式的不同,目前常见的OLAP要紧有基于多维数据库的MOLAP及基于关系数据库的ROLAP两种。MOLAP是以多维的方式组织和存储数据,ROLAP则利用现有的关系数据库技术来模拟多维数据。在数据仓库应用中,OLAP工具一般是数据仓库应用的前端工具,同时OLAP工具还能够配合数据挖掘进行使用,增加决策分析预测功能。数据仓库的差不多任务是使用获得的数据来进行大量的分析,以生成支持用户制定战略决策的信息。为了让数据仓库能作有意义的分析,数据必须以某种方法被映射,以便用户能利用一些数据来分析随着时刻变化各商业维度的关键指
14、标的数值。数据挖掘的技术数据挖掘是一种数据分析工具,它从大量的、不完全的、有噪声的、模糊的、随机的数据中提取人们感兴趣的数据模式、数据的普遍关系及其隐含在其中的、人们事先不明白的、但又是潜在有用的信息和知识,提取的知识表示为概念、规则、规律、模式等形式,其目的是关心决策者查找数据间潜在的关联,发觉被忽略的要素,而这些信息对预测趋势和决策行为将起到一定的支持作用。数据库中的数据挖掘是一个多步骤的处理过程,这些步骤有:(1)数据定义时期,要紧了解相关领域的有关情况,熟悉背景知识,弄清晰用户决策分析对信息的要求。(2)数据提取时期,依照要求从数据库中提取相关的数据。(3)数据预处理时期,要紧对前一时
15、期产生的数据进行再加工,检查数据的完整性及数据的一致性,对其中的噪音数据进行处理,对缺损的数据进行填补。(4)数据挖掘时期,要紧是运用选定的知识发觉算法,从数据中提取出用户所需要的知识,这些知识能够用一种特定的方式表示或使用一些常用的表示方式。(5)知识评估时期,将发觉的知识以用户能了解的方式呈现,依照需要对知识发觉过程中的某些处理时期进行优化,明白满足要求。OLAP与数据挖掘的关系(1)OLAP与数据挖掘都属于分析型工具,两者的区不在于:数据挖掘的分析过程是自动的,用户不必提出确切的问题,只需用挖掘工具去挖掘隐藏在海量数据中的模式并预测以后的趋势,这种方式有利于发觉未知的事实,但缺乏引导的数
16、据挖掘,往往所发觉的许多模式有用性专门差。OLAP是一种自上而下、不断深入的验证型分析工具,它常常以用户的假设为基础对数据查询与分析,进而提取出相关的信息。因此OLAP在数据分析方面存在着一定的局限性,即数据仓库的结构设计的模式不同决定了OLAP对数据的分析效果与分析层次;同时由于OLAP是用户驱动的,用户对所分析问题认识和理解程度在一定程度上会阻碍到最终的分析结果。从对数据分析的角度看。OLAP位于较浅的层次;由于数据挖掘能够发觉OLAP所不能发觉的更为复杂而细致的信息,因而处于相对较高的层次。(2)OLAP与数据挖掘的相互作用体现在以下几个方面:OLAP与数据挖掘同作为数据分析工具,二者相
17、比互有优劣。数据挖掘结果的无法预测性及挖掘结果是否有效等不足,决定了数据挖掘需要另外一个分析工具作辅助,对其结果进行验证。OLAP是针对多维数据库而开发的分析工具,能够对多维数据进行较为全面的映射。因此在数据仓库的基础上,OLAP与数据挖掘有了结合的可能,即数据挖掘的结果能够通过OLAP进行验证,数据挖掘在有验证的前提下,其挖掘结果将呈现螺旋式上升的过程,逐步从模糊、混沌走向清晰、客观,进而表现为有价值的知识。成功的数据挖掘需要对数据进行探究性的分析。挖掘所需的数据范围也许只是数据仓库的一部分,在此意义上,OLAP对多维数据的钻取、旋转等操作同样能够应用于数据挖掘的过程中,作为基于数据仓库挖掘
18、的引导步骤。系统解决方案在WEB环境下OLAP技术的研究长久以来,对数据库的操作都有两种不同的应用方式。一种是日常的对数据的操作型应用,另一种是对数据的查询型应用。这两种应用有着专门大的区不,如表3.1.1。操作型应用查询型应用涉及的表或字段不多涉及大量的表和字段以增删操作为主,查询量少不修改数据,但进行大量的查询以业务人员使用为主,要紧是细节信息面向治理人员或决策人员,关注汇总信息和导出信息使用当前数据可能用到大量的历史信息表3.1.1两种应用的区不在数据库进展的早期,因为数据量不大,查询型应用和操作型应用的区不还不太明显。但随着数据库规模的逐渐增大,人们希望利用差不多有的历史数据来使自己在
19、激烈的竞争中取胜,分析人员经常是希望从多个不同的角度来观看一个或多个指标的值,同时希望从中找到这些指标之间的关系,这些要求导致查询复杂度越来越高,特不是这些查询请求是分析人员在分析过程中依照显示的数据而实时产生的。如此的要求是业务系统无法胜任的。而OLAP技术就能够解决如此的查询要求。OLAP操作最要紧的一点是要给分析人员提供一个多维数据超立方体,分析人员不需要了解实际的数据库结构,他所看见的是与其适应的企业逻辑结构相似的多维结构。依照他所关注的目的的不同,在多维结构内今昔感多维操作,如钻取、上挖、漂移、切片、切块等。数据库治理人员的责任确实是依照企业的组织结构和实际使用人员的要求,在差不多有
20、的数据仓库上构造多维数据库及多维视图。传统的基于C/S结构的OLAP体系机构,其差不多流程是由熟悉数据库结构的系统治理员对数据库结构进行分析,依照其业务知识将数据库中的表及字段映射为多维结构,构造由多维结构构成的超立方体,然后依照用户分析人员在使用过程中的要求对多维视图进行修改,从而再次构造超立方体,如此循环往复。这种结构在使用过程中暴露出了许多的问题:(1)在每一个客户端都要安装和配置多维查询软件。维护工作量专门大;(2)报告内容要依照使用者在使用过程中碰到的要求进行修改,因此要维护客户端的报告内容一致也是专门复杂的;(3)因为报告存放在客户端。因此可能会被修改,从而安全性也专门不行。出现这
21、些问题的全然缘故是没有注意到OLAP的专门性:OLAP作为一个多维查询工具,不同于传统的业务系统,要紧是给治理和决策人员使用的,需求是多变的,因此IT人员不可能依次设计出符合分析人员要求的超立方体,需要在使用过程中依照要求对超立方体不断进行调整和修改,然而这种多变性是C/S结构所不能适应的。而且有基于Internet/Intranet的3层结构才具有足够的灵活性。WEB服务器负责完成扫瞄器与OLAP服务器,数据仓库系统之间的通信连接。如图3.1.1所示。一般来讲,WEB服务器通过使用CGI脚本、WEB服务器API、应用API和数据库API等,治理扫瞄器的通信。在扫瞄器端,通过HTML、DMX、
22、ActiveX控件、C#.NET来完成与用户的交互截面和控件。在实现基于WEB的OLAP应用时,往往采纳自顶向下的设计。首先要确定用户如何在扫瞄器中的到报表信息,然后再给出一系列的过程完成基于扫瞄器的OLAP操作。这些过程应当包括公布信息,提供HTTP对数据库或应用服务器的动态数据请求,设计支持分析功能的界面。在客户端基于WEB扫瞄器的OLAP报表被分为几个层次,其中包括没有分析功能的静态报表和能够进行分析的OLAP应用界面,如维的旋转,数据的钻取等。另外,特不要提到的是,标准的HTML界面缺乏操作的灵活与方便。C#.NET和ActiveX控件的使用会大大提高用户截面的友好程度,用户通过简单的
23、操作就能够完成“旋转”、“钻取”的操作。数据仓库系统OLAP服务器WEB服务器客户扫瞄器 CGI API C#.NET、ActiveX 控件图3.1.1基于WEB的OLAP结构图在WEB环境下OLAP技术的实现方案OLAP专门用于支持复杂的决策分析,支持信息治理和业务治理人员决策活动的一种决策分析工具。它能够依照分析人员的要求,迅速、灵活地对大量数据进行复杂的查询处理,同时以直观的、容易理解的形式将查询结果提供给各种决策人员,使他们迅速、准确地掌握企业的运营情况,了解市场需求。而要进行OLAP多维数据分析就需要依照分析需求,同时结合数据仓库中的数据结构和特点建立OLAP多维模型。以超市销售系统
24、为例子,并对该例子的OLAP销售多维模型进行了设计,如图3.2.1。时刻编号年季度月日食品编号时刻编号客户编号食品名称销售数量销售额平均价格食品编号食品类不编号食品名称客户编号区域编号客户名称食品类不编号食品类不名称区域编号省市 销售事实表 食品维表 食品类不维表 客户维表 区域维表 时刻维表 图3.2.1 超市销售分析的OLAP模型从图中能够看出在超市销售分析的OLAP模型中有一个销售事实表,在该事实表中每个元组只存储了一些指向各个维表的指针(即外键,时刻编号、食品编号、客户编号等)和一些相应的测量数据(度量值),销售数量、销售额和平均价格,而与这些外键相对应的主键则分不存放不同的维表中(时
25、刻维表、客户维表、食品维表等)。对事实表的查询确实是猎取指向维表的指针,当对事实表的查询与对维表的查询结合起来的时候,就能够检索大量的信息。一个完整的基于WEB的OLAP销售分析系统由三方面组成。第一,提取、清洗数据组成数据仓库;第二利用OLAP引擎建立相应的销售分析的OLAP立方体;第三使用前端开发工具,在WEB上访问OLAP立方体中包含的对象和集合。那个地点选用了SQL SERVER 2005 Analysis Services作为数据仓库支撑平台,SQL SERVER 2005的Analysis Services 是一个治理多维数据集的服务器,数据源并抽取数据,实现高效地将客户数据加载到
26、客户数据仓库中;服务器支持MDOLAP、ROLAP和HOLAP三种存储模式,用户自己定义使用的存储模式,定义各个维度并建立销售多维数据集,从而完成整个销售过程。图书销售分析系统的总体设计和实现 系统的功能本系统的功能能够划分为会员分析和图书分析两大部分(如图4.1.1图书小时分析系统功能结构图。图书销售分析系统会员分析图书分析分析会员级不分析会员消费分析会员类型分析图书推举销售趋势分析销售关联分析图书销量分析图书定价分析图4.1.1图书销售分析系统功能结构图其中会员分析是对书店注册会员的信息进行分析,具体功包括:(1)会员级不分析:依照会员的个人信息来预测该会员最有可能成为哪级会员。(2)会员
27、消费分析:依照会员的个人信息来预测该会员在书店的消费类型。(3)会员类型分析:依照会员的个人信息和消费记录来对会员进行自动分类。(4)图书推举:依照会员的以往购书记录来向推举其他可能感兴趣的图书。其中图书分析则是对书店图书的信息进行分析,具体功能包括:(1)销售趋势分析:依照图书的历史销售信息来预测以后的销售额。(2)图书销量分:依照图书的差不多信息来预测其销量。(3)销售关联分析:分析哪些图书经常会被一同销售。(4)图书定价分析:依照图书的差不多信息来估算定价。 数据源设计数据库设计数据库逻辑设计依照系统的需求分析定义系统中的实体,并采纳E-R图来(如图2.2.1图书销售E-R图)表现实体之
28、间的逻辑关系。在关系图中要紧有会员和图书两个实体,会员买书的一些情况和推举书的情况。图书中包含了图书的销售量等相关信息。会员会员号姓名入会时刻级不生日地区地址性不电话邮箱积分图书国际标准图书号图书号光盘书名存储量出版社出版日期价格上架时刻页数条码号买书推举书销售数据销售量会员号销售时刻推举数据书号类型折扣情况级不折扣率NNNN级不号 图4.2.1图书销售E-R图数据库结构设计在逻辑设计的基础上,进行了结构设计,数据库的设计要紧有五个数据表和三个视图,下面分不对五个数据表和三个视图进行讲明。(1)会员表:要紧是记录会员的姓名、性不、地址、电话号码、会员号、会员的级不、会员的入会时刻。这些对视图进
29、行查询有专门大用处,同时对分析进行预测提供了可靠的信息资源。(2)图书表:要紧是记录图书的名字、出版社、出版时刻、国际标准图书号、内带光盘、存储量、上架日期、条码、价格、书的页数(3)买书的记录表:要紧记录会员买书的情况,里面记录会员的会员号、买书的时刻、买书消费额。(4)折扣表:要紧是记录会员的级不所打的折扣。表内包括级不和折扣率。(5)图书销售情况表:要紧记录图书销售的情况。要紧记录图书号、图书的销售额、图书销售的数量、图书销售的折扣。(6)图书视图:要紧是进行图书与会员的综合查询,它包含了图书的差不多信息和销售情况汇总。(7)图书销售视图:要紧是对图书的销售情况的综合查询,它包含了图书的
30、销售细明信息。(8)图书每周销售视图:要紧是对图书进行每周的销售情况的综合查询,它包含了图书每周销售销量的信息。以下是五个数据表:表4.2.1会员表、表4.2.2图书表、表4.2.3买书的记录表、表4.2.4折扣表、表4.2.5图书销售表。列名数据类型同意空IDIntNameNvarchar(20)LevelsSmallintYRegTimeSmalldatetimeYGenderBitYBirthdaySmalldatetimeYDegreeNvarchar(20)YAreaNvarchar(20)YAddressNvarchar(256)YTelephoneNvarchar(50)YEma
31、ilNvarchar(50)YScoreIntY表4.2.1会员表列名数据类型同意空IDIntISBNNchar(10)NameNvarchar(256)CategoryIDIntYAuthorNvarchar(100)YPressNvarchar(50)YPublishDateSmalldatetimeYPriceSmallmoneyPagesSmallintYBarcodeNchar(13)CDBitYStorageIntYShelfDateSmalldatetimeY表4.2.2图书表列名数据类型同意空IDIntCustomerIDIntYSumSmallmoneyYTimesmalld
32、atetime表4.2.3买书的记录表列名数据类型同意空LevelsIntDiscountFloat表4.2.4折扣表列名数据类型同意空IDIntSellIDIntBookIDIntNumberIntDiscountFloatYSumSmallmoneyY表4.2.5图书销售表以下是三个视图表:表4.2.6图书视图、表4.2.7图书销售视图、表4.2.8图书每周销售视图。列不名表输出排序类型排序顺序分组依据筛选器IDBookY 升序1Group ByNameBookYGroup ByCategoryBookCategoryYGroup ByPressBookYGroup ByPriceBook
33、YGroup ByRagesBookYGroup ByCDBookYGroup ByNumberSellNumberSellItemYSumSumSellSumSellItemYSumShelfDateBookYGroup By表4.2.6图书视图表4.2.6图书视图的综合查询的内部代码为:SELECT TOP(100) PERCENT dbo.Book.ID, dbo.Book.Name, dbo.BookCategory.Category, dbo.Book.Press, dbo.Book.Price, dbo.Book.Pages, dbo.Book.CD,SUM(dbo.SellIte
34、m.Number) AS SellNumber,SUM(dbo.SellItem.Sum) AS SellSum, dbo.Book.ShelfDateFROM dbo.Book INNER JOINdbo.BookCategory ON dbo.Book.CategoryID = dbo.BookCategory.ID INNER JOINdbo.SellItem ON dbo.Book.ID = dbo.SellItem.BookIDGROUP BY dbo.Book.ID, dbo.Book.Name, dbo.BookCategory.Category, dbo.Book.Press,
35、 dbo.Book.Price, dbo.Book.Pages, dbo.Book.CD,dbo.Book.ShelfDateORDER BY dbo.Book.ID列不名表输出排序类型排序顺序分组依据筛选器IDSellItemYIDSellIDSellYCustomerIDSellYTimeSellYBookIDSellItemYISBNBookYNameBookYPressBookYPriceBookYNumberSellItemYDiscountSellItemYSumSellItemY表4.2.7图书销售视图表4.2.7图书销售视图的内部代码和关系图(图2.2.2图书销售关系图):SE
36、LECT dbo.SellItem.ID, dbo.Sell.ID AS SellID, dbo.Sell.CustomerID, dbo.Sell.Time, dbo.SellItem.BookID, dbo.Book.ISBN, dbo.Book.Name, dbo.Book.Press, dbo.Book.Price, dbo.SellItem.Number, dbo.SellItem.Discount, dbo.SellItem.SumFROM dbo.Sell INNER JOIN dbo.SellItem ON dbo.SellItem.SellID = dbo.Sell.ID I
37、NNER JOIN dbo.Book ON dbo.Book.ID = dbo.SellItem.BookID图4.2.2图书销售关系图列不名表输出排序类型排序顺序分组依据DATEPART(week,dbo.sell.Time)WeekY升序1Group ByIDBookY升序2Group BySumSellSumSellItemYSum表4.2.8图书每周销售视图表2.2.8图书每周销售视图的内部代码为:SELECT TOP (100) PERCENT DATEPART(week, dbo.Sell.Time) AS Week, dbo.Book.ID, SUM(dbo.SellItem.S
38、um) AS SellSumFROM dbo.Sell INNER JOIN dbo.SellItem ON dbo.Sell.ID = dbo.SellItem.SellID INNER JOIN dbo.Book ON dbo.SellItem.BookID = dbo.Book.IDGROUP BY DATEPART(week, dbo.Sell.Time), dbo.Book.IDORDER BY Week, dbo.Book.ID 设计好了以上的表和视图是为了对其中的数据进行预测和分析,这些创建给以后的实现部分做了专门好的铺垫。图书销售 Analysis Services 设计数据源
39、设计 在数据源设计运用了数据挖掘技术,首先用“数据源向导”将数据中表2.2.1会员表、表2.2.6图书视图、表2.2.7图书销售视图、表2.2.8图书每周销售视图加入项目的数据源试图中。其中会员表中存储了书店注册会员的差不多个人信息;同时为了支持数据的分析,设计中还要向会员表中增加两个计算列。两个计算列分不为Age和DayConsume。它们的表达式分不为“YEAR(GETDATE()-YEAR(dbo.Customer.Birthday)”和“CAST(Score AS Decimal)/DATEDIFF(DAY,RegTime,GETDATE()” 是用来计算会员的年龄和会员的积分除以其注
40、册天数以得到该会员的日平均消费金额。合理地使用计算列,能够大大方便挖掘结构和挖掘模型的创建,同时幸免修改源数据库中的基础表格和视图。在Analysis Services项目中也需要向图书表中加入两个计算器分不DaySellNumber和DaySellSum,计算表达式为:“SellNumber/DATEDIFF(DAY,ShelfDate,GETDATE()”、“SellSum/DATEDIFF(DAY,ShelfDate,GETDATE()”。它们是用来计算图书日均销量。为了对会员购书的有关信息进行挖掘,在数据源视图中还应将会员表和图书销售视图关联起来。如图4.2.3数据源视图图书销售图。如
41、图4.2.3数据源视图图书销售图数据源的设计对以后数据挖掘起到决定的作用。在本设计中使用了多个数据挖掘的方法。这些方法大大方便了界面的分析和预测。治理者通过预测的信息明白内部图书销售的各个情况和了解会员的相关活动信息。本系统设计的挖掘模型(1)贝叶斯挖掘模型:是用来对会员级不的分析。要紧运用了“Microsoft Nave Bayes”挖掘技术对数据源视图中的会员表作为事例对Levels和DayConsume列作为可预测列进行预测。(2)决策树挖掘模型:来分析会员的消费水平最有可能处在哪个区间,要紧运用“Microsoft 决策树”挖掘技术对数据源视图中的会员表作为事例对Levels进行忽略,
42、而对DayConsume进行可预测。(3)聚类分析挖掘模型:是用来分析会员的年龄和学历进行分析。是忽略Area、Levels、Gender,而Age和Degree作为输入列对DayConsume进行预测。(4)关联规则挖掘模型:用于分析会员与图书之间的关联,进而向会员推举其他可能感兴趣图书。在设计中用会员表作为事例表嵌套图书销售表,Gender、Age、Degree、Area作为输入列,BookSell进行预测。(5)时序挖掘模型:是用于图书的分析,用每周销售视图来做事例,ID和 Week作为输入键对SellSum进行预测。(6)神经网络挖掘模型:是预测新书的销量,图书表作为事例,Catego
43、ry、Press、Price、Pages和CD列进行输入,对DaySellNumber进行预测。(7)顺序分析挖掘模型:用于实现图书销售的关联分析,会员表作为事例,图书销售表销售表作为嵌套表,对Name进行预测。(8)线性回归挖掘模型:是对图书价格的预测,图书表作为事例,Pages为输入列,对Price进行预测。4.3系统界面设计4.3.1会员信息分析界面设计 关于会员信息分析的Windows窗体设计视图如图4.3.1所示。在对应的窗体类CustomerAnalysisForm.cs中定义了如下成员字段: protected SqlConnection _connDatabase; prote
44、cted AdomdConnection _connAnalysis;protected AdomdCommand _cmd;其中前两个数据连接对象分不指向SQL Server数据库BookSell和Analysis Server数据库,后一个数据命令对象则用于在Analysis Services数据库上执行DMX查询对象的创建都在窗体的构造函数中完成:public CustomerAnalysisForm(SqlConnection connectionDatabase, AdomdConnection connectionAnalysis) _connDatabase = connecti
45、onDatabase; _connAnalysis = connectionAnalysis; _cmd = _connAnalysis.CreateCommand(); InitializeComponent(); 窗体在初始化和关闭将打开和关闭相应的数据连接;窗体的初始化过程同时还使用SQL数据命令将所有会员的ID号载入到“会员编号”组合框(cmbcustomerID)中:private void CustomerAnalysisForm_Load(object sender, EventArgs e) SqlCommand cmd1 = new SqlCommand(SELECT DIS
46、TINCT ID FROM Customer ORDER BY ID, _connDatabase); SqlDataReader reader1 = cmd1.ExecuteReader(); while (reader1.Read() cmbCustomerID.Items.Add(reader10); reader1.Close(); dgvLevels.AutoGenerateColumns = false; 图4.3.1会员分析窗体CustomerAnalysisForm选择会员编号并按下“载入会员信息”按钮后,程序将再次通过SQL命令来读取会员的个人信息,并显示在窗体上部的各个控件
47、中: private void btnLoadInfo_Click(object sender, EventArgs e) if (cmbCustomerID.Text = ) MessageBox.Show(会员编号不能为空, 错误, MessageBoxButtons.OK, MessageBoxIcon.Error); return; SqlCommand cmd1 = _connDatabase.CreateCommand(); cmd1.CommandText = SELECT Birthday, Area, Degree, Gender, RegTime, Levels, Scor
48、e FROM Customer WHERE ID= + cmbCustomerID.Text; SqlDataReader reader1 = cmd1.ExecuteReader(); if (reader1.Read() dtpBirthday.Value = (DateTime)reader10; if (reader11 != DBNull.Value) cmbArea.Text = reader11.ToString(); if (reader12 != DBNull.Value) cmbDegree.Text = reader12.ToString(); if (bool)read
49、er13) rdbMale.Checked = true; else rdbFemale.Checked = true; dtpRegTime.Value = (DateTime)reader14; cmbLevel.Text = reader15.ToString(); nudScore.Value = (int)reader16; reader1.Close(); 窗体下部是一个TabControl容器控件,它的4个TabPage页分不用于实现会员的级不分析、消费分析、类型分析和图书推举功能。当用户按下“会员级不”标签页中的“预测”按钮后,程序首先依照相关输入来构造DXM预测查询字符串,而
50、后调用贝叶斯模型CustomerLevels来预测会员级不:private void btnPredictLevels_Click(object sender, EventArgs e) if (cmbArea.Text = | cmbDegree.Text = ) MessageBox.Show(地区或学历不能为空, 错误, MessageBoxButtons.OK, MessageBoxIcon.Error); return; int iAge = DateTime.Now.Year - dtpBirthday.Value.Year; _cmd.CommandText = string.F
51、ormat(SELECT Predict(Levels), PredictHistogram(Levels) From CustomerLevels NATURAL PREDICTION JOIN (SELECT 0 AS Age, 1 AS Area, 2 AS Degree, 3 AS Gender) AS t, iAge, cmbArea.Text, cmbDegree.Text, rdbMale.Checked); AdomdDataReader reader1 = _cmd.ExecuteReader(); if (reader1.Read() MessageBox.Show(str
52、ing.Format(该会员最有可能成为0级会员, reader10), 预测结果); AdomdDataReader reader2 = (AdomdDataReader)reader11; DataTable table1 = new DataTable(); table1.Load(reader2); dgvLevels.DataSource = table1; reader1.Close(); 注意在上面的DXM预测查询中使用了Predice和PredictHistogram两个预测函数,其中后者返回的结果包含会员达到各个级不的概率和支持计数,详细信息将显示在DataGridView控
53、件中。窗体对会员级不的预测效果如图4.3.2所示。图4.3.2预测会员级不类似的,当用户按下“会员消费”标签页的“预测”按钮后,程序将调用决策树模型CustomerConsume来预测会员的消费水平:private void btnPredictConsume_Click(object sender, EventArgs e) if (cmbArea.Text = | cmbDegree.Text = ) MessageBox.Show(地区或学历不能为空, 错误, MessageBoxButtons.OK, MessageBoxIcon.Error); return; int iAge =
54、DateTime.Now.Year - dtpBirthday.Value.Year; _cmd.CommandText = string.Format(SELECT Predict(Dayconsume), PredictHistogram(Dayconsume) From CustomerConsume NATURAL PREDICTION JOIN (SELECT 0 AS Age, 1 AS Area, 2 AS Degree, 3 AS Gender) AS t, iAge, cmbArea.Text, cmbDegree.Text, rdbMale.Checked); AdomdD
55、ataReader reader1 = _cmd.ExecuteReader(); if (reader1.Read() MessageBox.Show(该会员最有可能属于 + this.GetConsumeDescription(double)reader10); AdomdDataReader reader2 = (AdomdDataReader)reader11; dgvConsume.Rows.Clear(); double dConsume; while (reader2.Read() if(reader2Dayconsume != null & double.TryParse(re
56、ader2Dayconsume.ToString(), out dConsume) dgvConsume.Rows.Add(this.GetConsumeDescription(dConsume), reader2$PROBABILITY, reader2$SUPPORT); reader2.Close(); reader1.Close(); 在预测输出时,程序通过成员方法GetConsumeDescription将日均消费数值转换为消费水平的文字描述;对会员消费的预测效果如图4.3.3所示。protected string GetConsumeDescription(double consu
57、me) if (consume = 15) return 忠实会员; else return 一般会员; 图4.3.3预测会员消费水平再看“会员消费”标签页中的“预测”按钮,其单击事件处理代码中调用了聚类分析模型CustomerType来预测会员类型,窗体的预测效果如图4.3.4所示。private void btnPredictType_Click(object sender, EventArgs e) if (cmbDegree.Text = ) MessageBox.Show(学历不能为空, 错误, MessageBoxButtons.OK, MessageBoxIcon.Error);
58、 cmbDegree.Focus(); return; int iAge = DateTime.Now.Year - dtpBirthday.Value.Year; int iRegDays = (DateTime.Now - dtpRegTime.Value).Days + 1; decimal dDayConsume = nudScore.Value / iRegDays; _cmd.CommandText = string.Format(SELECT Cluster(), PredictHistogram(Cluster() From CustomerType NATURAL PREDI
59、CTION JOIN (SELECT 0 AS Age, 1 AS Degree, 2 AS DayConsume) AS t, iAge, cmbDegree.Text, dDayConsume); AdomdDataReader reader1 = _cmd.ExecuteReader(); if (reader1.Read() MessageBox.Show(该会员最有可能属于 + this.GetTypeDescription(reader10.ToString(); AdomdDataReader reader2 = (AdomdDataReader)reader11; dgvTyp
60、e.Rows.Clear(); while (reader2.Read() if (reader2$CLUSTER != null) dgvType.Rows.Add(this.GetTypeDescription(reader2$CLUSTER.ToString(), reader2$PROBABILITY, reader2$DISTANCE); reader2.Close(); reader1.Close(); protected string GetTypeDescription(string type) switch (type) case 分类1: return 偶然型读者; cas
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- Lipopeptide-CPK4-生命科学试剂-MCE
- 资金方合同范本
- 试验市合同范本
- 青光眼护理指南
- 2026年国有企业金华市轨道交通控股集团招聘备考题库及一套参考答案详解
- 2026年重庆人才服务股份有限公司派遣至重庆轮船(集团)有限公司交运游轮分公司招聘备考题库及完整答案详解1套
- 中国心力衰竭基层诊疗与管理指南2025
- 2025年康复医学科工作总结暨下一步工作计划
- 2026年债务管理基础试题及答案
- 第一章第一节原子结构(1)测验题- 高中化学人教版(2019)选择性必修2
- 新媒体部笔试试题及答案
- 税务师事务所内部管理制度
- 新版教科版五年级上册科学(全册)教学(期末知识复习知识梳理知识归纳)
- 磷酸铁及磷酸铁锂异物防控管理
- 2025年安徽合肥蜀山科技创新投资集团有限公司招聘笔试参考题库附带答案详解
- 上消化道异物指南解读
- 2025年中国铁路昆明局集团有限公司招聘笔试参考题库含答案解析
- SOX404条款的实施-控制例外事项与缺陷的评估框架课件
- 2024国赛中职组“网络搭建与应用”赛项规程
- 2024-2025学年广东省深圳实验学校初中部九年级上学期开学考英语试题及答案
- 地铁保护专项实施方案
评论
0/150
提交评论