1、计算机三级(数据库技术)模拟试卷 5及答案与解析 一、选择题 1 设有关系模式 R(A, B, C, D), 其函数依赖集为 F=A-D, B-D, C-D 。如果将 R分解为 R1(A,B,C)和 R2(C,D),则该分解是( ) ( A)同时保持函数依赖和无损连接的分解 ( B)保持函数依赖但不保持无损连接的分解 ( C)保持无损连接但不保持函数依赖的分解 ( D)既不保持函数依赖也不保持无损连接的分解 2 下面关于模式分解的说法,错误的是( ) ( A)分解并不总能提高 查询效率 ( B)分解通常使得涉及属性少的查询执行效率更高 ( C)分解通常使得简单的更新事务执行效率更高 ( D)分
2、解总是能降低存储空间的要求,因为它能消除冗余数据 3 设有关系表:职工(职工号,姓名,领导职工号),其中职工号是主码,领导职工号是外码。当前表中没有任何数据。现在依次向该表中插入如下数据 (1) (e1, Tom, e2) (2) (e3, Jerry, null) (3) (null, Foo, null) (4) (e2, Fake, e2) (5) (e1, Ghost, e3) (6) (e4, Who, e1) 则最终该表中有多少行数据( ) ( A) 2 ( B) 3 ( C) 4 ( D) 5 4 数据库物理设计阶段是根据数据库逻辑设计的结果设计合适的数据库物理结构。下列关于数据
3、库物理设计的说法,错误的是( ) ( A)物理设计着眼于数据库底层的物理存储与存取,与操作系统和硬件环境及数据库管理系统密切相关 ( B)物理设计时需要合理安排不同的存储介质,索引文件一般存储在高速磁盘中,日志文件可以考虑存储在磁带中 ( C)物理设计过程中需要考虑设置合理的数据 库管理系统参数和操作系统相关参数 ( D)物理设计过程中需要考虑 RAID级别、操作系统的文件管理机制、数据库管理系统支持的索引类型 5 三层浏览器 /服务器架构是现在比较流行的应用系统架构。下列关于此架构的说法,错误的是( ) ( A)表示层使用 Web浏览器实现,位于客户端,一般无需安装其他程序 ( B)数据层位
4、于数据库服务器,由 DBMS完成数据存储和数据存取等数据管理功能 ( C)此架构将人机交互、应用业务逻辑和数据管理三类功能分离,提高了可维护性 ( D)与二层的客户 /服务器架构相比,此架 构在交互性、运行速度方面优势明显 6 设有下列关于数据库分析、设计与实现的工作: 用概念数据模型表示数据对象的特征及其相互间的关联关系 进行数据库的备份与恢复等日常维护 在 ER图的基础上确定数据库关系模式 调整数据库逻辑模式,确定文件组织与存取方式,评估物理模式 考虑分析 DBAS运行过程中备份数据库策略,如备份时间点和备份周期 VI事务和应用程序的编码及测试 上述工作中,属于 DBAS系统设计阶段工作的
5、是( ) ( A)仅 、 、 、 和 ( B)仅 、 、 和 ( C)仅 、 和 ( D)全部 7 下列是关于关系数据模型和关系表的说法: 关系数据模型以集合论为基础表示和处理数据 关系数据模型同时支持非过程化语言和过程化语言直接存取数据 “create table .“语句用于定义关系表的结构及数据完整性约束 在关系表上执行 select或 delete操作时, DBMS会检查数据完整性约束 上述说法中正确的是( ) ( A)仅 和 ( B)仅 和 ( C)仅 和 ( D)仅 和 8 在进行数据库物理设计时,为了保证系统性能 ,需要综合考虑所选择的数据库管理系统的特性及软硬件具体情况。下列关
6、于数据库物理设计的说法,错误的是( ) ( A)在频繁执行插入、修改和删除操作的表上建立索引可能会降低系统整体性能 ( B)在一张表的某列上需要频繁执行精确匹配查询时,可以考虑为此列建立哈希索引 ( C)为了提高写入性能,数据库一般应尽量避免存储在 RAID10的磁盘存储系统中 ( D)如果系统中存在频繁的多表连接操作,可以考虑将这些基本表组织为聚集文件,以提高查询效率 9 类图技术是面向对象方法的核心技术。下列所示 UML的类图, 正确的是( )10 设在 SQL Server 2008某数据库中有表 SC( Sno, Cno, Grade),其中 Grade列的类型为 int。若在查询成绩
7、时,希望将成绩按 “优 “、 “良 “、 “中 “、 “及格 “和 “不及格“形式显示,则下列 Case函数中正确的是( ) ( A) Case Grade When Grade between 90 and 100 THEN Grade = 优 When Grade between 80 and 89 THEN Grade = 良 When Grade between 70 and 79 THEN Grade = 中 When Grade between 60 and 69 THEN Grade = 及格 Else Grade = 不及格 End ( B) Case Grade When G
8、rade between 90 and 100 THEN 优 When Grade between 80 and 89 THEN 良 When Grade between 70 and 79 THEN 中 When Grade between 60 and 69 THEN 及格 Else 不及格 End ( C) Case When Grade between 90 and 100 THEN Grade = 优 When Grade between 80 and 89 THEN Grade = 良 When Grade between 70 and 79 THEN Grade = 中 When
9、 Grade between 60 and 69 THEN Grade = 及格 Else Grade = 不及格 End ( D) Case When Grade between 90 and 100 THEN 优 When Grade between 80 and 89 THEN 良 When Grade between 70 and 79 THEN 中 When Grade between 60 and 69 THEN 及格 Else 不及格 End 11 设在 SQL Server 2008某数据库中有销售表(商品号,销售时间, 销售数量,销售价格),其中商品号的类型为 char(6)
10、,销售价格的类型为 int。现要定义统计指定商品销售总价的标量函数。有下列定义该标量函数的语句 Create FUNCTION dbo.GetTotal(GoodID char(6) Returns int AS BEGIN Return(SELECT SUM(销售价格 ) FROM 销售表 WHERE 商品号 = GoodID) END Create FUNCTION dbo.GetTotal(GoodID char(6) Returns int AS BEGIN Returns(SELECT SUM(销售价格 ) FROM 销售表 WHERE 商品号 = GoodID) END Creat
11、e FUNCTION dbo.GetTotal(GoodID char(6) Returns int BEGIN Return(SELECT SUM(销售价格 ) FROM 销售表 WHERE 商品号 = GoodID) END Create FUNCTION dbo.GetTotal(GoodID char(6) Returns int Returns(SELECT SUM(销售价格 ) FROM 销售表 WHERE 商品号 = GoodID) 上述语句中,正确的是( ) ( A)仅 和 ( B)仅 和 ( C)仅 和 ( D)仅 和 12 分区表是将一个表的数据按水平方式划分为不同的子集,
12、从而可以更快速有效地访问数据子集。现有表 R(A, B)以及针对该表的如下 SQL语句,如果基于列 A对R进行范围分区,该分区设计方案能提高其性能的 SQL语句是( ) ( A) SELECT A,SUM(B) FROM R GROUP BY A ( B) SELECT A FROM R ORDER BY B, A ( C) DELETE FROM R WHERE A Y的蕴涵表达式。关联规则的强度可以用它的支持度 (s)和置信度 (c)度量。支持度确定规则可以用于给定数据集的频繁程度,而置信度确定 Y在包含 X的事务中出现的频繁程度。两者可以用公式表示: s(X- Y)N c(X- 从题目中
13、可以看到事务总数是 5, A的啤酒、尿布支持度计数是 3,啤酒支持计数是 3,所以 s=0.6, c=1。同理可得 B面包、尿布支持计数为 3,面包、尿布、牛奶支持计数是 2,所以 s=0.4, c=2/3。 C中,面包、牛奶支持计数为 3,面 包支持计数为 4,所以 s=0.6, c=0.75。 D中,面包、啤酒支持计数为 2,面包、啤酒、尿布支持计数为 2,所以 s=0.4, c=1。综上所述,结果选 A。 30 【正确答案】 D 【试题解析】 元数据是关于数据的数据,或者叫做描述数据的数据。元数据描述了数据的结构、内容、链和索引等项内容。在关系数据中,这种描述就是对数据库、表、列等其他对
14、象的定义。因此可推出, 、 和 不属于元数据。所以选D。 二、应用题 31 【正确答案】 第一空:元元模型层 第二空:用户模型层 【试题解析】 UML语义的四层建模概念框架分别是:元元模型层、元模型层、模型层和用户模型层。 32 【正确答案】 聚集 【试题解析】 在 UML中,聚集是一种特殊形式的关联,它表示类之间是整体与部分的关系。 33 【正确答案】 数据吞吐量 【试题解析】 数据库吞吐量指的是系统在单位时间可以完成的数据库事务数量。 34 【正确答案】 正确 【试题解析】 两段锁协议是指所有事务必须分两个阶段对数据项加锁和解锁: 在对任何数据进行读、写操作之前,要申请并获得对该数据的封锁
15、; 每个 事务中,所有的封锁请求先于所有的解锁请求。 加锁协议中两阶段加锁协议主要是为了防止事务间的相互干扰,进而保证事务调度的正确性。 35 【正确答案】 轮转法 【试题解析】 并行数据库中一维数据的划分方法如下: (1)轮转法:最适合于扫描整个关系; (2)散列划分法:比转转法更适合点查询,也适合顺序扫描关系; (3)范围划分法:明显利于范围查询和点查询。 36 【正确答案】 DELETED表 【试题解析】 在 SQL Server 2008中,对于更新操作的触发 器,系统将产生两张逻辑工作表,即 DELETED表和 INSERTED表。 DELETED表用于存储更新前数据, INSERT
16、ED用于更新后的数据。 37 【正确答案】 Bigtable 【试题解析】 Google的云数据库是一个分布式的结构化数据存储系统,称为Bigtable。 38 【正确答案】 292 【试题解析】 RAID5是一种存储性能、数据安全和存储成本兼顾的存储解决方案。它把数据和相对应的奇偶校验信息存储到组成 RAID5的各个磁盘上,并且奇偶校验信息和相对应的数据分别存储于不同的磁 盘上,其中任意 N一 1块磁盘都存储完整的数据,也就是说有相当于一块磁盘容量的空间用于存储奇偶校验信息。即当 RAID5的一个磁盘发生损坏后,不会影响数据的完整性,从而保证了数据安全。当损坏的磁盘被替换后, RAID还会自
17、动利用剩下的奇偶校验信息去重建此磁盘上的数据,来保持 RAID5的高可靠性。做 RAID5阵列所有磁盘容量必须一样大,当容量不同时,会以最小的容量为准,最好硬盘转速一样,否则会影响性能,而且可用空间 =磁盘数 n一 1,其中有一块专门用作校验,在存储数据的时候,校验盘里面不会被存人数据。因此 RAID5的磁盘 容量为硬盘总数一 l,即 3块 146G的硬盘的有效磁盘空间为 2146=292GB。 39 【正确答案】 数据准备 【试题解析】 知识发现指的是从数据集中识别出有效的、新颖的、潜在有用的以及最终可理解的模式的非平凡过程。知识发现将信息变为知识,从数据矿山中找到蕴藏的知识金块,将为知识创
18、新和知识经济的发展作出贡献,也是所谓 “数据挖掘 ”的一种更广义的说法。知识发现过程由以下三个阶段组成:数据准备、数据挖掘、结果的解释评估。 40 【正确答案】 主 【试题解析】 每个数据库有一个主数据文件和若干个 从文件。文件是数据库的物理体现。文件组可以包括分布在多个逻辑分区的文件,从而实现负载平衡,它允许对文件进行分组,以便于管理和数据的分配及放置。主文件组包含主要数据文件和任何没有明确指派给其他文件组的其他文件。 41 【正确答案】 位置 【试题解析】 分布式数据库系统按不同层次提供的分布透明性有: 分片透明性; 位置透明性; 局部映像透明性。位置透明性是指数据分片的分配位置对用户是透
19、明的,用户编写程序时只需要考虑数据分片情况,不需要了解各分片在各个场地的分配情况。 42 【正确答案】 数据块 【试题解析】 日志文件是用来记录事务对数据库的更新操作的文件。不同数据库系统采用的日志文件格式并不完全一样。概括起来日志文件主要有两种格式:以记录为单位的日志文件和以数据块为单位的日志文件。 43 【正确答案】 UNION 【试题解析】 SQtL中的集合操作符 IN、 EXCEPT、 INTERSECT和 uNION的用法分别为: IN,确定给定的值是否与子查询或列表中的值相匹配,使其得以选择与列表中的任意一个值匹配的行; EXCEPT,指在第一个集合中存在、但是不存在于第二个集合中
20、的数据; INTERSECT,是指在两个集合中都存在的数据; UNION,操作符用于合并两个或多个 SELECT。语句的结果集,对于UNION操作符,请注意, UNION内部的 SELECT语句必须拥有相同数量的列,列也必须拥有相似的数据类型。 SQL的 UNION子句语法是合并两个或多个查询语句的结果集,并且自动删除合并后结果集中的重复记录。 44 【正确答案】 DROP FUNCTION 【试题解析】 删除用户定义的函数的 TSQL语法的格式为: DROP FUNCTIONschemanamefunctionname, n 。 三、设计与应用题 45 【正确答案】 【试题解析】 ER图向关
21、系模式转换涉及到两方面: 实体的转换; 实体间联系的转换。 实体的转换:在从 ER图转换为关系模式时,一个实体就转换成一个关系模式,实体的属性就是关系模式的属性,实体的键就是关系的主键。 实体间联系的转换:实体间存在三种联系 ,即 1:1(一对一) ,1:m(一对多), m:n(多对多)。 在从 ER向关系模式转换规则如下: 1:1(一对一)联系 方法一:联系转换为独立的关系模式;模式的属性由联系本身的属性及两个实体的键构成 ;主键由两个实体中的任意一个键构成。 方法二:联系与一端的实体的关系模式合并,即将联系的属性加入到实体的关系模式内,主键不变。 1:m(一对多)联系 方法一:联系转换为独
22、立的关系模式;模式的属性由联系本身的属性及两个实体的键构成;主键由 n端实体的键组成。 方法二:与 n端的实体的关系模式合并,即将联系的属性加入到实体的关系模式内,主键不变。 m:n(多对多)联系 多对多联系转换成新的独立的模式时,模式的属性由联系本身的属性及两个实体的键构成,主键由两端实体的键组合而成。 该题的解题过程是 ER图向关系模式转换过 程的反向推算。 由于 T4中的 a3, a5分别是 T2和 T3的主码,根据 m:n(多对多)联系转换规则知道, T2模式代表的实体(假设实体名为 t2)和 T3模式代表的实体 (假设实体名为t3)之间存在 m:n(多对多)联系(假设联系名为 t4)
23、,且 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关系, t2和 t1之间存在 1: m关系。 46 【正确答案】 【第 1空】销售单价 *SUM(销售数量 ) 【第 2空】 t1.商品号 =t2.商品号 【第 3空】 t1.销售时间 【第 4空】 t2.类别 =lb 【
24、试题解析】 整个 select语句的含义是:根据 where子句的条件表达式,从From子句指定的基本表或视图中找出满足条件的元组,再按 select子句中的目标列表达式,选出元组中的属性值形成结果表。 该题中 (SELECT FROM 销售表 t1 WHERE and = year(Getdate()是个嵌套,别名叫做销售总金额。 语句执行过程: 先从商品表中按照第二个 where形成一个初步查询结果。由于只有商品表中有类别,因此可知第四空填写: t2.类别 =lb(t2是商品表的别名, t1是销售表的别名 )。由此可知该步是按给定类别查询。 销售总金额语句就应该在第一部的基础上求某年的总额
25、。因此可以推断第三空是获得销售时间语句。因此该空填写 t1.销售时间。由于是在第一步基础上的查询,所以应该实行连表查询,第二空应该填写连接的条件,即 t1.商品号 =t2.商品号。 第一空应该是求总额的语句。销售总金额 =销售单价 * 销售数量,即销售单价*SUM(销售数量 )。 47 【正确答案】 此方案不可行。触发器可以通过数据库中的相关表进行层叠更改,这比直接把代码写在前台的做法更安全合理,保证了数据的一致性,但同时增加了磁盘空间的消耗。在超市经营中要批量操作、多次触发的情况下,触发器的效率低,因为它相当于每次都执行一段 SQL语句,使 cpu的消耗更高。因而从时空代价角度来说并不能达到
26、优化的效果,故该方案不可行。 【试题解析】 在数据库设计阶段,主要强调 的是高效率利用存储空间,减少数据的冗余,减少数据的不一致性,这个过程也就是规范化的过程。但是在数据库运行阶段要考虑到高效率的进行数据处理。 完全规划化的数据库会产生很多表,对于一个频繁使用的查询,如果它要求操作多个相关表中的数据,则每次为生成需要的查询结果而在连接多个表中相关行时,数据库管理系统就会消耗更多的计算资源,因为连接操作非常耗时。 而反规范化是将规范化的关系转换为非规范化的关系的过程,目的是提高查询的效率。常见的方法有增加派生冗余列,增加冗余列,重新组表,分割表和新增汇总表等方法。 该题解决的方式就是增加派生冗余
27、列 -“付款总金额 “。派生性冗余列是指表中增加的列由表中的一些数据项经过计算而成,它的作用是查询时减少连接操作,避免使用聚合函数。例如销售单据明细表(销售单据编号,商品编号,单价,数量)中增加 “付款总金额 “,因为付款总金额 =单价 *数量得到,说明 “付款总金额 “是派生性冗余列。如果不要该字段,那么每次使用总价时,都要先执行代码计算后才能使用,如果商品数量较多,而且要频繁使用 “付款总金额 “时,计算 “付款总金额 “时执行的次数也会随着增加,这显然会影响数据库的执行效率。若增加 “付款总金 额 “这个派生性冗余字段,虽然破坏了规范化原则,但只要执行一次计算 “付款总金额 “就可以把商品金额存在数据库中,以后不管什么时候使用 “付款总金额 “字段,只需要提取其值就可以了,不必在执行代码了。因此增加 “付款总金额“,虽然提高了磁盘空间的使用,但是可以提高系统执行的效率,达到以空间换时间的目的。 由此可以看出,在数据单据表中增加 “付款总金额 “不是正确的优化方法,应该在数据单据明细表中增加 “付款总金额 “,这样才能提高查询效率。