- 分布式數據庫系統:大數據時代新型數據庫技術(第3版)
- 于戈 申德榮等編著
- 4177字
- 2023-08-28 19:21:21
PREFACE
前言
分布式數據庫系統興起于20世紀70年代中期,推動其發展的動力主要來自兩方面:一是大規模應用的需求,二是硬件及網絡環境的發展。在應用上,全國甚至全球范圍內的航空/鐵路/旅游訂票系統、銀行通存通兌系統、水陸空聯運系統、跨國公司管理系統、連鎖配送管理系統等,都涉及地理上分布的企業或機構的局部業務管理和與整個系統有關的全局業務管理,采用傳統的集中式數據庫管理系統已無法滿足這種分布式應用的需求。在硬件及網絡環境上,計算機的功能越發強大,廣域公用數據網日趨成熟,局域網也在迅速發展。在上述兩方面的推動下,人們迫切期望符合現實需要的、能處理分散地域的、具備數據庫系統特點的新型數據庫系統的出現。
從1970年開始,各個發達國家紛紛投巨資支持分布式數據庫系統的研究和開發計劃,歷時近十年,獲得多個劃時代的研究成果。典型的原型系統有美國國防部委托CCA公司設計和研制的SDD-1分布式數據庫系統、美國加利福尼亞大學伯克利分校研制的分布式INGRES系統、IBM圣何塞實驗室研制的System R*分布式數據庫系統、德國斯圖加特大學研制的POREL分布式數據庫系統、法國SIRIUS資助計劃產生的若干原型系統(如SIRIUS-DELTA、POLYPHEME)等。隨后,商品化的數據庫系統Oracle、Sybase、DB2、Informix、INGRES等都從分布式數據庫系統研究中吸取了許多重要的概念、方法和技術,在相當大的程度上實現了分布式數據管理功能。在分布式數據庫系統的商品化進程中,隨著研究的深入和應用的普及,更由于分布式數據庫管理系統本身的高復雜性,研究者們提出了更簡潔、更靈活的實現技術來滿足分布式數據處理的要求。目前,市場上的數據庫產品如Oracle、Sybase、DB2、SQL Server、Informix都支持異構數據庫系統的訪問和集成功能。它們都采用基于組件和中間件的松散耦合型事務管理機制來實現分布式數據的管理,具有最終一致性、高靈活性和可擴展性。
隨著Internet和Web的蓬勃發展,Web環境下的分布式系統已成為當前的主流應用,如電子商務系統、Web搜索系統、互聯網+政務系統等。接著,隨著物聯網和云計算技術的發展,我們進入萬物互聯時代,實現了智能設備與信息的互聯互通,如醫療設備、智能手機、智能汽車等,并提供了許多惠民服務,如智慧交通、智慧醫療、基于手機的各類服務等。當前,進入了大數據時代,數據無所不在,如Web數據、移動數據、社交網絡數據、電子商務數據、企業數據、科學數據等,各行各業都期望得益于大數據中蘊含的有價值的知識。為此,支持大數據管理和分析的大數據技術迅猛發展,如大數據存儲模型、MapReduce與Spark分布式處理架構、改進的分布式事務協議、結合MVCC的并發控制技術以及相應的副本管理技術等,并出現了許多類型的大數據庫系統,主要包括NoSQL大數據庫系統、面向OLTP的大數據庫系統、HTAP混合的大數據庫系統、云原生的大數據庫系統以及多存儲系統融合的大數據存儲系統等。而支持大數據管理的基礎理論和技術,是對經典分布式數據庫理論和技術的擴展,旨在滿足大數據處理的實時性、高性能和可擴展性需求。
近年來,區塊鏈技術和深度學習技術的興起為分布式數據庫技術的發展增添了新的動力。區塊鏈被認為是一種分布式數據庫,具有去中心化、防篡改、分布共識、可溯源和最終一致性等特點,為分布式可信數據管理提供支持。目前已有許多相關研究成果,主要包括區塊鏈數據的分布存儲管理、結合Merkle樹的可信查詢、支持事務的共識算法、鏈上鏈下結合的可信數據管理等。深度學習等人工智能技術已初步被應用于大數據管理中,例如自適應數據分布存儲、索引學習、查詢優化、數據庫系統調優等,并取得了良好的效果。
作者多年來在國家自然科學基金、國家重點研發計劃、國家973計劃、國家863計劃等課題的支持下,以分布式查詢、分布式事務處理、數據庫集成、大數據存儲與管理、大數據挖掘與分析為應用背景,針對分布環境下的數據管理進行深入研究。同時,作者一直承擔東北大學計算機專業碩士研究生的分布式數據庫系統、大數據管理與分析、數據科學原理與實踐等課程和計算機專業本科生的數據庫系統概論、數據庫系統實現、數據科學導論、區塊鏈技術與應用等課程的教學工作。本書正是基于以上工作而撰寫的。
本書第一部分為基礎篇(第1~10章),重點介紹經典分布式數據庫系統的基本理論和關鍵技術、當前流行的商品化數據庫系統的分布式數據管理機制以及大數據庫管理的關鍵技術和流行的大數據庫系統。第二部分為擴展篇(第11~13章),介紹當下流行的區塊鏈分布式數據管理技術、AI賦能的數據管理技術以及分布式數據庫系統發展與前瞻。
全書共13章,包括分布式數據庫系統概論、分布式數據庫系統的體系結構、分布式數據庫的設計、分布式數據存儲、分布式查詢處理與優化、查詢存取優化、分布式事務管理、分布式恢復管理、分布式并發控制、數據復制與一致性、區塊鏈分布式數據管理、AI賦能的數據管理,以及分布式數據庫系統發展與前瞻。
第1章主要介紹數據庫基本知識、分布式數據庫的概念及特性,以及分布式數據庫系統的作用和特點。之后,概述大數據庫概念和大數據管理,主要包括大數據的類型、特點、處理過程、管理新模式和大數據庫關鍵技術。
第2章主要介紹分布式數據庫系統的體系結構,包括分布式數據庫系統的物理結構、邏輯結構、模式結構和軟件組件結構,闡述典型的分布式數據庫集成系統的異同點,給出分布式數據庫系統的分類和Oracle系統的體系結構。之后,介紹大數據庫系統的典型體系結構和三種大數據庫系統(HBase、Spanner、OceanBase)的體系結構。
第3章主要介紹分布式數據庫設計方法,包括分片定義、分片設計、分配設計以及數據復制技術,具體包括水平分片、垂直分片和混合分片的設計,以及Oracle數據庫的數據分布設計。之后,介紹支持大數據庫管理的大數據模型、數據分區策略以及三種大數據庫系統(HBase、Spanner、OceanBase)的數據分布設計案例。
第4章主要介紹分布式數據存儲技術,包括分布式數據存儲類型、分布式文件存儲技術、分布式對象存儲技術、分布式索引結構和分布式緩存技術。之后,介紹Oracle數據庫以及三種大數據庫系統(HBase、Spanner、OceanBase)的分布存儲案例。
第5章主要介紹分布式查詢處理與優化技術,包括查詢優化的基本概念、查詢處理與優化過程、查詢分解、數據局部化、片段查詢優化方法以及Oracle數據庫的查詢計劃案例。之后,介紹大數據庫的查詢處理與優化策略以及三種大數據庫系統(HBase、Spanner、OceanBase)的查詢處理與優化案例。
第6章主要介紹分布式查詢的存取優化技術,包括存取優化的基本概念、存取優化的代價模型、典型的半連接優化技術、枚舉法優化技術,以及幾種典型的集中式查詢優化算法、分布式查詢優化算法和Oracle數據庫的存取優化技術。之后,介紹大數據管理的存取優化技術和三種大數據庫系統(HBase、Spanner、OceanBase)的查詢存取優化案例。
第7章主要介紹分布式事務管理技術,包括分布式事務的概念、分布式事務的實現模型、分布式事務執行的控制模型、分布式事務管理的實現模型、分布式事務提交協議以及Oracle數據庫的事務管理技術。之后,介紹大數據庫的事務管理理論、擴展的事務模型、實現方法以及三種大數據庫系統(HBase、Spanner、OceanBase)的事務管理案例。
第8章主要介紹分布式恢復管理技術,包括分布式數據庫系統中的故障類型、集中式數據庫的故障恢復方法、分布式數據庫的恢復方法、分布式數據庫的可靠性協議以及Oracle數據庫的故障恢復技術。之后,介紹大數據庫系統中的恢復管理問題、故障類型、故障檢測技術、容錯技術以及三種大數據庫系統(HBase、Spanner、OceanBase)的恢復管理案例。
第9章主要介紹分布式并發控制技術,包括分布式并發控制的概念及理論基礎、基于鎖的并發控制方法、基于時間戳的并發控制算法、樂觀的并發控制算法、分布式死鎖管理以及Oracle數據庫的并發控制技術。之后,介紹支持大數據并發控制的擴展技術和三種大數據庫系統(HBase、Spanner、OceanBase)的分布式并發控制案例。
第10章主要介紹分布式數據庫的數據復制與一致性技術,包括復制策略、復制協議、一致性協議以及Oracle數據庫的復制技術。之后,結合大數據庫一致性協議介紹大數據庫系統所采用的副本一致性實現策略以及三種大數據庫系統(HBase、Spanner、OceanBase)的數據復制與一致性管理案例。
第11章主要介紹區塊鏈分布式數據管理技術,包括區塊鏈的相關概念及其與傳統分布式數據庫的異同點。之后,從分布式數據庫的角度介紹區塊鏈體系架構、數據結構、數據存儲、數據管理和事務管理。
第12章主要介紹AI賦能的數據管理新技術,包括數據存儲問題中的數據分區與索引構建的學習型方法、查詢優化過程中基于人工智能的代價模型、基數估計和連接優化技術,以及AI賦能的負載管理、負載預測、配置參數調優方法和AI賦能的自治數據庫的發展現狀。
第13章主要介紹分布式數據系統的發展與前瞻,結合具體案例介紹云原生數據庫系統和HTAP數據庫系統,主要包括系統體系結構、存儲管理、查詢處理、事務管理、分析處理等關鍵技術,還介紹其他幾種典型的分布式大數據庫管理系統,包括NoSQL分布式大數據庫系統、面向OLTP的分布式大數據庫系統和跨異構存儲的Polystore系統。之后,介紹大數據管理的發展方向,主要包括數據科學、數據治理、云數據庫服務、數據庫引擎以及新型數據庫應用。
本書由東北大學計算機科學與工程學院的于戈、申德榮、趙志濱、聶鐵錚、李芳芳、寇月、馮時、谷峪撰寫。其中,于戈、申德榮負責撰寫本書前言部分、第1章和第13章,趙志濱、申德榮負責撰寫第2章,申德榮、聶鐵錚負責撰寫第3章和第4章,聶鐵錚負責撰寫第6章和第11章,李芳芳、聶鐵錚負責撰寫第5章,李芳芳負責撰寫第9章和第10章,寇月負責撰寫第7章和第8章,谷峪負責撰寫第12章,馮時負責撰寫各章中Oracle數據庫的案例部分。全書由于戈和申德榮統稿。
本教材全面落實黨的二十大報告關于“深入實施科教興國戰略、人才強國戰略、創新驅動發展戰略”的重要論述,把培養大國工匠和高技能人才作為重要目標,大力弘揚勞模精神、勞動精神、工匠精神,提升我國科技發展的獨立性、自主性和安全性。為此,我們在撰寫本書的過程中,努力覆蓋已有分布式數據庫系統的經典理論和技術,盡力跟蹤該學科的新發展和新技術,力求本書具備先進性和實用性。本書強調理論和實際相結合,強調研究與產業相融合,重視我國分布式數據庫技術的發展。每章用大量篇幅介紹了商業化數據庫產品Oracle應用案例和具有代表性的大數據庫系統——HBase、Spanner和OceanBase。除國產數據庫系統OceanBase之外,還專門介紹了另外兩個國產數據庫系統PolarDB和TiDB。在分布式數據庫技術的最新進展方面,本書涵蓋了區塊鏈技術、AI賦能技術和大數據管理技術發展方向。但由于作者學識有限,書中可能存在一些不足之處,敬請專家和學者批評指正。
- Developing Mobile Games with Moai SDK
- Spark核心技術與高級應用
- Python醫學數據分析入門
- 數據庫程序員面試筆試真題庫
- 數據挖掘原理與SPSS Clementine應用寶典
- 數據中心數字孿生應用實踐
- SQL Server 2012數據庫管理教程
- Splunk智能運維實戰
- Oracle數據庫管理、開發與實踐
- 數字IC設計入門(微課視頻版)
- 企業大數據處理:Spark、Druid、Flume與Kafka應用實踐
- 數據指標體系:構建方法與應用實踐
- 大數據測試技術:數據采集、分析與測試實踐(在線實驗+在線自測)
- 數據挖掘算法實踐與案例詳解
- Access 2010數據庫應用技術教程(第二版)