数据库题库和答案

更新时间:2024-04-08 20:42:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

风流人物 http://www.FengLiuRenWu.com

数据库习题 有答案

填空题

1.数据库系统一般由(数据库)、应用系统、(数据库管理系统)、(数据库管理员)和用户构成。 2.数据模型通常由(数据结构)、(数据操作)、(数据的约束条件)三部分组成。 3.实体之间的联系可抽象为三类,它们是(一对一)、(一对多)、(多对多)。 4.在数据库设计中,(数据字典)是系统中各类数据描述的集合,是进行详细的数据收集和数据分析所获得的主要成果。 5.(事务)是用户定义的一个数据库操作序列,这些操作要么全做要么全不做,是一个不可分割的工作单位。 6.数据库系统在运行过程中,可能会发生故障。故障主要有(事务故障)、系统故障、(介质故障)和计算机病毒四类。

7.并发控制的主要方法是采用(封锁)机制,其类型有(共享锁)和(排它锁)两种。 8.数据库的完整性是指数据的(正确性)和(相容性)。

9.在SQL语言中,为了数据库的安全性,设置了对数据的存取进行控制的语句,对用户授权使用(GRANT)语句,收回所授的权限使用(REVOKE)语句。 10.( 数据库 )是长期存储在计算机内的、有组织、可共享的数据集合。 11.数据库系统的三级模式结构是指数据库系统是由( 模式)、(外模式)、( 内模式)三级构成的。 12.在一个关系R中,若每个数据项都是不可再分割的,那么R一定属于( 第一(1NF))范式。 E-R图一般在数据库设计的( 概念结构设计)阶段使用。 13.( 事务 )是用户定义的一个数据库操作序列,是一个不可分割的工作单位,它具有(原子性)、(一致性)、( 隔离性)、( 持续性 )四个特性。

14.数据库系统中,系统故障通常称为( 软故障 ),介质故障称为( 硬故障 )。 15.关系操作的特点是(集合)操作。

16.若事务T对数据对象A加了S锁,则其他事务只能对数据A再加( S )锁,不能加(X )锁,直到事务T释放A上的锁。

17.信息处理的方式而言,在文件系统阶段,(程序设计)处于主导地位,(数据)只起着服从程序设计需要的作用;而在数据库方式下,(数据)占据了中心位置。

18.现实世界进行第一层抽象的模型,称为(概念)模型;对现实世界进行第二层抽象的模型,称为(数据)模型。 19.数据库的三级模式结构是对(数据)的三个抽象级别。

20.在数据库技术中,编写应用程序的语言仍然是C—类高级语言,这些语言被称为(宿主语言(或主语言,Host Language))语言。

21.层次、网状的DML属于(过程性)语言,而关系型DML属于(非过程性)语言。 22.关系模式的操作异常问题往往是由(数据冗余)引起的。

23.消除了非主属性对侯选键局部依赖的关系模式,称为(2NF)模式。 24.消除了非主属性对侯选键传递依赖的关系模式,称为(3NF)模式。 25.消除了每一属性对侯选键传递依赖的关系模式,称为(BCNF)模式。 26.恢复的基本原则是(冗余)。要使数据库具有可恢复性,在平时要做好两件事:(转储(备份))和(记“日志”)。 27.如果对数据库的并发操作不加以控制,则会带来四类问题:(丢失更新)、(读“脏数据”)和(不可重复读)。 28.事务的执行次序称为(调度)。

29.判断一个并发调度是否正确,可以用(可串行化)概念来解决。 30.封锁能避免错误的发生,但会引起(活锁和死锁)问题。 31.S封锁增加了并发度,但缺点是(容易发生死锁)。

- 1 -

风流人物 http://www.FengLiuRenWu.com

32.两段式封锁是可串行化的(充分)条件。

33.数据库的完整性是指数据的(正确性)和(相容性)。 34.SQL中的安全性机制,主要有两个:(视图)和(授权)。 35.SQL的授权语句中的关键字PUBLIC表示(全体用户)。

36.在数据管理技术的发展过程中,经历了人工管理阶段,文件系统阶段和数据库系统阶段,在这几个阶段中,数据的独立性是(数据库系统)阶段实现的。

37.数据库是在计算机系统中按照数据模型组织、储存和应用的(数据的集合),支持数据库各种操作的软件系统叫(数据库管理系统),由计算机、操作系统、DBMS、数据库应用程序及用户等组成的一个整体叫做(数据库系统)。 38.数据库的基本特点是(数据可以共享(或数据结构化)、数据独立性、数据冗余度小,易扩充、统一管理和控制)。 39.(数据库)是存储在计算机内组织的结构化的相关数据的集合。 40.在数据库中存储的是(数据以及数据之间的联系)。

41.数据库的特点之一是数据的共享。严格的讲,这里的数据共享是指(多种应用,多种语言,多个用户相互覆盖所用的数据集合)。

42.数据库系统的核心是(数据库管理系统)。

43.数据库技术中采取分级方法将数据库的结构划分成多个层次,是为了提高数据库的(逻辑独立性)和(物理独立性)。

44.数据库系统的特点是(数据共享),数据独立,减少数据剩余,避免数据不一致和加强了数据保护。

45.数据库管理系统能实现对数据库中数据的查询,插入,修改和删除等操作,这种功能称为(数据操纵功能) 46.在数据库的三级模式结构中,描述数据库中的全体数据的全局逻辑结构和特征的是(模式)

47.为了使程序员编程时既可以使用数据库语言又可使用常规的程序设计语言,数据库系统需要把数据库语言嵌入到(宿主语言)中

48.数据管理技术经历了(人工管理),(文件管理)和(数据库系统)三个阶段 49.数据库是长期存储在计算机内,有(组织)的,可(共享)的数据集合

50.DBMS是指(数据库管理系统)它是位于(用户)和(操作系统)之间的一层管理软件 51.数据库管理系统的主要功能有(数据定义功能),(数据操作功能),数据库的运行管理和数据库的建立以及维护等4个方面。

52.数据独立性又可为(逻辑数据独立性)和(物理数据独立性)。

53.当数据的存储结构改变了,应用程序不变,而由DBMS处理这种改变。这是指数据的(物理独立性) 54.根据数据模型的应用目的不同,数据模型可分为(概念模型)和(数据模型) 55.数据模型是由(数据结构),(数据操作)和(完整性约束) 三部分组成的 56.按照数据结构的类型来命名,数据模型分为(层次模型),(网状模型)和(关系模型)。

57.现实世界的事物反映到人的头脑中经过思维加工是数据,这一过程要经历三个领域,依次是(现实世界),(信息世界)和(计算机世界)。

58.实体之间的联系可抽象为三类它们是(1:1),(1:m)和(m:n) 59.按所使用的数据模型来分,数据库可分为(层次)、(关系)和(网状)三种类型。 60.关系数据库规范化是为解决关系数据库中(插入、删除和数据冗余)问题而引入的。 61.关系规范中的删除操作异常是指(不该删除的数据被删除),插入操作异常是指(应该插入的数据未被插入)。 62.设计性能较优的关系模式称为规范化,规范化主要的理论依据是(关系规范化理论)。

63.规范化理论是关系数据库进行逻辑设计的理论依据。根据这个理论,关系数据库中的关系必须满足:其每一属性都是(不可分解的)。

64.数据模型的三要素是(数据结构),(数据操作)和(数据约束条件)。

65.对于数据库系统,负责定义数据库内容,决定存储结构和存储策略及安全授权等工作的是(数据库管理员)。 66.关系模型是把实体之间的联系用(二维表格)表示。

67.在关系数据库中,当关系的类型改变时,用户程序也可以不变,这是(数据的逻辑独立性)。

- 2 -

风流人物 http://www.FengLiuRenWu.com

68.当数据库的存储结构改变时,可相应修改(模式/内模式映像),从而保持模式不变。

69.在数据库系统的三级模式体系结构中,描述数据在数据库中的物理结构或存储方式的是(内模式)。 70.在数据库系统的三级组织结构中,DBA视图是(概念模式),系统程序员视图是(内模式),用户视图是(外模式)。

71.表示实体及其联系的方法为(E-R图),基本图素包括(实体)、(属性)和(联系)。习惯上实体用(矩形)表示,实体属性用(椭圆形)表示,联系用(菱形)表示。

72.层次模型是用(树型)结构表示记录类型及其联系,其中上一层记录型和下一层记录型的联系是(1:M),层次模型不能直接支持(M:N)联系。

73.在数据库的三级模式体系结构中,模式与内模式之间的映象(模式/内模式),实现了数据库的(物理)独立性。 71.在关系模型中,若属性A是关系R的主码,则在R的任何元组中,属性A的取值都不允许为空,这种约束称为(实体完整性)规则。

72.描述概念模型常用的方法是(实体--联系方法)。

73.消除了部分函数依赖的1NF的关系模式,必定是( 2NF)。

74.关系模式中R的属性全部是主属性,则R的最高范式必定是( 3NF)。

75.在关系A(S,SN,D)和B(D,CN,NM)中,A的主键是S,B的主键是D,则D在S中称为(外码)。

76.对于非规范化的模式,经过(将每一个分量化分为不可分的数据项)转变为1NF,将1NF经过(消除每一个非主属性对码的部分函数依赖,)转变为2NF,将2NF经过( 消除非主属性对码的传递函数依赖 )转变为3NF。 77.关系模型中的关系模式至少是(1NF)。 78.关系模式中,满足2NF的模式必定是(1NF)。

79.在关系模式R中,若其函数依赖集中所有候选键都是决定因素,则R最高范式是(4NF)。 80.候选关键字中的属性称为( 主属性)。

81.在数据库设计中,将E-R图转换成关系数据模型的过程属于( 逻辑设计阶段 )。 82.在数据库设计的4个阶段中,每个阶段都有自己的设计内容。“在哪些表、在哪些属性上、建什么样的索引”,这一内容应该属于(物理)设计阶段。

83.在数据库设计的需求分析阶段,数据字典通常由(数据项)、(数据结构)、(数据流)、(数据存储)和(处理过程)5部分组成。

84.在关系数据库设计中,使每个关系达到3NF,这是(逻辑设计阶段)阶段完成的。 85.设计概念结构时,常用的数据抽象方法是( 聚集)和(概括 )。 86.在数据抽象中,概括层次表示(是一个(is a))联系,聚集层次表示(是一部分(is part of))联系。 87.就方法的特点而言,需求分析阶段通常采用(自顶向下逐步细化)的分析方法;概念设计阶段通常采用(自底向上逐步总和)的设计方法。

88.在数据库设计中,子类和超类存在着(继承)的联系。

89.由分E-R图生成初步E-R图,其主要任务是(消除属性冲突)、(消除结构冲突)和(消除命名冲突)。 90.由初步E-R图构成基本E-R图,其主要任务是(消除不必要的冗余)。

91.假定一个E-R图包含有A实体和B实体,并且从A到B存在着1:N的联系,则转换成关系模后,右以包含有(1或2 )个关系模式。 92.假定一个E-R图包含有A实体和B实体,并且从A到B存在着M:N的联系,则转换成关系模型后,包含有( 3 )个关系模式。 93.(物理结构设计)阶段与具体的DBMS密切相关。

94.数据流图是数据库系统设计过程中(概念结构设计)阶段完成的。 95.事物的所有操作要么全做,要么全不做,这是事务的(原子)特性。 96.并发操作带来的问题主要有(丢失修改),(不可重复读),(读脏数据)。 97.在登录日志文件时,应该先(登录日志文件),后(更新数据库)。

98.若事物T对数据R已经加了X锁,则其他事物对数据R(不能加任何锁)。

99.对数据对象施加封锁,可能会引起活锁和死锁问题。预防死锁通常有(一次封锁法)和(顺序封锁法)两种方

- 3 -

风流人物 http://www.FengLiuRenWu.com

法。

100.多个事物在某个调度下的执行是正确的,是能保证数据库一致性的,当且仅当该调度是(可串行化的)。 101.数据库管理系统通常提供授权功能来控制不同用户访问数据的权限,这主要是为了实现数据库的(安全性)。 102.关系规范化的目的是(控制冗余,避免插入和删除异常,从而增强数据的稳定性和灵活性).

103.在关系A(S,SN,D)和B(D,CN,NM)中,A的主键是S,B的主键是D,则D在A中称为(外码)。 104.在一个关糸R中,若每个数据项都是不在分割的,那么R一定属于(1NF)

105.若关系为1NF,且它的每一个非主属性都(完全函数依赖于或不部分函依赖于)码,则该关糸为2NF。 106.设有如图所示的关糸R,R的候选关键字为(A和DE);R中的函数依赖有(AD→E,DE→A);R属于(BCNF)范式。

R

A A1 A2 A3 A4 D D1 D6 D4 D4 E E2 E2 E3 E4

二、选择题

1.在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。在这几个阶段中,数据独立性最高的是( A )阶段。

A.数据库系统 B.文件系统 C.人工管理 D.数据项管理 2.数据库的概念模型独立于( A )。

A.具体的机器和DBMS B.E-R图 C.信息世界 D.现实世界

3.在数据库的三级模式结构中,描述数据库中全体数据的全局逻辑结构和特征的是( D )。 A.外模式 B.内模式 C.存储模式 D.模式 4.数据库的层次模型应满足的条件是( C )。

A.允许一个以上的结点无双亲,也允许一个结点有多个双亲 B.必须有两个以上的结点

C.有且仅有一个结点无双亲,其余结点都只有一个双亲 D.每个结点有且仅有一个双亲

5.在关系代数的专门关系运算中,从表中取出指定的属性的操作称为(B) A.选择 B.投影 C.连接 D.扫描

6.在关系代数的专门关系运算中,从表中选出满足某种条件的元组的操作称为(A); A.选择 B.投影 C.连接 D.扫描

7.在关系代数的专门关系运算中,将两个关系中具有共同属性值的元组连接到一起构成新表的操作称为(C)。 A.选择 B.投影 C.连接 D.扫描

8.如下图所示,两个关系R1和R2,它们进行( D )运算后得到R3。 A.交 B.并 C.笛卡尔积 D.连接

R1 R2 R3

A B C E M A B C D E M

a 1 x 1 m i a 1 x m i

c 2 y 2 n j d 1 y m i

d 1 y 5 m k c 2 y n j

- 4 -

风流人物 http://www.FengLiuRenWu.com

9.关系数据库中的码是指( D )。

A.能唯一决定关系的字段 B.不可改动的专用保留字

C.关键的很重要的字段 D.能唯一标识元组的属性或属性集合 10.SQL语言具有两种使用方式,分别为交互式SQL和( C )。

A.提示式SQL B.多用户SQL C.嵌入式SQL D.解释式SQL 11.设计性能较优的关系模式称为规范化,规范化主要的理论依据是( A )。

A.关系规范化理论 B.关系运算理论 C.关系代数理论 D.数理逻辑理论 12.规范化过程主要为克服数据库逻辑结构中的插入异常,删除异常以及( C )缺陷。 A.数据的不一致性 B.结构不合理 C.冗余度大 D.数据丢失 13.当关系模式R(A,B)已属于3NF,下列说法中( B )是正确的。 A.它一定消除了插入异常和删除异常 B.仍存在一定的插入和删除异常 C.一定属于BCNF D.A和C都是

14.消除了非主属性对码的部分函数依赖的1NF的关系模式,必定是( B )。 A.1NF B.2NF C.3NF D.4NF

15.E-R图是数据库设计的工具之一,它适用于建立数据库的( A )。 A.概念模型 B.逻辑模型 C.结构模型 D.物理模型 16.在关系数据库设计中,设计关系模式是( C )的任务。

A.需求分析阶段 B.概念设计阶段 C.逻辑设计阶段 D.物理设计阶段 17.当局部E-R图合并成全局E-R图时可能出现冲突,不属于合并冲突的是( B )。 A.属性冲突 B.语法冲突 C.结构冲突 D.命名冲突

18.DBMS通常提供授权功能来控制不同用户访问数据的权限,这主要是为了实现数据库的( D )。 A.可靠性 B.一致性 C.完整性 D.安全性

19.设有两个事务T1、T2,其并发操作如下图所示,下面评价正确的是( D )。

A.该操作不存在问题 B.该操作丢失 C.该操作不能重复读 D.该操作读“脏”数据

T1 ①读A=100 A=A*2 写回 ② ③ROLLBACK 恢复A=100 T2 读A=200

20.若事务T对数据R已加了X锁,则其他事务对数据R( D )。 A.可以加S锁不能加X锁 B.不能加S锁可以加X锁 C.可以加S锁也可以加X锁 D.不能加任何锁 21.后备副本的用途是( C )。

A.安全性保障 B.一致性控制 C.故障后的恢复 D.数据的转储 22.用于数据库恢复的重要文件是( C )

A.数据库文件 B.索引文件 C.日志文件 D.备注文件 23.数据库系统与文件系统的主要区别是( B )。 A.数据库系统复杂,而文件系统简单。

B.文件系统不能解决数据冗余和数据独立性问题,而数据库系统可以解决。 C.文件系统只能管理程序文件,而数据库系统能够管理各种类型的文件。 D.文件系统管理的数据量较少,而数据库系统可以管理庞大的数据量。

- 5 -

风流人物 http://www.FengLiuRenWu.com

24.在数据库中,下列说法( A )是不正确的。 A.数据库避免了一切数据的重复

B.若系统是完全可以控制的,则系统可确保更新时的一致性 C.数据库中的数据可以共享 D.数据库减少了数据冗余

25.数据库的网状模型应满足的条件是( A )。

A.允许一个以上的结点无双亲,也允许一个结点有多个双亲 B.必须有两个以上的结点

C.有且仅有一个结点无双亲,其余结点都只有一个双亲 D.每个结点有且仅有一个双亲

26.按所使用的数据模型来分,数据库可分为( A )三种类型。

A.层次、关系和网状 B.网状、环状和链状 C.大型、中型和小型 D.独享、共享和分时

27.设有如下图所示的关系R,经操作∏A,B(σB=b(R))的运算结果是( C )

R A. B. C. D.

A B C 、 A B A B C A B C A B a D A f A B C b a B C B d C B D d b c B

28.如下图所示,两个关系R1和R2,它们进行( D )运算后得到R3。 R1 R2 R3

A B C D E M A B C E M

a 1 X 1 m I a 1 X m i

c 2 Y 2 n J d 1 Y m i

d 1 Y 5 m K c 2 Y n j A.交 B.并 C.笛卡尔积 D.连接

29.SQL语言是( C )语言。

A.层次数据库 B.网络数据库 C.关系数据库 D.非数据库 30.关系数据库规范化是为解决关系数据库中( A )问题而引入的。 A.插入、删除和数据冗余 B.提高查询速度

C.减少数据操作的复杂性 D.保证数据的安全性和完整性 31.关系模式中,满足2NF的模式,( D )。

A.可能是1NF B.必定是BCNF C.必定是3NF D.必定是1NF 32.能消除多值依赖引起的冗余的是( C )。

A.2NF B.3NF C.4NF D.BCNF

33.从E-R模型向关系模型转换时,一个M:N联系转换为关系模式时,该关系模式的码是( C )。A. M端实体的码 B.N端实体的码 C.M端实体的码与N端实体的码的组合 D.重新选取其他属性

34.保护数据库,防止未经授权的或不合法的使用造成的数据泄露、更改破坏。这是指数据库的(A.安全性 B.完整性 C.并发控制 D.恢复

35.设有两个事务T1、T2,其并发操作如下图所示,下面评价正确的是( C )。

A.该操作不存在问题 B.该操作丢失 C.该操作不能重复读 D.该操作读“脏”数据

- 6 -

A B a b d a )。 A 风流人物 http://www.FengLiuRenWu.com

T1 ①读A=10,B=5 求和A+B=15 ② ③读A=20,B=5 求和25验证错 T2 读A=10 A=A*2 写回

36.若系统在运行过程中,由于某种原因,造成系统停止运行,致使事务在执行过程中以非正常方式终止,这时内存中的信息丢失,而存储在外存上的数据未受影响,这种情况称为( B )。 A.事务故障 B.系统故障 C.介质故障 D.运行故障 37.在数据库中存储的是( C )

A.数据 B.数据模型 C.数据以及数据之间的联系 D.信息 38.按所使用的数据模型来分,数据库可分为( A )三种类型。

A.层次、关系和网状 B.网状、环状和链状 C.大型、中型和小型 D.独享、共享和分时 39.关系数据模型( D )。

A.只能表示实体间的1:1联系国 B.只能表示实体间的1:n联系 C.只能表示实体间的m:n联系 D.可以表示实体间的上述三种联系 40.设有属性A,B,C,D,以下表示中不是关系的是( C )

A.R(A) B.R(A,B,C,D) C.R(A×B×C×D) D.R(A,B)

42.自然连接是构成新关系的有效方法。一般情况下,当对关系R和S使用自然连接时,要求R和S含有一个或多个共有的( D )。

A.元组 B.行 C.记录 D.属性 43.侯选码中的属性称为( B )。

A.非主属性 B.主属性 C.复合属性 D.关键属性

44.数据库概念设计的E-R方法中,用属性描述实体的特征,属性在E-R图中,用( D )表示。 A.矩形 B.四边形 C.菱形 D.椭圆形 45.数据库的( B )是指数据的正确性和相容性。

A.安全性 B.完整性 C.并发控制 D.恢复

46.设有两个事务T1、T2,其并发操作如下图所示,下面评价正确的是( B )。

A.该操作不存在问题 B.该操作丢失 C.该操作不能重复读 D.该操作读“脏”数据

T1 ①读X=48 ② ③X←X+10 写回X ④ T2 读X=48 X←X-2 写回X

47.若事务T对数据R已加了S锁,则其他事务对数据R( A )。 A.可以加S锁不能加X锁 B.不能加S锁可以加X锁 C.可以加S锁也可以加X锁 D.不能加任何锁 48.事务(Transaction)是一个( C )

A.程序 B.进程 C.操作序列 D.完整性规则

- 7 -

风流人物 http://www.FengLiuRenWu.com

49.事务对DB的修改,应该在数据库中留下痕迹,永不消逝。这个性质称为事务的( A ) A.持久性 B.隔离性 C.一致性 D.原子性 50.事务的执行次序称为( C )

A.过程 B.步骤 C.调度 D.优先级

51.在事务依赖图中,如果两个事务的依赖关系形成一个循环,那么就会( B ) A.出现活锁现象 B.出现死锁现象 C.事务执行成功 D.事务执行失败 三、解释下面的名词

1.数据库(DB) 2.RDBMS 关系数据库管理系统 3.结构化查询语言(SQL) 4.回滚(ROLLBACK)

5.自主存取控制(DAC) 6.数据库管理系统(DBMS) 7. 共享意向排它锁(SIX锁) 8.强制存取控制(MAC) 四.简答题

1.什么是基本表?什么是视图?两者的区别和联系是什么?

答:基本表是实际存储在数据库中的二维表,它是本身独立存在的表,在SQL中一个关系就对应一个表。

视图是关系数据库系统提供给用户以多种角度观察数据库中数据的重要机制。

区别:视图是从一个或几个基本表(或视图)中导出的表,是一个虚表,数据库中只存放视图的定义,而不存放视图对应的数据,这些数据仍存放在原来的基本表中。

2.什么叫数据与程序的物理独立性?什么叫数据与程序的逻辑独立性?

答:数据与程序的物理独立性是指当数据库的存储结构改变,将模式/内模式映象作相应改变,使模式保持不变,从而应用程序不必改变。

数据与程序的逻辑独立性是指当模式改变时,将外模式/模式的映象作相应改变,使外模式保持不变,从而应用程序不用修改。

3.简述事务所具有的ACID特性。 答:事务的ACID特性是:

原子性:事务是一个不可分割的单位。

一致性:事务对数据库操作的结果是将数据库从一个一致性状态变为另一个一致性状态。 隔离性:多个事务的并发执行不互相干扰。

持续性:事务一旦提交,它对数据库中数据的改变就是永久性的。 4.登记日志文件时为什么必须先写日志文件,后写数据库?

答:把数据的修改写到数据库和把对数据的修改操作写到日志文件是两个不同的操作,在两个操作之间可能会发生故障如果先写了数据库修改,而在日志文件中没有登记这个修改,在恢复的时候就无法恢复这个修改了;如果先写日志,但没有修改数据库,按日志恢复时只是多执行一次撤消操作,并不影响数据库的正确性,为了安全,一定要先写日志文件。

5.DBMS的完整性控制机制应具有哪些功能? 答:应具有三方面的功能:

(1)定义功能,提供定义完整性条件的机制

(2)检查功能,检查用户发出的操作请求是否违背了完整性约束条件。

(3)如果发现用户的操作请求违背了完整性约束条件,则采取一定的动作来保证数据的完整性。 6.什么是数据字典?数据字典的作用是什么? 答:数据字典是系统中各类数据描述的集合

作用:供DBMS在处理数据存取时快速查找有关对象的信息,供DBA查询掌握系统的运行情况,支持数据库设计和系统分析。

7.什么样的并发调度是正确的调度?

答:多个事务的并发执行的结果与按某一次序串行的执行它们时的结果相同,我们说这样的并发调度是可串行化的调度,如果一个调度是可串行化的,那么认为它是正确的调度。

- 8 -

风流人物 http://www.FengLiuRenWu.com

8.试叙述事务的4个性质,并结实每一个性质由DBMS的哪个子系统实现?每一个性质对DBS有什么益处?

答:1)事务的原子性是指一个事务对DB的所以操作,是一个不可分割的工作单位。原子性是由DBMS的事务管理子系统实现的。事务的原子性保证了DBS的完整性。

2)事务的一致性是指数据不会因事务的执行而遭受破坏。事务的一致性是由DBMS的完整性子系统实现的。事务的一致性保证数据库的完整性。

3)事务的隔离性是指事务的并发执行与这些事务单独执行时结果一样。事务的隔离性是由DBMS的并发控制子系统实现的。隔离性使并发执行的事务不必关心其他事务,如同在单用户环境下执行一样。

4)事务的持久性,是指事务对DB的更新应永久地反映在DB中。持久性是由DBMS的恢复管理子系统实现的。持久性能保证DB具有可恢复性。

9.事务的COMMIT语句和ROLLBACK语句的功能是什么? 答:COMMIT语句表示事务执行成功地接结束(提交),此时告诉系统,DB要进入一个新的正确状态,该事务对DB的所有更新都已交付实施(写入磁盘)。

ROLLBACK语句表示事务执行不成功地结束(应该“回退”)此时告诉系统,已发生错误,DB可能处在不正确的状态,该事务对DB的所有更新必须被撤消,DB应恢复该事务到初始状态。 10.日志文件中记载了哪些内容?

答:日志文件中记载了事务开始标记、事务结束标记以及事务对DB的插入、删除和修改的每一次操作前后的值。 11.并发操作会产生几种不一致情况?用什么方法避免各种不一致的情况?

答:并发操作可能会产生丢失修改,不能重复读和读”脏”数据这三种不一致情况,采用封锁机制来进行并发控制,可避各种不一致情况。一级封锁协议可以避免丢失修改,二级封锁协议可以避免丢失修改和读”脏”数据,三级封锁协议可以避免丢失修改、不能重复读和读”脏”数据。 12.X封锁与S封锁有什么区别? 答:X锁与S锁的区别如图所示。

X锁 只允许一个事务独锁数据 获准X锁的事务可以修改数据 事务的并发度低 X锁必须保留到事务终点 解决“丢失更新”问题 S锁 允许多个事务并发S锁某一数据 获准S锁的事务只能读取数据,但不能修改数据 事务的并发度高,但增加了死锁的可能性 根据需要,可随时解除S锁 解决“读不一致性”问题 13.为什么要设立日志文件?

答:设立日志文件的目的,是为了记录对数库中数据的每一次更新操作,从而DBMS可以根据日志文件进行事务故障的恢复和糸统故障的恢复,并可结合后授副本进去介质故障的恢复。 14.怎样进行糸统故障的恢复?

答:系统故障造成数据库不一致状态的原因有两个,一是未完成事务对数据库的更新可能已写入数据库,二是已提交事务对数据库的更新可能还留在缓冲区没来得及写入数据库。因此恢复操作就是要撤消故障发生时未完成的事务,重做已完成的事务。

⑴ 正向扫描日志文件(即从头扫描日志文件),找出在故障发生前已经提交的事务(这些事务既有BEGIN TRANSACTION记录,也有COMMIT记录),将其事务标识记入重做(REDO)队列。同时找出故障发生时尚未完成的事务(这些事务只有BEGIN TRANSACTION记录,无相应的COMMIT记录),将其事务标识记入撤消(UNDO)队列。

⑵ 对撤消队列中的各个事务进行撤消(UNDO)处理。

进行UNDO处理的方法是,反向扫描日志文件,对每个UNDO事务的更新操作执行逆操作,即将日志记录中“更新前的值”写入数据库。

⑶ 对重做队列中的各个事务进行重做(REDO)处理。 进行REDO处理的方法是:正向扫描日志文件,对每个REDO事务重新执行日志文件登记的操作。即将日志记录中“更新后的值”写入数据库。

15.怎样进行介质故障的恢复?

- 9 -

风流人物 http://www.FengLiuRenWu.com

答:发生介质故障后,磁盘上的物理数据和日志文件被破坏,恢复方法是重装数据库,然后重做已完成的事务。具体地说就是:

⑴ 装入最新的数据库后备副本(离故障发生时刻最近的转储副本),使数据库恢复到最近一次转储时的一致性状态。

对于动态转储的数据库副本,还须同时装入转储开始时刻的日志文件副本,利用恢复系统故障的方法(即REDO+UNDO),才能将数据库恢复到一致性状态。

⑵ 装入相应的日志文件副本(转储结束时刻的日志文件副本),重做已完成的事务。即: 首先扫描日志文件,找出故障发生时已提交的事务的标识,将其记入重做队列。

然后正向扫描日志文件,对重做队列中的所有事务进行重做处理。即将日志记录中“更新后的值”写入数据库。 16.数据库在运行过程中可能产生的故障有哪几类? 答:1)事物故障

事物在运行过程中由于种种原因,如输入数据的错误,运算溢出,违反了某些完整性限制,某些应用程序的错误,以及并行事物发生死锁等,使事物未能运行到正常中指点之前就被撤消了,这种情况称为“事物故障”。

2)系统故障

系统鼓掌是指系统在运行过程中,由于某些原因,如OS和DBMS代码错误,操作员操作事物。特定类型的硬件错误(CPU故障),突然停电等造成系统停止运行,致使事物在执行过程中以非控方式中指。这时。内存中的信息丢失,而存储在外存储上的数据未受影响,这种情况称为“系统故障”。

3)介质故障

系统在运行过程中,由于某种硬件故障,如磁盘损坏,磁头碰撞,或由于OS的某种潜在的错误。瞬间强磁场干扰,使存储在外存的数据部分损失或全部损失,称之为“介质故障”。

4)计算机病毒

计算机病毒是一种人为的故障和破坏,它是一种计算机程序,通过读写染有病毒的计算机系统中的程序和数据这些病毒可以迅速繁殖和传播,危害计算机系统和数据库。 17.怎样进行事务故障的恢复

答:事务故障是指事务在运行至正常终止点前被中止,这时恢复子系统应利用日志文件撤消(UNDO)此事务已对数据库进行的修改。事务故障的恢复是由系统自动完成的,对用户是透明的。系统的恢复步骤是:

⑴ 反向扫描文件日志(即从最后向前扫描日志文件),查找该事务的更新操作。

⑵ 对该事务的更新操作执行逆操作。即将日志记录中“更新前的值”写入数据库。这样,如果记录中是插入操作,则相当于做删除操作(因此时“更新前的值”为空)。若记录中是删除操作,则做插入操作,若是修改操作,则相当于用修改前值代替修改后值。

⑶ 继续反向扫描日志文件,查找该事务的其他更新操作,并做同样处理。 ⑷ 如此处理下去,直至读到此事务的开始标记,事务故障恢复就完成了。 18.试述文件系统与数据库系统的区别和联系。 答:文件系统与数据库系统的区别是:

文件系统面向某一应用程序,共享性差,冗余度大,数据独立性差,记录内有结构,整体无结构,由应用程序自己控制。

数据库系统面向现实世界,共享性高,冗余度小,具有较高的物理独立性和一定的逻辑独立性,整体结构化,用数据模型描述,由数据库管理系统提供数据的安全性、完整性、并发控制和恢复能力。

文件系统与数据库系统的联系:文件系统与数据库系统都是计算机系统中管理数据中管理数据的软件。 19.DBA的职责是什么?

答:1)决定数据库中的信息内容和结构

2)决定数据库的存储结构和存取策略

3)定义数据的安全性要求和完整性约束条件 4)监控数据库的使用和运行 5)数据库的改进和重组重构

- 10 -

风流人物 http://www.FengLiuRenWu.com

20.试述查询优化的一般步骤。 答:1)把查询转换成某种内部表示

2) 把语法树转换成标准(优化)形式 3) 择低层的存取路径

4) 生成查询计划,选择代价最小的

21.数据库中为什么要有恢复子系统?它的功能是什么?

答:因为计算机系统中硬件的故障、软件的错误、操作员的失误以及恶意的破坏是不可避免的,这些故障轻则造成运行事务非正常中断,影响数据库中数据的正确性,重则破坏数据库,使数据库中全部或部分数据丢失。

功能:是把数据库从错误状态恢复到某一已知的正确状态(亦称为一致状态或完整状态),这就是数据库的恢复。

22.数据库转储的意义是什么?常用的有几种方法?

答:数据转储是数据库恢复中采用的基本技术,所谓转储即DBA定期将整个数据库复制到磁带或另一个磁盘上保存起来的过程。这些备用的数据文本称为后备副本或后援副本。当数据库遭到破坏后可以将后备副本重新载入,将数据库恢复到转储时的状态。

转储可分为静态转储和动态转储。静态转储是在系统中无运行事务时进行的转储操作。动态转储是指转储期间允许对数据库进行存取或修改。即转储和用户事务可以并发执行。

转储还可分为海量转储和增量转储两种方式。 23.什么是日志文件?为什么要设立日志文件?

答:日志文件是用来记录事务对数据库的更新操作的文件。

目的是进行事物故障恢复;进行系统故障恢复;协助后备副本进行介质故障恢复。 24.试述使用检查点方法进行恢复的步骤。

答:1)从重新开始文件中找到追后一个检查点记录在日志文件中的地址,由该地址在体制文件中找到最后一个检查点记录。

2)由该检查点记录得到检查点建立时刻所有正在执行的事务清单ACTIVE-LIST。 这里建立两个事务队列:

①UNDO-LIST:需要执行undo操作的事务集合; ②REDO-LIST需要执行redo操作的事务集合。

把ACTIVE-LIST暂时放入UNDO-LIST队列,REDO队列暂时为空。 3) 检查点开始正向扫描日志文件:

①如果有新开始的事务Ti,把Ti暂时放入UNDO-LIST队列;

②如有提交的事务T j,把Tj从UNDO-LIST队列移到REDO-LIST队列,直到日志文件结束; 4)对UNDO-LIST中的每个事务执行UNDO操作,对REDO-LIST中的每个事务执行REDO操作。 25.什么是数据库镜像?它有什么用途?

答:根据DBA的要求,自动把整个数据库或其中的关键数据复制到另一个磁盘上。每当主数据库更新时,DBMS自动把更新后的数据恢复过去,即DBMS自动保证镜像数据与主数据的一致性。

用途:1)一旦出现介质故障,可由镜像磁盘继续提供使用,同时DBMS自动利用镜像磁盘数据进行数据库恢复,不需要关闭系统和重装数据库副本。

2)在没有出现故障时,数据库镜像还可以并发操作。提高数据库的可用性。

26.请给出预防死锁的若干方法。

答:在数据库中,产生 死锁的原因是两个或多个事务都已封锁了一些数据对象,然后又都请求对已为其他事务封锁的数据对象加锁,从而出现死等待。

预防死锁通常有两种方法:1)一次封锁法。一次封锁法要求每个事务必须一次将所有要使用的数据全部加锁,否则就不能继续执行。2)顺序封锁法。顺序封锁法是预先对数据对象规定一个封锁顺序,所有事务都按这个顺序实行封锁。

27.请给出检测死锁发生的方法,当发生死锁后如何解决死锁?

- 11 -

风流人物 http://www.FengLiuRenWu.com

答:一般使用超时法或事务等待图法。

① 超时法

如果一个事务的等待时间超过了规定的时限,就认为发生了死锁。超时法实现简单,但其不足也很明显。一是有可能误判死锁,事务因为其他原因使等待时间超过时限,系统会误认为发生了死锁。二是时限若设置得太长,死锁发生后不能及时发现。

②等待图法

事务等待图是一个有向图G=(T,U)。 T为结点的集合,每个结点表示正运行的事务;U为边的集合,每条边表示事务等待的情况。若T1等待T2 ,则T1、T2之间划一条有向边,从T1指向T2。事务等待图动态地反映了所有事务的等待情况。并发控制子系统周期性地(比如每隔1分钟)检测事务等待图,如果发现图中存在回路,则表示系统中出现了死锁。

DBMS的并发控制子系统一旦检测到系统中存在死锁,就要设法解除。通常采用的方法是选择一个处理死锁代价最小的事务,将其撤消,释放此事务持有的所有的锁,使其它事务得以继续运行下去。当然,对撤消的事务所执行的数据修改操作必须加以恢复。 28.试述两段锁协议的概念。

答:所谓两段锁协议是指所有事务必须分两个阶段对数据项加锁和解锁。

1)在对任何数据进行读、写操作之前,首先要申请并获得对该数据的封锁; 2)在释放一个封锁之后,事务不再申请和获得对该数据的封锁。

所谓“两段”锁的含义是,事务分为两个阶段,第一阶段是获得封锁,也称为扩展阶段。在这个阶段,事务可以申请获得任何数据项上的任何类型的锁,但是不释放任何锁。第二阶段是释放封锁,也称为收缩阶段。在这个阶段,事务可以释放任何数据项上的任何类型的锁,但是不能再申请任何锁。 29.什么是数据库的完整性约束条件?

答:完整性约束条件是指数据库中的数据应满足的语义约束条件。一般可以分为六类:

1)静态列级约束 2)静态元组约束 3)静态关系约束 4) 动态列级约束 5) 动态元组约束 6) 动态关系约束 五、应用题

1.设有下列四个关系模式: S(SNO,SNAME,CITY)

P(PNO,PNAME,COLOR,WEIGHT) J(JNO,JNAME,CITY) SPJ(SNO,PNO,JNO,QTY)

其中,供应商表S由供应商号(SNO)、供应商姓名(SNAME)、供应商所在城市(CITY)组成,记录各个供应商的情况;零件表P由零件号(PNO)、零件名称(PNAME)、零件颜色(COLOR)、零件重量(WEIGHT)组成,记录各种零件的情况;工程项目表J由项目号(JNO)、项目名(JNAME)、项目所在城市(CITY)组成,记录各个工程项目的情况;供应情况表SPJ由供应商号(SNO)、零件号(PNO)、项目号(JNO)、供应数量(QTY)组成,记录各供应商供应各种零件给各工程项目的数量。分别用关系代数和SQL语言完成下列查询: 1)求供应工程项目号为J1工程零件的供应商号SNO

∏SNO(σJNO=‘J1’(SPJ))

SELECT SNO FROM SPJ WHERE JNO=‘J1’;

2)求供应工程项目号为J1工程零件号为P1的供应商号SNO

∏SNO(σJNO=‘J1’∧PNO=‘P1’(SPJ))

SELECT SNO FROM SPJ WHERE JNO=‘J1’ AND PNO=‘P1’;

- 12 -

风流人物 http://www.FengLiuRenWu.com

3)求供应工程项目号为J1工程红色零件的供应商号SNO

∏SNO(σJNO=‘J1’∧COLOR=‘红’(SPJ∞P))

SELECT SNO FROM SPJ,P WHERE SPJ.PNO=P.PNO AND P.COLOR=‘红’AND JNO=‘J1’; 4)求至少使用天津供应商生产的红色零件的工程号JNO

∏JNO(SPJ)-∏JNO(σcity=‘天津’∧COLOR=‘红’(SPJ∞P∞S)) SELECT JNO FROM SPJ,P,S

WHERE S.SNO=SPJ.SNO AND SPJ.PNO=P.PNO AND CITY<>‘天津’AND COLOR<>‘红’; 5)求至少用了S1供应商所供应的全部零件的工程号JNO(本题不需要用SQL语言完成)

∏JNO,PNO(SPJ)÷∏PNO(σSNO=‘S1’(SPJ)) 2.现有如下关系模式:

雇员(员工姓名,居住城市,居住街道) 工作(员工姓名,公司名,工资) 公司(公司名,公司所在城市) 主管(员工姓名,主管姓名) 用关系代数完成下列查询:

1)找出所有在公司名为“firstbank”的公司工作的员工,显示员工姓名。

∏员工姓名(σ公司名=‘firstbank’(工作))

2)显示为“firstbank”公司工作的员工姓名和居住城市。

∏员工姓名,居住城市(σ公司名=‘firstbank’(雇员∞工作))

3)找出所有为“firstbank”公司工作且工资在1000元以上的员工,显示员工姓名和工资。

∏员工姓名,工资(σ公司名=‘firstbank’∧工资>1000(工作))

4)找出每个员工工资都在1000元以上的公司,显示公司名。

∏公司名(工作)-∏公司名(σ工资<1000(工作))

5)找出主管人员Smith领导的员工姓名及员工居住的城市。

∏员工姓名,居住城市(σ主管姓名=‘Smith’(雇员∞主管)) 3.设有下列关系模式:

STUDENT(NO,NAME,SEX,BIRTHDAY,CLASS)

TEACHER(NO,NAME,SEX,BIRTHDAY,PROF,DEPART) COURSE(CNO,CNAME,TNO) SCORE(NO,CNO,DEGREE) 其中,学生信息表STUDENT由学号(NO)、学生姓名(NAME)、性别(SEX)、出生年月日(BIRTHDAY)、班级(CLASS)组成,记录学生的情况;教师信息表TEACHER由教师号(NO)、教师姓名(NAME)、性别(SEX)、出生年月日(BIRTHDAY)、职称(FROF)、教师所在系(DEPART)组成,记录教师的情况;课程表COURSE由课程号(CNO)、课程名称(CNAME)、任课教师号(TNO)组成,记录所开课程及任课教师情况;成绩表SCORE由学生学号(NO)、课程号(CNO)、成绩(DEGREE)组成,记录学生选课情况及相应的成绩。用SQL语句实现以下操作 1)显示STUDENT表中每个学生的姓名和出生日期。 SELECT NAME,BIRTHDAY FROM STUDENT; 2)显示STUDENT表中所有姓“王”的学生记录。

SELECT * FROM STUDENT WHERE NAME LIKE ‘王%’; 3)显示成绩表中成绩在60分到80分之间的所有记录。

SELECT * FROM SCORE WHERE DEGREE BETWEEN 60 AND 80; 4)显示“男”教师及其所上的课程。(显示该教师的姓名和所上的课程名)

SELECT TEACHER.NAME,COURSE.CNAME FROM TEACHER,COURSE WHERE TEACHER.NO=COURSE.TNO AND SEX=‘男’; 5)选出和“李军”同学同性别并同班的学生姓名。

SELECT NAME FROM STUDENT

WHERE SEX=(SELECT SEX FROM STUDENT WHERE NAME=‘李军’)AND

- 13 -

风流人物 http://www.FengLiuRenWu.com

CLASS=(SELECT CLASS FROM STUDENT WHERE NAME=‘李军’);

6)向STUDENT表中插入一条学生记录。(学号:999,姓名:程功,性别:男,出生年月日:10/01/80,班级:95035) INSERT INTO STYDENT VALUES(‘999’,‘程功’,‘男’,‘10/01/80’,‘95035’); 7)在STUDENT表中将学号为“999”的学生的班号改为“95031” UPDATE STUDENT SET=‘95031’WHERE NO=‘999’; 8)在STUDENT表中删除学号为“999”的学生记录。 DELETE FROM STUDENT WHERE NO=‘999’; 4.设有下列四个关系模式:

S(SNO,SNAME,CITY)

P(PNO,PNAME,COLOR,WEIGHT) J(JNO,JNAME,CITY) SPJ(SNO,PNO,JNO,QTY)

其中,供应商表S由供应商号(SNO)、供应商姓名(SNAME)、供应商所在城市(CITY)组成,记录各个供应商的情况;零件表P由零件号(PNO)、零件名称(PNAME)、零件颜色(COLOR)、零件重量(WEIGHT)组成,记录各种零件的情况;工程项目表J由项目号(JNO)、项目名(JNAME)、项目所在城市(CITY)组成,记录各个工程项目的情况;供应情况表SPJ由供应商号(SNO)、零件号(PNO)、项目号(JNO)、供应数量(QTY)组成,记录各供应商供应各种零件给各工程项目的数量。 用SQL语言完成下列操作: ①找出工程项目J2使用的各种零件的名称及其数量

SELECT PNAME,QTY FROM SPJ, P WHERE SPJ.PNO=P.PNO AND JNO=‘J2’; ②找出所有零件的名称、颜色、重量

SELECT PNAME, COLOR, WEIGHT FROM P; ③找出上海厂商供应的所有零件号码

SELECT DISTINCT PNO FROM SPJ

WHERE SNO IN ( SELECT SNO FROM S WHERE CITY=’上海’);

④从供应商关系中删除S2(供应商号)的记录,并从供应情况关系中删除相应的记录

DELETE FROM S WHERE SNO=‘S2’; DELETE FROM SPJ WHERE SNO=‘S2’; ⑤请将(S2,P4,J6,200)插入供应情况关系 INSERT INTO SPJ VALUS(‘S2’,‘P4’,‘J6’,200); 5.设有3个关系:

S(S#,SNAME,AGE,SEX) SC(S#,C#,CNAME) C(C#,CNAME,TEACHER)

试用关系代数表达式表示下列查询语句: 1)检索LIU老师所授课程的课程号和课程名。 ∏C#,CNAME(σTEACHER=‘LIU’(C))

2)检索年龄大于23岁的男学生的学号和姓名。 ∏S#,SNAME(σAGE>‘23’∧SEX=‘M’(S))

3)检索学号为S3学生所学课程的课程名与任课教师名。 ∏CNAME,TEACHER(σS#=‘S3’(SC∞C))

4)检索至少选修LIU老师所授课程中一门课的女学生姓名。

∏SNAME(σ

SEX=‘F’∧TEACHER=‘LIU’

(S∞SC∞C))

5)检索WANG同学不学的课程的课程名。

∏C#(C)-ΠC#(σSNAME=‘WANG’(S∞SC)

- 14 -

风流人物 http://www.FengLiuRenWu.com

6)检索全部学生都选修的课程的课程号与课程名。

∏C#,CNAME(C∞(πS#,C#(SC) ÷ πS#(S)))

7)检索选修课程包含LIU老师所授全部课程的学生学号。

∏S#,C#(SC)÷∏C#(σTEACHER=‘LIU’(C)) 6.对于教学数据库的3个基本表

S(S#,SNAME,AGE,SEX) SC(S#,C#,CNAME)

C(C#,CNAME,TEACHER)试用关系代数表达式表示下列查询语句: 1) 检索LIU老师所授课程的课程号和课程名。

SELECT C#,CNAME FROM C WHERE TEACHER= ‘LIU’; 2)检索年龄大于23岁的男学生的学号和姓名。

SELECT S#,SNAME FROM S WHERE AGE>23 AND SEX=‘M’; 3)检索学号为S3学生所学课程的课程名与任课教师名。

SELECT CNAME,TEACHER FROM SC,C WHERE SC.C# =C.C# AND S#=‘S3’; 4)检索至少选修LIU老师所授课程中一门课的女学生姓名。

连接查询方式

SELECT SNAME FORM S,SC,C

WHERE S.S# =SC.S# AND SC.C# =C.C# AND SEX=‘F’AND TEACHER=‘LIU’; 嵌套查询方式

SELECT SNAME FORM S WHERE SEX =‘F’AND S# IN

(SELECT S# FORM SC WHERE C# IN

(SELECT C# FORM C WHERE TEACHER =‘LIU’));

存在量词方式

SELECT SNAME FORM S WHERE SEX=‘F’AND EXISTS

(SELECT * FORM SC WHERE SC.S# =S.S# AND EXISTS

(SELECT * FORM C WHERE C.C# =SC.C# AND TEACHER=‘LIU’));

5)检索WANG同学不学的课程的课程名。 SELECT C# FOME C WHERE NOT EXISTS

(SELECT * FORM S,SC WHERE S.S# =SC.S# AND SC.C# =C.C# AND SNAME=‘WANG’); 6)检索至少选修两门课的学生学号。

SELECT DISTINCT X.S# FROM SC X, SC Y WHERE X.S#=Y.S# AND X.C#!=Y.C#; 7)检索全部学生都选修的课程的课程号与课程名。

SELECT C#,CNAME FROM C WHERE NOT EXISTS (SELECT * FROM S WHERE NOT EXISTS

(SELECT * FROM SC WHERE S#=S.S# AND C#=C.C#)); 用集合包含

SELECT C#,CNAME FROM C WHERE (SELECT S# FROM SC WHERE C# =C.C# ) CONTAINS

SELECT S# FROM S; 或

SELECT C#,CNAME FROM C WHERE NOT EXISTS ((SELECT S# FROM S) EXCEPT

(SELECT S# FROM SC WHERE C# =C.C#)); 8)检索选修课程包含LIU老师所授课程的学生学号。

SELECT DISTINCT S# FROM SC X WHERE NOT EXISTS

- 15 -

风流人物 http://www.FengLiuRenWu.com

(SELECT * FROM C WHERE TEACHER=‘LIU’AND NOT EXISTS

(SELECT * FROM SC Y WHERE Y.S# =X.S# AND X.C#=C.C#)); 或:SELECT DISTINCT S# FROM SC X WHERE NOT EXISTS

((SELECT C# FROM C WHERE TRACHER=‘LIU’) EXCEPT (SELECT C# FROM SC Y WHERE Y.S# =X.S#));

7.试用SQL查询语句表达下列对上题中3个基本表S、SC、C的查询: 1)统计有学生选修的课程门数。

SELECT COUNT (DISTINCT C#) FROM SC; 2)求选修C4课程的女学生的平均年龄。

SELECT AVG(AGE) FROM S,SC WHERE S.S#=SC.S# AND C# =‘C’AND SEX=‘F’; 3)求LIU老师所授课程的每门课程的平均成绩。

SELECT C.C#,AVG(GRADE) FROM SC,C WHERE SC.C# =C.C# AND TEACHER=‘LIU’ GROUP BY C.C#;

4)统计每门课程的学生选修人数(超过10人的课程才统计)。要求显示课程号和人数,查询结果按人数降序排列,若人数相同,按课程号升序排列。

SELECT C# ,COUNT(S#) FROM SC GROUP BY C# HAVING COUNT(*)>10 ORDER BY 2 DESC,1;

5)检索学号比WANG同学大,而年龄比他小的学生姓名。

SELECT SNAME FROM S WHERE S#>ALL (SELECT S# S WHERE SNAME=‘WANG’) AND AGE

SELECT SNAME,AGE FROM S WHERE SNAME LIKE ‘L%’; 8)求年龄大于女同学平均年龄的男学生姓名和年龄。

SELECT SNAME,AGE FROM S WHERE SEX=‘M’AND

AGE >(SELECT AVG(AGE) FROM S WHERE SEX=‘F’);

9)求年龄大于所有女同学年龄的男学生姓名和年龄。

SELECT SNAME,AGE FROM S WHERE SEX=‘M’AND

AGE >ALL(SELECT AGE FROM S WHERE SEX=‘F’);

8.用SQL更新语句表达对上题教学数据库中关系S、SC、C作如下更新操作: 1)往关系C中插一个课程元组。 INSERT INTO C VALUES(‘C8’,‘VC++’,‘BAO’); 2)SC中删除尚无成绩的选课元组。

DELETE FROM SC WHERE GRADE IS NULL;

3)把选修LIU老师课程的女同学选课元组全部删去。

DELETE FROM SC WHERE S# IN (SELECT S# FROM S WHERE SEX =‘F’) AND C# IN(SELECT C# FROM C WHERE TEACHER=‘LIU’); 4)把MATHS课不及格的成绩全改为60分。 UPDATE SC SET GRADE = 60

WHERE GRADE<60 AND C# IN (SELECT C# FROM C WHERE CNAME=‘MATHS’); 5)把低于所有课程总平均成绩的女同学成绩提高5%。 UPDATE SC SET GRADE = GRADE *1.05

WHERE S# IN(SELECT S# FROM S WHERE SEX=‘F’)AND GRADE<(SELECT AVG(GRADE) FROM SC);

- 16 -

风流人物 http://www.FengLiuRenWu.com

6)在表SC中修改C4课程的成绩,若成绩小于等于70分提高5%,若成绩大于70分时提高4%(用两种方法实现,一种方法是用两个UPDATE语句实现,另一种方法是用带CASE操作的一个UPDATE语句实现)。 UPDATE SC SET GRADE=GRADE * 1.04 WHERE C# ‘C4’AND GRADE>70; UPDATE SC SET GRADE =GRADE * 1.05 WHERE C # =’C4’AND GRADE<=70;

7)在表SC中,当某个成绩低于全部课程的平均成绩时,提高5%。

UPDATE SC SET GRADE = GRADE * 1.05

WHERE GRADE<(SELECT AVG(GRADE) FROM SC); 9.设数据库中有3个关系:

职工表EMP(E#,ENAME,AGE,SEX,ECITY),其属性分别表示职工工号、姓名、年龄、性别和籍贯。 工作表WORKS(E#,C#,SALARY),其属性分别表示职工工号、工作的公司编号和工资。 公司表 COMP(C#,CNAME,CITY),其属性分别表示公司编号、公司名称和公司所在城市。

试用SQL语言写出下列操作:

1)检索超过50岁的男职工的工号和姓名。

SELECT E#,ENAME FROM EMP WHERE AGE>50 AND SEX=‘M’;

2)假设每个职工只能在一个公司工作,检索工资超过1000元的男性职工工号和姓名。 SELECT EMP.E#,ENAME FROM EMP,WORKS WHERE EMP.E#=WORKS.E# AND SALARY>1000;

3)假设每个职工可在多个公司工作,检索在编号为C4和C8公司兼职的职工工号和姓名。 SELECT A.E#,A.ENAME FROM EMP A,WORKS B,WORKS C

WHERE A.E#=B.E# AND B.E#=C.E# AND B.C#=‘C4’AND C.C#=‘C8’; 4)检索在“联华公司”工作、工资超过1000元的男性职工的工号和姓名。

SELECT A.E#,A.ENAME FROM EMP A,WORKS B,COMP C WHERE A.E#=B.E# AND B.C#=C.C# AND CNAME=‘联华公司’

AND SALARY>1000 AND SEX=‘M’;

5)假设每个职工可在多个公司工作,检索每个职工的兼职公司数目和工资总数,显示(E#,NUM,SUM_SALARY),分别表示工号、公司数目和工资总数。

SELECT E#,COUNT(C#) AS NUM,SUM(SALARY) AS SUM_SALARY FROM WORKS GROUP BY E#;

6)工号为E6的职工在多个公司工作,试检索至少在E6职工兼职的所以公司工作的职工工号。

SELECT X.E# FROM WORKS X WHERE NOT EXISTS

(SELECT * FROM WORKS Y WHERE E#=‘E6’AND NOT EXISTS

(SELECT * FROM WORKS Z WHERE Z.E#=X.E# AND Z.C#=Y.C#)); 7)检索联华公司中低于本公司平均工资的职工工号和姓名。 SELECT A.E#,A.ENAME FROM EMP A,WORKS B,COMP C

WHERE A.E#=B.E# AND B.C#=C.C# AND CNAME =’联华公司’AND SALARY<

(SELECT AVG(SALARY) FROM WORKS,COMP WHERE WORKS.C#=COMP.C# AND CNAME =‘联华公司’);8)在每个公司中为50岁以上职工加薪100元(若职工为多个公司工作,可重复加)。 UPDATE WORKS SET SALARY =SALARY+100

WHERE E# IN (SELECT E# FROM EMP WHERE AGE>50);

10)在EMP表和WORKS表中删除年龄大于60岁的职工有关元组。

DELETE FROM WORKS WHERE E# IN (SELECT E# FROM EMP WHERE AGE>60); DELETE FROM EMP WHERE AGE >60;

10.设有关糸模式:SB(SN,SNAME,CITY)其中,SB表示供应商,SN为供应商代号,SNAME为供应商名字,CITY

- 17 -

风流人物 http://www.FengLiuRenWu.com

为供应商所在城市,主关键字为SN。

PB(PN,PNAME,COLOR,WEIGHT) 其中PB表示零件,PN为零件代号,PNAME为零件名字,COLOR为零件颜色,WEIGHT为零件重量,主要字键为PN。

JB(JN,JNAME,CITY)其中,JB表示工程,JN为工程编号,JNAME为工程名字,CITY为工程所在城市,主关键字为JN。

SPJB(SN,PN,CITY)其中,SPJB表示供应关糸,SN是为指定工程提供零件的供应商代号,PN为所提供的零代号,JN为工程编号,OTY表示提供的零件数量,主关键字为SN,PN,JN,外关键字为SN,PN,JN。 如图所示表示供应商(S)-零件(P)-工程(J)数据库表,写出实现以下各题功能的SQL语句: SB PB SN SNAME CITY S1 S2 S3 S4 S5 N1 N2 N3 N4 S5 上海 北京 北京 上海 南京 PN PNAME COLOR WEIGHT P1 P2 P3 P4 P5 P6 PN1 PN2 PN3 PN4 PN5 PN6 红 绿 蓝 红 蓝 绿 12 18 20 13 11 15

SPJB JB

SN S1 S1 S2 S2 S2 S2 S2 S2 S2 S2 S3 S3 S4 S4 S5 S5 S5 S5 S5 S5 S5 S5 S5 S5 PN P1 P1 P3 P3 P3 P3 P3 P3 P3 P3 P3 P4 P6 P6 P2 P2 P5 P5 P6 P1 P3 P4 P5 P6 JN J1 J4 J1 J2 J3 J4 J5 J6 J7 J2 J1 J2 J3 J7 J2 J4 J5 J7 J2 J4 J4 J4 J4 J4 PTY 200 700 400 200 200 500 600 400 800 100 200 500 300 300 200 100 500 100 200 1000 1200 800 400 500 - 18 -

JN J1 J2 J3 J4 J5 J6 J7 JNAME JN1 JN2 JN3 JN4 JN5 JN6 JN7 CITY 上海 广州 南京 南京 上海 武汉 上海 风流人物 http://www.FengLiuRenWu.com 1)取出为工程J1提供红色零件的供应商代号 SELECT DISTINCT SPJ.SN FROM SPJB,PB WHERE PB.PN=SPJB.PN AND SPJB.JN=‘J1’AND PB.COLOR=‘红’; 2)取出为所在城市为上海的工程提供零件的供应商代号 SELECT DISTINCT SPJB.SN FROM SPJB,JB WHERE SPJB.JN AND JB.CITY=’上海’;

3)取出供应商与工程所在城市相同的供应商提供的零件代号

SELECT DISTINCT SPJB.PN FROM SB,JB,SPJB

WHERE SB.SN=SPJB.SN AND JB.JN=SPJB.JN AND SB.CITY=JB.CITY 六、综合题

1.设有如下所示的关系R(码为:课程名) 问:1)该关系模式为第几范式?为什么?

2)是否存在删除操作异常?若存在,则说明在什么情况下发生的?

3)将它分解为高一级范式,分解后的关系是如何解决分解前可能存在的删除操作异常问题的? 关系R

答:(1) R∈2NF

课程名 教师名 教师地址 ∵R的侯选码为课程名,存在课程名→教师名,

C1 王小强 D1 教师名→课程名,教师名→教师地址

∴课程名→教师地址 C2 李鸿雁 D2 即存在非主属性对码的传递函数依赖关系

C3 王小强 D1 ∴R不属于3NF

C4 张言 D1 又∵不存在非主属性对码的部分函数依赖

∴R∈2NF

(2)存在删除操作异常,当删除某门课程时,教师的信息也被删除了。 (3)分解R

R1 R2

课程名 教师名 教师名 教师地址

C1 王小强 王小强 D1

C2 李鸿雁 李鸿雁 D2 C3 王小强 张言 D1 C4 张言

2.根据下列给出的关系模式和函数依赖集,指出该关系模式是第几范式?并说明理由。 1)R(X,Y,Z)码:XY F={XY→Z}

答:R∈BCNF 因为不存在非主属性对码的部分函数依赖和传递函数依赖,所以R∈3NF, 又因为所有的函数依赖的决定因素都是码,所以R∈BCNF。

2)R(X,Y,Z)码:XY和XZ F={Y→Z,XZ→Y}

答:R∈3NF 因为不存在非主属性对码的部分函数依赖和传递函数依赖,所以R∈3NF, 又因为所有的函数依赖的决定因素不都是码,所以R不是BCNF 。 3)R(X,Y,Z)码:X F={X→Y,X→Z} 答:R∈BCNF 因为不存在非主属性对码的部分函数依赖和传递函数依赖,所以R∈3NF, 又因为所有的函数依赖的决定因素都是码,所以R∈BCNF。 4)R(W,X,Y,Z)码:WX F={X→Z,WX→Y}

答:R∈1NF 因为存在非主属性对码的部分函数依赖,所以R不属于2NF,所以R∈1NF。

- 19 -

风流人物 http://www.FengLiuRenWu.com

3.设有如图所示关系R 关系R 课程名 C1 C2 C3 C4 教师名 马千里 于得水 佘快 于得水 教师地址 D1 D1 D2 D1 1)它为第几范式?为什么?

2)是否存在删除操作异常?若存在,则说明是在什么情况下发生的?

3)将它分解为高一级范式,分解后的关糸是如何解决分角前可能存在的删除操作异常问题? 答:1)它是2NF

∵R 的候选关键字为课程名,而课程名→教师名,教师名→课程名,教师名→教师地址

∴课程名→教师地址,即存在非主属性教师地址对候选关健字课程名的传递函数依赖,因此R不是3NF。 又∵不存在非主属性对候选关健字是的部分函数依赖 ∴是2NF。

2)存在。当删除某门课程时会删除不该删除的教师的关信息。

3)分解为高一级范式如图所示。

R1 R2 课程名 C1 C2。 C3 C4 教师名 马千里 于得水 佘快 于得水 教师名 马千里 于得水 佘快 教师地址 D1 D1 D2 分解后,若删除课程数据时,仅对关糸R1操作,教师地址信息在关糸R2中仍然保留,不会丢失教师方面的信息. 4.设有如图所示的关糸R:

职工号 E1 E2 E3 E4 职工名 年龄 ZHAO QIAN SEN LI 20 25 38 25 性别 单位号 单位名 F M M F D3 D1 D3 D3 CCC AAA CCC CCC 试问R属于第几范式?为什么?并如何规范化为3NF? 答:R不属于3NF,它是2NF

∵R的侯选关键字为职工号和职工名,而:

职工号→单位号,单位号→职工号, 单位号→单位名

∴职工号-------→单位名,即存在非主属性单位名对侯选关键职工号的传递函数依赖 规范化后的关系子模式为入图4.25所示的关系R1和R2

R1 R2

职工号 E1 E2 E3 E4 职工名 年龄 性别 单位号 ZHAO QIAN SEN LI 20 25 38 25 F M M F D3 D1 D3 D3 - 20 -

风流人物 http://www.FengLiuRenWu.com

39.(数据库)是存储在计算机内组织的结构化的相关数据的集合。 40.在数据库中存储的是(数据以及数据之间的联系)。

41.数据库的特点之一是数据的共享。严格的讲,这里的数据共享是指(多种应用,多种语言,多个用户相互覆盖所用的数据集合)。

42.数据库系统的核心是(数据库管理系统)。

43.数据库技术中采取分级方法将数据库的结构划分成多个层次,是为了提高数据库的(逻辑独立性)和(物理独立性)。

44.数据库系统的特点是(数据共享),数据独立,减少数据剩余,避免数据不一致和加强了数据保护。

45.数据库管理系统能实现对数据库中数据的查询,插入,修改和删除等操作,这种功能称为(数据操纵功能) 46.在数据库的三级模式结构中,描述数据库中的全体数据的全局逻辑结构和特征的是(模式)

47.为了使程序员编程时既可以使用数据库语言又可使用常规的程序设计语言,数据库系统需要把数据库语言嵌入到(宿主语言)中

48.数据管理技术经历了(人工管理),(文件管理)和(数据库系统)三个阶段 49.数据库是长期存储在计算机内,有(组织)的,可(共享)的数据集合

50.DBMS是指(数据库管理系统)它是位于(用户)和(操作系统)之间的一层管理软件 51.数据库管理系统的主要功能有(数据定义功能),(数据操作功能),数据库的运行管理和数据库的建立以及维护等4个方面。

52.数据独立性又可为(逻辑数据独立性)和(物理数据独立性)。

53.当数据的存储结构改变了,应用程序不变,而由DBMS处理这种改变。这是指数据的(物理独立性) 54.根据数据模型的应用目的不同,数据模型可分为(概念模型)和(数据模型) 55.数据模型是由(数据结构),(数据操作)和(完整性约束) 三部分组成的 56.按照数据结构的类型来命名,数据模型分为(层次模型),(网状模型)和(关系模型)。

57.现实世界的事物反映到人的头脑中经过思维加工是数据,这一过程要经历三个领域,依次是(现实世界),(信息世界)和(计算机世界)。

58.实体之间的联系可抽象为三类它们是(1:1),(1:m)和(m:n) 59.按所使用的数据模型来分,数据库可分为(层次)、(关系)和(网状)三种类型。 60.关系数据库规范化是为解决关系数据库中(插入、删除和数据冗余)问题而引入的。 61.关系规范中的删除操作异常是指(不该删除的数据被删除),插入操作异常是指(应该插入的数据未被插入)。 62.设计性能较优的关系模式称为规范化,规范化主要的理论依据是(关系规范化理论)。

63.规范化理论是关系数据库进行逻辑设计的理论依据。根据这个理论,关系数据库中的关系必须满足:其每一属性都是(不可分解的)。

64.数据模型的三要素是(数据结构),(数据操作)和(数据约束条件)。

65.对于数据库系统,负责定义数据库内容,决定存储结构和存储策略及安全授权等工作的是(数据库管理员)。 66.关系模型是把实体之间的联系用(二维表格)表示。

67.在关系数据库中,当关系的类型改变时,用户程序也可以不变,这是(数据的逻辑独立性)。 68.当数据库的存储结构改变时,可相应修改(模式/内模式映像),从而保持模式不变。

69.在数据库系统的三级模式体系结构中,描述数据在数据库中的物理结构或存储方式的是(内模式)。 70.在数据库系统的三级组织结构中,DBA视图是(概念模式),系统程序员视图是(内模式),用户视图是(外模式)。

71.表示实体及其联系的方法为(E-R图),基本图素包括(实体)、(属性)和(联系)。习惯上实体用(矩形)表示,实体属性用(椭圆形)表示,联系用(菱形)表示。

72.层次模型是用(树型)结构表示记录类型及其联系,其中上一层记录型和下一层记录型的联系是(1:M),层次模型不能直接支持(M:N)联系。

73.在数据库的三级模式体系结构中,模式与内模式之间的映象(模式/内模式),实现了数据库的(物理)独立性。 71.在关系模型中,若属性A是关系R的主码,则在R的任何元组中,属性A的取值都不允许为空,这种约束称为

- 26 -

风流人物 http://www.FengLiuRenWu.com

(实体完整性)规则。

72.描述概念模型常用的方法是(实体--联系方法)。

73.消除了部分函数依赖的1NF的关系模式,必定是( 2NF)。

74.关系模式中R的属性全部是主属性,则R的最高范式必定是( 3NF)。

75.在关系A(S,SN,D)和B(D,CN,NM)中,A的主键是S,B的主键是D,则D在S中称为(外码)。

76.对于非规范化的模式,经过(将每一个分量化分为不可分的数据项)转变为1NF,将1NF经过(消除每一个非主属性对码的部分函数依赖,)转变为2NF,将2NF经过( 消除非主属性对码的传递函数依赖 )转变为3NF。 77.关系模型中的关系模式至少是(1NF)。 78.关系模式中,满足2NF的模式必定是(1NF)。

79.在关系模式R中,若其函数依赖集中所有候选键都是决定因素,则R最高范式是(4NF)。 80.候选关键字中的属性称为( 主属性)。

81.在数据库设计中,将E-R图转换成关系数据模型的过程属于( 逻辑设计阶段 )。 82.在数据库设计的4个阶段中,每个阶段都有自己的设计内容。“在哪些表、在哪些属性上、建什么样的索引”,这一内容应该属于(物理)设计阶段。

83.在数据库设计的需求分析阶段,数据字典通常由(数据项)、(数据结构)、(数据流)、(数据存储)和(处理过程)5部分组成。

84.在关系数据库设计中,使每个关系达到3NF,这是(逻辑设计阶段)阶段完成的。 85.设计概念结构时,常用的数据抽象方法是( 聚集)和(概括 )。 86.在数据抽象中,概括层次表示(是一个(is a))联系,聚集层次表示(是一部分(is part of))联系。 87.就方法的特点而言,需求分析阶段通常采用(自顶向下逐步细化)的分析方法;概念设计阶段通常采用(自底向上逐步总和)的设计方法。

88.在数据库设计中,子类和超类存在着(继承)的联系。

89.由分E-R图生成初步E-R图,其主要任务是(消除属性冲突)、(消除结构冲突)和(消除命名冲突)。 90.由初步E-R图构成基本E-R图,其主要任务是(消除不必要的冗余)。

91.假定一个E-R图包含有A实体和B实体,并且从A到B存在着1:N的联系,则转换成关系模后,右以包含有(1或2 )个关系模式。 92.假定一个E-R图包含有A实体和B实体,并且从A到B存在着M:N的联系,则转换成关系模型后,包含有( 3 )个关系模式。 93.(物理结构设计)阶段与具体的DBMS密切相关。

94.数据流图是数据库系统设计过程中(概念结构设计)阶段完成的。 95.事物的所有操作要么全做,要么全不做,这是事务的(原子)特性。 96.并发操作带来的问题主要有(丢失修改),(不可重复读),(读脏数据)。 97.在登录日志文件时,应该先(登录日志文件),后(更新数据库)。

98.若事物T对数据R已经加了X锁,则其他事物对数据R(不能加任何锁)。

99.对数据对象施加封锁,可能会引起活锁和死锁问题。预防死锁通常有(一次封锁法)和(顺序封锁法)两种方法。

100.多个事物在某个调度下的执行是正确的,是能保证数据库一致性的,当且仅当该调度是(可串行化的)。 101.数据库管理系统通常提供授权功能来控制不同用户访问数据的权限,这主要是为了实现数据库的(安全性)。 102.关系规范化的目的是(控制冗余,避免插入和删除异常,从而增强数据的稳定性和灵活性).

103.在关系A(S,SN,D)和B(D,CN,NM)中,A的主键是S,B的主键是D,则D在A中称为(外码)。 104.在一个关糸R中,若每个数据项都是不在分割的,那么R一定属于(1NF)

105.若关系为1NF,且它的每一个非主属性都(完全函数依赖于或不部分函依赖于)码,则该关糸为2NF。 106.设有如图所示的关糸R,R的候选关键字为(A和DE);R中的函数依赖有(AD→E,DE→A);R属于(BCNF)范式。

R

- 27 -

风流人物 http://www.FengLiuRenWu.com

A A1 A2 A3 A4 D D1 D6 D4 D4 E E2 E2 E3 E4

二、选择题

1.在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。在这几个阶段中,数据独立性最高的是( A )阶段。

A.数据库系统 B.文件系统 C.人工管理 D.数据项管理 2.数据库的概念模型独立于( A )。

A.具体的机器和DBMS B.E-R图 C.信息世界 D.现实世界

3.在数据库的三级模式结构中,描述数据库中全体数据的全局逻辑结构和特征的是( D )。 A.外模式 B.内模式 C.存储模式 D.模式 4.数据库的层次模型应满足的条件是( C )。

A.允许一个以上的结点无双亲,也允许一个结点有多个双亲 B.必须有两个以上的结点

C.有且仅有一个结点无双亲,其余结点都只有一个双亲 D.每个结点有且仅有一个双亲

5.在关系代数的专门关系运算中,从表中取出指定的属性的操作称为(B) A.选择 B.投影 C.连接 D.扫描

6.在关系代数的专门关系运算中,从表中选出满足某种条件的元组的操作称为(A); A.选择 B.投影 C.连接 D.扫描

7.在关系代数的专门关系运算中,将两个关系中具有共同属性值的元组连接到一起构成新表的操作称为(C)。 A.选择 B.投影 C.连接 D.扫描

8.如下图所示,两个关系R1和R2,它们进行( D )运算后得到R3。 A.交 B.并 C.笛卡尔积 D.连接

R1 R2 R3

A B C E M A B C D E M

a 1 x 1 m i a 1 x m i

c 2 y 2 n j d 1 y m i

d 1 y 5 m k c 2 y n j

9.关系数据库中的码是指( D )。

A.能唯一决定关系的字段 B.不可改动的专用保留字

C.关键的很重要的字段 D.能唯一标识元组的属性或属性集合 10.SQL语言具有两种使用方式,分别为交互式SQL和( C )。

A.提示式SQL B.多用户SQL C.嵌入式SQL D.解释式SQL 11.设计性能较优的关系模式称为规范化,规范化主要的理论依据是( A )。

A.关系规范化理论 B.关系运算理论 C.关系代数理论 D.数理逻辑理论 12.规范化过程主要为克服数据库逻辑结构中的插入异常,删除异常以及( C )缺陷。 A.数据的不一致性 B.结构不合理 C.冗余度大 D.数据丢失 13.当关系模式R(A,B)已属于3NF,下列说法中( B )是正确的。

- 28 -

风流人物 http://www.FengLiuRenWu.com

A.它一定消除了插入异常和删除异常 B.仍存在一定的插入和删除异常 C.一定属于BCNF D.A和C都是

14.消除了非主属性对码的部分函数依赖的1NF的关系模式,必定是( B )。 A.1NF B.2NF C.3NF D.4NF

15.E-R图是数据库设计的工具之一,它适用于建立数据库的( A )。 A.概念模型 B.逻辑模型 C.结构模型 D.物理模型 16.在关系数据库设计中,设计关系模式是( C )的任务。

A.需求分析阶段 B.概念设计阶段 C.逻辑设计阶段 D.物理设计阶段 17.当局部E-R图合并成全局E-R图时可能出现冲突,不属于合并冲突的是( B )。 A.属性冲突 B.语法冲突 C.结构冲突 D.命名冲突

18.DBMS通常提供授权功能来控制不同用户访问数据的权限,这主要是为了实现数据库的( D )。 A.可靠性 B.一致性 C.完整性 D.安全性

19.设有两个事务T1、T2,其并发操作如下图所示,下面评价正确的是( D )。

A.该操作不存在问题 B.该操作丢失 C.该操作不能重复读 D.该操作读“脏”数据

T1 ①读A=100 A=A*2 写回 ② ③ROLLBACK 恢复A=100 T2 读A=200

20.若事务T对数据R已加了X锁,则其他事务对数据R( D )。 A.可以加S锁不能加X锁 B.不能加S锁可以加X锁 C.可以加S锁也可以加X锁 D.不能加任何锁 21.后备副本的用途是( C )。

A.安全性保障 B.一致性控制 C.故障后的恢复 D.数据的转储 22.用于数据库恢复的重要文件是( C )

A.数据库文件 B.索引文件 C.日志文件 D.备注文件 23.数据库系统与文件系统的主要区别是( B )。 A.数据库系统复杂,而文件系统简单。

B.文件系统不能解决数据冗余和数据独立性问题,而数据库系统可以解决。 C.文件系统只能管理程序文件,而数据库系统能够管理各种类型的文件。 D.文件系统管理的数据量较少,而数据库系统可以管理庞大的数据量。 24.在数据库中,下列说法( A )是不正确的。 A.数据库避免了一切数据的重复

B.若系统是完全可以控制的,则系统可确保更新时的一致性 C.数据库中的数据可以共享 D.数据库减少了数据冗余

25.数据库的网状模型应满足的条件是( A )。

A.允许一个以上的结点无双亲,也允许一个结点有多个双亲 B.必须有两个以上的结点

C.有且仅有一个结点无双亲,其余结点都只有一个双亲 D.每个结点有且仅有一个双亲

- 29 -

风流人物 http://www.FengLiuRenWu.com

26.按所使用的数据模型来分,数据库可分为( A )三种类型。

A.层次、关系和网状 B.网状、环状和链状 C.大型、中型和小型 D.独享、共享和分时

27.设有如下图所示的关系R,经操作∏A,B(σB=b(R))的运算结果是( C )

R A. B. C. D.

、 A B C A B A B A B A B C A B C a b a B a b A B C D A f c B d b d a C B D C B d

28.如下图所示,两个关系R1和R2,它们进行( D )运算后得到R3。 R1 R2 R3

A B C E M A B C D E M

a 1 X 1 m I a 1 X m i

c 2 Y 2 n J d 1 Y m i

d 1 Y 5 m K c 2 Y n j

A.交 B.并 C.笛卡尔积 D.连接

29.SQL语言是( C )语言。

A.层次数据库 B.网络数据库 C.关系数据库 D.非数据库 30.关系数据库规范化是为解决关系数据库中( A )问题而引入的。 A.插入、删除和数据冗余 B.提高查询速度

C.减少数据操作的复杂性 D.保证数据的安全性和完整性 31.关系模式中,满足2NF的模式,( D )。

A.可能是1NF B.必定是BCNF C.必定是3NF D.必定是1NF 32.能消除多值依赖引起的冗余的是( C )。

A.2NF B.3NF C.4NF D.BCNF

33.从E-R模型向关系模型转换时,一个M:N联系转换为关系模式时,该关系模式的码是( C )。 B. M端实体的码 B.N端实体的码 C.M端实体的码与N端实体的码的组合 D.重新选取其他属性

34.保护数据库,防止未经授权的或不合法的使用造成的数据泄露、更改破坏。这是指数据库的( A )。 A.安全性 B.完整性 C.并发控制 D.恢复

35.设有两个事务T1、T2,其并发操作如下图所示,下面评价正确的是( C )。

A.该操作不存在问题 B.该操作丢失 C.该操作不能重复读 D.该操作读“脏”数据

T1 ①读A=10,B=5 求和A+B=15 ② ③读A=20,B=5 求和25验证错 T2 读A=10 A=A*2 写回

36.若系统在运行过程中,由于某种原因,造成系统停止运行,致使事务在执行过程中以非正常方式终止,这时内存中的信息丢失,而存储在外存上的数据未受影响,这种情况称为( B )。

- 30 -

风流人物 http://www.FengLiuRenWu.com

A.事务故障 B.系统故障 C.介质故障 D.运行故障 37.在数据库中存储的是( C )

A.数据 B.数据模型 C.数据以及数据之间的联系 D.信息 38.按所使用的数据模型来分,数据库可分为( A )三种类型。

A.层次、关系和网状 B.网状、环状和链状 C.大型、中型和小型 D.独享、共享和分时 39.关系数据模型( D )。

A.只能表示实体间的1:1联系国 B.只能表示实体间的1:n联系 C.只能表示实体间的m:n联系 D.可以表示实体间的上述三种联系 40.设有属性A,B,C,D,以下表示中不是关系的是( C )

A.R(A) B.R(A,B,C,D) C.R(A×B×C×D) D.R(A,B)

42.自然连接是构成新关系的有效方法。一般情况下,当对关系R和S使用自然连接时,要求R和S含有一个或多个共有的( D )。

A.元组 B.行 C.记录 D.属性 43.侯选码中的属性称为( B )。

A.非主属性 B.主属性 C.复合属性 D.关键属性

44.数据库概念设计的E-R方法中,用属性描述实体的特征,属性在E-R图中,用( D )表示。 A.矩形 B.四边形 C.菱形 D.椭圆形 45.数据库的( B )是指数据的正确性和相容性。

A.安全性 B.完整性 C.并发控制 D.恢复

46.设有两个事务T1、T2,其并发操作如下图所示,下面评价正确的是( B )。

A.该操作不存在问题 B.该操作丢失 C.该操作不能重复读 D.该操作读“脏”数据

T1 ①读X=48 ② ③X←X+10 写回X ④ T2 读X=48 X←X-2 写回X

47.若事务T对数据R已加了S锁,则其他事务对数据R( A )。 A.可以加S锁不能加X锁 B.不能加S锁可以加X锁 C.可以加S锁也可以加X锁 D.不能加任何锁 48.事务(Transaction)是一个( C )

A.程序 B.进程 C.操作序列 D.完整性规则

49.事务对DB的修改,应该在数据库中留下痕迹,永不消逝。这个性质称为事务的( A ) A.持久性 B.隔离性 C.一致性 D.原子性 50.事务的执行次序称为( C )

A.过程 B.步骤 C.调度 D.优先级

51.在事务依赖图中,如果两个事务的依赖关系形成一个循环,那么就会( B ) A.出现活锁现象 B.出现死锁现象 C.事务执行成功 D.事务执行失败 三、解释下面的名词

1.数据库(DB) 2.RDBMS 关系数据库管理系统 3.结构化查询语言(SQL) 4.回滚(ROLLBACK)

5.自主存取控制(DAC) 6.数据库管理系统(DBMS)

- 31 -

风流人物 http://www.FengLiuRenWu.com

7. 共享意向排它锁(SIX锁) 8.强制存取控制(MAC) 四.简答题

1.什么是基本表?什么是视图?两者的区别和联系是什么?

答:基本表是实际存储在数据库中的二维表,它是本身独立存在的表,在SQL中一个关系就对应一个表。

视图是关系数据库系统提供给用户以多种角度观察数据库中数据的重要机制。

区别:视图是从一个或几个基本表(或视图)中导出的表,是一个虚表,数据库中只存放视图的定义,而不存放视图对应的数据,这些数据仍存放在原来的基本表中。

2.什么叫数据与程序的物理独立性?什么叫数据与程序的逻辑独立性?

答:数据与程序的物理独立性是指当数据库的存储结构改变,将模式/内模式映象作相应改变,使模式保持不变,从而应用程序不必改变。

数据与程序的逻辑独立性是指当模式改变时,将外模式/模式的映象作相应改变,使外模式保持不变,从而应用程序不用修改。

3.简述事务所具有的ACID特性。 答:事务的ACID特性是:

原子性:事务是一个不可分割的单位。

一致性:事务对数据库操作的结果是将数据库从一个一致性状态变为另一个一致性状态。 隔离性:多个事务的并发执行不互相干扰。

持续性:事务一旦提交,它对数据库中数据的改变就是永久性的。 4.登记日志文件时为什么必须先写日志文件,后写数据库?

答:把数据的修改写到数据库和把对数据的修改操作写到日志文件是两个不同的操作,在两个操作之间可能会发生故障如果先写了数据库修改,而在日志文件中没有登记这个修改,在恢复的时候就无法恢复这个修改了;如果先写日志,但没有修改数据库,按日志恢复时只是多执行一次撤消操作,并不影响数据库的正确性,为了安全,一定要先写日志文件。

5.DBMS的完整性控制机制应具有哪些功能? 答:应具有三方面的功能:

(1)定义功能,提供定义完整性条件的机制

(2)检查功能,检查用户发出的操作请求是否违背了完整性约束条件。

(3)如果发现用户的操作请求违背了完整性约束条件,则采取一定的动作来保证数据的完整性。 6.什么是数据字典?数据字典的作用是什么? 答:数据字典是系统中各类数据描述的集合

作用:供DBMS在处理数据存取时快速查找有关对象的信息,供DBA查询掌握系统的运行情况,支持数据库设计和系统分析。

7.什么样的并发调度是正确的调度?

答:多个事务的并发执行的结果与按某一次序串行的执行它们时的结果相同,我们说这样的并发调度是可串行化的调度,如果一个调度是可串行化的,那么认为它是正确的调度。

8.试叙述事务的4个性质,并结实每一个性质由DBMS的哪个子系统实现?每一个性质对DBS有什么益处?

答:1)事务的原子性是指一个事务对DB的所以操作,是一个不可分割的工作单位。原子性是由DBMS的事务管理子系统实现的。事务的原子性保证了DBS的完整性。

2)事务的一致性是指数据不会因事务的执行而遭受破坏。事务的一致性是由DBMS的完整性子系统实现的。事务的一致性保证数据库的完整性。

3)事务的隔离性是指事务的并发执行与这些事务单独执行时结果一样。事务的隔离性是由DBMS的并发控制子系统实现的。隔离性使并发执行的事务不必关心其他事务,如同在单用户环境下执行一样。

4)事务的持久性,是指事务对DB的更新应永久地反映在DB中。持久性是由DBMS的恢复管理子系统实现的。持久性能保证DB具有可恢复性。

9.事务的COMMIT语句和ROLLBACK语句的功能是什么?

- 32 -

风流人物 http://www.FengLiuRenWu.com

答:COMMIT语句表示事务执行成功地接结束(提交),此时告诉系统,DB要进入一个新的正确状态,该事务对DB的所有更新都已交付实施(写入磁盘)。

ROLLBACK语句表示事务执行不成功地结束(应该“回退”)此时告诉系统,已发生错误,DB可能处在不正确的状态,该事务对DB的所有更新必须被撤消,DB应恢复该事务到初始状态。 10.日志文件中记载了哪些内容?

答:日志文件中记载了事务开始标记、事务结束标记以及事务对DB的插入、删除和修改的每一次操作前后的值。 11.并发操作会产生几种不一致情况?用什么方法避免各种不一致的情况?

答:并发操作可能会产生丢失修改,不能重复读和读”脏”数据这三种不一致情况,采用封锁机制来进行并发控制,可避各种不一致情况。一级封锁协议可以避免丢失修改,二级封锁协议可以避免丢失修改和读”脏”数据,三级封锁协议可以避免丢失修改、不能重复读和读”脏”数据。 12.X封锁与S封锁有什么区别? 答:X锁与S锁的区别如图所示。

X锁 只允许一个事务独锁数据 获准X锁的事务可以修改数据 事务的并发度低 X锁必须保留到事务终点 解决“丢失更新”问题 S锁 允许多个事务并发S锁某一数据 获准S锁的事务只能读取数据,但不能修改数据 事务的并发度高,但增加了死锁的可能性 根据需要,可随时解除S锁 解决“读不一致性”问题 13.为什么要设立日志文件?

答:设立日志文件的目的,是为了记录对数库中数据的每一次更新操作,从而DBMS可以根据日志文件进行事务故障的恢复和糸统故障的恢复,并可结合后授副本进去介质故障的恢复。 14.怎样进行糸统故障的恢复?

答:系统故障造成数据库不一致状态的原因有两个,一是未完成事务对数据库的更新可能已写入数据库,二是已提交事务对数据库的更新可能还留在缓冲区没来得及写入数据库。因此恢复操作就是要撤消故障发生时未完成的事务,重做已完成的事务。

⑴ 正向扫描日志文件(即从头扫描日志文件),找出在故障发生前已经提交的事务(这些事务既有BEGIN TRANSACTION记录,也有COMMIT记录),将其事务标识记入重做(REDO)队列。同时找出故障发生时尚未完成的事务(这些事务只有BEGIN TRANSACTION记录,无相应的COMMIT记录),将其事务标识记入撤消(UNDO)队列。

⑵ 对撤消队列中的各个事务进行撤消(UNDO)处理。

进行UNDO处理的方法是,反向扫描日志文件,对每个UNDO事务的更新操作执行逆操作,即将日志记录中“更新前的值”写入数据库。

⑶ 对重做队列中的各个事务进行重做(REDO)处理。 进行REDO处理的方法是:正向扫描日志文件,对每个REDO事务重新执行日志文件登记的操作。即将日志记录中“更新后的值”写入数据库。

15.怎样进行介质故障的恢复?

答:发生介质故障后,磁盘上的物理数据和日志文件被破坏,恢复方法是重装数据库,然后重做已完成的事务。具体地说就是:

⑴ 装入最新的数据库后备副本(离故障发生时刻最近的转储副本),使数据库恢复到最近一次转储时的一致性状态。

对于动态转储的数据库副本,还须同时装入转储开始时刻的日志文件副本,利用恢复系统故障的方法(即REDO+UNDO),才能将数据库恢复到一致性状态。

⑵ 装入相应的日志文件副本(转储结束时刻的日志文件副本),重做已完成的事务。即: 首先扫描日志文件,找出故障发生时已提交的事务的标识,将其记入重做队列。

然后正向扫描日志文件,对重做队列中的所有事务进行重做处理。即将日志记录中“更新后的值”写入数据库。 16.数据库在运行过程中可能产生的故障有哪几类?

- 33 -

风流人物 http://www.FengLiuRenWu.com

答:1)事物故障

事物在运行过程中由于种种原因,如输入数据的错误,运算溢出,违反了某些完整性限制,某些应用程序的错误,以及并行事物发生死锁等,使事物未能运行到正常中指点之前就被撤消了,这种情况称为“事物故障”。

2)系统故障

系统鼓掌是指系统在运行过程中,由于某些原因,如OS和DBMS代码错误,操作员操作事物。特定类型的硬件错误(CPU故障),突然停电等造成系统停止运行,致使事物在执行过程中以非控方式中指。这时。内存中的信息丢失,而存储在外存储上的数据未受影响,这种情况称为“系统故障”。

3)介质故障

系统在运行过程中,由于某种硬件故障,如磁盘损坏,磁头碰撞,或由于OS的某种潜在的错误。瞬间强磁场干扰,使存储在外存的数据部分损失或全部损失,称之为“介质故障”。

4)计算机病毒

计算机病毒是一种人为的故障和破坏,它是一种计算机程序,通过读写染有病毒的计算机系统中的程序和数据这些病毒可以迅速繁殖和传播,危害计算机系统和数据库。 17.怎样进行事务故障的恢复

答:事务故障是指事务在运行至正常终止点前被中止,这时恢复子系统应利用日志文件撤消(UNDO)此事务已对数据库进行的修改。事务故障的恢复是由系统自动完成的,对用户是透明的。系统的恢复步骤是:

⑴ 反向扫描文件日志(即从最后向前扫描日志文件),查找该事务的更新操作。

⑵ 对该事务的更新操作执行逆操作。即将日志记录中“更新前的值”写入数据库。这样,如果记录中是插入操作,则相当于做删除操作(因此时“更新前的值”为空)。若记录中是删除操作,则做插入操作,若是修改操作,则相当于用修改前值代替修改后值。

⑶ 继续反向扫描日志文件,查找该事务的其他更新操作,并做同样处理。 ⑷ 如此处理下去,直至读到此事务的开始标记,事务故障恢复就完成了。 18.试述文件系统与数据库系统的区别和联系。 答:文件系统与数据库系统的区别是:

文件系统面向某一应用程序,共享性差,冗余度大,数据独立性差,记录内有结构,整体无结构,由应用程序自己控制。

数据库系统面向现实世界,共享性高,冗余度小,具有较高的物理独立性和一定的逻辑独立性,整体结构化,用数据模型描述,由数据库管理系统提供数据的安全性、完整性、并发控制和恢复能力。

文件系统与数据库系统的联系:文件系统与数据库系统都是计算机系统中管理数据中管理数据的软件。 19.DBA的职责是什么?

答:1)决定数据库中的信息内容和结构

2)决定数据库的存储结构和存取策略

3)定义数据的安全性要求和完整性约束条件 4)监控数据库的使用和运行 5)数据库的改进和重组重构 20.试述查询优化的一般步骤。 答:1)把查询转换成某种内部表示

5) 把语法树转换成标准(优化)形式 6) 择低层的存取路径

7) 生成查询计划,选择代价最小的

21.数据库中为什么要有恢复子系统?它的功能是什么?

答:因为计算机系统中硬件的故障、软件的错误、操作员的失误以及恶意的破坏是不可避免的,这些故障轻则造成运行事务非正常中断,影响数据库中数据的正确性,重则破坏数据库,使数据库中全部或部分数据丢失。

功能:是把数据库从错误状态恢复到某一已知的正确状态(亦称为一致状态或完整状态),这就是数据库的恢复。

- 34 -

风流人物 http://www.FengLiuRenWu.com

22.数据库转储的意义是什么?常用的有几种方法?

答:数据转储是数据库恢复中采用的基本技术,所谓转储即DBA定期将整个数据库复制到磁带或另一个磁盘上保存起来的过程。这些备用的数据文本称为后备副本或后援副本。当数据库遭到破坏后可以将后备副本重新载入,将数据库恢复到转储时的状态。

转储可分为静态转储和动态转储。静态转储是在系统中无运行事务时进行的转储操作。动态转储是指转储期间允许对数据库进行存取或修改。即转储和用户事务可以并发执行。

转储还可分为海量转储和增量转储两种方式。 23.什么是日志文件?为什么要设立日志文件?

答:日志文件是用来记录事务对数据库的更新操作的文件。

目的是进行事物故障恢复;进行系统故障恢复;协助后备副本进行介质故障恢复。 24.试述使用检查点方法进行恢复的步骤。

答:1)从重新开始文件中找到追后一个检查点记录在日志文件中的地址,由该地址在体制文件中找到最后一个检查点记录。

2)由该检查点记录得到检查点建立时刻所有正在执行的事务清单ACTIVE-LIST。 这里建立两个事务队列:

①UNDO-LIST:需要执行undo操作的事务集合; ②REDO-LIST需要执行redo操作的事务集合。

把ACTIVE-LIST暂时放入UNDO-LIST队列,REDO队列暂时为空。 7) 检查点开始正向扫描日志文件:

①如果有新开始的事务Ti,把Ti暂时放入UNDO-LIST队列;

②如有提交的事务T j,把Tj从UNDO-LIST队列移到REDO-LIST队列,直到日志文件结束; 4)对UNDO-LIST中的每个事务执行UNDO操作,对REDO-LIST中的每个事务执行REDO操作。 25.什么是数据库镜像?它有什么用途?

答:根据DBA的要求,自动把整个数据库或其中的关键数据复制到另一个磁盘上。每当主数据库更新时,DBMS自动把更新后的数据恢复过去,即DBMS自动保证镜像数据与主数据的一致性。

用途:1)一旦出现介质故障,可由镜像磁盘继续提供使用,同时DBMS自动利用镜像磁盘数据进行数据库恢复,不需要关闭系统和重装数据库副本。

2)在没有出现故障时,数据库镜像还可以并发操作。提高数据库的可用性。

26.请给出预防死锁的若干方法。

答:在数据库中,产生 死锁的原因是两个或多个事务都已封锁了一些数据对象,然后又都请求对已为其他事务封锁的数据对象加锁,从而出现死等待。

预防死锁通常有两种方法:1)一次封锁法。一次封锁法要求每个事务必须一次将所有要使用的数据全部加锁,否则就不能继续执行。2)顺序封锁法。顺序封锁法是预先对数据对象规定一个封锁顺序,所有事务都按这个顺序实行封锁。

27.请给出检测死锁发生的方法,当发生死锁后如何解决死锁? 答:一般使用超时法或事务等待图法。

① 超时法

如果一个事务的等待时间超过了规定的时限,就认为发生了死锁。超时法实现简单,但其不足也很明显。一是有可能误判死锁,事务因为其他原因使等待时间超过时限,系统会误认为发生了死锁。二是时限若设置得太长,死锁发生后不能及时发现。

②等待图法

事务等待图是一个有向图G=(T,U)。 T为结点的集合,每个结点表示正运行的事务;U为边的集合,每条边表示事务等待的情况。若T1等待T2 ,则T1、T2之间划一条有向边,从T1指向T2。事务等待图动态地反映了所有事务的等待情况。并发控制子系统周期性地(比如每隔1分钟)检测事务等待图,如果发现图中存在回路,则表示系统中出现了死锁。

- 35 -

风流人物 http://www.FengLiuRenWu.com

职工表EMP(E#,ENAME,AGE,SEX,ECITY),其属性分别表示职工工号、姓名、年龄、性别和籍贯。 工作表WORKS(E#,C#,SALARY),其属性分别表示职工工号、工作的公司编号和工资。 公司表 COMP(C#,CNAME,CITY),其属性分别表示公司编号、公司名称和公司所在城市。

试用SQL语言写出下列操作:

1)检索超过50岁的男职工的工号和姓名。

SELECT E#,ENAME FROM EMP WHERE AGE>50 AND SEX=‘M’;

2)假设每个职工只能在一个公司工作,检索工资超过1000元的男性职工工号和姓名。 SELECT EMP.E#,ENAME FROM EMP,WORKS WHERE EMP.E#=WORKS.E# AND SALARY>1000;

3)假设每个职工可在多个公司工作,检索在编号为C4和C8公司兼职的职工工号和姓名。 SELECT A.E#,A.ENAME FROM EMP A,WORKS B,WORKS C

WHERE A.E#=B.E# AND B.E#=C.E# AND B.C#=‘C4’AND C.C#=‘C8’; 4)检索在“联华公司”工作、工资超过1000元的男性职工的工号和姓名。

SELECT A.E#,A.ENAME FROM EMP A,WORKS B,COMP C WHERE A.E#=B.E# AND B.C#=C.C# AND CNAME=‘联华公司’

AND SALARY>1000 AND SEX=‘M’;

5)假设每个职工可在多个公司工作,检索每个职工的兼职公司数目和工资总数,显示(E#,NUM,SUM_SALARY),分别表示工号、公司数目和工资总数。

SELECT E#,COUNT(C#) AS NUM,SUM(SALARY) AS SUM_SALARY FROM WORKS GROUP BY E#;

6)工号为E6的职工在多个公司工作,试检索至少在E6职工兼职的所以公司工作的职工工号。

SELECT X.E# FROM WORKS X WHERE NOT EXISTS

(SELECT * FROM WORKS Y WHERE E#=‘E6’AND NOT EXISTS

(SELECT * FROM WORKS Z WHERE Z.E#=X.E# AND Z.C#=Y.C#)); 7)检索联华公司中低于本公司平均工资的职工工号和姓名。 SELECT A.E#,A.ENAME FROM EMP A,WORKS B,COMP C

WHERE A.E#=B.E# AND B.C#=C.C# AND CNAME =’联华公司’AND SALARY<

(SELECT AVG(SALARY) FROM WORKS,COMP WHERE WORKS.C#=COMP.C# AND CNAME =‘联华公司’);8)在每个公司中为50岁以上职工加薪100元(若职工为多个公司工作,可重复加)。 UPDATE WORKS SET SALARY =SALARY+100

WHERE E# IN (SELECT E# FROM EMP WHERE AGE>50);

10)在EMP表和WORKS表中删除年龄大于60岁的职工有关元组。

DELETE FROM WORKS WHERE E# IN (SELECT E# FROM EMP WHERE AGE>60); DELETE FROM EMP WHERE AGE >60;

10.设有关糸模式:SB(SN,SNAME,CITY)其中,SB表示供应商,SN为供应商代号,SNAME为供应商名字,CITY为供应商所在城市,主关键字为SN。

PB(PN,PNAME,COLOR,WEIGHT) 其中PB表示零件,PN为零件代号,PNAME为零件名字,COLOR为零件颜色,WEIGHT为零件重量,主要字键为PN。

JB(JN,JNAME,CITY)其中,JB表示工程,JN为工程编号,JNAME为工程名字,CITY为工程所在城市,主关键字为JN。

SPJB(SN,PN,CITY)其中,SPJB表示供应关糸,SN是为指定工程提供零件的供应商代号,PN为所提供的零代号,JN为工程编号,OTY表示提供的零件数量,主关键字为SN,PN,JN,外关键字为SN,PN,JN。 如图所示表示供应商(S)-零件(P)-工程(J)数据库表,写出实现以下各题功能的SQL语句: SB PB SN SNAME CITY - 41 -

风流人物 http://www.FengLiuRenWu.com PN PNAME COLOR WEIGHT S1 S2 S3 S4 S5 N1 N2 N3 N4 S5 上海 北京 北京 上海 南京

SPJB JB

P1 P2 P3 P4 P5 P6 PN1 PN2 PN3 PN4 PN5 PN6 红 绿 蓝 红 蓝 绿 12 18 20 13 11 15 SN PN JN PTY S1 P1 J1 200 S1 P1 J4 700 S2 P3 J1 400 S2 P3 J2 200 S2 P3 J3 200 S2 P3 J4 500 S2 P3 J5 600 S2 P3 J6 400 S2 P3 J7 800 S2 P3 J2 100 S3 P3 J1 200 S3 P4 J2 500 S4 P6 J3 300 S4 P6 J7 300 S5 P2 J2 200 S5 P2 J4 100 S5 P5 J5 500 S5 P5 J7 100 S5 P6 J2 200 S5 P1 J4 1000 S5 P3 J4 1200 S5 P4 J4 800 S5 P5 J4 400 S5 P6 J4 500 1)取出为工程J1提供红色零件的供应商代号

SELECT DISTINCT SPJ.SN FROM SPJB,PB

WHERE PB.PN=SPJB.PN AND SPJB.JN=‘J1’AND PB.COLOR=‘红’; 2)取出为所在城市为上海的工程提供零件的供应商代号

SELECT DISTINCT SPJB.SN FROM SPJB,JB WHERE SPJB.JN AND JB.CITY=’上海’;

3)取出供应商与工程所在城市相同的供应商提供的零件代号

SELECT DISTINCT SPJB.PN FROM SB,JB,SPJB

WHERE SB.SN=SPJB.SN AND JB.JN=SPJB.JN AND SB.CITY=JB.CITY 六、综合题

1.设有如下所示的关系R(码为:课程名)

- 42 -

JN JNAME CITY J1 JN1 上海 J2 JN2 广州 J3 JN3 南京 J4 JN4 南京 J5 JN5 上海 J6 JN6 武汉 J7 JN7 上海 风流人物 http://www.FengLiuRenWu.com

问:1)该关系模式为第几范式?为什么?

2)是否存在删除操作异常?若存在,则说明在什么情况下发生的?

3)将它分解为高一级范式,分解后的关系是如何解决分解前可能存在的删除操作异常问题的? 关系R

答:(1) R∈2NF

课程名 教师名 教师地址 ∵R的侯选码为课程名,存在课程名→教师名,

C1 王小强 D1 教师名→课程名,教师名→教师地址

∴课程名→教师地址 C2 李鸿雁 D2 即存在非主属性对码的传递函数依赖关系

C3 王小强 D1 ∴R不属于3NF

C4 张言 D1 又∵不存在非主属性对码的部分函数依赖

∴R∈2NF

(2)存在删除操作异常,当删除某门课程时,教师的信息也被删除了。 (3)分解R

R1 R2

课程名 教师名 教师名 教师地址

C1 王小强 王小强 D1

C2 李鸿雁 李鸿雁 D2 C3 王小强 张言 D1 C4 张言

2.根据下列给出的关系模式和函数依赖集,指出该关系模式是第几范式?并说明理由。 1)R(X,Y,Z)码:XY F={XY→Z}

答:R∈BCNF 因为不存在非主属性对码的部分函数依赖和传递函数依赖,所以R∈3NF, 又因为所有的函数依赖的决定因素都是码,所以R∈BCNF。

2)R(X,Y,Z)码:XY和XZ F={Y→Z,XZ→Y}

答:R∈3NF 因为不存在非主属性对码的部分函数依赖和传递函数依赖,所以R∈3NF, 又因为所有的函数依赖的决定因素不都是码,所以R不是BCNF 。 3)R(X,Y,Z)码:X F={X→Y,X→Z} 答:R∈BCNF 因为不存在非主属性对码的部分函数依赖和传递函数依赖,所以R∈3NF, 又因为所有的函数依赖的决定因素都是码,所以R∈BCNF。 4)R(W,X,Y,Z)码:WX F={X→Z,WX→Y}

答:R∈1NF 因为存在非主属性对码的部分函数依赖,所以R不属于2NF,所以R∈1NF。 3.设有如图所示关系R 关系R 课程名 C1 C2 C3 C4 教师名 马千里 于得水 佘快 于得水 教师地址 D1 D1 D2 D1 1)它为第几范式?为什么? 2)是否存在删除操作异常?若存在,则说明是在什么情况下发生的?

3)将它分解为高一级范式,分解后的关糸是如何解决分角前可能存在的删除操作异常问题? 答:1)它是2NF

- 43 -

风流人物 http://www.FengLiuRenWu.com

∵R 的候选关键字为课程名,而课程名→教师名,教师名→课程名,教师名→教师地址

∴课程名→教师地址,即存在非主属性教师地址对候选关健字课程名的传递函数依赖,因此R不是3NF。 又∵不存在非主属性对候选关健字是的部分函数依赖 ∴是2NF。

2)存在。当删除某门课程时会删除不该删除的教师的关信息。

3)分解为高一级范式如图所示。

R1 R2 课程名 C1 C2。 C3 C4 教师名 马千里 于得水 佘快 于得水 教师名 马千里 于得水 佘快 教师地址 D1 D1 D2 分解后,若删除课程数据时,仅对关糸R1操作,教师地址信息在关糸R2中仍然保留,不会丢失教师方面的信息. 4.设有如图所示的关糸R: 职工号 E1 E2 E3 E4 职工名 年龄 ZHAO QIAN SEN LI 20 25 38 25 性别 单位号 单位名 F M M F D3 D1 D3 D3 CCC AAA CCC CCC 试问R属于第几范式?为什么?并如何规范化为3NF? 答:R不属于3NF,它是2NF

∵R的侯选关键字为职工号和职工名,而:

职工号→单位号,单位号→职工号, 单位号→单位名

∴职工号-------→单位名,即存在非主属性单位名对侯选关键职工号的传递函数依赖 规范化后的关系子模式为入图4.25所示的关系R1和R2

R1 R2

职工号 E1 E2 E3 E4 职工名 年龄 性别 单位号 ZHAO QIAN SEN LI 20 25 38 25 F M M F D3 D1 D3 D3 单位号 D3 D1 单位名 CCC AAA 5.设有商业销售记账数据库,一个顾客(顾客姓名,单位,电话号码)可以买多种商品,一种商品(商品名称,型号,单价)供应多个顾客。试画出对应的E-R图并将其转换为关系模式。 答:E-R图 顾客 商品 销售 m n 顾客 单商品姓名 电单型 数量 价 名称 话位 号 根据E-R图转换的关系模式为: 顾客(顾客姓名,单位,电话号码) 商品(商品名称,型号,单价)

销售(顾客姓名,商品名称,型号,数量)

6.某商业集团数据库中有3个实体集。一是“商店”实体集,属性有商店编号、商店名、地址等;二是“商品”

- 44 -

风流人物 http://www.FengLiuRenWu.com

实体集,属性有商品号、商品名、规格、单价等;三是“职工”实体集,三是有职工编号、姓名、性别、业绩等。

商店与商品间存在“销售”关系,每个商店可销售多种商品,每种商品也可放在多个商店销售,每个商店每销售一种商品,有月销售量;商店与职工间存在着“聘用”联系,每个商店有许多职工,每个职工只能在一个商店工作,商店聘用职工有聘期和月薪。

1)试画出ER图,并在图上注明属性、联系的类型。

2)将ER图转换成关系模式集,并指出每个关系模式主键和外键。 答:1)E-R图如图所示。

2)这个E-R图可转换4个关系模式: 商店(商店编号,商店名,地址)

职工(职工编号,姓名,性别,业绩,商店编号,聘期,月薪) 商品(商品号,商品名,规格,单价) 销售(商店编号,商店号,月销售量)

商店编号angdian 商店名 地址 商店 月销售量 月薪 聘期 销售 商品 职工 商品号 单价 商店名 规格 聘用 职工编号 姓名 性别 业绩 7.设某商业

集团数据库中有3个实体集。一是“公司”实体集,属性有公司编号、公司名、地址等;二是“仓库”实体集,属

性有仓库编号、仓库名、地址等;三是“职工”实体集,属性有职工编号、姓名、性别等。

公司与仓库间存在“隶属”联系,没个攻击管辖若干仓库,每个仓库只能属于一个公司管辖;仓库与职工间存在“聘用”联系,每个仓库可聘用多个职工,每个职工只能在一个仓库铬镍钢做,仓库聘用职工有聘期和工资。 1)画出ER图,并在图上注明属性、联系的类型。

2)将ER图转换成关系模式集,并指出每个关系迷失的主键和外键。 答:1)E-R图所示。

2)这个E-R图可转换3个关系模式: 公司(公司编号,公司名,地址)

仓库(仓库编号,仓库名,地址,公司编号)

职工(职工编号,姓名,性别,仓库编号,聘期,工资)

- 45 -

风流人物 http://www.FengLiuRenWu.com

公司编号 公司名 地址 公司 仓库编号 隶属 仓库名 仓库 聘期 地址 聘用 工资 职工 职工编号 姓名 性别 8.设某工商业集团数据库有3个实体集。一是“商品”实体集,属性有商品号、商品名、规格、单价等;二是“商店”实体集,属性有商店号、商店名、地址等;三是“供应商”实体集,属性有供应商编号、供应商名、地址等。

供应商与商品之间存在“供应”关系,每个供应商可供应多种商品,每种商品可向多个供应商订购,每个供应商供应每种商品有个月供应量;商店与商品间存在“销售”联系,每个商店可销售多种商品,每种商品可在多个商店销售,没个商店销售每种商品有个月计划数。

1)试画出ER图,并在图上注明属性、联系的类型。

2)将ER图转换成关系模式集,并指出每个关系模式的主键和外键。 答:1)E-R图所示。

2)这个E-R图可转换5个关系模式: 供应商(供应商编号,供应商名,地址) 商店(商店号,商店名,地址)

商品(商品号,商品名,规格,单价) 供应(供应商编号,商品号,月供应量) 销售(商店号,商品号,月计划数)

- 46 -

风流人物 http://www.FengLiuRenWu.com

供应商编号 供应商名 地址 商店号 商店名 地址 供应商 商店 月供应量 供应 销售 月计划数 商品 商品号 商品名 规格 单价 9.某医院病房计算机管理中需要如下信息: 科室:科名,科地址,科电话,医生姓名 病房:病房号,床位号,所属科室号

医生:姓名,职称,所属科室名,年龄,工作证号 病人:病历号,姓名,性别,诊断,主管医生,病房号

其中,一个科室有多个病房,多个医生。一个病房只能属于一个科室,一个医生只属于一个科室,但可负责多个病人的诊治,一个病人的主管医生只有一个。 完成入下设计:

1)设计核算计算机管理系统的E-R图; 2)将该E-R图转换为关系模型结构;

3)指出转换结果中每个关系模式的侯选码 答:1) 科电话 科地址 病房科名 床位号 科室 病房 组成 入住 从属 病人 医生 诊治 年龄 性别 工作证号 病历号 姓名 姓名 职称 2)科室(科名,科地址,科电话) 病房(病房号,床位号,科室号)

医生(工作证号,姓名,职称,科室名,年龄)

- 47 -

风流人物 http://www.FengLiuRenWu.com

病人(病历号,姓名,性别,诊治,主管医生,病房号) 3)每个关系模式的侯选码如下: 科室的侯选码是科名

病房的侯选码是科室名+病房号 医生的侯选码是工作证号 病人的侯选码是病历号

10.一个图书馆借阅管理数据库要求提供下述服务:

1)可随时查询书库中现有书籍品种,数量与存放位置,所有各类书记均可由书号惟一标识。 2)可随时查询书记借还情况,包括借书人单位,姓名,借书证号,借书日期和还书日期。

我们约定:任何人可借多种书,任何一种书可为多个人所借,借书证号具有唯一性。

1)当需要时,可通过数据库中保存的出版社的电报编号,电话,邮编及地址等信息向有关书籍的出版社增购有关书籍。我们约定,一个出版社可出版多种书籍,同一本书仅为一个出版社出版,出版社具有惟一性。

根据以上情况和假设,试作如下设计: 1)构造E-R图;

2)转换为等价的关系模式 答:1)E-R图 2)关系模式:

借书人(借书证号,姓名单位)

图书(书号,书名.数量.位置.出版社名) 出版社(出版社名,电报,电话.邮编,地址) 借阅(借书证号,书号.借书日期.还书日期)

姓名 单位 借书证号

借书人 借书日期 出版社名 电报编号 借阅 还书日期 图书 书号 书名 数量 出版 出版社 电话 地址 位置 邮编 - 48 -

本文来源:https://www.bwwdw.com/article/jngr.html

Top