数据库原理与应.docx
《数据库原理与应.docx》由会员分享,可在线阅读,更多相关《数据库原理与应.docx(12页珍藏版)》请在冰豆网上搜索。
数据库原理与应
数据库原理与应用试卷1
数据库原理与应用模拟试题一
一、选择题(每题2分,共20分)
1.下列哪个不属于DBMS的主要功能:
【】
A.数据定义功能B.数据操纵功能
C.图形界面功能D.数据库维护功能
答案:
C
解释:
DBMS数据库管理系统的主要功能有数据定义功能、数据组织、存储和管理、数据操纵功能、数据控制功能、数据库的建立和维护功能,还有其它功能如DBMS与其他软件的通信,异构数据库的互操作等。
C图形界面功能不是DBMS的主要功能。
2.下列哪一个不是关系模型具有的性质:
【】
A.列是同质的B.列序有关
C.行序无关D.分量必须取原子值
答案:
B
解释:
关系模型包含6条性质:
列是同质的;不同的列可以出自同一个域;列序无关性;任意两个元组不能完全相同;行序无关性;分量必须取原子值。
B列序有关不是关系模型具有的性质。
3.外模式/模式映像保证:
【】
A.数据独立性B.物理独立性
C.概念独立性D.逻辑独立性
答案:
D
解释:
外模式/模式映像的用途是保证数据的逻辑独立性:
应用程序(外模式)与数据库的逻辑结构(模式)是相互独立的。
即数据的逻辑结构发生改变,应用程序不用改变。
D逻辑独立性符合题意。
4.属性Cname的开头为DB,且第四个字符为i的条件为:
【】
A.CnameLIKE‘DB_i%’B.CnameLIKE‘DB*i?
’
C.CnameLIKE‘DB%i_’D.CnameLIKE‘DB?
i*’
答案:
A
解释:
在LIKE的查询语法中,通配符%匹配任意长度的字符串,_匹配任意单个字符。
ACnameLIKE‘DB_i%’符合题意。
5.表达年龄(Sage)非空的WHERE子句为:
【】
A.Sage<>NULLB.Sage!
=NULL
C.SageISNOTNULLD.SageNOTISNULL
答案:
C
解释:
SQL中的空用关键字NULL代表,是空为ISNULL,非空为ISNOTNULL。
CSageISNOTNULL符合题意。
6.全称量词在SQL中表达为:
【】
A.EXISTSB.ALL
C.ANYD.SOME
答案:
A
解释:
SQL中使用EXISTS表示存在量词,没有直接关键字表示全称量词,需要将全称量词转换为EXISTS表示。
A中EXISTS符合题意。
7.关系模式R(ABC)上的函数依赖集F={A→C,A→B,B→A},R最高属于:
【】
A.1NFB.2NFC.3NFD.BCNF
答案:
D
解释:
R有两个码,A和B。
BCNF要求对于每个函数依赖X→Y(Y⊆X),X必包含码。
D符合题意。
8.在SQLServer中,bigint长度为:
【】
A.8字节B.4字节C.2字节D.1字节
答案:
A
解释:
SQLServer中的整数型包含bigint,int,smallint,tinyint,长度分别为8,4,2,1字节。
A符合题意。
9.在对分E-R图进行集成时,可能产生的冲突不包含:
【】
A.属性冲突B.命名冲突
C.联系冲突D.结构冲突
答案:
C
解释:
分E-R图之间的三类冲突有:
属性冲突、命名冲突、结构冲突。
C联系冲突是不包含的。
10.索引的选择在数据库设计中属于:
【】
A.需求分析B.概念结构设计
C.逻辑结构设计D.物理设计
答案:
D
解释:
数据库物理设计的内容包含:
为关系模式选择存取方法(建立存取路径),设计关系、索引等数据库文件的物理存储结构。
D物理设计符合题意。
二、判断题(每题2分,共20分)
1.一个数据库只有一个模式。
【】
答案:
V
解释:
模式是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图,综合了所有用户的需求。
一个数据库只有一个模式,是数据库系统模式结构的中间层,与数据的物理存储细节和硬件环境无关,与具体的应用程序、开发工具及高级程序设计语言无关。
2.SQL的理论基础是关系代数与关系演算。
【】
答案:
V
解释:
关系数据库的操作语言包含关系代数、关系演算和SQL,其中SQL的理论基础是关系代数与关系演算。
3.存储过程存储在数据库中,执行时需要编译和优化。
【】
答案:
X
解释:
存储过程的优点有:
存储在数据库中,已编译和优化,运行效率高;具有安全特性;减少网络通信流量;允许模块化程序设计;方便实施企业规则。
存储过程执行时不需要编译和优化。
4.视图与基本表不同,是一个虚表。
【】
答案:
V
解释:
视图是从一个或几个基本表(或视图)导出的表,它与基本表不同,是一个虚表。
5.触发器是用户定义在表上的一类由事件驱动的特殊存储过程。
【】
答案:
V
解释:
触发器是用户定义在关系表上的一类由事件驱动的特殊存储过程。
用户对表的操作会自动激活相应的触发器,此过程由DBMS控制;类似于约束,但是比约束功能强大,可以实施比FOREIGNKEY,CHECK复杂的检查和操作。
6.在更新数据库时,应该先写数据库,再写日志文件。
【】
答案:
X
解释:
为保证数据库是可恢复的,必须遵循两条原则:
登记次序严格按并行事务执行的时间次序;先写日志文件(把修改的日志记录写到日志文件),后写数据库(把对数据的修改写到数据库中)。
因为写数据库和写日志文件之间可能发生故障:
如果先修改数据库,而没有登记日志,则无法恢复该修改;如果先写日志,但没有修改数据库,恢复时多执行一次不必要的Undo操作,并不影响数据库的正确性。
7.在数据库设计中,需求分析产生的是数据流图和数据字典。
【】
答案:
V
解释:
需求信息的分析就是对收集到的需求信息进行加工整理,以数据流图和数据字典的形式进行描述,作为需求分析阶段的成果,这也是下一步设计的基础。
8.定义学分在0至60之间的语句是CHECK(学分>=0OR学分<=60)。
【】
答案:
X
解释:
学分在0至60之间,学分>=0与学分<=60两个条件应该使用AND,而不是OR。
9.SQLServer的备份方法有完全数据库备份、数据库和事务日志备份、差异备份、数据库文件或文件组备份。
【】
答案:
V
解释:
SQLServer2008中有4种备份方法:
完全数据库备份、数据库和事务日志备份、差异备份、数据库文件或文件组备份。
10.SQLServer的数据库对象名分为完全限定名和部分限定名。
【】
答案:
V
解释:
用户经常需要在T-SQL中引用SQLServer对象并对其进行操作,如对数据库表进行查询和数据更新等,在其所使用的T-SQL语句中需要给出对象的名称。
用户可以给出两种对象名,即完全限定名和部分限定名。
三、填空题(每空2分,共30分)
1.数据模型的三要素包含数据结构、数据操纵、。
答案:
数据完整性约束
解释:
数据模型的三要素包括:
数据结构(静态)是数据库组成对象以及对象之间的联系;数据操纵(动态)是数据库中各种对象(型)的实例(值)允许操作的集合,包括操作及有关的操作规则;数据完整性约束是一组完整性规则,给定的数据模型中数据及其联系所具有的制约和存储规则,限定数据库状态以及状态的变化,以保证数据的正确、有效、相容。
2.E-R图中联系的种类有、一对多、多对多。
答案:
一对一
解释:
E-R图中联系种类有一对一、一对多、多对多。
一对一联系是指实体集A中的任一实体,在实体集B中最多有唯一实体和它对应;反之,实体集B中的任一实体,在实体集A中最多有唯一实体和它对应。
3.在数据库的体系结构中,描述局部数据的逻辑结构和特征的是。
答案:
外模式
解释:
外模式(ExternalSchema,也称子模式或用户模式),是数据库用户(包括应用程序员和最终用户)使用的局部数据的逻辑结构和特征的描述。
4.关系的完整性分为:
实体完整性、、用户定义完整性。
答案:
参照完整性
解释:
关系的完整性分为实体完整性、参照完整性、用户定义完整性。
参照完整性是指:
若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须为:
或者取空值(F的每个属性值均为空值);或者等于S中某个元组的主码值。
5.关系代数支持的传统集合运算有并、交、差、。
答案:
广义笛卡尔积
解释:
关系代数支持的传统集合运算有并、交、差、广义笛卡尔积。
广义笛卡尔积是指:
R×S(其中R为k1行n列,S为k2行m列),其中列是(n+m)列的元组的集合,元组的前n列是关系R的一个元组,后m列是关系S的一个元组,行是k1×k2个元组。
6.把对表SC的查询权限授予给所有用户的SQL语句是GRANTSELECTONTABLESCTO。
答案:
PUBLIC
解释:
SQL中的GRANT授权语句使用PUBLIC表示所有用户。
7.把用户U5对SC表的所有权限回收的SQL语句是REVOKEONTABLESCFROMU5。
答案:
ALLPRIVILEGES
解释:
SQL中的REVOKE回收权限语句使用ALLPRIVILEGES表示所有权限。
8.事务正常结束时,提交所有的更新操作执行的SQL语句是。
答案:
COMMIT
解释:
事务正常结束使用COMMIT提交,异常终止使用ROLLBACK回滚。
9.事务的特性有、、隔离性、持续性。
答案:
原子性、一致性
解释:
事务的特性有原子性、一致性、隔离性、持续性。
原子性(Atomicity)是指事务中包括的所有操作要么都做,要么都不做。
一致性是指事务执行结果必须使数据库从一个一致性状态变到另一个一致性状态。
10.DBMS发生的常见故障有故障、系统故障和介质故障。
答案:
事务
解释:
DBMS发生的常见故障有事务故障、系统故障和介质故障。
事务故障是指事务未运行至正常终止点就终止了。
常见原因有:
输入数据有误,运算溢出,违反了某些完整性限制,某些应用程序出错,并行事务发生死锁。
对于可以预见的事务故障,由事务程序来处理;对不可预见的事务故障,由DBMS强行回滚该事务。
11.将用户david添加为固定数据库角色db_owner的成员的SQLServer命令是EXEC'db_owner','david'。
答案:
sp_addrolemember
解释:
固定数据库角色db_owner是数据库所有者,使用sp_addrolemember存储过程为其添加成员。
12.数据库恢复需要建立冗余数据,包括数据转储、。
答案:
登录日志文件
解释:
恢复操作的基本原理是冗余,即利用存储在系统其它地方的冗余数据来重建数据库中已被破坏或不正确的数据。
恢复机制涉及的关键问题之一是如何建立冗余数据:
数据转储(backup)、登录日志文件(log)。
13.在SQLServer中,不允许用户david使用CREATETABLE的SQL语句是CREATETABLETOdavid。
答案:
DENY
解释:
GRANT是授予权限,REVOKE是回收权限,DENY是拒绝权限。
david能够执行CREATETABLE语句的条件:
有用户GRANT,无用户DENY。
14.SQLServer中可以对表记录进行物理排序的是索引。
答案:
聚集
解释:
聚集索引将数据行的键值在表内排序,并且存储对应的数据记录,使得数据表物理顺序与索引顺序一致。
SQLServer2008是按B树方式组织聚集索引的,叶节点存放数据页信息。
每个表只能有一个聚集索引,数据记录按聚集索引键的次序存储,故对查找记录很有效。
四、关系数据库语言SQL(每题4分,共20分)
设某电子商务数据库e-business有如下关系模式:
供应商表SUPPLIERS(sid,sname,city,tel)
商品表PRODUCTS(pid,pname,price,sid)
客户表CUSTOMERS(cid,cname,addr,discnt)
订单表ORDERS(ordno,ordate,cid,pid,qty,dollars),其中dollars为该客户享受折扣后的所付金额。
完成下列要求:
(1)用SQL语句创建订单表,并指定该关系的主码和外码,要求购买数量qty大于零;
答案:
CREATETABLEORDERS(
ordnochar(4)Primarykey,
ordatedate,
cidchar(10),
pidchar(8),
qtyintCHECK(qty>0),
Dollarsfloat,
FOREIGNKEYcidREFERENCESCUSTOMERS(cid),
FOREIGNKEYpidREFERENCESPRODUCTS(pid));
解释:
在创建表CREATETABLE语句中使用CHECK约束限制qty大于零,使用PRIMARYKEY创建主码,使用FOREIGNKEY创建两个外码。
(2)设有新的客户Yang,编号c007,地址为西安市太白南路2号,享受折扣为0.95。
请写出SQL语句,将该客户信息插入到数据库中;
答案:
INSERTINTOCUSTOMERS
VALUES('c007','YANG','西安市太白南路2号',0.95);
解释:
使用INSERT语句向表中插入元组。
(3)用SQL语句实现“查询编号为p008的商品名称及其价格”;
答案:
SELECTpname,price
FROMPRODUCTS
WHEREpid='p008';
解释:
使用SELECT语句查询符合条件的元组,条件编号为p008使用WHERE子句表达。
(4)用SQL语句实现“查询没有购买商品名为‘iPhone4’的客户姓名”;
答案:
SELECTcname
FROMCUSTOMERS
EXCEPT
SELECTcname
FROMCUSTOMERSC,ORDERSO,PRODUCTSP
WHEREO.cid=C.cidANDP.pid=O.pidANDpname='iPhone4'));
解释:
首先使用SELECT语句查询所有客户姓名,然后使用EXCEPT删除购买了iPhone4的客户姓名,后者查询需要连接CUSTOMERS,ORDERS,PRODUCTS三个表。
(5)用SQL语句实现“查询所有客户姓名及其消费的总金额”,并按消费总金额降序输出。
答案:
SELECTcname,SUM(dollars)
FROMORDERSO,CUSTOMERSC
WHEREO.cid=C.cid
GROUPBYC.cid,cname
ORDERBYSUM(dollars)DESC;
解释:
先将ORDERS与CUSTOMERS表连接,然后根据客户编号与客户姓名分组,最后输出客户姓名与消费总金额,同时按照消费总金额降序排列。
注意客户姓名需要加入分组中,否则SELECT不能输出客户姓名。
五、数据库设计(10分)
某专业培训公司欲建立数据库系统,其企业需求信息描述如下:
1)公司有30多名培训讲师,需要记录讲师编号、姓名、职称和电话,一名讲师可以有多部电话;
2)公司提供5门专业培训课程,每门课由一个培训团队负责,每个团队由1至2名讲师组成,每名讲师至多可以属于2个培训团队;
3)公司每期培训会有近100名学员参加,每个学员具有编号、姓名、性别和生日等属性;
4)公司每期会提供若干门专业培训课程,每个学员每期只能参加一门培训课程。
根据上述信息,完成如下设计:
(1)画出该系统的E-R图;
答案:
讲师
学员
姓名
职称
学期
培训
电话
编号
团队
课程
名称
生日
性别
编号
成员
m
n
1
m
姓名
解释:
E-R图中包含团队实体,具有名称、课程等属性,讲师实体包含编号、姓名、职称、电话等属性,其中电话属性有多个值,团队与讲师之间是多对多的联系,学员实体包含编号、姓名、性别、生日等属性,团队与学员之间是一对多的联系,该联系具有学期属性。
(2)根据E-R图转换出相应的关系模式,指出各关系模式的主码。
答案:
讲师(编号,姓名,职称)
讲师电话(编号,电话)
团队(名称,课程)
成员(团队名称,讲师编号)
学员(编号,姓名,性别,出生日期)
培训(团队名称,学员编号,学期)
解释:
讲师、团队、学员三个实体分别转换为三个关系,讲师电话单独转换为一个关系,团队与讲师之间的成员联系转换为一个关系,团队与学员之间的培训联系转换为一个关系。