免费智能真题库 > 历年试卷 > 系统架构设计师 > 2020年下半年 系统架构设计师 下午试卷 论文
  第1题      
  知识点:   分片   数据分布   数据分片   数据库

 
论数据分片技术及其应用
数据分片就是按照一定的规则,将数据集划分成相互独立正交的数据子集。然后将数据子集分布到不同的节点上,通过设计合理的数据分片规则,可将系统中的数据分布在不同的物理数据库中,达到提升应用系统数据处理速度的目的。
 
问题:1.1   请围绕“论数据分片技术及其应用”论题,依次从以下三个方面进行论述:
1.概要叙述你参与管理和开发软件的项目以及承担的工作。
2.Hash分片,一致性Hash分片和按照数据范围分片是三种常用的数据分片方式。请简要阐述三种分片方式的原理。
3.具体阐述你参与管理和开发的项目采用了哪些分片方式,并且具体说明其实现过程和应用效果。
 
 
 

   知识点讲解    
   · 分片    · 数据分布    · 数据分片    · 数据库
 
       分片
        IP协议采用的是遇到MTU更小的网络时再分片。
 
       数据分布
        数据分布是分布式数据库系统中的基本问题,解决好这个问题对提高分布式数据库系统的效率和性能有积极的作用。所谓数据分布是指在分布式环境中通过合理分布数据.提高数据操作自然并行度,以达到最好的执行效率的目的。在构建分布式数据库系统的运行环境时,必须考虑数据如何分布在系统的各个场地上,或者说,必须考虑构成分布式数据库系统的各个组成部分各自如何使用数据的问题。所以,在分布式数据库系统中,同样存在着分布式数据库的设计问题。数据分布就是讨论这个问题,它包括分布式数据库的逻辑划分和物理分配,以及用户对分布式数据库的划分或分配的感知程度(透明度)。
        数据分布要研究的问题是在分布式数据库中,如何放置数据,从而使得相关数据之间的相对位置最佳。
        如何分布数据,使它们的相对位置最佳,还需要考虑许多其他问题,例如:
        (1)如果一个场地上的存储空间不够,无法存放要访问的所有数据时该怎么办?
        (2)数据相对位置对查询优化有什么样的影响?
        (3)如何才能知道相对位置最佳的数据分布是否最大限度地利用了网络环境并行性?
        对于数据分布问题,人们已经进行了大量的研究工作,其中主要的工作都是围绕着两方面进行的:“高效的数据划分问题”和“数据放置问题”。第一个方面是关于如何把数据划分开,使得使用率最高的数据能够被放置在性能最好的场地上。第二个方面是关于如何把已划分好的数据合理地放置在网络上以获得最好的执行效率,减少网络传输的数据量。数据的划分和放置是数据分布问题的两个方面,只解决其中任何一个都不能说是已经解决了数据分布问题。数据分布是分布式数据库的特征,解决数据分布的策略一般有以下几种:
        (1)集中式:所有全局数据片段都安排在一个节点上。
        这种分布策略把系统数据都存放在一个节点上,对数据的控制和管理都比较容易,数据的一致性和完整性能够得到保证。但是由于数据的检索和修改都必须通过这个节点,使得这个节点的负担过重,容易出现瓶颈。另外,系统对这个节点的依赖性也过多,一旦这个节点出现故障,将使整个系统崩溃,系统的可靠性就相对较差,为了提高系统的可靠性,该节点的设备就必须提高。
        (2)分割式:所有全局数据有且只有一份,它们被分割成若干个逻辑片段,每个逻辑片段被分别指派在特定的节点上,可以说对全局数据进行了划分。
        这种分布策略充分利用各个站点上的存储设备,数据的存储量大。在存放数据的各个节点可自治地检索和修改数据,发挥系统的并发操作能力。同时,由于数据是分布在多个节点上的,所以当某部分节点出现故障时,系统仍可运行,提高了系统的可靠性。对于全局查询和修改,所需的时间会比集中式长些,因为数据不在同一场地上,需要进行网络通信。
        (3)复制式:全局数据有多个副本,每个站点上都有一个完整的数据副本。
        采用这种策略的系统可靠性较高,响应速度快。数据库的恢复也较容易,可从任意的场地得到数据的副本。但是要保持各个站点上数据的同步修改,将要付出昂贵的代价。另外,整个系统的数据冗余很大,系统的数据容量也只是一个节点上数据库的容量。
        (4)混合式:全部数据被分为若干个数据子集,每个子集被放在不同的节点上,但任何一个节点都没有保存全部的数据,根据数据的重要性决定各个数据子集副本的数量。
        这种分布策略,兼顾了分割式和复制式的做法,也获得了二者的优点,它灵活性好,能提高系统的效率,但同时也包括了二者的复杂性。
 
       数据分片
        数据分片也称数据分割,是分布式数据库的特征之一。在一个分布式数据库中,全局数据库是由各个局部数据库逻辑组合而成。相反,各个局部数据库则是全局数据库的某种逻辑分割而得。实际上这也是应用的需要,以关系型模型为例来说明,一个关系描述了某些数据之间的逻辑相关性,但是,因为不同节点的用户对该关系中元组的需求可能是不同的。例如,某个关系中的元组是与地区有关,西安的用户需要的是有关“西安”的那些元组,而广州的用户需要的是有关“广州”的那些元组。这就需要对这个关系进行分割,分割后得到的各部分元组称为该关系的逻辑片段,并被存放在相应的节点上。这样处理将各得其所,可以大大减少网络上的通信,从而提高系统的响应效率。
        在分布式数据库中,数据存放的单位是数据的逻辑片段。对关系型数据库来说,一个数据的逻辑片段是关系的一部分。数据分片有三种基本方法,它们是通过关系代数的基本运算来实现的:
        (1)水平分片:按特定条件把全局关系的所有元组,分划成若干个互不相交的子集,每一子集为全局关系的一个逻辑片段。它们通过对全局关系施加选择运算得到,并可通过对这些片段执行合并操作来恢复该全局关系。
        (2)垂直分片:把全局关系的属性分成若干子集,对全局关系作投影运算得到这些子集。要求全局关系的每一属性至少映射到一个垂直片段中,且每一个垂直片段都包含该全局关系的关键字。这样,通过对这些片段执行连接操作可以恢复该全局关系。
        (3)水平和垂直结合的分片:以上两种方法的混合。可以先水平分片再垂直分片,或先垂直分片再水平分片。
        不论采用哪一种方法进行数据分片,都要遵守如下规则:
        (1)完备性条件:必须把全局关系的所有数据映射到各个片段中,绝不允许有属于全局关系却不属于任何一个片段的数据存在。
        (2)可重构条件:必须保证能够由同一个全局关系的各个片段来重新构造该全局关系。对于水平分片可用并操作重构全局关系;对于垂直分片可用连接操作重构全局关系。
        (3)不相交条件:要求一个全局关系被分割后所得的各数据片段互不重叠或只包含关键字重叠。
 
       数据库
        数据库(DataBase,DB)是指长期存储在计算机内的、有组织的、可共享的数据集合。数据库中的数据按一定的数据模型组织、描述和存储,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享。
        系统使用的所有数据存储在一个或几个数据库中。
   题号导航      2020年下半年 系统架构设计师 下午试卷 论文   本试卷我的完整做题情况  
1 /
2 /
3 /
4 /
 
第1题    在手机中做本题