计算机三级(数据库技术)模拟试卷50 (题后含答案及解析)
题型有:1. 选择题 3. 应用题 4. 设计与应用题
选择题
1. 数据库应用系统的数据处理需求可以表示为事务规范。下列描述中不属于事务规范的是( )。
A.事务用户 B.事务名称 C.事务描述
D.事务隔离性级别
正确答案:D
解析:事务规范包括了事务名称、事务描述、事务所访问的数据项、事务用户。故答案为D项。
2. 下列不属于数据库应用系统升级工作的是( )。 A.升级DBMS版本
B.修改程序以适应新需求 C.创建新的索引
D.改变数据库应用系统体系结构
正确答案:C
解析:创建新的索引属于数据库应用系统优化内容。故答案为C项。
3. 下列列出的建模方法中,不属于需求分析建模方法的是( )。 A.IDEF1X B.DFD C.IDEF0 D.UML
正确答案:A
解析:IDEF1X侧重分析、抽象和概括应用领域中的数据需求,被称为数据建模方法。故答案为A项。
4. 下列数据库结构设计中,包含对关系模式进行规范化处理工作的是( )。
A.数据库概念结构设计 B.数据库逻辑结构设计 C.数据库存取结构设计 D.数据库物理结构设计
正确答案:B
解析:关系模式的设计、规范化处理属于数据库逻辑结构设计的内容。故答案为B项。
5. 从功能角度数据库应用系统可以划分为四个层次来实现,其中数据的完整性维护工作出现在( )。
A.表示层 B.业务逻辑层 C.数据访问层 D.数据持久层
正确答案:D 解析:数据持久层负责保存和管理应用数据系统数据。而数据的完整性维护属于数据持久层功能中的数据管理的内容。故答案为D项。
6. 在进行事务设计时,如果把多个小事务合并成一个大事务来执行,则下列关于这种做法所带来影响的叙述,正确的是( )。
A.提高了事务的并发度 B.提高了发生活锁的可能性 C.提高了发生死锁的可能性 D.提高了系统的事务吞吐率
正确答案:C
解析:多个小事务合并成大事务,会增加占有锁的时间,可能会造成大量阻塞事务,甚至会产生死锁。故答案为C项。
7. 数据库应用系统的实施分为四个步骤。下列属于数据库应用系统实施工作的是( )。
A.系统监控 B.数据初始化 C.数据转储
D.数据库性能调优
正确答案:B
解析:数据库应用系统的实施工作包括创建数据库、装载数据、编写与调试应用程序、数据库试运行。故答案为B项。
8. 已知关系R(A,B,C),有定义索引的语句:create unique clustered index idx1 on R(B)。下列关于idx1的说法,正确的是( )。
A.idx1既是唯一索引,也是聚集索引 B.idx1既是主索引,也是聚集索引 C.idx1既是唯一索引,也是主索引
D.idx1既不是主索引,也不是聚集索引
正确答案:A
解析:关键字unique表示唯一索引,clustered表示聚集索引。故答案为A项。
9. 数据库应用系统内部结构一般分为静态结构与动态结构。下列关于UML中系统内部结构的说法,错误的是( )。
A.通信图也称为协作图,用于表示对象之间的联系以及对象间发送和接收的消息
B.类图主要表达的是问题领域的概念模型,用于表达抽象概念的名称、属性、行为及关系等系统中的静态结构
C.顺序图主要用于描述系统内对象之间的消息发送与接收序列,其主要目的是表达对象与对象之间沟通与合作的方式,属于系统的动态模型
D.通信图和顺序图都是交互图,从不同的侧面描述系统的动态结构,顺序图强调的是空间,通信图强调的是时间
正确答案:D
解析:顺序图强调的是时间,通信图强调的是空间。故答案为D项。
10. 设在SQL Server 2008某数据库中有图书表(书号,书名,出版日期,单价),其中“书号”是主码。现要查询2015年1月份出版的单价最高的前三本图书的详细信息。下列查询语句中能正确完成该查询要求的是( )。
A.SELECT * TOP 3 FROM图书表 WHERE出版日期BETWEEN’2015/1/1’AND’2015/1/31’ ORDER BY单价DESC
B.SELECT TOP 3 * FROM图书表 WHERE出版日期BETWEEN#2015/1/1#AND#2015/1/31# ORDER BY单价DESC
C.SELECT TOP 3 * FROM图书表 WHERE出版日期BETWEEN’2015/1/1’AND’2015/1/31’ ORDER BY单价DESC
D.SELECT * TOP 3 FROM图书表 WHERE出版日期BETWEEN #2015/1/1# AND #2015/1/31# ORDER BY单价DESC
正确答案:C
解析:选项A、D的语法格式不正确,TOP 3应该放在*之前,选项B的时间格式不正确。故答案为C项。
11. 设在SQL Server 2008中有如下定义触发器的语句: CREATE TRIGGER tri ON T1 INSTEAD OF INSERT AS…… 下列关于该触发器执行机制的说法,正确的是( )。
A.当在T1表上执行INSERT操作时,先执行INSERT操作,然后再执行tri触发器
B.当在T1表上执行INSERT操作时,只执行tri触发器,而不实际执行INSERT操作
C.当在T1表上执行INSERT操作时,先执行tri触发器,然后再实际执行INSERT操作
D.当在T1表上执行INSERT操作时,先执行INSERT操作,如果操作正
确,则无需执行tri触发器
正确答案:B
解析:使用FOR或者AFTER选项定义的触发器为后触发的触发器,即只有当引发触发器执行的语句中的操作都已成功执行,并且所有的约束检查也成功完成后,才执行该触发器。使用INSTEAD OF选项定义的触发器为前触发器。在这种模式的触发器中,指定执行触发器而不是执行引发触发器执行的SQL语句,从而替代触发的操作。 因此,可知本题中属于前触发器,即只执行tri触发器,而不实际执行INSERT操作。故答案为B项。
12. 下列关于SQL Server 2008游标中@ @ FETCH_STATUS的说法,正确的是( )。
A.每当对游标执行一次FETCH语句,系统都会自动对@ @FETCH—STATUS赋一次值
B.用户可以对@ @FETCH_STATUS变量进行赋值 C.用户可以在游标中声明@ @FETCH_STATUS变量
D.每个游标都有一个专属于自己的@ @FETCH_STATUS变量
正确答案:A
解析:在对游标数据进行提取的过程中,可以使用@ @FETCH_STATUS全局变量判断数据提取的状态。由于@ @ FETCH_STATUS对于在一个连接上的所有游标是全局性的,不管是对哪个游标,只要执行一次FETCH语句,系统都会对@ @ FETCH_STATUS赋一次值,以表明该FETCH语句的执行情况。故答案为A项。
13. 下列关于SQL Server 2008中model数据库的说法,错误的是( )。 A.model数据库是数据库管理系统自动创建的
B.用户创建的数据库都自动包含model数据库中的内容 C.用户数据库的大小不能小于model数据库的大小 D.model数据库的空间必须大于master数据库的空间
正确答案:D
解析:model数据库用作SQL Server实例上创建的所有数据库的模板。对mode1数据库进行的修改(如数据库大小、排序规则、恢复模式和其他数据库选项)将应用于以后创建的所有用户数据库,当用户创建一个数据库时,系统自动将mode1数据库中的全部内容复制到新建数据库中。故答案为D项。
14. 下列关于SQL Server 2008数据库中文件组的说法,错误的是( )。 A.在一个数据库中用户可以创建多个文件组
B.次要数据文件可以和主要数据文件存放在相同的文件组中 C.可以为日志文件单独定义文件组
D.PRIMARY是系统定义好的一个文件组,每个数据库有且仅有一个PRIMARY文件组
正确答案:C
解析:日志文件不包括在文件组内,日志文件和数据文件是分开管理的。故答案为C项。
15. 设在SQL Server 2008中,有如下创建分区函数的语句: CREATE PARTITION FUNCTION PFI(int) AS RANGE RIGHT FOR VALUES(1,100,200) 该语句的作用是( )。
A.创建了4个分区,各分区的取值范围分别是: 分区1:小于等于1 分区2:大于1且小于等于100 分区3:大于100且小于等于200 分区4:大于200
B.创建了4个分区,各分区的取值范围分别是: 分区1:小于1 分区2:大于等于1且小于100 分区3:大于等于100且小于200 分区4:大于等于200
C.创建了2个分区,各分区的取值范围分别是: 分区1:大于1且小于等于100 分区2:大于100且小于等于200
D.创建了2个分区,各分区的取值范围分别是: 分区1:大于等于1且小于100 分区2:大于等于100且小于200
正确答案:B
解析:CREATE PARTITION FUNCTION PF1(int)As RANGE RIGHT FOR VALUES(……n):其中……n用于指定分区的值得数目,所创建的分区数等于n+1。本题中n值分别为1、100、200,因此可以创建4个分区。由于采用了right关键字,在指定分区间隔值是由数据库引擎按升序从左到右排列时,指定边界值处于右侧,即1,100,200属于右侧,因此可以推断出分区的取值范围分别是(0,1),[1,100),[100,200),[200,∞)。故答案为B项。
16. 设某数据库中有表T1(c1,c2,c3),并只对U1执行了如下授权语句: GRANT SELECT ON T1 TO U1 下列语句中,U1无权执行的是( )。
A.GRANT SELECT ON T1 TO U2 B.SELECT * FROM T1 C.SELECT c1 FROM T1 D.SELECT c1,c2 FROM T1
正确答案:A
解析:因在U1后面缺乏WITH GRANT OPTION语句,U1无权将SELECT权限转授予其他角色或用户。故答案为A项。
17. 下列关于SQL Server 2008中guest的说法,错误的是( )。 A.guest在未启用时不能使用 B.可以为guest授权
C.guest是系统定义的一个登录账户 D.guest主要用于提供匿名访问
正确答案:C
解析:guest是SQL Server中一个特殊的数据库用户。故答案为C项。
18. 下列有关数据库运行维护过程中数据库的重组和重构操作,说法错误的是( )。
A.整理回收空间碎片属于数据库重组操作 B.升级数据库软件版本属于数据库重构操作 C.改变某一列的数据类型属于数据库重构操作
D.调整数据库服务器磁盘分区属于数据库重组操作
正确答案:B
解析:数据库重组是指按照系统设计要求对数据库存储空间进行全面调整,如调整磁盘分区方法和存储空间,重新安排数据的存储,整理回收碎块等,以提高数据库性能。 数据库的重构是指由于数据库应用环境的不断变化,增加了新的应用或新的实体,取消了某些应用,有的实体与实体间的联系也发生了变化等,使得原有的数据库设计不能满足新的需求,此时需要调整数据库的模式和内模式。 数据库的重组并不修改数据库原有设计的逻辑结构和物理结构,而数据库的重构则不同,它可以部分修改数据库的模式和内模式。故答案为B项。
19. 下列关于数据库优化的说法,错误的是( )。
A.增加数据库内存数量可以在一定程度上降低数据库服务器IO操作 B.性能优化过程有可能需要对应用系统相关程序进行修改 C.性能优化操作由DBA完成,应用开发人员无需参与 D.为了提高系统写性能,可以考虑将RAID5改为RAID1
正确答案:C 解析:调整一个数据库应用系统的性能要求熟悉系统环境、数据库管理系统、应用程序以及应用程序所使用的数据。数据库性能优化是对数据库管理员的严峻考验,有时候对应用程序的修改需要应用开发人员配合才能完成。故答案为C项。
20. 数据库优化工作中,下列关于增加冗余列的说法,错误的是( )。 A.该方法一般不能减少查询时的连接操作
B.该方法实施后的关系模式将不符合第三范式要求
C.该方法实施后,需要使用触发器或应用程序改造等方法保证数据一致性 D.该方法将增加数据库存储空间
正确答案:A
解析:派生性冗余列是指表中增加的列由表中的一些数据项经过计算生成。他的作用是在查询时减少连接操作,避免使用聚合函数。由于增加了派生性冗余字段,破坏了规范化规则。故答案为A项。
21. 在数据库系统运维过程中,当对有索引表的数据进行大量更新后,为了提高数据库查询性能,下列操作中,一般情况下最合适的是( )。
A.将该表数据导出后重新导入
B.重建该表上的索引并重启数据库 C.重新启动数据库 D.重建该表上的索引
正确答案:D
解析:除了删除或创建索引,以及非聚簇索引和聚簇索引的相互转换外,通过重建索引可以改进系统的性能。故答案为D项。
22. 下列关于数据库设计、运行和维护工作的叙述,错误的是( )。 A.数据的备份和恢复一般由数据库管理员负责
B.数据库应用系统投入运行标志着数据库设计工作结束,数据库进入运维阶段
C.为了保证数据可靠性,可以考虑将多个数据副本放到不同的地点 D.运维过程中,应对空间使用的增长情况进行监控
正确答案:B 解析:数据库应用系统投入运行标志着系统开发任务的基本完成和系统运行维护工作的开始。故答案为B项。
23. 数据转储也被称为数据备份,是数据库管理员的重要工作。下列有关此项工作的说法,正确的是( )。
A.检查点技术可以大幅度降低数据库转储时间
B.和增量转储相比,差量转储速度慢,但存储空间占用少
C.在制定备份策略时,除考虑使用备份恢复时丢失的数据量外,还需考虑数据库备份所需的时间
D.从数据恢复角度来看,差量转储比完全转储恢复时间短
正确答案:C
解析:在制定备份策略时,除考虑使用备份恢复时丢失的数据量外,还需考虑数据库备份所需的时间。检查点技术大幅度减少了数据库完全恢复时所必须执行的日志部分。静态转储虽然保证了数据的有效性,但是却是以降低数据库的可用性为代价;动态转出虽然提高了数据库的可用性,但数据的有效性却可能得不到保障。差量转储和增量转储相比,速度慢,占用空间较多,但恢复速度比增量转储快。故答案为C项。
24. 在SQL Server 2008中,下列有关数据库备份设备的说法,正确的是( )。
A.数据库备份设备可以是磁带也可以是磁盘
B.必须先手工建立数据库备份设备,然后才能进行数据库备份操作 C.数据库备份设备只能在本地,不能直接使用远程网络设备 D.创建备份设备的T-SQL存储过程为sp_addevice
正确答案:A 解析:数据库备份设备可以是磁带也可以是磁盘,数据库备份设备可以为本
地设备,也可以使用远程网络设备。SQL Server支持两种备份方式,一种是先建立备份设备,然后再将数据库备份到备份设备上,这样的备份设备称为永久备份设备;另一种是直接将数据库备份到物理文件上,这样的备份设备称为临时备份设备。创建备份设备的T-SQL存储过程为sp_addumpdevice。故答案为A项。
25. 在SQL Server 2008中,下列关于事务日志备份的说法,正确的是( )。 A.可以对大容量操作日志备份按时间点恢复
B.结尾日志备份仅包含纯日志记录,不包含大容量操作日志记录
C.纯日志备份只包括一定时间间隔内的事务日志,不包含大容量操作日志记录
D.结尾日志备份一般是在纯日志备份完成后,为了加快日志备份速度而进行的操作
正确答案:C 解析:事务日志备份仅用于完整恢复模式和大容量日志恢复模式,它并不备份数据库本身,只备份日志记录,而且只备份从上次备份之后到当前备份时间发生变化的日志内容。但是不允许对大容量操作日志备份进行时点恢复。结尾日志备份在出现故障时进行,用于防止丢失数据,可以包含纯日志记录或者大容量操作日志记录。故答案为C项。
26. 云计算包含互联网上的应用服务及在数据中心提供这些服务的软硬件设施,其中SaaS指( )。
A.平台即服务 B.基础设施即服务 C.软件即服务 D.社会即服务
正确答案:C
解析:SaaS,即Software as a Service,中文意思是软件即服务。
27. 下列关于数据划分与并行算法的说法,错误的是( )。
A.如果排序属性恰好为范围划分的划分属性,则可以直接将各个划分的排序结果串接起来,得到完全排好序的关系
B.相比轮转法,散列划分方法能够使划分结果更适合于点查询
C.用轮转法对数据进行划分最适合于需扫描整个关系的应用,对这种应用可以更好地实现负载均衡,充分发挥并行性
D.SUM、MIN、MAX等聚集函数一般都无法实现并行化
正确答案:D
解析:聚集函数的并行化计算可以采取“先分后合”的方法。故答案为D项。
28. 分布式数据库的分布透明性使用户完全感觉不到数据是分布的,使分布式数据库具有分布式透明性的主要因素是( )。
A.位置独立性、数据分片独立性和数据复制独立性
B.位置独立性、硬件独立性和操作系统独立性 C.网络独立性、硬件独立性和操作系统独立性 D.数据分片独立性、硬件独立性和网络独立性
正确答案:A 解析:位置独立性、数据分片独立性和数据复制独立性是使分布式数据库具有分布式透明性的主要因素。故答案为A项。
29. 在建立数据仓库的数据集成工作中,需要采用适当的策略从数据源获取变化数据。下列数据表中,一般情况下不适宜采用快照方式从业务系统获取数据的是( )。
A.顾客表、商品类别表 B.门店表、销售人员表
C.商场商品销售表、电信公司通话详单 D.商品清单、商品类别表
正确答案:C 解析:快照是关于指定数据集合的一个完全可用拷贝,该拷贝包括相应数据在某个时间点(拷贝开始的时间点)的映像。快照可以是其所表示的数据的一个副本,也可以是数据的一个复制品。它反映的是某个时间点内的数据,该数据具有不可以改变性。而商场商品销售表、电信公司通话详单属于动态数据,不适合用快照的方式获取数据。故答案为C项。
30. 设有某通信公司的业务支撑系统,该系统中存在如下各种数据或文档 Ⅰ.通话详单 Ⅱ.短信数据 Ⅲ.系统ER图及说明文档 Ⅳ.物理平台的数据字典及其说明文档 Ⅴ.用户名单 Ⅵ.用户每月费用支出分类汇总数据 Ⅶ.用户缴费记录 以上各类数据,属于元数据的是( )。
A.仅Ⅰ、Ⅱ和Ⅴ
B.仅Ⅲ、Ⅳ、Ⅴ和ⅦI C.仅Ⅳ、Ⅵ和Ⅶ D.仅Ⅲ和Ⅳ
正确答案:D
解析:元数据是关于数据的数据,或者叫做描述数据的数据,它描述了数据的结构、内容、链和索引等项的内容。题干中只有Ⅲ和Ⅳ符合定义。其余的内容都是用户数据。故答案为D项。
应用题
31. 数据库管理系统提供了数据定义语言(DDL),用于定义各种数据库对象。数据定义语句经DDL编译器编译后,各种对象的描述信息存放在数据库的_______中。
正确答案:数据字典
解析:数据字典是对系统中各类数据描述的集合,是进行详细的数据收集和数据分析所获得的主要成果。数据字典在数据库设计中占有很重要的地位,通常包括数据项、数据结构、数据流、数据存储和处理过程5个部分。
32. 关系数据库中要求关系的主码不能为空,这属于数据模型三要素中的_______。
正确答案:完整性约束
解析:数据模型通常由数据结构、数据操作和完整性约束三部分构成。数据的完整性约束是一组完整性规则,它是给定的数据模型中数据及其联系所有的制约和依存的规则,用以限定符合数据模型的数据库状态及状态的变化,以保证数据的正确、有效、相容。实体的完整性规定,主码的任何属性都不能为空,因为概念模型中实体和联系都是可区分的,而且它们以码为唯一性标识。如果主码的属性值可以为空,则意味着在概念模型中存在着不以码为唯一性标识的实体。显然前后矛盾。
33. 设有如下UML图。该图是一种_______图。
正确答案:顺序 解析:顺序图主要用于描述系统内对象之间的消息发送和接收序列。它有两个坐标轴:纵向表示时间的持续过程,横向表示对象,每一个对象用矩形框表示,纵向的虚线表示对象在序列中的执行情况。顺序图的第一个消息一般在左边第一个对象的生命线顶端,其他消息按时间顺序相继插入顺序图中,后面发生的消息的线应比前面发生的消息的线画得低一些,以表示它们之间的时间关系。
34. 现有系表(系号,系名,联系电话)和教师表(教师号,教师名,职称,工资,系号)。目前某些系还没有招聘到教授,如果要用一个查询语句列出没有招聘到教授的系的系号和系名,用_______连接操作可以实现这个查询。
正确答案:外
解析:两个关系R与S在做自然连接时,选择两个关系在公共属性上值相等的元组构成新的关系。关系R中某些元组有可能在S中不存在公共属性上值相等的元组,从而造成R中这些元组在操作时被舍弃,同样,S中某些元组也可能被舍弃。如果把舍弃的元组也保存在结果关系中,而在其它属性上填空值(Null),那么这种连接就叫外连接。题中两个表做外连接,那些没有对应教师的系也会被留下来,方便查看。
35. 设有商品表(商品号,商品名,商品类别),其中商品号为主码,商品名和商品类别不为空。现要统计商品数量最多的前3类商品(包括并列情况),希望列出商品类别和商品数量。请补全下列语句: SELECT_______商品类别,COUNT(*)As商品数量 FROM商品表 GROUP BY商品类别 ORDER.BY COUNT (*) DESC
正确答案:TOP 3 WITH TIES
解析:希望选出商品数量最多的前3类商品,并获得相应的商品类别和数量。with ties一般是和Top、order by相结合使用,表示包括与最后一行order by后面的参数取值并列的结果。
36. 在SQL Server 2008中,每个数据页可存储8060字节的数据。设表T有10000行数据,每行占用4031字节,则存储该表数据大约需要_______MB存储空间,其空间利用率大约是_______%。(存储空间和空间利用率均保留到整数,小数点后按四舍五入处理)
正确答案:第一空:80 第二空:50
解析:在SQL Server中,数据存储的基本单位是页。为数据库中的数据文件(.mdf或.ndf)分配的磁盘空间可以从逻辑上划分成页(从0到n连续编号),磁盘I/O操作在页级执行。也就是说,SQL Server读取或写入所有数据页。在SQL Server中,页的大小为8KB,这意味着SQL Server数据库中每MB有128页,每页的开头是96字节的标头,用于存储有关页的系统信息,此信息包括页码、页类型、页的可用空间以及拥有该页的对象的分配单元ID。行不能跨页,但是行的部分可以移出行所在的页,因此行实际可能非常大。页的单个行中的最大数据量和开销是8,060字节,由于题目中2行数据加起来的存储空间大于数据页,所以每页只能存储一行,因为1M有128页,也就可以存储128行,10000/128得80MB空间。至于空间利用率(实际存储数据量/所占的存储空间),考虑到每行4031字节为8060的一半,所以近似得到50%。
37. 使用约束可以保证数据库中数据的正确性,其中_______约束允许出现空值但不允许出现重复值。
正确答案:UNIQUE 解析:数据表中对于某一列数据的唯一性约束有UNIQUE约束和PRIMARY约束,但两者之间有区别。PRIMARY KEY约束多为强调主键不可出现相同元素,但想要强制一列或多列组合(不是主键)的唯一性时应使用UNIQUE约束而不是PRIMARY KEY约束。而且,UNIQUE约束允许出现空值,PRIMARY KEY约束不允许出现空值。
38. 在SQL Server 2008中,设logl是SQL Server身份验证模式的数据库服务器登录帐户。现要授予log1具有创建数据库的权限,请补全下列语句: EXEC sp_addsrvrolemember’log1’,’_______’。
正确答案:dbcreator
解析:EXEC sp_addsrvrolemember是登录账户权限之意,sp_addsrvrolemember。是定义好的存储过程。其作用是为登录账户赋角色权限。数据库主要的角色及权限如下表:
39. 数据库管理系统一般通过周期性检查_______图来实现死锁检测。
正确答案:事务等待
解析:事务等待图是一个有向图G=(T,U),T为结点的集合,每个结点表示正在运行的事务;U为边的集合,每条边表示事务等待的情况。若事务T1等待事务T2,则T1、T2之间有一条有向边,从T1指向T2。如果发现图中存在回路,则表示系统中出现了死锁。
40. 一个事务执行过程中,其正在访问的数据被其他事务修改,导致处理结果不正确。这是由于不满足并发事务间的_______性而引起的。
正确答案:隔离 解析:当多个用户并发地存取数据时就会产生多个事务同时存取一个数据的情况,若对并发操作不加控制就可能会存取不正确的数据,破坏事务的一致性和数据库的一致性。并发操作带来的数据不一致性主要包括丢失修改、不可重复读和读“脏”数据,产生上述三类数据的:不一致性主要原因就是并发操作破坏了事务的隔离性,所以数据库管理系统必须提供并发控制机制。
41. 在数据库系统出现系统故障后进行恢复时,对于事务T,如果在日志文件中有BEGINTRANSACTION记录,也有COMMIT记录,但其对数据的修改没有写到数据库中,则数据库管理系统处理这种事务时应执行的操作是_______。
正确答案:REDO 解析:系统故障造成数据库不一致状态的原因有两个,一是未完成的事务对数据库的更新可能已写入数据库,二是已提交事务对数据库的更新可能还留在缓冲区没来得及写入数据库。对于故障发生前已提交的事务(既有BEGIN Transaction,又有commit)做redo操作,对于故障发生时尚未完成的事务(只有 BEGIN Transaction,而没有commit或rollback)做undo操作。
42. 设某并行数据库采用一台具有14个刀片的刀片服务器,每个刀片具有独立的内存和磁盘,各刀片之间通过刀片服务器上的以太网交换机实现通信,则该并行数据库采用的体系结构是_______结构。
正确答案:无共享
解析:并行数据服务器分为两种结构:完全共享资源结构、完全不共享资源结构。完全共享资源结构指对每个数据项的存取都要经过公共通信线路,其所有的处理器共享内存、磁盘等资源。完全不共享资源结构指高功能计算机系统由多个较小的系统替代,每个站点都要实现全局数据目录,每个站点有独立的内存和磁盘对应该站点的服务器。
43. 数据仓库是一个面向_______的、集成的、非易失的、且随时间变化的数据集合。
正确答案:主题 解析:数据仓库是为了构建新的分析处理环境而出现的一种数据存储和组织技术,基本特征包括:数据是面向主题的、集成的、非易失的、随时间不断变化
的。主题是一个在较高层次上对数据的抽象,这使得面向主题的数据组织可以独立于数据的处理逻辑,因而可以在这种数据环境上方便地开发新的分析型应用。
44. 粒度是反映数据库系统中综合程度的指标。设有表T1(商品标识,销售时间,销售量)、T2(商品标识,日期,总销售量)和T3(商品类别,月份,总销售量),其中粒度最大的表是_______。
正确答案:T3 解析:粒度问题是设计数据仓库的一个最重要方面。粒度是指数据仓库的数据单位中保存数据的细化或综合程度的级别。细化程度越高,粒度级就越小;相反,细化程度越低,粒度级就越大。由题意可知,粒度最大的表应是T3。
设计与应用题
45. 已知有如下关系模式: T1(a1,a2,a3,a5),T2(a3,a4),T3(a5,a6),T4(a3,a5,a7),其中带下划线的属性标识为所在关系模式的主码,T1中的a3是参照T2的外码,T1中的a5是参照T3的外码,T4中的a3是参照T2的外码,T4中的a5是参照T3的外码。 请将上述关系模式用适当的ER图表示出来,并用下划线标注出作为实体主码的属性。
正确答案:
解析:ER图向关系模式转换涉及到两方面:①实体的转换;②实体间联系的转换。 实体的转换:在从ER图转换为关系模式时,一个实体就转换成一个关系模式,实体的属性就是关系模式的属性,实体的键就是关系的主键。 实体间联系的转换:实体间存在三种联系,即1:1(一对一)联系,1:m(一对多)联系,m:n(多对多)联系。 在从ER向关系模式转换规则如下: 1:1(一对一)联系 联系转换为独立的关系模式;模式的属性由联系本身的属性及两个实体的键构成;主键由两个实体中的任意一个键构成。 1:m(一对多)联系 联系转换为独立的关系模式;模式的属性由联系本身的属性及两个实体的键构成;主键由m端实体的键组成。 m:n(多对多)联系 多对多联系转换成新的独立的模式时,模式的属性由联系本身的属性及两个实体的键构成,主键由两端实体的键组合而成。 该题主要考查的是ER图向关系模式转换过程的反向推算。 由于T4中的a3,a5分别是T2和T3的主码,根据m:n(多对多)联系转换规则知道,T2模式代表的实体(假设实体名为t2)和T3模式代表的实体(假设实体名为t3)之间存在m:n(多对多)联系(假设联系名为t4),且a7是联系的属性。由于a4和a6没有在T4中,因此可以推论出a4和a6不是联系的属性,而是实体t2和实体t3的属性。 由于关系模式T1中的a3,a5分别是T2和T3的主码,a1、a2不属于T2、T3、T4,因此可以推断a2不是实体T2、T3和T4的属性。只能是另外一个实体(假设实体t1)的属性。而t2和t1之间存在1:m关系,t3和t1之间存在1:m关系。
46. 设在SQL Server2008某数据库中有商品表和销售表,两个表的定义如下: CREATE TABLE商品表( 商品号char(10)PRIMARY KEY, 商品名varchar(40), 类别varchar(20), 进货单价int); CREATETABLE
销售表( 商品号char(10)REFERENCES商品表(商品号), 销售时间datetime, 销售数量int, 销售单价int, PRIMARYKEY(商品号,销售时间)); 现要创建一个存储过程:查询指定类别的每种商品当前年销售总金额(销售总金额=销售 单价*销售数量)。请补全下列代码。 CREATEPROC p_TotalProfit @ 1b varchar(20) AS SELECT商品名,(SELECT【1】_______FROM销售表t1 WHERE【2】_______and 【3】_______=year(Getdate( )))AS销售总金额FROM商品表t2 WHERE【4】_______
正确答案:第一空:销售单价*SUM(销售数量) 第二空:t1.商品号=t2.商品号 第三空:t1.销售时间 第四空:t2.类别=@ 1b
解析:①整个Select语句的含义是:根据Where子句的条件表达式,从From子句指定的基本表或视图中找出满足条件的元组,再按select子句中的目标列表达式,选出元组中的属性值形成结果表。 ②该题中(SELECT。FROM销售表t1 WHERE and=year(Getdate( )))是个嵌套,别名叫做销售总金额。 ③语句执行过程: 先从商品表中按照第二个Where形成一个初步查询结果。由于只有商品表中有类别,因此可知第四空填写:t2.类别=@ 1b(t2是商品表的别名,t1是销售表的别名)。由此可知该步是按给定类别查询。 销售总金额语句就应该在第一部的基础上求某年的总额。因此可以推断第三空是获得销售时间语句。因此该空填写t1.销售时间。由于是在第一步基础上的查询,所以应该实行连表查询,第二空应该填写连接的条件,即t1.商品号=t2.商品号。 第一空应该是求总额的语句。销售总金额=销售单价*销售数量,即销售单价*SUM(销售数量)。
47. 设某超市经营管理系统使用SQL Server 2008数据库管理系统,此数据库服务器有2颗CPU、16GB内存、2TB磁盘。上线运行1年后,用户在生成每天每个销售人员及每个收银台的总销售额报表时速度缓慢。经技术人员分析,发现速度缓慢的原因为销售单据表和销售单据明细表数据量合计已经达到60GB。已知这两个表结构如下: 销售单据表(销售单据编号,销售时间,销售人员编号,收银台编号) 销售单据明细表(销售单据编号,商品编号,单价,数量) 在进行此报表计算时数据库服务器CPU消耗非常高。为了优化此操作,某工程师建议在销售单据表中增加“付款总金额”属性,取值由触发器自动计算。请从磁盘空间使用、销售操作时对数据库服务器的影响、数据一致性以及对总销售额计算速度影响方面分析此方案优劣。请判断此方案是否可行,并从时空代价和优化效果方面分析原因。
正确答案:此方案不可行。该方案不可行的原因有如下两点。 ①触发器可以通过数据库中的相关表进行层叠更改,这比直接把代码写在前台的做法更安全合理,保证了数据的一致性,但同时增加了磁盘空间的消耗。在超市经营中要批量操作、:多次触发的情况下,触发器的效率低,因为它相当于每次都执行一段SQL语句,使CPU的消耗更高。因而从时空代价角度来说并不能达到优化的效果。 ②在数据单据表中增加“付款总金额”属性并不是最优的解决方法,应该在数据单据明细表中增加“付款总金额”属性,这样才能提高查询效率。
解析:在数据库设计阶段,主要强调的是高效率利用存储空间,减少数据的冗余,减少数据的不一致性,这个过程也就是规范化的过程。但是在数据库运行
阶段要考虑到高效率的进行数据处理。 完全规范化的数据库会产生很多表,对于一个频繁使用的查询,如果它要求操作多个相关表中的数据,则每次为生成需要的查询结果而在连接的多个表中相关连时,数据库管理系统就会消耗更多的计算资源,因为连接操作非常耗时。 而反规范化是将规范化的关系转换为非规范化的关系的过程,目的是提高查询的效率。常见的方法有增加派生冗余列,增加冗余列,重新组表,分割表和新增汇总表等方法。 该题解决的方式就是增加派生冗余列——“付款总金额”。派生性冗余列是指表中增加的列由表中的一些数据项经过计算而成,它的作用是查询时减少连接操作,避免使用聚合函数。例如销售单据明细表(销售单据编号,商品编号,单价,数量)中增加“付款总金额”,因为付款总金额=单价*数量得到,说明“付款总金额”是派生性冗余列。如果不要该字段,那么每次使用总价时,都要先执行代码计算后才能使用,如果商品数量较多,而且要频繁使用“付款总金额”时,计算“付款总金额”时执行的次数也会随着增加,这显然会影响数据库的执行效率。若增加“付款总金额”这个派生性冗余字段,虽然破坏了规范化原则,但只要执行一次计算“付款总金额”就可以把商品金额存在数据库中,以后不管什么时候使用“付款总金额”字段,只需要提取其值就可以了,不必在执行代码了。因此增加“付款总金额”,虽然增加了磁盘空间的使用率,但是可以提高系统执行的效率,达到以空间换时间的目的。
因篇幅问题不能全部显示,请点此查看更多更全内容