第13章 大规模数据库架构

Posted 修罗神天道

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第13章 大规模数据库架构相关的知识,希望对你有一定的参考价值。

近年来数据库技术与其他技术互相结合、相互渗透,出现了许多新的技术和成果,这为数据库技术更加广泛的应用奠定了基础。本章简要介绍分布式数据库、并行数据库、云计算数据库及 XML 数据库架构。                                    

13.1分布式数据库 

13.1.1分布式数据库系统概述 
分布式数据库系统是物理上分散、逻辑上集中的数据库系统。系统中的数据分布在物理位置不同的计算机上(通常称为场地、站点或结点,本章均用场地来描述),由通信网络将这些场地连接起来,每个场地既具有独立处理的能力,也可以和其他场地协同工作。 
13.1.2分布式数据库目标与数据分布策略 
1.分布式数据库目标 
1987 年,关系数据库技术领域非常著名的学者同时也是关系数据库的最早设计者之一的 C.J.Date,
提出了分布式数据库要达到的 12 个目标: 
⚫  本地自治。 
⚫  非集中式管理。 
⚫  高可用性。 
⚫  位置独立性。 
⚫  数据分片独立性。 
⚫  数据复制独立性。 
⚫  分布式查询处理。 
⚫  分布式事务管理。 
⚫  硬件独立性。 
⚫  操作系统独立性。 
⚫  网络独立性。 
⚫  数据库管理系统独立性。 
本地自治,非集中式管理以及高可用性是分布式数据库最基本的特征,位置独立性、数据分据是分布的,片独立性和数据复制独立件形成了分布式数据库系统中的分布透明性。 
2.数据分布策略 
分布数据库中数据分布策略可以从数据分片和数据分配两个角度来考虑,一般先数据分片,再数据分配。数据分片按照一定规则将某一个全局关系划分为片断,数据分配则在此基础上将这些片断分配存储在各个场地上。由此可知,分片是对关系的操作,而分配则是对分片结果的操作。 
(1)数据分片。对某一个关系进行分片是将关系划分为多个片断,这些片断中包含足够的信息可以使关系重构。数据分片有 4 种基本方法。 

 (2)数据分配。数据分配是分布式数据库的特征,解决数据分配有以下几种方法。 

 13.1.3分布式数据库系统的体系结构 
1.分布式数据库的参考模式结构 
下图是分布式数据库的一种参考模式结构示意图,其中包括: 

                                  
 ⚫  全局外模式:是全局应用的用户视图,即终端用户看到的逻辑上并来分布的表、视图等。 
⚫  全局概念模式:描述全体数据的逻辑结构和特征。 
⚫  分片模式:描述每个数据片断以及全局关系到片断的映像,是分布式数据库系统中全局数据的逻辑划分视图。 
⚫  分配模式:描述各片断到物理存放场地的映像。 
⚫  局部概念模式:描述全局关系在场地上存储的物理片断的逻辑结构以及特征。 
⚫  局部内模式:描述局部慨念模式沙及的数据在本场地的物理存储 
2.分布透明性 
分布透明性有如下几种级别: 
(1)分片透明性。 
分片透明性是最高级别的透明性位于全局概念模式与分片模或之间。分片透明性是指数据分片是用户无需考虑的,完全透明的,在编写程序时用户只需要对全局关系进行操作,这样简化了应用程序的维护,当数据分片有所改变时,应用程序不会受到影响。 
(2)位置透明性。 
位置透明性是指数据分片的分配位置对用户是透明的用户编写程序时只需要考虑数据分片情况,不需要了解各分片在各个场地的分配情况。 
(3)局部数据模型透明性。 
局部数据模型透明性处于分配模式与局部概念模式之间,它使用户在编写应用程序时不但要了解全局数据的分片情况,还要了解各片断的副本复制情况及各片断和它们副本的场地位置分配情况,但是不需要了解各场地上数据库的数据模型。 
3.分布式数据库管理系统   
分布式数据库管理系统是用于支持分布式数据库的创建、运行、管理和维护的一种数据库管理软件,它能够对各个场地的软硬件资源进行管理,为用户提供。 
下图所示是个典型的分布式数据库管理系统的结构图,包括四个部分:全局数据库管理系统 GDBMS、全局数据字典 GDD、局部数据库管理系统 LDBMS 和通信管训 CM。  
13.1.4分布式数据库的相关技术 
1.分布式查询 
在集中式数据库系统中,查询代价主要是由 CPU 代价和 I/O 代价来衡量的,在分布式数据库系统中,由于数据分布在多个不同的场地上,使得在询处理中还要考虑站点间传输数据的通信代价 
一般来说,分布式查询优化主要考虑以下策略: 
①操作执行的顺序。                                        
②操作的执行算法(主要是连接操作和并操作)。 
③不同场地间数据流动的顺序。 
在分布式数据库的查询中导致数据传输量大的主要原因是数据间的连接操作和并操作。针对连接操作广泛使用的优化策略有两种:基于半连接的优化策略和基于连接的优化策略。 
2.分布式事务管理 
分布式事务管理主要包括恢复控制和并发控制。在分布式数据库系统中一个全局事务的完成需要多个场地共同参与,为了保持事务的原子性,参与事务执行的所有场地或者全部提交,或者全部撒销。

13.2并行数据库

13.2.1并行数据库概述 
数据库系统发展的关键问题:提高数据库系统吞吐率和减少事务响应时间, 数据库应用的发展对数据库的性能和可用性提出了更高的要求。 
在软件和硬件需求的推动下,推出了并行数据库,以多处理器并行处理提高速度,使用多个处理器构造的廉价并行计算机比传统的大型计算机有更好的性能。 
13.2.2并行数据库系统结构 
并行数据库有多种体系结构,主要可分为以下4种(图中均以P表示处理机,M表示内存,D表示磁盘)。 
(1)共享内存结构:所有的处理机通过互联网共享一个公共的主存储器。 

 (2)共享磁盘结构:所有的处理机拥有独立的主存储器,通过互联网共享磁盘。  
(3)无共享结构:每个处理机拥有独立的主存储器和磁盘,不共享任何资源。                          
 
(4)层次结构:该结构综合了共享内存、共享磁盘和无共享结构的特点,从全局角度来考虑,可以分为两层,顶层是由若干节点组成的无共享结构,底层是共享内存或共享磁盘结构。 
 
13.2.3数据划分与并行算法 
数据划分对于并行数据库系统的性能有很大的影响,合理的数据划分可以使查询处理时间最小化,并行处理性能最大化。 

 1.一维数据划分 
(1)轮转法(Round-Robin)。 
该策略顺序扫描整个关系,将元组依次划分到 n 个磁盘上,即元组 r 分配到 D ,r 分配到 D ,r 分
0 0 1 1 n-1配到 D 上。r 分配到 D ……一般来讲,r 分配到 D 上。 
n-1 n 0 i i mod n轮转法保证了元组在多个磁盘上平均分配,最多相差 1。 
该策略最适合于扫描整个关系的应用,在扫描时可以并行地从 n 个磁盘读取数据,负载均衡,充分发挥了并行性。 
该策略对于点查询和范围查询的处理非常复杂,由于不知道所要查找的元组具体分布在哪个磁盘上,必须对所有磁盘都进行查找,明显降低了查询效率。 
(2)散列划分。 
该策略使用一个值域为{0,1,2,3…,n-1}的散列函数,选取关系中的一个或多个属性作为划分属性,
根据这个划分属性进行散列,根据散列函数返回值确定分配的磁盘。 
该策略适合点查询,对于顺序扫描关系也是非常高效的。 
缺点:若散列函数选择不合理,可能会引起数据划分的不均衡,因此散列函数选择是该策略的关键点。 
(3)范围划分。 
该策略按照关系中某个属性的取值范围将数据文件划分为 n 部分,分别存放在磁盘上。如属性的取值范围为 0~10 的元组分配到磁盘 0,属性的取值范围为 10~50 的元组分配到磁盘 1,依次类推,按照范围将所有元组分配到 n 个磁盘上。                                        
该策略适合范围查询和点查询。 
缺点:可能会引起数据分布不均匀,导致并行处理能力下降。 
2.多维数据划分 
⚫  CMD 多维划分法 
⚫  BERD 多维划分法 
划分方法:将关系 R 的属性分为主划分属性和辅助划分属性。主划分属性只有一个,设为 A。首先按其进行范围划分,然后对每个次划分属性 B ,构造一个具有 3 个属性的辅助关系 RB(B ,TID,ProcID),RBii i i
中的元组与 R 中的元组一一对应,其中 TID 为记录的元组标识符,ProcID 为其实际存储结点,将 RBi 按属性 Bi 进行范围划分至各结点。 
⚫  MAGIC 多维划分法 
3.并行算法 
(1)并行排序。 
如果关系是按照范围划分的方法分配到各个磁盘之上,而且排序属性恰好为划分属性,那么就可以直接将各个划分中的数据串接起来便可得到完全排好序的关系。如果关系是以其他方式划分的,则可以用下面的方法之一来进行排序。 
①重新按排序属性进行范围划分,然后分别对每一个划分进行排序,最后将结果直接合并。 
②采用并行外排序归并算法,即每个处理器首先对本地数据进行排序,然后,系统对每个处理器上已排序的数据进行合并,得到最终排好序的关系。 
(2)并行连接。 
①划分连接:对于等值连接和自然连接,可以将输入的两个关系划分到多个处理器中,然后在每个处理器上进行本地连接。 
②分片-复制连接:划分连接不适用于普通的ɵ链接,分片-复制连接可以解决具有不同连接属性的元组也可以匹配 
(3)其他的关系操作。

 13.3云计算数据库架构 

13.3.1云计算概述 
描述:云计算是分布式计算、并行计算和网格计算的发展,或者说是这些计算机科学概念的商业实现。 

概念:云计算是一种商业计算模型,它通过集中所有的计算资源,采用硬件虚拟化技术,为云计算使用者提供强大的计算能力、存储和带宽等资源,它将计算任务分布在大量计算机构成的资源池上,使各种应用系统能够根据需要获取计算力、存储空间和信息服务,获得与传统大型服务器相同或者更高的计算能力。云计算包括以下软硬件设施: 

 云计算提供商的数据中心的软硬件设施就是所谓的云(Cloud)。云可分为公共云,私有云、混合云。
当云以即用即付的方式提供给公众的时候,称其为公共云。不对公众开放的企业或组织内部数据中心的资源称作私有云。因此云计算就是 XaaS 和效用计算,但通常不包括私有云。 
从硬件上看,云计算在三方面突破了传统: 
①云计算能为应用系统提供似乎无限的计算资源,云计算终端用户无需再为计算力准备计划或预算。                                        
②SaaS 的服务供应商可以根据需要逐步追加硬件资源,而不需要预先给出承诺。 
③云计算具有为其用户提供短期使用资源的灵活性。 
13.3.2云数据库体系结构 
云环境下,计算的主要对象仍是数据,“云+数据库”的结合产生了云数据库(CloudDB,简称为“云库”)。
Google 的云数据库构架如下图所示。  
1.BigTable 数据模型 
⚫  描述:BigTable 是 Google 的云数据库,是一个分布式的结构化数据存储系统,用于对海量数据进行处理、存储和查询。 
⚫  BigTable 表的索引是行关键字(Row Key)、列关键字(Column Key)和时间戳(Timestamp), 
⚫  每个单元(Cell)由行关键字、列关键字和时间戳共同定位,即(row,column,timestamp) cell contents。 
⚫  在 BigTable 中,不仅可以随意地增减行的数量,同在一定的约束条件下,还可以对列的数量进行扩展,而且在每个单元还引入一个时间标签,可以存储多个不同时间版本的不同数据。 
BigTable 数据楼型的特点是: 
⚫  表中的行关键字可以是任意的字符串:BigTable 通过行关键字的字典顺序来组织数据。表中的
每个行都可以动态分区。每个分区叫做一个“Tablet”,Tablet 是数据分布和负载均衡调整的最
小单位。 
⚫  列族是由列关键字组成的集合,是访问控制的基本单位:在同一列族下,通常存放属于同一类型的数据。在同一张表中,列族不能过多。在列族层面上分别进行着访问控制、磁盘和内存的使用
统计。 
⚫  数据项所包含的不同版本的数据的时间标识:通过时间戳可以实现对不同版本的数据的索引。
BigTable 可以设置时间戳的值,用来表示相应数据的准确时间,可以精确到毫秒;用户程序也
可以给时间戳进行赋值,以表示数据的版本信息。数据项中,系统按照时间戳顺序对数据进行排
序,即最新的数据排在最前面。 
2.BigTable 的体系结构 
一个 BigTable 集群存储了很多表,每个表包含了一个 Tablet 的集合,而每个 Tablet 包含了某个范
围内行的所有相关数据。初始状态下,一个表只有一个 Table 。随着表中数据的增长,它被自动分割成多个 Tablet。BigTable 结构图如下所示。 
 13.3.3云数据库与传统数据库比较 
云数据库与现有的 RDBMS 存在较大差别,虽然都是关系数据模型,但通常的云数据库就是一系列的二维表格,操作方式也是基于简化版本的类 SQL 或访问对象。 
云数据库的使用使我们不必购买托管服务器、自己安装和维护数据库,也不关心服务器地理位置及其他信息,只需存取所要的信息。但云数据库也存在以下缺点。                                        
⚫  数据安全问题。 
⚫  对云的管理问题。 
⚫  对因特网的依赖。

13.4.XML数据库 

13.4.1XML数据库概述 
XML(可扩展标识语言):一般用于标记电子文件,使其具有结构性,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。其语法与 html 类似,都是用标签来描述数据。
其特点如下: 
⚫  XML 是标准通用标记语言(SGML)的子集,非常适合 Web 传输。 
⚫  XML 提供统一的方法来描述和交换独立于应用程序或供应商的结构化数据。 
⚫  XML 数据库是一种支持对 XML 格式文档进行存储和查询等操作的数据库管理系统。 
XML 数据库是一种支持对 XML 格式文档进行存储和查询等操作的数据库管理系统,是 XML 文档及其部件的集合,并通过一个具有能力管理和控制这个文档集合本身及其所表示信息的系统来维护。 
XML 数据库不仅是结构化数据和半结构化数据的存储库,持久的 XML 数据管理包括数据的很多特性,如下所示:独立性、集成性、访问权限、视图、完备性、冗余性、一致性以及数据恢复等。 
XML 数据库有三种类型: 
⚫  XML Enabled Database(XEDB)即能处理 XML 的数据库:特点是在原有的数据库系统上扩充对 XML数据的处理功能,使之能适应 XML 数据存储和查询的需要。 
⚫  Native XML Database(NXD)即纯 XML 数据库:特点是以自然的方式处理 XML 数据,以 XML 文档作为基本的逻辑存储单位,针对 XML 的数据存储和查询特点专门设计适用的数 据模型和处理方法。 
⚫  Hybrid XML Database( HXD)即混合 XML 数据库:根据应用的需求,可以视其为 XEDB 或 NXD 数据库。 
与传统数据库相比,XML 数据库具有以下优势: 
⚫  XML 数据库能够对半结构化数据进行有效的存取和管理。 
⚫  提供对标签和路径的操作。 
⚫  当数据本身具有层次特征时,由于 XML 数据格式能够清晰表达数据的层次特征,因此 XML 数据库便于对层次化的数据进行操作。 
13.4.2SQL Server 2008与XML 
1.SQL Server 中的 XML 语句 
在关系数据库中,SELECT 语句返回的查询结果是一个标准的行集(由字段与记录组成的数据表格式的数据集)。如果希望将查询结果以 XML 形式返回,那么可以在 SELECT 语句中加入 FOR XML 子句,将返回结果变为 XML 格式。另外,在 SQL Server 2008 中还提供了一个 OPENXML 的函数用于处理 XML 数据流。 
2.XML 索引类型 

以上是关于第13章 大规模数据库架构的主要内容,如果未能解决你的问题,请参考以下文章

MySQL性能调优与架构设计——第13章 可扩展性设计之 MySQL Replication

[架构之路-5]:架构师 - 中国计算机技术职业资格(软考)考试是如何定义系统架构师?

第5章 数据库分库分表实例

大规模数据库架构

python学习笔记第13章:web开发之sanic框架

python学习笔记第13章:web开发之sanic框架