免费智能真题库 > 历年试卷 > 信息系统项目管理师 > 2024年上半年 信息系统项目管理师 上午试卷 综合知识 (第一批)
  第12题      
  知识点:   数据库与数据仓库   事务   数据库   一致性
  关键词:   并发   数据库   数据        章/节:   信息系统及其技术和开发方法       

 
()定位于在并发事务中保证数据库中数据的逻辑一致性
 
 
  A.  保证数据的操作完整性
 
  B.  保证数据库的完整性
 
  C.  保证数据的语义完整性
 
  D.  防止非法的数据访问
 
 
 

 
  第9题    2009年下半年  
   63%
以下关于数据库设计中范式的叙述,不正确的是(9)。
  第10题    2023年上半年  
   34%
()是()的基础,二者的目的都是为了在系统崩溃或灾难发生时能够恢复数据或系统。
  第27题    2010年下半年  
   47%
数据仓库的系统结构通常包括四个层次,分别是数据源、(27)、前端工具。
   知识点讲解    
   · 数据库与数据仓库    · 事务    · 数据库    · 一致性
 
       数据库与数据仓库
        1.数据库技术
        传统的数据库技术以单一的数据资源即数据库为中心,进行事务处理、批处理、决策分析等各种数据处理工作。
        数据处理主要有操作型处理和分析型处理两类。操作型处理也称事务处理,指的是对联机数据库的日常操作,通常是对数据库中记录的查询和修改,主要为企业的特定应用服务,强调处理的响应时间、数据的安全性和完整性等;分析型处理则用于管理人员的决策分析,经常要访问大量的历史数据。
        传统数据库系统主要强调日常事务处理工作,难以实现对数据分析处理的要求,无法满足数据处理多样化的要求,操作型处理和分析型处理的分离成为必然。
        2.数据仓库
        定义
        数据仓库(Data Warehouse)是面向主题的、集成的、相对稳定的、反映历史变化的数据集合,用于支持管理决策。
        特点:
        .数据仓库用于决策支持,面向分析型数据处理,不同于操作型数据库。
        .数据仓库是对多个异构数据源(包括历史数据)的有效集成,集成后按主题重组,且存放在数据仓库中的数据一般不再修改。
        和操作型数据库的区别
        数据仓库与操作型数据库相比,有如下区别:
        .面向主题。操作型数据库的数据面向事务处理,各个业务系统之间各自分离;而数据仓库中的数据按主题进行组织。主题是指用户使用数据仓库进行决策时所关心的某些方面,一个主题通常与多个操作型系统相关。
        .集成。操作型数据库通常与某些特定应用相关,数据库之间相互独立,且往往是异构的;而数据仓库的数据是在原有分散数据库数据抽取清理的基础上经过系统加工、汇总和整理得到,消除了源数据中的不一致性,保证信息是整个企业一致性的全局信息。
        .相对稳定。操作型数据库中的数据通常是实时更新的,数据根据需要及时变化;而数据仓库的数据主要供企业决策分析之用,涉及的数据操作主要是查询,只有少量的修改和删除,通常只需定期加载、刷新。
        .反映历史变化。操作型数据库主要关心当前某个时间段内的数据;而数据仓库通常包含历史信息,通过这些信息可以对企业的发展历程和未来趋势做出定量分析和预测。
        数据仓库系统的结构
        数据仓库系统的结构通常包含4个层次,分别为:
        .数据源。是数据仓库系统的基础,通常包括企业内部信息和外部信息。内部信息包括存放于数据库中的各种业务处理数据和各类文档数据;外部信息包括各类法律法规、市场信息和竞争对手的信息等。
        .数据存储与管理。是整个数据仓库系统的核心。数据仓库的组织管理方式决定了对外部数据的表现形式。数据仓库按照数据的覆盖范围可以分为企业级数据仓库和部门级数据仓库(通常称为数据集市)两种。
        .OLAP服务器。对分析需要的数据进行有效集成,按多维模型组织,以便进行多角度、多层次的分析,并发现趋势。具体实现可以分为ROLAP、MOLAP和HOLAP。ROLAP的基本数据和聚合数据均存放在关系数据库中;MOLAP的基本数据和聚合数据均存放在多维数据库中;HOLAP的基本数据存放在关系数据库中,聚合数据存放在多维数据库中。
        .前端工具和应用。主要包括各种报表工具、查询工具、数据分析工具、数据挖掘工具以及各种基于数据仓库或数据集市的应用开发工具。其中数据分析工具主要针对OLAP服务器,报表工具、数据挖掘工具主要针对数据仓库。
 
       事务
               概述
               事务(Transaction)是一系列的数据库操作,是数据库应用程序的基本逻辑单位,即应用程序对数据库的操作都应该以事务的方式进行。
               事务是一个操作序列,这些操作“要么都做,要么都不做”,是数据库环境中不可分割的逻辑工作单位。事务和程序是两个不同的概念,一般一个程序可包含多个事务。
               事务通常由数据库操纵语言或其他高级语言(如SQL、CoBOL、C、C++、Java等)书写的用户程序来实现。一个事务由应用程序的一组操作序列组成,它以BEGIN TRANSACTION语句开始,以END TRANSACTION结束语句。
               事务定义的语句如下:
               (1)BEGIN TRANSACTION:事务开始。
               (2)END TRANSACTION:事务结束。
               (3)COMMIT:事务提交。该操作表示事务成功地结束,它将通知事务管理器该事务的所有更新操作现在可以被提交或永久地保留。
               (4)ROLLBACK:事务回滚。该操作表示事务非成功地结束,它将通知事务管理器出故障了,数据库可能处于不一致状态,该事务的所有更新操作必须回滚或撤销。
               典型的例子是银行转账业务。对“从账户A转入账户B金额x元”业务,站在顾客角度来看,转账是一次单独操作;而站在数据库系统的角度它至少是由两个操作组成的,第一步从账户A减去x元,第二步给账户B加上x元。下面是银行转账事务的伪代码:
               
               SQL中事务的开始与结束
               SQL标准规定当一条SQL语句被执行,就隐式地开始了一个事务,SQL中的Commit work和Rollback work语句之一会结束一个事务。
               (1)Commit work:提交当前事务。这意味着将该事务所做的更新在数据库中永久保存。一旦事务被提交后,一个新的事务自动开始。
               (2)Rollback work:回滚当前事务。这意味着将撤销该事务对数据库的更新。这样,数据库恢复到该事务执行第一条语句之前的状态。
               需要注意的是,若事务已执行了Commit work,就不能用Rollback work来撤销。数据库系统能保证在发生诸如某条SQL语句错误、断电、系统崩溃的情况下,若事务还没有执行Commit work,则所造成的影响将被回滚。对断电、系统崩溃的情况,回滚是在系统重新启动时进行。
 
       数据库
        数据库(DataBase,DB)是指长期存储在计算机内的、有组织的、可共享的数据集合。数据库中的数据按一定的数据模型组织、描述和存储,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享。
        系统使用的所有数据存储在一个或几个数据库中。
 
       一致性
        在讨论一致性之前,先看一下CAP理论。它作为一种理论依据,使得在不同应用中,对一致性也有了不同的要求。CAP理论:简单地说,就是对于一个分布式系统,一致性(Consistency)、可用性(Availablity)和分区容忍性(Partition tolerance)三个特点最多只能三选二。
        一致性意味着系统在执行了某些操作后仍处在一个一致的状态,这点在分布式的系统中尤其明显。比如某用户在一处对共享的数据进行了修改,那么所有有权使用这些数据的用户都可以看到这一改变。简言之,就是所有的结点在同一时刻有相同的数据。
        可用性指对数据的所有操作都应有成功的返回。高可用性则是在系统升级(软件或硬件)或在网络系统中的某些结点发生故障的时候,仍可以正常返回。简言之,就是任何请求不管成功或失败都有响应。
        分区容忍性这一概念的前提是在网络发生故障的时候。在网络连接上,一些结点出现故障,使得原本连通的网络变成了一块一块的分区,若允许系统继续工作,那么就是分区可容忍的。
        在数据库系统中,事务的ACID属性保证了数据库的一致性。比如银行系统中,转账就是一个事务,从原账户扣除金额,以及向目标账户添加金额,这两个数据库操作的总和构成一个完整的逻辑过程,具有原子的不可拆分特性,从而保证了整个系统中的总金额没有变化。
        然而,这些ACID特性对于大型的分布式系统来说,是和高性能不兼容的。比如,你在网上书店买书,任何一个人买书这个过程都会锁住数据库直到买书行为彻底完成(否则书本库存数可能不一致),买书完成的那一瞬间,世界上所有的人都可以看到书的库存减少了一本(这也意味着两个人不能同时买书)。这在小的网上书城也许可以运行得很好,可是对Amazon这种网上书城却并不是很好。
        而对于Amazon这种系统,它也许会用Cache系统,剩余的库存数也许是几秒甚至几个小时前的快照,而不是实时的库存数,这就舍弃了一致性。并且,Amazon可能也舍弃了独立性,当只剩下最后一本书时,也许它会允许两个人同时下单,宁愿最后给那个下单成功却没货的人道歉,而不是整个系统性能的下降。
        由于CAP理论的存在,为了提高性能,出现了ACID的一种变种BASE(这四个字母分别是Basically Available,Soft—state,Eventual consistency的开头字母,是一个弱一致性的理论,只要求最终一致性):
        .Basically Available:基本可用。
        .Soft state:软状态,可以理解为“无连接”的,而与之相对应的Hard state就是“面向连接”的。
        .Eventual consistency:最终一致性,最终整个系统(时间和系统的要求有关)看到的数据是一致的。
        在BASE中,强调可用性的同时,引入了最终一致性这个概念,不像ACID,其并不需要每个事务都是一致的,只需要整个系统经过一定时间后最终达到一致。比如Amazon的卖书系统,也许在卖的过程中,每个用户看到的库存数是不一样的,但最终卖完后,库存数都为0。再比如SNS网络中,C更新状态,A也许可以1分钟就看到,而B甚至5分钟后才看到,但最终大家都可以看到这个更新。
        具体地说,如果选择了CP(一致性和分区容忍性),那么就要考虑ACID理论(传统关系型数据库的基石,事务的四个特点)。如果选择了AP(可用性和分区容忍性),那么就要考虑BASE系统。如果选择了CA(一致性和可用性),如Google的bigtable,那么在网络发生分区的时候,将不能进行完整的操作。
        ACID理论和BASE的具体对比如下表所示。
        
        ACID和BASE的对比表
   题号导航      2024年上半年 信息系统项目管理师 上午试卷 综合知识 (第一批)   本试卷我的完整做题情况  
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 /
 
第12题    在手机中做本题