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