数据库原理与应用试题库

更新时间:2024-04-19 23:00:01 阅读量: 综合文库 文档下载

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

第一部分 基本概念

一、单项选择题

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

2.数据库系统与文件系统的主要区别是 。

B.文件系统不能解决数据冗余和数据独立性问题,而数据库系统可以解决 3.数据库的概念模型独立于 。 A.具体的机器和DBMS

4.数据库是在计算机系统中按照一定的数据模型组织、存储和应用的 ① ,支持数据库各种操作的软件系统叫 ② ,由计算机、操作系统、DBMS、数据库、应用程序及用户等组成的一个整体叫做 ③ 。

① A.文件的集合 B.数据的集合 C.命令的集合 D.程序的集合

② A.命令系统 B.数据库管理系统 C.数据库系统 D.操作系统 ③ A.文件系统 B.数据库系统

C.软件系统 D.数据库管理系统

答案:①B ②B ③B

5.数据库的基本特点是 。

B.(1)数据可以共享(或数据结构化) (2)数据独立性

(3)数据冗余小,易扩充 (4)统一管理和控制

6.数据库具有 数据结构化 、最小的 冗余度 和较高的 程序与数据独立性 。 7.在数据库中,下列说法 是不正确的。 A.数据库避免了一切数据的重复

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

答案:A

8. 是存储在计算机内有结构的数据的集合。 B.数据库

9.在数据库中存储的是 。 C.数据以及数据之间的联系

10.数据库中,数据的物理独立性是指 。

C.用户的应用程序与存储在磁盘上数据库中的数据是相互独立的

11.数据库的特点之一是数据的共享,严格地讲,这里的数据共享是指 。 D.多种应用、多种语言、多个用户相互覆盖地使用数据集合 12.数据库系统的核心是 。 B.数据库管理系统

13.下述关于数据库系统的正确叙述是 。 A.数据库系统减少了数据冗余 B.数据库系统避免了一切冗余

C.数据库系统中数据的一致性是指数据类型一致 D.数据库系统比文件系统能管理更多的数据

答案:A

14.下述关于数据库系统的正确叙述是 。 A.数据库中只存在数据项之间的联系

B.数据库的数据项之间和记录之间都存在联系

C.数据库的数据项之间无联系,记录之间存在联系

D.数据库的数据项之间和记录之间都不存在联系 答案:B

15.相对于其他数据管理技术,数据库系统有 数据共享 、减少数据冗余、保持数据的一致性、 数据有独立性 和 数据有安全与完整性保障 的特点。

16.数将数据库的结构划分成多个层次,是为了提高数据库的 逻辑独立性 和 物

理独立性

17.在数据库技术中,为提高数据库的逻辑独立性和物理独立性,数据库的结构被划分成用户级、 和存储级三个层次。

A.管理员级 B.外部级 C.概念级 D.内部级 答案:C

18.数据库是在计算机系统中按照一定的数据模型组织、存储和应用的 数据的集合

,支持数据库各种操作的软件系统叫做 数据库管理系统 ,由计算机、操作系统、DBMS、数据库、应用程序及用户组成的一个整体叫做 数据库系统 。

19.数据库(DB)、数据库系统(DBS)和数据库管理系统(DBMS)三者之间的关系是 。 A.DBS包括DB和DBMS

20. 可以减少相同数据重复存储的现象。 A.记录 B.字段 C.文件 D.数据库 答案:D

21.在数据库中,产生数据不一致的根本原因是 。

D.数据冗余

22.数据库管理系统(DBMS)是 。 C.一组软件

23.数据库管理系统(DBMS)是 。 D.系统软件

24.数据库管理系统(DBMS)的主要功能是 。 B.定义数据库

25.数据库管理系统的工作不包括 。 A.定义数据库

B.对已定义的数据库进行管理 C.为定义的数据库提供操作系统 D.数据通信 答案:C

26.数据库管理系统中用于定义和描述数据库逻辑结构的语言称为 。 A.数据库模式描述语言

27. 是存储在计算机内的有结构的数据集合。 D.数据库

28.数据库系统的核心是 。 D.数据库管理系统

29.数据库系统的特点是 、数据独立、减少数据冗余、避免数据不一致和加强了数据保护。

A.数据共享

30.数据库系统的最大特点是 。 A.数据的三级抽象和二级独立性

31.数据库系统是由 数据库管理系统、数据库管理员、数据库 组成;而数据库应用系统是由 数据库系统、应用程序系统、用户 组成。

32.数据库系统由数据库、 数据库管理系统 和硬件等组成,数据库系统是在 文件系统 的基础上发展起来的。数据库系统由于能减少数据冗余,提高数据独立性,并集中检查 数据完整性,由此获得广泛的应用。数据库提供给用户的接口是 数据库语言 ,它具有数据定义、数据操作和数据检查功能,可独立使用,也可嵌入宿主语言使用。 SQL 语言已被国际标准化组织采纳为标准的关系数据库语言。

33.数据的管理方法主要有 。 D.数据库系统和文件系统

34.数据库系统和文件系统的主要区别是 。

B.文件系统不能解决数据冗余和数据独立性问题,而数据库系统能够解决

35.数据库管理系统能实现对数据库中数据的查询、插入、修改和删除等操作,这种功能称为 。 C.数据操纵功能

36.数据库管理系统是 。 B.在操作系统支持下的系统软件

37.在数据库的三级模式结构中,描述数据库中全体数据的全局逻辑结构和特征的是 。 D.模式

38.数据库系统的数据独立性是指 。

B.不会因为系统数据存储结构与数据逻辑结构的变化而影响应用程序

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

40.在数据库系统中,通常用三级模式来描述数据库,其中 ① 是用户与数据库的接口,是应用程序可见到的数据描述, ② 是对数据整体的 ③ 的描述,而 ④ 描述了数据的 ⑤ 。 A.外模式 B.概念模式 C.内模式 D.逻辑结构 E.层次结构 F.物理结构 答案:①A ②B ③D ④C ⑤F 41.应用数据库的主要目的是为了 。 A.解决保密问题

B.解决数据完整性问题 C.共享数据问题

D.解决数据量大的问题 答案:C

42.数据库应用系统包括 。

A.数据库语言、数据库 B.数据库、数据库应用程序 C.数据管理系统、数据库 D.数据库管理系统 答案:B

43.实体是信息世界中的术语,与之对应的数据库术语为 。 A.文件 B.数据库 C.字段 D.记录 答案:D

44.层次型、网状型和关系型数据库划分原则是 。 A.记录长度 B.文件的大小

C.联系的复杂程度 D.数据之间的联系

答案:D

45.按照传统的数据模型分类,数据库系统可以分为三种类型 。 A.大型、中型和小型 B.西文、中文和兼容 C.层次、网状和关系 D.数据、图形和多媒体 答案:C

46.数据库的网状模型应满足的条件是 。 A.允许一个以上的无双亲,也允许一个结点有多个双亲 B.必须有两个以上的结点

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

47.在数据库的非关系模型中,基本层次联系是 。 A.两个记录型以及它们之间的多对多联系 B.两个记录型以及它们之间的一对多联系 C.两个记录型之间的多对多的联系 D.两个记录之间的一对多的联系 答案:B

48.数据模型用来表示实体间的联系,但不同的数据库管理系统支持不同的数据模型。在常用的数据模型中,不包括 。

A.网状模型 B.链状模型 C.层次模型 D.关系模型 答案:B

49.数据库可按照数据分成下面三种:

(1)对于上层的一个记录,有多个下层记录与之对应,对于下层的一个记录,只有一个上层记录与之对应,这是 ① 数据库。

(2)对于上层的一个记录,有多个下层记录与之对应,对于下层的一个记录,也有多个上层记录与之对应,这是 ② 数据库。

(3)不预先定义固定的数据结构,而是以“二维表”结构来表达数据与数据之间的相互关系,这是 ③ 数据库。

A.关系型 B.集中型 C.网状型 D.层次型 答案:①D ②C ③A

50.一个数据库系统必须能够表示实体和关系,关系可与 ① 实体有关。实体与实体之间的关系有一对一、一对多和多对多三种,其中 ② 不能描述多对多的联系。 ①A.0个 B.1个

C.2个或2个以上 D.1个或1个以上 ②A.关系模型 B.层次模型

C.网状模型 D.网状模型和层次模型 答案:①D ②B

51.按所使用的数据模型来分,数据库可分为 三种模型。

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

52.通过指针链接来表示和实现实体之间联系的模型是 。 A.关系模型 B.层次模型

C.网状模型 D.层次和网状模型 答案:D

53.层次模型不能直接表示 。

A. 1 :1关系 B.1 :m关系

C. m :n关系 D.1 :1和1 :m关系 答案:C

54.关系数据模型 。 A.只能表示实体问的1∶1联系

B.只能表示实体间的1∶n联系 C.只能表示实体间的m∶n联系 D.可以表示实体间的上述三种联系 答案:D 55.从逻辑上看关系模型是用 ① 表示记录类型的,用 ② 表示记录类型之间的联系;层次与网状模型是用 ③ 表示记录类型,用 ④ 表示记录类型之间的联系。从物理上看关系是 ⑤ ,层次与网状模型是用 ⑥ 来实现两个文件之间的联系。

A.表 B.结点 C.指针 D.连线 E.位置寻址 F.相联寻址 答案:①A ②A ③B ④D ⑤F ⑥C

56.在数据库设计中用关系模型来表示实体和实体之间的联系。关系模型的结构是 。 A.层次结构 B.二维表结构 C.网状结构 D.封装结构 答案:B

57.子模式是 。

A.模式的副本 B.模式的逻辑子集 C.多个模式的集合 D.以上三者都对 答案:B

58.在数据库三级模式结构中,描述数据库中全体逻辑结构和特性的是 。

A.外模式 B.内模式 C.存储模式 D.模式 答案:D

59.数据库三级模式体系结构的划分,有利于保持数据库的 。 A.数据独立性 B.数据安全性 C.结构规范化 D.操作可行性 答案:A

60.数据库技术的奠基人之一E.F.Codd从1970年起发表过多篇论文,主要论述的是 。

A.层次数据模型 B.网状数据模型

C.关系数据模型 D.面向对象数据模型

答案:C 二、填空题

1.经过处理和加工提炼而用于决策或其他应用活动的数据称为 。 答案:信息

2.数据管理技术经历了 ① 、 ② 和 ③ 三个阶段。 答案:①人工管理 ②文件系统 ②数据库系统 3.数据库系统一般是由 ① 、 ② 、 ③ 、 ④ 和 ⑤ 组成。

答案:①硬件系统 ②数据库集合 ③数据库管理系统及相关软件 ④数据库管理员 ⑤用户

4.数据库是长期存储在计算机内、有 ① 的、可 ② 的数据集合。 答案:①组织 ②共享

5.DBMS是指 ① 它是位于 ② 和 ③ 之间的一层管理软件。 答案:①数据库管理系统 ②用户 ③操作系统 6.DBMS管理的是 的数据。 答案:结构化

7.数据库管理系统的主要功能有 ① 、 ② 、数据库的运行管理和数据库的建立以及维护等4个方面。

答案:①数据定义功能 ②数据操纵功能

8.数据库管理系统包含的主要程序有 ① 、 ② 和 ③ 。 答案:①语言翻译处理程序 ②系统运行控制程序 ③实用程序

9.数据库语言包括 ① 和 ② 两大部分,前者负责描述和定义数据库的各种特性,后者用于说明对数据进行的各种操作。 答案:①数据描述语言 ②数据操纵语言 10.指出下列缩写的含义: (1)DML: ① (2)DBMS: ② (3)DDL: ③ (4)DBS: ④ (5)SQL: ⑤ (6)DB: ⑥ (7)DD: ⑦ (8)DBA: ⑧ (9)SDDL: ⑨ (10)PDDL: ⑩

答案:①数据操纵语言 ②数据库管理系统 ③数据描述语言 ④数据库系统 ⑤结构化查询语言 ⑥数据库

⑦数据字典 ⑧数据库管理员 ⑨子模式数据描述语言 ⑩物理数据描述语言

11.数据库系统包括数据库 ① 、 ② 和 ③ 三个方面。 答案:①相应硬件 ②软件 ③相关的各类人员

12.开发、管理和使用数据库的人员主要有 ① 、 ② 、 ③ 和最终用户四类相关人员。

答案:①数据库管理员 ②系统分析员 ③应用程序员 13.由 负责全面管理和控制数据库系统。 答案:数据库管理员

14.数据库系统与文件系统的本质区别在于 。 答案:数据库系统实现了整体数据的结构化

15.数据独立性是指 ① 与 ② 是相互独立的。

答案:①用户的应用程序 ②存储在外存上的数据库中的数据 16.数据独立性又可分为 ① 和 ② 。 答案:①逻辑数据独立性 ②物理数据独立性

17.当数据的物理存储改变了,应用程序不变,而由DBMS处理这种改变,这是指数据的 。

答案:物理独立性

18.数据模型质量的高低不会影响数据库性能的好坏,这句话正确否? 。 答案:不正确

19.根据数据模型的应用目的不同,数据模型分为 ① 和 ② 。 答案:①概念模型 ②数据模型

20.数据模型是由 ① 、 ② 和 ③ 三部分组成的。 答案:①数据结构 ②数据操作 ③完整性约束

21.按照数据结构的类型来命名,数据模型分为①塑、②和③。 答案:①层次模型 ②网状模型 ②关系模型 22. ① 是对数据系统的静态特性的描述, ② 是对数据库系统的动态特性的描述。

答案:①数据结构 ②数据操作

23.以子模式为框架的数据库是 ① ;以模式为框架的数据库是 ② ;以物理模式为框架的数据库是 ③ 。

答案:①用户数据库 ②概念数据库 ③物理数据库

24.非关系模型中数据结构的基本单位是 。 答案:基本层次联系

25.层次数据模型中,只有一个结点,无父结点,它称为 。 答案:根

26.层次模型的物理存储方法一般采用 ① 和 ② 。 答案:①顺序法 ②指针法

27.层次模型是一个以记录类型为结点的有向树,这句话是否正确? 。

答案:正确

28.层次模型中,根结点以外的结点至多可有 个父结点。 答案:1

29.关系模型是将数据之间的关系看成网络关系,这句话是否正确? 答案:不正确

30.关系数据库是采用 作为数据的组织方式。 答案:关系模型

31.数据描述语言的作用是 。 答案:定义数据库

32.数据库体系结构按照 ① 、 ② 和 ③ 三级结构进行组织。 答案:①模式 ②外模式 ③内模式 33.外模式是 的子集。 答案:模式 34.数据库的模式有 ① 和 ② 两方面,前者直接与操作系统或硬件联系,后者是数据库数据的完整表示。

答案:①存储模式 ②概念模式

35.现实世界的事物反映到人的头脑中经过思维加工成数据,这一过程要经过三个领域,依次是 ① 、 ② 和 ③ 。

答案:①现实世界 ②信息世界 ③计算机世界(或数据世界)

36.实体之间的联系可抽象为三类,它们是 ① 、 ② 和 ③ 。 答案:①1∶1 ②1∶m ②m∶n

37.数据冗余可能导致的问题有 ① 和 ② 。 答案:①浪费存储空间及修改麻烦 ②潜在的数据不一致性 38.从外部视图到子模式的数据结构的转换是由 ① 实现的;模式与子模式之间的映象是由 ② 实现的;存储模式与数据物理组织之间的映象是由因实现的。

答案:①应用程序 ②DBMS ③操作系统的存取方法 三、简述题

1.从程序和数据之间的关系分析文件系统和数据库系统之间的区别和联系。 答:

(1)文件系统和数据库系统之间的区别是: 文件系统 数据库系统 用文件将数据长期保存在外存上 用数据库统一存储数据 程序和数据有一定的联系 实现以文件为单位的数据共享 程序和数据分离 实现以记录和字段为单位的数据共享 用操作系统中的存取方法对数据进行管理 用DBMS统一管理和控制数据 (2)文件系统和数据库系统之间的联系: 均为数据组织的管理技术:均由数据管理软件管理数据,程序与数据之间用存取方法进行转换;数据库系统是在文件系统的基础上发展而来的。

2.什么是数据库?

答:数据库是长期存储在计算机内、有组织的、可共享的数据集合。数据库是按某种数据模型进行组织的、存放在外存储器上,且可被多个用户同时使用。因此,数据库具有较小的冗余度,较高的数据独立性和易扩展性。

3.什么是数据冗余?数据库系统与文件系统相比怎样减少冗余? 答:数据冗余是指各个数据文件中存在重复的数据。 在文件管理系统中,数据被组织在一个个独立的数据文件中,每个文件都有完整的体系结构,对数据的操作是按文件名访问的。数据文件之间没有联系,数据文件是面向应用程序的。每个应用都拥有并使用自己的数据文件,各数据文件中难免有许多数据相互重复,数据的冗余度比较大。

数据库系统以数据库方式管理大量共享的数据。数据库系统由许多单独文件组成,文件内部具有完整的结构,但它更注重文件之间的联系。数据库系统中的数据具有共享性。数据库系统是面向整个系统的数据共享而建立的,各个应用的数据集中存储,共同使用,数据库文件之间联系密切,因而尽可能地避免了数据的重复存储,减少和控制了数据的冗余。

4.使用数据库系统有什么好处?

答:使用数据库系统的好处是:

·查询迅速、准确,而且可以节约大量纸面文件; ·数据结构化,并由DBMS统一管理;

·数据冗余度小;

·具有较高的数据独立性; ·数据的共享性好;

·DBMS还提供了数据的控制功能。

5.什么是数据库的数据独立性? 答:数据独立性表示应用程序与数据库中存储的数据不存在依赖关系,包括逻辑数据独立性和物理数据独立性。

逻辑数据独立性是指局部逻辑数据结构(外视图即用户的逻辑文件)与全局逻辑数据结构(概念视图)之间的独立性。当数据库的全局逻辑数据结构(概念视图)发生变化(数据定义的修改、数据之间联系的变更或增加新的数据类型等)时,它不影响某些局部的逻辑结构的性质,应用程序不必修改。

物理数据独立性是指数据的存储结构与存取方法(内视图)改变时,对数据库的全局逻辑结构(概念视图)和应用程序不必作修改的一种特性,也就是说,数据库数据的存储结构与存取方法独立。

数据独立性的好处是,数据的物理存储设备更新了,物理表示及存取方法改变了,但数据的逻辑模式可以不改变。数据的逻辑模式改变了,但用户的模式可以不改变,因此应用程序也可以不变。这将使程序维护容易,另外,对同一数据库的逻辑模式,可以建立不同的用户模式,从而提高数据共享性,使数据库系统有较好的可扩充性,给DBA维护、改变数据库的物理存储提供了方便。

6.什么是数据库管理系统?

答:数据库管理系统(DBMS)是操纵和管理数据库的一组软件,它是数据库系统(DBS)的重要组成部分。不同的数据库系统都配有各自的DBMS,而不同的DBMS各支持一种数据库模型,虽然它们的功能强弱不同,但大多数DBMS的构成相同,功能相似。

一般说来,DBMS具有定义、建立、维护和使用数据库的功能,它通常由三部分构成:数据描述语言及其翻译程序、数据操纵语言及其处理程序和数据库管理的例行程序。 (1)数据描述语言(DDL)

数据描述语言对应数据库系统的三级模式(外模式、概念模式和内模式)分别有三种不同的DDL:外模式DDL概念模式DDI‘和内模式DDL,它们是专门提供给DBA使用的,一般用户不必去关心。 .

外模式DDL是专门定义外视图的,外视图是用户观点的数据库描述,它是数据库的局部逻辑结构。

概念模式DDL是用来描述概念视图的专用语言。概念视图是数据库的全局逻辑结构,它包括数据库中所有元素的名称、特征及其相互关系的描述,并包括数据的安全保密性和完整性以及存储安排、存取路径等信息。

内模式DDL是用来定义内视图的数据描述语言。内视图是从物理层中分离出来的,但不是物理视图。虽然它有存储记录和块的概念,但它不受任何存储设备和设备规格(如柱面大小、磁道容量等)的限制。它包括对存储记录类型、索引方法等方面的描述。

(2)数据操纵语言(DML)

数据操纵语言是用户与DBMS之间的接口,是用户用于存储、控制检索和更新数据库的工具。

DML由一组命令语句组成,这些语句可分为4类。 ·存储语句 用户使用存储语句向数据库中存放数据。系统给出新增数据库记录的数据库码,并分配相应的存储空间。

·控制语句 用户通过这类语句向DBMS发出使用数据库的命令,使数据库置于可用状态。操作结束后,必须使用关闭数据库的命令,以便对数据库的数据进行保护。 ·检索语句 用户通过这类语句把需要检索的数据从数据库中选择出来传至内存,交给应用程序处理。

·更新语句 用户通过这组更新语句完成对数据库的插入、删除和修改数据的操作。

(3)数据库管理的例行程序数据库管理的例行程序随系统而异。 一般来说,它通常由下列三部分组成。

·语言翻译处理程序 包括DDL翻译程序、DML处理程序、终端查询语言解释程序、数据库控制语言的翻译程序等。

·公用程序 定义公用程序和维护公用程序。定义公用程序包括信息格式定义、概念模式定义、外模式定义和保密定义公用程序等。维护公用程序包括数据装入、数据库更新、重组、重构、恢复、统计分析、工作日记、转储和打印公用程序等。

·系统运行控制程序 包括数据存取、更新、有效性检验、完整性保护程序、并发控制、数据库管理、通信控制程序等。

7.数据库管理系统有哪些功能? 答:数据库管理系统(DBMS)是位于操作系统与用户之间的一个数据管理软件,它的主要功能包括以下几个方面:

·数据定义功能 DBMS提供数据描述语言(DDL),用户可通过它来定义数据。

·数据操纵功能 DBMS还提供数据操纵语言(DMl),实现对数据库的基本操作:查询、插入、删除和修改。

·数据库的运行管理 这是DBMS运行时的核心部分,它包括开发控制,安全性检查,完整性约束条件的检查和执行,数据库的内容维护等。 ·数据库的建立和维护功能 它包括数据库初始数据的输入及转换,数据库的转储与恢复,数据库的重组功能和性能的监视与分析功能等。 8.DBA的职责是什么? 答:DBA的职责是:

·决定DB中的信息内容和结构; ·决定DB的存储结构和存取策略;

·定义数据的安全性要求和完整性约束条件;

·监控数据库的使用和运行。

9.什么是数据字典?数据字典包含哪些基本内容? 答:数据字典是数据库系统中各种描述信息和控制信息的集合,它是数据库设计与管理的有力工具。数据字典的基本内容有:

·数据项 描述实体的一个属性,每个数据项都有自己的专有名称。

·组项 为若干个数据项的组合,它们是相互关联的数据项。组项的名称也必须具有惟

一性。

·记录 若干个数据项和组项的集合,它是对一个实体的完整性的描述。 ·文件 记录值的集合。

·外模式 用户视图(外视图)的定义。它是用外模式DLL写成的一组专用语句。 ·概念模式 描述数据库所含实体、实体之间的联系和信息流等。

·内模式 数据库存储结构的描述、实体之间的联系和存取方法、物理映象等。 ·外模式/概念模式映象 描述外模式与概念模式之间信息的对应关系。 ·概念模式/n模式映象 描述概念模式与内模式之间信息的对应关系。 ·用户管理信息 如用户应用程序、用户口令和工作区分配等。

·数据库控制信息 主要有安全性要求、完整性约束、多个用户使用数据库时的并行管理(并发控制)、数据库副本管理、工作日志文件的维护等。

10.叙述数据字典的主要任务和作用?

答:数据字典的任务就是管理有关数据的信息,所以又称为“数据库的数据库”。它的任务主要有:

(1)描述数据库系统的所有对象,并确定其属性。如一个模式中包含的记录型与一个记录型包含的数据项;用户的标识、口令;物理文件名称、物理位置及其文件组织方式等。数据字典在描述时赋给每个对象一个惟一的标识。

(2)描述数据库系统对象之间的各种交叉联系。如哪个用户使用哪个子模式,哪些模式或记录型分配在哪些区域及对应于哪些物理文件、存储在何种物理设备上。 (3)登记所有对象的完整性及安全性限制等。

(4)对数据字典本身的维护、保护、查询与输出。 数据字典的主要作用是:

(1)供数据库管理系统快速查找有关对象的信息。数据库管理系统在处理用户存取时,要经常查阅数据字典中的用户表、于模式表和模式表等。 (2)供数据库管理员查询,以掌握整个系统的运行情况。

(3)支持数据库设计与系统分析。

11.叙述模型、模式和具体值三者之间的联系和区别。

答:数据模型是用来表示信息世界中的实体及其联系在数据世界中的抽象描述,它描述的是数据的逻辑结构。模式的主体就是数据库的数据模型。数据模型与模式都属于型的范畴。所谓型,是指只包含属性的名称,不包含属性的值,而所谓值,是型的具体实例值,即赋了值的型(在Visual FoxPro中,型就是数据库表的结构,而值就是数据库表中存储的记录)。

12.什么是层次模型?

答:在数据库中,把满足以下两个条件的基本层次联系的集合称为“层次模型”: (1)有且仅有一个结点无双亲,这个结点称为“根结点”;

(2)其他结点有且仅有一个双亲。

13.什么是网状模型?

答:在数据库中,把满足以下两个条件的基本层次结构的集合称为“网状模型”: (1)允许一个以上结点无双亲:

(2)一个结点可以有多个双亲。

14.简要叙述关系数据库的优点?

答:关系数据库是以关系模型作为数据的组织方式,关系模型是建立在严格的数学概念基础上的,关系数据库的主要优点是概念简单清晰,用户不需了解复杂的存取路径,不需说明“怎么干”,只需说明“干什么”,易懂易学。

15.层次模型、网状模型和关系模型等三种基本数据模型是根据什么来划分的?

答:数据模型是现实世界中各种实体之间存在着联系的客观反映,是用记录描述实体信

息的基本结构,它要求实体和记录一一对应;同一记录类型描述同一类实体见必须是同质的。目前应用在数据库技术中的模型有关系、网状和层次模型,它们是依据描述实体与实体之间联系的不同方式来划分的:用二维表格来表示实体和实体之间联系的模型叫做关系模型;用图结构来表示实体和实体之间联系的模型叫做网状模型;用树结构来表示实体和实体之间联系的模型叫做层次模型。

16.层次模型、网状模型和关系模型这三种基本数据模型各有哪些优缺点?

答:

(1).层次模型的优点是:

·结构清晰,表示各结点之间的联系简单;

·容易表示如“家族关系”等现实世界的层次结构的事物及其之间的联系。 缺点是:

·不能表示两个以上实体型之间的复杂联系和实体型之间的多对多联系;

· 严格的层次顺序使数据插入和删除操作变得复杂,如父结点的删除导致子结点的删除。

(2).网状模型的优点是:

·能够表示实体之间的多种复杂联系。 缺点是:

·网状模型比较复杂,需要程序员熟悉数据库的逻辑结构; ·在重新组织数据库时容易失去数据独立性。 (3).关系模型的优点是:

·使用表的概念,简单直观:

·直接表示实体之间的多对多联系; ·具有更好的数据独立性;

·具有坚实的理论基础。 缺点是:

·关系模型的联结等操作开销较大,需要较高性能计算机的支持。

17. 试举出三个实例,要求实体型之间具有一对一、一对多、多对多各种不同的联系。 解:1:1 学校与校长;班级与班长; 系与系主任;医院与院长;? 1:n 系与教师;班级与学生;

车间与工人;宿舍与学生;? m:n 学生与课程;教师与课程; 医生与药品;病人与药品;?

18. 学校中有若干系,每个系有若干班级和教研室,每个教研室有若干教员,其中有的教授和副教授每人各带若干研究生。每个班有若干学生,每个学生选修若干课程,每门课可有若干学生选修。用E-R图画出此学校的信息模型,并转换为扩展BACHMAN图。 解: 系

1

拥有 m n 教研室 班级

1 1

工作 属于

m n

教员 p 学生

m 教学 1 m

指导

n n

选修

n

19. 某工厂中生产若干产品,每种产品由不同的零件组成,有的零件可用在不同的产品上。这些零件由不同的原材料制成。不同零件所用的原材料可以相同。这些零件按所属的不同产品分别放在仓库中,原材料按照类别放在若干仓库中。请用E-R图画出此工厂产品、零件、材料、仓库的概念模型。 解:

产品

m n 组成 库存1 n1

零件

mn仓库

库存2

m

制作

1

n

原材料库存

p

第二部分 关系数据库

一、单项选择题

1.对关系模型叙述错误的是 。

A.建立在严格的数学理论、集合论和谓词演算公式的基础之上 B.微机DBMS绝大部分采取关系数据模型 C.用二维表表示关系模型是其一大特点

D.不具有连接操作的DBMS也可以是关系数据库系统 答案:D

2.关系数据库管理系统应能实现的专门关系运算包括 。 A.排序、索引、统计 B.选择、投影、连接 C.关联、更新、排序 D.显示、打印、制表 答案:B

3.关系模型中,一个关键字是 。

A.可由多个任意属性组成 B.至多由一个属性组成

C.可由一个或多个其值能惟一标识该关系模式中任何元组的属性组成 D.以上都不是 答案:C

4.在一个关系中如果有这样一个属性存在,它的值能惟一地标识关系中的每一个元组,称这个属性为 。 A.关键字 B.数据项 C.主属性 D.主属性值 答案:A

5.同一个关系模型的任两个元组值 。 A.不能全同 B.可全同

C.必须全同 D.以上都不是 答案:A 6.在通常情。况下,下面的关系中不可以作为关系数据库的关系是 。 A.R1(学生号,学生名,性别) B.R2(学生号,学生名,班级号)

C.R3(学生号,学生名,宿舍号) D.R4(学生号,学生名,简历) 答案:D

7.一个关系数据库文件中的各条记录 。 A.前后顺序不能任意颠倒,一定要按照输入的顺序排列 B.前后顺序可以任意颠倒,不影响库中的数据关系

C.前后顺序可以任意颠倒,但排列顺序不同,统计处理的结果就可能不同 D.前后顺序不能任意颠倒,一定要按照关键字段值的顺序排列 答案:B

8.在关系代数的传统集合运算中,假定有关系R和S,运算结果为w。如果W中的元组属于R,或者属于S,则w为 ① 运算的结果。如果w中的元组属于R而不属于S,则w为 ② 运算的结果。如果w中的元组既属于R又属于S,则W为 ③ 运算的结果。

A.笛卡尔积 B.井 C.差 D.交 答案:①B ②C ③D 9.在关系代数的专门关系运算中,从表中取出满足条件的属性的操作称为 ① ;从表中选出满足某种条件的元组的操作称为 ② ;将两个关系中具有共同属性值的元组连接到一起构成新表的操作称为 ③ 。 A.选择 B.投影 C.连接 D.扫描 答案:①B ②A ③C

10.自然连接是构成新关系的有效方法。一般情况下,当对关系R和S使用自然连接时,要求R和S含有一个或多个共有的 。 A.元组 B.行 C.记录 D.属性 答案:D

11.等值连接与自然连接是 . A.相同的 B.不同的 答案:B

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

R1 A B C A C D 1 2 1 X Y y D 1 2 5 R2 E M N M R3 C X Y y M I J K A A C C B 1 1 2 D M M N E I I J

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

答案:D

13.设有属性A,B,C,D,以下表示中不是关系的是 。 A.R(A) B.R(A,B,C,D) C.R(A×B×C×D) D.R(A,B)

答案:C

14.设关系R(A,B,C)和S(B,C,D),下列各关系代数表达式不成立的是 。 A.?A(R) ?? ?D(S) B.R∪S C. ?B(R) ∩ ?B(S) D.R ?? S 答案:B

15.关系运算中花费时间可能最长的运算是 。 A.投影 B.选择 C.笛卡尔积 D.除 答案:C

16.关系模式的任何属性 。

A.不可再分 B.可再分

C.命名在该关系模式中可以不惟一 D.以上都不是 答案:A

17.在关系代数运算中,五种基本运算为 。 A.并、差、选择、投影、自然连接 B.并、差、交、选择、投影 C.并、差、选择、投影、乘积 D.并、差、交、选择、乘积 答案:C

18.关系数据库用 ① 来表示实体之间的联系,其任何检索操作的实现都是由 ② 三种基本操作组合而成的。

①A.层次模型 B.网状模型 C.指针链 D.表格数据 ②A.选择、投影和扫描 B.选择、投影和连接 C.选择、运算和投影 D.选择、投影和比较 答案:①D ②B

19.关系数据库中的关键字是指 。

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

C.关键的很重要的字段 D.能惟一标识元组的属性或属性集合 答案:D

20.设有关系R,按条件f对关系R进行选择,正确的是 。 A.R?R B.R ?? R C. ?f(R) D.?f(R) f 答案:C

21.在关系数据模型中,通常可以把 ① 称为属性,而把 ② 称为关系模式。常用的关系运算是关系代数和 ③ 。在关系代数中,对一个关系做投影操作后,新关系的元组个数 ④ 原来关系的元组个数。用 ⑤ 形式表示实体类型和实体间的联系是关系模型的主要特征。

①A.记录 B.基本表 C.模式 D.字段 ②A.记录 B.记录类型 C.元组 D.元组集 ③A.集合代数 B.逻辑演算 C.关系演算 D.集合演算 ④A.小于 B.小于或等于 C.等于 D.大于 ⑤A.指针 B.链表 C.关键字 D.表格

答案:①D ②B ③C ④B ⑤D 二、填空题

1.关系操作的特点是 操作。 答案:集合

2.一个关系模式的定义格式为 。

答案:关系名(属性名1,属性名2,?,属性名n)

3.一个关系模式的定义主要包括 ① 、 ② 、 ③ 、 ④ 和 ⑤ 。

答案:①关系名 ②属性名 ③属性类型 ④属性长度 ⑤关键字 4.关系数据库中可命名的最小数据单位是 。 答案:属性名

5.关系模式是关系的 ① ,相当于 ② 。 答案:①框架 ②记录格式

6.在一个实体表示的信息中,称 为关键字。 答案:能惟一标识实体的属性或属性组 7.关系代数运算中,传统的集合运算有 ① 、 ② 、 ③ 和 ④ 。

答案:①笛卡尔积 ②并 ③交 ④差

8.关系代数运算中,基本的运算是 ① 、 ② 、 ③ 、 ④ 和 ⑤ 。

答案:①并 ②差 ③笛卡尔积 ④投影 ⑤选择 9.关系代数运算中,专门的关系运算有 ① 、 ② 和 ③ 。 答案:①选择 ②投影 ③连接

10.关系数据库中基于数学上两类运算是 ① 和 ② 。

答案:①关系代数 ②关系演算

11.传统的集合“并、交、差”运算施加于两个关系时,这两个关系的 ① 必须相等, ② 必须取自同一个域。 答案:①属性个数 ②相对应的属性值

12.关系代数中,从两个关系中找出相同元组的运算称为 运算。 答案:交

13.已知系(系编号,系名称,系主任,电话,地点)和学生(学号,姓名,性别,入学日期,

专业,系编号)两个关系,系关系的主关键字是 ① ,系关系的外关键字是 ② ,学生关系的主关键字是 ③ ,外关键字是 ④ 。 答案:①系编号 ②无 ③学号 ④系编号

14.关系代数是用对关系的运算来表达查询的,而关系演算是用 ① 查询的,它又分为 ② 演算和 ③ 演算两种。

答案:①谓词表达 ②元组关系 ③域关系

三、简述与应用题

1.叙述等值连接与自然连接的区别和联系。

答:等值连接表示为R ?? S,自然连接表示为R ?? S;自然连接是除去重复属性的 R.A=S.B

等值连接。两者之间的区别和联系如下:

· 自然连接一定是等值连接,但等值连接不一定是自然连接。

·等值连接要求相等的分量,不一定是公共属性;而自然连接要求相等的分量必须是公共属性。

·等值连接不把重复的属性除去;而自然连接要把重复的属性除去。

2.举例说明关系参照完整性的含义。

答:假如有如图所示的两个关系表,在成绩表中,学号是关键字,课程号是外关键字;在课程表中课程号是关键字,根据关系参照完整性的定义,R2是成绩表,R1是课程表,也就是成绩表中课程号的值或者为空或者在课程表中的课程号中能够找到。

满足这个条件是必须的,如果不满足,假设成绩表中课程号的值k20在课程表中课程号的值中找不到,则该课程号显然是不正确的,这样会造成数据的不一致性。

成绩表 学号 姓名 课程号 成绩 101 212 221 ?? 刘林 王红 李平 ?? K5 K8 K9 ?? 80 78 90 ?? 课程表 课程号 课程名 K5 K8 K9 ??

3.设有如图所示的关系R和S,计算: (1)R1=R-S

R (2)R2=R∪S

(3)R3=R∩S A B C (4)R4=R×S

a b c

b a f

c b d

解:本题各小题的结果如图所示。

R-S

A B C

a b c

c b d 高等数学 程序设计 操作系统 ?? S A B C b a f d a d R∪S A B C a b c b a f c b d d a f

R∩S R×S

A B C A B C A B C

b a f a b c b a f

a b c d a f

b a f b a f

b a f d a f c b d b a f c b d d a f 4.设有如图所示的关系R,S和T,计算:

(1)R1=R∪S

R S T (2)R2=R-S

(3)R3=R ?? T

A B A B B C (4)R4=R ?? T

a d d a b b A<C

b e b a c c (5)R5=∏A(R)

c c b c b d (6)R6=σA=C(R×T)

解:本题各小题的结果如下图所示。 R1 R2 R3 R4 R5 R6 A B A B C A B B C A A B B C A B a d a d C c c a d b c a a d b c b e b e a d c c b a d c c c c c c a d b d c a d b d d a b e c c b e c c b e b d b e b d b a d e c c b d c c b d

5.设有如图所示的关系R,S,计算:

R S (1)R1=R ?? S

A B C D C E (2)R2=R ?? S

3 6 7 3 4 5 [2]<[2]

7 2 3 4 5 7 (3)R3=σB=d(R×S)

7 2 3

4 4 3 解:本题各小题的结果如下图所示。 R1 A B C C D E R2

A B C D E 7 2 3 3 4 5 3 6 7 2 3 4 5 7 2 3 A B C C D E 7 2 3 4 5 R3 7 2 3 3 4 5 4 4 3 4 5 6.将关系代数中的五种基本运算用元组关系演算表达式表示。 4 5 4 4 3 3 解: (1). R∪S={t|R(t)∨S(t)} (2). R-S={t|R(t)∨┐S(t)}

(3). R×S={t|(?u)(?v)(R(u)∧S(v)∧t[1]=u[1]∧?∧t[k1]=u[k1]∧t[k1+1]=v[1]∧?∧t[k1+k2]=v[k2])} (设R为k1元关系,S为k2元关系)

(4). ∏i1,i2,?,ik(R)={t|(?u)(R(u)∧t[1]=u[i1]∧t[2]=u[i2]?∧t[k]=u[ik])} (5). σF(R)={t|R(t) ∧F’} (其中,F’是与F等价的公式)

7.如有如图所示的关系R、S和W,写出下列域演算表达式的结果。

R S W

A B C A B C D E F

5 b 1 5 b 6 2 a d

4 a 6 5 d 3 5 b e

1 c 8 2 c 4 4 c f

(1). R1={xyz|R(xyz)∧(z>5∨y=a)} (2). R2={ xyz|R(xyz)∨S(xyz)∧(x=5∧z≠6)} (3). R3={vyx|(?u)(?v)(R(xyz)∧W(uvt)∧z>u)} 解:各域演算表达式的结果如下图所示。

R11 R2 R3

A B C A B C E B A

4 a 6 5 b 1 a a 4

1 c 8 4 a 6 b a 4

1 c 8 c a 4

5 d 3 a c 1

b c 1 c c 1

8.将关系代数中的五种基本运算用域关系演算表达式表示(假设R和S都为属性名相同的二元关系)。

解: (1). R∪S={xy|R(xy)∨S(xy)}

(2). R-S={xy|R(xy)∨┐S(xy)}

(3). R×S={wxyz|(?w)(?y)(R(wx)∧S(yz))} (4). ∏2(R)={y|(R(xy))

(5). σF(R)={xy|R(xy) ∧F’} (其中,F’是与F等价的公式)

9.设有如图所示的两上关系E1和E2,其中E2是从E1中经过关系运算所形成的结果,试给出该运算表达式。

E1 E2

A B C B C

1 2 3 5 6

4 5 6 8 9

7 8 9

解:从E1生成E2所经过的关系运算是:∏2,3(σB>2(E1))或∏2,3(σC>3(E1))。

10.设有如下所示的三个关系S、C和SC。用关系代数表达式表示下列要求,并求出结果。

学号 20001 20002 20003 20004 20005

课程号 C001 C002 C003 C004

姓名 S 年龄 性别 女 男 男 男 女 籍贯 北京 上海 长沙 上海 武汉 王小严 20 李 白 21 陈志坚 23 王 兵 20 张 红 22 课程名 高等数学 数据结构 操作系统 编译原理 C 教师 李 娟 刘小东 吴 浩 王 伟 办公室 416 415 415 415 学号 20001 20001 20001 20001 20002 20003 20003 20003 20004 20004 20005 20005 SC 课程号 C001 C002 C003 C004 C001 C001 C002 C004 C001 C004 C001 C003 成绩 90 90 85 87 90 75 70 56 90 85 95 80

(1).检索籍贯为上海的学生姓名、学号和选修的课程号。 (2).检索选修操作系统的学生姓名、课程号和成绩。 (3).检索选修了全部课程的学生姓名、年龄。 解:

(1).R1=∏2,1,6(σ籍贯=’上海’(s?? sc))

或:R1=∏姓名,S.学号,课程号(σ籍贯=’上海’(s?? sc)) 或:R1=∏姓名,S.学号,课程号(σ籍贯=’上海’(s)?? sc) (2). R2= ∏2,6,7(s?? sc?? σ课程名=’操作系统’(C)) 或:R2=∏姓名,SC.课程号,成绩(s?? sc??σ课程名=’操作系统’(C)) (3). R3=∏2,3(s?? ∏1,2(sc)÷∏1(C))) 或:R3=∏姓名,年龄(s?? (∏学号,课程号(sc)÷∏课程号(C))) 检索结果如下:

R1 姓名 学号 课程号 李 白 20002 C001 王 兵 王 兵 20004 20004 R2 课程号 C003 C003 R3 年龄 20 C001 C004 姓名 王小严 张 红 成绩 85 80 姓名 王小严 11.设有如下所示的关系S(S#,SNAME,AGE,SEX)、C(C#,CNAME,TEACHER)和SC(S#,C#,GRADE),试用关系代数表达式表示下列查询语句:

(1)检索“程军”老师所授课程的课程号(C#)和课程名(CNAME)。 (2)检索年龄大于21的男学生学号(S#)和姓名(SNAME)。

(3)检索至少选修“程军”老师所授全部课程的学生姓名(SNAME)。 (4)检索”李强”同学不学课程的课程号(C#)。 (5)检索至少选修两门课程的学生学号(S#)。

(6)检索全部学生都选修的课程的课程号(C#)和课程名(CNAME)。 (7)检索选修课程包含“程军”老师所授课程之一的学生学号(S#)。 (8)检索选修课程号为k1和k5的学生学号(S#)。 (9)检索选修全部课程的学生姓名(SNAME)。

(10)检索选修课程包含学号为2的学生所修课程的学生学号(S#)。 (11)检索选修课程名为“C语言”的学生学号(S#)和姓名(SNAME)。 解:本题各个查询语句对应的关系代数表达式表示如下:

(1). ∏C#,CNAME(σTEACHER=‘程军’(C)) (2). ∏S#,SNAME(σAGE>21∧SEX=”男”(C)) (3). ∏SNAME{s?? [∏S#,C#(sc)÷∏C#(σTEACHER=‘程军’(C))]} (4). ∏C#(C)- ∏C#(σSNAME=‘李强’(S) ?? SC) (5). ∏S#(σ[1]=[4]∧[2]≠[5] (SC × SC))

(6). ∏C#,CNAME(C?? (∏S#,C#(sc)÷∏S#(S))) (7). ∏S#(SC?? ∏C#(σTEACHER=‘程军’(C)))

(8). ∏S#,C#(sc)÷∏C#(σC#=’k1’∨ C#=’k5’(C)) (9). ∏SNAME{s?? [∏S#,C#(sc)÷∏C#(C)]} (10). ∏S#,C#(sc)÷∏C#(σS#=’2’(SC))

(11). ∏S#,SNAME{s?? [∏S#(SC?? σCNAME=‘C语言’(C))]}

12.以图3.18的数据库为例,用关系代数、关系演算语言ALPHA、QBE完成以下检索。

关系模式:仓库(仓库号,城市,面积) 职工(仓库号,职工号,工资)

订购单(职工号,供应商号,订购单号,订购日期) 供应商(供应商号,供应商名称,地址) (1).检索在仓库2工作的职工的工资。 解:

关系代数表示:

∏职工号,工资(σ仓库号=“WH2“(职工)) ALPHA表示:

GET W(职工.职工号,职工.工资):职工.仓库号=”WH2”

QBE表示:

职工 仓库号 WH2 职工号 P.E1 工资 P.1220

(2).检索在上海工作的职工的工资。 解:

关系代数表示:

∏职工号,工资(σ城市=“上海”(仓库)? 职工) ALPHA表示:

RANGE 仓库 X , 职工 G GET W(G.职工号,G.工资):(?X)(G.仓库号=X.仓库号∧X.城市=”上海”)

QBE表示:

职工 仓库号 职工号 工资

仓库 仓库号 WH1 城市 上海 面积 WH1 P.E1 P.1220

(3).检索北京的供应商名称。 解:

关系代数表示:

∏供应商名称(σ地址=“北京“(供应商)) ALPHA表示:

GET W(供应商.供应商名称):供应商.地址=“北京“

QBE表示:

供应商 供应商号 供应商名称 P.607厂 地址 北京

(4).检索目前与职工E6有业务联系的供应商名称。 解:

关系代数表示:

∏供应商名称(σ职工号=“E6“(订购单)??( 供应商) ALPHA表示: RANGE 订购单 D, 供应商 S

GET W(S.供应商名称):( ?D)(D.职工号=”E6”∧D.供应商号=S.供应商号) QBE表示:

供应商 供应商号 供应商名称 地址

订购单 职工号 E6 供应商号 WH1 订购单号 订购日期 WH1 P.607厂

(5).检索所有职工的工资大于1220的仓库所在的城市。 解:

关系代数表示: ∏城市(仓库??( ( ∏仓库号(职工)-∏仓库号(σ工资≤“1220“(职工))))

ALPHA表示: RANGE 职工 Z , 仓库 C GET W(C.城市) : (?Z)(Z.仓库号=C.仓库号∧Z.工资>1220)

QBE表示:

仓库 仓库号 城市 面积 WH1 P.北京

职工 ┐ 仓库号 WH1 职工号 工资 <1220

(6).检索和北京的所有供应商都有业务联系的职工的工资。 解:

关系代数表示:

R=∏供应商号(σ地址=“北京“(供应商)) **北京的供应商号 ∏工资(职工??( ∏职工号,供应商号(订购单)÷R)) ALPHA表示:

RANGE 订购单 D , 供应商 S , 职工 Z GET W(Z.工资):(?S)(?D)(Z.职工号=D. 职工号∧D.供应商号=S. 供应商号∧S.地址=”北京”) QBE表示:

职工 职工号 仓库号 工资

供应商 ALL

订购单 职工号 E1 供应商号 WH4 订购单号 订购日期 供应商号 WH4 供应商名称 地址 北京 E1 P.1220 (7).检索至少和职工E1、E4、E7都有联系的供应商名称。 解:

关系代数表示:

设临时关系R = 职工号 E1

E4

E7

∏供应商名称((∏供应商号,职工号(订购单)÷R)?? 供应商) ALPHA表示:

RANGE 供应商 S , 订购单 D1 , 订购单 D2 ,订购单 D3 GET W(S.供应商名称) : (?D1) (D1.供应商号=S.供应商号∧D1.职工号=”E1”)

(?D2) (D2.供应商号=S.供应商号∧D2.职工号=”E4”) (?D3) (D3.供应商号=S.供应商号∧D3.职工号=”E7”)

QBE表示:

供应商 供应商号 WH1 WH1 WH1

订购单 职工号 E1 E4 E6 供应商号 WH1 WH1 WH1 订购单号 订购日期 供应商名称 P.607厂P.607厂P.607厂 地址

13.用关系代数完成下面各项操作(各个关系模式及关系如后所示)。

供应商(SNO,SNAME,CITY)

零件(PNO,PNAME,COLOR,WEIGHT) 工程(JNO,JNAME,CITY) 供应(SNO,PNO,JNO,QTY)

(1).求供应工程J1零件的单位号码SNO (2).求供应工程J1零件P1的单位号码SNO (3).求供应工程J1零件为红色的单位号码SNO

(4).求没有使用天津供应商的红色零件的工程号JNO

(5).求至少用了单位S1所供应的全部零件的工程号JNO. 解:

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

(2). ∏SNO(σJNO=‘J1’∧ PNO=‘P1’(SPJ)) (3). ∏PNO(σCOLOR=‘红’(P)) ①

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

∏SNO(σJNO=‘J1’(SPJ) ?? ∏PNO(σCOLOR=‘红’(P)))

(4).

? ? ? ?

1) ∏SNO(σCITY=‘天津’(S)) : ①天津供应商号 2) ∏PNO(σCOLOR=‘红’(P)) : ②红色零件号

3) ∏JNO(① ?? SPJ?? ② ) : ③使用了天津供应商红色零件的工程号 4) ∏JNO(J)- ③ : 未使用天津供应商的红色零件的工程号

(5). ∏PNO(σSNO=‘S1’(SPJ)) :S1供应的全部零件号

∏JNO,PNO (SPJ)÷ ∏PNO (σSNO=‘S1’(SPJ)) :至少用了单位S1所供应的全部

零件的工程号JNO

第三部分 关系数据库标准语言SQL

一、单项选择题

1.SQL语言是 的语言,易学习。

A.过程化 B.非过程化 C.格式化 D.导航式 答案:B

2.SQL语言是 语言。 A.层次数据库 B.网络数据库 C.关系数据库 D.非数据库 答案:C

3.SQL语言具有 的功能。 A.关系规范化、数据操纵、数据控制 B.数据定义、数据操纵、数据控制 C.数据定义、关系规范化、数据控制 D.数据定义、关系规范化、数据操纵 答案:B

4.SQL语言的数据操纵语句包括SELECT,INSERT,UPDATE和DELETE等。其中最重要的,也是使用最频繁的语句是 。

A.SELECT B.INSERT C.UPDATE D.DELETE 答案:A

5.SQL语言具有两种使用方式,分别称为交互式SQL和 。 A.提示式SQL B.多用户SQL C.嵌入式SQL D.解释式SQL 答案:C

6.SQL语言中,实现数据检索的语句是 。 A.SELECT B.INSERT C.UPDATE D.DELETE 答案:A

7.下列SQL语句中,修改表结构的是 。 A.ALTER B.CREATE C.UPDATE D.INSERT 答案:A

第8到第11题基于这样的三个表即学生表S、课程表C和学生选课表SC,它们的结构如下:

S(S#,SN,SEX,AGE,DEPT) C(C#,CN)

SC(S#,C#,GRADE)

其中:S#为学号,SN为姓名,SEX为性别,AGE为年龄,DEPT为系别,C#为课程号,CN为课程名,GRADE为成绩。 8.检索所有比“王华”年龄大的学生姓名、年龄和性别。正确的SELECT语句是 。 A.SELECT SN,AGE,SEX FROM S WHERE AGE>(SELECT AGE FROM S WHERE SN=“王华”) B.SELECT SN,AGE,SEX FROM S

WHERE SN=“王华”

C.SELECT SN,AGE,SEX FROM S

WHERE AGE>(SELECT AGE

WHERE SN=“王华”)

D.SELECT SN,AGE,SEX FROM S WHERE AGE>王华.AGE 答案:A 9.检索选修课程“C2”的学生中成绩最高的学生的学号。正确的SELECT语句是 。 A.SELECT S# FORM SC WHERE C#=“C2” AND GRAD>= (SELECT GRADE FORM SC

WHERE C#=“C2”) B.SELECT S# FORM SC

WHERE C#=“C2” AND GRADE IN (SELECT GRADE FORM SC WHERE C#=“C2”) C.SELECT S# FORM SC

WHERE C#=“C2” AND GRADE NOT IN (SELECT GRADE FORM SC WHERE C#=“C2”) D.SELECT S# FORM SC

WHERE C#=“C2” AND GRADE>=ALL (SELECT GRADE FORM SC WHERE C#=“C2”) 答案:D

10.检索学生姓名及其所选修课程的课程号和成绩。正确的SELECT语句是 。 A.SELECT S.SN,SC.C#,SC.GRADE FROM S

WHERE S.S#=SC.S#

B.SELECT S.SN,SC.C#,SC.GRADE FROM SC

WHERE S.S#=SC.GRADE

C.SELECT S.SN,SC.C#,SC.GRADE FROM S,SC

WHERE S.S#=SC.S#

D.SELECT S.SN,SC.C#,SC.GRADE FROM S.SC 答案:C 11.检索选修四门以上课程的学生总成绩(不统计不及格的课程),并要求按总成绩的降序排列出来。正确的SELECT语句是 。

A.SELECT S#,SUM(GRADE)FROM SC WHERE GRADE>=60 GROUP BY S#

ORDER BY 2 DESC

HAVING COUNT(*)>=4 WHERE C#=“C2” AND GRADE>= (SELECT GRADE FORM SC WHERE C#=“C2”) B.SELECT S# FORM SC

WHERE C#=“C2” AND GRADE IN (SELECT GRADE FORM SC WHERE C#=“C2”) C.SELECT S# FORM SC

WHERE C#=“C2” AND GRADE NOT IN (SELECT GRADE FORM SC WHERE C#=“C2”) D.SELECT S# FORM SC

WHERE C#=“C2” AND GRADE>=ALL (SELECT GRADE FORM SC WHERE C#=“C2”) 答案:D

12.假定学生关系是S(S#,SNAME,SEX,AGE),课程关系是C(C#,CNAME,TEACHER),学生

选课关系是SC(S#,C#,GRADE)。

要查找选修“COMPUTER”课程的“女”学生姓名,将涉及到关系 。 A.S B.SC,C C.S,SC D.S,C,SC 答案:D

13.如下面的数据库的表中,若职工表的主关键字是职工号,部门表的主关键字是部门号,SQL操作 不能执行。 A.从职工表中删除行(‘025’,‘王芳’,‘03’,720) B.将行(‘005,’,‘乔兴’,‘04’,750)插入到职工表中 C.将职工号为,‘001’的工资改为700 D.将职工号为,’038’的部门号改为‘03’

答案:B

14.若用如下的SQL语句创建一个student表: CREATE TABLE student(NO C(4) NOT NULL, NAME C(8) NOT NULL, SEX C(2), AGE N(2))

可以插入到student表中的是 。 A.(‘1031’,‘曾华’,男,23) B.(‘1031’,‘曾华’,NULL,NULL) C.(NULL,‘曾华’,‘男’,‘23’) D.(‘1031’,NULL,‘男’,23)

答案:B 二、填空题

1.SQL是 。 答案:结构化查询语言

2.SQL语言的数据定义功能包括 ① 、 ② 、 ③ 和 ④ 。

答案:①定义数据库 ②定义基本表 ③定义视图 ④定义索引 3.视图是一个虚表,它是从 ① 中导出的表。在数据库中,只存放视图的 ② ,不存放视图的 ③ 。

答案:①一个或几个基本表 ②定义 ③视图对应的数据 4.设有如下关系表R、S和T: 以BH,XM,XB,DWH) S(DWH,DWM)

T(BH,XM,XB,DWH)

①实现R∪T的SQL语句是 。

②实现?DWH=‘100’(R)的SQL语句是 。 ③实现∏XM,XB(R)的SQL语句是 。

④实现∏XM,DWH(?XB=‘女’(R))的SQL语句是 。 ⑤实现R?? S的SQL语句是 。 ⑥实现∏XM,XB,DWM(?XB=‘男’(R?? S))的SQL语句是 。 答案:①SELECT * FROM R UNION SELECT * FROM T ②SELECT * FROM R WHERE DWH=‘100’ ③SELECT XM,XB FROM R

④SELECT XM,DWH FROM R WHERE XB=“女”

⑤SELECT R.BH,R.XM,R.XB,R.DWH, S.DWM FROM R,S

WHERE R.DWH=S.DWH

⑥SELECT R.XM,R.XB,S.DWM FROM R,S

WHERE R.DWH=S.DWH AND R.XB=“男”

5.设有如下关系表R:

R(No,NAME,SEX,AGE,CLASS) 主关键字是NO

其中NO为学号,NAME为姓名,SEX为性别,AGE为年龄,CLASS为班号。 写出实现下列功能的SQL语句。 ①插入一个记录(25,“李明”,“男”,21,“95031”); 。

②插入“95031”班学号为30、姓名为“郑和”的学生记录; 。 ③将学号为10的学生姓名改为“王华”; 。 ④将所有“95101”班号改为“95091”; 。 ⑤删除学号为20的学生记录; 。 ⑥删除姓“王”的学生记录; 。

答案:

①INSERT INTO R VALUES(25,“李明”,“男”,21,“95031”) ②INSERT INTO R(NO,NAME,CLASS) VALUES(30,“郑和”,“95031”) ③UPDATE R SET NAME=“王华”WHERE NO=10

④UPDATE R SET CLASS=“95091”WHERE CLASS=“95101” ⑤DELETE FROM R WHERE NO=20

⑥DELETE FROMR WHERE NAME LIKE“王%” 三.简述与应用题

1.叙述SQL语言支持的三级逻辑结构。

答:SQL语言支持的三级逻辑结构略。

在概念层,对应概念模式的概念记录型的基本表。基本表是这样的一种表,它本身实际存在,在Visual FoxPro中每个表在存储中可用一个存储文件来表示;在ORACLE中,同一个数据库的多个表存储在一个文件中。一个基本表就是一个关系,它不是由其他表导出的表。基本表是使用CREATE TABLE语句建立的。 在外层(用户层),用户所看到的可以是基本表,也可以是视图。视图是一个虚拟表,它是由一个或几个基本表或其他视图导出的表,它不是直接存在于物理存储器上的表。视图是使用CREATE VIEW语句建立的。在内层(物理层),每个基本表用一个存储文件来表示,即用一组类型相同的存储记录值来表示。DBA可以对物理存储文件进行操作。

2.叙述使用SQL语言实现各种关系运算的方法。

答: SQL语言没有提供关系的笛卡尔积、交和差运算。其他关系运算对应的SQL语句格式是:

R∪S SELECT语句(生成R) UNION

SELECT语句(生成S) 选择 SELECT*

FROM <表>

WHERE <指定选择的条件> 投影 SELECT <投影字段列表> FROM <表>

连接 SELECT <连接的字段列表> FROM <连接的两个表名> WHERE <连接条件>

3.设有如下所示的三个关系,并假定这三个关系框架组成的数据模型就是用户子模式。 其中各个属性的含义如下:A#(商店代号)、ANAME(商店名)、WQTY(店员人数)、CITY(所在城

市)、B#(商品号)、BNAME(商品名称)、PRICE(价格)、QTY(商品数量)。 试用SQL语言写出下列查询,并给出执行结果:

(1).找出店员人数不超过100人或者在长沙市的所有商店的代号和商店名。

SELECT A#,ANAME FROM A;

WHERE WQTY<=100 OR CITY=“长沙” (2).找出供应书包的商店名。

SELECT A.ANAME FROM A,B,AB;

WHERE A.A#=AB.A# AND B.B#=AB.B# AND B.BNAME=“书包”

(3).找出至少供应代号为256的商店所供应的全部商品的商店名和所在城市。

SELECT A.ANAME,A.CITY FROM A,B;

WHERE A.A#=AB.A# AND AB.B# IN

(SELECT AB.B#; FROM AB

WHERE A#=“256”)

A A# ANAME WQTY CITY 101 百货商店 204 长安商场 256 西单商场 345 铁道商店 620 太平洋百货 B# 1 2 3 4

A# 101 101 101 101 204 256 256 345 345 345 620

AB B# QTY 1 2 3 4 3 1 2 1 2 4 4 105 42 25 104 61 241 91 141 18 74 125 BNAME 钢笔 羽毛球 复读机 书包 15 89 500 76 412 B PRICE 21 5 300 76 长沙 北京 北京 长沙 上海

4.设有图书登记表TS,具有属性:BNO(图书编号),BC(图书类别),BNA(书名),AU(著者),PUB(出版社)。按下列要求用SQL语言进行设计: (1).按图书馆编号BNO建立TS表的索引ITS。 (2).查询,按出版社统计其出版图书总数。 (3).删除索引ITS。 解:

(1). USE TS

INDEX ON BNO TO ITS (2). SELECT PUB,COUNT(BNO) FROM TS

GROUP BY PUB

(3). DELETE FILE ITS.IDX

5.己知三个关系R(A,B,C)、S(A,D,E)和T(D,F),其中,名称相同的属性为关联属性,C、E为数值型属性。

试用SQL语句实现如下操作:

(1).将R、S和T三个关系按关联属性建立一个视图R-S-T; (2).对视图R-S-T按属性A分组后,求属性C和E的平均值。 解:

(1).CREATE VIEW R-S-T

AS SELECT R.A,B,C,S.D,E,F FROM R,S,T

WHERE R.A=S.A AND S.D=T.D (2).SELECT AVG(C),AVG(E) FROM R-S-T GROUP BY A

6.设有关系R(A,B)和S(A,C),A为相同属性。 试用SQL语句实现:

(1).查询属性C>50时,R中相关联的属性B之值。

(2).当属性C=40时,将R中与之相关连的属性B值修改为b4。 解:

(1).SELECT B FROM R,S

WHERE R.A=S.A AND C>50 (2).UPDATE R

SET B=‘b4’ WHERE A IN (SELECT A FROM S

WHERE C=40)

7.已知R(A,B,C)和S(C,D,E)两个关系,如下图所示。 执行如下SQL语句:

(1).CREATE VIEW H(A,BC,C,D,E) AS SELECT A,B,R.C,D,E FROM R,S

WHERE R.C=S.C; (2).SELECT B,D,E FROM H

WHERE C=‘C2’ 试给出: (1).视图H;

(2).对视图H的查询结果。

R S

A B C C D E

a1 b1 c1 c1 d1 e1

a2 b2 c2 c2 d2 e2

a3 b3 c3 c3 d3 e3

解: 本题的结果如图所示。 视图H 对H的查询结果 A B C D E B D E a1 b1 c1 d1 e1 b1 d2 e2 a2 b2 c2 d2 e2 b2 d2 e2 a3 b3 c3 d3 e3

8.已知关系R如图所示。 A B C 97 b1 84 97 b2 92

97 b3 98

98 b1 72

98 b2 84

98 b3 95

99 b1 88 99 b2 94 试用SQL语句实现下列操作: (1).按属性A分组,求出每组中在属性C上的最大值和最小值,且将它们置于视图RVE中。 (2).在视图RVE中查询属性A=‘98’的记录。 解:

(1).CREATE VIEW RVE(A,CMAX,CMIN) AS SELECT A,MAX(C),MIN(C) FROMR

GROUP BY A; (2).SELECT * FROM RVE

WHERE A=‘98’

9.已知学生表S和学生选课表SC。其关系模式如下: S(SNo,SN,SD,PROV) SC(SNO,CN,GR)

其中,SNO为学号,SN为姓名,SD为系名,PROV为省区,CN为课程名,GR为分数。 试用SQL语言实现下列操作:

(1).查询“信息系”的学生来自哪些省区。

(2).按分数降序排序,输出“英语系”学生选修了“计算机”课程的学生的姓名和分数。

解:

(1).SELECT DISTINCT PROV FROM S

WHERE SD=“信息系” (2).SELECT SN,GR FROM S,SC

WHERE SD=“英语系”AND CN=“计算机”AND S.SNO=SC.SNO ORDER BY GR DESC;

10.设有学生表S(SNO,SN)(SNO为学号,SN为姓名)和学生选课表SC(SNO,CNO,CN,G) (CNO为课程号,CN为课程名,G为成绩),试用SQL语言完成以下各题: (1).建立一个视图V-SSC(SN,SN,CN,CN,G),并按CNO升序排序; (2).从视图V-SSC上查询平均成绩在90分以上的SN、CN和G。 解:

(1).CREATE VIEW V-SSC(SNO,SN,CNO,CN,G) AS SELECT S.SNO, S.SN,CNO,SC.CN,SC.G FROM S,SC

WHERE S.SNO=SC.SNO ORDER BY CNO (2).SELECT SN,CN,G FROM V-SSC GROUP BY SNO

HAVING AVG(G)>90

11.设有关系模式:

SB(SN,SNAME,CITY) 其中,S表示供应商,SN为供应商代号,SNAME为供应商名字,CITY为供应商所在城市,主关键字为SN。

PB(PN,PNAME,COLOR,WEIGHT)

其中P表示零件,PN为零件代号,PNAME为零件名字,COLOR为零件颜色,WEIGHT为零件重量,主关键字为PN。 JB(JN,JNAME, CITY)

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

SPJB(SN,PN,JN,QTY)

其中,SPJ表示供应关系,SN是为指定工程提供零件的供应商代号,PN为所提供的零件代号,JN为工程编号,QTY表示提供的零件数量,主关键字为(SN,PN,JN),外部关键字为SN,PN,JN。

写出实现以下各题功能的SQL语句:

(1).取出所有工程的全部细节;

SELECT * FROM JB

(2).取出所在城市为上海的所有工程的全部细节;

SELECT * FROM JB

WHERE CITY=“上海”

(3).取出重量最轻的零件代号;

SELECT PN FROM PB

WHERE WEIGHT=

(SELECT MIN(WEIGHT) FROM PB)

(4).取出为工程J1提供零件的供应商代号;

SELECT SN FROM SPJB

WHERE JN=“J1”

(5).取出为工程J1提供零件P1的供应商代号;

SELECT SN FROM SPJB;

WHERE JN=‘Jl’AND PN=‘Pl’

(6).取出由供应商S1提供零件的工程名称;

SELECT JB.JNAME FROM JB,SPJB

WHERE JB.JN=SPJB.JN AND SPJB.SN=‘S1’ (7).取出供应商S1提供的零件的颜色;

SELECT DISTINCT PB.COLOR FROM PB,SPJB

WHERE PB.PN=SPJB.PN AND SPJB.SN=‘S1’ (8).取出为工程J1或J2提供零件的供应商代号;

SELECT DISTINCT SN FROM SPJB

WHERE JN=‘J1’OR JN=‘J2’

(9).取出为工程J1提供红色零件的供应商代号;

SELECT DISTINCT SPJB.SN FROM SPJB,PB

WHERE PB.PN=SPJB.PN AND SPJB.JN=‘J1’AND PB.COLOR=‘红’

(10).取出为所在城市为上海的工程提供零件的供应商代号;

SELECT DISTINCT SPJB.SN FROM SPJB, JB

WHERE SPJB.JN=JB.JN AND JB.CITY‘上海’

(11).取出为所在城市为上海或北京的工程提供红色零件的供应商代号;

SELECT SPJB.SN FROM PB,JB SPJB WHERE SPJB.PN=PB.PN AND JB.JN=SPJB.JN AND PB.COLOR=’红’ AND JB.CITY=’上海’ (12).取出供应商与工程所在城市相同的供应商提供的零件代号;

SELECT DISTINCT SPJB.PN FROM SB,JB,SPJB

WHERE SB.SN=SPJB.SN AND JB.JN=SPJB.JN AND SB.CITY=JB.CITY (13).取出上海的供应商提供给上海的任一工程的零件的代号;

SELECT SPJB.PN FROM SB,JB,SPJB

WHERE SB.SN=SPJB.SN AND JB.JN=SPJB.JN AND SB.CITY=’上海’ (14).取出至少由一个和工程不在同一城市的供应商提供零件的工程代号;

SELECT DISTINCT SPJB.JN FROM SB,JB,SPJB

WHERE SB.SN=SPJB.SN AND JB.JN=SPJB.JN AND SB.CITY<>JB.CITY (15).取出上海供应商不提供任何零件的工程的代号;

SELECT DISTINCT JN FROM SPJB

WHERE JN NOT IN (SELECT DISTINCT SPJB.JN

FROM SB,SPJB

WHERE SB.SN=SPJB.SN AND SB.CITY=’上海’)

(16).取出这样一些供应商代号,它们能够提供至少一种由红色零件的供应商提供的零件;

SELECT DISTINCT SPJB.SN FROM PB,SPJB

WHERE SPJB.PN IN (SELECT SPJB.PN

FROM SPJB,SB,PB

WHERE SB.SN=SPJB.SN AND PB.PN=SPJB.PN AND PB.COLOR=’红’) (17).取出由供应商S1提供零件的工程的代号;

SELECT DISTINCT SPJB.JN FROM SB,PB,SPJB

WHERE SB.SN=SPJB.SN AND PB.PN=SPJB.PN AND SB.SN=’S1’

(18).取出所有这样的一些〈CITY,CITY〉二元组,使得第1个城市的供应商为第2个 城市的工程提供零件;

SELECT DISTINCT SB.CITY, JB.CITY FROM SB,JB,SPJB

WHERE SB.SN=SPJB.SN AND JB.JN=SPJB.JN

(19).取出所有这样的三元组〈CITY,PN CITY〉,使得第1个城市的供应商为第2个城市的工程提供指定的零件;

SELECT DISTINCT SB.CITY, SPJB.PN, JB.CITY FROM SB,JB,SPJB

WHERE SB.SN=SPJB.SN AND JB.JN=SPJB.JN

(20).重复(19)题,但不检索两个CITY值相同的三元组。

SELECT DISTINCT SB.CITY, SPJB.PN, JB.CITY FROM SB, JB, SPJB

WHERE SB.SN=SPJB.SN AND JB.JN=SPJB.JN AND SB.CITY<>JB.CITY 12.以下面的数据库为例,用SQL完成以下检索。关系模式如下:

仓库(仓库号,城市,面积)←→ WAREHOUSE(WMNO,CITY,SIZE) 职工(仓库号,职工号,工资)←→ EMPLOYEE(WHNO,ENO,SALARY)

订购单(职工号,供应商号,订购单号,订购日期)←→ ORDER(SNO,SNO,ONO,DATE) 供应商(供应商号,供应商名,地址)←→ SUPPLIER(SNO,SNAME,ADDR) (1).检索在北京的供应商的名称。

SELECT SNAME FROM SUPPLIER WHERE ADDR=“北京”;

(2).检索发给供应商S6的订购单号。

SELECT ONO FROM ORDER WHERE SNO=“S6”;

(3).检索出职工E6发给供应商S6的订购单号。

SELECT ONO

FROM ORDER

WHERE SNO=“S6” AND ENO=“E6”;

(4).检索出向供应商S3发过订购单的职工的职工号和仓库号。

SELECT ENO,WHNO FROM EMPLOYEE WHERE ENO IN

(SELECT ENO FROM ORDER WHERE SNO=“S3”);

或:SELECT ENO,WHNO

FROM EMPLOYEE,ORDER

WHERE EMPLOYEE.ENO=ORDER.ENO AND ORDER.SNO=“S3”;

(5).检索出目前与S3供应商没有联系的职工信息。

SELECT ENO,WHNO FROM EMPLOYEE WHERE ENO NOT IN

(SELECT ENO

FROM ORDER WHERE SNO=“S3”);

(6).检索出目前没有任何订购单的供应商信息。

SELECT *

FROM SUPPLIER

WHERE SNO NOT IN

(SELECT SNO FROM ORDER);

(7).检索出和职工E1、E3都有联系的北京的供应商信息。

SELECT * FROM SUPPLIER

WHERE ADDR=“北京” AND

(EXISTS (SELECT * FROM ORDER WHERE SNO=SUPPIER.SNO AND ENO=“E3”)) AND (EXISTS (SELECT * FROM ORDER WHERE SNO=SUPPIER.SNO AND ENO=“E6”)); (8).检索出目前和华通电子公司有业务联系的每个职工的工资。 SELECT ENO,SALARY FROM EMPLOYEE WHERE ENO IN

(SELECT ENO FROM ORDER WHERE SNO IN

(SELECT SNO FROM SUPPLIER WHERE ADDR=“华通电子公司”));

或:SELECT ENO,SALARY

FROM EMPLOYEE,ORDER,SUPPLIER

WHERE EMPLOYEE.ENO=ORDER.ENO AND ORDER.SNO=SUPPLIER.SNO AND SUPPLIER.ADDR=“华通电子公司”;

(9).检索出与工资在1220元以下的职工没有联系的供应商的名称。

SELECT SNAME FROM SUPPLIER WHERE SNO NOT IN

(SELECT SNO FROM ORDER WHERE ENO IN

(SELECT ENO FROM EMPLOYEE WHERE SALARY<1220));

(10).检索出向S4供应商发出订购单的仓库所在的城市。

SELECT CITY FROM WAREHOUSE

WHERE WHNO IN (SELECT WHNO FROM EMPLOYEE

WHERE ENO IN (SELECT ENO FROM ORDER WHERE SNO=“S4”)); 或:SELECT CITY

FROM WAREHOUSE,EMPLOYEE,ORDER WHERE WAREHOUSE.WHNO=EMPLOYEE.WHNO

AND EMPLOYEE.ENO=ORDER.ENO AND ORDER.SNO=“S4”;

(11).检索出在上海工作并且向S6供应商发出了订购单的职工号。

SELECT ENO FROM EMPLOYEE

WHERE WHNO IN

(SELECT WHNO FROM WAREHOUSE WHERE CITY=“上海”)

AND (ENO IN SELECT ENO FROM ORDER WHERE SNO=“S6”);

或:SELECT ENO

FROM EMPLOYEE,WAREHOUSE,ORDER WHERE EMPLOYEE.WHNO=WREHOUSE.WHNO AND WREHOUSE.CITY=“上海”

AND EMPLOYEE.ENO=ORDER.ENO AND ORDER.SNO=“S6”;

(12).检索出在广州工作并且只向S6供应商发出了订购单的职工号。

SELECT ENO FROM EMPLOYEE

WHERE (WHNO IN SELECT WHNO FROM WAREHOUSE WHERE CITY=“广州”)

AND (ENO IN SELECT ENO FROM ORDER WHERE SNO=“S6”) AND (NOT EXISTS (SELECT * FROM ORDER

WHERE SNO<>“S6” AND ENO=EMPLOYEE.ENO));

(13).检索出由工资多于1230元的职工向北京的供应商发出的订购单号。

SELECT ONO

FROM ORDER

WHERE (ENO IN SELECT ENO FROM EMPLOYEE WHERE SALARY>1230) AND (SNO IN SELECT SNO FROM SUPPLIER WHERE ADDR=“北京” ); 或:SELECT ONO

FROM ORDER,EMPLOYEE,SUPPLIER

WHERE ORDER.ENO= EMPLOYEE.ENO AND EMPLOYEE.SALARY>1230

AND ORDER.SNO= SUPPLIER.SNO AND SUPPLIER. ADDR=“北京”;

(14).检索出仓库的个数。

SELECT COUNT(*) FROM WAREHOUSE; (15).检索出有最大面积的仓库信息。

SELECT *

FROM WAREHOUSE OUTER

WHERE OUTER.SIZE=(SELECT MAX(SIZE) FROM WAREHOUSE INNER); (16).检索出所有仓库的平均面积。

SELECT AVG(SIZE) FROM WAREHOUSE;

(17).检索出向S4供应商发出订购单的那些仓库的平均面积。

SELECT AVG(SIZE)

FROM WAREHOUSE

WHERE WHNO IN (SELECT WHNO FROM EMPLOYEE

WHERE ENO IN (SELECT ENO FROM ORDER WHERE SNO=“S4”));

(18).检索出每个城市的供应商个数。

SELECT CITY,COUNT(SNO) FROM SUPPLIER GROUP BY CITY;

(19).检索出每个仓库中工资多于1220元的职工个数。

SELECT WHNO,COUNT(ENO) FROM EMPLOYEE

WHERE SALARY>1220 GROUP BY WHNO;

或:SELECT WHNO,COUNT(ENO)

FROM EMPLOYEE

GROUP BY WHNO

HAVING SALARY>1220;

(20).检索出和面积最小的仓库有联系的供应商的个数。

SELECT COUNT(DISTINCT SNO) FROM ORDER WHERE ENO IN

SELECT ENO FROM EMPLOYEE

WHERE WHNO IN

SELECT WHNO FROM WAREHOUSE OUTER

WHERE OUTER.SIZE=SELECT MIN(SIZE)

FROM WAREHOUSE INNER;

(21).检索出工资低于本仓库平均工资的职工信息。

SELECT * FROM EMPLOYEE OUTER

WHERE OUTER.SALARY<(SELECT AVG(SALARY) FROM EMPLOYEE INNER WHERE INNER.WHNO=OUTER.WHNO GROUP BY WHNO);

13.以下面的数据库为例,用SQL完成以下更新操作。关系模式如下:

仓库(仓库号,城市,面积)←→ WAREHOUSE(WMNO,CITY,SIZE)

职工(仓库号,职工号,工资)←→ EMPLOYEE(WHNO,ENO,SALARY)

订购单(职工号,供应商号,订购单号,订购日期)←→ ORDER(SNO,SNO,ONO,DATE) 供应商(供应商号,供应商名,地址)←→ SUPPLIER(SNO,SNAME,ADDR) (1).插入一个新的供应商元组(S9,智通公司,沈阳)。

INSERT INTO SUPPLIER VALUES(S9,智通公司,沈阳); (2).删除目前没有任何订购单的供应商。

DELETE FROM SUPPLIER

WHERE NOT EXISTS (SELECT * FROM ORDER WHERE ORDER.SNO=SUPPLIER.SNO);

或:DELETE FROM SUPPLIER

WHERE SNO NOT IN (SELECT SNO FROM ORDER); (3).删除由在上海仓库工作的职工发出的所有订购单。

DELETE FROM ORDER

WHERE ENO IN (SELECT ENO FROM EMPLOYEE

WHERE WHNO IN {SELECT WHNO FROM WAREHOUSE WHERE CITY=“上海”}};

(4).北京的所有仓库增加100m2的面积。

UPDATE WAREHOUSE

SET SIZE=SIZE+100 WHERE CITY=“北京”;

(5).给低于所有职工平均工资的职工提高5%的工资。

UPDATE EMPLOYEE OUTER

SET OUTER.SALARY=OUTER.SALARY*1.05

WHERE OUTER.SALARY