免费智能真题库 > 历年试卷 > 系统架构设计师 > 2009年下半年 系统架构设计师 上午试卷 综合知识
  第40题      
  知识点:   反规范化理论   数据分布
  关键词:   DBMS   数据        章/节:   数据库系统       

 
以下关于RDBMS数据分布的叙述中,错误的是(40)。
 
 
  A.  数据垂直分割是将不同表的数据存储到不同的服务器上
 
  B.  数据水平分割是将不同行的数据存储到不同的服务器上
 
  C.  数据复制是将数据的多个副本存储到不同的服务器上
 
  D.  数据复制中由RDBMS维护数据的一致性
 
 
 

 
  第11题    2016年下半年  
   40%
给定关系R(A1,A2,A3,A4)上的函数依赖集F={A1→A2..
  第7题    2022年下半年  
   65%
给定关系模式R(U,F),其中U为属性集,F是U上的一组函数依赖,那么函数依赖的公理系统(Armstrong 公理系统)中的分解规则是指( )为..
  第7题    2020年下半年  
   27%
给出关系R(U,F), U= {A,B,C,D,E), F={A→B,D→C,BC→E,AC→B),求属性闭包的等式成立的是(6)。R的候选关键字为(7)。
   知识点讲解    
   · 反规范化理论    · 数据分布
 
       反规范化理论
        前面已经介绍了规范化理论,在对数据模型进行规范化时,主要通过拆分的方式达到目的,而不断的拆分带来了新的问题。因为对多个拆分后的表进行查询操作时,需要涉及大量的连接操作,这使得查询变得费时与低效。为了有效地解决此问题,提出了反规范化技术,该技术与规范化理论做法刚好相反,而希望达到的目标主要是提高查询效率。
        常用的反规范技术包括:增加冗余列、增加派生列、重新组表、分割表。
               增加派生列
               加派生列指增加的列由表中其他数据计算生成。它的作用是在查询时减少连接操作,避免使用集函数。例如,表中有单价,也有数量,此时增加列“总额”,由于
               总额=单价×数量
               所以总额就是一个派生列。
               增加冗余列
               增加冗余列是指在多个表中具有相同的列,它常用来在查询时避免连接操作。
               重新组表
               重新组表指如果许多用户需要查看两个表连接出来的结果数据,则把这两个表重新组成一个表来减少连接而提高性能。
               分割表
               有时对表做分割可以提高性能。表分割有两种方式。
               (1)水平分割:根据一列或多列数据的值把数据行放到两个独立的表中。水平分割通常在下面的情况下使用:
               ①表很大,分割后可以降低在查询时需要读的数据和索引的页数,同时也降低了索引的层数,提高查询速度。
               ②表中的数据本来就有独立性。例如表中分别记录各个地区的数据或不同时期的数据,特别是有些数据常用,而另外一些数据不常用。
               ③需要把数据存放到多个介质上。
               水平分割会给应用增加复杂度,它通常在查询时需要多个表名,查询所有数据需要union操作。在许多数据库应用中,这种复杂性会超过它带来的优点,因为只要索引关键字不大,则在索引用于查询时,表中增加两到三倍数据量,查询时也就增加读一个索引层的磁盘次数。
               (2)垂直分割:把主码和一些列放到一个表,然后把主码和另外的列放到另一个表中。如果一个表中某些列常用,而另外一些列不常用,则可以采用垂直分割,另外垂直分割可以使得数据行变小,一个数据页就能存放更多的数据,在查询时就会减少I/O次数。其缺点是需要管理冗余列,查询所有数据需要join操作。
 
       数据分布
        数据分布是分布式数据库系统中的基本问题,解决好这个问题对提高分布式数据库系统的效率和性能有积极的作用。所谓数据分布是指在分布式环境中通过合理分布数据.提高数据操作自然并行度,以达到最好的执行效率的目的。在构建分布式数据库系统的运行环境时,必须考虑数据如何分布在系统的各个场地上,或者说,必须考虑构成分布式数据库系统的各个组成部分各自如何使用数据的问题。所以,在分布式数据库系统中,同样存在着分布式数据库的设计问题。数据分布就是讨论这个问题,它包括分布式数据库的逻辑划分和物理分配,以及用户对分布式数据库的划分或分配的感知程度(透明度)。
        数据分布要研究的问题是在分布式数据库中,如何放置数据,从而使得相关数据之间的相对位置最佳。
        如何分布数据,使它们的相对位置最佳,还需要考虑许多其他问题,例如:
        (1)如果一个场地上的存储空间不够,无法存放要访问的所有数据时该怎么办?
        (2)数据相对位置对查询优化有什么样的影响?
        (3)如何才能知道相对位置最佳的数据分布是否最大限度地利用了网络环境并行性?
        对于数据分布问题,人们已经进行了大量的研究工作,其中主要的工作都是围绕着两方面进行的:“高效的数据划分问题”和“数据放置问题”。第一个方面是关于如何把数据划分开,使得使用率最高的数据能够被放置在性能最好的场地上。第二个方面是关于如何把已划分好的数据合理地放置在网络上以获得最好的执行效率,减少网络传输的数据量。数据的划分和放置是数据分布问题的两个方面,只解决其中任何一个都不能说是已经解决了数据分布问题。数据分布是分布式数据库的特征,解决数据分布的策略一般有以下几种:
        (1)集中式:所有全局数据片段都安排在一个节点上。
        这种分布策略把系统数据都存放在一个节点上,对数据的控制和管理都比较容易,数据的一致性和完整性能够得到保证。但是由于数据的检索和修改都必须通过这个节点,使得这个节点的负担过重,容易出现瓶颈。另外,系统对这个节点的依赖性也过多,一旦这个节点出现故障,将使整个系统崩溃,系统的可靠性就相对较差,为了提高系统的可靠性,该节点的设备就必须提高。
        (2)分割式:所有全局数据有且只有一份,它们被分割成若干个逻辑片段,每个逻辑片段被分别指派在特定的节点上,可以说对全局数据进行了划分。
        这种分布策略充分利用各个站点上的存储设备,数据的存储量大。在存放数据的各个节点可自治地检索和修改数据,发挥系统的并发操作能力。同时,由于数据是分布在多个节点上的,所以当某部分节点出现故障时,系统仍可运行,提高了系统的可靠性。对于全局查询和修改,所需的时间会比集中式长些,因为数据不在同一场地上,需要进行网络通信。
        (3)复制式:全局数据有多个副本,每个站点上都有一个完整的数据副本。
        采用这种策略的系统可靠性较高,响应速度快。数据库的恢复也较容易,可从任意的场地得到数据的副本。但是要保持各个站点上数据的同步修改,将要付出昂贵的代价。另外,整个系统的数据冗余很大,系统的数据容量也只是一个节点上数据库的容量。
        (4)混合式:全部数据被分为若干个数据子集,每个子集被放在不同的节点上,但任何一个节点都没有保存全部的数据,根据数据的重要性决定各个数据子集副本的数量。
        这种分布策略,兼顾了分割式和复制式的做法,也获得了二者的优点,它灵活性好,能提高系统的效率,但同时也包括了二者的复杂性。
   题号导航      2009年下半年 系统架构设计师 上午试卷 综合知识   本试卷我的完整做题情况  
1 /
2 /
3 /
4 /
5 /
6 /
7 /
8 /
9 /
10 /
11 /
12 /
13 /
14 /
15 /
 
16 /
17 /
18 /
19 /
20 /
21 /
22 /
23 /
24 /
25 /
26 /
27 /
28 /
29 /
30 /
 
31 /
32 /
33 /
34 /
35 /
36 /
37 /
38 /
39 /
40 /
41 /
42 /
43 /
44 /
45 /
 
46 /
47 /
48 /
49 /
50 /
51 /
52 /
53 /
54 /
55 /
56 /
57 /
58 /
59 /
60 /
 
61 /
62 /
63 /
64 /
65 /
66 /
67 /
68 /
69 /
70 /
71 /
72 /
73 /
74 /
75 /
 
第40题    在手机中做本题