基于OLAP技術的圖書銷售智能分析系統_第1頁
基于OLAP技術的圖書銷售智能分析系統_第2頁
基于OLAP技術的圖書銷售智能分析系統_第3頁
基于OLAP技術的圖書銷售智能分析系統_第4頁
基于OLAP技術的圖書銷售智能分析系統_第5頁
已閱讀5頁,還剩31頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、.基于OLAP技術的圖書銷售智能分析系統:.;目 次 TOC o - h z u HYPERLINK l _Toc 緒論 PAGEREF _Toc h HYPERLINK l _Toc .引言 PAGEREF _Toc h HYPERLINK l _Toc .WEB環境下的OLAP技術的背景和歷史現狀 PAGEREF _Toc h HYPERLINK l _Toc 系統設計的技術創新 PAGEREF _Toc h HYPERLINK l _Toc .數據倉庫技術 PAGEREF _Toc h HYPERLINK l _Toc .OLAP 技術 PAGEREF _Toc h HYPERLINK

2、l _Toc .數據發掘的技術 PAGEREF _Toc h HYPERLINK l _Toc .OLAP與數據發掘的關系 PAGEREF _Toc h HYPERLINK l _Toc 系統處理方案 PAGEREF _Toc h HYPERLINK l _Toc .在WEB環境下OLAP 技術的研討 PAGEREF _Toc h HYPERLINK l _Toc .在WEB環境下OLAP 技術的實現方案 PAGEREF _Toc h HYPERLINK l _Toc 圖書銷售分析系統的總體設計和實現 PAGEREF _Toc h HYPERLINK l _Toc .系統的功能 PAGEREF

3、 _Toc h HYPERLINK l _Toc .數據源設計 PAGEREF _Toc h HYPERLINK l _Toc .數據庫設計 PAGEREF _Toc h HYPERLINK l _Toc .數據庫邏輯設計 PAGEREF _Toc h HYPERLINK l _Toc .數據庫構造設計 PAGEREF _Toc h HYPERLINK l _Toc .圖書銷售 Analysis Services 設計 PAGEREF _Toc h HYPERLINK l _Toc .數據源設計 PAGEREF _Toc h HYPERLINK l _Toc .本系統設計的發掘模型 PAGER

4、EF _Toc h HYPERLINK l _Toc .系統界面設計 PAGEREF _Toc h HYPERLINK l _Toc .會員信息分析界面設計 PAGEREF _Toc h HYPERLINK l _Toc .系統圖書分析窗體設計 PAGEREF _Toc h HYPERLINK l _Toc 總結 PAGEREF _Toc h HYPERLINK l _Toc 參考文獻 PAGEREF _Toc h 緒論引言隨著在數據庫中存儲的數據越來越多,人們曾經不滿足于僅僅用計算機來實現業務的電子化,而希望從已有的數據中提煉出信息效力于決策人員。在這種情況下。OLAP作為一種強有力的分析和

5、決策工具,被越來越多的沒、部門運用,同時在OLAP技術上也進展了許多任務。但是主要任務都是集中在如何有效對數據進展分析上。OLAP的數據倉庫是為理處理能從大量的數據中得到有用的信息而做出了很大的奉獻。對于一個企業而言,每天都要面臨著大量的決策問題,隨著企業市場競爭的加劇和信息社會需求的開展,企業從大量數據中提取所需的各類信息就顯得越來越重要了,傳統的數據庫技術是單一的數據庫資源,他適宜操作型事務處置,但對分析型處置的才干較弱。近幾年來,在信息技術領域興起并日益成熟的數據倉庫技術以其面向主題組織、存儲海量信息,以及在線分析支持組織機構管理決策等優秀功能成為和運用的熱點。數據倉庫系統的根本功能是:

6、數據獲取、數據存儲和管理、信息的訪問。其最終目的是把分散的、不利于訪問的數據轉換成集中、一致、隨時可用的信息,即為了決策目的將不同方式的數據集合成為一種特殊的格式,建立起一種新的數據存儲體系,使數據操作環境與數據分析環境相到分別。數據倉庫利用了計算機和信息技術IT的最新開展,把那些大量的,分散的企業數據進展集成,并從中把企業決策所需求的信息分別出來,借助OLAP利用存儲在數據倉庫中的數據,去進展各種分析操作,并以較為直觀易懂的方式將結果前往給用戶,能更加有效地支持企業的分析和決策,從而提高決策的質量與速度。WEB環境下的OLAP技術的背景和歷史現狀WWWWorld Wide web技術的問世,

7、給Internet帶來了新的活力,也得到全世界的認可和信任。隨著WEB的普及,人們之間的信息溝通更加的快捷和方便。WEB上的訪問數據庫也得到了日益廣泛的運用,使數據庫技術不斷地開展和更新。近年來,隨著企業信息化的飛速開展。企業擁有大量業務數據,但難以及時有效的利用數據信息用來給管理者做決策任務。數據倉庫技術的運用使這個問題迎刃而解,數據倉庫正是由數據庫演化而來是為了更好的處置和維護WEB上的龐大的訪問數據和企業中的業務數據。不僅如此,數據倉庫技術還有另一方面的用途即使如何讓運營管理者更好的運用數據信息來做決策任務,從而給企業管理者或運營者帶來經濟效益。為了實現這樣的目的還要把OLAP技術運用于

8、數據倉庫技術上面。OLAP技術作為一種強大有力的分析和決策工具,被越來越多的企業管理者和運營者運用。為了在OLAP技術上得到更有效的數據信息,并運用了體系構造即是C/S構造。在C/S體系構造中運用OLAP技術曾經暴顯露很多問題。為理處理這樣的問題而進展對WEB環境下的OLAP技術的研討和實現。在數據庫開展的早期,由于數據量不大而使數據庫技術的查詢功能和操作功能沒得到明顯的區分。但是隨著數據庫規模的擴展,人們對數據的要求也有了其他的想法,比如想獲得以往的歷史數據來做決策任務使在猛烈的社會運營中獲得勝利。管理者或運營用戶要想拿到這樣的歷史性有用途的數據信息必需經過復雜的查詢才干得到,特別是那些高層

9、人員更需求這樣有決議性的數據信息來做決策任務。在數據倉庫中運用OLAP技術正好讓這樣任務得到滿足。但是如今傳統的基于C/S構造的OLAP體系構造卻帶來很多問題。傳統的基于C/S構造的OLAP體系構造,其根本流程是由熟習數據庫構造的系統管理員對數據庫構造進展分析,根據其業務知識將數據庫中的表及字段映射為多維構造,構造由多維構造構成的超立方體,然后根據用戶分析員在運用過程中的要求對多維視圖進展修正,從而再次構造超立方體,如此循環往復。這種構造在運用過程中暴顯露了不少的問題:如首先,顧客運用一次而要進展一次安裝和配置,使維護任務量大大的添加。其次,對存放在顧客端的報告的修正也是很復雜的。再者,其平安

10、性也是很薄弱的。OLAP技術是一種對數據進展多維查詢的工具,主要是給管理者和運營者等決策性人員運用的,所以需求是多變性的。C/S構造不順應需求的多變性所帶來的要求,而有足夠靈敏性的Internet/Intranet的層構造順應了OLAP技術對需求的多變性的要求。系統設計的技術創新數據倉庫技術根據數據倉庫概念的含義,數據倉庫擁有以下四個特點:面向主題。操作型數據庫的數據組織面向事務處置義務,各個業務系統之間各自分別,而數據倉庫中的數據是按照一定的主題域進展組織。主題是一個籠統的概念,是指用戶運用數據倉庫進展決策時所關懷的重點方面,一個主題通常與多個操作型信息系統相關。集成的。面向事務處置的操作型

11、數據庫通常與某些特定的運用相關,數據庫之間相互獨立,并且往往是異構的。而數據倉庫中的數據是在對原有分散的數據庫數據抽取、清理的根底上經過系統加工、匯總和整理得到的,必需消除數據源中的不一致性,以保證數據倉庫內的信息是關于整個企業的一致的全局信息。 相對穩定的。操作型數據庫中的數據通常實時更新,數據根據需求及時發生變化。數據倉庫的數據主要供企業決策分析之用,所涉及的數據操作主要是數據查詢,一旦某個數據進入數據倉庫以后,普通情況下將被長期保管,也就是數據倉庫中普通有大量的查詢操作,但修正和刪除操作很少,通常只需求定期的加載、刷新。反映歷史變化。操作型數據庫主要關懷當前某一個時間段內的數據,而數據倉

12、庫中的數據通常包含歷史信息,系統記錄了企業從過去某一時點(如開場運用數據倉庫的時點)到目前的各個階段的信息,經過這些信息,可以對企業的開展歷程和未來趨勢做出定量分析和預測。企業數據倉庫的建立,是以現有企業業務系統和大量業務數據的積累為根底。數據倉庫不是靜態的概念,只需把信息及時交給需求這些信息的運用者,供他們做出改善其業務運營的決策,信息才干發揚作用,信息才有意義。而把信息加以整理歸納和重組,并及時提供應相應的管理決策人員,是數據倉庫的根本義務。因此,從產業界的角度看,數據倉庫建立是一個工程,是一個過程。如圖.所示。圖.數據倉庫體系構造圖數據源:是數據倉庫系統的根底,是整個系統的數據源泉。通常

13、包括企業內部信息和外部信息。內部信息包括存放于RDBMS中的各種業務處置數據和各類文檔數據。外部信息包括各類法律法規、市場信息和競爭對手的信息等等;數據的存儲與管理:是整個數據倉庫系統的中心。數據倉庫的真正關鍵是數據的存儲和管理。數據倉庫的組織管理方式決議了它有別于傳統數據庫,同時也決議了其對外部數據的表現方式。要決議采用什么產品和技術來建立數據倉庫的中心,那么需求從數據倉庫的技術特點著手分析。針對現有各業務系統的數據,進展抽取、清理,并有效集成,按照主題進展組織。數據倉庫按照數據的覆蓋范圍可以分為企業級數據倉庫和部門級數據倉庫通常稱為數據集市。 OLAP效力器:對分析需求的數據進展有效集成,

14、按多維模型予以組織,以便進展多角度、多層次的分析,并發現趨勢。其詳細實現可以分為:ROLAP、MOLAP和HOLAP。ROLAP根本數據和聚合數據均存放在RDBMS之中;MOLAP根本數據和聚合數據均存放于多維數據庫中;HOLAP根本數據存放于RDBMS之中,聚合數據存放于多維數據庫中。前端工具:主要包括各種報表工具、查詢工具、數據分析工具、數據發掘工具以及各種基于數據倉庫或數據集市的運用開發工具。其中數據分析工具主要針對OLAP效力器,報表工具、數據發掘工具主要針對數據倉庫。 OLAP 技術聯機分析處置OLAP主要有兩個特點,一是在線性On-Line,表現為對用戶懇求的快速呼應和交互式操作,

15、它的實現是由Client/Server這種體系構造來完成的,二是多維分析Multi-dimensional,這也是OLAP技術的中心所在。OLAP的在線性表達在于用戶的交互呼應和快速呼應,多維性那么表達在它建立在多維視圖的根底上,對數據進展由淺到深的分析。OLAP的用戶是企業中的專業分析人員及管理決策人員,他們在分析業務運營的數據時,從不同的角度來審視業務的衡量目的是一種很自然的思索方式。例如分析銷售數據,能夠會綜合時間周期,產品類別,分銷渠道,區域分布,客戶等多種要素來思索。這些分析角度雖然可以經過報表來反映,但是每一個分析的角度可以生成一張報表,各個分析角度的不同組合又可以生成不同的報表,

16、使得IT人員的任務量相當大,而且往往難以跟上管理決策人員思索的步伐。所以OLAP的多維性較好地滿足了企業管理人員的需求。管理人員可對OLAP進展操作,即對多維數據集中的數據進展切片,切塊,旋轉,上卷和下鉆操作,以對數據進展分析,讓用戶多角度、多側面地去察看數據倉庫中的數據,從而深化了解數據倉庫中數據所蘊含的信息,并找出隱含在數據中的商業方式。根據綜合性數據的組織方式的不同,目前常見的OLAP主要有基于多維數據庫的MOLAP及基于關系數據庫的ROLAP兩種。MOLAP是以多維的方式組織和存儲數據,ROLAP那么利用現有的關系數據庫技術來模擬多維數據。在數據倉庫運用中,OLAP工具普通是數據倉庫運

17、用的前端工具,同時OLAP工具還可以配合數據發掘進展運用,添加決策分析預測功能。數據倉庫的根本義務是運用獲得的數據來進展大量的分析,以生成支持用戶制定戰略決策的信息。為了讓數據倉庫能作有意義的分析,數據必需以某種方法被映射,以便用戶能利用一些數據來分析隨著時間變化各商業維度的關鍵目的的數值。數據發掘的技術數據發掘是一種數據分析工具,它從大量的、不完全的、有噪聲的、模糊的、隨機的數據中提取人們感興趣的數據方式、數據的普遍關系及其隱含在其中的、人們事先不知道的、但又是潛在有用的信息和知識,提取的知識表示為概念、規那么、規律、方式等方式,其目的是協助 決策者尋覓數據間潛在的關聯,發現被忽略的要素,而

18、這些信息對預測趨勢和決策行為將起到一定的支持作用。數據庫中的數據發掘是一個多步驟的處置過程,這些步驟有:數據定義階段,主要了解相關領域的有關情況,熟習背景知識,弄清楚用戶決策分析對信息的要求。數據提取階段,根據要求從數據庫中提取相關的數據。數據預處置階段,主要對前一階段產生的數據進展再加工,檢查數據的完好性及數據的一致性,對其中的噪音數據進展處置,對缺損的數據進展填補。數據發掘階段,主要是運用選定的知識發現算法,從數據中提取出用戶所需求的知識,這些知識可以用一種特定的方式表示或運用一些常用的表示方式。知識評價階段,將發現的知識以用戶能了解的方式呈現,根據需求對知識發現過程中的某些處置階段進展優

19、化,知道滿足要求。OLAP與數據發掘的關系OLAP與數據發掘都屬于分析型工具,兩者的區別在于:數據發掘的分析過程是自動的,用戶不用提出確切的問題,只需用發掘工具去發掘隱藏在海量數據中的方式并預測未來的趨勢,這種方式有利于發現未知的現實,但缺乏引導的數據發掘,往往所發現的許多方式適用性很差。OLAP是一種自上而下、不斷深化的驗證型分析工具,它經常以用戶的假設為根底對數據查詢與分析,進而提取出相關的信息。所以OLAP在數據分析方面存在著一定的局限性,即數據倉庫的構造設計的方式不同決議了OLAP對數據的分析效果與分析層次;同時由于OLAP是用戶驅動的,用戶對所分析問題認識和了解程度在一定程度上會影響

20、到最終的分析結果。從對數據分析的角度看。OLAP位于較淺的層次;由于數據發掘可以發現OLAP所不能發現的更為復雜而細致的信息,因此處于相對較高的層次。OLAP與數據發掘的相互作用表達在以下幾個方面:OLAP與數據發掘同作為數據分析工具,二者相比互有優劣。數據發掘結果的無法預測性及發掘結果能否有效等缺乏,決議了數據發掘需求另外一個分析工具作輔助,對其結果進展驗證。OLAP是針對多維數據庫而開發的分析工具,可以對多維數據進展較為全面的映射。所以在數據倉庫的根底上,OLAP與數據發掘有了結合的能夠,即數據發掘的結果可以經過OLAP進展驗證,數據發掘在有驗證的前提下,其發掘結果將呈現螺旋式上升的過程,

21、逐漸從模糊、混沌走向明晰、客觀,進而表現為有價值的知識。勝利的數據發掘需求對數據進展探求性的分析。發掘所需的數據范圍也許只是數據倉庫的一部分,在此意義上,OLAP對多維數據的鉆取、旋轉等操作同樣可以運用于數據發掘的過程中,作為基于數據倉庫發掘的引導步驟。系統處理方案在WEB環境下OLAP技術的研討長久以來,對數據庫的操作都有兩種不同的運用方式。一種是日常的對數據的操作型運用,另一種是對數據的查詢型運用。這兩種運用有著很大的區別,如表.。操作型運用查詢型運用涉及的表或字段不多涉及大量的表和字段以增刪操作為主,查詢量少不修正數據,但進展大量的查詢以業務人員運用為主,主要是細節信息面向管理人員或決策

22、人員,關注匯總信息和導出信息運用當前數據能夠用到大量的歷史信息表.兩種運用的區別在數據庫開展的早期,由于數據量不大,查詢型運用和操作型運用的區別還不太明顯。但隨著數據庫規模的逐漸增大,人們希望利用曾經有的歷史數據來使本人在猛烈的競爭中取勝,分析人員經常是希望從多個不同的角度來察看一個或多個目的的值,并且希望從中找到這些目的之間的關系,這些要求導致查詢復雜度越來越高,特別是這些查詢懇求是分析人員在分析過程中根據顯示的數據而實時產生的。這樣的要求是業務系統無法勝任的。而OLAP技術就可以處理這樣的查詢要求。OLAP操作最主要的一點是要給分析人員提供一個多維數據超立方體,分析人員不需求了解實踐的數據

23、庫構造,他所看見的是與其習慣的企業邏輯構造類似的多維構造。根據他所關注的目的的不同,在多維構造內今昔感多維操作,如鉆取、上挖、漂移、切片、切塊等。數據庫管理人員的責任就是根據企業的組織構造和實踐運用人員的要求,在曾經有的數據倉庫上構造多維數據庫及多維視圖。傳統的基于C/S構造的OLAP體系機構,其根本流程是由熟習數據庫構造的系統管理員對數據庫構造進展分析,根據其業務知識將數據庫中的表及字段映射為多維構造,構造由多維構造構成的超立方體,然后根據用戶分析人員在運用過程中的要求對多維視圖進展修正,從而再次構造超立方體,如此循環往復。這種構造在運用過程中暴顯露了不少的問題:在每一個客戶端都要安裝和配置

24、多維查詢軟件。維護任務量很大;報告內容要根據運用者在運用過程中碰到的要求進展修正,因此要維護客戶端的報告內容一致也是很復雜的;由于報告存放在客戶端。因此能夠會被修正,從而平安性也很不好。出現這些問題的根本緣由是沒有留意到OLAP的特殊性:OLAP作為一個多維查詢工具,不同于傳統的業務系統,主要是給管理和決策人員運用的,需求是多變的,所以IT人員不能夠依次設計出符合分析人員要求的超立方體,需求在運用過程中根據要求對超立方體不斷進展調整和修正,但是這種多變性是C/S構造所不能順應的。而且有基于Internet/Intranet的層構造才具有足夠的靈敏性。WEB效力器擔任完成閱讀器與OLAP效力器,

25、數據倉庫系統之間的通訊銜接。如圖.所示。普通來說,WEB效力器經過運用CGI腳本、WEB效力器API、運用API和數據庫API等,管理閱讀器的通訊。在閱讀器端,經過HTML、DMX、ActiveX控件、C#.NET來完成與用戶的交互截面和控件。在實現基于WEB的OLAP運用時,往往采用自頂向下的設計。首先要確定用戶如何在閱讀器中的到報表信息,然后再給出一系列的過程完成基于閱讀器的OLAP操作。這些過程該當包括發布信息,提供HTTP對數據庫或運用效力器的動態數據懇求,設計支持分析功能的界面。在客戶端基于WEB閱讀器的OLAP報表被分為幾個層次,其中包括沒有分析功能的靜態報表和可以進展分析的OLA

26、P運用界面,如維的旋轉,數據的鉆取等。另外,特別要提到的是,規范的HTML界面缺乏操作的靈敏與方便。C#.NET和ActiveX控件的運用會大大提高用戶截面的友好程度,用戶經過簡單的操作就可以完成“旋轉、“鉆取的操作。數據倉庫系統OLAP效力器WEB效力器客戶閱讀器 CGI API C#.NET、ActiveX 控件圖.基于WEB的OLAP構造圖在WEB環境下OLAP技術的實現方案OLAP專門用于支持復雜的決策分析,支持信息管理和業務管理人員決策活動的一種決策分析工具。它可以根據分析人員的要求,迅速、靈敏地對大量數據進展復雜的查詢處置,并且以直觀的、容易了解的方式將查詢結果提供應各種決策人員,

27、使他們迅速、準確地掌握企業的運營情況,了解市場需求。而要進展OLAP多維數據分析就需求根據分析需求,同時結合數據倉庫中的數據構造和特點建立OLAP多維模型。以超市銷售系統為例子,并對該例子的OLAP銷售多維模型進展了設計,如圖.。時間編號年季度月日食品編號時間編號客戶編號食品稱號銷售數量銷售額平均價錢食品編號食品類別編號食品稱號客戶編號區域編號客戶稱號食品類別編號食品類別稱號區域編號省市 銷售現實表 食品維表 食品類別維表 客戶維表 區域維表 時間維表 圖. 超市銷售分析的OLAP模型從圖中可以看出在超市銷售分析的OLAP模型中有一個銷售現實表,在該現實表中每個元組只存儲了一些指向各個維表的指

28、針即外鍵,時間編號、食品編號、客戶編號等和一些相應的丈量數據度量值,銷售數量、銷售額和平均價錢,而與這些外鍵相對應的主鍵那么分別存放不同的維表中時間維表、客戶維表、食品維表等。對現實表的查詢就是獲取指向維表的指針,當對現實表的查詢與對維表的查詢結合起來的時候,就可以檢索大量的信息。一個完好的基于WEB的OLAP銷售分析系統由三方面組成。第一,提取、清洗數據組成數據倉庫;第二利用OLAP引擎建立相應的銷售分析的OLAP立方體;第三運用前端開發工具,在WEB上訪問OLAP立方體中包含的對象和集合。這里選用了SQL SERVER Analysis Services作為數據倉庫支撐平臺,SQL SER

29、VER 的Analysis Services 是一個管理多維數據集的效力器,數據源并抽取數據,實現高效地將客戶數據加載到客戶數據倉庫中;效力器支持MDOLAP、ROLAP和HOLAP三種存儲方式,用戶本人定義運用的存儲方式,定義各個維度并建立銷售多維數據集,從而完成整個銷售過程。圖書銷售分析系統的總體設計和實現 系統的功能本系統的功能可以劃分為會員分析和圖書分析兩大部分(如圖.圖書小時分析系統功能構造圖。圖書銷售分析系統會員分析圖書分析分析會員級別分析會員消費分析會員類型分析圖書引薦銷售趨勢分析銷售關聯分析圖書銷量分析圖書定價分析圖.圖書銷售分析系統功能構造圖其中會員分析是對書店注冊會員的信息

30、進展分析,詳細功包括:會員級別分析:根據會員的個人信息來預測該會員最有能夠成為哪級會員。會員消費分析:根據會員的個人信息來預測該會員在書店的消費類型。會員類型分析:根據會員的個人信息和消費記錄來對會員進展自動分類。圖書引薦:根據會員的以往購書記錄來向引薦其他能夠感興趣的圖書。其中圖書分析那么是對書店圖書的信息進展分析,詳細功能包括:銷售趨勢分析:根據圖書的歷史銷售信息來預測未來的銷售額。圖書銷量分:根據圖書的根本信息來預測其銷量。銷售關聯分析:分析哪些圖書經常會被一同銷售。圖書定價分析:根據圖書的根本信息來估算定價。 數據源設計數據庫設計數據庫邏輯設計根據系統的需求分析定義系統中的實體,并采用

31、E-R圖來如圖.圖書銷售E-R圖表現實體之間的邏輯關系。在關系圖中主要有會員和圖書兩個實體,會員買書的一些情況和引薦書的情況。圖書中包含了圖書的銷售量等相關信息。會員會員號姓名入會時間級別生日地域地址性別郵箱積分圖書國際規范圖書號圖書號光盤書名存儲量出版日期價錢上架時間頁數條碼號買書引薦書銷售數據銷售量會員號銷售時間引薦數據書號類型折扣情況級別折扣率NNNN級別號 圖.圖書銷售E-R圖數據庫構造設計在邏輯設計的根底上,進展了構造設計,數據庫的設計主要有五個數據表和三個視圖,下面分別對五個數據表和三個視圖進展闡明。會員表:主要是記錄會員的姓名、性別、地址、號碼、會員號、會員的級別、會員的入會時間

32、。這些對視圖進展查詢有很大用途,同時對分析進展預測提供了可靠的信息資源。圖書表:主要是記錄圖書的名字、出版時間、國際規范圖書號、內帶光盤、存儲量、上架日期、條碼、價錢、書的頁數買書的記錄表:主要記錄會員買書的情況,里面記錄會員的會員號、買書的時間、買書消費額。折扣表:主要是記錄會員的級別所打的折扣。表內包括級別和折扣率。圖書銷售情況表:主要記錄圖書銷售的情況。主要記錄圖書號、圖書的銷售額、圖書銷售的數量、圖書銷售的折扣。圖書視圖:主要是進展圖書與會員的綜合查詢,它包含了圖書的根本信息和銷售情況匯總。圖書銷售視圖:主要是對圖書的銷售情況的綜合查詢,它包含了圖書的銷售細明信息。圖書每周銷售視圖:主

33、要是對圖書進展每周的銷售情況的綜合查詢,它包含了圖書每周銷售銷量的信息。以下是五個數據表:表.會員表、表.圖書表、表.買書的記錄表、表.折扣表、表.圖書銷售表。列名數據類型允許空IDIntNameNvarchar()LevelsSmallintYRegTimeSmalldatetimeYGenderBitYBirthdaySmalldatetimeYDegreeNvarchar()YAreaNvarchar()YAddressNvarchar()YephoneNvarchar()YNvarchar()YScoreIntY表.會員表列名數據類型允許空IDIntISBNNchar()NameNva

34、rchar()CategoryIDIntYAuthorNvarchar()YPressNvarchar()YPublishDateSmalldatetimeYPriceSmallmoneyPagesSmallintYBarcodeNchar()CDBitYStorageIntYShelfDateSmalldatetimeY表.圖書表列名數據類型允許空IDIntCustomerIDIntYSumSmallmoneyYTimesmalldatetime表.買書的記錄表列名數據類型允許空LevelsIntDiscountFloat表.折扣表列名數據類型允許空IDIntSellIDIntBookIDI

35、ntNumberIntDiscountFloatYSumSmallmoneyY表.圖書銷售表以下是三個視圖表:表.圖書視圖、表.圖書銷售視圖、表.圖書每周銷售視圖。列別名表輸出排序類型排序順序分組根據挑選器IDBookY 升序Group ByNameBookYGroup ByCategoryBookCategoryYGroup ByPressBookYGroup ByPriceBookYGroup ByRagesBookYGroup ByCDBookYGroup ByNumberSellNumberSellItemYSumSumSellSumSellItemYSumShelfDateBookY

36、Group By表.圖書視圖表.圖書視圖的綜合查詢的內部代碼為:SELECT TOP() 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

37、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列別名表輸出排序類型排序順序分組根據挑選器IDSellItemYID

38、SellIDSellYCustomerIDSellYTimeSellYBookIDSellItemYISBNBookYNameBookYPressBookYPriceBookYNumberSellItemYDiscountSellItemYSumSellItemY表.圖書銷售視圖表.圖書銷售視圖的內部代碼和關系圖圖.圖書銷售關系圖:SELECT dbo.SellItem.ID, dbo.Sell.ID AS SellID, dbo.Sell.CustomerID, dbo.Sell.Time, dbo.SellItem.BookID, dbo.Book.ISBN, dbo.Book.Name,

39、 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圖.圖書銷售關系圖列別名表輸出排序類型排序順序分組根據DATEPART(week,dbo.sell.Time)WeekY升序Group ByIDBook

40、Y升序Group BySumSellSumSellItemYSum表.圖書每周銷售視圖表.圖書每周銷售視圖的內部代碼為:SELECT TOP () 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.IDGRO

41、UP BY DATEPART(week, dbo.Sell.Time), dbo.Book.IDORDER BY Week, dbo.Book.ID 設計好了以上的表和視圖是為了對其中的數據進展預測和分析,這些創建給以后的實現部分做了很好的鋪墊。圖書銷售 Analysis Services 設計數據源設計 在數據源設計運用了數據發掘技術,首先用“數據源導游將數據中表.會員表、表.圖書視圖、表.圖書銷售視圖、表.圖書每周銷售視圖參與工程的數據源試圖中。其中會員表中存儲了書店注冊會員的根本個人信息;同時為了支持數據的分析,設計中還要向會員表中添加兩個計算列。兩個計算列分別為Age和DayConsu

42、me。它們的表達式分別為“YEAR(GETDATE()-YEAR(dbo.Customer.Birthday)和“CAST(Score AS Decimal)/DATEDIFF(DAY,RegTime,GETDATE() 是用來計算會員的年齡和會員的積分除以其注冊天數以得到該會員的日平均消費金額。合理地運用計算列,可以大大方便發掘構造和發掘模型的創建,同時防止修正源數據庫中的根底表格和視圖。在Analysis Services工程中也需求向圖書表中參與兩個計算器分別DaySellNumber和DaySellSum,計算表達式為:“SellNumber/DATEDIFF(DAY,ShelfDat

43、e,GETDATE()、“SellSum/DATEDIFF(DAY,ShelfDate,GETDATE()。它們是用來計算圖書日均銷量。為了對會員購書的有關信息進展發掘,在數據源視圖中還應將會員表和圖書銷售視圖關聯起來。如圖.數據源視圖圖書銷售圖。如圖.數據源視圖圖書銷售圖數據源的設計對以后數據發掘起到決議的作用。在本設計中運用了多個數據發掘的方法。這些方法大大方便了界面的分析和預測。管理者經過預測的信息知道內部圖書銷售的各個情況和了解會員的相關活動信息。本系統設計的發掘模型貝葉斯發掘模型:是用來對會員級別的分析。主要運用了“Microsoft Nave Bayes發掘技術對數據源視圖中的會員

44、表作為事例對Levels和DayConsume列作為可預測列進展預測。決策樹發掘模型:來分析會員的消費程度最有能夠處在哪個區間,主要運用“Microsoft 決策樹發掘技術對數據源視圖中的會員表作為事例對Levels進展忽略,而對DayConsume進展可預測。聚類分析發掘模型:是用來分析會員的年齡和學歷進展分析。是忽略Area、Levels、Gender,而Age和Degree作為輸入列對DayConsume進展預測。關聯規那么發掘模型:用于分析會員與圖書之間的關聯,進而向會員引薦其他能夠感興趣圖書。在設計中用會員表作為事例表嵌套圖書銷售表,Gender、Age、Degree、Area作為輸

45、入列,BookSell進展預測。時序發掘模型:是用于圖書的分析,用每周銷售視圖來做事例,ID和 Week作為輸入鍵對SellSum進展預測。神經網絡發掘模型:是預測新書的銷量,圖書表作為事例,Category、Press、Price、Pages和CD列進展輸入,對DaySellNumber進展預測。順序分析發掘模型:用于實現圖書銷售的關聯分析,會員表作為事例,圖書銷售表銷售表作為嵌套表,對Name進展預測。線性回歸發掘模型:是對圖書價錢的預測,圖書表作為事例,Pages為輸入列,對Price進展預測。.系統界面設計.會員信息分析界面設計 對于會員信息分析的Windows窗體設計視圖如圖.所示。

46、在對應的窗體類CustomerAnalysisForm.cs中定義了如下成員字段: protected SqlConnection _connDatabase; protected AdomdConnection _connAnalysis;protected AdomdCommand _cmd;其中前兩個數據銜接對象分別指向SQL Server數據庫BookSell和Analysis Server數據庫,后一個數據命令對象那么用于在Analysis Services數據庫上執行DMX查詢對象的創建都在窗體的構造函數中完成:public CustomerAnalysisForm(SqlConn

47、ection connectionDatabase, AdomdConnection connectionAnalysis) _connDatabase = connectionDatabase; _connAnalysis = connectionAnalysis; _cmd = _connAnalysis.CreateCommand(); InitializeComponent(); 窗體在初始化和封鎖將翻開和封鎖相應的數據銜接;窗體的初始化過程同時還運用SQL數據命令將一切會員的ID號載入到“會員編號組合框cmbcustomerID中:private void CustomerAnaly

48、sisForm_Load(object sender, EventArgs e) SqlCommand cmd = new SqlCommand(SELECT DISTINCT ID FROM Customer ORDER BY ID, _connDatabase); SqlDataReader reader = cmd.ExecuteReader(); while (reader.Read() cmbCustomerID.Items.Add(reader); reader.Close(); dgvLevels.AutoGenerateColumns = false; 圖.會員分析窗體Cust

49、omerAnalysisForm選擇會員編號并按下“載入會員信息按鈕后,程序將再次經過SQL命令來讀取會員的個人信息,并顯示在窗體上部的各個控件中: private void btnLoadInfo_Click(object sender, EventArgs e) if (cmbCustomerID.Text = ) MessageBox.Show(會員編號不能為空, 錯誤, MessageBoxButtons.OK, MessageBoxIcon.Error); return; SqlCommand cmd = _connDatabase.CreateCommand(); cmd.Comm

50、andText = SELECT Birthday, Area, Degree, Gender, RegTime, Levels, Score FROM Customer WHERE ID= + cmbCustomerID.Text; SqlDataReader reader = cmd.ExecuteReader(); if (reader.Read() dtpBirthday.Value = (DateTime)reader; if (reader != DBNull.Value) cmbArea.Text = reader.ToString(); if (reader != DBNull

51、.Value) cmbDegree.Text = reader.ToString(); if (bool)reader) rdbMale.Checked = true; else rdbFemale.Checked = true; dtpRegTime.Value = (DateTime)reader; cmbLevel.Text = reader.ToString(); nudScore.Value = (int)reader; reader.Close(); 窗體下部是一個TabControl容器控件,它的個TabPage頁分別用于實現會員的級別分析、消費分析、類型分析和圖書引薦功能。當用

52、戶按下“會員級別標簽頁中的“預測按鈕后,程序首先根據相關輸入來構造DXM預測查詢字符串,而后調用貝葉斯模型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 - dtpBir

53、thday.Value.Year; _cmd.CommandText = string.Format(SELECT Predict(Levels), PredictHistogram(Levels) From CustomerLevels NATURAL PREDICTION JOIN (SELECT AS Age, AS Area, AS Degree, AS Gender) AS t, iAge, cmbArea.Text, cmbDegree.Text, rdbMale.Checked); AdomdDataReader reader = _cmd.ExecuteReader(); if

54、 (reader.Read() MessageBox.Show(string.Format(該會員最有能夠成為級會員, reader), 預測結果); AdomdDataReader reader = (AdomdDataReader)reader; DataTable table = new DataTable(); table.Load(reader); dgvLevels.DataSource = table; reader.Close(); 留意在上面的DXM預測查詢中運用了Predice和PredictHistogram兩個預測函數,其中后者前往的結果包含會員到達各個級別的概率和支持

55、計數,詳細信息將顯示在DataGridView控件中。窗體對會員級別的預測效果如圖.所示。圖.預測會員級別類似的,當用戶按下“會員消費標簽頁的“預測按鈕后,程序將調用決策樹模型CustomerConsume來預測會員的消費程度:private void btnPredictConsume_Click(object sender, EventArgs e) if (cmbArea.Text = | cmbDegree.Text = ) MessageBox.Show(地域或學歷不能為空, 錯誤, MessageBoxButtons.OK, MessageBoxIcon.Error); retur

56、n; int iAge = DateTime.Now.Year - dtpBirthday.Value.Year; _cmd.CommandText = string.Format(SELECT Predict(Dayconsume), PredictHistogram(Dayconsume) From CustomerConsume NATURAL PREDICTION JOIN (SELECT AS Age, AS Area, AS Degree, AS Gender) AS t, iAge, cmbArea.Text, cmbDegree.Text, rdbMale.Checked);

57、AdomdDataReader reader = _cmd.ExecuteReader(); if (reader.Read() MessageBox.Show(該會員最有能夠屬于 + that.GetConsumeDescription(double)reader); AdomdDataReader reader = (AdomdDataReader)reader; dgvConsume.Rows.Clear(); double dConsume; while (reader.Read() if(readerDayconsume != null & double.TryParse(reade

58、rDayconsume.ToString(), out dConsume) dgvConsume.Rows.Add(that.GetConsumeDescription(dConsume), reader$PROBABILITY, reader$SUPPORT); reader.Close(); reader.Close(); 在預測輸出時,程序經過成員方法GetConsumeDescription將日均消費數值轉換為消費程度的文字描畫;對會員消費的預測效果如圖.所示。protected string GetConsumeDescription(double consume) if (cons

59、ume = ) return 忠實會員; else return 普通會員; 圖.預測會員消費程度再看“會員消費標簽頁中的“預測按鈕,其單擊事件處置代碼中調用了聚類分析模型CustomerType來預測會員類型,窗體的預測效果如圖.所示。private void btnPredictType_Click(object sender, EventArgs e) if (cmbDegree.Text = ) MessageBox.Show(學歷不能為空, 錯誤, MessageBoxButtons.OK, MessageBoxIcon.Error); cmbDegree.Focus(); retu

60、rn; int iAge = DateTime.Now.Year - dtpBirthday.Value.Year; int iRegDays = (DateTime.Now - dtpRegTime.Value).Days + ; decimal dDayConsume = nudScore.Value / iRegDays; _cmd.CommandText = string.Format(SELECT Cluster(), PredictHistogram(Cluster() From CustomerType NATURAL PREDICTION JOIN (SELECT AS Age

溫馨提示

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

評論

0/150

提交評論