1、2010年3月全国计算机等级考试四级笔试试卷数据库工程师一、选择题(1)(20)每题1分,(21)(30)每题2分,共40分) 1. 在数据库应用系统的需求分析阶段,需要考虑数据的安全性需求。下列不属于数据安全性需求分析内容的是 A. 分析数据的安全性需求,以确定每个关系表上定义的数据约束能够满足使用要求 B. 分析全局用户对数据的存取需求,以确定全局数据的安全控制策略 C. 分析特殊用户对数据的存取需求,以保证数据库的安全控制策略能够满足其使用要求 D. 分析各类用户对数据的存取需求,以确定各类用户能够操作的数据答案:A解析:(P23) 2. 有学生表(学号,姓名,性别,身份证号,出生日期,
2、所在系号),在此表上使用如下语句建立索引:CREATE NONCLUSTERED INDEX Idx_Name ON学生表(姓名);此索引被称为 A. 非聚集散列索引 B. 非聚集辅索引 C. 非聚集顺序索引 D. 非聚集主索引答案:B解析:(P102104)对数据文件和它的一个特定的索引文件,如果数据文件中数据记录的排列顺序与索引文件中索引项的排列顺序相一致,或者说,索引文件按照其查找码指定的顺序与数据文件中数据记录的排列顺序相一致,则该索引文件称为聚集索引(Clustering Index)。在数据文件包含主码的属性集上建立的索引称为主索引(Primary Index)。在数据文件的非主属
3、性上建立的索引称为辅索引(Secondary Index),故可判断题中索引为非聚集辅索引。 3. 在数据库物理设计阶段,使用聚集文件组织数据可以提高一些查询的效率。下列关于聚集文件和聚集键的描述错误的是 A. 聚集文件将不同关系表中有关联关系的记录存储在一起,以减少系统的物理I/O次数 B. 聚集键应该选用频繁用于进行自然连接的属性或属性组 C. 聚集文件可以提高某些连接查询的速度,但是它可能导致其他类型的查询处理变慢 D. 关系表中某个属性的数据重复率越高,越适合作聚集键答案:D 4. 已知有描述科研项目及负责教师的关系模式:科研项目(项目号,项目名称,经费,负责教师号,姓名,职称),该关
4、系模式满足函数依赖集:F=项目号项目名称,项目号经费,项目号负责教师号,负责教师号姓名,负责教师号职称。下列分解中最合理的符合3NF的关系(打字机注释 空白)(打字机注释 谭科伟整理收藏,资料来自互联网)模式是 A. 科研项目(项目号,项目名称,经费),教师(教师号,姓名,职称) B. 科研项目(项目号,项目名称,经费),教师(教师号,姓名,职称,项目号) C. 科研项目(项目号,项目名称,经费,负责教师号),教师(教师号,姓名,职称) D. 科研项目(项目号,项目名称,经费),项目_教师(项目号,负责教师号),教师(教师号,姓名,职称)答案:D解析:(P84) 5. 在IDEF0图中矩形框代
5、表功能活动。关于连接到矩形框4条边上的箭头的语义,下列说法错误的是A. 左边的箭头表示完成功能活动需要的数据,它强调被活动消耗或变换的内容 B. 上边的箭头表示影响这个活动执行的事件或约束,它强调被活动变换的内容 C. 右边的箭头表示由这个活动产生的信息,它强调活动变换和处理的结果 D. 下边的箭头表示实施该活动的手段或完成活动需要的资源,它强调如何做答案:B解析:(P46)输入强调被活动消耗或变换的内容,而控制强调对活动的约束条件。 6. 数据库的运行管理与维护主要由数据库管理员负责,工作内容主要包括日常维护、系统监控与分析、性能优化等。下列关于数据库管理员工作内容的说法错误的是 A. 数据
6、库的备份和恢复是重要的维护工作,数据库管理员应根据不同的应用要求制定不同的备份计划,在备份计划中应包含备份的时间、周期、备份方式和备份内容等 B. 性能优化是数据库管理员的重要工作,性能优化的主要手段有查询优化、索引调整、模式调整等,这些工作一般无需开发人员参与 C. 数据库管理员应监控数据库中各种锁的使用情况,并处理可能出现的死锁情况,若发现问题应及时通知相关人员 D. 数据库管理员需要定期检查存储空间使用情况并根据需要扩展存储空间,这些工作一般无需最终用户参与答案:B解析:(P176)在数据库设计并试运行后,如果试运行结果符合设计目标,就意味着数据库可以真正投入运行了,同时也标志着开发任务
7、的基本结束和维护工作的开始。在数据库系统运行过程中必须不断地对其进行评价、调整与修改等维护工作,以保证数据库正常和高效地运行。所以维护工作的主要实施者通常是经验丰富的专业技术人员和数据库管理员。 7. 若系统中存在4个等待事务T0、T1、T2、T3,其中T0正等待被T1锁住的数据项A1,T1正等待被T2锁住的数据项A2,T2正等待被T3锁住的数据项A3,T3正等待被T0锁住的数据项A0。根据上述描述,系统所处的状态是A. 活锁 B. 死锁 C. 封锁 D. 正常答案:B解析:(P168)死锁是指数据库系统中部分或全部事务由于无法获得对需要访问的数据项的控制权而处于等待状态,并且一直等待下去的一
8、种系统状态。产生死锁的原因在于系统中各个事务间存在冲突操作,并且冲突操作的并发执行顺序不当,引起事务的无限期等待。 8. 在SQL Server 2000中,某数据库中有教师表(教师号,姓名,职称),其中教师号的数据类型是整型,其他均为字符类型。若教师表中当前没有数据,用户在数据库中依次执行下列语句:BEGIN TRANSACTION T1INSERT INTO 教师表 VALUES (1000, 张三,助教);INSERT INTO 教师表 VALUES (1001,王二,助教);COMMIT T1;BEGIN TRANSACTION T2INSERT INTO 教师表 VALUES (10
9、02,王三,讲师);INSERT INTO 教师表 VALUES (1003,李四,讲师);COMMIT T2;在执行的时候数据库所在的服务器突然掉电,当数据库系统重新启动后,教师表中包含的数据条数为 A. 4条 B. 3条 C. 2条 D. 0条答案:C 9. 已知学生关系(学号,姓名,性别,课程号,成绩,所在系号)有下列函数依赖(学号,课程号)课程号(学号,课程号)成绩(学号,课程号)所在系号(学号,课程号)姓名,性别(学号,课程号)学号以上函数依赖属于非平凡函数依赖的是 A. 仅和 B. 仅和 C. 仅和 D. 仅、和答案:D解析:(P79)若XY,但Y属于X(YX),则称XY是平凡函数
10、依赖,否则称为非平凡函数依赖。即平凡函数依赖,仅当其右边的属性集是左边属性集的子集时成立。 10. 数据库管理系统采用三级加锁协议来防止并发操作可能导致的数据错误。在三级加锁协议中,1级加锁协议能够解决的问题是 A. 丢失修改 B. 不可重复读 C. 读脏数据D. 死锁答案:A解析:(P167) 11. 在SQL Server 2000中,假设某数据库使用一段时间后,其数据文件和日志文件的空间均已快用完,如果要以手工方式扩大该数据库的空间,下列说法正确的是 A. 可以扩大单个数据文件的大小,但不能扩大单个日志文件的大小 B. 可以一次按比例扩大整个数据库的数据文件和日志文件的大小 C. 可以添
11、加一块新的磁盘,并在新的磁盘上为数据库建立新的数据文件和日志文件 D. 可以一次按比例扩大整个数据文件的大小,但不能扩大日志文件的大小答案:C 12. 在SQL Server 2000中,设有职工表(职工号,职工名,电子邮箱),现要限制电子邮箱的最后几位的取值为“abccom”,且“”前至少有一位字符。下列添加约束的语句正确的是 A、ALTER TABLE职工表ADD CONSTRAINT chk_email CHECK(电子邮箱LIKE _%)B、ALTER TABLE职工表ADD CONSTRAINT chk_email CHECK(电子邮箱 = _%)C、ALTER TABLE职工表AD
12、D CONSTRAINT chk_email CHECK(电子邮箱LIKE _)D、ALTER TABLE职工表ADD CONSTRAINT chk_email CHECK(电子邮箱 = _)答案:A解析:(P137139) 13. OLE-DB是一种通用数据访问接口。下列关于OLE DB的说法错误的是 A. OLE-DB是Microsoft OLE对象标准的一个实现,它由一系列的COM接口组成 B. 与ODBC驱动程序需要支持几乎所有的DBMS特性不同,OLE DB允许只支持DBMS的部分功能 C. OLE-DB支持访问关系数据库和非关系数据库 D. OLE-DB定义了数据提供者、数据消费者
13、和数据驱动程序三类数据访问组件答案:D解析:(P279280)OLE-DB定义了三种类型的数据访问组件:数据提供者:包含数据并将数据输出到其他组件中去;数据消费者:使用包含在数据提供者中的数据;服务组件:处理和传输数据。OLE DB的绝大多数功能包含在数据提供者和服务组件中,服务组件可以获取和操作应用程序使用的数据。14. 日志文件是数据库系统出现故障以后,保证数据正确、一致的重要机制之一。下列关于日志文件的说法错误的是 A. 日志的登记顺序必须严格按照事务执行的时间次序进行 B. 为了保证发生故障时能正确地恢复数据,必须保证先写数据库后写日志 C. 检查点记录是日志文件的一种记录,用于改善恢
14、复效率 D. 事务故障恢复和系统故障恢复都必须使用日志文件答案:B解析:(P187190) 15. 统一建模语言UML是一种定义良好、易于表达、功能强大、通用的可视化建模语言,下列关于UML说法错误的是 A. 在UML的用例模型中,一个角色可以执行多个用例,一个用例可以被多个角色使用 B. UML也适用于对象建模,其中的类图和对象图用于描述类模型、对象模型以及它们之间的动态关系,这两种图都属于UML的动态视图 C. UML的包图是表明包以及包之间的关系的类图,包是对模型中涉及的元素进行分组后得到的结果。在进行元素分组时,应尽量追求包间低耦合、包内高内聚的目标 D. UML中的顺序图和协作图都描
15、述交互,但是顺序图强调的是时间,协作图强调的是空间答案:B解析:(P316326) 16. 对数据库中的数据进行及时转储是保证数据安全可靠的重要手段。下列关于静态转储和动态转储的说法正确的是 A. 静态转储过程中数据库系统不能运行其他事务,不允许在转储期间执行数据插入、修改和删除操作 B. 静态转储必须依赖数据库日志才能保证数据的一致性和有效性 C. 动态转储需要等待正在运行的事务结束后才能开始 D. 对一个24小时都有业务发生的业务系统来说,比较适合采用静态转储技术答案:A解析:(P186)在静态转储过程中系统不能运行其他事务,不允许在转储期间对数据库有任何的存取、修改活动,即转储前后系统必
16、须处于一个一致性的状态。 17. 设某并行数据库系统中有表T(a1,a2,an),因数据量大,需采用一维划分法将数据划分到不同的磁盘上,以提高系统效率。设a1是划分属性,针对表T的查询操作多数为点查询,则适合采用的元组划分策略是 A. 轮转法与范围划分 B. 轮转法与散列划分 C. 散列划分与范围划分 D. 以上都不合适答案:C解析:(P342) 18. 软件开发模型是对软件开发过程的一种规范描述,用于表示软件开发过程的整体框架和软件开发活动各阶段间的关系。下列模型属于软件开发模型的是瀑布模型快速原型模型增量模型螺旋模型A)仅和B)仅、和C)仅和D)、和 A. 仅和 B. 仅、和 C. 仅和
17、D. 、和答案:D 19. 设有某大型连锁商场,建立有面向业务的数据库应用系统和面向决策支持的数据仓库系统,数据仓库系统每天夜间需要从数据库应用系统的数据库导入新数据。在下列数据表中,最不适合采用快照方式从数据库应用系统中获取数据的是 A. 商品表和商品类别表 B. 员工表和供应商表 C. 商品销售表和商品采购表 D. 商场组织机构表答案:C 20. 在数据库应用系统中,查询效率是考核数据库应用系统的一个重要方面。下列方法中,通常有利于提高查询效率的是尽可能避免无用的排序操作尽可能消除对大型表行数据的顺序存取尽可能避免使用否定查询尽可能避免使用外连接操作尽可能用子查询代替连接查询 A. 仅、和
18、 B. 仅、和 C. 仅、和 D. 全部答案:B解析:(P180181)优化查询的常用方法有:合理使用索引;避免或简化排序;消除对大型表行数据的顺序存取;避免相关子查询;避免困难的正规表达式;使用临时表加速查询;用排序来取代非顺序磁盘存取;不充分的连接条件;存储过程;不要随意使用游标;事务处理。 21. 数据库概念设计需要对一个企业或组织的应用所涉及的数据进行分析和组织。现有下列设计内容分析数据,确定实体集分析数据,确定实体集之间的联系分析数据,确定每个实体集的存储方式分析数据,确定实体集之间联系的基数分析数据,确定每个实体集的数据量分析数据,确定每个实体集包含的属性以上内容不属于数据库概念设
19、计的是 A. 仅、和 B. 仅和 C. 仅、和 D. 仅和答案:D解析:(P55)数据库概念设计包含如下基本步骤:确定实体集;确定联系和联系类型;建立由信息模型表示的企业模型;确定实体集属性;对信息模型优化。 22. 客户端/服务器(C/S)架构和浏览器/服务器(B/S)架构是现在常用的两种数据库应用系统架构。关于C/S和B/S架构,下列说法错误的是 A. 在C/S和B/S架构中,数据库服务器都承担了数据共享和管理的功能 B. 如果系统的最终用户群体大,用户地域分布广,一般应采用B/S架构 C. C/S架构的应用程序需要发布给每个用户,并在每个用户计算机上进行安装。B/S架构一般以通用浏览器为
20、业务应用界面,较为复杂的数据处理功能一般还可通过与浏览器进行交互的组件实现 D. 一般来说,对于功能需求相同的数据库应用系统项目,C/S架构的应用开发成本要高于B/S架构的应用开发成本答案:D解析:(P123125) 23. 数据库应用系统环境中存在各种类型的数据,设有如下数据为提高查询效率建立的索引描述表结构信息的数据字典用于优化查询的统计分析数据用户会话信息用户查询结果以上数据一般会存储在数据库中的是 A. 仅、和 B. 仅和 C. 仅、和 D. 仅、和答案:C解析:(P108) 24. 在数据库应用系统生命周期中,系统规划与分析是一个重要的环节。关于系统规划与分析,下列说法错误的是 A.
21、 规划与分析是数据库应用系统生命周期的起点,规划与分析阶段的主要工作内容包括系统规划与定义、可行性分析和项目规划 B. 系统规划与定义是规划与分析的主要环节,它需要在系统设计过程中逐步完成 C. 可行性分析是从技术、经济和操作等方面进行项目可行性的分析,它在明确目标和任务之后,评估系统在给定条件下是否可行 D. 项目规划是对项目所需的资源、成本和进度进行合理估算,并制定初步的项目开发计划答案:B解析:(P1820) 25. 在SQL Server 2000中,某数据库的数据量比较大,且存储在无磁盘阵列的存储设备上。为尽可能提高数据的操作效率,下列构建数据库文件的方法中,最合适的是 A. 尽可能
22、选择一块足够大的磁盘,并在此磁盘上建立一个数据文件和一个日志文件 B. 尽可能建立多个数据文件,让每个数据文件位于不同的磁盘上,并尽可能将日志文件与数据文件分别建立在不同的磁盘上 C. 尽可能建立多个数据文件,将这些数据文件建立在一块足够大的磁盘上,并将全部日志文件建立在另一块足够大的磁盘上 D. 尽可能建立多个数据文件,让每个数据文件位于不同的磁盘上,并尽可能将日志文件与数据文件建立在相同的磁盘上答案:D解析:(P206207) 26. 设有某大型连锁超市的数据库应用系统,在系统实施或改造过程中,需要对系统进行测试。设有下列测试活动模拟客户消费行为,生成销售数据,测试系统是否能正确完成销售业
23、务编写模拟数据生成器,每秒生成2千笔与销售业务对应的销售数据,测试系统吞吐率在数据库中模拟生成5亿条销售数据,同时开启所有的收银台,测试系统平均响应时间模拟销售持续一周时间,在此期间,每天审核系统结账功能是否正确测试数据库应用系统能否正确地完成银联卡消费业务以上测试活动,属于性能测试的是A. 仅、和 B. 仅、和 C. 仅和 D. 仅、和答案:C 27. 在SQL Server 2000中,设有课程表(课程号,课程名,学分,开课学期),现要在此关系表上建立一个查询指定学期开设的课程总门数和总学分数的内嵌表值函数,函数名为f_FindTotal。实现这个函数的正确代码是 A、CREATE FUN
24、CTION f_FindTotal(semester int)RETURNS tableASRETURN(SELECT COUNT(课程号)as课程门数, SUM(学分)as总学分FROM课程表WHERE开课学期 = semester)B、CREATE FUNCTION f_FindTotal(semester int)RETURNS tableASRETURN(SELECT COUNT(课程号)as课程门数, COUNT(学分)as总学分FROM课程表WHERE开课学期 = semester)C、CREATE FUNCTION f_FindTotal(semester int)RETURNS
25、 tableASRETURN(SELECT SUM(课程号)as课程门数, SUM(学分)as总学分FROM课程表WHERE开课学期= semester)D、CREATE FUNCTION f_FindTotal(semester int)RETURNS tableASRETURN(SELECT SUM(课程号)as课程门数, COUNT(学分)as 总学分FROM课程表WHERE开课学期 = semester)答案:A解析:(P226227) 28. 设商场业务系统中有销售单据表(销售单据号, 收款员, 销售时间),销售明细表(销售明细条目号, 销售单据号, 商品号, 数量, 单位, 金额)
26、和商品表(商品号, 商品名, 价格)。该系统业务繁忙,保存的数据量非常大,每次换班时要统计收款员的收入总额,每天停业后要统计各个商品的当天销售量,销售过程中经常需要查询某笔销售业务的情况。为了优化系统性能,下列优化方案合理的是A. 在销售单据表的收款员属性上建立聚集索引,在销售明细表的销售单据号属性上建立非聚集索引,在商品表的商品号属性上建立聚集索引 B. 在销售单据表的销售单据号属性上建立聚集索引,在销售明细表的销售单据号属性上建立非聚集索引,在商品表的商品号属性上建立聚集索引,建立收款员单班销售量表和商品当天销售汇总表,在每笔销售成交后分别累计统计相应数据 C. 在销售单据表的销售时间属性
27、和收款员属性上分别建立聚集索引,在销售明细表的销售单据号属性上建立非聚集索引,在商品表的商品号属性上建立聚集索引,建立收款员单班销售量表和商品当天销售汇总表,在每笔销售成交后分别累计统计相应数据 D. 在销售单据表的销售单据号属性和收款员属性上分别建立聚集索引,在销售明细表的商品号属性上建立聚集索引答案:C解析:(P102103) 29. 在SQL Server 2000中,假设利用备份设备对某个数据量和日志量都比较大的数据库进行完全备份。下列说法正确的是 A. 如果各个磁盘上的剩余空间均不足以存储数据库的备份,但全部磁盘的剩余空间总和大于备份数据库所需的空间,则可以将这些磁盘的剩余空间组织起
28、来建立一个备份设备以实施备份B. 如果各个磁盘上的剩余空间均不足以存储数据库的备份,但全部磁盘的剩余空间总和大于备份数据库所需的空间,则可以将数据库中的数据和日志分别备份到位于不同磁盘的备份设备上,以解决单个磁盘空间不足的问题 C. 可以只对数据库中的数据进行备份,并且可以备份到位于不同磁盘的备份设备上,以最大限度地减少备份该数据库占用的空间 D. 如果各个磁盘上的剩余空间均不足以存储数据库的备份,但全部磁盘的剩余空间总和大于备份数据库所需的空间,则可以在每个磁盘上分别建立一个备份设备,并同时利用这些设备备份数据库答案:D解析:(P261) 30. 在某分布式数据库系统中,设某数据表的模式为S
29、(a1,a2,a3,a4,a5),其中a1为主码,该表中数据量大,a2取值空间为1,2,3。设有两个数据分片方案,分别为PS1=S11,S12,S13和PS2=S21,S22,S23。任取分片S1i,S1i的模式为(a1,a2,a3,a4,a5),且S1i中的任一元组t都属于S,且t在属性a2上的取值为i。任取分片S2i,有S2i与S元组数相同,且其主码为a1,S21的模式为(a1,a2),S22为(a1,a3,a4),S23为(a1,a5)。则关于PS1和PS2的分片机制,下列说法正确的是 A. PS1为水平分片,PS2为垂直分片 B. PS1为垂直分片,PS2为导出分片 C. PS1为水平
30、分片,PS2为导出分片 D. PS1为垂直分片,PS2为水平分片答案:A解析:(P332)二、应用题(每空2分,共30分) 1. 在SQL Server 2000中,现要在employees表的first_name和last_name列上建立一个唯一的非聚集复合索引,其中first_name列数据的重复率是5%,last_name列数据的重复率是10%。请补全下列语句使以first_name和last_name列作为条件的查询效率最高。 CREATE UNIQUE NONCLUSTERED INDEX Idx_NameON employees(【_】)答案:(P154)first_nameAS
31、C,last_nameDESC 2. 在SQL Server 2000中,设有顾客表(顾客号,顾客名,所在地区,年龄),应用系统中需统计指定地区的顾客人数和平均年龄。请补全下列存储过程代码以完成该功能。 CREATE PROC P_Count area varchar(20) ASSELECT COUNT(*)AS人数,【_】AS 平均年龄 FROM 顾客表WHERE所在地区=area答案:(P141)AVG(年龄) 3. 设有顾客表(顾客号,顾客名,联系电话)和购买表(商品号,顾客号,购买时间),现要统计有购买记录的顾客人数。请补全下列实现该功能的语句。SELECT【_】FROM 购买表答案
32、:(P141)COUNT(DISTINCT 顾客名) 4. 在VB 60中,为简化访问数据库数据的编程,经常使用Adodc数据控件来访问数据库中的数据。该控件中用于描述服务器连接信息的属性是【_】。答案:(P285)CONNECTIONSTRING 5. 在SQL Server 2000中,要授予某数据库中的某个用户具有该数据库中全部用户数据表的插入、删除和修改权限,比较合理的做法是将该用户添加到系统提供的【_】数据库角色中。答案:(P247248)db_ddladmin 6. 设有学生表(学号,姓名,性别,所在系),这些列均不允许有空值。现要建立一个视图,统计“计算机系”的男生人数和女生人数
33、。请补全下列语句。 CREATE VIEW V_Count ASSELECT【_】,COUNT(*) AS 人数 FROM 学生表WHERE 所在系=计算机系【_】答案:性别 GROUP BY 性别 7. 事务是由一系列操作组成的,事务的执行表现为事务中各个操作的执行。每个事务应具有结束操作。当一个事务需要终止并取消所有已执行的数据修改时应执行的语句是【_】。答案:(P189)UNDO 8. 数据仓库是一个面向【_】的、集成的、非易失的,且随时间变化的数据集合。答案:(P348)主题 9. 事务对一个数据项的操作类型决定了数据项上的锁的类型。锁的类型主要有互斥锁(简称X锁)和【_】锁(简称S锁
34、)两种。答案:(P166)共享 10. 在SQL Server 2000中,现要将数据库DB1差异备份到备份设备BK上,并且不覆盖BK上的已有内容。请补全下列备份数据库DB1的语句。BACKUP【_】DB l To BK【_】,NOINIT答案:DATABASE WITH DIFFERENTIAL 11. 在SQL Server 2000中,某数据库中有图书表(书号,图书名称,类别)和销售表(书号,销售时间,销售数量),其中销售数量大于0。现要查询2009年10月销售的图书名称和类别。请补全下列实现该功能的查询语句。SELECT 图书名称,类别 FROM 图书表WHERE EXISTS(SEL
35、ECT*FROM 销售表(WHERE 销售时间 BETWEEN2009/10/1AND2009/10/31【_】)答案:(P150)and 书号=图书表书号 12. OLAP主要用于支持复杂的分析操作,侧重对决策人员和高层管理人员的数据支持。OLAP的实现方式主要有三种:MOLAP、【_】和HOLAP。答案:(P360)ROLAP13. 在分布式数据库系统中,数据分布透明性是方便用户使用数据的重要保证。数据分布透明性的最高级别是【_】透明性。答案:(P333)分片三、设计与应用题(共30分) 1. 设有某简化的网上购物系统,其ER图如下:该系统数据之间存在下列约束:一个客户(编号唯一)可以拥有
36、多个订单,每个订单仅属于一个客户;一个订单(编号唯一)可以包含多个订购细目,每个订购细目只属于一个订单;一种商品可以出现在多个订购细目中,一个订购细目只包含一种商品;一个商品类别可以包含多种商品,一种商品只属于一个商品类别。请根据以上约束,标出ER图中各实体集之间联系的基数。(2分)请将ER图转换成符合3NF的关系模式,并给出各关系模式的主码和外码。(4分)请修改所设计的关系模式使之支持下列功能(仅列出发生修改的关系模式)。(4分)使客户能方便了解每个订购细目的处理状态和到货时间;使客户能方便查询商品供应商的编号、名称、所在城市、联系电话和信誉。(限定一个供应商可以供应多种商品,一种商品只选自
37、一个供应商) 答案:userInfo(userID,username,userTel,userEmail,orderID)主码userID,外码orderID;orderInfo(orderID,orderDate,itemID)主码orderID,外码itemID;itemInfo(itemID,itemNum,itemSum)主码itemID; commodityInfo(comID,comName,comPrice,comDate,typeID,itemID)主码comID,外码typeID,itemID;comType(typeID,typeName,comID)主码typeID,外码
38、comID;在订购细目中添加发货时间和到货时间;添加供应商关系模式,修改商品关系模式businessInfo(businessID,businessName,businessCity,businessTel,businessCredit)主码businessID;commodityInfo(comID,comName,comPrice,comDate,typeID,itemID,businessID)主码comID,外码typeID,itemID,businessID;2. 某学校的学籍管理系统实现了对学生学籍信息的管理,其中学生表结构为:学生表(学号,姓名,性别,系号,是否有学籍),此表中除
39、学号列有唯一索引外,其它列均无索引。设学籍管理系统中经常执行如下形式的操作:SELECT*FROM 学生表WHERE 姓名=张三 AND 系号=10AND 是否有学籍=有系统运行中发现这类操作的效率比较低,系统工程师建议:由于查询条件中使用了“系号”、“姓名”和“是否有学籍”三列,建议在这三个列上分别建立索引,以提高查询效率。请问其建议建立的三个索引是否都能提高查询效率?请简要说明原因。(6分)设学生表中有下列数据:(见下表)并且已经在学生表的姓名列上建立了一个非聚集索引(按姓名拼音升序排序)。请给出查找码“姓名”对应的稠密索引示意图。(4分) 答案:不能。使用索引是需要付出代价的,增加了系统
40、维护时间和占用了系统时间。学籍、系号这两个字段重复值比较多,因此在这两个字段上添加索引不会显著的增加查询速度,减少用户的响应时间。相反,因为需要占用空间,反而会降低数据库的整体性能。3. 在SQL Server 2000中,设有教师表(教师号,姓名,所在部门号,职称)和部门表(部门号,部门名,高级职称人数)。请编写满足下列要求的后触发型触发器(设触发器名字为tri_zc)。(10分)每当在教师表中插入一名具有高级职称(“教授”或“副教授”)的教师时,或者将非高级职称教师的职称更改为高级职称时,均修改部门表中相应部门的高级职称人数。(假设一次操作只插入或更改一名教师的职称)答案:CREATE TRIGGER tric_zcON 教师表 AFTER INSERT,UPDATE AS BEGIN DECLARE zc varchar(10),dept varchar(30)SET zc =(SELECT 职称 FROM inserted)SET dept =(SELECT 所在部门号 FROM inserted)IF zc=教授 OR 副教授UPDATE 部门表 SET 高级职称人数=高级职称人数+1WHERE 部门号=dept END