OLAP,OLAP vs. OLTP and OLAP example (Apr 23, 1998)
BBHuang's 中正資管時期作業-決策支援系統
指導教授:洪新原博士

【Subjectives】

  1. Definition of OLAP
  2. Difference between OLAP & OLTP(On-Line-Transaction Processing)
  3. OLAP Example

一、 OLAP 的定義

Visit:

  1. Data Warehousing and OLAP, http://dss.cba.uni.edu/dss/dwolap.html
  2. OLAP AND OLAP Server Definitions, http://dss.cba.uni.edu/glossary/olaptrms.html

  線上分析處理(On-Line Analytical Processing, OLAP)為一用以操作儲存在靜態資料倉儲內廣泛資源的軟體技術。其可透過快速的、一致的、交談式的界面對同一資料提供各種不同的呈現方式,供不同層面的使用者如分析師、經理及高階主管等使用,使其具備透析資料反應出來的資訊的能力。OLAP有三項要件:1.動態多維度分析。2.可執行複雜計算。3.有時間導向處理能力。其所支援的分析及探索活動包括下列各點:

  1. 經由階層式的維度及資料組成執行計算及模組化。
  2. 定期的趨勢分析。
  3. 片斷分析螢幕顯示資料之其中一部份。
  4. 向下挖掘深一層資訊。
  5. 查詢詳細資料。
  6. 於視覺範圍內轉換於另一維度以作比較。

  OLAP可操作於主從架構下的多使用者環境,且無論資料庫的大小及複雜度如何,均能提供一致的快速反應。透過OLAP伺服器,OLAP可利用過去的歷資料以及預測資料,提供各式各樣的假設性資料模式("what-if" data model),並可透過比較的方式,結合每個人的個人觀點,幫助使用者綜合企業資訊加以分析。

二、 OLAP vs. OLTP

Visit:

  1. OLAP Council White Paper , http://www.olapcouncil.org/ research/whtpaply.htm

(一)、 OLTP

  線上交易處理(On-Line Transaction Processing, OLTP)的特色是能夠處理大量的例行性交易資料,並經過應用程式的特定處理將資訊存放於資料庫,可以被即時地存取增刪。對管理活動層級而言,其所支援的對象屬於最基層的一般事務性與作業性交易。

  線上交易所搜集到的歷史資料,可定期地以批次作業方式彙製成週期性報表如日報、週報、旬報、月報、季報及年報等,供中階或高階主管參考。一般而言,製作週期性報表常須掃瞄整個資料庫,消耗大量主機資源,若於線上系統執行這一類作業,對日常作業系統的影響甚鉅,故往往利用夜間或線上交易負荷較輕的時段執行。週期性彙總報表可以提供"who?""what?"等戰術性的資訊,例如:「上個月某產品的銷售量如何?

(二)、 OLAP OLTP 相異之處

  OLTP所搜集到的資料可以整合成資料倉儲(Data Warehouse)。資料倉儲通常使用關連式資料庫(Relational Database, RDB)OLAP則將「加工」後的資料組合成多維度的面向以提供策略性資訊的快速使用及分析。

  1. 資料與資訊的差異:OLTP只處理線上交易資料,資料倉儲將之儲存並加以管理。OLAP則將資料倉儲之料庫轉換成策略性資訊。隨著使用OLAP經驗的累積,決策者除了擁有使用資料的能力之外,同時會累積使用資訊甚或使用知識的能力。對OLAP而言,歷史資料(Historical data)係用以推斷未來,而組合資料(aggregate data)係用以估計所輸入的資料,除此之外,OLAP亦可執行資源配置及趨勢分析等複雜計算。

  2. 功能的差異:除了可以回答"who?""what?"問題之外,並可提供問題與假設("what if?" and "why?")的解答,資料倉儲則只能回答前兩者。OLAP可以提供未來行動的決策參考,為此,其所需的計算遠比單純的加總來得複雜。例如"若原料成本上漲5%而運費下降2%,對該項產品會有何種影響?售價應該如何調整才能適當反應成本的變化?"此外,可提供即時(Just-in-time, JIT)資訊為OLAP的另一項特點。

  3. 評量標準的差異:通常OLTP係以搜集及管理資料的能力來評量其好壞,而OLAP則以自原始資料創造資訊的能力來評量。

三、 OLAP Example

Visit:

  1. OLAP Databases tutorial, http://perso.wanadoo.fr/bernard.lupin/english/index.htm

  以○○汽車公司的銷售狀況為例,建立OLAP資料庫有五個階段(步驟)

  1. 第一階段:建立一個二維的關聯式銷售狀況表格(典型關聯式資料庫)如表一。

    表一:○○汽車公司銷售狀況

      表中車款及分公司兩個欄位僅列出相對的鍵值。事實上車款可能是另一個表格,其資料欄位可能還包括汽缸容量、顏色、馬力、零件規格等資料;分公司亦可能為另一個表格,其資料可能還包括地址、電話、員工人數等資料。在此吾人只關心每一車款在每一家分公司的銷售情形,因此不須列出所有資料。此外,為節省篇輻,表一只列出全部資料的一小部分。

      這是一個關聯式的表格。若吾人欲研究某一分公司的營業狀況,可從此表選取相對應的"分公司"鍵值,但是如果接下來吾人欲查詢一月份總銷售量,則必須重新選取表格。另外我們還有可能以其他的準則查詢,例如某一款車或是某一款車的某一種顏色的銷售情形等。由於資料量龐大,直接利用此表來查詢我們想知道的訊息可能需花費很多的時間等待。

  2. 第二階段:建立一個銷售數量的三維立體模型。

      OLAP對於表中的各欄位均有一專業術語。在表一中,不同月份、不同車款以及不同的分公司有各自的銷售數量。這三個主軸稱為維度(Dimemsions),而銷售數量以及稅前營利則稱為計量(Measures)。雖然計量值雖著維度不同而有各種不同的值,但必須維持使用同一個計量單位。

      由表一資料架構出來的OLAP模型即具有多維度的特性,所幸此例只有三個維度,因此尚可於平面的螢幕上以立體圖形來表示如圖一。


    圖一:○○汽車公司銷售狀況圖

      每一個橫切面(兩個維度)的計量值總和代表另一維度的總和。

  3. 第三階段:時間維度的分層。

      在此例中,關於時間的維度吾人係以月為單位,事實上亦可將之細分為以日為單位、以固定週期為單位以及以年為單位。必須注意的是,若將時間切割得愈細,需要事先的計算也愈多,需要的資料庫空間也愈大。若以此細分,則在時間這項維度上,我們有四個階層的資料,彼此可以串連。除了時間維度之外,其他維度亦可細分為階層結構,例如我們可以把分公司再組合成北部、中部、南部以及東部分公司等等。

      將維度定義層級化必須注意一個限制,那就是在層級中的每一個位置(Position)只能有一個唯一的母體(Parent)。對計量值而言,在同一維度不同層級中的值,為其次一層級(Child)的加總。OLAP係對每一個層級的計量值事先計算好,並放在OLAP資料庫中供使用者簡單而快速地查詢。

  4. 第四階段:動態計算

      表一列出兩個計量值,吾人可由此二計量值,衍生(計算)出其他不儲存於OLAP資料庫中的計量值,這些計量值稱為公式計量值(Formulas)。這些公式計量值得視使用者的需要而動態地計算,但從使用者的觀點來看,計量值與公式計量值並沒有差異。用以計算的公式可以是固定的,例如,稅前營利乘以稅率即等於應納稅額。也可以是變動的,例如每一年、每一款汽車的稅率不盡相同,則必須另外建立一稅率對照表以供計算應納稅款。

  5. 第五階段:挑選最佳車種

  根據以上討論,管理者可以對各分公司的營業情況瞭若指掌,然而如果可以知道究竟那一款的汽車表現得最好則對公司未來的營運更有幫助。經由OLAP的分析,管理者可以使安全庫存減至最低,而不會造成庫存不足或是過剩。

  在此例中,吾人可以另外再加上顏色、汽缸大小、配備以及客戶特質(如性別、年齡、職業、年收入)等新的維度於OLAP資料庫中加以分析,以求得表現最好的市場區隔,然後調整營運方針以創造最大利益。