試論基于OLAP技術(shù)的圖書銷售智能分析系統(tǒng)_第1頁(yè)
試論基于OLAP技術(shù)的圖書銷售智能分析系統(tǒng)_第2頁(yè)
試論基于OLAP技術(shù)的圖書銷售智能分析系統(tǒng)_第3頁(yè)
試論基于OLAP技術(shù)的圖書銷售智能分析系統(tǒng)_第4頁(yè)
試論基于OLAP技術(shù)的圖書銷售智能分析系統(tǒng)_第5頁(yè)
已閱讀5頁(yè),還剩30頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、目 次1 緒論1.1 引言隨著在數(shù)據(jù)庫(kù)中存儲(chǔ)的數(shù)據(jù)越來(lái)越多,人們已經(jīng)不滿足于僅僅用計(jì)算機(jī)來(lái)實(shí)現(xiàn)業(yè)務(wù)的電子化,而希望從已有的數(shù)據(jù)中提煉出信息服務(wù)于決策人員。在這種情況下。OLAP作為一種強(qiáng)有力的分析和決策工具,被越來(lái)越多的沒(méi)、部門使用,同時(shí)在OLAP技術(shù)上也進(jìn)行了許多工作。但是主要工作都是集中在如何有效對(duì)數(shù)據(jù)進(jìn)行分析上。OLAP的數(shù)據(jù)倉(cāng)庫(kù)是為了解決能從大量的數(shù)據(jù)中得到有用的信息而做出了很大的貢獻(xiàn)。對(duì)于一個(gè)企業(yè)而言,每天都要面臨著大量的決策問(wèn)題,隨著企業(yè)市場(chǎng)競(jìng)爭(zhēng)的加劇和信息社會(huì)需求的發(fā)展,企業(yè)從大量數(shù)據(jù)中提取所需的各類信息就顯得越來(lái)越重要了,傳統(tǒng)的數(shù)據(jù)庫(kù)技術(shù)是單一的數(shù)據(jù)庫(kù)資源,他適合操作型事務(wù)處理

2、,但對(duì)分析型處理的能力較弱。近幾年來(lái),在信息技術(shù)領(lǐng)域興起并日益成熟的數(shù)據(jù)倉(cāng)庫(kù)技術(shù)以其面向主題組織、存儲(chǔ)海量信息,以及在線分析支持組織機(jī)構(gòu)管理決策等優(yōu)秀功能成為和應(yīng)用的熱點(diǎn)。數(shù)據(jù)倉(cāng)庫(kù)系統(tǒng)的基本功能是:數(shù)據(jù)獲取、數(shù)據(jù)存儲(chǔ)和管理、信息的訪問(wèn)。其最終目的是把分散的、不利于訪問(wèn)的數(shù)據(jù)轉(zhuǎn)換成集中、統(tǒng)一、隨時(shí)可用的信息,即為了決策目標(biāo)將不同形式的數(shù)據(jù)集合成為一種特殊的格式,建立起一種新的數(shù)據(jù)存儲(chǔ)體系,使數(shù)據(jù)操作環(huán)境與數(shù)據(jù)分析環(huán)境相到分離。數(shù)據(jù)倉(cāng)庫(kù)利用了計(jì)算機(jī)和信息技術(shù)(IT)的最新發(fā)展,把那些大量的,分散的企業(yè)數(shù)據(jù)進(jìn)行集成,并從中把企業(yè)決策所需要的信息分離出來(lái),借助OLAP利用存儲(chǔ)在數(shù)據(jù)倉(cāng)庫(kù)中的數(shù)據(jù),去進(jìn)行

3、各種分析操作,并以較為直觀易懂的形式將結(jié)果返回給用戶,能更加有效地支持企業(yè)的分析和決策,從而提高決策的質(zhì)量與速度。1.2 WEB環(huán)境下的OLAP技術(shù)的背景和歷史現(xiàn)狀WWW(World Wide web)技術(shù)的問(wèn)世,給Internet帶來(lái)了新的活力,也得到全世界的認(rèn)可和信賴。隨著WEB的普及,人們之間的信息溝通更加的快捷和方便。WEB上的訪問(wèn)數(shù)據(jù)庫(kù)也得到了日益廣泛的應(yīng)用,使數(shù)據(jù)庫(kù)技術(shù)不斷地發(fā)展和更新。近年來(lái),隨著企業(yè)信息化的飛速發(fā)展。企業(yè)擁有大量業(yè)務(wù)數(shù)據(jù),但難以及時(shí)有效的利用數(shù)據(jù)信息用來(lái)給管理者做決策工作。數(shù)據(jù)倉(cāng)庫(kù)技術(shù)的運(yùn)用使這個(gè)問(wèn)題迎刃而解,數(shù)據(jù)倉(cāng)庫(kù)正是由數(shù)據(jù)庫(kù)演化而來(lái)是為了更好的處理和維護(hù)W

4、EB上的龐大的訪問(wèn)數(shù)據(jù)和企業(yè)中的業(yè)務(wù)數(shù)據(jù)。不僅如此,數(shù)據(jù)倉(cāng)庫(kù)技術(shù)還有另一方面的用處即使如何讓經(jīng)營(yíng)管理者更好的使用數(shù)據(jù)信息來(lái)做決策工作,從而給企業(yè)管理者或經(jīng)營(yíng)者帶來(lái)經(jīng)濟(jì)效益。為了實(shí)現(xiàn)這樣的目的還要把OLAP技術(shù)運(yùn)用于數(shù)據(jù)倉(cāng)庫(kù)技術(shù)上面。OLAP技術(shù)作為一種強(qiáng)大有力的分析和決策工具,被越來(lái)越多的企業(yè)管理者和經(jīng)營(yíng)者使用。為了在OLAP技術(shù)上得到更有效的數(shù)據(jù)信息,并使用了體系結(jié)構(gòu)即是C/S結(jié)構(gòu)。在C/S體系結(jié)構(gòu)中使用OLAP技術(shù)已經(jīng)暴露出很多問(wèn)題。為了解決這樣的問(wèn)題而進(jìn)行對(duì)WEB環(huán)境下的OLAP技術(shù)的研究和實(shí)現(xiàn)。在數(shù)據(jù)庫(kù)發(fā)展的早期,因?yàn)閿?shù)據(jù)量不大而使數(shù)據(jù)庫(kù)技術(shù)的查詢功能和操作功能沒(méi)得到明顯的區(qū)分。但是隨

5、著數(shù)據(jù)庫(kù)規(guī)模的擴(kuò)大,人們對(duì)數(shù)據(jù)的要求也有了其他的想法,比如想取得以往的歷史數(shù)據(jù)來(lái)做決策工作使在激烈的社會(huì)經(jīng)營(yíng)中取得勝利。管理者或經(jīng)營(yíng)用戶要想拿到這樣的歷史性有用處的數(shù)據(jù)信息必須經(jīng)過(guò)復(fù)雜的查詢才能得到,特別是那些高層人員更需要這樣有決定性的數(shù)據(jù)信息來(lái)做決策工作。在數(shù)據(jù)倉(cāng)庫(kù)中使用OLAP技術(shù)正好讓這樣工作得到滿足。但是現(xiàn)在傳統(tǒng)的基于C/S結(jié)構(gòu)的OLAP體系結(jié)構(gòu)卻帶來(lái)很多問(wèn)題。傳統(tǒng)的基于C/S結(jié)構(gòu)的OLAP體系結(jié)構(gòu),其基本流程是由熟悉數(shù)據(jù)庫(kù)結(jié)構(gòu)的系統(tǒng)管理員對(duì)數(shù)據(jù)庫(kù)結(jié)構(gòu)進(jìn)行分析,根據(jù)其業(yè)務(wù)知識(shí)將數(shù)據(jù)庫(kù)中的表及字段映射為多維結(jié)構(gòu),構(gòu)造由多維結(jié)構(gòu)構(gòu)成的超立方體,然后根據(jù)用戶分析員在使用過(guò)程中的要求對(duì)多維視

6、圖進(jìn)行修改,從而再次構(gòu)造超立方體,如此循環(huán)往復(fù)。這種結(jié)構(gòu)在使用過(guò)程中暴露出了不少的問(wèn)題:如首先,顧客使用一次而要進(jìn)行一次安裝和配置,使維護(hù)工作量大大的增加。其次,對(duì)存放在顧客端的報(bào)告的修改也是很復(fù)雜的。再者,其安全性也是很薄弱的。OLAP技術(shù)是一種對(duì)數(shù)據(jù)進(jìn)行多維查詢的工具,主要是給管理者和經(jīng)營(yíng)者等決策性人員使用的,所以需求是多變性的。C/S結(jié)構(gòu)不適應(yīng)需求的多變性所帶來(lái)的要求,而有足夠靈活性的Internet/Intranet的3層結(jié)構(gòu)適應(yīng)了OLAP技術(shù)對(duì)需求的多變性的要求。2 系統(tǒng)設(shè)計(jì)的技術(shù)創(chuàng)新2.1 數(shù)據(jù)倉(cāng)庫(kù)技術(shù)根據(jù)數(shù)據(jù)倉(cāng)庫(kù)概念的含義,數(shù)據(jù)倉(cāng)庫(kù)擁有以下四個(gè)特點(diǎn):(1)面向主題。操作型數(shù)據(jù)庫(kù)的

7、數(shù)據(jù)組織面向事務(wù)處理任務(wù),各個(gè)業(yè)務(wù)系統(tǒng)之間各自分離,而數(shù)據(jù)倉(cāng)庫(kù)中的數(shù)據(jù)是按照一定的主題域進(jìn)行組織。主題是一個(gè)抽象的概念,是指用戶使用數(shù)據(jù)倉(cāng)庫(kù)進(jìn)行決策時(shí)所關(guān)心的重點(diǎn)方面,一個(gè)主題通常與多個(gè)操作型信息系統(tǒng)相關(guān)。(2)集成的。面向事務(wù)處理的操作型數(shù)據(jù)庫(kù)通常與某些特定的應(yīng)用相關(guān),數(shù)據(jù)庫(kù)之間相互獨(dú)立,并且往往是異構(gòu)的。而數(shù)據(jù)倉(cāng)庫(kù)中的數(shù)據(jù)是在對(duì)原有分散的數(shù)據(jù)庫(kù)數(shù)據(jù)抽取、清理的基礎(chǔ)上經(jīng)過(guò)系統(tǒng)加工、匯總和整理得到的,必須消除數(shù)據(jù)源中的不一致性,以保證數(shù)據(jù)倉(cāng)庫(kù)內(nèi)的信息是關(guān)于整個(gè)企業(yè)的一致的全局信息。 (3)相對(duì)穩(wěn)定的。操作型數(shù)據(jù)庫(kù)中的數(shù)據(jù)通常實(shí)時(shí)更新,數(shù)據(jù)根據(jù)需要及時(shí)發(fā)生變化。數(shù)據(jù)倉(cāng)庫(kù)的數(shù)據(jù)主要供企業(yè)決策分析之

8、用,所涉及的數(shù)據(jù)操作主要是數(shù)據(jù)查詢,一旦某個(gè)數(shù)據(jù)進(jìn)入數(shù)據(jù)倉(cāng)庫(kù)以后,一般情況下將被長(zhǎng)期保留,也就是數(shù)據(jù)倉(cāng)庫(kù)中一般有大量的查詢操作,但修改和刪除操作很少,通常只需要定期的加載、刷新。(4)反映歷史變化。操作型數(shù)據(jù)庫(kù)主要關(guān)心當(dāng)前某一個(gè)時(shí)間段內(nèi)的數(shù)據(jù),而數(shù)據(jù)倉(cāng)庫(kù)中的數(shù)據(jù)通常包含歷史信息,系統(tǒng)記錄了企業(yè)從過(guò)去某一時(shí)點(diǎn)(如開始應(yīng)用數(shù)據(jù)倉(cāng)庫(kù)的時(shí)點(diǎn))到目前的各個(gè)階段的信息,通過(guò)這些信息,可以對(duì)企業(yè)的發(fā)展歷程和未來(lái)趨勢(shì)做出定量分析和預(yù)測(cè)。企業(yè)數(shù)據(jù)倉(cāng)庫(kù)的建設(shè),是以現(xiàn)有企業(yè)業(yè)務(wù)系統(tǒng)和大量業(yè)務(wù)數(shù)據(jù)的積累為基礎(chǔ)。數(shù)據(jù)倉(cāng)庫(kù)不是靜態(tài)的概念,只有把信息及時(shí)交給需要這些信息的使用者,供他們做出改善其業(yè)務(wù)經(jīng)營(yíng)的決策,信息才能發(fā)揮

9、作用,信息才有意義。而把信息加以整理歸納和重組,并及時(shí)提供給相應(yīng)的管理決策人員,是數(shù)據(jù)倉(cāng)庫(kù)的根本任務(wù)。因此,從產(chǎn)業(yè)界的角度看,數(shù)據(jù)倉(cāng)庫(kù)建設(shè)是一個(gè)工程,是一個(gè)過(guò)程。如圖所示。圖數(shù)據(jù)倉(cāng)庫(kù)體系結(jié)構(gòu)圖數(shù)據(jù)源:是數(shù)據(jù)倉(cāng)庫(kù)系統(tǒng)的基礎(chǔ),是整個(gè)系統(tǒng)的數(shù)據(jù)源泉。通常包括企業(yè)內(nèi)部信息和外部信息。內(nèi)部信息包括存放于RDBMS中的各種業(yè)務(wù)處理數(shù)據(jù)和各類文檔數(shù)據(jù)。外部信息包括各類法律法規(guī)、市場(chǎng)信息和競(jìng)爭(zhēng)對(duì)手的信息等等;數(shù)據(jù)的存儲(chǔ)與管理:是整個(gè)數(shù)據(jù)倉(cāng)庫(kù)系統(tǒng)的核心。數(shù)據(jù)倉(cāng)庫(kù)的真正關(guān)鍵是數(shù)據(jù)的存儲(chǔ)和管理。數(shù)據(jù)倉(cāng)庫(kù)的組織管理方式?jīng)Q定了它有別于傳統(tǒng)數(shù)據(jù)庫(kù),同時(shí)也決定了其對(duì)外部數(shù)據(jù)的表現(xiàn)形式。要決定采用什么產(chǎn)品和技術(shù)來(lái)建立數(shù)據(jù)倉(cāng)庫(kù)

10、的核心,則需要從數(shù)據(jù)倉(cāng)庫(kù)的技術(shù)特點(diǎn)著手分析。針對(duì)現(xiàn)有各業(yè)務(wù)系統(tǒng)的數(shù)據(jù),進(jìn)行抽取、清理,并有效集成,按照主題進(jìn)行組織。數(shù)據(jù)倉(cāng)庫(kù)按照數(shù)據(jù)的覆蓋范圍可以分為企業(yè)級(jí)數(shù)據(jù)倉(cāng)庫(kù)和部門級(jí)數(shù)據(jù)倉(cāng)庫(kù)(通常稱為數(shù)據(jù)集市)。 OLAP服務(wù)器:對(duì)分析需要的數(shù)據(jù)進(jìn)行有效集成,按多維模型予以組織,以便進(jìn)行多角度、多層次的分析,并發(fā)現(xiàn)趨勢(shì)。其具體實(shí)現(xiàn)可以分為:ROLAP、MOLAP和HOLAP。ROLAP基本數(shù)據(jù)和聚合數(shù)據(jù)均存放在RDBMS之中;MOLAP基本數(shù)據(jù)和聚合數(shù)據(jù)均存放于多維數(shù)據(jù)庫(kù)中;HOLAP基本數(shù)據(jù)存放于RDBMS之中,聚合數(shù)據(jù)存放于多維數(shù)據(jù)庫(kù)中。前端工具:主要包括各種報(bào)表工具、查詢工具、數(shù)據(jù)分析工具、數(shù)據(jù)挖

11、掘工具以及各種基于數(shù)據(jù)倉(cāng)庫(kù)或數(shù)據(jù)集市的應(yīng)用開發(fā)工具。其中數(shù)據(jù)分析工具主要針對(duì)OLAP服務(wù)器,報(bào)表工具、數(shù)據(jù)挖掘工具主要針對(duì)數(shù)據(jù)倉(cāng)庫(kù)。2.2 OLAP 技術(shù)聯(lián)機(jī)分析處理(OLAP)主要有兩個(gè)特點(diǎn),一是在線性(On-Line),表現(xiàn)為對(duì)用戶請(qǐng)求的快速響應(yīng)和交互式操作,它的實(shí)現(xiàn)是由Client/Server這種體系結(jié)構(gòu)來(lái)完成的,二是多維分析(Multi-dimensional),這也是OLAP技術(shù)的核心所在。OLAP的在線性體現(xiàn)在于用戶的交互響應(yīng)和快速響應(yīng),多維性則體現(xiàn)在它建立在多維視圖的基礎(chǔ)上,對(duì)數(shù)據(jù)進(jìn)行由淺到深的分析。OLAP的用戶是企業(yè)中的專業(yè)分析人員及管理決策人員,他們?cè)诜治鰳I(yè)務(wù)經(jīng)營(yíng)的數(shù)據(jù)時(shí)

12、,從不同的角度來(lái)審視業(yè)務(wù)的衡量指標(biāo)是一種很自然的思考模式。例如分析銷售數(shù)據(jù),可能會(huì)綜合時(shí)間周期,產(chǎn)品類別,分銷渠道,區(qū)域分布,客戶等多種因素來(lái)考慮。這些分析角度雖然可以通過(guò)報(bào)表來(lái)反映,但是每一個(gè)分析的角度可以生成一張報(bào)表,各個(gè)分析角度的不同組合又可以生成不同的報(bào)表,使得IT人員的工作量相當(dāng)大,而且往往難以跟上管理決策人員思考的步伐。所以O(shè)LAP的多維性較好地滿足了企業(yè)管理人員的需要。管理人員可對(duì)OLAP進(jìn)行操作,即對(duì)多維數(shù)據(jù)集中的數(shù)據(jù)進(jìn)行切片,切塊,旋轉(zhuǎn),上卷和下鉆操作,以對(duì)數(shù)據(jù)進(jìn)行分析,讓用戶多角度、多側(cè)面地去觀察數(shù)據(jù)倉(cāng)庫(kù)中的數(shù)據(jù),從而深入了解數(shù)據(jù)倉(cāng)庫(kù)中數(shù)據(jù)所蘊(yùn)含的信息,并找出隱含在數(shù)據(jù)中的

13、商業(yè)模式。根據(jù)綜合性數(shù)據(jù)的組織方式的不同,目前常見的OLAP主要有基于多維數(shù)據(jù)庫(kù)的MOLAP及基于關(guān)系數(shù)據(jù)庫(kù)的ROLAP兩種。MOLAP是以多維的方式組織和存儲(chǔ)數(shù)據(jù),ROLAP則利用現(xiàn)有的關(guān)系數(shù)據(jù)庫(kù)技術(shù)來(lái)模擬多維數(shù)據(jù)。在數(shù)據(jù)倉(cāng)庫(kù)應(yīng)用中,OLAP工具一般是數(shù)據(jù)倉(cāng)庫(kù)應(yīng)用的前端工具,同時(shí)OLAP工具還可以配合數(shù)據(jù)挖掘進(jìn)行使用,增加決策分析預(yù)測(cè)功能。數(shù)據(jù)倉(cāng)庫(kù)的基本任務(wù)是使用獲得的數(shù)據(jù)來(lái)進(jìn)行大量的分析,以生成支持用戶制定戰(zhàn)略決策的信息。為了讓數(shù)據(jù)倉(cāng)庫(kù)能作有意義的分析,數(shù)據(jù)必須以某種方法被映射,以便用戶能利用一些數(shù)據(jù)來(lái)分析隨著時(shí)間變化各商業(yè)維度的關(guān)鍵指標(biāo)的數(shù)值。2.3 數(shù)據(jù)挖掘的技術(shù)數(shù)據(jù)挖掘是一種數(shù)據(jù)分析

14、工具,它從大量的、不完全的、有噪聲的、模糊的、隨機(jī)的數(shù)據(jù)中提取人們感興趣的數(shù)據(jù)模式、數(shù)據(jù)的普遍關(guān)系及其隱含在其中的、人們事先不知道的、但又是潛在有用的信息和知識(shí),提取的知識(shí)表示為概念、規(guī)則、規(guī)律、模式等形式,其目的是幫助決策者尋找數(shù)據(jù)間潛在的關(guān)聯(lián),發(fā)現(xiàn)被忽略的要素,而這些信息對(duì)預(yù)測(cè)趨勢(shì)和決策行為將起到一定的支持作用。數(shù)據(jù)庫(kù)中的數(shù)據(jù)挖掘是一個(gè)多步驟的處理過(guò)程,這些步驟有:(1)數(shù)據(jù)定義階段,主要了解相關(guān)領(lǐng)域的有關(guān)情況,熟悉背景知識(shí),弄清楚用戶決策分析對(duì)信息的要求。(2)數(shù)據(jù)提取階段,根據(jù)要求從數(shù)據(jù)庫(kù)中提取相關(guān)的數(shù)據(jù)。(3)數(shù)據(jù)預(yù)處理階段,主要對(duì)前一階段產(chǎn)生的數(shù)據(jù)進(jìn)行再加工,檢查數(shù)據(jù)的完整性及數(shù)據(jù)

15、的一致性,對(duì)其中的噪音數(shù)據(jù)進(jìn)行處理,對(duì)缺損的數(shù)據(jù)進(jìn)行填補(bǔ)。(4)數(shù)據(jù)挖掘階段,主要是運(yùn)用選定的知識(shí)發(fā)現(xiàn)算法,從數(shù)據(jù)中提取出用戶所需要的知識(shí),這些知識(shí)可以用一種特定的方式表示或使用一些常用的表示方式。(5)知識(shí)評(píng)估階段,將發(fā)現(xiàn)的知識(shí)以用戶能了解的方式呈現(xiàn),根據(jù)需要對(duì)知識(shí)發(fā)現(xiàn)過(guò)程中的某些處理階段進(jìn)行優(yōu)化,知道滿足要求。2.4 OLAP與數(shù)據(jù)挖掘的關(guān)系(1)OLAP與數(shù)據(jù)挖掘都屬于分析型工具,兩者的區(qū)別在于:數(shù)據(jù)挖掘的分析過(guò)程是自動(dòng)的,用戶不必提出確切的問(wèn)題,只需用挖掘工具去挖掘隱藏在海量數(shù)據(jù)中的模式并預(yù)測(cè)未來(lái)的趨勢(shì),這種方式有利于發(fā)現(xiàn)未知的事實(shí),但缺乏引導(dǎo)的數(shù)據(jù)挖掘,往往所發(fā)現(xiàn)的許多模式實(shí)用性很差

16、。OLAP是一種自上而下、不斷深入的驗(yàn)證型分析工具,它常常以用戶的假設(shè)為基礎(chǔ)對(duì)數(shù)據(jù)查詢與分析,進(jìn)而提取出相關(guān)的信息。所以O(shè)LAP在數(shù)據(jù)分析方面存在著一定的局限性,即數(shù)據(jù)倉(cāng)庫(kù)的結(jié)構(gòu)設(shè)計(jì)的模式不同決定了OLAP對(duì)數(shù)據(jù)的分析效果與分析層次;同時(shí)由于OLAP是用戶驅(qū)動(dòng)的,用戶對(duì)所分析問(wèn)題認(rèn)識(shí)和理解程度在一定程度上會(huì)影響到最終的分析結(jié)果。從對(duì)數(shù)據(jù)分析的角度看。OLAP位于較淺的層次;由于數(shù)據(jù)挖掘可以發(fā)現(xiàn)OLAP所不能發(fā)現(xiàn)的更為復(fù)雜而細(xì)致的信息,因而處于相對(duì)較高的層次。(2)OLAP與數(shù)據(jù)挖掘的相互作用體現(xiàn)在以下幾個(gè)方面:OLAP與數(shù)據(jù)挖掘同作為數(shù)據(jù)分析工具,二者相比互有優(yōu)劣。數(shù)據(jù)挖掘結(jié)果的無(wú)法預(yù)測(cè)性及挖

17、掘結(jié)果是否有效等不足,決定了數(shù)據(jù)挖掘需要另外一個(gè)分析工具作輔助,對(duì)其結(jié)果進(jìn)行驗(yàn)證。OLAP是針對(duì)多維數(shù)據(jù)庫(kù)而開發(fā)的分析工具,可以對(duì)多維數(shù)據(jù)進(jìn)行較為全面的映射。所以在數(shù)據(jù)倉(cāng)庫(kù)的基礎(chǔ)上,OLAP與數(shù)據(jù)挖掘有了結(jié)合的可能,即數(shù)據(jù)挖掘的結(jié)果可以通過(guò)OLAP進(jìn)行驗(yàn)證,數(shù)據(jù)挖掘在有驗(yàn)證的前提下,其挖掘結(jié)果將呈現(xiàn)螺旋式上升的過(guò)程,逐步從模糊、混沌走向清晰、客觀,進(jìn)而表現(xiàn)為有價(jià)值的知識(shí)。成功的數(shù)據(jù)挖掘需要對(duì)數(shù)據(jù)進(jìn)行探索性的分析。挖掘所需的數(shù)據(jù)范圍也許只是數(shù)據(jù)倉(cāng)庫(kù)的一部分,在此意義上,OLAP對(duì)多維數(shù)據(jù)的鉆取、旋轉(zhuǎn)等操作同樣可以應(yīng)用于數(shù)據(jù)挖掘的過(guò)程中,作為基于數(shù)據(jù)倉(cāng)庫(kù)挖掘的引導(dǎo)步驟。3 系統(tǒng)解決方案3.1 在W

18、EB環(huán)境下OLAP技術(shù)的研究長(zhǎng)久以來(lái),對(duì)數(shù)據(jù)庫(kù)的操作都有兩種不同的應(yīng)用方式。一種是日常的對(duì)數(shù)據(jù)的操作型應(yīng)用,另一種是對(duì)數(shù)據(jù)的查詢型應(yīng)用。這兩種應(yīng)用有著很大的區(qū)別,如表。操作型應(yīng)用查詢型應(yīng)用涉及的表或字段不多涉及大量的表和字段以增刪操作為主,查詢量少不修改數(shù)據(jù),但進(jìn)行大量的查詢以業(yè)務(wù)人員使用為主,主要是細(xì)節(jié)信息面向管理人員或決策人員,關(guān)注匯總信息和導(dǎo)出信息使用當(dāng)前數(shù)據(jù)可能用到大量的歷史信息表兩種應(yīng)用的區(qū)別在數(shù)據(jù)庫(kù)發(fā)展的早期,因?yàn)閿?shù)據(jù)量不大,查詢型應(yīng)用和操作型應(yīng)用的區(qū)別還不太明顯。但隨著數(shù)據(jù)庫(kù)規(guī)模的逐漸增大,人們希望利用已經(jīng)有的歷史數(shù)據(jù)來(lái)使自己在激烈的競(jìng)爭(zhēng)中取勝,分析人員經(jīng)常是希望從多個(gè)不同的角度

19、來(lái)觀察一個(gè)或多個(gè)指標(biāo)的值,并且希望從中找到這些指標(biāo)之間的關(guān)系,這些要求導(dǎo)致查詢復(fù)雜度越來(lái)越高,特別是這些查詢請(qǐng)求是分析人員在分析過(guò)程中根據(jù)顯示的數(shù)據(jù)而實(shí)時(shí)產(chǎn)生的。這樣的要求是業(yè)務(wù)系統(tǒng)無(wú)法勝任的。而OLAP技術(shù)就能夠解決這樣的查詢要求。OLAP操作最主要的一點(diǎn)是要給分析人員提供一個(gè)多維數(shù)據(jù)超立方體,分析人員不需要了解實(shí)際的數(shù)據(jù)庫(kù)結(jié)構(gòu),他所看見的是與其習(xí)慣的企業(yè)邏輯結(jié)構(gòu)相似的多維結(jié)構(gòu)。根據(jù)他所關(guān)注的目的的不同,在多維結(jié)構(gòu)內(nèi)今昔感多維操作,如鉆取、上挖、漂移、切片、切塊等。數(shù)據(jù)庫(kù)管理人員的責(zé)任就是根據(jù)企業(yè)的組織結(jié)構(gòu)和實(shí)際使用人員的要求,在已經(jīng)有的數(shù)據(jù)倉(cāng)庫(kù)上構(gòu)造多維數(shù)據(jù)庫(kù)及多維視圖。傳統(tǒng)的基于C/S結(jié)

20、構(gòu)的OLAP體系機(jī)構(gòu),其基本流程是由熟悉數(shù)據(jù)庫(kù)結(jié)構(gòu)的系統(tǒng)管理員對(duì)數(shù)據(jù)庫(kù)結(jié)構(gòu)進(jìn)行分析,根據(jù)其業(yè)務(wù)知識(shí)將數(shù)據(jù)庫(kù)中的表及字段映射為多維結(jié)構(gòu),構(gòu)造由多維結(jié)構(gòu)構(gòu)成的超立方體,然后根據(jù)用戶分析人員在使用過(guò)程中的要求對(duì)多維視圖進(jìn)行修改,從而再次構(gòu)造超立方體,如此循環(huán)往復(fù)。這種結(jié)構(gòu)在使用過(guò)程中暴露出了不少的問(wèn)題:(1)在每一個(gè)客戶端都要安裝和配置多維查詢軟件。維護(hù)工作量很大;(2)報(bào)告內(nèi)容要根據(jù)使用者在使用過(guò)程中碰到的要求進(jìn)行修改,因此要維護(hù)客戶端的報(bào)告內(nèi)容一致也是很復(fù)雜的;(3)因?yàn)閳?bào)告存放在客戶端。因此可能會(huì)被修改,從而安全性也很不好。出現(xiàn)這些問(wèn)題的根本原因是沒(méi)有注意到OLAP的特殊性:OLAP作為一個(gè)多

21、維查詢工具,不同于傳統(tǒng)的業(yè)務(wù)系統(tǒng),主要是給管理和決策人員使用的,需求是多變的,所以IT人員不可能依次設(shè)計(jì)出符合分析人員要求的超立方體,需要在使用過(guò)程中根據(jù)要求對(duì)超立方體不斷進(jìn)行調(diào)整和修改,但是這種多變性是C/S結(jié)構(gòu)所不能適應(yīng)的。而且有基于Internet/Intranet的3層結(jié)構(gòu)才具有足夠的靈活性。WEB服務(wù)器負(fù)責(zé)完成瀏覽器與OLAP服務(wù)器,數(shù)據(jù)倉(cāng)庫(kù)系統(tǒng)之間的通信連接。如圖所示。一般來(lái)說(shuō),WEB服務(wù)器通過(guò)使用CGI腳本、WEB服務(wù)器API、應(yīng)用API和數(shù)據(jù)庫(kù)API等,管理瀏覽器的通信。在瀏覽器端,通過(guò)HTML、DMX、ActiveX控件、C#.NET來(lái)完成與用戶的交互截面和控件。在實(shí)現(xiàn)基于W

22、EB的OLAP應(yīng)用時(shí),往往采用自頂向下的設(shè)計(jì)。首先要確定用戶如何在瀏覽器中的到報(bào)表信息,然后再給出一系列的過(guò)程完成基于瀏覽器的OLAP操作。這些過(guò)程應(yīng)當(dāng)包括發(fā)布信息,提供HTTP對(duì)數(shù)據(jù)庫(kù)或應(yīng)用服務(wù)器的動(dòng)態(tài)數(shù)據(jù)請(qǐng)求,設(shè)計(jì)支持分析功能的界面。在客戶端基于WEB瀏覽器的OLAP報(bào)表被分為幾個(gè)層次,其中包括沒(méi)有分析功能的靜態(tài)報(bào)表和能夠進(jìn)行分析的OLAP應(yīng)用界面,如維的旋轉(zhuǎn),數(shù)據(jù)的鉆取等。另外,特別要提到的是,標(biāo)準(zhǔn)的HTML界面缺乏操作的靈活與方便。C#.NET和ActiveX控件的使用會(huì)大大提高用戶截面的友好程度,用戶通過(guò)簡(jiǎn)單的操作就可以完成“旋轉(zhuǎn)”、“鉆取”的操作。數(shù)據(jù)倉(cāng)庫(kù)系統(tǒng)OLAP服務(wù)器WEB服

23、務(wù)器客戶瀏覽器 CGI API C#.NET、ActiveX 控件圖基于WEB的OLAP結(jié)構(gòu)圖3.2 在WEB環(huán)境下OLAP技術(shù)的實(shí)現(xiàn)方案OLAP專門用于支持復(fù)雜的決策分析,支持信息管理和業(yè)務(wù)管理人員決策活動(dòng)的一種決策分析工具。它可以根據(jù)分析人員的要求,迅速、靈活地對(duì)大量數(shù)據(jù)進(jìn)行復(fù)雜的查詢處理,并且以直觀的、容易理解的形式將查詢結(jié)果提供給各種決策人員,使他們迅速、準(zhǔn)確地掌握企業(yè)的運(yùn)營(yíng)情況,了解市場(chǎng)需求。而要進(jìn)行OLAP多維數(shù)據(jù)分析就需要根據(jù)分析需求,同時(shí)結(jié)合數(shù)據(jù)倉(cāng)庫(kù)中的數(shù)據(jù)結(jié)構(gòu)和特點(diǎn)建立OLAP多維模型。以超市銷售系統(tǒng)為例子,并對(duì)該例子的OLAP銷售多維模型進(jìn)行了設(shè)計(jì),如圖.1。時(shí)間編號(hào)年季度

24、月日食品編號(hào)時(shí)間編號(hào)客戶編號(hào)食品名稱銷售數(shù)量銷售額平均價(jià)格食品編號(hào)食品類別編號(hào)食品名稱客戶編號(hào)區(qū)域編號(hào)客戶名稱食品類別編號(hào)食品類別名稱區(qū)域編號(hào)省市 銷售事實(shí)表 食品維表 食品類別維表 客戶維表 區(qū)域維表 時(shí)間維表 圖 超市銷售分析的OLAP模型從圖中可以看出在超市銷售分析的OLAP模型中有一個(gè)銷售事實(shí)表,在該事實(shí)表中每個(gè)元組只存儲(chǔ)了一些指向各個(gè)維表的指針(即外鍵,時(shí)間編號(hào)、食品編號(hào)、客戶編號(hào)等)和一些相應(yīng)的測(cè)量數(shù)據(jù)(度量值),銷售數(shù)量、銷售額和平均價(jià)格,而與這些外鍵相對(duì)應(yīng)的主鍵則分別存放不同的維表中(時(shí)間維表、客戶維表、食品維表等)。對(duì)事實(shí)表的查詢就是獲取指向維表的指針,當(dāng)對(duì)事實(shí)表的查詢與對(duì)維

25、表的查詢結(jié)合起來(lái)的時(shí)候,就可以檢索大量的信息。一個(gè)完整的基于WEB的OLAP銷售分析系統(tǒng)由三方面組成。第一,提取、清洗數(shù)據(jù)組成數(shù)據(jù)倉(cāng)庫(kù);第二利用OLAP引擎建立相應(yīng)的銷售分析的OLAP立方體;第三使用前端開發(fā)工具,在WEB上訪問(wèn)OLAP立方體中包含的對(duì)象和集合。這里選用了SQL SERVER 2005 Analysis Services作為數(shù)據(jù)倉(cāng)庫(kù)支撐平臺(tái),SQL SERVER 2005的Analysis Services 是一個(gè)管理多維數(shù)據(jù)集的服務(wù)器,數(shù)據(jù)源并抽取數(shù)據(jù),實(shí)現(xiàn)高效地將客戶數(shù)據(jù)加載到客戶數(shù)據(jù)倉(cāng)庫(kù)中;服務(wù)器支持MDOLAP、ROLAP和HOLAP三種存儲(chǔ)模式,用戶自己定義使用的存儲(chǔ)

26、模式,定義各個(gè)維度并建立銷售多維數(shù)據(jù)集,從而完成整個(gè)銷售過(guò)程。4 圖書銷售分析系統(tǒng)的總體設(shè)計(jì)和實(shí)現(xiàn)4.1 系統(tǒng)的功能本系統(tǒng)的功能可以劃分為會(huì)員分析和圖書分析兩大部分(如圖4圖書小時(shí)分析系統(tǒng)功能結(jié)構(gòu)圖。圖書銷售分析系統(tǒng)會(huì)員分析圖書分析分析會(huì)員級(jí)別分析會(huì)員消費(fèi)分析會(huì)員類型分析圖書推薦銷售趨勢(shì)分析銷售關(guān)聯(lián)分析圖書銷量分析圖書定價(jià)分析圖4圖書銷售分析系統(tǒng)功能結(jié)構(gòu)圖其中會(huì)員分析是對(duì)書店注冊(cè)會(huì)員的信息進(jìn)行分析,具體功包括:(1)會(huì)員級(jí)別分析:根據(jù)會(huì)員的個(gè)人信息來(lái)預(yù)測(cè)該會(huì)員最有可能成為哪級(jí)會(huì)員。(2)會(huì)員消費(fèi)分析:根據(jù)會(huì)員的個(gè)人信息來(lái)預(yù)測(cè)該會(huì)員在書店的消費(fèi)類型。(3)會(huì)員類型分析:根據(jù)會(huì)員的個(gè)人信息和消費(fèi)記

27、錄來(lái)對(duì)會(huì)員進(jìn)行自動(dòng)分類。(4)圖書推薦:根據(jù)會(huì)員的以往購(gòu)書記錄來(lái)向推薦其他可能感興趣的圖書。其中圖書分析則是對(duì)書店圖書的信息進(jìn)行分析,具體功能包括:(1)銷售趨勢(shì)分析:根據(jù)圖書的歷史銷售信息來(lái)預(yù)測(cè)未來(lái)的銷售額。(2)圖書銷量分:根據(jù)圖書的基本信息來(lái)預(yù)測(cè)其銷量。(3)銷售關(guān)聯(lián)分析:分析哪些圖書經(jīng)常會(huì)被一同銷售。(4)圖書定價(jià)分析:根據(jù)圖書的基本信息來(lái)估算定價(jià)。4.2 數(shù)據(jù)源設(shè)計(jì)4.2.1 數(shù)據(jù)庫(kù)設(shè)計(jì) 數(shù)據(jù)庫(kù)邏輯設(shè)計(jì)根據(jù)系統(tǒng)的需求分析定義系統(tǒng)中的實(shí)體,并采用E-R圖來(lái)(如圖圖書銷售E-R圖)表現(xiàn)實(shí)體之間的邏輯關(guān)系。在關(guān)系圖中主要有會(huì)員和圖書兩個(gè)實(shí)體,會(huì)員買書的一些情況和推薦書的情況。

28、圖書中包含了圖書的銷售量等相關(guān)信息。會(huì)員會(huì)員號(hào)姓名入會(huì)時(shí)間級(jí)別生日地區(qū)地址性別電話郵箱積分圖書國(guó)際標(biāo)準(zhǔn)圖書號(hào)圖書號(hào)光盤書名存儲(chǔ)量出版社出版日期價(jià)格上架時(shí)間頁(yè)數(shù)條碼號(hào)買書推薦書銷售數(shù)據(jù)銷售量會(huì)員號(hào)銷售時(shí)間推薦數(shù)據(jù)書號(hào)類型折扣情況級(jí)別折扣率NNNN級(jí)別號(hào) 圖圖書銷售E-R圖 數(shù)據(jù)庫(kù)結(jié)構(gòu)設(shè)計(jì)在邏輯設(shè)計(jì)的基礎(chǔ)上,進(jìn)行了結(jié)構(gòu)設(shè)計(jì),數(shù)據(jù)庫(kù)的設(shè)計(jì)主要有五個(gè)數(shù)據(jù)表和三個(gè)視圖,下面分別對(duì)五個(gè)數(shù)據(jù)表和三個(gè)視圖進(jìn)行說(shuō)明。(1)會(huì)員表:主要是記錄會(huì)員的姓名、性別、地址、電話號(hào)碼、會(huì)員號(hào)、會(huì)員的級(jí)別、會(huì)員的入會(huì)時(shí)間。這些對(duì)視圖進(jìn)行查詢有很大用處,同時(shí)對(duì)分析進(jìn)行預(yù)測(cè)提供了可靠的信息資源。(2)圖書表:主要是

29、記錄圖書的名字、出版社、出版時(shí)間、國(guó)際標(biāo)準(zhǔn)圖書號(hào)、內(nèi)帶光盤、存儲(chǔ)量、上架日期、條碼、價(jià)格、書的頁(yè)數(shù)(3)買書的記錄表:主要記錄會(huì)員買書的情況,里面記錄會(huì)員的會(huì)員號(hào)、買書的時(shí)間、買書消費(fèi)額。(4)折扣表:主要是記錄會(huì)員的級(jí)別所打的折扣。表內(nèi)包括級(jí)別和折扣率。(5)圖書銷售情況表:主要記錄圖書銷售的情況。主要記錄圖書號(hào)、圖書的銷售額、圖書銷售的數(shù)量、圖書銷售的折扣。(6)圖書視圖:主要是進(jìn)行圖書與會(huì)員的綜合查詢,它包含了圖書的基本信息和銷售情況匯總。(7)圖書銷售視圖:主要是對(duì)圖書的銷售情況的綜合查詢,它包含了圖書的銷售細(xì)明信息。(8)圖書每周銷售視圖:主要是對(duì)圖書進(jìn)行每周的銷售情況的綜合查詢,它

30、包含了圖書每周銷售銷量的信息。以下是五個(gè)數(shù)據(jù)表:表會(huì)員表、表4.2.2圖書表、表4.2.3買書的記錄表、表4.2.4折扣表、表4.2.5圖書銷售表。列名數(shù)據(jù)類型允許空IDIntNameNvarchar(20)LevelsSmallintYRegTimeSmalldatetimeYGenderBitYBirthdaySmalldatetimeYDegreeNvarchar(20)YAreaNvarchar(20)YAddressNvarchar(256)YTelephoneNvarchar(50)YEmailNvarchar(50)YScoreIntY表會(huì)員表列名數(shù)據(jù)類型允許空IDIntISBN

31、Nchar(10)NameNvarchar(256)CategoryIDIntYAuthorNvarchar(100)YPressNvarchar(50)YPublishDateSmalldatetimeYPriceSmallmoneyPagesSmallintYBarcodeNchar(13)CDBitYStorageIntYShelfDateSmalldatetimeY表圖書表列名數(shù)據(jù)類型允許空IDIntCustomerIDIntYSumSmallmoneyYTimesmalldatetime表買書的記錄表列名數(shù)據(jù)類型允許空LevelsIntDiscountFloat表折扣表列名數(shù)據(jù)類型允

32、許空IDIntSellIDIntBookIDIntNumberIntDiscountFloatYSumSmallmoneyY表圖書銷售表以下是三個(gè)視圖表:表圖書視圖、表4.2.7圖書銷售視圖、表4.2.8圖書每周銷售視圖。列別名表輸出排序類型排序順序分組依據(jù)篩選器IDBookY 升序1Group ByNameBookYGroup ByCategoryBookCategoryYGroup ByPressBookYGroup ByPriceBookYGroup ByRagesBookYGroup ByCDBookYGroup ByNumberSellNumberSellItemYSumSumSel

33、lSumSellItemYSumShelfDateBookYGroup By表圖書視圖表圖書視圖的綜合查詢的內(nèi)部代碼為: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 FROM dbo.Book INNER JOINdbo.BookCateg

34、ory ON dbo.Book.CategoryID = dbo.BookCategory.ID INNER JOINgory, dbo.Book.Press, dbo.Book.Price, dbo.Book.Pages, dbo.Book.CD,列別名表輸出排序類型排序順序分組依據(jù)篩選器IDSellItemYIDSellIDSellYCustomerIDSellYTimeSellYBookIDSellItemYISBNBookYNameBookYPressBookYPriceBookYNumberSellItemYDiscountSellItemYSumSellItemY表圖書銷售視圖表圖

35、書銷售視圖的內(nèi)部代碼和關(guān)系圖(圖2.2.2圖書銷售關(guān)系圖):, dbo.Sell.Time, dbo.SellItem.BookID, dbo.Book.ISBN, dbo.Book.Name, dbo.Book.Press, FROM dbo.Sell INNER JOIN dbo.SellItem ON dbo.SellItem.SellID = dbo.Sell.ID INNER JOIN圖圖書銷售關(guān)系圖列別名表輸出排序類型排序順序分組依據(jù)DATEPART(week,dbo.sell.Time)WeekY升序1Group ByIDBookY升序2Group BySumSellSumSel

36、lItemYSum表圖書每周銷售視圖表圖書每周銷售視圖的內(nèi)部代碼為:SELECT TOP (100) PERCENT DATEPART(week, dbo.Sell.Time) AS Week, dbo.Book.ID, SUM(dbo.SellItem.Sum) AS SellSumFROM dbo.Sell INNER JOINm.SellID INNER JOIN 設(shè)計(jì)好了以上的表和視圖是為了對(duì)其中的數(shù)據(jù)進(jìn)行預(yù)測(cè)和分析,這些創(chuàng)建給以后的實(shí)現(xiàn)部分做了很好的鋪墊。4.2.2 圖書銷售 Analysis Services 設(shè)計(jì) 數(shù)據(jù)源設(shè)計(jì) 在數(shù)據(jù)源設(shè)計(jì)運(yùn)用了數(shù)據(jù)挖掘技術(shù),首先用“

37、數(shù)據(jù)源向?qū)А睂?shù)據(jù)中表會(huì)員表、表2.2.6圖書視圖、表2.2.7圖書銷售視圖、表2.2.8圖書每周銷售視圖加入項(xiàng)目的數(shù)據(jù)源試圖中。其中會(huì)員表中存儲(chǔ)了書店注冊(cè)會(huì)員的基本個(gè)人信息;同時(shí)為了支持?jǐn)?shù)據(jù)的分析,設(shè)計(jì)中還要向會(huì)員表中增加兩個(gè)計(jì)算列。兩個(gè)計(jì)算列分別為Age和DayConsume。它們的表達(dá)式分別為“YEAR(GETDATE()-YEAR(dbo.Customer.Birthday)”和“CAST(Score AS Decimal)/DATEDIFF(DAY,RegTime,GETDATE()” 是用來(lái)計(jì)算會(huì)員的年齡和會(huì)員的積分除以其注冊(cè)天數(shù)以得到該會(huì)員的日平均消費(fèi)金額。合理地使用計(jì)算列,能夠

38、大大方便挖掘結(jié)構(gòu)和挖掘模型的創(chuàng)建,同時(shí)避免修改源數(shù)據(jù)庫(kù)中的基礎(chǔ)表格和視圖。在Analysis Services項(xiàng)目中也需要向圖書表中加入兩個(gè)計(jì)算器分別DaySellNumber和DaySellSum,計(jì)算表達(dá)式為:“SellNumber/DATEDIFF(DAY,ShelfDate,GETDATE()”、“SellSum/DATEDIFF(DAY,ShelfDate,GETDATE()”。它們是用來(lái)計(jì)算圖書日均銷量。為了對(duì)會(huì)員購(gòu)書的有關(guān)信息進(jìn)行挖掘,在數(shù)據(jù)源視圖中還應(yīng)將會(huì)員表和圖書銷售視圖關(guān)聯(lián)起來(lái)。如圖數(shù)據(jù)源視圖圖書銷售圖。如圖數(shù)據(jù)源視圖圖書銷售圖數(shù)據(jù)源的設(shè)計(jì)對(duì)以后數(shù)據(jù)挖掘起到?jīng)Q定的作用。在本

39、設(shè)計(jì)中使用了多個(gè)數(shù)據(jù)挖掘的方法。這些方法大大方便了界面的分析和預(yù)測(cè)。管理者通過(guò)預(yù)測(cè)的信息知道內(nèi)部圖書銷售的各個(gè)情況和了解會(huì)員的相關(guān)活動(dòng)信息。 本系統(tǒng)設(shè)計(jì)的挖掘模型(1)貝葉斯挖掘模型:是用來(lái)對(duì)會(huì)員級(jí)別的分析。主要運(yùn)用了“Microsoft Nave Bayes”挖掘技術(shù)對(duì)數(shù)據(jù)源視圖中的會(huì)員表作為事例對(duì)Levels和DayConsume列作為可預(yù)測(cè)列進(jìn)行預(yù)測(cè)。(2)決策樹挖掘模型:來(lái)分析會(huì)員的消費(fèi)水平最有可能處在哪個(gè)區(qū)間,主要運(yùn)用“Microsoft 決策樹”挖掘技術(shù)對(duì)數(shù)據(jù)源視圖中的會(huì)員表作為事例對(duì)Levels進(jìn)行忽略,而對(duì)DayConsume進(jìn)行可預(yù)測(cè)。(3)聚類分析挖掘模型:是

40、用來(lái)分析會(huì)員的年齡和學(xué)歷進(jìn)行分析。是忽略Area、Levels、Gender,而Age和Degree作為輸入列對(duì)DayConsume進(jìn)行預(yù)測(cè)。(4)關(guān)聯(lián)規(guī)則挖掘模型:用于分析會(huì)員與圖書之間的關(guān)聯(lián),進(jìn)而向會(huì)員推薦其他可能感興趣圖書。在設(shè)計(jì)中用會(huì)員表作為事例表嵌套圖書銷售表,Gender、Age、Degree、Area作為輸入列,BookSell進(jìn)行預(yù)測(cè)。(5)時(shí)序挖掘模型:是用于圖書的分析,用每周銷售視圖來(lái)做事例,ID和 Week作為輸入鍵對(duì)SellSum進(jìn)行預(yù)測(cè)。(6)神經(jīng)網(wǎng)絡(luò)挖掘模型:是預(yù)測(cè)新書的銷量,圖書表作為事例,Category、Press、Price、Pages和CD列進(jìn)行輸入,對(duì)D

41、aySellNumber進(jìn)行預(yù)測(cè)。(7)順序分析挖掘模型:用于實(shí)現(xiàn)圖書銷售的關(guān)聯(lián)分析,會(huì)員表作為事例,圖書銷售表銷售表作為嵌套表,對(duì)Name進(jìn)行預(yù)測(cè)。(8)線性回歸挖掘模型:是對(duì)圖書價(jià)格的預(yù)測(cè),圖書表作為事例,Pages為輸入列,對(duì)Price進(jìn)行預(yù)測(cè)。 對(duì)于會(huì)員信息分析的Windows窗體設(shè)計(jì)視圖如圖所示。在對(duì)應(yīng)的窗體類CustomerAnalysisForm.cs中定義了如下成員字段: protected SqlConnection _connDatabase; protected AdomdConnection _connAnalysis;protected AdomdCommand _c

42、md;其中前兩個(gè)數(shù)據(jù)連接對(duì)象分別指向SQL Server數(shù)據(jù)庫(kù)BookSell和Analysis Server數(shù)據(jù)庫(kù),后一個(gè)數(shù)據(jù)命令對(duì)象則用于在Analysis Services數(shù)據(jù)庫(kù)上執(zhí)行DMX查詢對(duì)象的創(chuàng)建都在窗體的構(gòu)造函數(shù)中完成:public CustomerAnalysisForm(SqlConnection connectionDatabase, AdomdConnection connectionAnalysis) _connDatabase = connectionDatabase; _connAnalysis = connectionAnalysis;nd(); Initial

43、izeComponent(); 窗體在初始化和關(guān)閉將打開和關(guān)閉相應(yīng)的數(shù)據(jù)連接;窗體的初始化過(guò)程同時(shí)還使用SQL數(shù)據(jù)命令將所有會(huì)員的ID號(hào)載入到“會(huì)員編號(hào)”組合框(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.ExecuteReade

44、r(); while (reader1.Read() cmbCustomerID.Items.Add(reader10); reader1.Close(); dgvLevels.AutoGenerateColumns = false; 圖會(huì)員分析窗體CustomerAnalysisForm選擇會(huì)員編號(hào)并按下“載入會(huì)員信息”按鈕后,程序?qū)⒃俅瓮ㄟ^(guò)SQL命令來(lái)讀取會(huì)員的個(gè)人信息,并顯示在窗體上部的各個(gè)控件中: private void btnLoadInfo_Click(object sender, EventArgs e) if (cmbCustomerID.Text = ) MessageBo

45、x.Show(會(huì)員編號(hào)不能為空, 錯(cuò)誤, 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 (

46、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

47、; cmbLevel.Text = reader15.ToString(); nudScore.Value = (int)reader16; reader1.Close(); 窗體下部是一個(gè)TabControl容器控件,它的4個(gè)TabPage頁(yè)分別用于實(shí)現(xiàn)會(huì)員的級(jí)別分析、消費(fèi)分析、類型分析和圖書推薦功能。當(dāng)用戶按下“會(huì)員級(jí)別”標(biāo)簽頁(yè)中的“預(yù)測(cè)”按鈕后,程序首先根據(jù)相關(guān)輸入來(lái)構(gòu)造DXM預(yù)測(cè)查詢字符串,而后調(diào)用貝葉斯模型CustomerLevels來(lái)預(yù)測(cè)會(huì)員級(jí)別:private void btnPredictLevels_Click(object sender, EventArgs e) if (

48、cmbArea.Text = | cmbDegree.Text = ) MessageBox.Show(地區(qū)或?qū)W歷不能為空, 錯(cuò)誤, MessageBoxButtons.OK, MessageBoxIcon.Error); return; int iAge = DateTime.Now.Year - dtpBirthday.Value.Year; _cmd.CommandText = string.Format(SELECT Predict(Levels), PredictHistogram(Levels) From CustomerLevels NATURAL PREDICTION JOIN

49、 (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(string.Format(該會(huì)員最有可能成為0級(jí)會(huì)員, reader10), 預(yù)測(cè)結(jié)果); AdomdDataReader reader2 = (AdomdDataReader)reader11; DataTable table1 = new DataTable(); table1.Load(reader2); dgvLevels.DataSource = table1; reader1.Close(); 注意在上面的DXM預(yù)測(cè)查詢中

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論