黨的二十大報告指出,教育、科技、人才是全面建設社會主義現代化國家的基礎性、戰略性支撐。必須堅持科技是第一生產力、人才是第一資源、創新是第一動力,深入實施科教興國戰略、人才強國戰略、創新驅動發展戰略,開辟發展新領域新賽道,不斷塑造發展新動能新優勢。
在當今大數據的時代,數據是最為寶貴的資源,是社會管理、商業應用、科學研究、國防安全的決策基礎。隨著對數據容量、數據訪問便捷性和數據安全性重視程度的提升,幾乎所有的信息系統都需要使用數據庫系統來組織、存儲、管理數據,人們對新型數據庫技術的研究和關注日益增多。同時,目前的數據庫系統相關書籍主要講解關系數據庫以及NoSQL數據庫,研究狀況也局限于多年之前,缺少對NoSQL以及NewSQL全面系統的介紹。基于上述背景,本書主要基于新一代數據庫技術,介紹以NoSQL、NewSQL數據庫為代表的大數據存儲的相關理論、設計思想以及應用。
本書主要內容
全書分為三部分共10章。
第一部分為大數據相關基礎知識,包括第1~3章。第1章緒論,介紹數據存儲基本概念、數據存儲的發展階段、大數據基本概念以及大數據時代的數據存儲關鍵技術。第2章回顧數據庫發展史,概括數據庫發展簡史,按數據庫發展時間線依次介紹網狀與層次數據庫、關系數據庫、NoSQL、NewSQL,隨后介紹中國數據庫的發展歷史,最后展望下一代數據庫的關鍵技術。第3章介紹數據庫的基本原理、設計原則以及評價標準。
第二部分為NoSQL基礎與應用,包括第4~8章。第4章介紹NoSQL基本原理以及鍵值數據庫、列族數據庫、文檔數據庫及圖數據庫4類NoSQL數據庫的設計思想。第5章介紹鍵值數據庫實例: Redis與DynamoDB,包括對Redis與DynamoDB基礎知識、關鍵技術或工作原理的介紹以及Redis的安裝實踐。第6章介紹列族數據庫實例: HBase與Cassandra,包括對HBase與Cassandra基礎知識、關鍵技術或工作原理的介紹以及安裝實踐。第7章介紹文檔數據庫實例: MongoDB與CouchDB,包括對MongoDB與CouchDB基礎知識、關鍵技術或工作原理的介紹以及安裝實踐。第8章介紹圖數據庫實例: Neo4j與ArangoDB,包括對Neo4j與ArangoDB基礎知識、關鍵技術或工作原理的介紹以及安裝實踐。
第三部分為NewSQL基礎與應用,包括第9、10章。第9章介紹NewSQL數據庫的基本原理、分類以及設計思想。第10章介紹3種典型的NewSQL數據庫: TiDB、Vitess和CockroachDB,包括對這3種典型NewSQL數據庫基礎知識、工作原理的介紹以及安裝實踐。
本書特色
(1) 問題驅動,由淺入深。
本書通過分析大數據存儲涉及的核心問題,由淺入深、逐步地對數據庫的重要概念及原理進行講解與探究,為讀者更好地掌握大數據存儲的原理提供便利和支持。
(2) 注重原理,抓住前沿。
本書重點從原理講述不同數據庫的設計思想,結合實例幫助學生理解不同數據庫的特點,同時由于本書涉及的內容更新較快,本書盡量將當前研究熱點、研究方向也納入進來。
(3) 風格簡潔,使用方便。
本書風格簡潔明快,對于非重點的內容不做長篇論述,以便讀者在學習過程中明確內容之間的邏輯關系,更好地掌握大數據存儲技術的內容。
配套資源
為便于教與學,本書配有數據集、教學課件、教學大綱、教學日歷、期末試卷及答案、軟件安裝包。
(1) 獲取數據集、軟件安裝包: 先掃描本書封底的文泉云盤防盜碼,再掃描下方二維碼,即可獲取。
數據集
軟件安裝包
(2) 其他配套資源可以掃描本書封底的書圈二維碼,關注后回復本書書號,即可下載。
讀者對象
本書主要面向大數據及相關專業的本科生和計算機專業的研究生,也包括廣大從事大數據存儲與管理等領域的專業人員、高等院校教師及相關領域的科研人員。
本書得到國家自然科學基金(No: 41971366,91846301)和中央高校基本科研業務費專項資金資助(BUCTRC: 202132),特此感謝。北京化工大學信息科學與技術學院宏德時空數據智能實驗室的竇澤平、于縈雪、于珊珊同學參與了部分書稿的編寫和修改,北京化工大學信息科學與技術學院王友清院長、俞度立教授、張帆副院長和其他老師也提供了支持和幫助,在此一并表示感謝。同時,在本書的編寫過程中,參考了諸多相關資料,在此對相關資料的作者表示衷心的感謝。
限于本人水平和時間,加之大數據存儲技術的飛速發展,書中難免有疏漏之處,歡迎廣大讀者批評指正。
郭旦懷
2023年3月
第一部分大數據相關基礎知識
第1章緒論
1.1數據存儲基本概念
1.1.1數據存儲的定義
1.1.2數據存儲介質
1.2數據存儲的發展階段
1.2.1人工管理階段
1.2.2文件系統階段
1.2.3數據庫系統階段
1.3大數據基本概念
1.3.1大數據1.0階段
1.3.2大數據2.0階段
1.3.3大數據3.0階段
1.4大數據時代的數據存儲
1.4.1大數據存儲的潛力
1.4.2大數據存儲的社會和經濟影響
1.4.3大數據存儲關鍵技術
1.4.4大數據存儲的未來需求和新興范式
思考題
第2章數據庫發展史
2.1數據庫發展簡史
2.2網狀與層次數據庫
2.3關系數據庫
2.3.1關系數據庫的歷史
2.3.2關系模型
2.3.3關系操作
2.3.4關系完整性
2.3.5關系規范化理論
2.3.6關系數據庫的優缺點
2.3.7關系數據庫的種類及應用
2.4NoSQL
2.4.1NoSQL數據庫的由來
2.4.2NoSQL數據庫的發展
2.4.3NoSQL數據庫的特點
2.4.4NoSQL數據庫的分類
2.5NewSQL
2.5.1NoSQL謝幕,NewSQL登場
2.5.2NewSQL數據庫的發展
2.5.3NewSQL分類與特征
2.5.4傳統關系數據庫、NoSQL以及NewSQL的對比
2.6中國數據庫的發展歷史
2.6.15 4 N格局
2.6.2國產數據庫案例
2.7下一代數據庫
思考題
第3章數據庫基本原理
3.1數據庫的基本原理
3.1.1關系數據庫的基本原理
3.1.2NoSQL與NewSQL的基本原理
3.2數據庫的設計原則
3.2.1關系數據庫的設計原則
3.2.2NoSQL的設計原則
3.2.3NewSQL的設計原則
3.3數據庫的評價標準
3.3.1吞吐量
3.3.2數據的一致性
3.3.3可用性
3.3.4并發性
3.3.5可擴展性
思考題
第二部分NoSQL基礎與應用
第4章NoSQL
4.1NoSQL基本原理
4.1.1關系數據庫的重要機制回顧
4.1.2分布式數據管理的特點
4.1.3分布式系統的一致性問題
4.1.4NoSQL的常見模式
4.1.5NoSQL相關技術
4.2NoSQL設計思想
4.2.1鍵值數據庫設計思想
4.2.2列族數據庫設計思想
4.2.3文檔數據庫設計思想
4.2.4圖數據庫設計思想
思考題
第5章鍵值數據庫實例: Redis與DynamoDB
5.1Redis
5.1.1Redis 介紹
5.1.2Redis 集群模式
5.1.3Redis的持久化機制
5.1.4Redis緩存穿透、擊穿、雪崩
5.1.5Redis的安裝與使用
5.2DynamoDB
5.2.1DynamoDB介紹
5.2.2DynamoDB核心組件
5.2.3DynamoDB API
5.2.4DynamoDB工作原理
思考題
第6章列族數據庫實例: HBase與Cassandra
6.1HBase
6.1.1HBase介紹
6.1.2HBase的實現原理
6.1.3HBase的運行機制
6.1.4HBase的安裝與使用
6.2Cassandra
6.2.1Cassandra介紹
6.2.2Cassandra架構
6.2.3Cassandra 查詢語言
6.2.4Cassandra的安裝與使用
思考題
第7章文檔數據庫實例: MongoDB與CouchDB
7.1MongoDB
7.1.1MongoDB介紹
7.1.2MongoDB關鍵技術
7.1.3MongoDB的安裝與使用
7.2CouchDB
7.2.1CouchDB介紹
7.2.2CouchDB技術
7.2.3CouchBase
7.2.4CouchDB的安裝與使用
思考題
第8章圖數據庫實例: Neo4j與ArangoDB
8.1Neo4j
8.1.1Neo4j介紹
8.1.2Neo4j圖查詢語言Cypher
8.1.3Neo4j的安裝與使用
8.2ArangoDB
8.2.1ArangoDB介紹
8.2.2ArangoDB技術原理
8.2.3ArangoDB的安裝與使用
思考題
第三部分NewSQL基礎與應用
第9章NewSQL
9.1NewSQL基本原理
9.1.1NewSQL簡介
9.1.2NewSQL的技術特征
9.1.3NewSQL、NoSQL以及傳統關系數據庫的對比
9.2NewSQL的分類及設計思想
9.2.1新型架構
9.2.2透明的數據分片中間件
9.2.3DBaaS
9.2.4NewSQL實例及特點對比
思考題
第10章NewSQL實例: TiDB、Vitess以及CockroachDB
10.1TiDB
10.1.1TiDB介紹
10.1.2TiDB架構
10.1.3TiDB的安裝與使用
10.2Vitess
10.2.1Vitess介紹
10.2.2Vitess原理
10.2.3Vitess的安裝與使用
10.3CockroachDB
10.3.1CockroachDB介紹
10.3.2CockroachDB架構
10.3.3CockroachDB的安裝與使用
思考題
參考文獻