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赋能技术和大数据管理技术发展方向。但由于作者学识有限,书中可能存在一些不足之处,敬请专家和学者批评指正。