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