党的二十大报告指出,教育、科技、人才是全面建设社会主义现代化国家的基础性、战略性支撑。必须坚持科技是第一生产力、人才是第一资源、创新是第一动力,深入实施科教兴国战略、人才强国战略、创新驱动发展战略,开辟发展新领域新赛道,不断塑造发展新动能新优势。
在当今大数据的时代,数据是最为宝贵的资源,是社会管理、商业应用、科学研究、国防安全的决策基础。随着对数据容量、数据访问便捷性和数据安全性重视程度的提升,几乎所有的信息系统都需要使用数据库系统来组织、存储、管理数据,人们对新型数据库技术的研究和关注日益增多。同时,目前的数据库系统相关书籍主要讲解关系数据库以及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的安装与使用
思考题
参考文献