南京理工大学《数据库系统基础教程》试题和答案 下载本文

算。 Having子句

Having子句条件表示什么?

在分组聚合之后按某条件过滤分组,使用Having子句确定条件。 视图

什么是视图view?

依据一条SELECT语句产生的一个命名的“虚关系”或“虚表”。视图的数据均来自基本表,并不实际存储。一个定义好的视图可看作基本表,用于定义新的视图,或对之进行查询甚至更新。 一个数据库可定义多个视图。视图的名称不能与已有的表名冲突。视图是数据库模式的一部分。 为何需要视图?

简化计算。

不同用户关心同一表中的不同属性。 提高数据的安全性。

创建视图 如何创建视图?

CREATE VIEW [ owner .]view-name [( column-name , ... )] AS select-without-order-by [with check option] 例如:

CREATE View orderamount As

Select salesorder.orderno, signdate, empid, custid, Sum(quantity) as qty, Sum(singlecost*quantity) as amount

From dba.salesitem, dba.salesorder

Where salesorder.orderno = salesitem.orderno Group by salesorder.orderno, signdate, empid, custid 产生一个虚关系:

orderamount(orderno, signdate, empid, custid, qty, amount)

21

视图查询 如何查询视图?

对视图的查询与表查询遵循相同的语法。

例:计算销售金额最高的订单号、签单日期及销售金额。 Select orderno, signdate, amount From orderamount

Where amount = (Select Max(amount) From orderamount) 对视图的查询将由系统转换为对基本表的查询。 SQL约束和触发器 SQL中的键

键key是最重要的约束。每个表都必须确定自己的键。

每个表都可能有多个属性集可作为键,称为“候选键candicate key”。 一个表只能确定一个主键(Primary Key)。 若某个属性说明为Unique,则它是一个候选键。 主键和Unique属性之间有何区别和联系?

一个表有且仅有一个主键;而Unique属性可有多个或没有。 主键可以是多属性,而Unique只能说明单个属性。 若主键是单个属性,则该属性隐含为Unique。 若主键是多个属性,则每个属性都不可能为Unique。 实施主键约束

什么操作会导致违背键约束?

insert和update可能违背该表的键约束。

SQL实施主键约束即是在insert和update时检验键值,避免空值或重复键值。 参照完整性和外键

SQL中依靠外键保证参照完整性。外键定义时要注意区分参照关系和被参照关系。 说明外键约束

22

是否可定义一个表参照自己? 可以。

例如:salesman(empid, idno, name, managerid, deptid, …) 外键是否可取NULL值? 可以。 SQL系统概况 SQL事务

事务transaction是什么概念? 事务有何特性?ACID。 如何控制事务运行?

事务的一次运行只能是下面两个结果之一: Commit提交;或Rollback退回

Commit指令提交当前事务,完成对数据的更新。

Rollback指令退回当前事务,并取消当前事务对数据已做的更新。 Commit和Rollback都结束当前事务,并自动启动下一个事务。 在多用户多任务环境中,并发事务可能引起哪些问题? 同时更新同一数据 脏读dirty read

不可重复读non-repeatable read 虚行(幻象元组)phantom rows “写锁”write lock是什么概念?

某数据被一个事务修改,在该事务提交或退回之前,其他事务不能修改或删除此数据。 脏读是什么含义?

当事务A修改某数据后,在提交或退回前,该数据被事务B读取,若事务A退回,则事务B读取的数据为“脏数据”,即事务B发生脏读。 不可重读non-repeatable read是什么含义?

事务A先读某行数据,随后事务B修改update或删除delete该行数据并提交,事务A重复再读该行数据,结果就不一致。

23

虚行phantom rows是什么含义?

事务A按某条件C查询一组数据,随后事务B增加insert满足条件C的数据,或修改update条件C相关的数据,使得事务A按原条件C再次查询的结果不一致。也称为“幻象”元组。 “读锁”read lock是什么概念?

当某数据被一个事务处理时,其他事务限制读该数据。 Grant, Revoke指令有何用途?

一、选择题(选择一个最合适的答案)60%

1. 在实体/联系图(E/R图)中,实体集的每个属性都隐含为:

A 多值。 B 单值。 C 不允许为NULL。 D 前三者都不对。 2. “两个实体集之间若有联系,则该联系是唯一的。”这种说法对吗?

A 正确 B 不正确 C 不能断定 D 应该说,若该联系是一对一,则是唯一的。 3. “一个多对一的联系隐含着一对一的联系。”这种说法对吗

A 正确 B 不正确 C 不能断定 D 应该说,多对多的联系隐含一对一联系。 4. 考虑银行业务中“储户”与“帐号”之间的联系,该联系的多重性应该是:

A 一对一 B 多对一 C 一对多 D 多对多

5. 下面哪种约束要求一组属性在任意两个不同实体上的取值不同。

A 键(key)约束。 B 单值约束。 C 参照完整性。 D 域(domain)约束 6. 参照完整性约束要求某个联系中被参照的实体________。

A 至少有一个。 B 有一个且仅一个。 C零个到多个。 D 前三者都不对。 7. 对于一个“弱实体集”, 下面哪种说法不正确:

A 一定有一个多对一的联系到其它实体集。 B 自身属性不能构成完整的键。 C 可单独存在,而无需其它实体集。

D 可以有自己的属性。

8. 关系模型要求各元组的每个分量的值必须是原子性的。对原子性,下面哪种解释不

正确:

A 每个属性都没有内部结构。

B 每个属性都不可分解。

D 属性值不允许为NULL。

C 各属性值应属于某种基本数据类型。

24