內容簡介
本書以“數據—知識—服務”為主線,以數據處理、分析和服務的代表性方法與技術為重點。數據處理篇介紹結構化、非結構化和半結構化數據的存儲、查詢和最佳化方法;數據分析篇介紹數據挖掘、知識發現和數據倉庫的經典算法;數據服務篇介紹Web服務和數據密集型計算技術。本書既考慮了數據工程技術在基礎、經典和前沿三方面內容的系統性,也考慮了數據工程學科在數據、知識和服務三方面內容的完整性,介紹每部分內容的代表性技術;在每個知識點的闡述中,注重思路和技術框架的介紹、技術內涵和理念的傳遞,旨在為讀者進一步學習和研究與數據相關的學科的方法和技術提供一些參考。
本書內容的學習,需要讀者具有電腦程式設計和關係資料庫查詢處理的基礎知識,以及使用資料庫管理系統的基本能力,可作為資料庫相關學科研究和開發人員的參考書,也可作為計算機科學與技術學科各專業研究生、高年級本科生相關課程的教材。
前言
隨著數據規模的不斷增大、數據採集手段的日益多樣化,數據管理技術迅速發展,從傳統的關係型數據到文本數據、半結構化數據和Web數據,從傳統的關係資料庫管理到面向大數據的分散式檔案系統和數據中心,從經典的查詢處理和最佳化到數據分析和知識發現,從數據集成到套用集成和服務計算,從集中式架構到分散式並行模型和數據密集型計算等。
人們從不同的角度來描述資料庫這一概念,有不同的定義。例如,資料庫是若干記錄的集合;為解決特定的任務,以一定的組織方式存儲在一起的相關的數據的集合等。然而,隨著數據管理技術的發展,人們對資料庫的認識和理解也不斷深入。從學科領域的角度看,資料庫學科探討工程化和套用驅動背景下的數據管理理論、方法和支撐技術,是包括建模、管理和分析等方面的方法理念和支撐技術的平台和載體。因此,資料庫逐漸向數據科學這一新興學科演化發展,其研究逐漸從數據處理這一基礎領域擴展到了數據分析和數據服務。
數據工程,是指面向不同計算平台和套用環境,使用信息系統設計、開發和評價的工程化技術和方法。以工程化作為基本出發點的數據處理、分析和套用方法與技術,是計算機科學與技術學科的重要內容、核心與趨勢,具有廣泛的套用和良好的前景。目前,數據工程已成為計算機相關學科中研究、開發和教學的基本理念和必不可少的內容。隨著數據在不同套用中地位的逐漸提升、數據格式的日益多樣化,數據工程領域的前沿層出不窮、內涵日益豐富、熱點不斷演變,“數據(Data)—知識(Knowledge)—服務(Service)”是目前數據科學與工程領域研究和套用的趨勢和主線,基於數據的網路信息服務已成為目前信息技術的核心和未來發展的方向;大數據是目前國內外各個領域所關注的焦點,數據工程是其中的重點問題。因此,從工程化的角度理解數據科學,數據工程既包括數據處理技術,也包括數據分析技術和數據服務技術;既包括查詢處理和最佳化、事務和工作流管理和資料庫架構等基礎內容,也包括數據挖掘與知識發現、時空數據、元數據和社會數據分析等經典問題,另外還包括機率數據、雲計算和大數據管理等前沿課題。
一方面,技術發展迅速、涉及面較廣,使得數據處理、數據分析和數據服務的學習通常可能既涉及數據存儲和查詢的傳統技術,又涉及數據挖掘和知識發現的經典技術,以及面向網路信息服務的新技術。另一方面,不同層次的讀者,對數據工程相關知識的需求也有很大差異。數據工程本身的特點決定了它並不存在通用的學習模式、面面俱到的文獻和一成不變的學習方法;技術內涵和方法理念,是希望通過學習獲得的最有價值的內容。因此,綜合考慮數據工程技術內容和學科領域內涵的完整性和系統性,本書以“數據—知識—服務”為主線,以數據處理、分析和服務的代表性方法與技術為重點,包括關係資料庫的設計與查詢最佳化,信息檢索與Web搜尋引擎、XML數據管理、數據挖掘與數據倉庫、Web服務、數據密集型計算等;在每個知識點的闡述中,注重思路和技術框架的介紹,並不陷入技術的細節。通過本書內容的學習,使讀者對數據處理、數據分析和數據服務的工程化方法,有較為系統和完整的理解。以這些內容作為數據工程技術的代表,旨在傳遞概念、方法和技術內涵與理念,為讀者進一步學習和研究面向數據科學的方法和技術提供一些參考。
本書由數據處理篇、數據分析篇和數據服務篇三部分構成。
數據處理篇的主要內容包括第1~3章。第1章介紹關係資料庫查詢最佳化的常用技術,主要包括資料庫設計與連線操作,基於索引、關係模式反規範化、物化視圖和查詢重寫的最佳化策略。第2章介紹信息檢索,主要包括信息檢索模型、文本信息檢索、Web搜尋引擎關鍵技術以及信息檢索評價。第3章介紹XML數據管理,主要包括XML語法、數據模型、解析、存儲、索引和查詢處理技術以及XML資料庫性能評測。
數據分析篇的主要內容包括第4、5章。第4章介紹數據挖掘,主要包括數據挖掘和知識發現的概念,數據清理、數據分類與聚類分析技術以及數據挖掘算法評價。第5章介紹數據倉庫,主要包括數據倉庫的概念、架構和主要數據分析操作。
數據服務篇主要包括第6、7章。第6章介紹Web服務的基本概念、架構、標準協定以及Web服務質量、Web服務發現與組合和Web服務安全的支撐技術。第7章介紹數據密集型計算,包括數據密集型計算的基本概念、數據密集型計算的支撐技術、支持海量數據管理的計算平台、海量數據處理和海量數據分析技術。
在成書過程中得到國家自然科學基金項目、教育部博士點基金專項課題、雲南省中青年學術與技術帶頭人後備人才培養計畫、雲南大學計算機科學與技術國家級特色專業建設項目、雲南大學研究生精品課程建設項目的資助。在本書編著過程中,華東師範大學周傲英教授、雲南大學劉惟一教授和張學傑教授,對本書的內容、選材和出版提出了許多中肯的意見,並給予了大力的支持。此外,雲南大學信息學院和研究生院以及雲南大學數據與知識工程課題組的研究生,給予了很多有益的幫助,在此一併表示衷心的感謝。由於作者水平有限,對方法和技術的理解及觀點可能不夠全面,難免有錯誤和疏漏之處,懇請各位專家和讀者批評指正。
作者
2013年6月
目錄
數據處理篇
第1章關係資料庫查詢最佳化3
1.1資料庫設計4
1.1.1資料庫設計概述4
1.1.2ER模型5
1.1.3關係模型13
1.1.4從ER模型到關係模型19
1.1.5規範化簡介24
1.2面向複雜套用的數據查詢26
1.2.1連線查詢、嵌套查詢和集合查詢26
1.2.2視圖、存儲過程和觸發器29
1.3查詢最佳化33
1.3.1基於索引的查詢最佳化33
1.3.2基於資料庫模式反規範化和視圖物化的查詢最佳化52
1.3.3基於數據查詢語句重寫的查詢最佳化58
第2章信息檢索65
2.1信息檢索概述66
2.1.1信息檢索的概念和基本原理66
2.1.2信息檢索的相關學科和研究內容68
2.1.3信息檢索的發展史70
2.2信息檢索模型71
2.2.1信息檢索系統的形式表示71
2.2.2布爾模型72
2.2.3向量空間模型73
2.2.4經典機率模型76
2.3文本信息檢索78
2.3.1辭彙的頻率與數量分布規律79
2.3.2文本信息預處理80
2.3.3文本信息的倒排索引81
2.3.4布爾檢索85
2.3.5相關反饋和提問式擴展86
2.3.6Lucene:一個開源的全文信息檢索引擎88
2.4Web信息檢索89
2.4.1Web信息搜尋的概念90
2.4.2Web搜尋引擎的工作原理91
2.4.3Web搜尋引擎的關鍵技術92
2.5信息檢索評價指標98
2.5.1信息檢索評價的基本步驟99
2.5.2單個查詢的評價指標100
2.5.3多個查詢的評價指標102
2.5.4面向用戶的評價指標102
2.5.5搜尋引擎性能評價指標103
2.5.6TREC評測104
第3章XML數據管理107
3.1XML語法107
3.1.1XML簡介107
3.1.2XML文檔結構109
3.1.3XPath和XQuery查詢語言118
3.2XML數據模型125
3.2.1半結構化數據125
3.2.2XML數據模型127
3.3XML數據處理132
3.3.1XML解析132
3.3.2XML資料庫系統概述135
3.3.3XML存儲137
3.3.4XML數據索引146
3.3.5XML查詢處理152
3.4XML資料庫性能評測156
3.4.1性能基準156
3.4.2評測數據集158數據分析篇
第4章數據挖掘163
4.1數據挖掘概述164
4.1.1數據挖掘的內涵和任務164
4.1.2數據挖掘的過程166
4.2數據清理169
4.2.1數據質量管理的基本思想169
4.2.2數據清理流程171
4.2.3數據清理方法172
4.3數據分析178
4.3.1數據分類分析178
4.3.2數據聚類分析189
4.3.3算法評價201
第5章數據倉庫205
5.1數據倉庫概述206
5.1.1數據倉庫的基本概念206
5.1.2從操作型系統到信息型系統207
5.2數據倉庫體系結構208
5.2.1一般的兩層體系結構208
5.2.2獨立數據集市的數據倉庫體系結構209
5.2.3依賴數據集市和操作型數據存儲體系結構
——三層結構210
5.2.4邏輯數據集市和實時數據倉庫體系結構211
5.3在線上分析處理213
5.3.1OLAP的概念和基本操作213
5.3.2OLAP的體系結構217數據服務篇
第6章Web服務231
6.1Web服務的基本概念232
6.1.1企業套用集成與電子商務232
6.1.2Web服務技術架構235
6.2Web服務的標準協定241
6.2.1WSDL241
6.2.2SOAP246
6.2.3UDDI254
6.3Web服務質量263
6.3.1Web服務質量屬性264
6.3.2Web服務質量度量266
6.3.3Web服務質量保證概述272
6.4Web服務發現與組合274
6.4.1基於類型的Web服務發現與組合274
6.4.2基於QoS的Web服務發現與組合276
6.4.3基於工作流的Web服務發現與組合277
6.4.4基於AI規劃的Web服務發現與組合282
6.4.5Web服務組合標準規範284
6.5Web服務安全289
6.5.1Web服務安全問題289
6.5.2Web服務安全標準和模型291
6.5.3Web服務安全支撐技術303
第7章數據密集型計算307
7.1數據密集型計算的基本概念308
7.1.1背景與挑戰308
7.1.2數據密集型計算的含義312
7.2數據密集型計算的支撐技術312
7.2.1Google數據密集型計算技術312
7.2.2Yahoo!數據密集型計算技術323
7.3海量數據管理332
7.3.1支持海量數據管理的計算平台333
7.3.2海量數據處理337
7.3.3海量數據分析346
參考文獻365