
一、单项选择题(共40分;1-20题每题1分,21-30题每题2分)
1、在数据库应用系统的需求分析阶段,确定系统吞吐量的工作属于()。
A)数据处理需求分析
B)业务规则需求分析
C)性能需求分析
D)安全性需求分析
2、在一个ER图中,包含三个实体集,两个二元一对多联系,两个二元多对多联系,以及一个一元多对多联系。将该ER图转化为关系模型后,得到的关系模式个数是()。
A)4个
B)5个
C)6个
D)7个
3、DFD建模方法由数据项、处理、数据存储以及外部项组成。下列关于DFD表示方法的说法,错误的是()。
A)数据流用箭头表示
B)处理用矩形框表示
C)数据存储用圆角矩形框表示
D)外部项用菱形表示
4、IDEF1X是一种常用数据建模方法。下列关于IDEF1X标定型联系的表示实例,正确的是()。
A)
B)
C)
D)
5、下列关于各种索引的说法,正确的是()。
A)主索引一定是聚集索引
B)聚集索引一定是主索引
C)有序索引只适合范围查询
D)散列索引只适合点查询
6、连接操作是数据库中非常耗时的操作。下面列出了数据库中一些提高性能的做法:Ⅰ.增加冗余列,也就是将一个表的列复制到另外一个表中
Ⅱ.反规范化,也就是降低表的规范化程度
Ⅲ.在相关列上建立索引
Ⅳ.将表组织为聚集文件
以上做法中,能提高连接操作性能或减少连接操作的是()。
B)仅Ⅰ、Ⅱ和Ⅳ
C)仅Ⅱ、Ⅲ和Ⅳ
D)全部都是
7、已知有关系:员工(员工名,性别,出生日期,工资,部门名),对该关系有如下查询操作:
SELECT部门名,SUM(工资)FROM员工
WHERE性别='男'AND出生日期IS NOT NULL
GROUP BY部门名
为了加快其查询速度,则应该()。
A)在工资上建索引
B)在性别上建索引
C)在出生日期上建索引
D)在部门名上建索引
8、下列关于降低死锁可能性的说法,正确的是()。
A)提高事务的隔离性级别,发生死锁的可能性更低
B)使用表级锁比使用行级锁,发生死锁的可能性更低
C)将单个大事务拆分多个小事务,发生死锁的可能性更低
D)尽可能按随机顺序访问数据项,发生死锁的可能性更低
9、在数据库应用系统建模过程中,经常采用UML建模工具。下列关于UML建模机制的说法:Ⅰ.用例模型是把满足用户需求的所有数据结构表示出来的模型
Ⅱ.类图是展现一组类、接口和协作以及它们之间关系的静态视图
Ⅲ.状态图主要用来描述一个实体在发生一些事件时的状态变化情况
Ⅳ.顺序图主要用于描述系统、用例和程序模块中逻辑流程的先后执行次序或并行次序Ⅴ.活动图主要用于描述系统内对象之间的消息发送和接收流程
Ⅵ.包图是表示包及包之间的关系的类图
以上说法中,正确的是()。
A)仅Ⅱ和Ⅵ
B)仅Ⅰ、Ⅱ和Ⅴ
C)仅Ⅲ、Ⅳ和Ⅵ10、在SQL Server2008中,设有商品表(商品号,商品名,类别),现要查询与“冰箱”类别相同的其他商品的商品名。下列语句中最符合该查询要求的是()。
A)
SELECT T1.商品名FROM商品表T1JOIN商品表T2
ON T1.类别=T2.类别
WHERE T1.商品名='冰箱'
B)
SELECT T1.商品名FROM商品表T1JOIN商品表T2
ON T1.类别=T2.类别
WHERE T2.商品名='冰箱'
C)
SELECT T1.商品名FROM商品表T1JOIN商品表T2
ON T1.类别=T2.类别
WHERE T2.商品名='冰箱'AND T1.商品名!='冰箱'
D)
SELECT T1.商品名FROM商品表T1JOIN商品表T2
ON T1.类别=T2.类别
WHERE T1.商品名='冰箱'AND T2.商品名!='冰箱'
11、下列关于SQL Server2008触发器的说法,错误的是()。
A)触发器可用于实现复杂的业务规则
B)当触发器执行时都会生成INSERTED表和DELETED表
C)INSERTED表存储的是插入或更新后的数据
D)当后触发型触发器执行时,引发触发器执行的操作语句已执行完毕
12、在SQL Server2008中,设有如下定义的内联表值函数:
CREATE FUNCTION dbo.f_StuInfo(@dept varchar(20))
RETURNS TABLE AS
RETURN(SELECT S.Dept AS系名,COUNT(*)AS人数,
AVG(SC.Grade)AS平均成绩
FROM Student S JOIN SC ON S.Sno=SC.Sno
WHERE S.Dept=@dept GROUP BYS.Dept)
有下列利用该函数的查询语句:
Ⅰ.SELECT*FROM dbo.f_StuInfo('CS')
Ⅱ.SELECT Dept,COUNT(*),AVG(SC.Grade)FROM dbo.f_StuInfo('CS')
Ⅲ.SELECT人数,平均成绩FROM dbo.f_StuInfo('CS')Ⅳ.SELECT*FROM dbo.f_StuInfo('CS')WHERE人数>=50
上述语句中能正确执行的是()。
A)仅Ⅰ和Ⅱ
B)仅Ⅰ和Ⅲ
C)仅Ⅰ和Ⅳ
D)仅Ⅰ、Ⅲ和Ⅳ
13、下列关于SQL Server2008数据库文件的说法,错误的是()。
A)一个数据库可以包含多个数据文件和日志文件
B)一个数据文件只能是一个文件组的成员
C)主要数据文件和次要数据文件可以存放在相同的磁盘上
D)日志文件与数据文件不能存放在相同的磁盘上
14、下列关于在SQL Server2008中创建分区表的说法,正确的是()。
A)创建分区表的步骤是:先创建分区方案,然后创建分区函数,最后再利用分区方案创建分区表
B)创建分区方案的作用是告诉DBMS以什么方式对表进行分区
C)创建分区函数的作用是将分区方案生成的分区映射到数据库文件组中
D)不同的分区可以映射到相同的数据库文件组中
15、下列关于SQL Server2008分离和附加数据库的说法,错误的是()。
A)分离数据库之前,必须先断开所有用户与该数据库的连接
B)进行分离数据库操作时,SQL Server服务必须是启动状态
C)分离数据库时只需分离数据文件,不需要分离日志文件
D)分离和附加数据库是数据转移的一种方式
16、下列关于数据库用户的说法,正确的是()。
A)数据库用户可分为系统管理员、对象拥有者和普通用户三类
B)数据库用户可分为数据库创建者、表创建者和普通用户三类C)数据库用户可分为系统管理员、数据库创建者和普通用户三类
D)数据库用户可分为数据库创建者、表创建者和数据操作者三类
17、在SQL Server2008某数据库中,设用户U1是db_accessadmin角色中的成员。下列关于U1在该数据库中具有的权限的说法,正确的是()。
A)具有增、删、改、查所有用户表数据的权限
B)具有添加和删除数据库用户的权限
C)具有备份和恢复数据库的权限
D)具有创建数据库对象的权限
18、在数据库运行阶段,对数据库经常性的维护工作主要是由DBA完成的。下列工作中不属于数据库运行维护工作的是()。
A)监控数据库运行状态
B)数据库的重组与重构
C)对数据库管理系统打补丁升级
D)确定数据库软件选型和版本
19、数据库在运行一段时间后,可能需要对数据库进行重构。下列关于数据库重构工作的说法,错误的是()。
A)数据库重构一般在现有数据库结构不能满足新的业务需求时进行
B)数据库重构一般会需要调整数据库的模式和内模式
C)数据库重构工作是有限度的,只能对结构进行少部分修改,改动过大则需要重新设计数据库
D)数据库重构工作中进行碎片整理和回收可以提高数据库执行效率
20、数据库的监控分析是指数据库管理员借助工具检测数据库系统运行情况并进行分析的工作,设有如下内容:
Ⅰ.索引使用情况
Ⅱ.数据库应用系统是否可用
Ⅲ.数据库是否可用,用户是否可连接
Ⅳ.数据库服务器CPU使用情况
Ⅴ.临时段使用情况
以上属于数据库监控内容的是()。
A)仅Ⅰ、Ⅳ和Ⅴ
B)仅Ⅰ、Ⅱ和Ⅲ
C)仅Ⅰ、Ⅲ和Ⅴ
D)仅Ⅲ和Ⅳ
21、索引是数据库中重要的数据结构。关于索引有下列说法:
Ⅰ.与非聚集索引相比聚集索引更适合范围查询
Ⅱ.应为经常在查询中作为条件的属性建立索引
Ⅲ.表中数据大量更新后重建相关索引有可能提高查询速度
Ⅳ.索引有可能会占用大量磁盘空间,建立索引时需要考虑其空间需求
Ⅴ.频繁进行分组或排序操作的属性可以考虑为其建立索引
以上说法正确的是()。
A)仅Ⅰ、Ⅱ和Ⅳ
B)仅Ⅱ、Ⅳ和Ⅴ
C)仅Ⅰ、Ⅱ、Ⅲ和Ⅳ
D)全部都是
22、数据库运行环境和参数的调整是数据库优化的重要工作。下列关于此项工作的说法,错误的是()。
A)在进行服务器I/O调整时,为了提高磁盘写入速度可以将RAID1换成RAID5
B)增加服务器内存可以增加数据库可用内存,缓冲更多的磁盘数据,提高查询速度
C)当发现数据库CPU使用率很高时,可以考虑检查运行的SQL语句,对其进行调整
D)当有大量SQL语句在网络上传输时,可以考虑调整网络设备,提高数据库系统性能
23、下列关于数据转储的说法,错误的是()。
A)在静态转储过程中,数据库不能运行其他事务,不允许有任何的修改活动
B)仅使用完全转储会产生大量数据传输,占用的时间和空间都较多,甚至可能会影响业务系统的正常运行
C)差量转储只复制上次转储后发生变化的文件或数据块,相对完全转储占用空间小
D)增量转储只能和完全转储配合才能进行数据库恢复,增量转储的数据恢复时间比仅用完全转储时间长
24、设SQL Server2008中某数据库在8点进行了完整数据库备份,12点和16点分别进行了事务日志备份,18点进行了完整数据库备份,20点进行了事务日志备份。21点45分数据库出现故障,事务日志未丢失。现需要将数据库恢复到故障点,下列做法能够达到该要求的是()。
A)进行尾部事务日志备份→还原18点完整数据库备份→还原20点日志备份→还原尾部日志备份
B)还原18点完整数据库备份→还原20点日志备份
C)进行尾部事务日志备份→还原20点日志备份→还原尾部日志备份
D)还原8点完整数据库备份→依次还原12点、16点和20点日志备份
25、数据库管理员在定义备份策略时除了需要考虑特定的业务要求外,还需要尽量提高数据库的可用性,减少数据丢失。下列关于数据库备份策略的说法,错误的是()。
A)在进行数据库备份时,需要将数据库和备份数据放置在不同的设备上
B)在数据量比较小但是更改非常频繁的数据库中,一般可以减少完整数据库备份次数,增加日志备份次数,从而降低备份空间使用
C)在设计备份策略时,需要考虑能够实施备份的时间窗口、备份所需的硬件设备特性以及备份的测试方法
D)在数据库数据量不是很大且更新不频繁时,可以使用完整数据库备份方式
26、在常见的分布式数据库参考模式结构中,存在多种分布透明性。关于分布透明性,下列说法错误的是()。
A)分片透明性是最高级别的透明性
B)位置透明性是指数据分片的分配位置对用户是透明的,用户编写程序时只需要考虑数据分片情况,不需要了解各分片在各个场地的分配情况
C)局部数据模型透明性使用户在编写应用程序时不需要了解全局数据的分片情况,但是需要了解各场地上数据库的数据模型
D)分片透明性位于全局概念模式与分片模式之间
27、关于分布式数据库的参考模式结构,下列说法正确的是()。
A)全局概念模式是全局应用的用户视图,即终端用户看到的是逻辑上并未分布的表、视图等
B)局部概念模式是描述全局关系在场地上存储的物理片段的逻辑结构以及特征
C)全局外模式是描述全体数据的逻辑结构和特征
D)分片模式是描述局部概念模式所涉及的数据在本场地的物理存储28、关于并行数据库,下列说法错误的是()。
A)无共享结构,通过最小化共享资源来降低资源竞争的概率,因此具有很高的可扩展性
B)层次结构可以分为两层,顶层是共享内存或共享磁盘结构,底层是无共享结构
C)并行数据库系统经常通过负载均衡的方法来提高数据库系统的业务吞吐率
D)共享磁盘结构相比共享内存结构具有更大的优势,由于每个处理器都有内存,因此访问内存不再会产生冲突
29、下列关于数据仓库粒度的说法,错误的是()。
A)在数据仓库环境中,粒度是一个重要的设计问题,它影响到数据仓库的数据量和系统能够回答的查询的类型
B)一般在进行数据仓库的数据组织时,需要根据当前应用的需求来进行多粒度级设计
C)数据粒度越小,说明数据综合程度越低
D)数据粒度越大,数据量越大,空间代价越大
30、设某数据库中一组客户数据,表示具有m个客户的集合CS={c1,…,cm}。客户数据经过处理后,每个客户ci对应有一个n维向量Vi=[vi1,…,vin],用于表示客户ci的特征。设有函数sim(Vi,Vj)用于判定ci与cj之间的相似性。若有算法A,能根据客户间的相似性,将CS划分成k个子集合,并使属于同一子集合的客户间的相似性尽可能大,不属于同一子集合的客户间的相似性尽可能小。则算法A属于()。
A)分类算法
B)回归预测法
C)关联分析算法
D)聚类算法
二、应用题(共30分;每空2分)
31、从功能角度数据库应用系统可以划分为表示层、业务逻辑层、数据访问层、数据持久层四个层次,其中负责向表示层直接传送数据的是【31】层。
32、三层浏览器/服务器结构的数据库应用系统是由浏览器、数据库服务器和【32】服务器三部分组成的。
33、在UML中,【33】图主要用于描述对象在空间中如何交互,即除了动态交互,它也直接描述了对象是如何链接在一起的。在图中没有时间轴,而是将消息按序编号。
34、在T-SQL中,将查询结果保存到新表(NewTable)中的语句是
SELECT列1,列2【34】NewTable FROM表135、设有学生表(学号,姓名,所在系)和选课表(学号,课程号,成绩),现要利用开窗函数查询每个学生的姓名、所在系及考试平均成绩。请补全下列语句:
SELECT DISTINCT姓名,所在系,AVG(成绩)【35】(PARTITION BY T1.学号)AS平均成绩FROM学生表T1JOIN选课表T2ON T1.学号=T2.学号
36、在SQL Server2008中,设要在T表上创建一个针对插入和更新操作的后触发型触发器。请补全下列语句:
CREATE TRIGGER tri_T ON T1【36】INSERT,UPDATE AS…
36、在SQL Server2008中,设要在T表上创建一个针对插入和更新操作的后触发型触发器。请补全下列语句:
CREATE TRIGGER tri_T ON T1【36】INSERT,UPDATE AS…
37、在T-SQL中,提取cur1游标中倒数第5行数据的语句是
FETCH ABSOLUTE【37】FROM cur1…
38、在SQL Server2008中,通过对视图创建唯一聚集索引的方式可将视图的结果集保存到数据库中,这种视图被称为【38】视图。
39、在SQL Server2008中,具有查询全部用户表数据权限的数据库角色是【39】。
40、在SQL Server2008中,可以在查询语句里加入【40】子句实现以XML格式返回查询结果。
41、设SQL Server2008中有students数据库,在简单恢复模式下已经对其进行了完整数据库备份,且备份到了MyBK_1设备上,设此设备上仅有此次备份数据。请补全恢复此数据库的SQL语句:
【41】DATABASE students FROM MyBK_1
42、云计算包含互联网上的应用服务及在数据中心提供这些服务的软硬件设施,通常包括软件即服务、平台即服务、基础设施即服务。其中【42】即服务是指通过网络提供操作系统和相关服务,而无需下载或安装。
43、局部【43】透明性处于分配模式与局部概念模式之间,它使用户在编写应用程序时不但要了解全局数据的分片情况,还要了解各片段的副本复制情况及各片断和它们副本的场地位置分配情况,但是不需要了解各场地上数据库的数据模型。
44、在分布式数据库的数据分配中,若全局数据存在多个副本,在每个物理场地中都保存一个完整的数据副本,本策略属于【44】式。
45、在进行数据库优化时,如果采用分割表技术进行数据库模式调整,则进行【45】分割之后得到的所有表中除了都含有主码外其余列都不相同。
三、设计与应用题(共30分;每题10分)
46、在一个数据库中,相关表的建表语句如下
create table T1(
a1int primary key,
a2int,
a3int foreign key references T2(a3));
create table T2(
a3int primary key,
a4int,
a5int foreign key references T2(a3));
create table T3(
a6int primary key,
a7int);create table T4(
a1int foreign key references T1(a1),
a3int foreign key references T2(a3),
a6int foreign key references T3(a6),
a8int,
primary key(a1,a3,a6));
请画出相应的ER图,使得可以从该ER图推导出上述表定义,其中实体和联系的名称可以自定。
47、设在SQL Server2008某数据库中建有图书表和销售表,两个表的定义如下:CREATE TABLE图书表(
书号char(10)PRIMARY KEY,
书名varchar(40),
图书类别varchar(20),
进价int);
CREATE TABLE销售表(
书号char(10)REFERENCES图书表(书号),
销售时间datetime,
销售数量int,
售价int,
PRIMARY KEY(书号,销售时间));
现要创建一个存储过程:查询指定类别的每种图书在当前年累计销售总数量。请补全下列代码。
CREATE PROC p_TotalSales
@lb varchar(20)
AS
SELECT书名,
(
SELECT【1】
FROM销售表t1
WHERE【2】and
year(销售时间)=year(【3】)
)AS销售总数量
FROM图书表t2WHERE【4】
48、设某超市经营管理系统使用SQL Server2008数据库管理系统,上线运行1年后,用户反映速度缓慢。经技术人员分析,发现速度缓慢的原因为销售单据表和销售单据明细表数据量巨大,当进行这两个表相关查询时就会造成SQL语句执行缓慢。已知这两个表结构如下:
销售单据表(销售单据编号,付款总金额,销售时间,销售人员编号,收银台编号),销售单据明细表(销售单据编号,销售时间,商品编号,单价,数量,总价)
从业务上看,程序经常会查询1个月内和最近6个月内销售相关数据。为了保证系统稳定运行,两位工程师分别给出了两种优化方案:
甲工程师:按照销售时间将两张表分别拆分为每月一张表,在系统进行查询时按照给定条件到相关的表中直接查询,降低查询涉及到的数据。
乙工程师:使用SQL Server2008的分区功能,将两张表变为分区表,按照销售时间每年一个分区,降低查询涉及到的数据。
请从程序修改的难易程度、查询1个月内数据的执行速度、查询最近6个月内数据的执行速度3个方面比较甲乙工程师方案。
根据上述分析结果,请基于甲乙工程师的方案给出最合理的优化方案并说明理由。
答案
一、单项选择题
1、数据库应用系统的需求分析包括数据需求分析、功能需求分析(数据处理需求分析、业务规则需求分析)、性能需求分析(数据操作响应时间或数据访问响应时间、系统吞吐量、允许并发访问的最大用户数、每秒TPS代价值)、其他需求分析(存储需求分析、安全性需求分析、备份和恢复需求分析)。故答案为C项。
2、在ER图中,将实体和联系转换成关系模式的规则是:
(1)每一个实体集转换为一个关系模式;
(2)一对一、一对多联系中一端并入多端的实体关系模式中;
(3)每一个多对多联系转换成一个关系模式。
题目中有3个实体集,则可以得到3个关系模式;3个多对多联系则可以转换成3个关系模式,一共可以得到6个关系模式。故答案为C项。
3、在DFD建模方法中,数据流用箭头表示,处理用矩形框表示,数据存储用圆角矩形框表示,外部项用圆角框或者平行四边形框表示。故答案为D项。
4、在"确定型连接联系"中,如果子女实体集中的每个实例都是由它与双亲的联系而确定,那么这个联系就被称为"标定型联系"。在标定型联系中子女实体集总是从属实体集,标定型联系用一条实线或者线段把他们连接起来,1(父)端是线段的原点,n(子女)端是线段的终点,并用一个实心圆点表示其联系的基数是n。选项B、D中使用虚线连接,排除;C项中从属实体集应该用加了圆角的矩形框表示,排除。故答案为A项。
5、在数据文件的主码属性集上建立的索引称为主索引。主索引可以是聚集索引,也可以是非聚集索引。排除A项。
对数据文件和它的一个特定的索引文件,如果数据文件中数据记录的排列顺序与索引文件中索引项的排列顺序相一致,则称该索引文件为聚集索引。聚集索引可以是主索引,也可以是辅索引。排除B项。
有序索引技术利用索引文件实现记录域取值到记录物理地址间的映射关系。有序索引适用于查询某个范围的情况,也适用于点查询。排除C项。
散列技术利用一个散列函数实现记录域取值到记录物理地址间的直接映射关系。散列索引适用于查询某一个特定值的情况。
故答案为D项。
6、常见能提高连接操作性能或者减少连接操作的是:增加冗余列,指在多个表中增加具有相同语义的列,它常用来在查询时避免连接操作;反规范化,也就是降低表的规范化程度,减少表间的连接,提高查询性能;对于经常需要进行查询、连接、统计操作,且数据量大的基本表可以建立索引提高查询效率;聚集文件可以提高频繁进行多表连接操作的查询效率。故答案为D项。
7、索引的使用要恰到好处,其使用原则一般如下:
(1)经常在查询中作为条件被使用的列,应为其建立索引。
(2)频繁进行排序或分组(即进行group by或order by操作)的列,应为其建立索引。(3)一个列的值域很大时,应为其建立索引。
(4)如果待排序的列有多个,应在这些列上建立复合索引。
(5)可以使用系统工具来检查索引的完整性,必要时进行修复。
故答案为D项。
8、A项错误,隔离级别越高,越能保证数据的完整性和一致性,但是对并发性能的影响也越大。B项错误,表级锁速度快,但冲突多;行级冲突少,但速度慢。D项错误,随机顺序访问数据项比顺序访问数据项更容易发送死锁。故答案为C项。
9、在UML建模机制中,用例模型是把满足用户需求的所有功能表示出来的工具;类图是展现一组类、接口和协作以及它们之间关系的静态视图;状态图主要用来描述一个实体在发生一些事件时的状态变化情况;顺序图主要用于描述系统内部对象之间的消息发送和接收序列;活动图主要用于描述系统、用例和程序模块中逻辑流程的先后执行次序,并行次序;包图是表示包及包之间的关系的类图。所以说法正确的是Ⅱ、Ⅲ和Ⅵ。故答案为D项。
10、本题考查自连接与INNER(INNER可省略)JOIN……ON语句的应用。
如果连接操是一个表与其自己进行连接,称为表的自身连接。语法格式:SELECT查询内
容FROM表名表别名1,表名别名2……
(INNER,可省略)JOIN……ON语法格式:需要连接的表1JOIN需要连接的表2ON连接的条件。
本题中需要查询的是与"冰箱"类别相同的其他商品的商品名,因此可以排除A、B两项;D
项中,WHERE子句语法错误。故答案为C项。
11、DELETED表用于存储DELETE和UPDATE语句所影响的行的副本;INSERTED表用于存储INSERT和UPDATE语句所影响的行的副本。触发器在执行时并非会同时生成INSERTED表和DELETED表。故答案为B项。
12、II中Dept前缺少表名,正确格式是s.Dept,II错误,Ⅰ、Ⅲ和Ⅳ均正确。故答案为D项。
13、一个数据库有且只能有一个主要数据文件,可以有多个次要数据文件,主要数据文件和次要数据文件可以放在相同的磁盘上,也可以分开放置。一个数据文件不可以是多个文件组的成员,日志文件不包括在文件组内。日志文件和数据文件可以存放在相同的磁盘上,也可以存放在不同的磁盘上。故答案为D项。
14、创建分区表的步骤是创建分区函数、创建分区方案、使用分区方案创建表;创建分区函数的目的是告诉数据库管理系统以什么方式对表进行分区;创建分区方案的作用是将分区函数生成的分区映射到文件组中;不同的分区可以映射到相同的数据库文件组中。故答案为D 项。
15、分离数据库是指将数据库从SQL Server实例中删除,但不删除数据库的数据文件和日志文件。分离数据库实际就是让数据库的文件不受数据库管理系统的管理,使用户可以将数据库的数据文件和日志文件复制到另一台计算机上或者是同一台计算机的其他地方。故答案为C项。
16、数据库用户可分为系统管理员、对象拥有者和普通用户三类。故答案为A项。
17、db_datawriter:具有插入、删除和更新数据库中所有用户数据的权限。
db_accessadmin角色具有添加和删除数据库用户的权限;
db_backupoperator角色具有备份和恢复数据库的权限;
db_owner角色具有创建数据库对象的权限。
故答案为B项。
18、数据库的维护工作包括:数据库的转储和恢复;数据库的安全性和完整性控制;数据库性能的监控分析和改进;数据库的重组和重构。C项属于数据库安全性内容,D项不属于数据库系统运行维护工作。故答案为D项。
19、D项混淆了数据库重组和重构的功能,重组工作中进行碎片整理和回收可以提高数据库执行效率。故答案为D项。
20、根据监控对象不同,数据监控分析包括对数据库构架体系的监控(如空间基本信息、空间使用率与剩余空间大小、空间是否具有自动扩展的能力、哪些表的扩展将引起空间的扩展,以及段的占用空间与区间数等)和对数据库性能的监控(如数据缓冲区的命中率、库缓冲、用户锁、锁与等待、回滚段、临时段使用情况、索引的使用情况、等待事件和共享池等)。监控分析的对象是数据库而不是数据库系统。所以Ⅱ、IV不属于数据监控分析范围。故答案为C项。
21、索引在数据库中会占有一定的存储空间,建立索引时需要考虑其空间需求;与非聚集索引相比聚集索引更适合范围查询。索引使用的原则如下:(1)应为经常在查询中作为条件的属性建立索引;(2)表中数据大量更新后重建相关索引也可以提高查询速度;(3)频繁进行分组或排序操作的属性应为其建立索引;(4)一个列的值域很大时,应为其建立索引;(5)如果待排序的列有多个,应在这些列上建立复合索引。故答案为D项。
22、RAID(Redundant Arrays of Inexpensive Disks,磁盘阵列)磁盘阵列是由很多便宜、容量较小、稳定性较高、速度较慢磁盘组合成一个大型的磁盘组,利用个别磁盘提供数据所产生加成效果提升整个磁盘系统效能。RAID技术主要包含RAID0~RAID50等数个规范,它们的侧重点各不相同,其中RAID1可以提高读取性能和很高的数据安全性和可用性,而RAID5更适合于小数据块 23、差量转储是对最近一次数据库完全转储以来发生的数据变化进行转储。差量转储和完全转储相比速度快,占用较小的空间。增量转储只复制上次转储后发生变化的文件或数据块。C项混淆了增量转储和差量转储的概念,故答案为C项。 24、数据库的恢复顺序是: (1)还原最新完整数据库备份而不恢复数据库。 (2)如果存在差异备份,则还原最新的差异备份而不恢复数据库。 (3)从最后一次还原备份后创建的第一个事务日志开始,使用NORECOVERY选项依次还原日志。 (4)还原数据库,此步骤也可以与还原上一次日志备份结合使用。 本题中,数据库出现故障时事务日志没有丢失,因此进行尾部事务日志备份,将数据库损坏前没有备份的日志保存起来,然后按照数据库还原顺序首先还原18点进行的完整数据库备份,然后再还原20点进行的日志备份,最后还原尾部日志备份,最终实现数据库的恢复。故答案为A项。 25、在数据量比较小但是更改非常频繁的数据库中,一般采用减少完整数据库备份次数,增加差异备份和日志备份次数的策略,这样进行数据备份时备份和恢复的速度都比较快,而且当系统出现故障时,丢失的数据也非常少。故答案为B项。 26、分片透明性是最高级别的透明性,位于全局概念模式与分片模式之间。分片透明性是指数据分片是用户无需考虑的,完全透明的,在编写程序时用户只需要对全局关系进行操作。位置透明性是指数据分片的分配位置对用户是透明的,用户编写程序时只需要考虑数据分片情况,不需要了解各分片在各个场地的分配情况。 局部数据模型透明性使用户在编写应用程序时不但需要了解全局数据的分片情况,还要了解各片段的复本复制情况及各片段和他们副本的场地位置分配情况,但是不需要了解各场地上数据库的数据模型。 故答案为C项。 27、全局外模式是全局应用的用户视图,即终端用户看到的逻辑上并未分布的表、视图等;全局概念模式用于描述全体数据的逻辑结构和特征;分片模式用于描述每个数据片段以及全局关系到片段的映像,是分布式数据库系统中全局数据的逻辑划分视图;分配模式用于描述各片段到物理存放场地的映像;局部概念模式用于描述全局关系在场地上存储的物理片段的逻辑结构以及特征;局部内模式用于描述局部概念模式涉及的数据在本场地的物理存储。故答案为B项。 28、层次结构从全局角度来考虑,可分为两层,顶层是由若干节点组成的无共享结构,底层是共享内存或共享磁盘结构。故答案为B项。 29、粒度越大,表示综合程度越高;粒度越小,表示综合程度越低。粒度越小,细节程度越高,数据量就比较大,空间代价也大。故答案为D项。 30、聚类就是将一个数据集中的数据进行分组,使得每一组内的数据尽可能地相似而不同组间的数据尽可能地不同。它强调同一个组中的对象之间具有较高的相似度,而在不同组中的对象之间有很大的差别。本题中算法A符合聚类算法的思想,故答案为D项。 二、应用题 31、【答案】业务逻辑 【解析】表示层负责所有与用户交互的功能;业务逻辑层负责根据业务逻辑需要将表示层获取的数据进行组织后,传递给数据访问层,或将数据访问层获取的数据进行相应的加工处理后,传递给表示层用于展示;数据访问层负责与DBMS系统进行交互,提取或存入应用系统所需的数据;数据持久层负责保存和管理应用系统数据。 32、【答案】应用 【解析】三层浏览器/服务器结构的数据库应用系统是由浏览器、数据库服务器和应用服务器三部分组成的。 33、【答案】通信 【解析】通信图也称协作图,显示了在交互过程中各个对象之间的组织交互关系以及对象彼此之间的链接。通信图显示的是对象之间的关系,并不侧重交互的顺序,它没有将时间作为一个单独的维度,而是使用序列号来确定消息及并发线程的顺序。 34、【答案】into 【解析】当使用SELECT语句查询数据时,产生的结果是保存在内存中的。如果希望将查询结果永久保存下来,比如保存在一个表中,则可以通过在SELECT语句中使用INTO子句实现。语法格式为: SELECT查询列表序列INTO<新表名>FROM数据源 35、【答案】OVER 【解析】在SQL Server中,一组行被称为一个窗口,开窗函数是指可以用于“分区”或“分组”计算的函数。这些函数结合OVER子句对组内的数据进行编号,并进行求和、计算平均值等统计。因此,从这个角度来说,SUM、AVG以及ROW_NUMBER等都可以称为开窗函数。开窗函数可以分别应用于每个分区,把每个分区看成是一个窗口,并为每个分区进行计算,开窗函数必须放在OVER子句前边。 36、【答案】AFTER 【解析】使用AFTER或FOR选项定义的触发器为后触发的触发器,使用INSTEAD OF选项定义的触发器为前触发型触发器。 37、【答案】-5 【解析】游标中ABSOLUTE{n|@nvar}参数意义为:如果n或@nvar为正,返回从游标第一行开始的第n行,并将返回行变成新的当前行。如果n或@nvar为负,则返回从游标最后一行开始之前的第n行,并将返回行变成新的当前行。如果n或@nvar为0,则不返回行。n必须是整数常量,并且@nvar的数据类型必须为smallint、tinyint或int。 38、【答案】索引 【解析】在SQL Server2008中,对视图创建唯一聚集索引后,视图的结果集将存储在数据库中,就像带有聚集索引的表一样。建有唯一聚集索引的视图被称为索引视图,也称为物化视图。 39、【答案】db_datareader 【解析】SQL Server固定数据库角色有: db_owner:具有在数据库中进行全部操作的权限,包括配置、维护数据库及删除数据库。db_accessadmin:具有添加或删除数据库用户的权限。 db_securityadmin:具有管理数据库角色、角色成员以及数据库中的语句和对象的权限。 db_ddladmin:具有执行数据定义语言(DDL)的权限。 db_backupoperator:具有备份数据库、备份日志的权限。 db_datareader:具有查询数据库中所有用户数据的权限。 db_datawriter:具有插入、删除和更新数据库中所有用户数据的权限。 db_denydatareader:不允许具有查询数据库中所有用户数据的权限,等同于对所有的表和视图授予了DENY SELECT权限。 db_denydatawriter:不允许具有INSERT、DELETE和UPDATE数据库中所有用户数据的权限。 40、【答案】FOR XML 【解析】在SQL Server2008中,可以在查询语句里加入FOR XML子句实现以XML格式返回查询结果。 41、【答案】RESTORE 【解析】在T-SQL中恢复数据库使用RESTORE DATABASE语句,恢复事务日志使用RESTORE LOG语句。 42、【答案】平台 【解析】互联网上的应用服务一直被称作软件即服务,它是一种软件分配模式。平台即服务是指通过网络提供操作系统和相关服务,而无需下载或安装。基础设施即服务是指将用于支持运作的设备对外提供服务,这些设备包括存储、硬件、服务器和网络组件。 43、【答案】数据模型 【解析】局部数据模型透明性处于分配模式与局部概念模式之间,它使用户在编写应用程序时不但要了解全局数据的分片情况,还要了解各片段的副本复制情况及各片断和它们副本的场地位置分配情况,但是不需要了解各场地上数据库的数据模型。 44、【答案】全复制 【解析】分布式数据库的数据分配有: 集中式:所有数据片段都安排在一个场地上。 分割式:所有全局数据有且只有一份,它们被分割成若干片段,每个片段被分配在一个特定场地上。 全复制式:全局数据有多个副本,每个场地上都有一个完整的数据副本。 混合式:全局数据被分为若干个数据子集,每个子集被安排在一个或者多个不同的场地上,但是每个场地未必保存所有数据。 45、【答案】垂直 【解析】表分割有水平分割和垂直分割两种方式。水平分割是根据数据行的使用特点进行分割,分割之后所得的所有表的结构都相同,而存储的数据不同;垂直分割是根据数据列的特点进行分割,分割之后所得的所有表中除了都含有主码列外其余列都不相同。 三、设计与应用题 46、【参】 【解题思路】 ER图向关系模式转换涉及到两方面:①实体的转换;②实体间联系的转换。 实体的转换:在从ER图转换为关系模式时,一个实体就转换成一个关系模式,实体的属性就是关系模式的属性,实体的键就是关系的主键。 实体间联系的转换:实体间存在三种联系,即1:1(一对一)联系,1:m(一对多)联系,m:n(多对多)联系。在从联系向关系模式转换时规则如下: (1)1:1(一对一)联系 方法一:联系转换为的关系模式;模式的属性由联系本身的属性及两个实体的键构成;主键由两个实体中的任意一个或二个主码构成。 方法二:联系与一端的实体的关系模式合并,即将联系的属性加入到实体的关系模式内,主键不变。 (2)1:m(一对多)联系 方法一:联系转换为的关系模式;模式的属性由联系本身的属性及两个实体的键构成;主键由m端实体的键组成。 方法二:与m端的实体的关系模式合并,即将联系的属性加入到实体的关系模式内,主键不变。 (3)m:n(多对多)联系。转换成新的的模式,模式的属性由联系本身的属性及两个实体的键构成,主键由两端实体的键组合而成。 (4)3个或者3个以上实体间的一个多元联系可以转换为一个关系模式。与该多元联系相连的各实体的码以及联系本身的属性均转换为关系的属性,各实体的码组成关系的码或关系码的一部分。 (5)具有相同码的关系模式可以合并。 该题的解题过程是ER图向关系模式转换过程的反向推算。 本题中表T1、T2的主键是单一主键,并且存在外键。T3存在单一主键,不存在外键。因此可以推断出T1对应的实体t1,属性是a1、a2,a1是主键,a3是另外一个实体的主键;T2对应的实体t2,属性是a3、a4,其中a3是主键,a5是另外一个实体的主键。 t1和t2之间是多对一关系。a5对应实体t3只有一个属性,和t2实体之间是一对多关系。 而T3对应的实体t4的属性是a6、a7,其中a6是主键。T4表的主键是由实体t1、t2、t4的主键组成(a1,a3,a6),属性是a8。根据实体间联系转换规则,表T4是多对多联系转换而成。t4和t1、t2是多对多关系,a8是联系的属性。 47、【参】 【1】SUM(销售数量) 【2】t1.书号=t2.书号或t2.书号=t1.书号 【3】Getdate() 【4】t2.图书类别=@lb 【解题思路】 ①整个SELECT语句的含义是:根据WHERE子句的条件表达式,从FROM子句指定的基本表或视图中找出满足条件的元组,再按SELECT子句中的目标列表达式,选出元组中的属性值形成结果表。 ②该题中“SELECT FROM销售表t1WHERE and yea(销售时间)=year()”是个嵌套,计算销售总数量。 ③语句执行过程: 先从图书表中按照第二个WHERE子句形成一个初步查询结果。由于只有图书表中有"图书类别"字段,因此可知【4】填写:t2.图书类别=@lb(t2是图书表的别名,t1是销售表的别名)。由此可知该步是按给定"图书类别"查询。 计算销售总数量语句应该在第一步的基础上求某年的总量。因此可以推出【3】是获得销售时间语句,因此该空填写Getdate()。由于是在第一步基础上的查询,所以应该实行连表查询,【2】应该填写连接的条件,即t1.书号=t2.书号或t2.书号=t1.书号。 【1】应该是求总量的语句,即SUM(销售数量)。 48、【参】 (1)修改难易程度:表分割对于所有的数据库都适用,而表分区只能用于特定的数据库;表分区属于数据库物理设计,表分割属于逻辑设计。从实现方式来看,甲工程师易于实现。 查询1个月内的数据执行速度:甲工程师速度快,乙工程师慢。 查询6个月内的数据执行速度:乙工程师快,甲工程师慢。 (2)采用乙工程师的优化方案,即对表分区进行处理。因为分区表的特点是:如果数据量大,而且数据是分段的,而且对不同段的数据使用的操作不同,则适于使用分区表。本题中对表中当前月的数据,经常进行的操作是添加、修改、删除和查询,而对于以往的数据,则几乎不需要操作,或者操作仅限于查询,那么就可以按月份对表进行分区,从而提高系统的执行效率。 【解题思路】 当数据表的数据过于庞大,或表中的数据具有使用性,有时为了提高性能,可对表进行分割,这虽然破坏了数据表的整体性,但却使系统得到优化。表分割分为水平分割和垂直分割。水平分割是根据数据行的使用特点进行分割,分割之后得到的所有表的结构都相同,而存储的数据不同。当表中分别记录各个地区的数据或不同时期的数据的情况下可对表进行水平分割。水平分割会给应用增加复杂度,特别在查询所有数据时需要Union(并)操作。在许多数据库应用中,这种复杂性会超过它带来的优点,因此,只有当表中的数据具有很好的使用性,即大部分情况是局部使用,只有很少情况才全局查询时,适合此方法。 分区表是将表中的数据按水平方式划分成不同的子集,这些数据子集存储在数据库的一个或多个文件组中。是否创建分区表主要取决于表当前的数据量大小以及将来的数据量大小,同时还取决于对表中数据进行的操作特点。通常,如果某个大型表同时满足下列条件,则比较适于进行分区:(1)该表包含(或将包含)以多种不同方式使用的大量数据;(2)数据是分段的,比如数据以年份分隔。 然而,数据量大并不是创建分区表的唯一条件,如果表中大量的数据都是经常使用的数据,而且他们的操作方式基本是一样的,则最好不要使用分区表。 如果数据量大,而且数据是分段的,而且对不同段的数据使用的操作不同,则适于使用分区表。比如,对某表中当前年的数据,经常进行的操作是添加、修改、删除和查询,而对于往年的数据,则几乎不需要操作,或者操作仅限于查询,那么就可以按年份对表进行分区。也就是说,当对数据的操作只涉及一部分数据而不是所有数据时,就可以考虑建立分区表。 分区表是从物理上将一个大表分成几个小表,但从逻辑上来看还是一个大表。对于用户而言,所面对的依然是一个大表,它们不需要考虑操作的是哪个年份对应的小表,用户只要将记录插入到大表(逻辑表)中就可以了,数据库管理系统会自动将数据放置到对应的物理小表中。同样,对于查询而言,用户也只需设置好查询条件就可以了,数据库管理系统会自动到相应的表中查询满足条件的记录。
