计算机三级(数据库技术)模拟试卷59 (题后含答案及解析)
题型有:1. 选择题 3. 应用题 4. 设计与应用题
选择题
1. 数据库应用系统的数据处理需求可以表示为事务规范。下列描述中不属于事务规范的是( )。
A.事务用户 B.事务名称 C.事务描述
D.事务隔离性级别
正确答案:D
解析:事务规范包括了事务名称、事务描述、事务所访问的数据项、事务用户。故答案为D项。
2. 下列不属于数据库应用系统升级工作的是( )。 A.升级DBMS版本
B.修改程序以适应新需求 C.创建新的索引
D.改变数据库应用系统体系结构
正确答案:C
解析:创建新的索引属于数据库应用系统优化内容。故答案为C项。
3. 下列列出的建模方法中,不属于需求分析建模方法的是( )。 A.IDEFlX 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. 数据库应用系统内部结构一般分为静态结构与动态结构。下列关于UMI.中系统内部结构的说法,错误的是( )。
A.通信图也称为协作图,用于表示对象之间的联系以及对象间发送和接收的消息
B.类图主要表达的是问题领域的概念模型,用于表达抽象概念的名称、属性、行为及关系等系统中的静态结构
C.顺序图主要用于描述系统内对象之间的消息发送与接收序列,其主要目的是表达对象与对象之间沟通与合作的方式,属于系统的动态模型
D.通信图和顺序图都是交互图,从不同的侧面描述系统的动态结构,顺序图强调的是空间,通信图强调的是时间
正确答案:D
解析:顺序图强调的是时间,通信图强调的是空间。故答案为D项。
10. 设在SQL Server 2008某数据库中有图书表(书号,书名,出版日期,单价),其中“书号”是主码。现要查询2015年1月份出版的单价最高的前三本图书的详细信息。下列查询语句中能正确完成该查询要求的是( )。
A.SELECTTOP 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/3 1# 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实例上创建的所有数据库的模板。对model数据库进行的修改(如数据库大小、排序规则、恢复模式和其他数据库选项)将应用于以后创建的所有用户数据库,当用户创建一个数据库时,系统自动将model数据库中的全部内容复制到新建数据库中。故答案为D项。
14. 下列关于SQL Server 2008数据库中文件组的说法,错误的是( )。 A.在一个数据库中用户可以创建多个文件组
B.次要数据文件可以和主要数据文件存放在相同的文件组中 C.可以为日志文件单独定义文件组
D.PRIMARY是系统定义好的一个文件组,每个数据库有且仅有一个PRIMARY文件组
正确答案:C
解析:日志文件不包括在文件组内,日志文件和数据文件是分开管理的。故答案为C项。
15. 设在SQL Server 2008中,有如下创建分区函数的语句: CREATE PARTITION FUNCTION PFl(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. 设某数据库中有表Tl(c1,c2,c3),并只对u1执行了如下授权语句: GRANT SELECT ON T1 TO U1 下列语句中,U1无权执行的是( )。
A.GRANT SELECT ON T1 TO U2 B.SELECT*FROM Tl 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.gnest主要用于提供匿名访问
正确答案: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.仅Ⅲ、Ⅳ、Ⅴ和Ⅶ C.仅Ⅳ、Ⅵ和Ⅶ D.仅Ⅲ和Ⅳ
正确答案:D
解析:元数据是关于数据的数据,或者叫做描述数据的数据,它描述了数据的结构、内容、链和索引等项的内容。题干中只有Ⅲ和Ⅳ符合定义。其余的内容都是用户数据。故答案为D项。
应用题
31. 数据库管理系统为用户和应用程序提供了【1】语言,用此语言可以定义数据库的模式结构,但此语言执行后的结果不能回滚。
正确答案:DDL
解析:数据库模式定义语言DDL(Data.Description Language)是用于描述数据库中要存储的现实世界实体的语言。
32. 当用户在一个关系表的某一列上建立一个非聚集索引(该表没有聚集索引)时,数据库管理系统会自动为该索引维护一个索引结构。该索引结构中的记录是由【2】和它相对应的指针构成的。
正确答案:索引列列值 解析:对数据文件和它的一个特定的索引文件而言,如果数据文件中的数据记录的排列顺序与索引文件中索引项的排列顺序相一致,或者说,索引文件按其索引列列值指定的顺序与数据文件中的数据记录的排列顺序相一致,则该索引文件称为聚集索引。否则,该索引文件称为非聚集索引。
33. 在UML中,当要描述状态之间的转换时,可通过【3】图来体现时间因子的作用。
正确答案:时间 解析:时间图适用于当状态的转移与时间密切相关时,同时强调时间因子在状态转移过程中的重要作用。
34. 现要查询C01课程考试成绩最高的前3名学生的学号和成绩(包括并列的情况)。请补全下列语句: SELECT【4】3学号,成绩FROM选课表 WHERE课程号=‘C01’ ORDER BY成绩DESC
正确答案:TOP 解析:题目要求查询成绩最高的前3名学生的学号和成绩,因此需要用TOP关键字。Top3只能查询出前3行的数据,无论这3行数据是否有重复,只能机械的选出前3行记录。
35. 在SQL Server 2008中,能够出现在SELECT语句目标列中的用户自定义函数是【5】函数。
正确答案:标量
解析:SQL Server 2008支持三种用户自定义函数:标量函数、内嵌表值函数和多语句表值函数。标量函数可以出现在SELECT语句目标列中,其他两个函数必须放在SELECT语句的FROM子句中。
36. 设要在表T上建立一个针对插入操作的前触发器,请补全下列语句:CREATE TRIGGER tri_insert ON T 【6】INSERT
正确答案:INSTEAD OF
解析:要在表T上建立一个针对插入操作的前触发器,则根据触发器创建的sQL语句语法可知:INSTEAD OF创建前触发器,FOR或AFTER创建后触发器。
37. SQL Server 2008中声明游标的语句为:DECLARE x cursor【7】CELECT…
正确答案:FOR
解析:DQL Server 2008游标声明的语句格式为: DECLARE vendor_cursor CURSOR FOR SELECT…
38. 在SQL Server 2008中,用户数据库中主要数据文件的扩展名为【8】。
正确答案:MDF
解析:SQL Server 2008中,用户数据库的数据文件的主要拓展名为MDF。
39. 设要在表T上建立一个针对插入操作的前触发器,请补全下列语句:CREATE TRIGGER tri_insert ON T 【6】INSERT
正确答案:DENY DELETE
解析:SQL Server 2008中设置不允许用户获得对表的某种操作权限的命令为:DENY对象权限名ON{表名视图|TO{数据库用户名|用户角色名}。
40. 优化SQL语句执行效率属于数据库应用系统【10】阶段的任务。
正确答案:运行管理与维护
解析:优化SQL语句执行效率属于数据库应用系统运行管理与维护阶段的任务。
41. 为避免活锁现象的发生,数据库管理系统采用【11】策略处理事务的加锁请求。
正确答案:先来先服务
解析:为了避免活锁的现象的发生,DBMs一般采用先来先服务(FIFS)策略处理事务的数据操作请求。即当多个事务请求对同一数据项Q加锁时,DBMS按照事务请求加锁的先后顺序对这些事务排队,先请求的事务排在队中靠前的位置。定义在Q上的锁一旦释放,DBMS将锁分配给队列中的第一个事务。利用这个策略,各个事务都可以按照时间顺序访问Q,避免了活锁现象。
42. 数据库系统出现故障是不可避免的。当数据库系统出现事务故障和系统故障时需使用数据库的【12】文件进行恢复。
正确答案:日志 解析:数据库出现事务故障和系统故障时,需要使用数据库的日志文件进行恢复。
43. 分布式数据库的【13】透明性是最高级别的透明性,它使得在编写程
序时用户只需要对全局关系进行操作,这样简化了应用程序的维护。
正确答案:分片 解析:分布式数据库的分片透明性是最高级别的透明性,位于全局概念与分片模式之间。
44. 在OLAP的实现方式中,以多维数组作为存储结构的被称作【14】OLAP。
正确答案:M
解析:MOLAP称为基于多维库的OLAP,这种OLAP的核心是多维数据库技术。MOLAP工具以多维数据库的形式将元数据、基础事实数据和导出数据存储在以多维数组为基本存储结构的多维数据库中。
45. 在数据仓库环境中,粒度是一个重要的设计问题。粒度越【15】,细节程度越高,能回答的查询就越多,数据量就比较大。
正确答案:小 解析:一般将综合级别称为粒度,粒度越大,表示综合程度越高,粒度越小,表示细节程度越高。
设计与应用题
已知某教务管理系统的设计人员在需求分析阶段收集到下列原始数据表格:已知该业务系统存在如下规则:Ⅰ.每个教师有唯一的教师号,每个教师号对应唯一的一名教师;Ⅱ.每门课程有唯一的课程号,每个课程号对应唯一的一门课程;Ⅲ.每本教材有唯一的教材号,每个教材号对应唯一的一本教材;Ⅳ.每个教师最多只有一个上级领导,也可以没有上级领导;Ⅴ.一门课程仅由一名教师讲授;Ⅵ.一本教材仅用于一门课程。
46. 请根据原始数据表及业务规则,给出该系统的关系模式,保证每个关系模式满足3NF,并说明每个关系模式的主码和外码。
正确答案:教师(教师号,教师名,上级领导教师号,职称) 主码:教师号;外码:上级领导教师号、职称 职称(职称,工资) 主码:职称;外码:无 课程(课程号,课程名,学分,教材号,任课教师号) 主码:课程号;外码:教材号,任课教师号 教材(教材号,教材名,出版社) 主码:教材号;外码:无
解析:关系的描述称为关系模式,它可以形式化地表示为R(U,D,DOM,F)。要想使转换生成的关系模式满足3NF,则必须满足关系模式中每一个非主属性既不部分依赖于码也不传递依赖于码。根据题目中的表中的数据和业务系统的规则可知,共有四个实体存在,分别为教师、课程、教材、职称,职称作为实体而不是教师的属性是因为职称与工资挂钩,考虑到其有进一步描述的特性,所以把职称作为一个关系而不是教师的一个属性,而且教师号、职称、工资之间存在
传递依赖,不满足3NF。
47. 画出该系统的ER图,ER图中需给出每个实体集的属性,主码属性用下划线标识。
正确答案:
解析:E—R图也称实体一联系图,提供了表示实体类型、属性和联系的方法,用来描述现实世界的概念模型。为了简化E—R图的处置,现实世界的事物能作为属性对待的,尽量作为属性对待。实体与属性的划分给出如下两条规则:①作为“属性”,不能再具有需要描述的性质,“属性”必须是不可分的数据项,不能包含其它属性。②“属性”不能与其它实体有联系,即E—R图中所表示的联系是实体之间的联系。题目中教师与课程有讲授关系,课程和教材有使用关系,教师与职称有聘用关系。
48. 在SQL Server 2008中,设某数据库中有商品表(商品号,商品名,进货价格),商品号为主码;销售表(商品号,销售时间,销售数量,销售价格,本次利润),商品号和销售时间为主码,销售价格为本次销售商品的单价。现要求每当在销售表中插入前4列数据时(假设一次只插入一行数据),系统自动计算本次销售产生的利润,并将该利润赋给销售表的第5列“本次利润”。请编写实现上述功能的后触发型触发器代码。
正确答案:CREATE TRIGGER calcu_product AFTER INSERT、ON销售表 FOR EACH ROW AS BEGIN DECLARE@PurchasePrise float/*对应商品的进价的参数*/ SELECT@PurchasePrise=进货价格FROM商品表WHERE商品号=new.商品号 UPDATE销售表SET本次利润=new.销售数量*(new.销售价格—@Purchase-Prise)wHERE商品号=new.商品号AND销售时间=new.销售时间 /术因为是行级触发器,所以可以使用更新后的新值,用new*/ END
解析:触发器是用户定义在关系表上的一类由事件驱动的特殊过程。一旦定义,任何用户对表的增、删、改操作均由服务器自动激活相应的触发器,在DBMS核心层进行集中的完整性控制。触发器类似于约束,但比约束更加灵活,可以实施比FOREIGN KEY约束、CHECK约束更为复杂的检查和操作,具有更精细和强大的数据控制能力。 触发器的创建格式: CREATE TRIGGER[schema_name.]trigger_name ON{table|view} {FOR|AFTER|INSTEAD OF} {[INSERT][,][UPDATE][,][DELETE]} AS{Sql_statement} [;] 对应于本题中,触发事件为在销售表中插入前四列,条件为无条件执行,触发体动作为计算本次利润并插入表中。
在进行某学校教务管理系统的数据库设计时,数据库设计人员设计了如下几个关系模式: 系(系号,系名),系号为主码 学生(学号,姓名,所在系号),学号为主码 课程(课程号,课程名,开课系号),课程号为主码 选课(学号,课程号,选课时间),学号和课程号为主码 开发人员在将关系模式实施到SQL Server 2008的“教务”数据库时,使用了如下表结构定 义语句: CREATE TABLE系( 系号varchar(10)NOT NULL, 系名varchar(100) )
CREATE TABLE学生( 学号varchar(50)NOT NULL, 姓名varchar(50), 所在系号 varchar(10) ) CREATE TABLE课程( 课程号varchar(50)NOT NULL, 课程名varchar(100), 开课系号varchar(10) ) CREATE TABLE选课( 学号varchar(50)NOT NULL,课程号varchar(50)NOT NULL,选课时间datetime )在执行如下查询语句时发现执行效率很低: SELECT * FROM选课JOIN学生ON学生.学号=选课.学号 JOIN系ON系.系号=学生.所在系号 JOIN课程ON课程.课程号=选课.课程号 WHERE系.系号=‘012’ AND convert(varchar(10),选课时间,120)>=‘2010—01—01’
49. 在查找原因时发现建表语句有问题。请指出问题并说明该问题是否会影响此查询语句的执行效率。
正确答案:建表时没有设置主键,也没有说明外键,但不会影响此查询语句的执行效率。
解析:本题中查询语句的功能是得到12系全体学生在2010年1月1日后的选课情况的汇总表。在每个数据表的定义时都必须严格定义表中的完整性约束条件,包括主键的设置,否则之后会出现主键有相同值的情况,破坏了数据的完整性。
50. 设已在“选课”表的“选课时间”列及“学生”表的“所在系号”列上建立了索引。请问这两个索引是否能够提高该查询语句的执行效率?如果不能,请说明原因。
正确答案:“选课”表的“选课时间”可以建立索引,从而提高了查询效率,而“学生”表的“所在系号”建立索引不会提高查询效率。索引的意义就是将记录按目标关键字顺序排列,这样查找某个目标关键字的对应值的位置就缩小了查找范围。“选课时间”的重复率低,所以可以作为索引,而学生“所在系号”的重复率太高,则不会提高查询效率。
解析:“选课”表的“选课时间”列上建立了索引,从而能够提高执行效率。经常出现在Where子句中的字段,特别是大表的字段,应该建立索引。索引的作用就类似于书的目录,即会按照章节的顺序排列。因此如果在一本数百页的书里面查找某个章节位置的时候,就可以只扫描书的目录。扫描的范围缩了n倍,查询的效率自然就会提高。另外,在SQLServer内存够用的情况下,索引会被放到内存中,在内存中查找自然又会提高效率,所以必须合理利用索引。
因篇幅问题不能全部显示,请点此查看更多更全内容