例如,設(shè)想一個(gè)“客戶”維度。關(guān)系型源表有八列:
| • | 客戶鍵 | 
| • | 客戶名稱 | 
| • | 年齡 | 
| • | 性別 | 
| • | 電子郵件 | 
| • | 城市 | 
| • | 地區(qū) | 
| • | 國家 | 
相應(yīng)的 analysis services 維度應(yīng)具有七個(gè)屬性:
| • | 客戶(整型鍵、以“客戶名稱”作為名稱) | 
| • | 年齡、性別、電子郵件、城市、地區(qū)、國家 | 
數(shù)據(jù)中存在一種自然層次結(jié)構(gòu),{國家、地區(qū)、城市、客戶}。出于導(dǎo)航目的,應(yīng)用程序開發(fā)人員可以選擇創(chuàng)建第二個(gè)層次結(jié)構(gòu):{年齡、性別}。商務(wù)用戶并沒有看到這兩個(gè)層次結(jié)構(gòu)行為方式之間有何區(qū)別,但是,自然層次卻可以從深諳層次關(guān)系的索引結(jié)構(gòu)(對用戶隱藏)中受益。
新維度結(jié)構(gòu)的最大優(yōu)勢在于:
| • | 維度不需要加載到內(nèi)存中。因此,維度可以非常巨大(經(jīng)測試,beta 2 可支持上千萬名成員)。 | 
| • | 用戶可以添加和刪除屬性層次結(jié)構(gòu),而不必再重新處理維度。屬性層次索引結(jié)構(gòu)屬輕型結(jié)構(gòu),在后臺計(jì)算,并不影響多維數(shù)據(jù)集查詢。 | 
| • | 重復(fù)的維度信息被去除;使得維度更加輕巧。 | 
| • | 由于引擎為并行處理創(chuàng)建了機(jī)會,因此維度處理信息性能得到了改進(jìn)。 | 
analysis services 2000 中包括兩種維度類型:常規(guī)層次類型和父子類型。analysis services 2005 新增了一些重要的新維度結(jié)構(gòu)。其中有些結(jié)構(gòu)的名稱是臨時(shí)的,但是,這些名稱都是 bi 文獻(xiàn)中較為通用的。
| • | 角色扮演:維度扮演著一些重要角色,具體哪些角色要依上下文而定。例如,[時(shí)間] 維度可能會被 [訂購日期] 和 [發(fā)貨日期] 重用。在 2005 中,扮演著某些角色的維度只需存儲一次,便可多次使用。這樣便可使所需的硬盤空間和處理時(shí)間降至最低。 | 
| • | 事實(shí):事實(shí)或“退化”維度與事實(shí)(如事務(wù)編號)具有一一對應(yīng)的關(guān)系。從本質(zhì)上講,退化維度不能用于分析,但可用作標(biāo)識,以定位特定的事務(wù),或識別組成聚合單元的事務(wù)。 | 
| • | 引用:維度并不能夠直接和事實(shí)數(shù)據(jù)表發(fā)生聯(lián)系,但可通過另一維度間接發(fā)生聯(lián)系。這方面的原型示例有 [地理位置] 引用維度,它同時(shí)關(guān)聯(lián)了 [客戶] 和 [銷售團(tuán)隊(duì)] 兩個(gè)維度。引用維度可能由數(shù)據(jù)提供程序提供,并包括在多維數(shù)據(jù)集中,不必再修改事實(shí)數(shù)據(jù)。 | 
| • | 數(shù)據(jù)挖掘:數(shù)據(jù)挖掘維度支持從數(shù)據(jù)挖掘模型(包括群集、決策樹和關(guān)聯(lián)規(guī)則)生成的維度。 | 
| • | 多對多:這些維度有時(shí)被稱為多值維度。在大部分維度中,事實(shí)能且只能連接一個(gè)維度成員。多對多維度解決了多維度成員問題。例如,銀行儲蓄客戶可以有多個(gè)帳戶(支票、儲蓄);一個(gè)帳戶可以有多個(gè)客戶 (mary smith、john smith)。[客戶] 維度有多個(gè)成員,這些成員都與一個(gè)帳戶事務(wù)相關(guān)聯(lián)。在維度不能夠直接關(guān)聯(lián)事實(shí)數(shù)據(jù)表時(shí),2005 多對多維度支持復(fù)雜的分析,并擴(kuò)展了維度模型,使之超越了傳統(tǒng)的星形架構(gòu)。 | 
analysis services 2005 引入了“量度組”和“透視”,以用來簡化分析數(shù)據(jù)庫的設(shè)計(jì)和部署。在 analysis services 2000 中,鼓勵(lì)用戶構(gòu)建多個(gè)物理多維數(shù)據(jù)集。每個(gè)多維數(shù)據(jù)集相當(dāng)于一個(gè)特定的維度,通常還相當(dāng)于一個(gè)特定的關(guān)系事實(shí)數(shù)據(jù)表。虛擬多維數(shù)據(jù)集以一種對商務(wù)用戶透明,而對開發(fā)人員設(shè)計(jì)又不太復(fù)雜的方式,合并多個(gè)事實(shí)數(shù)據(jù)表。
在 2005 中,最通用的方案將具有一個(gè)包含一個(gè)或多個(gè)“量度組”的物理多維數(shù)據(jù)集。量度組中的事實(shí)數(shù)據(jù)具有特定的細(xì)化程度(由維度層次的交叉點(diǎn)定義)。查詢根據(jù)需要被自動(dòng)定向到不同的量度組。在物理層上,分區(qū)(與 analysis services 2000 分區(qū)類似)在“量度組”上定義。
大型應(yīng)用程序?qū)橛脩籼峁┐罅康木S度、量度組,而且還會給導(dǎo)航帶來難度。在“多維數(shù)據(jù)集編輯器”的“透視”選擇卡中定義的“透視”可以創(chuàng)建一個(gè)多維數(shù)據(jù)集的子集“視圖”。為了要提供一定程度的個(gè)性化,可以將安全性角色與適合該角色的透視集相關(guān)聯(lián)。
我們希望大部分的 analysis services 2005 數(shù)據(jù)庫都包含一個(gè)具有多個(gè)量度組和多個(gè)透視的多維數(shù)據(jù)集。
對多維數(shù)據(jù)集事實(shí)結(jié)構(gòu)和查詢性能所做的其他改進(jìn)有:
| • | 量度可以為空;在 sql server 2000 中,"null" 量度被當(dāng)作 0 處理。 | 
| • | 適當(dāng)?shù)亩嗑S數(shù)據(jù)集分區(qū)使得“非重復(fù)計(jì)數(shù)度量值”的查詢性能得到了改進(jìn),性能值增加了幾個(gè)數(shù)量級。 | 
| • | 對備選數(shù)據(jù)庫管理系統(tǒng)的訪問由可擴(kuò)展的部件基礎(chǔ)結(jié)構(gòu)提供。rdbms 的部件用于指定如何為關(guān)系查詢和寫入優(yōu)化 sql 語句。用戶可以輕松添加其他關(guān)系系統(tǒng)的部件;部件被作為 xsl 文件實(shí)現(xiàn)。 | 
使用分析服務(wù)器(如 analysis services)最大的爭議之一就是其集中定義復(fù)雜計(jì)算的能力。analysis services 一直以來都能交付豐富的分析數(shù)據(jù),但對某些復(fù)雜概念卻很難實(shí)現(xiàn)。
其中一種概念就是半累積量度。最通用的量度值(如 [銷售額])能夠清晰地匯總所有維度:長期以來的 [總銷售額] 是指所有產(chǎn)品、所有客戶在所有時(shí)間內(nèi)的銷售總額。相比之下,半累積量度值可能在某些維度中是累積的,而在其他的維度卻不是累積的。最常見的一個(gè)例子便是余額,如倉庫中的貨品數(shù)。很顯然的,昨天和今天這兩天的余額總計(jì)肯定不等于昨天的余額加上今天的余額。相反,它可能是期末余額,雖然在有些情況下它是期初余額。在 analysis services 2000 中,您必須定義一個(gè)復(fù)雜的 mdx 計(jì)算,幫能交付正確的度量值。而在 analysis services 2005 中,期初余額和期末余額都是本機(jī)聚合類型。
非重復(fù)計(jì)數(shù)度量值在 2005 中也得到了很大的改進(jìn)。現(xiàn)在,非重復(fù)計(jì)數(shù)度量值可定義在字符串?dāng)?shù)據(jù)上,而查詢可以被定義為在任意集合上執(zhí)行“非重復(fù)計(jì)算”。而 analysis services 2000 只能夠在預(yù)先定義的層次結(jié)構(gòu)上執(zhí)行非重復(fù)計(jì)算。
“時(shí)間智能”向?qū)?chuàng)建一個(gè)時(shí)間計(jì)算維度,其中包含該期間與最后期間的對比計(jì)算,可以移動(dòng)平均值,同時(shí)還可創(chuàng)建其他的通用時(shí)間計(jì)算構(gòu)造。
mdx 腳本多維表達(dá)式 (mdx: multidimension expression) 是一種功能非常強(qiáng)大的語言,可用于定義 analysis services 2000 計(jì)算和安全規(guī)則。mdx 功能強(qiáng)大,但也也很復(fù)雜。analysis services 2005 利用被簡化了結(jié)構(gòu)和語法的“mdx 腳本”定義了一種新的計(jì)算模型。
mdx 還是 analysis services 系統(tǒng)中的查詢語言。查詢工具(如 excel 透視表)根據(jù)用戶的“拖放”行為生成 mdx 查詢。mdx 的這種使用與“mdx 腳本”無關(guān);“mdx 腳本”用于服務(wù)器定義的對象,如計(jì)算成員和單元計(jì)算,并非用于用戶查詢。
在定義 analysis services 2005 多維數(shù)據(jù)集時(shí),其中只包含結(jié)構(gòu),而沒有數(shù)據(jù)。“mdx 腳本”是多維數(shù)據(jù)集結(jié)構(gòu)的組成部分。一般情況下都會定義一個(gè)默認(rèn)的“mdx 腳本”命令,用來計(jì)算默認(rèn)的聚合。默認(rèn)的“mdx 腳本”命令只包含一條語句:
calculate;在多維數(shù)據(jù)集完全處理之后,應(yīng)用默認(rèn) mdx script 之前,多維數(shù)據(jù)集將包含葉層級的數(shù)據(jù),但不包含聚合。在應(yīng)用單一語句的默認(rèn)“mdx 腳本”時(shí),將計(jì)算和存儲聚合。
“mdx 腳本”語句包含以下命令,用分號隔開:
| • | 限制語句作用域的作用域語句 | 
| • | 公式和值分配 | 
| • | 計(jì)算成員定義 | 
| • | 命名集定義 | 
在多維數(shù)據(jù)集的設(shè)計(jì)中,business intelligence development studio 的用戶界面和“mdx 腳本”均(其中包括計(jì)算成員和命名組)在“計(jì)算”視圖中構(gòu)建。“mdx 腳本”可以在提供語法向?qū)У哪J(rèn)“計(jì)算表單”視圖中查看,也可以在“計(jì)算腳本”視圖中查看,這一視圖把“mdx 腳本”顯示為一組用分號分隔的命令。您可以在這兩個(gè)視圖間來回切換,雖然“表單”視圖的顯示要求整個(gè)腳本的語法必須正確。
“mdx 腳本”具有幾個(gè)主要功能:
| • | 腳本遵循過程模型:依次應(yīng)用語句。“mdx 腳本”開發(fā)人員不需要再受傳遞次序的煩惱,他們得到充分的保護(hù),不必再擔(dān)心會編寫出引起無限制遞歸的腳本。 | 
| • | 可包含計(jì)算:scope 語句使您可以針對多維數(shù)據(jù)集的特定區(qū)域,定義一個(gè)或多個(gè)計(jì)算。例如: scope ([customers].[country].[country].[usa]); | 
| • | 作用域可以嵌套。 | 
| • | 可緩存計(jì)算:cache 關(guān)鍵字表示腳本計(jì)算結(jié)果應(yīng)存儲在磁盤上,而不是在執(zhí)行運(yùn)行時(shí)計(jì)算。在查詢包含大量復(fù)雜計(jì)算的大型多維數(shù)據(jù)集時(shí),緩存的計(jì)算可以實(shí)現(xiàn)非常高的查詢性能。當(dāng)輸入緩存計(jì)算更改時(shí),該計(jì)算便會被刪除和重建。 | 
| • | 用戶可以對“mdx 腳本”進(jìn)行調(diào)試。您可以逐行完成“mdx 腳本”,瀏覽每步的多維數(shù)據(jù)集結(jié)果。 | 
analysis services 2005 引入了存儲過程,來擴(kuò)展用戶定義功能 (udf: user defined function) 所提供的能力。存儲過程可以用任何公共語言運(yùn)行時(shí)編程語言(例如 c++、visual basic 或 c)編寫。存儲過程允許一次性開發(fā)公共代碼、將代碼存儲在一個(gè)位置,并在其他存儲過程、計(jì)算和用戶查詢中重新使用所存儲的公共代碼,從而簡化了數(shù)據(jù)庫的開發(fā)和實(shí)施。
在 analysis services 2005 中存在兩種類型的存儲過程:
| • | mdx 函數(shù)存儲過程與任何其他的 mdx 函數(shù)相似,它提供了一種可輕松擴(kuò)展 mdx 語言的機(jī)制。 | 
| • | 自定義存儲過程執(zhí)行特定于實(shí)施的任務(wù),例如多維數(shù)據(jù)集處理,或更新多維數(shù)據(jù)集部分中的單元。 | 
存儲過程可用于執(zhí)行客戶端應(yīng)用程序可以執(zhí)行的任何任務(wù)。
關(guān)鍵績效指標(biāo)analysis services 2005 為服務(wù)器端計(jì)算定義引入了關(guān)鍵績效指示 (kpi) 框架,用來衡量您的業(yè)務(wù)。這些 kpi 將通過數(shù)據(jù)訪問 api 和 microsoft 與第三方工具,被顯示在報(bào)告、門戶和儀表板中。對于 beta 2 版本而言,還沒有可用于顯示 kpi 的客戶端工具。
不同的評論員和供應(yīng)商用縮寫 "kpi" 指代不同的概念。對于 microsoft sql server analysis services 2005,精確定義 kpi 的過程可分為以下四個(gè)步驟:
| • | 有待測量的值:物理度量值,如銷售額,計(jì)算度量值,如利潤,或在 kpi 中定義的計(jì)算, | 
| • | 值目標(biāo):定義度量值目標(biāo)的值(或解析為值的 mdx 表達(dá)式), | 
| • | 狀態(tài):評估當(dāng)前值狀態(tài)的 mdx 表達(dá)式,其正常值范圍從 -1(極差)到 +1(極佳), | 
| • | 趨勢:評估當(dāng)前值趨勢的 mdx 表達(dá)式。相對其目標(biāo)而言,值是逐漸變好還是逐漸變壞? | 
 實(shí)時(shí)商務(wù)智能
實(shí)時(shí)商務(wù)智能數(shù)據(jù)倉庫和商務(wù)智能應(yīng)用程序過去都是使用“過時(shí)”的或高延遲的數(shù)據(jù),數(shù)據(jù)每月、每周或每天刷新一次。傳統(tǒng)擁護(hù)者斷言,實(shí)時(shí) bi 是相互矛盾的,因?yàn)榻y(tǒng)計(jì)決策不需要刷新頻率過高(超過每天一次)的數(shù)據(jù)。評論者忘記了一件事情,就是商務(wù)智能應(yīng)深入整個(gè)企業(yè),而不僅僅是將策略或制定的戰(zhàn)術(shù)決策部署給少數(shù)的分析家或行政執(zhí)行人員。可操作的商務(wù)智能要求低延遲的數(shù)據(jù)。
analysis services 2005 為可操作的商務(wù)智能提供了新的處理選項(xiàng)。在 analysis services 2000 中,無論是多維數(shù)據(jù)集的存儲模式還是分區(qū)策略,都是用“拉”模型處理。啟動(dòng) analysis services 進(jìn)程在源數(shù)據(jù)庫中查找新的信息、處理可選存儲的詳細(xì)數(shù)據(jù),并計(jì)算和存儲聚合。
在 analysis services 2005 中仍支持“拉”模型,但結(jié)合了對低延遲商務(wù)智能異常有效的其他選項(xiàng)。
| • | 從 dts 管道中推出數(shù)據(jù),或從自定義應(yīng)用程序中推出數(shù)據(jù)。數(shù)據(jù)可以從 dts 包管道直接流入 analysis services 分區(qū),不用立即存儲。這種方案可用于降低分析數(shù)據(jù)的延遲(和存儲成本)。 | 
| • | 按主動(dòng)緩存管理多維數(shù)據(jù)集,以指定延遲和性能特性管理緩存,勿需管理干涉。 | 
analysis services 多維存儲的查詢性能特性主宰著關(guān)系型存儲。簡而言之,查詢針對多維 (molap) 存儲執(zhí)行時(shí)效果最佳。其不足之處是延遲:多維存儲是從其關(guān)系源向下流動(dòng)的。主動(dòng)緩存技術(shù)的技巧就在于能夠在最小化數(shù)據(jù)延遲和管理成本的同時(shí)最大化查詢性能。
主動(dòng)緩存功能簡化了管理數(shù)據(jù)過期問題的過程。如果事務(wù)發(fā)生在源數(shù)據(jù)庫(如新的維度成員或新的事實(shí)事務(wù))上,現(xiàn)有“緩存”便會過期。主動(dòng)緩存技術(shù)提供了一種可調(diào)整的機(jī)制,可確定重新構(gòu)建多維緩存的頻率;指定在重新構(gòu)建緩存時(shí)答復(fù)查詢的方式;在不需要任何管理干涉的情況下啟動(dòng)過程。
主動(dòng)緩存技術(shù)使您可以將多維數(shù)據(jù)集設(shè)置為在事務(wù)發(fā)生時(shí),自動(dòng)刷新其多維緩存。雖然 analysis services 處理數(shù)據(jù)速度非常快,但處理過程還是需要一些時(shí)間的。如果多維緩存處理過程沒有完成,主動(dòng)緩存配置便可以自動(dòng)將查詢重定向到相關(guān)的存儲。
在設(shè)計(jì)主動(dòng)緩存配置時(shí),一定要謹(jǐn)記必須為每個(gè)多維分區(qū)都設(shè)置主動(dòng)緩存。如果分區(qū)包括短時(shí)間范圍(如一小時(shí))內(nèi)的數(shù)據(jù),緩存刷新過程可能會發(fā)生的非常快。最為復(fù)雜的主動(dòng)緩存配置依賴于從關(guān)系數(shù)據(jù)庫發(fā)往有更新發(fā)生的 analysis services 的通知。microsoft sql server 關(guān)系數(shù)據(jù)庫支持這種通知。對于不能夠提交通知的數(shù)據(jù)庫,可以將 analysis services 配置為根據(jù)定義的查詢,輪詢更改。
主動(dòng)緩存的參數(shù)有:
| • | 靜止期:在服務(wù)器開始處理新信息前,關(guān)系源必須處于事務(wù)空閑狀態(tài)的時(shí)間量。該參數(shù)通常設(shè)置為一個(gè)小于十秒鐘的值。如果在關(guān)系源上存在許多連續(xù)的更新,則應(yīng)等待靜止期,以針對重復(fù)性刪除和重建緩存加以保護(hù)。 | 
| • | 延遲:允許用戶訪問過期數(shù)據(jù)的時(shí)間量。如果延遲設(shè)置為 0,則只要收到通知,用戶查詢就會被重定向到關(guān)系源。如果延遲設(shè)置為 600 秒,用戶則只能訪問十分鐘前的數(shù)據(jù)。如果設(shè)置為 -1,則表示用戶將一直訪問過期數(shù)據(jù),直至主動(dòng)緩存處理完畢。 | 
| • | 靜默覆蓋間隔:更改通知與主動(dòng)緩存處理開始之間的最大持續(xù)時(shí)間。如果源數(shù)據(jù)庫被不斷更新,此參數(shù)將覆蓋“靜止期”設(shè)置。 | 
| • | 強(qiáng)制重建間隔:當(dāng)源數(shù)據(jù)庫系統(tǒng)不能提供更新通知時(shí),可使用此參數(shù)提供簡單的主動(dòng)緩存功能。如果源數(shù)據(jù)在 sql server rdbms 中,則應(yīng)將該參數(shù)設(shè)置為 0。 | 
microsoft sql server 2005 data mining(數(shù)據(jù)挖掘)屬于商務(wù)智能技術(shù),它可幫助您構(gòu)建復(fù)雜的分析模型,并使其與您的業(yè)務(wù)操作相集成。數(shù)據(jù)挖掘可回答如下問題
| • | 該客戶的信用風(fēng)險(xiǎn)如何? | 
| • | 客戶的特征如何? | 
| • | 人們愿意同時(shí)購買哪些產(chǎn)品? | 
| • | 下個(gè)月能賣出多少產(chǎn)品? | 
數(shù)據(jù)挖掘應(yīng)用程序?qū)?shù)據(jù)挖掘模型集成到日常的業(yè)務(wù)運(yùn)營之中。許多數(shù)據(jù)挖掘項(xiàng)目的目標(biāo)是構(gòu)建可供業(yè)務(wù)用戶、合作伙伴和客戶使用的分析應(yīng)用程序,而不必理會應(yīng)用程序底層的復(fù)雜計(jì)算。要實(shí)現(xiàn)這一目標(biāo),需要執(zhí)行兩個(gè)主要步驟:構(gòu)建數(shù)據(jù)挖掘模型并構(gòu)建應(yīng)用程序。sql server 2005 data mining 使這些步驟比以往更加簡單。
microsoft 2005 中數(shù)據(jù)挖掘功能的目標(biāo)是構(gòu)建具備以下特征的工具:
| • | 簡單易用 | 
| • | 可提供一整套的功能 | 
| • | 可輕松嵌入到產(chǎn)品應(yīng)用程序中 | 
| • | 緊密集成其他的 sql server bi 技術(shù),以及 | 
| • | 能夠擴(kuò)展數(shù)據(jù)挖掘應(yīng)用程序的市場。 | 
可以肯定,本白皮書的每位讀者幾乎都曾“使用”過數(shù)據(jù)挖掘應(yīng)用程序。如果您已在線購得了本書或音樂,并收到了“購買此產(chǎn)品的其他客戶”的建議,或者,如果信用卡公司要求您確認(rèn)一宗可疑交易,或者,食品店在收條上打印個(gè)性化優(yōu)惠券,所有這些,都是您從使用數(shù)據(jù)挖掘應(yīng)用程序中得到的好處。時(shí)至今日,這種應(yīng)用程序的開發(fā)已集中于解決大型公司所面臨的最大問題,這些公司能夠承受分析能力的匱乏以及巨額的開發(fā)費(fèi)用,而這些都是過去用傳統(tǒng)方法構(gòu)建數(shù)據(jù)挖掘應(yīng)用程序所需面對的。正如 microsoft 的 olap 技術(shù)已推動(dòng)了 olap 市場增長一樣,我們期望能夠?qū)?shù)據(jù)挖掘技術(shù)推廣開來,使那些在過去不能開發(fā)這種應(yīng)用程序的企業(yè)和部門也能夠加入到其開發(fā)行列中來。
使用 sql server 2005 data mining 工具開發(fā)一套數(shù)據(jù)模式,然后在這些模式的基礎(chǔ)上隨意執(zhí)行預(yù)測。這是所有數(shù)據(jù)挖掘的模式:開發(fā)、模式發(fā)現(xiàn)和模式預(yù)測。
數(shù)據(jù)挖掘算法所有數(shù)據(jù)挖掘工具(包括 microsoft sql server 2005 analysis services)都采用了多種算法。當(dāng)然,analysis services 是可擴(kuò)展的;第三方 isv 可以開發(fā)算法,并將所開發(fā)的算法無縫地融入到 analysis services 數(shù)據(jù)挖掘框架之中。根據(jù)數(shù)據(jù)和目標(biāo)的不同,應(yīng)該采用不同的算法,而且每種算法都可用于解決多個(gè)問題。
數(shù)據(jù)挖掘工具擅長解決多種類型的問題。下表概括了業(yè)務(wù)問題的大致分類:
| 分析問題 | 示例 | microsoft 算法 | ||||||||||||
| 分類:為案例分配預(yù)定義的級別(如“好”與“差”) | 
 | 
 | ||||||||||||
| 分割:開發(fā)一種按相似案例分組的分類方法 | 
 | 
 | ||||||||||||
| 關(guān)聯(lián):相關(guān)性高級計(jì)算 | 
 | 
 | ||||||||||||
| 時(shí)間序列預(yù)測:預(yù)測未來 | 
 | 
 | ||||||||||||
| 預(yù)測:根據(jù)相似案例(如現(xiàn)有客戶)的值預(yù)測新方案(如新客戶)的值 | 
 | 
 | ||||||||||||
| 偏差分析:發(fā)現(xiàn)案例或群體與其他案例和群體之間的差別 | 
 | 
 | 
sql server 2005 中附帶了最流行的數(shù)據(jù)挖掘算法。
| • | microsoft decision trees(決策樹)通常是數(shù)據(jù)研究的起始點(diǎn)。它是主要的分類算法,對離散和連接屬性的可預(yù)測建模效果很好。用算法構(gòu)建模型時(shí),它著眼于數(shù)據(jù)集中每個(gè)輸入屬性是如何影響預(yù)測屬性的結(jié)果的。其目標(biāo)是找到一個(gè)輸入屬性及其狀態(tài)的組合,使您能夠預(yù)測出所預(yù)測屬性的輸出結(jié)果。 | 
| • | microsoft naïve bayes(貝葉斯算法)能夠快速構(gòu)建可用于分類和預(yù)測的數(shù)據(jù)挖掘模型。如果知道可預(yù)測屬性的每種狀態(tài),便可計(jì)算出輸入屬性每個(gè)可能狀態(tài)的概率。這種算法只支持離散(不連續(xù))屬性,它認(rèn)為所有輸入屬性都是彼此獨(dú)立的(前提是知道可預(yù)測屬性)。因?yàn)樨惾~斯算法的計(jì)算速度非常快,因此在初始數(shù)據(jù)研究階段通常會選擇這種算法進(jìn)行分類和預(yù)測問題。 | 
| • | microsoft clustering 使用迭代技術(shù)將來自數(shù)據(jù)集的記錄分成若干個(gè)包含相似特性的簇。通過使用這些簇,您可以研究數(shù)據(jù),找出彼此之間的相互關(guān)系。您還可以從群集模型創(chuàng)建預(yù)測。 | 
| • | microsoft association 基于 priori 算法,它為在大型數(shù)據(jù)集中查找多路關(guān)聯(lián)提供了一種有效的方法。association 算法在數(shù)據(jù)庫所有事務(wù)中循環(huán),在單一用戶事務(wù)中查找最有可能同時(shí)出現(xiàn)的項(xiàng)目。關(guān)聯(lián)的項(xiàng)目被分到一起,放入項(xiàng)目集中,生成可用于預(yù)測的規(guī)則。microsoft association 通常用于購物籃分析。對于 association 分析而言,執(zhí)行大量“非重復(fù)計(jì)數(shù)”的關(guān)系或 olap 分析是一個(gè)值得考慮的選擇。microsoft association 算法對算法參數(shù)的選擇很敏感,因此,對于一些小問題,使用 microsoft decision trees 算法進(jìn)行購物籃分析可能效果更佳。 | 
| • | microsoft sequence clustering 將順序分析與在數(shù)據(jù)研究和預(yù)測中使用的群集方法結(jié)合在了一起。順序群集模型對事物發(fā)生次序很敏感。此外,群集算法還考慮到記錄群集中的其他屬性,使您可以開發(fā)關(guān)聯(lián)順序和非順序信息的模型。sequence clustering 算法將被用于執(zhí)行點(diǎn)擊流分析,以便于分析 web 站點(diǎn)的通信流量、識別與特殊產(chǎn)品銷售關(guān)系最為密切的頁面,并預(yù)測接下來要訪問的頁面。 | 
| • | microsoft time series(時(shí)間序列)會創(chuàng)建可用于預(yù)測一個(gè)或多個(gè)連續(xù)變量(如股票價(jià)格)的模型。time series 算法的預(yù)測完全依據(jù)于在模型創(chuàng)建過程中從培訓(xùn)數(shù)據(jù)中推導(dǎo)得出的趨勢。microsoft time series 使用 autoregression trees 技術(shù),非常簡單易用,并可生成精確度極高的模型。在該算法中有一條專門用于時(shí)間序列的統(tǒng)計(jì)分析規(guī)則。大多數(shù)其他數(shù)據(jù)挖掘產(chǎn)品都提供了多項(xiàng)技術(shù),如 arma、arima 和 box-jenkins,統(tǒng)計(jì)師必須在這些技術(shù)中確定模型的最佳技術(shù)選擇。microsoft 選擇了一種方法,既可使廣泛的受眾能夠理解時(shí)間序列,又具備異常精確的結(jié)果。 | 
| • | microsoft neural net 和 decision trees 及 na?ve bayes 一樣,主要用于數(shù)據(jù)研究、分類和預(yù)測。neural net 是一種人工智能技術(shù),該技術(shù)可以利用所有可能的數(shù)據(jù)關(guān)系。因?yàn)樗且环N非常徹底的技術(shù),因此它是三個(gè)分類算法中最慢的算法。 | 
模型的構(gòu)建、培訓(xùn)和測試過程是創(chuàng)建應(yīng)用程序過程中最為困難的一部分。正如下面我們要討論的,實(shí)際開發(fā)應(yīng)用程序是一個(gè)簡單的編程過程。在開始構(gòu)建數(shù)據(jù)挖掘模型之前,您應(yīng)當(dāng)已經(jīng)收集和清理了您的數(shù)據(jù),這些數(shù)據(jù)極有可能位于數(shù)據(jù)倉庫中。sql server 2005 data mining 可以從關(guān)系數(shù)據(jù)庫或 analysis services 多維數(shù)據(jù)中訪問數(shù)據(jù)。
開發(fā)數(shù)據(jù)挖掘模型的最佳人選是同時(shí)具備業(yè)務(wù)和技術(shù)技巧的人員。模型的開發(fā)人員將會從其統(tǒng)計(jì)背景中獲益、了解企業(yè)面臨的關(guān)鍵業(yè)務(wù)問題、對數(shù)據(jù)和關(guān)系產(chǎn)生極大的好奇心,同時(shí)還能夠利用 sql server 2005 工具處理和存儲數(shù)據(jù)。現(xiàn)有數(shù)據(jù)倉庫小組中的成員最有可能遇到這些標(biāo)準(zhǔn)。
作為數(shù)據(jù)挖掘的初學(xué)者,應(yīng)在構(gòu)建原型模型的同時(shí),計(jì)劃花費(fèi)數(shù)周時(shí)間來研究數(shù)據(jù)、工具以及可供選擇的算法。使用一臺您具備數(shù)據(jù)庫管理權(quán)限的開發(fā)服務(wù)器。構(gòu)建模型的最初階段是探索階段:您可能會希望以不同的方法來重新構(gòu)建數(shù)據(jù)和實(shí)驗(yàn)。當(dāng)然,您肯定希望從少量數(shù)據(jù)子集開始,并在開發(fā)愈加清晰的模型設(shè)計(jì)時(shí)擴(kuò)展數(shù)據(jù)集。在原型階段,不要為如何構(gòu)建一個(gè)“可供生產(chǎn)使用”的應(yīng)用程序而擔(dān)心。使用 dts 或執(zhí)行任何所需數(shù)據(jù)處理最為舒適的任何工具。保存一份記錄有必要轉(zhuǎn)換的高級日志,但不要期望您所做的一卻都能成為永久應(yīng)用程序的一部分。
您應(yīng)當(dāng)準(zhǔn)備兩套數(shù)據(jù):一套用于開發(fā)模型,而另一套用于測試模型的精確度,從中選擇適合您業(yè)務(wù)問題最佳模型。在考慮如何劃分?jǐn)?shù)據(jù)子集時(shí),要確保沒有引入任何偏差。例如,從十個(gè)客戶中選擇一個(gè)客戶,或根據(jù)姓氏的第一個(gè)字符區(qū)分,或根據(jù)一些其他任意屬性區(qū)分。
開發(fā)數(shù)據(jù)挖掘模型的過程涉及選擇以下內(nèi)容:
| • | 輸入數(shù)據(jù)集、 | 
| • | 輸入字段、 | 
| • | 數(shù)據(jù)挖掘算法,以及 | 
| • | 該算法在計(jì)算過程中所用到的參數(shù)。 | 
如果不知道哪種類型的算法適合處理您的業(yè)務(wù)問題,請先從“決策樹”或“貝葉斯”入手研究數(shù)據(jù)。如果不知道要包括哪些屬性,就選擇所有屬性。使用相關(guān)性網(wǎng)絡(luò)視圖,從中獲得可幫助您簡化復(fù)雜模型的視圖。
在原型開發(fā)階段,您可能希望構(gòu)建相關(guān)模型,以便評估最佳算法和模型。使用“挖掘精度”圖表評估在預(yù)測中效果最佳的模型。您可能還希望構(gòu)建相關(guān)模型,對相同的數(shù)據(jù)執(zhí)行不同類型的分析。這些模型在作為相關(guān)模型時(shí)的處理速度要比作為獨(dú)立定義模型時(shí)的處理速度快。
在構(gòu)建和測試原型后,便可以構(gòu)建和測試實(shí)際數(shù)據(jù)挖掘模型。在將數(shù)據(jù)輸入數(shù)據(jù)挖掘引擎前,如果需要轉(zhuǎn)換數(shù)據(jù),那么為了要實(shí)現(xiàn)這些操作,應(yīng)當(dāng)開發(fā)可供生產(chǎn)用的操作流程。在某些情況下,可能要選擇從 dts 管道直接植入挖掘模型。如果在少量數(shù)據(jù)的基礎(chǔ)上開發(fā)原型,將需要在整套培訓(xùn)數(shù)據(jù)的基礎(chǔ)上重新評估備選模型。
構(gòu)建數(shù)據(jù)挖掘應(yīng)用程序在 business intelligence development studio 中開發(fā)和研究數(shù)據(jù)挖掘模型可使企業(yè)獲得巨大的價(jià)值。您可以瀏覽模型,了解數(shù)據(jù)與業(yè)務(wù)之間的關(guān)系,并使用該信息促進(jìn)策略決策的制定。但是,其最大的價(jià)值還是來自可以影響公司日常操作的數(shù)據(jù)挖掘應(yīng)用程序:例如,向客戶推薦產(chǎn)品、記錄客戶信用風(fēng)險(xiǎn),或根據(jù)預(yù)測的庫存不足下訂單的數(shù)據(jù)挖掘應(yīng)用程序。要開發(fā)可操作的數(shù)據(jù)挖掘應(yīng)用程序,您需要跳出 business intelligence development studio 的圈子,并用 microsoft visual studio 或您選擇的其他開發(fā)環(huán)境編寫代碼。
大部分企業(yè)客戶都將面向客戶的數(shù)據(jù)挖掘應(yīng)用程序?qū)嵤榛?web 的 win32 應(yīng)用程序,如 asp 頁。數(shù)據(jù)挖掘模型業(yè)已構(gòu)建完畢,而且應(yīng)用程序也可以根據(jù)客戶的選擇或在 web 商務(wù)應(yīng)用程序中輸入的內(nèi)容,為客戶執(zhí)行預(yù)測。這可能是十分簡單的應(yīng)用程序;唯一不尋常的部分是發(fā)布預(yù)測查詢。
數(shù)據(jù)挖掘應(yīng)用程序開發(fā)人員不一定就是開發(fā)數(shù)據(jù)挖掘模型的人員。應(yīng)用程序開發(fā)人員應(yīng)具備一流的開發(fā)技能,而對業(yè)務(wù)或統(tǒng)計(jì)知識的需求則相對較低。
microsoft 的數(shù)據(jù)挖掘技術(shù)大大地簡化了構(gòu)建自動(dòng)化數(shù)據(jù)挖掘應(yīng)用程序的過程。其中共有兩個(gè)步驟:
| • | 開發(fā)數(shù)據(jù)挖掘預(yù)測查詢,其 dmx 語法在“數(shù)據(jù)挖掘”規(guī)范的 ole db 中定義。不需要手工編寫 dmx,用戶只需單擊 business intelligence development studio 編輯器左欄上的“挖掘模型預(yù)測”圖標(biāo)即可。“預(yù)測查詢構(gòu)建器”圖形化工具會幫助您開發(fā)預(yù)測查詢。 | 
| • | 在數(shù)據(jù)挖掘應(yīng)用程序中使用預(yù)測查詢。如果應(yīng)用程序只使用 dmx 便可完成預(yù)測,則項(xiàng)目應(yīng)包括 ado、ado.net 或 adomd.net 等類引用(建議在 beta 1 之后的開發(fā)中使用 adomd.net)。如果您正在構(gòu)建一個(gè)更為復(fù)雜的應(yīng)用程序(例如要顯示用戶挖掘模型查看器,如“決策樹查看器”),將需要包括 microsoft.analysisservices 和 microsoft.analysisservices.viewers 類。 | 
數(shù)據(jù)挖掘過程包括三個(gè)步驟,分別為創(chuàng)建數(shù)據(jù)挖掘模型、培訓(xùn)模型和根據(jù)模型預(yù)測行為,這三個(gè)步驟都可通過簡單、類似 sql 編程語言的 dmx 來實(shí)現(xiàn)。示例語法如下所示;dmx 的完整使用方法可從聯(lián)機(jī)叢書中獲得。
創(chuàng)建數(shù)據(jù)挖掘模型:
create mining model creditrisk
(custid    long key,
gender    text discrete,
income    long continuous,
profession  text discrete,
risk    text discrete predict)
using microsoft_decision_trees培訓(xùn)數(shù)據(jù)模型:
insert into creditrisk
(custid, gender, income, profession, risk)
select customerid, gender, income, profession, risk
from customers根據(jù)數(shù)據(jù)挖掘模型預(yù)測行為:
select newcustomers.customerid, creditrisk.risk,
  predictprobability(creditrisk)
from creditrisk prediction join newcustomers
on creditrisk.gender=newcustomer.gender
and creditrisk.income=newcustomer.income
and creditrisk.profession=newcustomer.profession六、reporting services隨著 microsoft sql server 2005 的發(fā)布,microsoft 在其集成商務(wù)智能平臺中拓展了一個(gè)新的主要組件。即 sql server reporting services,該組件使得人們不管在任何商業(yè)環(huán)境中,都可將適當(dāng)?shù)男畔⑺瓦_(dá)適當(dāng)?shù)娜藛T,從而擴(kuò)展了 microsoft 的商務(wù)智能發(fā)展前景。
reporting services 是一個(gè)基于服務(wù)器的完整平臺,可創(chuàng)建、管理和交付傳統(tǒng)報(bào)告和交互式報(bào)告。它包括您創(chuàng)建、分發(fā)和管理報(bào)告所需的一切工具和信息。同時(shí),產(chǎn)品的標(biāo)準(zhǔn)模塊化設(shè)計(jì)和應(yīng)用程序編程接口 (api) 使軟件開發(fā)人員、數(shù)據(jù)提供商和企業(yè)能夠集成原有系統(tǒng)或第三方應(yīng)用程序中的報(bào)告功能。
reporting services 隨 sql server 2005 一起發(fā)布,其中包括:
| • | 用于創(chuàng)建、管理和查看報(bào)告的一整套工具 
 | 
| • | 用于承載和處理報(bào)告的引擎 
 | 
| • | 可將報(bào)告嵌入到(或?qū)⒔鉀Q方案集成到)不同 it 環(huán)境中的可擴(kuò)展體系結(jié)構(gòu)與開放式接口。 
 | 
毫無疑問,能夠在適當(dāng)?shù)臅r(shí)間將適當(dāng)?shù)男畔⑺瓦_(dá)適當(dāng)?shù)娜藛T具有巨大的價(jià)值。對于許多企業(yè)而言,這是一個(gè)挑戰(zhàn),因?yàn)檫@些需要訪問信息的人員不但具有廣泛的技術(shù)專業(yè)背景,而且還可能分散在整個(gè)傳統(tǒng)組織內(nèi)的不同位置,甚至于組織之外。
reporting services 通過靈活的訂閱和交付機(jī)制簡化了傳統(tǒng)報(bào)告與交互式報(bào)告的創(chuàng)建過程,并可將這些報(bào)告順利地交付給廣泛的人群。它還為處理復(fù)雜苛刻的商業(yè)環(huán)境提供了必要的安全性和可管理性。
reporting services 提供了獨(dú)一無二的屬性組合:
| • | 完整的、基于服務(wù)器的報(bào)告平臺:reporting services 支持從創(chuàng)建報(bào)告到提交報(bào)告和后續(xù)管理的整個(gè)報(bào)告生命周期。 
 | 
| • | 靈活可擴(kuò)展的報(bào)告功能:reporting services 具用可擴(kuò)展的交付選項(xiàng),可同時(shí)支持眾多格式的傳統(tǒng)報(bào)告和交互式報(bào)告。它可通過開放式的 api 和接口輕松集成到任何環(huán)境或解決方案中。 
 | 
| • | 可伸縮性:產(chǎn)品基于 web 的標(biāo)準(zhǔn)化模塊設(shè)計(jì),可輕松擴(kuò)展為支持高數(shù)據(jù)容量的環(huán)境。您能夠創(chuàng)建具有多個(gè)報(bào)告服務(wù)器的報(bào)告服務(wù)器場,訪問同一核心報(bào)告,為數(shù)以千計(jì)的 web 客戶端提供服務(wù)。 
 | 
| • | 與 microsoft 產(chǎn)品和工具的集成:reporting services 隨 sql server 一起發(fā)布,可輕松集成我們所熟悉的 microsoft 工具,如 office 和 sharepoint portal server,無需進(jìn)行編程和自定義設(shè)置。 
 | 
由于 reporting services 是結(jié)合可伸縮、可擴(kuò)展體系結(jié)構(gòu)的單一完整的報(bào)告平臺,因此它可滿足范圍廣泛的報(bào)告需求。
| • | 企業(yè)報(bào)告:企業(yè)可在內(nèi)部報(bào)告和商務(wù)智能應(yīng)用程序中使用 reporting services。許多公司都創(chuàng)建數(shù)據(jù)集市或倉庫來匯總操作數(shù)據(jù)。通過使用 reporting services,公司的 it 員工可以設(shè)計(jì)各種報(bào)告,并將這些報(bào)告通過電子郵件分發(fā),或在公司門戶上發(fā)布,將這些報(bào)告部署給的整個(gè)企業(yè)中的個(gè)人。reporting service 作為集成在 microsoft bi 平臺中的一項(xiàng)綜合報(bào)告解決方案,為企業(yè)提供了巨大的價(jià)值。 
 | 
| • | 嵌入式報(bào)告:獨(dú)立軟件供應(yīng)商 (isv) 可以使用 reporting services 將報(bào)告預(yù)先定義為打包應(yīng)用程序(隨 microsoft sql server 同時(shí)運(yùn)行的)的一部分。客戶的 it 組織可按原樣訪問這些報(bào)告,或使用 reporting services 自定義報(bào)告,或?yàn)樘囟I(yè)務(wù)需求創(chuàng)建新報(bào)告。reporting services 為獨(dú)立軟件供應(yīng)商 (isv) 提供了一種在應(yīng)用程序中嵌入靈活的交互式報(bào)告的簡單方法。 
 | 
| • | 為合作伙伴/客戶設(shè)計(jì)的 web 報(bào)告:組織可以將傳統(tǒng)報(bào)告或交互式 web 報(bào)告部署為通過外部網(wǎng)絡(luò)與客戶或合作伙伴交互。reporting services 在提供個(gè)性化和互動(dòng)性的同時(shí),還使報(bào)告客戶擺脫了復(fù)雜的底層數(shù)據(jù)源。 
 | 
reporting services 將集中式托管報(bào)告系統(tǒng)的優(yōu)點(diǎn)與桌面及基于 web 應(yīng)用程序的靈活性和按需選擇性集于一身。reporting services 是一個(gè)完整的報(bào)告平臺,支持從報(bào)告創(chuàng)建到報(bào)告部署的整個(gè)報(bào)告生命周期。
制作報(bào)告
reporting services 包括創(chuàng)建傳統(tǒng)報(bào)告或交互式報(bào)告所需的一切工具及技術(shù),其中包括具有報(bào)告設(shè)計(jì)向?qū)Чδ艿膱D形化報(bào)告設(shè)計(jì)器工具。
| 報(bào)告制作功能 | 詳細(xì)信息 | 
| 受到廣泛支持的數(shù)據(jù)源 
 | microsoft sql server microsoft analysis services 所有兼容 ole db 的數(shù)據(jù)源 所有兼容 odbc 的數(shù)據(jù)源 
 | 
| 靈活的制作工具 
 | 報(bào)告設(shè)計(jì)器(使用 visual studio 2005) 基于 xml 的報(bào)告定義語言 (rdl) 生成 rdl 的第三方工具 
 | 
| 靈活的報(bào)告格式 
 | 自由格式 表格 矩陣 圖表 使用運(yùn)行時(shí)篩選的參數(shù)化報(bào)告 排序和分組 演練 鏈接的報(bào)告 
 | 
| 模塊化報(bào)告執(zhí)行 
 | 轉(zhuǎn)換是從查詢流程中分離出來的一個(gè)流程;同一份報(bào)告可能轉(zhuǎn)換為不同的格式。 執(zhí)行可按計(jì)劃執(zhí)行,也可以按需執(zhí)行。 
 | 
reporting services 包括基于 web 的工具,可用于管理報(bào)告和報(bào)告服務(wù)器 web 應(yīng)用程序。管理員可使用此界面為報(bào)告定義基于角色的安全性、編排報(bào)告執(zhí)行和提交,以及跟蹤報(bào)告歷史。或者,企業(yè)或 isv 可以使用 reporting services web services api 編寫自定的管理工具。
由于報(bào)告定義、文件夾和資源都存儲在 sql server 數(shù)據(jù)庫中,因此,您可以使用其他工具(如 sql server management studio)管理元數(shù)據(jù),或使用那些充分采納已發(fā)布 api 的第三方應(yīng)用程序。
reporting services 實(shí)施了一個(gè)靈活、基于角色的安全模型,用來保護(hù)報(bào)告和報(bào)告資源。這一功能可根據(jù)各種不同的安全需求量身定做。該產(chǎn)品包括根據(jù)需要集成其他安全模型的可擴(kuò)展接口。
| 報(bào)告管理功能 | 詳細(xì)信息 | ||||||
| 報(bào)告元數(shù)據(jù) 
 | 
 | ||||||
| 數(shù)據(jù)源管理 
 | 
 | ||||||
| 參數(shù)管理 
 | 
 | ||||||
| 報(bào)告編排 
 | 集成 sql server 代理 
 | ||||||
| 執(zhí)行屬性 
 | 實(shí)時(shí)、緩存或快照。reporting services 快照是報(bào)告數(shù)據(jù)集(運(yùn)行報(bào)告快照時(shí)報(bào)告的源查詢結(jié)果)的存儲副本。 
 | ||||||
| 報(bào)告執(zhí)行的歷史 
 | 被保留下來,以供需要時(shí)再次使用的快照分類列表 
 | ||||||
| 報(bào)告安全性 
 | 
 | ||||||
| 報(bào)告服務(wù)器 web 應(yīng)用程序 
 | 基于 web 的管理工具,這些工具可用于: 
 
 | ||||||
| 靈活的管理 api 
 | web 服務(wù) api 
 | 
您可以將報(bào)告提交到門戶、將其以電子郵件的形式發(fā)送給用戶,或讓用戶使用基于 web 的報(bào)告服務(wù)器從文件夾層級中訪問報(bào)告。導(dǎo)航、搜索和訂閱功能可幫助用戶根據(jù)其需要定位和運(yùn)行報(bào)告。個(gè)性化的訂閱功能可讓用戶自行選擇自己喜歡的轉(zhuǎn)換格式。
| 報(bào)告提交功能 | 詳細(xì)信息 | ||||||||||||
| 報(bào)告轉(zhuǎn)換選項(xiàng)的范圍 
 | 
 | ||||||||||||
| 靈活的提交選項(xiàng) 
 | 
 | 
七、總結(jié)
microsoft sql server 2005 是一個(gè)完整的商務(wù)智能平臺,它所提供的基礎(chǔ)結(jié)構(gòu)和服務(wù)器組件可用于構(gòu)建:
| • | 易于查詢且維護(hù)成本較低的大型復(fù)雜數(shù)據(jù)倉庫; 
 | 
| • | 較小規(guī)模的企業(yè)或大型企業(yè)中的部門可以輕松構(gòu)建和管理小型報(bào)告和分析系統(tǒng); 
 | 
| • | 向操作用戶交付分析數(shù)據(jù)的低延遲系統(tǒng); 
 | 
| • | 閉環(huán)分析和數(shù)據(jù)挖掘系統(tǒng);以及 
 | 
| • | 擴(kuò)展商務(wù)智能的嵌入式系統(tǒng)。 
 | 
為用戶所熟悉的工具(sql server 關(guān)系數(shù)據(jù)庫、dts、reporting services 和 analysis services olap 以及數(shù)據(jù)挖掘)也都得到了極大的改進(jìn)。新增功能(如 business intelligence development studio 和 sql server management studio)進(jìn)一步擴(kuò)展了 microsoft bi 平臺。每個(gè)工具都具有創(chuàng)新性,其設(shè)計(jì)都可令您事半功倍:用比以前更少的硬件、規(guī)模更小的團(tuán)隊(duì)更快更好地構(gòu)建、部署和管理重要的商務(wù)智能應(yīng)用程序。
  附錄 a:代碼示例遞歸查詢示例use adventureworks
go
/*
this query brings back a list of managers, and the count of employees
   who report to them directly or indirectly).
*/
with reps_cte (emp, mgr, recursion_level)
as
(
/*get the initial list of employees.*/
select employeeid, managerid, 0
from employee as e
/*get a union of the anchor and the recursive term.*/
union all
select reps_cte.emp, e.managerid, recursion_level+1
from employee e, reps_cte    -- join with employee
where reps_cte.mgr=e.employeeid  -- this employee's manager
and recursion_level<=20    -- up to 20 levels of mgmt
)    -- end of common table expression
/*now query the recursive common table expression reps_cte*/
select r.mgr, e.[lastname]+', ' + e.[firstname]
  as mgrname, count(*) cntemployees
from reps_cte r inner join [employee] e on (r.mgr=e.employeeid)
group by mgr, e.[lastname]+', ' + e.[firstname]
having count(*) > 1      -- means they manage at least one person
order by 3 desc      -- sort by count of employees
go
新聞熱點(diǎn)
疑難解答
圖片精選