免费智能真题库 > 历年试卷 > 数据库系统工程师 > 2010年上半年 数据库系统工程师 上午试卷 综合知识
  第65题      
  知识点:   事务   数据仓库主要应用场景——联机分析处理(OLAP)   数据库主要应用场景——联机事务处理(OLTP)   联机分析处理
  关键词:   OLTP   联机分析处理   联机事务处理        章/节:   数据库主流应用技术       

 
联机分析处理(OLAP)与联机事务处理(OLTP)的区别是(65)。
 
 
  A.  OLAP针对数据库,OLTP针对数据仓库
 
  B.  OLAP要求响应时间合理,OLTP要求响应时间快
 
  C.  OLAP主要用于更新事务,OLTP用于分析数据
 
  D.  OLAP面向操作人员,OLTP面向决策人员
 
 
 

 
  第64题    2020年下半年  
   43%
OLTP指的是(63),OLAP指的是(64)。
  第63题    2020年下半年  
   41%
OLTP指的是(63),OLAP指的是(64)。
  第64题    2013年上半年  
   52%
从时间、地区和商品种类三个维度来分析某电器商品销售数据属于(64)。
   知识点讲解    
   · 事务    · 数据仓库主要应用场景——联机分析处理(OLAP)    · 数据库主要应用场景——联机事务处理(OLTP)    · 联机分析处理
 
       事务
               概述
               事务(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,则所造成的影响将被回滚。对断电、系统崩溃的情况,回滚是在系统重新启动时进行。
 
       数据仓库主要应用场景——联机分析处理(OLAP)
        20世纪60年代末,E.F.Codd所提出的关系数据模型促进了关系数据库及联机事务处理(On-Line Transaction Processing,OLTP)的发展。数据不再以文件方式同应用程序捆绑在一起,而是分离出来以关系表方式供大家共享。随着政府及商业应用的发展,数据量越来越大,同时用户的查询需求也越来越复杂,涉及的已不仅是查询或操纵一张关系表中的一条或几条记录,而且要对多张表中千万条记录进行数据分析和信息综合。关系数据库系统已不能全部满足这一要求。这两类应用,操作型应用和分析型应用,特别是在性能上难以两全,尽管为了提高性能,人们常常在关系数据库中放宽了对冗余的限制,引入了统计及综合数据,但这些统计综合数据的应用逻辑却是分散杂乱的,非系统化的,因此分析功能有限、不灵活,维护困难。在国外,不少软件厂商采取了发展其前端产品来弥补关系数据库管理系统支持的不足,他们通过专门的数据综合引擎,辅之以更加直观的数据访问界面,力图统一分散的公共应用逻辑,在短时间内响应非数据处理专业人员的复杂查询要求。1993年,Codd将这类技术定义为联机分析处理(On-Line Analytical Processing,OLAP)。OLAP作为一类产品同OLTP明显区分开来。
        OLAP是针对待定问题的联机数据访问和分析。为了反映用户所能理解的企业的真实的“维”,原始的数据被进行了转换,从而形成了可用的信息。通过对信息的很多种可能的观察形式进行快速、稳定一致的交互性存取,允许管理决策人员对数据进行深入观察。
        OLAP是以数据仓库进行分析决策的基础,针对特定问题的联机数据访问和分析,OLAP能够对不同数据集合进行基于某个或是多个角度的比较,它能够从不同角度切割数据集合从而进行分析。从某种意义来说,OLAP是有预见性的。OLAP的分析是建立在经验的基础上,对数据进行某种指定关联的分析。在联机事务处理系统中,由于数据的离散性,而使OLAP实现起来相当复杂甚至是不可能,而以数据仓库为依托,辅之以OLAP工具,OLAP的实现将十分简单易行。
        OLAP中的基本概念有:
        (1)变量:变量是数据的实际意义,即描述数据“是什么”。例如,数据“10000”本身并没有意义或者说意义未定,它可能是一个学校的学生人数,也可能是某产品的单价,还可能是某商品的销售量等等。一般情况下,变量总是一个数值度量指标,例如,“人数”“单价”“销售量”等都是变量,而“10000”则是变量的一个值。
        (2)维:维是人们观察数据的特定角度。例如,企业常常关心产品销售数据随着时间推移而产生的变化情况,这时他是从时间的角度来观察产品的销售,所以时间就是一个维,简称为时间维。企业也时常关心自己的产品在不同地区的销售分布情况,这时他是从地理分布的角度来观察产品的销售,所以地理分布也是一个维,称为地理维。
        (3)维的层次:人们观察数据的某个特定角度(即某个维)还可以存在细节程度不同的多个描述方面,我们称这多个描述方面为维的层次。一个维往往具有多个层次,例如描述时间维,可以从日期、月份、季度、年等不同层次来描述,那么日期、月份、季度、年等就是时间维的层次;同样,城市、地区、国家等构成了一个地理维的多个层次。
        (4)维成员:维的一个取值称为该维的一个维成员。如果一个维是多层次的,那么该维的维成员是在不同维层次的取值的组合。例如,我们考虑时间维具有日期、月份、年这三个层次,分别在日期、月份、年上各取一个值组合起来,就得到了时间维的一个维成员,即“某年某月某日”。一个维成员并不一定在每个维层次上都要取值,例如,“某年某月”“某月某日”“某年”等等都是时间维的维成员。对应一个数据项来说,维成员是该数据项在某维中位置的描述。例如对一个销售数据来说,时间维的维成员“某年某月某日”就表示该销售数据是“某年某月某日”的销售数据,“某年某月某日”是该销售数据在时间维上位置的描述。
        (5)多维数组:一个多维数组可以表示为(维1,维2,……,维n,变量)。例如,(地区,时间,销售渠道,销售额)就是一个多维数组,其中销售额是变量,它定义在地区维、时间维和销售渠道维这三者的基础上。
        (6)数据单元:多维数组的取值称为数据单元。当在多维数组的各个维中都选中一个维成员,这些维成员的组合就唯一确定了一个变量的值。那么数据单元就可以表示为(维1的维成员,维2的维成员,……,维n的维成员,变量的值)。
        多维分析是指对以多维形式组织起来的数据采取切片、切块、旋转等各种分析动作,以求剖析数据,使最终用户能从多个角度、多侧面地观察数据库中的数据,从而深入地了解包含在数据中的信息、内涵。多维分析方式迎合了人的思维模式,因此减少了混淆并且降低了出现错误解释的可能性。多维分析的基本动作有:
        (1)切片:在多维数组的某一维上选定一维成员的动作称为切片,即在多维数组(维1,维2,……,维n,变量)中选一维,并取其一维成员。
        (2)切块:在多维数组的某一维上选定某一区间的维成员的动作称为切块,即限制多维数组的某一维的取值区间。显然,当这一区间只取一个维成员时,即得到一个切片。
        (3)旋转:旋转即改变一个报告或页面显示的维方向。例如,旋转可能包含了交换行和列,或是把某一个行维移到列维中去,或是把页面显示中的一个维和页面外的维进行交换(令其成为新的行或列中的一个)。
        OLAP的数据来源于数据库。通过OLAP服务器,将这些数据抽取和转换为多维数据结构,以反映用户能理解的企业的真实维。通过多维分析工具对信息的多个角度、多个侧面进行快速、一致和交互的存取,从而使分析员、经理和行政人员能够对数据进行深入地分析和观察。
        在数据仓库系统中OLAP使用的多维数据可以位于不同的层次,可以作为数据仓库的一部分,也可以作为数据仓库工具层的一部分。由于所处的层次的不同,其分析结果的综合程度也相应有高低之分,所以可以满足具有不同应用需求用户的要求。
        1993年,Codd提出了有关OLAP的十二条准则,这也是他继关系数据库和分布式数据库提出的两个“十二条准则”后提出的第三个“十二条准则”。尽管业界对这个十二条准则褒贬不一,但其主要方面,如多维数据分析、客户/服务器结构、多用户支持及一致的报表性能等得到了大多数人的认可。
        (1)OLAP模型必须提供多维概念视图:从用户分析员的角度来看,整个企业的视图在本质上是多维的,因此OLAP的概念模型也应是多维的。企业决策分析的目的不同,决定了分析和衡量企业的数据总是从不同的角度来进行的,所以企业数据空间本身就是多维的。
        (2)透明性准则:无论OLAP是否是前端产品的一部分,对用户来说,它都是透明的。如果在客户/服务器结构中提供OLAP产品,那么对最终分析员来说,它同样也应透明。透明性原则包括两层含义:首先,OLAP在体系结构中的位置对用户是透明的。OLAP应处于一个真正的开放系统结构中,允许分析工具嵌入到分析人员指定的任何位置而不影响嵌入工具的性能,这对保持用户现有的效率,保证良好的性能至关重要。同时必须保证OLAP的嵌入不会引入和增加任何复杂性。其次,OLAP的数据源对用户也是透明的。用户只需使用熟悉的查询工具进行查询,而不必关心输入OLAP工具的数据是来自于同构还是异构的企业数据源。
        (3)存取能力准则:OLAP系统不仅能进行开放的存取,而且还提供高效的存取策略。OLAP用户分析员不仅能在公共概念视图的基础上对关系数据库中的企业数据进行分析,而且在公共分析模型的基础上还可以对关系数据库、非关系数据库和外部存储的数据进行分析。OLAP系统应提供高效的存取策略,应使系统只存取与指定分析有关的数据,避免多余的数据存取。
        (4)稳定的报表性能:当数据的维数和综合层次增加时,提供给最终分析员的报表能力和响应速度不应该有明显的降低和减慢,这对维护OLAP产品的易用性和低复杂性至关重要。即便当企业模型改变时,关键数据的计算方法也无需更改。只有做到这一点,OLAP工具提供的数据报表和所做的预测分析结果才是可信的。
        (5)客户/服务器体系结构:OLAP是建立在客户/服务器体系结构上的。这要求它的多维数据库服务器能够被不同的应用和工具访问到。服务器端智能地以最小的代价完成同多种服务器之间的挂接任务,服务器端必须完成分散的企业数据库的逻辑模式和物理模式之间的映射,并确保它们的一致性,从而保证透明性和建立统一的公共概念模式、逻辑模式和物理模式。客户端负责应用逻辑和用户界面。
        (6)维的等同性准则:每一数据维在数据结构和操作能力上都是等同的。系统可以将附加的操作能力赋予所选的维,但必须保证该操作能力可以赋予其他任意的维,即要求维上的操作是公共的。
        (7)动态的稀疏矩阵处理准则:OLAP工具的物理模型必须充分适应指定的分析模型,提供“最优”的稀疏矩阵处理,这是OLAP工具所应遵循的最重要的准则之一。该准则包括两层含义:第一,对任意给定的稀疏矩阵,存在且仅存在一个最优的物理视图,它能提供最大的内存效率和矩阵处理能力。稀疏度是数据分布的一个特征,如果不能适应数据集合的数据分布,将会导致快速、高效操作的失败。第二,OLAP工具的基本物理数据单元可配置给可能出现的维的子集。同时,还要提供动态可变的访问方法并包含多种存取机制,使得访问速度不会因数据维的多少、数据集的大小而变化。
        (8)多用户支持能力准则:多个用户分析员可以同时工作于同一分析模型上,或者可以在同一企业数据上建立不同的分析模型。该准则可由准则5推出。OLAP工具必须提供并发访问、数据完整性及安全性机制。实际上,OLAP工具必须支持多用户也是为了适合数据分析工作的特点。我们推荐以工作组的形式来使用OLAP工具,这样多个用户可以交换各自的想法和分析结果。
        (9)不受限的跨维操作:多维数据之间存在固有的层次关系,这就要求OLAP工具能自己推导出而不是由最终用户明确定义出相关的计算。对于无法从固有关系中得出的计算,要求系统提供计算完备的语言来定义各类计算公式。该准则是对准则1的一个补充,对操作能力和操作范围做出了要求。
        (10)直观的数据操纵:要求数据操纵直观易懂。综合路径重定位、向上综合、向下挖掘和其他操作都可以通过直观、方便的点拉操作完成。
        (11)灵活的报表生成:报表必须从各种可能的方面显示出从数据模型中综合出的数据和信息,充分反映数据分析模型的多维特征。
        (12)不受限制的维数与聚集层次:OLAP工具的维数应不小于15维,用户分析员可以在任意给定的综合路径上建立任意多个聚集层次。
 
       数据库主要应用场景——联机事务处理(OLTP)
        在这一节中,我们将联机分析处理(OLAP)和联机事务处理(OLTP)进行分析和比较。
        OLAP主要是关于如何理解聚集的大量不同的数据。与OLTP应用程序不同,OLAP包含许多具有复杂关系的数据项。OLAP的目的就是分析这些数据,寻找模式、趋势以及例外情况。
        OLAP是决策人员和高层管理人员对数据仓库进行信息分析处理。OLAP数据可能包含以地区、类型或渠道分类的销售数据。一个典型的OLAP查询可能要访问一个多年的销售数据库,以便能找到在每一个地区的每一种产品的销售情况。当得到这些数据后,分析人员可能会进一步地细化查询,在以地区、产品分类的情况下查询每一个销售渠道的销售量。最后,分析人员可能会针对每一个销售渠道进行年与年或者季度与季度的比较。整个过程必须被联机执行并要有快速的响应时间,以便分析过程不受外界干扰。联机分析处理可以被刻画为具有下面特征的联机事务:
        (1)可以存取大量的数据,比如几年的销售数据,分析各个商业元素类型之间的关系,如销售、产品、地区、渠道。
        (2)需要包含聚集的数据,例如销售量、预算金额以及消费金额。
        (3)按层次对比不同时间周期的聚集数据,如月、季度或者年。
        (4)以不同的方式来表现数据,如以地区、或者每一地区内按不同销售渠道、不同产品来表现。
        (5)需要包含数据元素之间的复杂计算,如在某一地区的每一销售渠道的期望利润与销售收入之间的分析。
        (6)能够快速地响应用户的查询,以便用户的分析思考过程不受系统影响。
        OLAP服务器允许用熟悉的工具方便地存取不同的数据源。快速响应时间是OLAP中的关键因素。它分批处理报表,应用程序中的信息必须快速可得,以便执行进一步的分析。为了使分析过程变得容易,OLAP应用程序经常以诸如电子表格这样容易辨识的形式提交数据。
        OLTP是操作人员和低层管理人员利用计算机网络对数据库中的数据进行查询、增加、删除、修改等操作,以完成事务处理工作。
        OLTP以快速事务响应和频繁的数据修改为特征,用户利用数据库快速地处理具体业务。OLTP应用时有频繁的写操作,所以数据库要提供数据锁、事务日志等机制。OLTP应用要求多个查询并行,以便将每个查询的执行分布到一个处理器上。
        与OLAP应用程序不同,OLTP应用程序包含大量相对简单的事务。对这些事务通常只是需要获取或更新其中的一小部分数据,且这些表之间的关系通常是很简单的。
        现代的数据库存储有数以万计的数据,经常每天处理成千上万的事务,OLTP数据库在查找业务数据时是非常有效的。但在为决策者提供综合汇总性数据时则显得力不从心。这就需要OLAP技术。OLAP是一项以灵活、可用和及时的方式构造、处理和表示综合数据的技术。例如,下面一个简单的问题:查看1999年西南地区的销售情况,数据按省、季度和产品分类。首先要从OLTP的数据库中抽取数据,这需要大量的时间;然后,还要用大量的时间来查询检索该年四个季度每个月的销售数据等。而用OLAP技术则可以在几秒钟内完成这样的问题。
        OLTP的特点在于事务量大,但事务内容比较简单且重复率高。大量的数据操作主要涉及的是一些增加、删除、修改操作,一般仅仅涉及一张或几张表的少数记录,因此OLTP适合于处理高度结构化的信息。与其相适应,在数据组织方面OLTP以应用为核心,是应用驱动的,数据模型采用E-R模型。
        OLTP处理的数据是高度结构化的,涉及的事务比较简单,因此复杂的表关联不会严重影响性能。反之,决策支持系统的一个查询可能涉及数万条记录。这时复杂的联接操作会严重影响性能。在OLTP系统中,数据访问路径是已知的,至少是相对固定的,应用程序可以在事务中使用具体的数据结构如表、索引等。而决策支持系统使用的数据不仅有结构化数据,而且有非结构化数据,用户常常是在想要某种数据前才决定去分析该数据。因此数据仓库系统中一定要为用户设计出更为简明的数据分析模型,这样才能为决策支持提供更为透明的数据访问。OLTP和OLAP的区别如下表所示。
        
        OLTP与OLAP对比表
        由上表可见,OLTP与OLAP是两类不同的应用。OLTP面对的是操作人员和低层管理人员,OLAP面对的则是决策人员和高层管理人员;OLTP是对基本数据的查询和增加、删除、修改操作处理,它以数据库为基础,而OLAP更适合以数据仓库为基础的数据分析处理。OLAP所需的历史的、导出的及经综合提炼的数据均来自OLTP所依赖的底层数据库。OLAP数据较之OLTP数据而言要增加数据多维化或预综合处理等操作。例如,对一些统计数据,首先进行预综合处理,建立不同层次级别的统计数据,从而满足快速统计分析和查询的要求。除了数据及处理上的不同之外,OLAP的前端产品的界面风格及数据访问方式也同OLTP有所区别。OLTP多为操作人员经常用到的固定表格,查询和数据显示也比较固定、规范。而OLAP多采用便于非数据处理专业人员理解的方式,如多维报表、统计图形等,查询及数据输出直观灵活,用户可以方便地进行逐层细化、切片、切块和数据旋转等操作。
 
       联机分析处理
        OLTP是传统关系型数据库的重要应用之一,主要是基本的、日常的事务处理,例如银行交易、电信计费、民航订票等,对响应时间要求比较高,强调的是密集数据更新处理的性能和系统的可靠性及效率。OLTP用短小和中等复杂程度的查询语句,读取或修改数据库中一个比较小的部分,数据访问方式是小的随机磁盘访问。
        OLTP是事件驱动、面向应用的。OLTP的基本特点是:对响应时间要求非常高;用户数量非常庞大,主要是操作人员;数据库的各种操作基于索引进行;对数据库的事务均已预先定义,查询简单,一般不牵涉到多表连接操作。
        OLAP使得数据分析人员能够从多角度对数据进行快速、一致、交互地存取,从而获得对数据更深入的了解。OLAP的目标是满足决策支持或者在多维环境下特定的查询和报表需求。下表列出了OLTP与OLAP之间的比较。
        
        OLTP与OLAP的比较
        OLAP是使分析人员、管理人员或执行人员能够从多角度对信息进行快速、一致、交互地存取,从而获得对数据的更深入了解的一类软件技术。OLAP的目标是满足决策支持或者满足在多维环境下特定的查询和报表需求,它的技术核心是“维”的概念。维是人们观察客观世界的角度,是一种高层次的类型划分。维一般包含着层次关系,这种层次关系有时会相当复杂。通过把一个实体的多项重要的属性定义为多个维,使用户能对不同维上的数据进行比较。因此OLAP也可以说是多维数据分析工具的集合。
        OLAP的基本多维分析操作有钻取、切片和切块、旋转等。
        (1)钻取:是改变维的层次,变换分析的粒度。它包括向上钻取和向下钻取。向上钻取是在某一维上将低层次的细节数据概括到高层次的汇总数据,或者减少维数;而向下钻取则相反,它从汇总数据深入到细节数据进行观察或增加新维。
        (2)切片和切块:是在一部分维上选定值后,关心度量数据在剩余维上的分布。如果剩余的维只有两个,则是切片;如果有3个,则是切块。
        (3)旋转:是变换维的方向,即在表格中重新安排维的放置(例如行列互换)。
        OLAP有多种实现方法,根据存储数据的方式不同,可以分为ROLAP(Relational OLAP,基于关系数据库的OLAP实现)、MOLAP(Multidimensional OLAP,基于多维数据组织的OLAP实现)、HOLAP(Hybrid OLAP,基于混合数据组织的OLAP实现)。
        (1)ROLAP:以关系数据库为核心,以关系型结构进行多维数据的表示和存储。ROLAP将多维数据库的多维结构划分为两类表:一类是事实表,用来存储数据和维关键字;另一类是维表,即对每个维至少使用一个表来存放维的层次、成员类别等维的描述信息。维表和事实表通过主关键字和外关键字联系在一起,形成了“星型模式”。对于层次复杂的维,为避免冗余数据占用过大的存储空间,可以使用多个表来描述,这种星型模式的扩展称为“雪花模式”。
        (2)MOLAP:以多维数据组织方式为核心,也就是说,MOLAP使用多维数组存储数据。多维数据在存储中将形成立方块(Cube)的结构,在MOLAP中对立方块的旋转、切块、切片是产生多维数据报表的主要技术。
        (3)HOLAP:低层是关系型的,高层是多维矩阵型的;或者反之。这种方式具有更好的灵活性。
        还有其他的一些实现OLAP的方法,如提供一个专用的SQL Server,对某些存储模式(如星型、雪片型)提供对SQL查询的特殊支持。
        OLAP工具是针对特定问题的联机数据访问与分析,它通过多维的方式对数据进行分析、查询和报表。多维分析是指对以多维形式组织起来的数据采取切片、切块、钻取、旋转等各种分析动作,以求剖析数据,使用户能从多个角度、多侧面地观察数据库中的数据,从而深入理解包含在数据中的信息。
   题号导航      2010年上半年 数据库系统工程师 上午试卷 综合知识   本试卷我的完整做题情况  
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 /
 
第65题    在手机中做本题