




文档简介
1 数据库系统概论(第四版)习题答案 第一章 绪 论 习题解答和解析 1试述数据、数据库、数据库管理系统、数据库系统的概念。 答:关于数据的概念: 描述事物的符号记录称为数据。描述事物的符号既可以是数字,也可以是文 字、图形、图像、声音、流数据、HTML、XML 等,数据的种类非常丰富。数 据与其语义是不可分的。 解析: 在现代计算机系统中,数据的概念是广义的。早期的计算机系统主要用于科 学计算,所处理的数据是整数、实数等传统数学中的数据。现代计算机系统所能 存储和处理的对象十分广泛,表示这些对象的数据也越来越复杂。 数据与其语义是不可分的。数字 500 可以表示一件物品的价格是 500 元,也 可以表示一个学术会议的参加人数有 500 人,还可以表示一袋奶粉重 500g。 数据库技术是管理数据的技术。数据是数据库管理的基本对象。因此首先要 知道什么是数据,知道数据的多种形式。 答:关于数据库的概念: 数据库是长期存储在计算机内、有组织的、可共享的数据集合。数据库中的 数据按照一定的数据模型组织、描述和存储,具有较小的冗余度、较高的数据独 立性和易扩展性,并可为各种用户共享。 解析: (1)简单地讲,数据库的数据具有永久存储、有组织和可共享 3 个特点。 (2)数据模型是数据库的核心概念。每个数据库中的数据都是按照某种数 据模型来组织的。 答:关于数据库管理系统的概念: 数据库管理系统(database management system, DBMS)是位于用户与操作 系统之间的一层数据管理软件,用于科学地组织和存储数据、高效地获取和维护 数据。DBMS 的主要功能包括数据定义功能、数据操纵功能、数据库的运行管理 功能、数据库的建立与维护功能。 解析: DBMS 是一个大型、复杂的软件系统,是计算机中的基础软件。目前,专门 研制 DBMS 的厂商及其所研制的 DBMS 产品有很多。 比较著名的有美国 IBM 公 司的 DB2 关系数据库管理系统、IMS 层次数据库管理系统;美国 Oracle 公司的 Oracle 关系数据库管理系统;SYBASE 公司的 SYBASE 关系数据库管理系统; 美国微软公司的 SQL Server 关系数据库管理系统等。 主要的国产数据库管理系统有:北京人大金仓公司的金仓数据库系统 KingbaseES;武汉达梦公司的达梦数据库系统;神软公司的 OSCAR;东软公司 的 OpenBASE 等。 2 答:关于数据库系统的概念: 数据库系统(database system, DBS)是指在计算机系统中引入数据库后的系 统构成。数据库系统由数据库、数据库管理系统(及其开发工具) 、应用系统、 数据库管理员构成。 解析: 数据库系统和数据库是两个不同的概念。 数据库系统是人机系统,数据库是数据库系统的一个组成部分。 但是在日常工作中,人们常常把数据库系统简称为数据库。希望读者能够从 人们的言论或文章的上下文中区分“数据库系统”和“数据库” ,不要引起混淆。 2使用数据库系统有什么好处? 答:使用数据库系统的好处有很多,主要是:可以大大提高应用系统的开发 效率, 方便用户的使用, 减轻数据库系统管理人员维护数据库系统的负担, 等等。 使用数据库系统的好处是由数据库管理系统的特点和优点决定的。 解析: (1)使用数据库系统可以大大提高应用系统的开发效率。因为在数据库系 统中应用程序不必考虑数据的定义、存储和数据存取的具体路径,这些工作都由 DBMS 来完成。用一个通俗的比喻,使用 DBMS 就如有了一个好参谋、好助手, 许多具体的技术工作都由这个助手来完成。开发人员可以专注于用户需求的理 解,应用逻辑的设计,而不必为管理数据的许多复杂的细节烦扰。 (2)当应用逻辑发生改变,数据的逻辑结构需要改变时,数据库系统提供 了数据与程序之间的独立性。数据逻辑结构的改变是 DBA 的责任,开发人员不 必修改应用程序,或者只需修改很少的应用程序。既简化了应用程序的编制,又 大大减少了应用程序的维护和修改。 (3)使用数据库系统可以减轻数据库系统管理人员维护系统的负担。因为 DBMS 在数据库建立、 运用和维护时对数据库进行统一的管理和控制, 包括数据 的完整性和安全性、多用户并发控制、故障恢复等都由 DBMS 执行。 总之, 使用数据库系统的优点很多, 既便于数据的集中管理, 控制数据冗余, 提高数据的利用率和一致性,又有利于应用程序的开发和维护。读者可以在今后 的学习和工作中结合具体应用,认真加以体会和总结。 为什么有这些好处,可以结合第 5 题“试述数据库系统的特点”来回答。 3试述文件系统与数据库系统之间的区别和联系。 答:文件系统与数据库系统之间的区别: 文件系统面向某一应用程序,共享性差、冗余度大、独立性差,记录内有结 构、整体无结构,应用程序自行控制。 数据库系统面向现实世界,共享性高、冗余度小,具有高度的物理独立性和 一定的逻辑独立性,整体结构化,用数据模型描述,由数据库管理系统提供数据 安全性、完整性、并发控制和恢复能力。 读者可以参考概论一书中表 1.1 的有关内容。 答:文件系统与数据库系统之间的联系: 文件系统与数据库系统都是计算机系统中管理数据的软件。 解析: 文件系统是操作系统的重要组成部分, 而 DBMS 是独立于操作系统的软件。 一般不能独立购买一个文件系统,但需要独立购买 DBMS 软件产品。而 DBMS 是在操作系统的基础上实现的, 数据库中数据的组织和存储是通过操作系统中的 3 文件系统来实现的。 因此, DBMS 的实现与操作系统中的文件系统是紧密相关的。 例如,数据库实现的基础是文件,对数据库的任何操作最终要转化为对文件的操 作。所以在 DBMS 实现中,数据库物理组织的基本问题是如何利用或如何选择 操作系统所提供的基本的文件组织方法。这里不再具体展开。读者可以参考概 论一书第十二章“数据库管理系统”中的有关内容,第十二章是 DBMS 实现 技术概述。有兴趣的读者还可以进一步学习数据库管理系统实现的有关课程。 4举出适合用文件系统而不是数据库系统的应用例子;再举出适合用数据 库系统的应用例子。 答: (1)适用于文件系统而不是数据库系统的应用例子: 数据的备份, 软件或应用程序使用过程中的临时数据存储一般使用文件系统 比较合适。功能比较简单、比较固定的应用系统也适合用文件系统。 (2)适用于数据库系统而非文件系统的应用例子: 目前,几乎所有企业或部门的信息系统都以数据库系统为基础,都使用数据 库。例如,一个工厂的管理信息系统会包括许多子系统,如库存管理系统、物资 采购系统、作业调度系统、设备管理系统、人事管理系统等。另外,学校的学生 管理系统、人事管理系统及图书馆的图书管理系统等都适合用数据库系统。 因此,数据库系统已经成为信息系统的基础和核心。 5试述数据库系统的特点。 答:数据库系统的主要特点如下所示: (1)数据结构化 数据库系统实现整体数据的结构化,这是数据库的主要特征之一,也是数据 库系统与文件系统的本质区别。 解析: 注意“整体”两个字。在数据库系统中,数据不再仅仅针对某一个应用,而 是面向全组织,可以支持许多应用;不仅数据的内部是结构化的,而且整体也是 结构化的,数据之间具有某种联系。数据的存取单位即一次可存取数据的大小也 很灵活,既可以小到某一个数据项(如一个学生的姓名) ,也可以大到一组记录 (成千上万个学生记录) 。而在文件系统中,数据的存取单位只有一个:记录, 如一个学生的完整记录。 (2)数据的共享性高,冗余度低,易扩充 数据库的数据不再面向某个应用, 而是面向整个系统, 因此可以被多个用户、 多个应用、由多种不同的语言共享使用。由于数据面向整个系统,是有结构的数 据,不仅可以被多个应用共享使用,而且容易增加新的应用,这就使得数据库系 统易于扩充,这称为弹性大。 解析: 数据共享可以大大减少数据冗余,节约存储空间,同时还能避免数据之间的 不相容性与不一致性。 所谓“数据面向某个应用”是指数据结构是针对某个应用而设计的,只被这 个应用程序或应用系统使用。可以说数据是某个应用的“私有资源” 。 所谓“弹性大”是指系统易扩充且易收缩,即应用增加或减少时不必修改整 个数据库的结构,或者只需做很少的修改。 可以取整体数据的各种子集用于不同的应用系统,当应用需求改变或增加 时,只要重新选取不同的子集或加上一部分数据便可满足新的需求。 4 (3)数据独立性高 数据独立性包括数据的物理独立性和数据的逻辑独立性。 数据库管理系统的模式结构和二级映像功能保证数据库中的数据具有很高 的物理独立性和逻辑独立性。 解析: 所谓“独立性”即相互不依赖。数据独立性是指数据和程序相互不依赖,即 数据的逻辑结构或物理结构如果改变,程序不会跟着改变。数据与程序相互独立 把数据的定义从程序中分离出去,加上数据的存取由 DBMS 负责,简化了应用 程序的编制,大大减少了应用程序的修改和维护。 (4)数据由 DBMS 统一管理和控制 数据库的共享是并发共享,即多个用户可以同时存取数据库中的数据,甚至 可以同时存取数据库中的同一个数据。 为此, DBMS 必须提供统一的数据控制功 能,包括数据的安全性保护、数据的完整性检查、并发控制和数据库恢复。 解析: DBMS 数据控制功能包括以下 4 个方面: 数据的安全性保护:保护数据以防止不合法的使用造成数据泄密和破坏。 数据的完整性检查:将数据控制在有效的范围内或保证数据之间满足一定的 关系、一定的约束条件。 并发控制:对多用户的并发操作加以控制和协调,保证并发操作的正确性。 数据库恢复:当计算机系统发生硬件故障、软件故障,或者由于操作员的失 误及故意破坏而影响数据库中数据的正确性, 甚至造成数据库的部分或全部数据 丢失时,能将数据库从错误状态恢复到某一已知的正确状态,也称为完整状态或 一致状态。 由此可以得到“什么是数据库”的一个定义: 数据库是长期存储在计算机内且有组织的、大量的、共享的数据集合,它可 以供各种用户共享, 具有最小冗余度和较高的数据独立性。 DBMS 在数据库建立、 运用和维护时对数据库进行统一控制,以保证数据的完整性、安全性,并在多用 户同时使用数据库时进行并发控制,在发生故障后对系统进行恢复。 数据库系统的出现使信息系统从以加工数据的程序为中心转向以围绕共享 数据库为中心的新阶段。 6数据库管理系统的主要功能有哪些? 答: (1)数据库定义功能; (2)数据组织、存储和管理功能; (3)数据操纵功能; (4)数据库的事务管理和运行管理; (5)数据库的建立和维护功能; (6)其他功能,例如,不同数据库之间的互访和互操作功能等。 7试述数据模型的概念、数据模型的作用和数据模型的 3 个要素。 答:数据模型是数据库中用来对现实世界进行抽象的工具,是数据库中用于 提供信息表示和操作手段的形式构架。 一般来讲,数据模型是严格定义的概念的集合。这些概念精确地描述系统的 静态特性、动态特性和完整性约束条件。因此数据模型通常由数据结构、数据操 作和完整性约束 3 部分组成。 5 (1)数据结构:数据结构是所研究的对象类型的集合,是对系统静态特性 的描述。 (2)数据操作:数据操作是指对数据库中各种对象(型)的实例(值)所 允许进行的操作的集合, 包括操作及有关的操作规则, 是对系统动态特性的描述。 (3)数据的约束条件:数据的约束条件是完整性规则的集合。完整性规则 是给定的数据模型中数据及其联系所具有的制约和依存规则, 用以限定符合数据 模型的数据库状态及其变化,以保证数据的正确、有效、相容。 解析: 数据模型是数据库系统中最重要的概念之一。读者必须通过概论的学习 真正掌握数据模型的概念和作用。 数据模型是数据库系统的基础。任何一个 DBMS 都以某个数据模型为基础, 或者说支持某个数据模型。 数据库系统中的模型有不同的层次。根据模型应用的不同目的,可以将模型 分成两类或者两个层次:一个是概念模型,是按照用户的观点来对数据和信息建 模,用于信息世界的建模,强调语义表达能力,概念简单、清晰;另一个是数据 模型, 是按照计算机系统的观点对数据建模, 用于机器世界, 人们可以用它定义、 操纵数据库中的数据。 一般需要有严格的形式化定义和一组严格定义了语法和语 义的语言,并有一定的规则和限制,便于在计算机上实现。 8试述概念模型的作用。 答:概念模型实际上是现实世界到机器世界的一个中间层次。概念模型用于 信息世界的建模,是现实世界到信息世界的第一层抽象,是数据库设计人员进行 数据库设计的有力工具,也是数据库设计人员和用户之间进行交流所使用的语 言。 9定义并解释概念模型中以下术语: 实体,实体型,实体集,属性,码,实体联系图(E-R 图) 答: 实体:客观存在并可相互区分的事物称为实体。 实体型:具有相同属性的实体具有相同的特征和性质,用实体名及其属性名 集合来抽象和刻画同类实体,称为实体型。 实体集:同型实体的集合称为实体集。 属性:是实体所具有的某一特性。一个实体可由若干属性来刻画。 码:唯一标识实体的属性集称为码。 实体联系图:实体联系图(E-R 图)提供了表示实体型、属性和联系的 方法。 实体型:用矩形表示,矩形框内写明实体名。 属性:用椭圆形表示,并用无向边将其与相应的实体连接起来。 联系:用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连 接起来,同时在无向边旁标上联系的类型(1:1,1:n 或 m:n) 。 10试给出 3 个实际情况的 E-R 图,要求实体型之间具有一对一、一对多、 多对多各种不同的联系。 答: 6 一对一联系 一对多联系 多对多联系 解析: 部门和总经理是两个实体。一个部门或者一个公司只有一个总经理,一个总 经理只在一个公司工作,不能兼任两个以上公司的总经理,所以部门和总经理两 个实体之间是一对一的联系。 一个科研项目可以由多位教师和多名学生承担。可以规定一位教师只能参加 一个项目,一名学生也只能参加一个项目。按照这样的语义,科研项目和教师、 学生三者之间是一对多的联系。 如果一门课程可以由多位教师讲授,一个教师可以讲授多门课程,则课程实 体和教师实体之间是多对多的联系。 11试给出一个实际情况的 E-R 图,要求有 3 个实体型,而且 3 个实体型之 间有多对多联系。3 个实体型之间的多对多联系和 3 个实体型两两之间的 3 个多 对多联系等价吗?为什么? 答: 3 个实体型之间的多对多联系和 3 个实体型两两之间的 3 个多对多联系是不 等价的,因为它们拥有不同的语义。 12 学校中有若干系, 每个系有若干班级和教研室, 每个教研室有若干教师, 其中有的教授和副教授每人各带若干研究生,每个班有若干学生,每个学生选修 若干课程,每门课程可由若干学生选修。请用 E-R 图画出此学校的概念模型。 答: 7 解析: 在画 E-R 图时, 读者可以按照习题中对问题的描述逐步画出每一句话中所涉 及的实体,再根据实际语义,画出实体之间的联系。例如,每个教研室有若干教 师,每个班级有若干学生,可以画出教研室和教师,班级和学生之间一对多的联 系,从“有的教授和副教授每人各带若干研究生”可知,一名研究生一般指定一 位导师,这也是通常的规则,所以可以画出教师和学生之间一对多的联系。 13某工厂生产若干产品,每种产品由不同的零件组成,有的零件可用在不 同的产品上。这些零件由不同的原材料制成,不同零件所用的材料可以相同。这 些零件按照所属的不同产品分别放在仓库中,原材料按照类别放在若干仓库中。 请用 E-R 图画出此工厂产品、零件、材料、仓库的概念模型。 答: 解析: 对实体之间联系的语义描述有时不是直截了当的,需要从对现实世界的整体 描述中进行分析,导出实体之间的某种联系。如本题中, “零件和仓库的联系” 就要从以下描述中进行分析: “零件按照所属的不同产品分别放在仓库中” 。因为 一个产品由多种零件所组成,所以一个仓库中存放多种零件。反过来,一种零件 是放在一个仓库还是多个仓库中呢?因为一种零件可以用在多种产品上, 这些零 件按照所属的不同产品分别放在仓库中, 于是可以知道一种零件可以放在多个仓 库中,所以零件和仓库之间是多对多的联系。 8 “材料和仓库的联系” 则根据 “原材料按照类别放在若干仓库” 这句话得出: 一个仓库中存放多种材料,而一种材料只放在一个仓库中,所以仓库和材料之间 是一对多的联系。 14试述层次模型的概念,举出 3 个层次模型的实例。 答: (1)教师学生层次数据库模型。 (2)行政机构层次数据库模型。 (3)行政区域层次数据库模型。 15今有一个层次数据库实例,试用子女兄弟链接法和层次序列链接法画 出它的存储结构示意图。 答:子女兄弟链接法: 9 其中,图中虚线表示子女链,记录结构的第二部分存放子女指针;实线表示 兄弟链,记录结构的第三部分存放兄弟指针。星号“*”表示空指针。 答:层次序列链接法: 16试述网状模型的概念,举出 3 个网状模型的实例。 答:满足下面两个条件的基本层次联系的集合是网状模型。 (1)允许一个以上的结点无双亲; (2)一个结点可以有多于一个的双亲。 实例如下: 10 17试述层次、网状数据模型的优缺点。 答:层次数据模型的优点如下: (1)层次模型的数据结构比较简单、清晰,对具有一对多的层次关系的部 门描述非常自然、直观,容易理解,这是层次数据库的突出优点。 (2)层次数据库的查询效率高。 (3)层次数据模型提供了良好的完整性支持。 层次数据模型的缺点如下: (1)现实世界中的很多联系是非层次性的,层次数据模型不能自然地表示 这类联系。 (2)用层次数据模型来表示非层次结构的方法比较笨拙,只能通过引入冗 余数据(易产生不一致性)或创建非自然的数据结构(引入虚拟结点)来解决, 对插入和删除操作的限制较多。 (3)查询子女结点必须通过双亲结点。 (4)由于结构严密,层次命令趋于程序化。 网状数据模型的优点如下: (1)能够更为直接地描述现实世界,如一个结点可以有多个双亲。 (2)具有良好的性能,存取效率较高。 网状数据模型的缺点如下: (1)结构比较复杂,而且随着应用环境的不断扩大,数据库的结构变得越 来越复杂,不利于最终用户掌握。 (2)其 DDL、DML 语言复杂,用户不易使用。 18试述关系模型的概念,定义并解释以下术语: (1)关系 (2)属性 (3)域 (4)元组 (5)码 (6)分量 (7)关系模式 答: 关系模型由关系数据结构、 关系操作集合和关系完整性约束 3 部分组成。 在用户观点中,关系模型中数据的逻辑结构是一张二维表,由行和列所组成。 (1)关系:一个关系对应于通常所说的一张表。 (2)属性:表中的一列即为一个属性。 (3)域:属性的取值范围。 (4)元组:表中的一行即为一个元组。 (5)码:表中的某个属性组,它可以唯一地确定一个元组。 (6)分量:元组中的一个属性值。 (7)关系模式:对关系的描述,一般表示为 关系名(属性 1,属性 2,属性 n) 19试述关系数据模型的特点。 答:关系数据模型具有以下优点: (1)关系模型与非关系模型不同,它是建立在严格的数学概念基础之上的。 (2)关系模型的概念单一。无论实体还是实体之间的联系都用关系来表示。 操作的对象和操作的结果都是关系,所以其数据结构简单、清晰,用户易懂、易 用。 (3)关系模型的存取路径对用户而言是透明的,从而具有更高的数据独立 性、更好的安全保密性,也简化了程序员的工作和数据库开发创建工作。 当然,关系数据模型也存在缺点,其中最主要的缺点是:由于存取路径对用 户而言是透明的,查询效率往往逊于非关系数据模型。因此为了提高性能,必须 11 对用户的查询请求进行优化,增加了开发数据库管理系统软件的难度。 20试述数据库系统三级模式结构,这种结构的优点是什么? 答:数据库系统的三级模式结构由外模式、模式和内模式所组成。 (参见概 论图 1.28。 ) 外模式也称为子模式或用户模式,是数据库用户能够看见和使用的局部数据 的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据 的逻辑表示。 模式也称为逻辑模式,是数据库中全体数据的逻辑结构和特性的描述,是所 有用户的公共数据视图。模式所描述的是数据的全局逻辑结构。外模式所涉及的 是数据的局部逻辑结构,通常是模式的子集。 内模式也称为存储模式,是数据在数据库系统内部的表示,即对数据的物理 结构和存储方式的描述。 数据库系统的三级模式是针对数据的 3 个抽象级别,它把数据的具体组织留 给 DBMS 管理,使用户能抽象地处理数据,而不必关心数据在计算机中的具体 表示和存储方式。 为了能够在内部实现这 3 个抽象层次之间的联系和转换,数据库系统在三级 模式之间提供了二层映像:外模式模式映像和模式内模式映像。正是这二层 映像保证了数据库系统中的数据能够有较高的逻辑独立性和物理独立性。 21定义并解释以下术语: 模式、外模式、内模式、DDL、DML 答:模式、外模式、内模式的解释参见第 20 题。 DDL:数据定义语言。用来定义数据库模式、外模式、内模式的语言。 DML:数据操纵语言。用来对数据库中的数据进行查询、插入、删除和修改 的语言。 22什么叫数据与程序的物理独立性?什么叫数据与程序的逻辑独立性?为 什么数据库系统具有数据与程序的独立性? 答: 数据与程序的物理独立性:当数据库的存储结构发生改变时,由数据库管理 员对模式内模式映像作相应的改变,可以使模式保持不变,从而应用程序也不 必改变,保证了数据与程序的物理独立性,简称数据的物理独立性。 数据与程序的逻辑独立性:当模式改变时(如增加新的关系、新的属性、改 变属性的数据类型等) ,由数据库管理员对各个外模式模式的映像作相应的改 变,可以使外模式保持不变。应用程序依据数据的外模式编写,从而应用程序不 必修改,保证了数据与程序的逻辑独立性,简称数据的逻辑独立性。 数据库管理系统在三级模式之间所提供的二层映像保证了数据库系统中的 数据具有较高的逻辑独立性和物理独立性。 23试述数据库系统的组成。 答:数据库系统一般由数据库、数据库管理系统(及其开发工具) 、应用系 统、数据库管理员和用户所组成。 24DBA 的职责是什么? 答:DBA 负责全面管理和控制数据库系统。其具体职责包括以下 5 点: (1)决定数据库的信息内容和结构。 (2)决定数据库的存储结构和存取策略。 (3)定义数据的安全性要求和完整性约束条件。 12 (4)监督数据库的使用和运行。 (5)数据库系统的改进、重组和重构。 25系统分析员、数据库设计人员、应用程序员的职责是什么? 答:系统分析员负责应用系统的需求分析和规范说明,系统分析员要和用户 及 DBA 相结合,确定系统的硬件和软件配置,并参与数据库系统的概要设计。 数据库设计人员负责数据库中数据的确定及数据库各级模式的设计。数据库 设计人员必须参加用户需求调查和系统分析,然后进行数据库设计。在很多情况 下,数据库设计人员由数据库管理员担任。 应用程序员负责设计和编写应用系统的程序模块,并进行调试和安装。 第二章 关系数据库 习题解答和解析 1试述关系模型的 3 个组成部分。 答:关系模型由关系数据结构、关系操作集合和关系完整性约束 3 部分组成。 2试述关系数据语言的特点和分类。 答:关系数据语言可以分为 3 类: 这些关系数据语言的共同特点是,具有完备的表达能力,是非过程化的集合 操作语言,功能强大,能够嵌入高级语言中使用。 3定义并理解下列术语,说明它们之间的联系与区别: (1)域,笛卡儿积,关系,元组,属性 答: 域:域是一组具有相同数据类型的值的集合。 笛卡儿积:给定一组域 n DDD, 21 ,这些域中可以有相同的域。这组域的 笛卡儿积为, 2 , 1,),( 2121 niDddddDDD iinn = 其中, 每一个元素),( 21n ddd称为一个 n 元组 (n-tuple) 或简称元组 (tuple)。 元素中的每一个值 i d称为一个分量(component)。 关系:在域 n DDD , 21, 上,笛卡儿积 n DDD 21 的子集称为关系,表 示为 n DDDR,( 21 ) 关系数据语言 关系代数语言(如 ISBL) 关系演算语言 具有关系代数和关系演算双重特点的语言(如 SQL) 元组关系演算语言(如 ALPHA、QUEL) 域关系演算语言(如 QBE) 13 值得注意的是,这里用较为形式化的方法来定义关系。在第一章中则是用通 俗的语言来说明什么是关系,也可以看做不甚严格的一种定义。 元组:关系中的每个元素是关系中的元组。 属性:关系也是一个二维表,表的每行对应于一个元组,表的每列对应于一 个域。由于域可以相同,为了加以区分,必须为每列起一个名字,称为属性 (attribute )。 (2)候选码,主码,外部码 答: 候选码:若关系中的某一属性组的值能唯一地标识一个元组,则称该属性组 为候选码(candidate key)。 主码:若一个关系有多个候选码,则选定其中一个为主码((primary key)。 外部码:设 F 是基本关系 R 的一个或一组属性,但不是关系 R 的码,如果 F 与基本关系 S 的主码 S K相对应,则称 F 是基本关系 R 的外部码(foreign key), 简称外码。 基本关系 R 称为参照关系(referencing relation) ,基本关系 S 称为被参照关 系(referenced relation)或目标关系(target relation)。关系 R 和 S 可以是相同的关 系。 (3)关系模式,关系,关系数据库 答: 关系模式:关系的描述称为关系模式(relation schema),可以形式化地将其 表示为 ),(FdomDUR 其中,R 为关系名,U 为组成该关系的属性名集合,D 为属性组 U 中属性值所来 自的域,dom 为属性向域的映像集合,F 为属性间数据的依赖关系集合。 关系:在域 n , D, DD 21 上,笛卡儿积 n DDD 21 的子集称为关系, 表示为 ), D, DDR n 21 ( 关系是关系模式在某一时刻的状态或内容。关系模式是静态的、稳定的,而关系 是动态的、随时间而不断变化的,因为关系操作在不断地更新数据库中的数据。 关系数据库:关系数据库也有型和值之分。关系数据库的型也称为关系数据 库模式,是对关系数据库的描述,它包括若干域的定义及在这些域上所定义的若 干关系模式。关系数据库的值是这些关系模式在某一时刻所对应的关系的集合, 通常称为关系数据库。 4试述关系模型的完整性规则。在参照完整性中,为什么外部码属性的值 也可以为空?什么情况下才可以为空? 答,关系模型的完整性规则是对关系的某种约束条件。关系模型中可以有 3 类完整性约束:实体完整性、参照完整性和用户定义的完整性。 其中,实体完整性和参照完整性是关系模型必须满足的完整性约束条件,被 称为关系的两个不变性,应该由关系系统自动支持。 (1) 实体完整性规则: 若属性 A 是基本关系 R 的主属性, 则属性 A 不能取空 14 值。 (2)参照完整性规则:若属性(或属性组)F 是基本关系 R 的外部码,它与 基本关系 S 的主码 K 相对应(基本关系 R 和 S 不一定相异) ,则对于 R 中的每 个元组,在 F 上的值必须为以下二者之一: 取空值(F 的每个属性值均为空值) 。 等于 S 中某个元组的主码值。 (3)用户定义的完整性:是针对某一具体关系数据库的约束条件。它反映某 一具体应用涉及的数据所必须满足的语义要求。 在参照完整性中,外部码属性值可以为空,表示该属性的值尚未确定。但前 提条件是该外部码属性不是其所在关系的主属性。 例如,在下面的“学生”表中, “专业号”是一个外部码,不是“学生”表 的主属性,其值可以为空。其语义是,该学生的专业尚未确定。 学生(学号,姓名,性别,专业号,年龄) 专业(专业号,专业名) 而在下面的“选修”表中, “课程号”虽然也是一个外部码属性,但它又是 “选修”表的主属性,所哒其值不能为空。因为关系模型必须满足实体完整性。 、 课程(课程号,课程名,学分) 选修(学号,课程号,成绩) 5设有一个 SPJ 数据库,包括 S、P、J、SPJ 这 4 个关系模式: S(SNO, SNANE, STATUS, CITY); P(PNO, PNAME, COLOR, WEIGHT); J(JNO, JNAME, CITY); SPJ(SNO, PNO, JNO, QTY); 供应商表 S 由供应商代码(SNO) 、供应商姓名(SNAME )、供应商状态 ((STATUS)、供应商所在城市(CITY)组成; 零件表 P 由零件代码(PNO)、零件名(PNAME)、颜色(COLOR)、重量 (WEIGHT)组成; 工程项目表 J 由工程项目代码(JNO )、工程项目名(JNAME )、工程项目 所在城市(CITY)组成; 供应情况表 SPJ 由供应商代码(SNO )、零件代码(PNO)、工程项目代码 (JNO )、供应数量(QTY)组成,表示某供应商供应某种零件给某工程项目的 数量为 QTY。 现有若干数据如下: S 表 SNO SNAME STATUS CITY S1 精益 20 天津 S2 盛锡 10 北京 S3 东方红 30 北京 S4 丰泰盛 20 天津 S5 为民 30 上海 P 表 PNO PNAME COLOR WEIGHT P1 螺母 红 12 15 P2 螺栓 绿 17 P3 螺丝刀 蓝 14 P4 螺丝刀 红 14 P 5 凸轮 蓝 40 P6 齿轮 红 30 J 表 JNO JNAME CITY J1 三建 北京 J2 一汽 长春 J3 弹簧厂 天津 J4 造船厂 天津 J 5 机车厂 唐山 J6 无线电厂 常州 J7 半导体厂 南京 SPJ 表 SNO PNO JNO QTY S1 P1 J1 200 S1 P1 J3 100 S1 P1 J4 700 S1 P2 J2 100 S2 P3 J1 400 S2 P3 J2 200 S2 P3 J4 500 S2 P3 J5 400 S2 P5 J1 400 S2 P5 J2 100 S3 P1 J1 200 S3 P3 J1 200 S4 P5 J1 100 S4 P6 J3 300 S4 P6 J4 200 S5 P2 J4 100 S5 P3 J1 200 S5 P6 J2 200 S5 P6 J4 500 试用关系代数、ALPHA 语言、QBE 语言完成如下查询: (1)求供应工程 Jl 零件的供应商代码 SNO。 答: 关系代数:)( 1 SPJ JJNOSNO= ALPHA 语言:GET W(SPJ.SNO): SPJ.JNO=J1 QBE 语言: SPJ SNO PNO JNO QTY P.S1 J1 16 (2)求供应工程 J1 零件 P1 的供应商代码 SNO。 答: 关系代数:SNO(JNO=J1PNO=P1(SPJ) ALPHA 语言:GET W(SPJ.SNO):SPJ.JNO=J1SPJ.PNO=P1 QBE 语言: SPJ SNO PNO JNO QTY P.S1 P1 J1 (3)求供应工程 J1 红色零件的供应商代码 SNO。 答: 关系代数:)( 1, SPJ JJNOPNOSNOSNO= )( P COLORPNO红= ALPHA 语言: RANGE P PX GET W(SPJ.SNO):PX(PX.PNO=SPJ.PNOSPJ.JNO=J1PX .COLOR=红) QBE 语言: SPJ SNO PNO JNO QTY P.S1 P1 J1 P PNO PNAME COLOR WEIGHT P1 红 (4)求没有使用天津供应商生产的红色零件的工程项目代码 JNO. 答: 关系代数: )()(SJ CITYSNOJNOJNO天津= )( , SPJ JNOPNOSNO )(P COLORPNO红= 解析: 减法运算中的被减部分是使用天津供应商生产的红色零件的所有工程项目 代码,)(J JNO 是全部工程的工程项目代码,两者相减就是未使用天津供应商生 产的红色零件的工程项目代码,包括未使用任何零件的工程项目代码。 ALPHA 语言: RANGE SPJ SPJX P PX S SX GET W(J.JNO):SPJX(SPJX.JNO=J.JNO SX(SX.SNO=SPJX.SNOSX.CITY=天津) PX(PX.PNO=SPJX.PNOPX.COLOR=红) 解析: S, P, SPJ 表上各设了一个元组变量。 解题思路:所要找的是满足给定条件的工程项目代码 JNO。因此,对工程 表 J 中的每个 JNO 进行判断: 17 看 SPJ 中是否存在这样的元组,其 JNO=J.JNO,并且所用的零件是红色的, 该零件的供应商是天津的。 如果 SPJ 中不存在这样的元组,则该工程项目代码 JNO 满足条件,放入结 果集中。 如果 SPJ 中存在这样的元组,则该工程项目代码 JNO 不满足条件,不能放 入结果集中。再对工程表 J 中的下一个 JNO 进行同样的判断。 直到所有 JNO 都检查完。 结果集中是所有未使用天津供应商生产的红色零件的工程项目代码,包括未 使用任何零件的工程项目代码。 QBE 语言: 不考虑未使用任何零件的工程。 S SNO SNAME STATUS CITY S1 天津 P PNO PNAME COLOR WEIGHT P1 红 SPJ SNO PNO JNO QTY S1 P1 PJI 解析: 本题是从 SPJ 表中输出满足条件的 JNO, 未使用任何零件的工程项目的代码 是不会出现在 SPJ 中的。 所以本解法的结果不包括未使用任何零件的工程项目代 码。 下面考虑未使用任何零件的工程。 J JNO JNAME CITY PJ1 S SNO SNAME STATUS CITY S1 天津 P PNO PNAME COLOR WEIGHT P1 红 SPJ SNO PNO JNO QTY S1 P1 J1 解析: 本题是从 J 表中输出满足条件的 JNO,未使用任何零件的工程项目的工程项 目代码也满足条件。所以,本题的结果包括未使用任何零件的工程项目的工程代 码。 (5)求至少用了供应商 S1 所供应的全部零件的工程项目代码 JNO。 答: 关系代数:)()( 1, SPJSPJ SSNOPNOPNOJNO= 18 第一部分是所有工程及该工程所用的零件,第二部分是供应商 S1 所供 应的全部零件号 对于 SPJ 表中的某个 JNO,如果该工程使用的所有零件的集合包含供应商 S1 所供应的全部零件号,则该 JNO 符合本题条件,它在除法运算的结果集中。 由此可以看出,使用关系代数的除法运算的概念清晰,语言表达也很简单。 ALPHA 语言: (类似于概论一书中第 2.5 节例 14) RANGE SPJ SPJX SPJ SKY P PX GET W(J.JNO):PX(SPJX(SPJX.PNO=PX.PNOSPJX.SNO=S1) SPJY(SPJY.JNO=J.JNOSPJY.PNO=PX.PNO) 解析: SPJ 表上设了两个元组变量:SPJX, SPJY; P 表上设了一个元组变量:PX。 解题思路:所要找的是满足给定条件的工程项目代码 JNO。因此,对工程 表 J 中的每一个 JNO(例如 J1) ,进行如下一组操作: (a)对于零件 PX 中的所有零件,依次对每个零件进行检查。 (b)例如零件 P1,检查 SPJX,看供应商 S1 是否供应了该零件。如果供应 了,则再看这一个 JNO(例如 J1)是否使用了该零件。 (c)如果对于供应商 S1 所供应的每种零件,这个 JNO(例如 J1)都使用了, 则该 JNO(例如 J1)为满足要求的工程项目的工程代码。 为了帮助理解,读者可以画出所涉及的 3 个表,给出一些数据,按照上面 的解析步骤逐步分析,就能掌握解题方法,从而达到举一反三的效果。 19 QBE:(不作要求) 。 6.试述等值连接与自然连接之间的区别和联系。 答:连接运算中有两种最重要也是最为常用的连接,一种是等值连接 (equivalent join ),另一种是自然连接(natural join)。等值连接简称等连接。 为“”的连接运算称为等值连接。 它是从关系 R 与 S 的笛卡儿积中选取 A, B 属性值相等的那些元组,即等值 连接为 BtAtStRtttSR srsrsr BA = = 自然连接是一种特殊的等值连接, 它要求两个关系中进行比较的分量必须是 相同的属性组,并且要在结果中把重复的属性去掉,即若 R 和 S 具有相同的属 性组 B,则自然连接可记为 BtBtStRtttSR srsrsr = 7关系代数的基本运算有哪些?如何用这些基本运算来表示其他运算? 答:在 8 种关系代数运算中,并、差、笛卡儿积、投影和选择 5 种运算是基 本的运算。其他 3 种运算,即交、连接和除,均可用 5 种基本运算来表达。 交运算:)(SRRSR= 连接运算)(SRSR BA BA = 除运算:)()()(),(),(RSRRZYSYXR YXXX = X, Y, Z 为属性组,R 中的 Y 和 S 中的 Y 可以有不同的属性名,但必须出自相 同的域。 第三章第三章 关系数据库标准语言关系数据库标准语言 SQLSQL 二、习题解答和解析二、习题解答和解析 20 1.试述 SQL 的特点。 答: (1)综合统一。SQL 集数据定义语言 DDL、数据操纵语言 DML、数据控制语 言 DCL 的功能于一体。 (2)高度非过程化。 用 SQL 进行数据操作, 只要提出 “做什么” , 无须指明 “怎 么做” ,因此无须了解存取路径。存取路径的选择以及 SQL 语句的操作过程由系 统自动完成。 (3)面向集合的操作方式。SQL 采用集合操作方式,不仅操作对象、查找结 果可以是元组的集合,而且一次插入、删除、更新操作的对象也可以是元组的集 合。 (4)以同一种语法结构提供两种使用方式。SQL 既是自含式语言,又是嵌入 式语言。作为自含式语言,它能够独立地用于联机交互方式,也能够嵌入高级语 言程序中,供程序员设计程序时使用。 (5)语言简洁,易学易用。 解析: 详细介绍可参考概论一书中的 3.1.2 节。需要注意的是,不要仅从字面 上了解这些特点,关键是要通过具体的练习,通过使用 SQL 语句来理解这些特 点。 2试述 SQL 的定义功能。 答:SQL 的数据定义功能包括定义表、定义视图和定义索引。 (1)SQL 使用 CREATE TABLE 语句建立基本表,使用 ALTER TABLE 语句 修改基本表的定义,使用 DROP TABLE 语句删除基本表。 (2)使用 CREATE VIEW 语句建立视图,使用 DROP VIEW 语句删除视图。 (3) 使用 CREATE INDEX 语句建立索引, 使用 DROP INDEX 语句删除索引。 3用 SQL 语句建立第二章习题 5 中的 4 个表。 答: 建立 S 表:S(SNO, SNAMEE, STATUS, CITY); CREATE TABLE S (SNO CHAR(3), SNAME CHAR(10), STATUS CHAR(2), CITY CHAR(10); 建立 P 表:P(PNO, PNAME, COLOR, WEIGHT); CREATE TABLE (PNO CHAR(3), PNAME CHAR(10), COLOR CHAR(4), WEIGHT INT); 建立 J 表:J(JNO, JNAME, CITY); CREATE TABLE (JNO CHAR(3), JNAME CHAR(10), CITY CHAR(10); 建立 SPJ 表:SPJ(SNO, PNO, JNO, QTY); 21 CREATE TABLE SPJ (SNO CHAR(3), PNO CHAR(3), JNO CHAR(3), QTY INT); 4针对上题中建立的 4 个表,试用 SQL 完成第二章习题 5 中的查询。 解析: 读者可以对比 SQL、关系代数、ALPHA 语言、QBE 语言,体会各种语言的 优点。 (1)求供应工程 J1 零件的供应商号码 SNO. SELECT SNO FROM SPJ WHERE JNO=J1; (2)求供应工程 J1 零件 P1 的供应商号码 SNO. SELECT SNO FROM SPJ WHERE JNO=Jl AND PNO=P1; (3)求供应工程 J1 零件为红色的供应商号码 SNO。 SELECT SNO FROM SPJ WHERE JNO=Jl AND PNO IN (SELECT PNO FROM P WHERE COLOR=红) ; 或 SELECT SNO FROM SPJ, P WHERE JNO=J1 AND SPJ.PNO=P.PNO AND COLOR=红; (4)求没有使用天津供应商生产的红色零件的工程项目代码 JNO。 解析: 读者可以对比第二章习题 5 中用 ALPHA 语言来完成该查询的解答: GET W(J.JNO):SPJX(SPJX.JNO=J.JNO SX(SX.SNO=SPJX.SNOSX.CITY=天津) PX(PX.PNO=SPJX.PNO PX.COLOR=红) 如果读者理解了有关该题的解析,那么本题的解答可以看做把关系演算用 SQL 来表示的过程。 SELECT JNO FROM J WHERE NOT EXISTS (SELECT * FROM SPJ, WHERE SPJ.JNO=J.JNO 22 AND SNO IN (SELECT SNO FROM S WHERE CITY=天津) AND PNO IN (SELECT PNO FROM P WHERE COLOR=红) ; 或 SELECT JNO FROM J WHERE NOT EXISTS (SELECT * FR
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 农业行业高级人才面试题库
- 初二数学下册各章思维导图
- 高级人才招聘:会员制面试题目及答案衍生职业岗位选择技巧
- 细胞染色原理
- 药品不良反应复核管理体系建设
- 汽轮发动机讲解课件
- 微纳米技术制造
- 人体巨噬细胞
- 选举人团制度解析
- 五老活动实施方案
- 主要负责人全面安全检查表
- 《采购部相关培训》课件
- 围手术期的ERAS营养护理管理
- 高处作业非标吊篮专项施工方案
- 2024至2030年中国品牌战略咨询服务市场现状研究分析与发展前景预测报告
- 2022版新《物理》义务教育课程标准教师培训测试题附答案
- 辽宁省丹东市2023-2024学年八年级下学期期末数学试卷(含答案)
- TSG+11-2020锅炉安全技术规程
- 从高考改卷谈对物理教学的几点启示
- DB32-T 4757-2024 连栋塑料薄膜温室建造技术规范
- 个人征信查询授权书范本
评论
0/150
提交评论