试论基于olap技术的图书销售智能分析系统_第1页
试论基于olap技术的图书销售智能分析系统_第2页
试论基于olap技术的图书销售智能分析系统_第3页
试论基于olap技术的图书销售智能分析系统_第4页
试论基于olap技术的图书销售智能分析系统_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

目 次1 绪论1.1 引言随着在数据库中存储的数据越来越多,人们已经不满足于仅仅用计算机来实现业务的电子化,而希望从已有的数据中提炼出信息服务于决策人员。在这种情况下。OLAP作为一种强有力的分析和决策工具,被越来越多的没、部门使用,同时在OLAP技术上也进行了许多工作。但是主要工作都是集中在如何有效对数据进行分析上。OLAP的数据仓库是为了解决能从大量的数据中得到有用的信息而做出了很大的贡献。对于一个企业而言,每天都要面临着大量的决策问题,随着企业市场竞争的加剧和信息社会需求的发展,企业从大量数据中提取所需的各类信息就显得越来越重要了,传统的数据库技术是单一的数据库资源,他适合操作型事务处理,但对分析型处理的能力较弱。近几年来,在信息技术领域兴起并日益成熟的数据仓库技术以其面向主题组织、存储海量信息,以及在线分析支持组织机构管理决策等优秀功能成为和应用的热点。数据仓库系统的基本功能是:数据获取、数据存储和管理、信息的访问。其最终目的是把分散的、不利于访问的数据转换成集中、统一、随时可用的信息,即为了决策目标将不同形式的数据集合成为一种特殊的格式,建立起一种新的数据存储体系,使数据操作环境与数据分析环境相到分离。数据仓库利用了计算机和信息技术(IT)的最新发展,把那些大量的,分散的企业数据进行集成,并从中把企业决策所需要的信息分离出来,借助OLAP利用存储在数据仓库中的数据,去进行各种分析操作,并以较为直观易懂的形式将结果返回给用户,能更加有效地支持企业的分析和决策,从而提高决策的质量与速度。1.2 WEB环境下的OLAP技术的背景和历史现状WWW(World Wide web)技术的问世,给Internet带来了新的活力,也得到全世界的认可和信赖。随着WEB的普及,人们之间的信息沟通更加的快捷和方便。WEB上的访问数据库也得到了日益广泛的应用,使数据库技术不断地发展和更新。近年来,随着企业信息化的飞速发展。企业拥有大量业务数据,但难以及时有效的利用数据信息用来给管理者做决策工作。数据仓库技术的运用使这个问题迎刃而解,数据仓库正是由数据库演化而来是为了更好的处理和维护WEB上的庞大的访问数据和企业中的业务数据。不仅如此,数据仓库技术还有另一方面的用处即使如何让经营管理者更好的使用数据信息来做决策工作,从而给企业管理者或经营者带来经济效益。为了实现这样的目的还要把OLAP技术运用于数据仓库技术上面。OLAP技术作为一种强大有力的分析和决策工具,被越来越多的企业管理者和经营者使用。为了在OLAP技术上得到更有效的数据信息,并使用了体系结构即是C/S结构。在C/S体系结构中使用OLAP技术已经暴露出很多问题。为了解决这样的问题而进行对WEB环境下的OLAP技术的研究和实现。在数据库发展的早期,因为数据量不大而使数据库技术的查询功能和操作功能没得到明显的区分。但是随着数据库规模的扩大,人们对数据的要求也有了其他的想法,比如想取得以往的历史数据来做决策工作使在激烈的社会经营中取得胜利。管理者或经营用户要想拿到这样的历史性有用处的数据信息必须经过复杂的查询才能得到,特别是那些高层人员更需要这样有决定性的数据信息来做决策工作。在数据仓库中使用OLAP技术正好让这样工作得到满足。但是现在传统的基于C/S结构的OLAP体系结构却带来很多问题。传统的基于C/S结构的OLAP体系结构,其基本流程是由熟悉数据库结构的系统管理员对数据库结构进行分析,根据其业务知识将数据库中的表及字段映射为多维结构,构造由多维结构构成的超立方体,然后根据用户分析员在使用过程中的要求对多维视图进行修改,从而再次构造超立方体,如此循环往复。这种结构在使用过程中暴露出了不少的问题:如首先,顾客使用一次而要进行一次安装和配置,使维护工作量大大的增加。其次,对存放在顾客端的报告的修改也是很复杂的。再者,其安全性也是很薄弱的。OLAP技术是一种对数据进行多维查询的工具,主要是给管理者和经营者等决策性人员使用的,所以需求是多变性的。C/S结构不适应需求的多变性所带来的要求,而有足够灵活性的Internet/Intranet的3层结构适应了OLAP技术对需求的多变性的要求。2 系统设计的技术创新2.1 数据仓库技术根据数据仓库概念的含义,数据仓库拥有以下四个特点:(1)面向主题。操作型数据库的数据组织面向事务处理任务,各个业务系统之间各自分离,而数据仓库中的数据是按照一定的主题域进行组织。主题是一个抽象的概念,是指用户使用数据仓库进行决策时所关心的重点方面,一个主题通常与多个操作型信息系统相关。(2)集成的。面向事务处理的操作型数据库通常与某些特定的应用相关,数据库之间相互独立,并且往往是异构的。而数据仓库中的数据是在对原有分散的数据库数据抽取、清理的基础上经过系统加工、汇总和整理得到的,必须消除数据源中的不一致性,以保证数据仓库内的信息是关于整个企业的一致的全局信息。 (3)相对稳定的。操作型数据库中的数据通常实时更新,数据根据需要及时发生变化。数据仓库的数据主要供企业决策分析之用,所涉及的数据操作主要是数据查询,一旦某个数据进入数据仓库以后,一般情况下将被长期保留,也就是数据仓库中一般有大量的查询操作,但修改和删除操作很少,通常只需要定期的加载、刷新。(4)反映历史变化。操作型数据库主要关心当前某一个时间段内的数据,而数据仓库中的数据通常包含历史信息,系统记录了企业从过去某一时点(如开始应用数据仓库的时点)到目前的各个阶段的信息,通过这些信息,可以对企业的发展历程和未来趋势做出定量分析和预测。企业数据仓库的建设,是以现有企业业务系统和大量业务数据的积累为基础。数据仓库不是静态的概念,只有把信息及时交给需要这些信息的使用者,供他们做出改善其业务经营的决策,信息才能发挥作用,信息才有意义。而把信息加以整理归纳和重组,并及时提供给相应的管理决策人员,是数据仓库的根本任务。因此,从产业界的角度看,数据仓库建设是一个工程,是一个过程。如图2.1.1所示。图2.1.1数据仓库体系结构图数据源:是数据仓库系统的基础,是整个系统的数据源泉。通常包括企业内部信息和外部信息。内部信息包括存放于RDBMS中的各种业务处理数据和各类文档数据。外部信息包括各类法律法规、市场信息和竞争对手的信息等等;数据的存储与管理:是整个数据仓库系统的核心。数据仓库的真正关键是数据的存储和管理。数据仓库的组织管理方式决定了它有别于传统数据库,同时也决定了其对外部数据的表现形式。要决定采用什么产品和技术来建立数据仓库的核心,则需要从数据仓库的技术特点着手分析。针对现有各业务系统的数据,进行抽取、清理,并有效集成,按照主题进行组织。数据仓库按照数据的覆盖范围可以分为企业级数据仓库和部门级数据仓库(通常称为数据集市)。 OLAP服务器:对分析需要的数据进行有效集成,按多维模型予以组织,以便进行多角度、多层次的分析,并发现趋势。其具体实现可以分为:ROLAP、MOLAP和HOLAP。ROLAP基本数据和聚合数据均存放在RDBMS之中;MOLAP基本数据和聚合数据均存放于多维数据库中;HOLAP基本数据存放于RDBMS之中,聚合数据存放于多维数据库中。前端工具:主要包括各种报表工具、查询工具、数据分析工具、数据挖掘工具以及各种基于数据仓库或数据集市的应用开发工具。其中数据分析工具主要针对OLAP服务器,报表工具、数据挖掘工具主要针对数据仓库。2.2 OLAP 技术联机分析处理(OLAP)主要有两个特点,一是在线性(On-Line),表现为对用户请求的快速响应和交互式操作,它的实现是由Client/Server这种体系结构来完成的,二是多维分析(Multi-dimensional),这也是OLAP技术的核心所在。OLAP的在线性体现在于用户的交互响应和快速响应,多维性则体现在它建立在多维视图的基础上,对数据进行由浅到深的分析。OLAP的用户是企业中的专业分析人员及管理决策人员,他们在分析业务经营的数据时,从不同的角度来审视业务的衡量指标是一种很自然的思考模式。例如分析销售数据,可能会综合时间周期,产品类别,分销渠道,区域分布,客户等多种因素来考虑。这些分析角度虽然可以通过报表来反映,但是每一个分析的角度可以生成一张报表,各个分析角度的不同组合又可以生成不同的报表,使得IT人员的工作量相当大,而且往往难以跟上管理决策人员思考的步伐。所以OLAP的多维性较好地满足了企业管理人员的需要。管理人员可对OLAP进行操作,即对多维数据集中的数据进行切片,切块,旋转,上卷和下钻操作,以对数据进行分析,让用户多角度、多侧面地去观察数据仓库中的数据,从而深入了解数据仓库中数据所蕴含的信息,并找出隐含在数据中的商业模式。根据综合性数据的组织方式的不同,目前常见的OLAP主要有基于多维数据库的MOLAP及基于关系数据库的ROLAP两种。MOLAP是以多维的方式组织和存储数据,ROLAP则利用现有的关系数据库技术来模拟多维数据。在数据仓库应用中,OLAP工具一般是数据仓库应用的前端工具,同时OLAP工具还可以配合数据挖掘进行使用,增加决策分析预测功能。数据仓库的基本任务是使用获得的数据来进行大量的分析,以生成支持用户制定战略决策的信息。为了让数据仓库能作有意义的分析,数据必须以某种方法被映射,以便用户能利用一些数据来分析随着时间变化各商业维度的关键指标的数值。2.3 数据挖掘的技术数据挖掘是一种数据分析工具,它从大量的、不完全的、有噪声的、模糊的、随机的数据中提取人们感兴趣的数据模式、数据的普遍关系及其隐含在其中的、人们事先不知道的、但又是潜在有用的信息和知识,提取的知识表示为概念、规则、规律、模式等形式,其目的是帮助决策者寻找数据间潜在的关联,发现被忽略的要素,而这些信息对预测趋势和决策行为将起到一定的支持作用。数据库中的数据挖掘是一个多步骤的处理过程,这些步骤有:(1)数据定义阶段,主要了解相关领域的有关情况,熟悉背景知识,弄清楚用户决策分析对信息的要求。(2)数据提取阶段,根据要求从数据库中提取相关的数据。(3)数据预处理阶段,主要对前一阶段产生的数据进行再加工,检查数据的完整性及数据的一致性,对其中的噪音数据进行处理,对缺损的数据进行填补。(4)数据挖掘阶段,主要是运用选定的知识发现算法,从数据中提取出用户所需要的知识,这些知识可以用一种特定的方式表示或使用一些常用的表示方式。(5)知识评估阶段,将发现的知识以用户能了解的方式呈现,根据需要对知识发现过程中的某些处理阶段进行优化,知道满足要求。2.4 OLAP与数据挖掘的关系(1)OLAP与数据挖掘都属于分析型工具,两者的区别在于:数据挖掘的分析过程是自动的,用户不必提出确切的问题,只需用挖掘工具去挖掘隐藏在海量数据中的模式并预测未来的趋势,这种方式有利于发现未知的事实,但缺乏引导的数据挖掘,往往所发现的许多模式实用性很差。OLAP是一种自上而下、不断深入的验证型分析工具,它常常以用户的假设为基础对数据查询与分析,进而提取出相关的信息。所以OLAP在数据分析方面存在着一定的局限性,即数据仓库的结构设计的模式不同决定了OLAP对数据的分析效果与分析层次;同时由于OLAP是用户驱动的,用户对所分析问题认识和理解程度在一定程度上会影响到最终的分析结果。从对数据分析的角度看。OLAP位于较浅的层次;由于数据挖掘可以发现OLAP所不能发现的更为复杂而细致的信息,因而处于相对较高的层次。(2)OLAP与数据挖掘的相互作用体现在以下几个方面:OLAP与数据挖掘同作为数据分析工具,二者相比互有优劣。数据挖掘结果的无法预测性及挖掘结果是否有效等不足,决定了数据挖掘需要另外一个分析工具作辅助,对其结果进行验证。OLAP是针对多维数据库而开发的分析工具,可以对多维数据进行较为全面的映射。所以在数据仓库的基础上,OLAP与数据挖掘有了结合的可能,即数据挖掘的结果可以通过OLAP进行验证,数据挖掘在有验证的前提下,其挖掘结果将呈现螺旋式上升的过程,逐步从模糊、混沌走向清晰、客观,进而表现为有价值的知识。成功的数据挖掘需要对数据进行探索性的分析。挖掘所需的数据范围也许只是数据仓库的一部分,在此意义上,OLAP对多维数据的钻取、旋转等操作同样可以应用于数据挖掘的过程中,作为基于数据仓库挖掘的引导步骤。3 系统解决方案3.1 在WEB环境下OLAP技术的研究长久以来,对数据库的操作都有两种不同的应用方式。一种是日常的对数据的操作型应用,另一种是对数据的查询型应用。这两种应用有着很大的区别,如表3.1.1。操作型应用查询型应用涉及的表或字段不多涉及大量的表和字段以增删操作为主,查询量少不修改数据,但进行大量的查询以业务人员使用为主,主要是细节信息面向管理人员或决策人员,关注汇总信息和导出信息使用当前数据可能用到大量的历史信息表3.1.1两种应用的区别在数据库发展的早期,因为数据量不大,查询型应用和操作型应用的区别还不太明显。但随着数据库规模的逐渐增大,人们希望利用已经有的历史数据来使自己在激烈的竞争中取胜,分析人员经常是希望从多个不同的角度来观察一个或多个指标的值,并且希望从中找到这些指标之间的关系,这些要求导致查询复杂度越来越高,特别是这些查询请求是分析人员在分析过程中根据显示的数据而实时产生的。这样的要求是业务系统无法胜任的。而OLAP技术就能够解决这样的查询要求。OLAP操作最主要的一点是要给分析人员提供一个多维数据超立方体,分析人员不需要了解实际的数据库结构,他所看见的是与其习惯的企业逻辑结构相似的多维结构。根据他所关注的目的的不同,在多维结构内今昔感多维操作,如钻取、上挖、漂移、切片、切块等。数据库管理人员的责任就是根据企业的组织结构和实际使用人员的要求,在已经有的数据仓库上构造多维数据库及多维视图。传统的基于C/S结构的OLAP体系机构,其基本流程是由熟悉数据库结构的系统管理员对数据库结构进行分析,根据其业务知识将数据库中的表及字段映射为多维结构,构造由多维结构构成的超立方体,然后根据用户分析人员在使用过程中的要求对多维视图进行修改,从而再次构造超立方体,如此循环往复。这种结构在使用过程中暴露出了不少的问题:(1)在每一个客户端都要安装和配置多维查询软件。维护工作量很大;(2)报告内容要根据使用者在使用过程中碰到的要求进行修改,因此要维护客户端的报告内容一致也是很复杂的;(3)因为报告存放在客户端。因此可能会被修改,从而安全性也很不好。出现这些问题的根本原因是没有注意到OLAP的特殊性:OLAP作为一个多维查询工具,不同于传统的业务系统,主要是给管理和决策人员使用的,需求是多变的,所以IT人员不可能依次设计出符合分析人员要求的超立方体,需要在使用过程中根据要求对超立方体不断进行调整和修改,但是这种多变性是C/S结构所不能适应的。而且有基于Internet/Intranet的3层结构才具有足够的灵活性。WEB服务器负责完成浏览器与OLAP服务器,数据仓库系统之间的通信连接。如图3.1.1所示。一般来说,WEB服务器通过使用CGI脚本、WEB服务器API、应用API和数据库API等,管理浏览器的通信。在浏览器端,通过HTML、DMX、ActiveX控件、C#.NET来完成与用户的交互截面和控件。在实现基于WEB的OLAP应用时,往往采用自顶向下的设计。首先要确定用户如何在浏览器中的到报表信息,然后再给出一系列的过程完成基于浏览器的OLAP操作。这些过程应当包括发布信息,提供HTTP对数据库或应用服务器的动态数据请求,设计支持分析功能的界面。在客户端基于WEB浏览器的OLAP报表被分为几个层次,其中包括没有分析功能的静态报表和能够进行分析的OLAP应用界面,如维的旋转,数据的钻取等。另外,特别要提到的是,标准的HTML界面缺乏操作的灵活与方便。C#.NET和ActiveX控件的使用会大大提高用户截面的友好程度,用户通过简单的操作就可以完成“旋转”、“钻取”的操作。数据仓库系统OLAP服务器WEB服务器客户浏览器 CGI API C#.NET、ActiveX 控件图3.1.1基于WEB的OLAP结构图3.2 在WEB环境下OLAP技术的实现方案OLAP专门用于支持复杂的决策分析,支持信息管理和业务管理人员决策活动的一种决策分析工具。它可以根据分析人员的要求,迅速、灵活地对大量数据进行复杂的查询处理,并且以直观的、容易理解的形式将查询结果提供给各种决策人员,使他们迅速、准确地掌握企业的运营情况,了解市场需求。而要进行OLAP多维数据分析就需要根据分析需求,同时结合数据仓库中的数据结构和特点建立OLAP多维模型。以超市销售系统为例子,并对该例子的OLAP销售多维模型进行了设计,如图3.2.1。时间编号年季度月日食品编号时间编号客户编号食品名称销售数量销售额平均价格食品编号食品类别编号食品名称客户编号区域编号客户名称食品类别编号食品类别名称区域编号省市 销售事实表 食品维表 食品类别维表 客户维表 区域维表 时间维表 图3.2.1 超市销售分析的OLAP模型从图中可以看出在超市销售分析的OLAP模型中有一个销售事实表,在该事实表中每个元组只存储了一些指向各个维表的指针(即外键,时间编号、食品编号、客户编号等)和一些相应的测量数据(度量值),销售数量、销售额和平均价格,而与这些外键相对应的主键则分别存放不同的维表中(时间维表、客户维表、食品维表等)。对事实表的查询就是获取指向维表的指针,当对事实表的查询与对维表的查询结合起来的时候,就可以检索大量的信息。一个完整的基于WEB的OLAP销售分析系统由三方面组成。第一,提取、清洗数据组成数据仓库;第二利用OLAP引擎建立相应的销售分析的OLAP立方体;第三使用前端开发工具,在WEB上访问OLAP立方体中包含的对象和集合。这里选用了SQL SERVER 2005 Analysis Services作为数据仓库支撑平台,SQL SERVER 2005的Analysis Services 是一个管理多维数据集的服务器,数据源并抽取数据,实现高效地将客户数据加载到客户数据仓库中;服务器支持MDOLAP、ROLAP和HOLAP三种存储模式,用户自己定义使用的存储模式,定义各个维度并建立销售多维数据集,从而完成整个销售过程。文档由本人精心搜集和整理,喜欢大家用得上,非常感谢你的浏览与下载。凡本厂职工应热爱电厂、热爱岗位、热爱本职工作,发扬“团结务实、争创一流,立足岗位,爱厂敬业,尽职尽责,不断提高工作质量和工作效率,圆满完成各项生产和工作任务,为华能的建设和发展作出贡献2019整理的各行业企管,经济,房产,策划,方案等工作范文,希望你用得上,不足之处请指正4 图书销售分析系统的总体设计和实现4.1 系统的功能本系统的功能可以划分为会员分析和图书分析两大部分(如图4.1.1图书小时分析系统功能结构图。图书销售分析系统会员分析图书分析分析会员级别分析会员消费分析会员类型分析图书推荐销售趋势分析销售关联分析图书销量分析图书定价分析图4.1.1图书销售分析系统功能结构图其中会员分析是对书店注册会员的信息进行分析,具体功包括:(1)会员级别分析:根据会员的个人信息来预测该会员最有可能成为哪级会员。(2)会员消费分析:根据会员的个人信息来预测该会员在书店的消费类型。(3)会员类型分析:根据会员的个人信息和消费记录来对会员进行自动分类。(4)图书推荐:根据会员的以往购书记录来向推荐其他可能感兴趣的图书。其中图书分析则是对书店图书的信息进行分析,具体功能包括:(1)销售趋势分析:根据图书的历史销售信息来预测未来的销售额。(2)图书销量分:根据图书的基本信息来预测其销量。(3)销售关联分析:分析哪些图书经常会被一同销售。(4)图书定价分析:根据图书的基本信息来估算定价。4.2 数据源设计4.2.1 数据库设计 数据库逻辑设计根据系统的需求分析定义系统中的实体,并采用E-R图来(如图2.2.1图书销售E-R图)表现实体之间的逻辑关系。在关系图中主要有会员和图书两个实体,会员买书的一些情况和推荐书的情况。图书中包含了图书的销售量等相关信息。会员会员号姓名入会时间级别生日地区地址性别电话邮箱积分图书国际标准图书号图书号光盘书名存储量出版社出版日期价格上架时间页数条码号买书推荐书销售数据销售量会员号销售时间推荐数据书号类型折扣情况级别折扣率NNNN级别号 图4.2.1图书销售E-R图 数据库结构设计在逻辑设计的基础上,进行了结构设计,数据库的设计主要有五个数据表和三个视图,下面分别对五个数据表和三个视图进行说明。(1)会员表:主要是记录会员的姓名、性别、地址、电话号码、会员号、会员的级别、会员的入会时间。这些对视图进行查询有很大用处,同时对分析进行预测提供了可靠的信息资源。(2)图书表:主要是记录图书的名字、出版社、出版时间、国际标准图书号、内带光盘、存储量、上架日期、条码、价格、书的页数(3)买书的记录表:主要记录会员买书的情况,里面记录会员的会员号、买书的时间、买书消费额。(4)折扣表:主要是记录会员的级别所打的折扣。表内包括级别和折扣率。(5)图书销售情况表:主要记录图书销售的情况。主要记录图书号、图书的销售额、图书销售的数量、图书销售的折扣。(6)图书视图:主要是进行图书与会员的综合查询,它包含了图书的基本信息和销售情况汇总。(7)图书销售视图:主要是对图书的销售情况的综合查询,它包含了图书的销售细明信息。(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)YEmailNvarchar(50)YScoreIntY表4.2.1会员表列名数据类型允许空IDIntISBNNchar(10)NameNvarchar(256)CategoryIDIntYAuthorNvarchar(100)YPressNvarchar(50)YPublishDateSmalldatetimeYPriceSmallmoneyPagesSmallintYBarcodeNchar(13)CDBitYStorageIntYShelfDateSmalldatetimeY表4.2.2图书表列名数据类型允许空IDIntCustomerIDIntYSumSmallmoneyYTimesmalldatetime表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 ByPriceBookYGroup 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.SellItem.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, 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图书销售关系图):SELECT 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 INNER 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.Sum) 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 设计好了以上的表和视图是为了对其中的数据进行预测和分析,这些创建给以后的实现部分做了很好的铺垫。4.2.2 图书销售 Analysis Services 设计 数据源设计 在数据源设计运用了数据挖掘技术,首先用“数据源向导”将数据中表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()” 是用来计算会员的年龄和会员的积分除以其注册天数以得到该会员的日平均消费金额。合理地使用计算列,能够大大方便挖掘结构和挖掘模型的创建,同时避免修改源数据库中的基础表格和视图。在Analysis Services项目中也需要向图书表中加入两个计算器分别DaySellNumber和DaySellSum,计算表达式为:“SellNumber/DATEDIFF(DAY,ShelfDate,GETDATE()”、“SellSum/DATEDIFF(DAY,ShelfDate,GETDATE()”。它们是用来计算图书日均销量。为了对会员购书的有关信息进行挖掘,在数据源视图中还应将会员表和图书销售视图关联起来。如图4.2.3数据源视图图书销售图。如图4.2.3数据源视图图书销售图数据源的设计对以后数据挖掘起到决定的作用。在本设计中使用了多个数据挖掘的方法。这些方法大大方便了界面的分析和预测。管理者通过预测的信息知道内部图书销售的各个情况和了解会员的相关活动信息。 本系统设计的挖掘模型(1)贝叶斯挖掘模型:是用来对会员级别的分析。主要运用了“Microsoft Nave Bayes”挖掘技术对数据源视图中的会员表作为事例对Levels和DayConsume列作为可预测列进行预测。(2)决策树挖掘模型:来分析会员的消费水平最有可能处在哪个区间,主要运用“Microsoft 决策树”挖掘技术对数据源视图中的会员表作为事例对Levels进行忽略,而对DayConsume进行可预测。(3)聚类分析挖掘模型:是用来分析会员的年龄和学历进行分析。是忽略Area、Levels、Gender,而Age和Degree作为输入列对DayConsume进行预测。(4)关联规则挖掘模型:用于分析会员与图书之间的关联,进而向会员推荐其他可能感兴趣图书。在设计中用会员表作为事例表嵌套图书销售表,Gender、Age、Degree、Area作为输入列,BookSell进行预测。(5)时序挖掘模型:是用于图书的分析,用每周销售视图来做事例,ID和 Week作为输入键对SellSum进行预测。(6)神经网络挖掘模型:是预测新书的销量,图书表作为事例,Category、Press、Price、Pages和CD列进行输入,对DaySellNumber进行预测。(7)顺序分析挖掘模型:用于实现图书销售的关联分析,会员表作为事例,图书销售表销售表作为嵌套表,对Name进行预测。(8)线性回归挖掘模型:是对图书价格的预测,图书表作为事例,Pages为输入列,对Price进行预测。4.3系统界面设计4.3.1会员信息分析界面设计 对于会员信息分析的Windows窗体设计视图如图4.3.1所示。在对应的窗体类CustomerAnalysisForm.cs中定义了如下成员字段: protected SqlConnection _connDatabase; protected AdomdConnection _connAnalysis;protected AdomdCommand _cmd;其中前两个数据连接对象分别指向SQL Server数据库BookSell和Analysis Server数据库,后一个数据命令对象则用于在Analysis Services数据库上执行DMX查询对象的创建都在窗体的构造函数中完成:public CustomerAnalysisForm(SqlConnection connectionDatabase, AdomdConnection connectionAnalysis) _connDatabase = connectionDatabase; _connAnalysis = connectionAnalysis; _cmd = _connAnalysis.CreateCommand(); InitializeComponent(); 窗体在初始化和关闭将打开和关闭相应的数据连接;窗体的初始化过程同时还使用SQL数据命令将所有会员的ID号载入到“会员编号”组合框(cmbcustomerID)中:private void CustomerAnalysisForm_Load(object sender, EventArgs e) SqlCommand cmd1 = new SqlCommand(SELECT DISTINCT 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命令来读取会员的个人信息,并显示在窗体上部的各个控件中: 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, Score 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)reader13) 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预测查询字符串,而后调用贝叶斯模型CustomerLevels来预测会员级别:private void btnPredictLevels_Click(object sender, EventArgs e) if (cmbArea.Text = | cmbDegree.Text = ) MessageBox.Show(地区或学历不能为空, 错误, MessageBoxButtons.OK, Mes

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论