数据库课后答案(第三版)

更新时间:2023-06-11 11:51:01 阅读量: 实用文档 文档下载

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

钱学忠 李京 主编

《数据库原理及应用》(第三版)钱雪忠 李京主编 课后参考答案

数据库原理及应用

(第三版) 钱雪忠 等主编 北京邮电大学出版社

2010.05

第1章 绪论

一、选择题 1、A 2、A 3、A 4、A 5、B 6、C 7、C 8、A 9、A 10、C

1、( )是位于用户与操作系统之间的一层数据管理软件。数据库在建立、使用和维护时由其统一管理、统一控制。

A.DBMS B.DB C.DBS D.DBA

2、文字、图形、图像、声音、学生的档案记录、货物的运输情况等,这些都是( ) A.DATA B.DBS C.DB D.其他

3、目前( )数据库系统已逐渐淘汰了网状数据库和层次数据库,成为当今最为流行的商用数据库系统。 A.关系 B.面向对象 C.分布 D.对象-关系

4、( )是刻画一个数据模型性质最重要的方面。因此在数据库系统中,人们通常按它的类型来命名数据模型。

A.数据结构 B.数据操纵 C.完整性约束 D.数据联系

5、( )属于信息世界的模型,实际上是现实世界到机器世界的一个中间层次。 A.数据模型 B.概念模型 C.非关系模型 D.关系模型

6、当数据库的( )改变了,由数据库管理员对( )映象作相应改变,可以使( )保持不变,从而保证了数据的物理独立性。

(1)模式 (2) 存储结构 (3)外模式/模式 (4)用户模式 (5)模式/内模式 A.(1)和(3)和(4) B.(1)和(5)和(3) C.(2)和(5)和(1) D.(1)和(2)和(4)

7、数据库的三级体系结构即子模式、模式与内模式是对( )的三个抽象级别。 A.信息世界 B.数据库系统 C.数据 D.数据库管理系统 8、英文缩写DBA代表( )

A.数据库管理员 B.数据库管理系统 C.数据定义语言 D.数据操纵语言 9、模式和内模式( )。

A.只能各有一个 B.最多只能有一个 C.至少两个 D.可以有多个 10、在数据库中存储的是( )。

钱学忠 李京 主编

A.数据 B.信息 C.数据和数据之间的联系 D.数据模型的定义 二、填空题

1、数据库就是长期储存在计算机内_有组织的__、_可共享__的数据集合。

2、数据管理技术已经历了人工管理阶段、_文件系统阶段_和_数据库系统阶段_三个发展阶段。 3、数据模型通常都是由_数据结构_、_数据操作_和_数据完整性约束_三个要素组成。

4、数据库系统的主要特点:_数据整体结构化_、数据冗余度小、具有较高的数据程序独立性、具有统一的数据控制功能等。

5、用二维表结构表示实体以及实体间联系的数据模型称为__关系__数据模型。

6、在数据库的三级模式体系结构中,外模式与模式之间的映象,实现了数据库的__ _____数据逻辑__独立性。

7、数据库系统是以_数据库或数据库中的数据___为中心的系统。

8、E-R图表示的概念模型比_DBMS支持的数据模型_更一般、更抽象、更接近现实世界。

9、外模式,亦称为子模式或用户模式,是_局部用户__能够看到和使用的局部数据的逻辑结构和特征的描述。

10、数据库系统的软件主要包括支持_DBMS_运行的操作系统以及__DBMS_本身。 三、简答题

1、简述计算机数据管理技术发展的三个阶段。 解:

数据管理技术已经历了人工管理、文件系统及数据库系统三个发展阶段。这三个阶段的特点及其比较如下表1.1所示。

表1.1 数据管理三个阶段的比较

(1)人工管理阶段:20世纪50年代中期以前,计算机主要用于科学计算。硬件设施方面:外存只有纸带、卡片、磁带,没有磁盘等直接存取设备;软件方面:没有操作系统和管理数据的软件;数据处理方式是批处理。人工管理数据具有以下几个特点:1)数据不保存;2)应用程序管理数据;3)数据不共享;4)数据不具有独立性。

(2)文件系统阶段:20世纪50年代后期到60年代中期,这时计算机已大量用于数据的管理。硬件方面:

钱学忠 李京 主编

有了磁盘、磁鼓等直接存取存储设备;软件方面:操作系统中已经有了专门的管理软件,一般称为文件系统;处理方式有批处理、联机实时处理。特点如下:1)数据长期保存;2)文件系统管理数据;3)数据共享性差,冗余度大;4)数据独立性差;

(3)数据库系统阶段:20世纪60年代后期以来,计算机用于管理的规模更为庞大,数据量急剧增长,硬件已有大容量磁盘,硬件价格下降;软件则价格上升,使得编制、维护软件及应用程序成本相对增加;处理方式上,联机实时处理要求更多,分布处理也在考虑之中。介于这种情况,文件系统的数据管理满足不了应用的需求,为解决共享数据的需求,随之从文件系统中分离出了专门软件系统——数据库管理系统,用来统一管理数据。

数据库系统阶段具有如下优于文件系统的特点:1)数据结构化;2)数据的共享性高,冗余度低,易扩充;3)数据独立性高;4)数据由DBMS统一管理和控制。 2、常用的三种数据模型的数据结构各有什么特点? 解:

常用的三种数据模型是层次模型、网状模型和关系模型。它们的数据结构及特点分别介绍如下: 1)层次模型的数据结构——树型结构

在数据库中,对满足以下两个条件的基本层次联系的集合称为层次模型。 (1)有且仅有一个节点无双亲,这个节点称为“根节点”。 (2)其他节点有且仅有一个双亲。

所谓基本层次联系是指两个记录类型以及它们之间的一对多的联系。

在层次模型中,每个结点表示一个记录类型,记录之间的联系用结点之间的连线表示,这种联系是父子之间的一对多的联系。这就使得数据库系统只能处理一对多的实体联系。

每个记录类型可包含若干个字段,这里,记录类型描述的是实体,字段描述的是实体的属性。各个记录类型及其字段都必须命名,并且名称要求唯一。每个记录类型可以定义一个排序字段,也称为码字段,如果定义该排序字段的值是唯一的,则它能唯一标识一个记录值。若用图来表示,层次模型是一棵倒立的树。节点层次(Level)从根开始定义,根为第一层,根的子女称为第二层,根称为其子女的双亲,同一双亲的子女称为兄弟。

2)网状模型的数据结构——网状结构图

在数据库中,把满足以下两个条件的基本层次联系集合称为网状模型: (1)允许一个以上的结点无双亲; (2)一个结点可以有多于一个的双亲。

网状模型是一种比层次模型更具有普遍性的结构,它去掉了层次模型的两个限制,允许多个结点没有双亲结点,允许结点有多个双亲结点,此外它还允许两个结点之间有多种联系。因此网状模型可以更直接地去描述现实世界。而层次模型实际上是网状模型的一个特例。与层次模型一样,网状模型中的每个结点表示一个记录类型,每个记录类型可包含若干个字段,结点间的连线表示记录类型之间的一对多的父子联系。 从定义可看出,层次模型中子女结点与双亲结点的联系是唯一的,而在网状模型中这种联系可以不唯一的。 3)关系模型——二维表

关系模型与层次模型和网状模型不同,关系模型中数据的逻辑结构是一张二维表,它由行和列组成。每一行称为一个元组,每一列称为一个属性(或字段)。下面是关系模型中的涉及到的相关的术语: 关系:一个关系对应一张二维表,如一张教师登记表。 元组:二维表中的一行称为一个元组。

属性:二维表中的一列称为一个属性,对应每一个属性的名字称为属性名。

主码:如果二维表中的某个属性或是属性组可以唯一确定一个元组,则称为主码,也称为关系键。 域:属性的取值范围称为域,如人的年龄一般在1-120岁之间,大学生的年龄属性的域是14-38,性别的域是男和女等。

分量:元组中的一个属性值。例如,教师号对应的值001、002、003都是分量。

钱学忠 李京 主编

关系模式:表现为关系名和属性的集合,是对关系的具体描述。一般表示为:

关系名(属性1,属性2,…,属性N)。如教师关系模式为:教师(教师号,姓名,年龄,职称) 在关系模型中,实体以及实体间的联系都是用关系来表示。

关系模型要求关系必须是规范化的,即要求关系必须满足一定规范条件,这些规范条件中最基本的一条就是,关系的每一个分量必须是一个不可分的数据项,也就是说,不允许表中还有子表或子列。 3、试述数据库系统的特点。 解:

数据库系统阶段具有如下优于文件系统的主要特点:1)数据结构化;2)数据的共享性高,冗余度低,易扩充;3)数据独立性高;4)数据由DBMS统一管理和控制。

1)数据结构化:数据库系统实现整体数据的结构化,是数据库的主要特征之一,也是数据库系统与文件系统的本质区别。在数据库系统中,数据不再针对某一应用,而是面向全组织,是整体结构化的。不仅数据是结构化的,而且存取数据的方式也是很灵活的,可以存取数据库中的某一个数据项(或字段)、一组数据项、一个记录或是一组记录。

2)数据的共享性高,冗余度低,易扩充:数据库系统从整体角度看待和描述数据,数据不再面向某个应用而是面向整个系统,因此数据可以被多个用户、多个应用共享使用。数据共享可以大大的减少数据冗余,节约存储空间。数据共享还能够避免数据之间的不相容性与不一致性。由于数据面向整个系统,是有结构的数据,不仅可以被多个应用共享使用,而且容易增加新的应用,这就使得数据系统弹性大,易于扩充,可以适应各种用户的要求。可以取整体数据的各种子集用于不同的应用系统,当应用需求改变或增加时,只要重新选取不同的子集或加上一部分数据便可以满足新的需求。

3)数据独立性高:数据独立性包括了数据的物理独立性和数据的逻辑独立性两方面。

物理独立性是指用户的应用程序与存储在磁盘上的数据库中数据是相互独立的。也就是说,数据在磁盘上的数据库中怎样存储是由DBMS管理的,用户程序不需要了解,应用程序要处理的只是数据的逻辑结构,这样当数据的物理存储改变时,应用程序不用改变。

逻辑独立性是指用户的应用程序与数据库的整体逻辑结构是相互独立的,也就是说,数据的整体逻辑结构改变了,用户程序也可以不需修改的。数据独立性是由DBMS的三级模式结构与二级映象功能来保证的。 4)数据由DBMS统一管理和控制:DBMS为保证共享数据的安全、正确、可靠等提供以下几方面的数据控制功能:(1)数据的安全性控制;(2)数据的完整性约束;(3)并发控制;(4)数据库恢复。 4、试述数据模型的概念、数据模型的作用和数据模型的三要素。 解:

1)数据模型的概念:数据模型是模型中的一种,是现实世界数据特征的抽象,它描述了系统的三个方面:静态特性、动态特性和完整性约束条件。

2)数据模型的作用:数据模型应满足三方面的要求:一是能比较真实地模拟现实世界;二是容易为人所理解;三是便于在计算机上实现。

不同的数据模型实际上是提供给我们模型化数据和信息的不同工具。根据模型应用的不同目的,可以将这些模型粗分为两类,他们分属于两个不同的层次。

第一类模型是概念模型,也称信息模型,它是按用户的观点来对数据和信息建模的,主要用于数据库设计。 另一类模型是数据模型,主要包括层次模型、网状模型、关系模型、面向对象模型等,它是按计算机系统对数据建模,主要用于在DBMS中对数据的存储、操纵、控制等的实现。

为了把现实世界中的具体事物抽象、组织为某一DBMS支持的数据模型,人们常常首先将现实世界抽象为信息世界,然后将信息世界转换(或数据化)为机器世界。也就是说,首先把现实世界中的客观对象抽象为某一种信息结构,这种信息结构并不依赖于具体的计算机系统,不是某一个DBMS支持的数据模型,而是概念级的模型;然后再把概念模型转换为计算机上某一DBMS支持的数据模型。

数据模型是数据库系统的核心和基础,各种机器上实现的DBMS软件都是基于某种数据模型的。可以说没有数据模型就没有数据库及其系统,其重要性不言而喻。

钱学忠 李京 主编

3)数据模型的三要素:

数据模型一般由数据结构、数据操作和数据完整性约束三部分组成(俗称三要素),是严格定义的一组概念的集合。

(1)数据结构:数据结构用于描述系统的静态特性,是所研究的对象类型的集合。数据模型按其数据结构分为层次模型、网状模型、关系模型和面向对象模型。其所研究的对象是数据库的组成部分,它们包括两类,一类是与数据类型、内容、性质有关的对象,例如网状模型中的数据项、记录,关系模型中的域、属性、实体关系等;一类是与数据之间联系有关的对象,例如网状模型中的系型、关系模型中反映联系的关系等。

数据模型的三要素示意图

(2)数据操作:数据操作用于描述系统的动态特性,是指对数据库中各种对象及对象的实例允许执行的操作的集合,包括对象的创建、修改和删除,对对象实例的检索和更新(例如插入、删除和修改)两大类操作及其它有关的操作等。数据模型必须定义这些操作的确切含义、操作符号、操作规则(如优先级)以及实现操作的语言等。

(3)数据完整性约束:数据的完整性约束是一组完整性约束规则的集合。完整性约束规则是给定的数据模型中数据及其联系所具有的制约和依存规则,用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效、相容。

数据模型的三要素紧密依赖相互作用形成一个整体(如图示意),如此才能全面正确地抽象、描述来反映现实世界数据的特征。 5、试述概念模型的作用。 解:

数据模型应满足三方面的要求:一是能比较真实地模拟现实世界;二是容易为人所理解;三是便于在计算机上实现。

概念模型,也称信息模型,它是按用户的观点来对数据和信息建模的,主要用于数据库设计。

为了把现实世界中的具体事物抽象、组织为某一DBMS支持的数据模型,人们常常首先将现实世界抽象为信息世界,然后将信息世界转换(或数据化)为机器世界。也就是说,首先把现实世界中的客观对象抽象为某一种信息结构,这种信息结构并不依赖于具体的计算机系统,不是某一个DBMS支持的数据模型,而是概念级的模型。

概念模型提供给我们从现实世界到信息世界模型化数据和信息手段与工具。若没有概念模型现实世界的问题很难转化到机器世界的数据库系统中来处理。 6、定义并理解概念模型中的以下术语:

实体、实体型、实体集、属性、码、实体联系图(E-R图)、三种联系类型 解:

(1)实体:实体是指客观存在并可以相互区别的事物。实体可以是具体的人、事、物。例如,一个学生,一位老师,一门课程,一个部门;也可以是抽象的概念或联系,把它看作为实体。例如,学生的选课,老师的授课等等都是实体。

(2)实体型:具有相同属性的实体必然具有共同的特征和性质。用实体名及其属性名集合组成的形式,称为实体型。例如,教师(教师号,姓名,职称,年龄)就是一个教师实体型。

(3)实体集:实体集是指同型实体的集合。例如,全体教师就是一个实体集。即教师实体集={'张三','李四',……}

(4)属性:属性是指实体所具有的某一特性。例如教师实体可以由教师号、姓名、年龄、职称等属性组成。 (5)码:码是指唯一标识实体的属性集。例如教师号在教师实体中就是码。

(6)联系:联系是指实体型与实体型之间、实体集内实体与实体之间以及组成实体的各属性间的关系。两个实体型之间的联系有以下三种:

1)一对一联系:如果实体集A中的每一个实体,至多有一个实体集B的实体与之对应。反之,实体集B

钱学忠 李京 主编

中的每一个实体,也至多有一个实体集A的实体与之对应,则称实体集A与实体集B具有一对一联系,记作1:1。

例如,在学校里,一个系只有一个系主任,而一个系主任只在某一个系中任职,则系型与系主任型之间(或说系与系主任之间)具有一对一联系。

2)一对多联系:如果实体集A中的每一个实体,实体集B中的N个实体与之相对应,反之,如果实体集B中的每一个实体,实体集A中至多只有一个实体与之相对应,则称实体集A与实体集B具有一对多联系,记作1:N。

例如,一个系中有若干名教师,而每个教师只在一个系中任教,则系与教师之间具有一对多联系。 3)多对多联系:如果实体集A中的每一个实体,实体集B中有n个实体与之相对应,反之,如果实体集B中的每一个实体,实体集A也有m(m≥0)个实体与之相对应,则称实体集A与实体集B具有多对多的联系,记作m:n。

例如,一门课程同时有若干个教师讲授,而一个教师可以同时讲授多门课程,则课程与教师之间具有多对多联系。

单个或多个实体型之间也有类似于两个实体型之间的三种联系类型。具体略。 (7)实体联系图(E-R图)

实体联系图(E-R图)又称实体-联系方法。该方法用直观图形来描述现实世界抽象出的信息。E-R图提供了表示实体型、属性和联系的方法。

E-R图是体现实体型、属性和联系的之间关系的图形表示形式。具体表示方法为: 实体型:用矩形表示,矩形框内写明实体名。

属性:用椭圆表示,椭圆形内写明属性名。并用无向边将其与相应的实体连接起来。

联系:用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型(1:1、1:n或m:n)。 举例说明略。

7、学校有若干个系,每个系有若干班级和教研室,每个教研室有若干教师,每个教师只教一门课,每门课可由多个教师教;每个班有若干学生,每个学生选修若干课程,每门课程可由若干学生选修。请用E-R图画出该学校的概念模型,注明联系类型。 解:

8、每种工厂生产的产品由不同的零件组成,有的零件可用于不同的产品。这些零件由不同的原材料制成,不同的零件所用的材料可以相同。一个仓库存放多种产品,一种产品存放在一个仓库中。零件按所属的不同产品分别放在仓库中,原材料按照类别放在若干仓库中(不跨仓库存放)。请用E-R图画出此关于产品,零件,材料,仓库的概念模型,注明联系类型。 解:

9、分别给出一个层次、网状和关系模型的实例。 解:

1)层次模型的实例

图1.17给出了一个系的层次模型。 图1.17 一个层次模型的示例

图1.18是图1.17的具体化,成为一个教师-学生层次数据库。该层次数据库有四个记录型。记录型系是根结点,由系编号、系名、办公地三个字段组成。它有两个子女结点教研室和学生。记录型教研室是系的子女结点,同时又是教师的双亲结点,它是教研室编号、教研室名两个字段组成。记录类型学生由学号、姓名、年龄三个字段组成。记录教师由教师号、姓名、研究方向三个字段组成。学生与教师是叶结点,它们没有子女结点。由系到教研室、教研室到教师、系到学生均是一对多的联系。 图1.18 教师-学生数据库模型

图1.19是图1.18数据库模型的一个值。

钱学忠 李京 主编

图1.19 教师-学生数据库的一个值 2)网状模型的实例

下面以教师授课为例,教师授课数据库可包含三个记录:教师、课程和授课。

每个教师可以讲授多门课程,显然对教师记录中的一个值,授课记录中可以有多个值与之联系,而授课记录中的一个值,只能与教师记录中的一个值联系。教师与授课之间联系是一对多的联系联系名为T-TC。同样,课程与授课之间的联系也是一对多的联系,联系名为C-TC。图1.24为教师授课数据库的网状数据库模式。

图1.24 教师、课程、授课的网状数据库模式 教师授课数据库的实例如图1.25所示。 图1.25 教师/授课/课程的网状数据库实例 3)关系模型的实例

10、试述层次、网状和关系数据库的优缺点。 解:

1)层次模型的优缺点 层次模型的优点:

(1)层次模型本身比较简单。

(2)对于实体间联系是固定的,且预先定义好的应用系统,采用层次模型来实现,其性能较优。 (3)层次模型提供了良好的完整性支持。 层次模型的缺点主要有:

(1)现实世界中很多联系是非层次性的,如多对多联系,一个结点具有多个双亲等,层次模型表示这类联系的方法很笨拙,只能通过引入冗余数据或创建非自然的数据组织来解决。 (2)对插入和删除操作的限制太多,影响太大。

(3)查询子女结点必须通过双亲结点,缺乏快速定位机制。 (4)由于结构严密,层次命令趋于程序化。 2)网状模型的优缺点 网状模型的优点主要有:

(1)能够更为直接地描述现实世界,如一个结点可以有多个双亲。 (2)具有良好的性能,存取效率较高。 网状模型的缺点主要有:

(1)结构比较复杂,而且随着应用环境的扩大,数据库的结构就变得越来越复杂,不利于最终用户掌握。 (2)其DDL、DML语言复杂,用户不容易使用。

由于记录之间联系是通过存取路径实现的,应用程序在访问数据时必须选择适当的存取路径,因此,用户必须了解系统结构的细节,加重了编写程序的负担。 3)关系模型的优缺点 关系模型具有下列优点:

(1)关系模型与非关系模型不同,它有较强的数学理论基础。

钱学忠 李京 主编

(2)数据结构简单、清晰,用户易懂易用,不仅用关系描述实体,而且用关系描述实体间的联系。 (3)关系模型的存取路径对用户透明,从而具有更高的数据独立性、更好的安全保密性,也简化了程序员的工作和数据库开发和建立的工作。

关系模型具有查询效率不如非关系模型效率高的缺点。因此,为了提高性能,必须对用户的查询进行优化,增加了开发数据库管理系统的负担。 11、定义并理解关系模型中的以下术语: 关系、元组、属性、主码、域、分量、关系模式 解:

关系:一个关系对应一张二维表,如一张教师登记表称为教师关系。 元组:二维表中的一行称为一个元组。

属性:二维表中的一列称为一个属性,对应每一个属性的名字称为属性名。

主码:如果二维表中的某个属性或是属性组可以唯一确定一个元组,则称为主码,也称为关系键,如教师号,可以唯一确定一个教师,也就成为教师关系的主码。

域:属性的取值范围称为域,如人的年龄一般在1-120岁之间,大学生的年龄属性的域是14-38,性别的域是男和女等等。

分量:元组中的一个属性值。例如,教师号对应的值001、002、003都是分量。 关系模式:表现为关系名和属性的集合,是对关系的具体描述。一般表示为: 关系名(属性1,属性2,…,属性N)

例如教师关系可描述为:教师(教师号,姓名,年龄,职称) 12、数据库系统的三级模式结构是什么?为什么要采用这样的结构? 解:

1)从数据库管理系统内部系统结构看,数据库系统通常采用三级模式结构。 数据库系统的三级模式结构是指外模式、模式和内模式。如图1.28所示。 图1.28 数据库系统的三级模式结构

(1)外模式(External Schema):外模式也称子模式(SubSchema)或用户模式,是三级模式的最外层,它是数据库用户能够看到和使用的局部数据的逻辑结构和特征的描述。数据库管理系统(DBMS)提供子模式描述语言(子模式DDL)来定义子模式。

(2)模式(Schema):模式又称概念模式,也称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图,是数据视图的全部。它是数据库系统模式结构的中间层,既不涉及数据的物理存储细节和硬件环境,也与具体的应用程序,与所使用的应用开发工具及高级程序设计语言等无关。 概念模式实际上是数据库数据在逻辑级上的视图。一个数据库只有一个模式。DBMS提供模式描述语言(模式DDL)来定义模式。

(3)内模式(Internal Schema):内模式也称为存储模式,一个数据库只有一个内模式。它是数据物理结构和存储方式的描述,是数据在数据库内部的表示方式。DBMS提供内模式描述语言(内模式DDL)来严格地定义内模式。

为了能够在内部实现这三个抽象层次的联系和转换,数据库管理系统在这三级模式之间提供了两层映象:外模式/模式映象,模式/内模式映象。

2)数据库管理系统内部采用这样的结构是因为:

这种结构能较好地保证数据库系统的数据具有较高的逻辑独立性和物理独立性。数据库的二级映象保证了数据库外模式的稳定性,从而根本上保证了应用程序的稳定性,使得数据库系统具有较高的数据与程序的独立性。数据库的三级模式与二级映象使得数据的定义和描述可以从应用程序中分离出去。又由于数据的存取由DBMS管理,用户不必考虑存取路径等细节,从而简化了应用程序的编制,大大减少了应用程序的维护和修改。

13、数据独立性包括哪两个方面,含义分别是什么?

钱学忠 李京 主编

解:

数据独立性分为数据逻辑独立性与数据物理独立性两个方面。 1)数据逻辑独立性

当模式改变时,由数据库管理员对各个外模式/模式映象作相应改变,可以使外模式保持不变。应用程序是依据数据的外模式编写的,从而应用程序不必修改,保证了数据与程序的逻辑独立性,简称为数据逻辑独立性。

2)数据物理独立性

当数据库的存储结构等内模式改变了,由数据库管理员对模式/内模式映象作相应改变,可以使模式保持不变,从而应用程序也不必改变。保证了数据与程序的物理独立性,简称为数据物理独立性。 14、数据库管理系统有哪些主要功能? 解:

数据库管理系统是数据库系统的核心组成部分,是对数据进行管理的大型系统软件,用户在数据库系统中的一些操作,例如:数据定义、数据操纵、数据查询和数据控制,这些操作都是由数据库管理系统来实现的。

数据库管理系统主要包括以下几个功能:

(1)数据定义:DBMS提供数据定义语言(Data Definition Language,简称DDL),用户通过它可以方便地对数据库中的数据对象(包括表、视图、索引、存储过程等)进行定义。定义相关的数据库系统的结构和有关的约束条件。

(2)数据操纵:DBMS提供数据操纵语言(Data Manipulation Language,简称DML),通过DML操纵数据实现对数据库的一些基本操作,如查询,插入,删除和修改等等。其中,国际标准数据库操作语言——SQL语言,就是DML的一种。

(3)数据库的运行管理:这一功能是数据库管理系统的核心所在。DBMS通过对数据库在建立、运用和维护时提供统一管理和控制,以保证数据安全、正确、有效的正常运行。DBMS主要通过数据的安全性控制、完整性控制、多用户应用环境的并发性控制和数据库数据的系统备份与恢复四个方面来实现对数据库的统一控制功能的。

(4)数据库的建立和维护功能:数据库的建立和维护功能包括数据库初始数据的输入、转换功能、数据库的转储、恢复功能、重组织功能和性能监视、分析功能等。 15、数据库系统通常由哪几部分组成? 解:

数据库系统是指计算机系统中引入数据库后的整个人机系统。为此,数据库系统应由计算机硬件、数据库、计算机软件及各类人员组成。

1)硬件平台:要有足够大的内存支持OS与DBMS的运行;要有足够大而快速的磁盘等直接存储设备存放数据库,有足够的磁盘空间做数据备份。要求系统有较高的通道能力,以支持数据较高的传送率。 2)数据库:数据库是存放数据的地方,是存储在计算机内有组织的大量可共享的数据集合。数据库这里主要是指物理存储设备中有效组织的数据集合。 3)软件:数据库系统的软件主要包括: (1)支持DBMS运行的操作系统;

(2)DBMS:DBMS可以通过操作系统对数据库的数据进行存取、管理和维护; (3)具有与数据库接口的高级语言及其编译系统;

(4)以DBMS为核心的应用开发工具,为特定应用环境开发的数据库应用系统。

4)用户:用户主要有以下几种:用于进行管理和维护数据库系统的人员——数据库管理员;用于数据库应用系统分析设计的人员——系统分析员和数据库设计人员;用于具体开发数据库系统的人员——数据库应用程序员;用于使用数据库系统的人员——最终用户。

这里的最终用户,又可以分为三类:偶然用户、简单用户、复杂用户等。

钱学忠 李京 主编

16、设学生含有学号、姓名、性别、系别、选修课程、平均成绩(是经计算得到的)等信息,若把选修课程、平均成绩也作为学生的属性,请用E-R图表示学生信息。

17、请用扩展E-R图来表示客户的相关信息。客户含有姓名(由姓和名两部分组成)、客户号、电话(客户一般有多个电话)、出生日期、年龄、地址(含省、市、街道名、街道号、楼道号、房号与邮政编码)。 18、请用扩展E-R图中的实体角色的表示方法来分别表示:学生与学生间的班长关系与课程之间的先修关系等。

19、请用扩展E-R图的表示方法来表示公司生产特有产品的关系,其中公司含有公司名、地址、联系电话等信息,产品含有产品名与价格等信息。

20、请用扩展E-R图的表示方法来表示如下信息:人有姓名、所在城市等信息;人可分成客户(含购买金额)和雇员(有雇员号、薪水信息等)两类;雇员可再分为办公人员(有累计办公天数信息)、车间职员(有累计产生产品数量信息)、销售人员(有累计销售数量与销售金额信息)等三类。

21、请用扩展E-R图的聚集表示方法来表示如下信息:制造商有名称与地址信息、批发商有名称与地址信息、产品有产品名与价格信息。制造商与批发商联营产品的销售有个具体的时间,共同联营的产品才共同负责发送。

22、设要为医院的核心主题建立概念模型E-R图,包括病人、医生及病人的病历。其中医生有姓名与专长信息;病人有姓名、身份证号、保险号等信息;病历有门诊日期、诊断病症、治疗方法及治疗结果等信息。病人找医生治疗有个具体的时间。

保险号

医生

专长

姓名

病人

身份证号

m

治疗方法

诊治

n

姓名

治疗时间

门诊日期

治疗结果

钱学忠 李京 主编

第2章 关系数据库

一、单项选择题 1、A 2、C 3、B 4、C 5、A 6、B 7、B 8、B 9、C 10、C

1、设关系R和S的属性个数分别为r和s,则(R×S)操作结果的属性个数为( ) A. r+s B. r-s C. r×s D. max(r,s)

2、在基本的关系中,下列说法正确的是( ) A. 行列顺序有关 B. 属性名允许重名

C. 任意两个元组不允许重复 D. 列是非同质的 3、有关系R和S,R∩S的运算等价于( ) A.S-(R-S) B.R-(R-S) C.(R-S)∪S D.R∪(R-S)

4、设关系R(A,B,C)和S(A,D),与自然连接R ∞ S等价的关系代数表达式是( ) 1=1

A. σR.A=S.A(R×S) B. R S

C. ∏B,C,S.A,D(σR.A=S.A(R×S)) D. ∏R.A,B,C(R×S) 5、五种基本关系代数运算是( ) A. ∪、-、×、π和σ B. ∪、-、 、∏和σ C. ∪、∩、×、π和σ D. ∪、∩、 、π和σ 6、关系代数中的θ联接操作由( )操作组合而成。 A.σ和π B.σ和× C.π、σ和× D.π和×

7、在关系数据模型中,把( )称为关系模式。 A.记录 B.记录类型 C.元组 D.元组集

8、对一个关系做投影操作后,新关系的基数个数( )原来关系的基数个数。 A.小于 B.小于或等于 C.等于 D.大于

9、有关系:R(A,B,C)主键=A,S(D,A)主键=D,外键=A,参照R的属性A,系R和S的元组如下:指出关系S中违反关系完整性规则的元组是( )。 R: A B C S: D A 1 2 3 1 2 2 1 3 2 null 3 3 4 1

A. (1,2) B. (2,null) C. (3,3) D. (4,1)

10、关系运算中花费时间可能最长的运算是( )。 A.投影 B.选择 C.广义笛卡儿积 D.并 二、填 空

1、关系中主码的取值必须惟一且非空,这条规则是_实体_完整性规则。

钱学忠 李京 主编

2、关系代数中专门的关系运算包括:选择、投影、连接和除法,主要实现_查询_类操作。 3、关系数据库的关系演算语言是以_谓词演算_为基础的DML语言。 4、关系数据库中,关系称为_表__,元组亦称为__行__,属性亦称为_列__。 5、数据库描述语言的作用是_定义数据库_。

6、一个关系模式可以形式化地表示为_R(U,D,dom,F)_。 7、关系数据库操作的特点是__一次一集合_式操作。

8.数据库的所有关系模式的集合构成_关系数据库模型_,所有的关系集合构成_关系数据库_。

9、在关系数据模型中,两个关系R1与R2之间存在1:m的联系,可以通过在一个关系R2中的_外键或外码或外部关键字_在相关联的另一个关系R1中检索相对应的记录。

10、将两个关系中满足一定条件的元组连接到一起构成新表的操作称为_θ-连接_操作。 三、简单、计算或查询

1、试述关系模型的三要素内容。 解:

1)关系模型的数据结构——关系

关系模型的数据结构:非常单一,在用户看来,关系模型中数据的逻辑结构是一张二维表。但关系模型的这种简单的数据结构能够表达丰富的语义,描述出现实世界的实体以及实体间的各种联系。

2)关系模型的关系操作:关系模型给出了关系操作的能力,它利用基于数学的方法来表达关系操作,关系模型给出的关系操作往往不针对具体的RDBMS语言来表述。

关系模型中常用的关系操作包括:选择(select)、投影(project)、连接(join)、除(divide)、并(union)、交(intersection)、差(difference)等查询(query)操作和添加(insert)、删除(delete)、修改(update)等更新操作两大部分。查询的表达能力是其中最主要的部分。

早期的关系操作能力通常用代数方式或逻辑方式来表示,分别称为关系代数和关系演算。关系代数是用对关系的运算(即元组的集合运行)来表达查询要求的方式。关系演算是用谓词来表达查询要求的方式。关系演算又可按谓词变元的基本对象是元组变量还是域变量分为元组关系演算和域关系演算。关系代数、元组关系演算和域关系演算三种语言在表达功能上是等价的。

另外还有一种介于关系代数和关系演算之间的语言SQL(Structured Query Language)。SQL不但具有丰富的查询功能,而且具有数据定义、数据操纵和数据控制功能,是集查询、DDL、DML、DCL于一体的关系数据语言。它充分体现了关系数据语言的特点和优点,是关系数据库的国际标准语言。因此,关系数据语言可以分成三类:

(1) 关系代数:用对关系的集合运算表达查询要求,例如 ISBL。

(2) 关系演算:用谓词表达查询要求,可分为两类:①元组关系演算:谓词变元的基本对象是元组变量,例如 APLHA、QUEL;②域关系演算:谓词变元的基本对象是域变量,例如QBE。 (3) 关系数据语言,例如SQL。

这些关系数据语言的共同特点是:语言具有完备的表达能力,是非过程化的集合操作语言,功能强,能够嵌入到高级语言中使用。

3)关系模型的三类完整性约束:关系模型提供了丰富的完整性控制机制,允许定义三类完整性:实体完整性、参照完整性和用户自定义的完整性。其中实体完整性和参照完整性是关系模型必须满足的完整性约束条件,应该由关系系统自动支持。用户自定义的完整性是应用领域特殊要求而需要遵循的约束条件,体现了具体领域中的语义约束。

2、试述关系数据库语言的特点和分类。 解:见上题“2)关系模型的关系操作”。

3、定义并理解下列概念,说明它们间的联系与区别: (1)域、笛卡尔积、关系、元组、属性 (2)主码、候选码、外码

钱学忠 李京 主编

(3)关系模式、关系、关系数据库 解:

(1)域、笛卡尔积、关系、元组、属性

1)域:域是一组具有相同数据类型的值的集合。

2)笛卡尔积:给定一组域D 、D 、…、D (这些域中可以包含相同的元素,即可以完全不同,也可以部分或全部相同), D 、D 、…、D 的笛卡尔积为

D ×D ×…×D ={(d ,d ,…,d)|d ∈D ,i=1,2,…,n}

3)关系(Relation):D ×D ×…×D 的任一子集叫作在域D ,D ,…D 上的关系,用 R(D ,D ,…D )表示。 关系是笛卡尔积的子集,反过来说,看到某关系,也要看到该关系背后存在的其所属于的笛卡尔积,关系内容无论如何变都变化不出其所属于的笛卡尔积的,这是笛卡尔积概念的意义所在。 4)表的每行对应一个元组。

5)表的每列起一个唯一的名字,称为属性。 联系:

关系是笛卡尔积的子集,所以关系也是一个二维表,表的每行对应一个元组,表的每列对应一个域。由于域可以相同,为了加以区分,必须对每列起一个唯一的名字,称为属性。 (2)主码、候选码、外码

1)候选码:若关系中的某一属性组的值能唯一地标识一个元组,则称该属性组为候选码(Candidate key),关系至少含有一个候选码。

2)主码:一个关系至少有一个候选码,则选定其中一个为主控使用者,称为主码(Primary key)。 3)外码:设F是基本关系R的一个或一组属性,但不是关系R的码,如果F与基本关系S的主码Ks相对应,则称F是基本关系R的外码(Foreign key)。 联系:

关系的候选码中选定一个称为主码,主码即是候选码;而外码是与另一关系的主码相对应的属性组。 (3)关系模式、关系、关系数据库

关系数据库中,关系模式是型,关系是值。关系模式是对关系的描述,一个关系模式应当是一个5元组。 1)关系模式:关系的描述称为关系模式(Relation Schema)。一个关系模式应当是一个五元组。它可以形式化地表示为:R(U, D, dom, F)。其中R为关系名,U为组成该关系的属性名集合,D为属性组U中属性所来自的域的集合,dom为属性向域的映象集合,F为属性间数据的依赖关系集合。

2)关系:关系实际上就是关系模式在某一时刻的状态或内容。也就是说,关系模式是型,关系是它的值。 3)关系数据库:在关系模型中,实体以及实体间的联系都是用关系来表示。在一个给定的现实世界领域中,所有实体及实体之间的联系的关系的集合构成一个关系数据库。 联系:

关系模式是静态的、稳定的,而关系是动态的、随时间不断变化的,因为关系操作在不断地更新着数据库中的数据。但在实际使用中,常常把关系模式和关系统称为关系,读者可以从上下文中加以区别。 关系的集合构成一个关系数据库,关系数据库也有型和值之分。关系数据库的型也称为关系数据库模式,是对关系数据库的描述,是关系模式的集合。关系数据库的值也称为关系数据库,是关系的集合。关系数据库模式与关系数据库通常统称为关系数据库。 4、关系数据库的完整性规则有哪些?试举例说明。 解:

1)关系模型的完整性规则是对关系的某种约束条件。关系模型中可以有三类完整性约束:实体完整性、参照完整性和用户定义的完整性。 2)

(1)实体完整性:若属性组(或属性)K是基本关系R的主码(或称主关键字),则所有元组K的取值唯一,并且K中属性不能全部或部分取空值。

钱学忠 李京 主编

例如:在课程关系T中,若“课程名”属性为主码,则“课程名”属性不能取空值,并且课程名要唯一。 (2)参照完整性:若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应(基本关系R和S可能是相同的关系),则对于R中每个元组在F上的值必须为:或者取空值(F的每个属性值均为空值);或者等于S中某个元组的主码值。

例如,对于“学生(学号,姓名,性别,年龄,系别号)、系别(系别号,系名)”两关系,“系别号”为学生关系的外码。它要满足参照完整性。对于学生关系中的每个元组的“系别号”属性只能取下面两类值:空值,表示尚未给该学生分配系别;非空值,则该值必须是系别关系中某个元组的“系别号”的值,表示该学生不可能分配到一个不存在的系中,即被参照关系“系别”中一定存在一个元组,它的主码值等于该参照关系“学生”中的外码值。

(3)用户定义的完整性:用户定义的完整性就是针对某一具体应用的关系数据库所制定的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求。

例如,对于学生关系中的年龄,我们可以按需要定义“年龄>8并且年龄<45”的自定义规则。 5、关系代数运算有哪两大类,试说明每种运算的操作含义。 解:

1)关系代数的运算按运算符的不同主要分为传统的集合运算和专门的关系运算两类。 (1)传统的集合运算:包括并、交、差、广义笛卡尔积四种运算。 (2)专门的关系运算:包括选择、投影、连接、除等。 2)各运算的操作含义

(1)并:设关系R和关系S具有相同的目n,且相应的属性取自同一个域,则关系R与关系S的并由属于R或属于S的所有元组组成。记作:R∪S={t|t R∨t S}

(2)差:设关系R和关系S具有相同的目n,且相应的属性取自同一个域,则关系R与关系S的差由属于R而不属于S的所有元组组成。记作:R-S={t| t R∧t S }

(3)交:设关系R和关系S具有相同的目n,且相应的属性取自同一个域,则关系R与关系S的交由既属于R又属于S的所有元组组成。记作:R∩S={t| t R∧t S} (4)广义笛卡尔积: ︵

两个分别为n目和m目的关系R和S的广义笛卡尔积是一个(n+m)列的元组的集合。元组的前n列是关系R的一个元组,后m列是关系S的一个元组。若R有k1个元组,S有k2个元组,则关系R和关系S的广义笛卡尔积有k1×k2个元组。记作: R×S={t t | t R∧t S}

(5)选择:选择又称为限制(Restriction)。它是在关系R中选择满足给定条件的诸元组,记作: (R) = {t|t∈R∧F(t)=“真”}

(6)投影:关系R上的投影是从R中选择出若干属性列组成新的关系。记作: ∏(R) = { t[A] | t R } (7)连接: ︵

连接也称为θ连接。它是从两个关系的广义笛卡尔积中选取属性间满足一定条件的元组。记作: ={ t t |t ∈R∧t ∈S∧t [A]θt [B] } ︵

θ为”=”的连接运算称为等值连接。它是从关系R与S的广义笛卡尔积中选取A、B属性值相等的那些元组。等值连接表示为:

={ t t | ∈R∧t ∈S∧t [A]=t [B]}。为此: = A=B(R×S) -

钱学忠 李京 主编

- ︵

自然连接(Natural join)是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且要在结果中把重复的属性去掉。即若R和S具有相同的属性组B,则自然连接可记作: R∞S={ trts[B]|tr∈R∧ts∈S∧tr[B]=ts[B]}。为此:R∞S=∏ ( R.B=S.B(R×S))

(8)除:给定关系R(X,Y)和S(Y,Z),其中X,Y,Z为属性组。R中的Y与S中的Y可以有不同的属性名,但必须出自相同的域。R与S的除运算得到一个新的关系P(X),P是R中满足下列条件的元组在X属性列上的投影:元组在X上分量值x的象集Yx包含S在Y上投影的集合。记作:P=R÷S ={tr[X]|tr∈R∧Yx ∏Y(S)},其中Yx为x在R中的象集,x=tr[X]。 6、关系代数的基本运算有哪些?请用基本运算表示非基本运算。 解:

1)8种关系代数运算中并、差、广义笛卡尔积、投影和选择5种运算为基本的关系代数运算。 2)另外3种运算,即交、连接和除为非基本运算,均可以用这5种基本运算来表达。表达如下: (1)R∩S=R-(R-S) 或 R∩S=S-(S-R) (2) = AθB(R×S) -

= A=B(R×S)

R∞S=∏ ( R.B=S.B(R×S)) (3)

R÷S =∏X(R)-∏X(∏X(R)×∏Y(S)-R)

7、举例说明等值连接与自然连接的区别与联系。 解: ︵

θ为”=”的连接运算称为等值连接。它是从关系R与S的广义笛卡尔积中选取A、B属性值相等的那些元组。等值连接表示为:

={ t t | ∈R∧t ∈S∧t [A]=t [B]}。为此: = A=B(R×S) - - ︵

自然连接(Natural join)是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且要在结果中把重复的属性去掉。即若R和S具有相同的属性组B,则自然连接可记作: R∞S={ trts[B]|tr∈R∧ts∈S∧tr[B]=ts[B]}。为此:R∞S=∏ ( R.B=S.B(R×S))

一般的连接操作是从行的角度进行运算。但自然连接还需要取消重复列,所以是同时从行和列的角度进行运算。

举例:设图2.10(a)和图2.10(b)分别为关系R和关系S, R.B=S.B

图2.10(d)为等值连接R∞S的结果,图2.10(e)为自然连接R∞S的结果。从中能明显看出其列数的不同。 R S

钱学忠 李京 主编

R.B=S.B

(a) (b)

(d) (e)

图2.10 连接运算举例

8、设有关系R、S(如下表所示),计算: R S A B C C D E 3 6 7 3 4 5 4 5 7 6 2 3 6 2 3 5 4 3 2<2

(1) R1 =R S (2) R2=R S (3) R3 = B=D(R×S) 解: (1) A B C D E 6 2 3 4 5 5 4 3 4 5

(2) A B R.C S.C D E 6 2 3 3 4 5

钱学忠 李京 主编

(3) 结果同(2)

9、请用抽象的元组关系演算表达式表达第8题中的R1、R2与R3关系。 解:

(1)R1= {t|($u)($v)( R(u)∧S(v)∧t[1]= u[1]∧t[2]= u[2]∧t[3]= u[3]∧t[4]= v[2]∧t[5]=v[3]∧u[3]= v[1])}

(2)R2= {t|($u)($v)( R(u)∧S(v)∧t[1]= u[1]∧t[2]= u[2]∧t[3]= u[3]∧t[4]= v[1]∧t[5]= v[2]∧t[6]=v[3]∧u[2]= v[2])} (3)同(2)

10、设有学生-课程关系数据库,它由三个关系组成,它们的模式是:学生S(学号SNO,姓名SN,所在系DEPT,年龄AGE)、课程C(课程号CNO,课程名CN,先修课号CPNO)、SC(学号SNO,课程号CNO,成绩SCORE)。

请用关系代数与ALPHA语言分别写出下列查询: (1) 检索学生的所有情况。

(2) 检索学生年龄大于等于20岁的学生姓名。 (3) 检索先修课号为C2的课程号。

(4) 检索选修了课程号C1成绩为A的所有学生姓名。 (5) 检索学号为S1的学生修读的所有课程名及先修课号。 (6) 检索年龄为23岁的学生所修读的课程名。

(7) 检索至少修读了学号为S5的学生修读的一门课的学生的姓名。 (8) 检索修读了学号为S4的学生所修读的所有课程的学生的姓名。 (9) 检索选修所有课程的学生的学号。 (10) 检索不选修任何课程的学生的学号。 (11) 在关系C中增添一门新课(新课信息自定)

(12) 学号为S17的学生因故退学请在S与SC中将其除名。 (13) 将关系S中学生S6的年龄改为22岁(只需ALPHA操作)。 (14) 将关系S中学生的年龄均增加1岁(只需ALPHA操作)。 解:

写出关系代数表达方式: (1) 检索学生的所有情况。 S 或 S SC C

(2) 检索学生年龄大于等于20岁的学生姓名。 πSN(σAGE>=20(S))

(3) 检索先修课号为C2的课程号。 πCNO(σCPNO= C2 (C))

(4) 检索选修了课程号C1成绩为A的所有学生姓名。 πSN(σCNO= C1 ∧SCORE= A (SC S))

(5) 检索学号为S1的学生修读的所有课程名及先修课号。 πCN,CPNO (σSNO= S1 (SC C))

(6) 检索年龄为23岁的学生所修读的课程名。 πCN (σAGE=23(S SC C))

(7) 检索至少修读了学号为S5的学生修读的一门课的学生的姓名。 πSN (S SC πCNO (σSNO= S5 (SC)))

(8) 检索修读了学号为S4的学生所修读的所有课程的学生的姓名。 πSN (S (πSNO,CNO (SC) πCNO (σSNO= S4 (SC))))

钱学忠 李京 主编

(9) 检索选修所有课程的学生的学号。 πSNO,CNO (SC) πCNO (C)

(10) 检索不选修任何课程的学生的学号。 πSNO (S) -πSNO (SC) 写出ALPHA 命令:

(1) 检索学生的所有情况。S S SCC GET W(S)

GET W(S,SC,C): S.SNO=SC.SNO∧ O =O (2) 检索学生年龄大于等于20岁的学生姓名。πSN(σAGE>=20(S)) GET W(S.SN): (S.AGE>=20)

(3) 检索先修课号为C2的课程号。πCNO(σCPNO= C2 (C)) GET W(O): (C.CPNO=’C2’)

(4) 检索选修了课程号C1成绩为A的所有学生姓名。 πSN(σCNO= C1 ∧SCORE= A (SC C)) RANGE SC SCX

GET W(S.SN): SCX (SCX.SNO=S.SNO∧ O=’C1’∧ SCX.SCORE=’A’) (5) 检索学号为S1的学生修读的所有课程名及先修课号。 πCN,CPNO (σSNO= S1 (SC S)) RANGE SC SCX

GET W(,C.CPNO): SCX (O=O∧ SCX.SNO=’S1’) (6) 检索年龄为23岁的学生所修读的课程名。 πCN (σAGE=23(S SC C)) RANGE S SX SC SCX

GET W(): SX SCX (SX.SNO=SCX.SNO∧ O=O∧ SX.AGE=23) (7) 检索至少修读了学号为S5的学生修读的一门课的学生的姓名。 πSN (S SC πCNO (σSNO= S5 (SC))) RANGE SC SCX SC SCY

GET W(S.SN): SCX SCY (SCX.SNO=’S5’∧ SCY.SNO=S.SNO∧ O=O) 或

RANGE C CX SC SCX SC SCY

GET W(S.SNO): CX( SCX (SCX.SNO=’S5’∧ O=O)-> SCY (SCY.SNO=S.SNO ∧ O=O))

(8) 检索修读了学号为S4的学生所修读的所有课程的学生的姓名。 πSN (S (πSNO,CNO (SC) πCNO (σSNO= S4 (SC)))) RANGE C CX SC SCX SC SCY

GET W(S.SNO): CX( SCX (SCX.SNO=’S4’∧ O=O)-> SCY (SCY.SNO=S.SNO ∧ O=O))

钱学忠 李京 主编

也可以变换( A -> B≡ ﹁ A ∨ B X(A) ≡ ﹁ X(﹁ A ))

真值表 A B A -> B ≡ ﹁ A ∨ B T T T T T F F F F T T T F F T T

RANGE C CX SC SCX SC SCY

GET W(S.SNO): CX( SCX (SCX.SNO=’S4’∧ O=O)-> SCY (SCY.SNO=S.SNO ∧ O=O))

GET W(S.SNO): CX(﹁( SCX (SCX.SNO=’S4’∧ O=O))∨( SCY (SCY.SNO=S.SNO ∧ O=O)))

GET W(S.SNO):﹁ CX(﹁(﹁( SCX (SCX.SNO=’S4’∧ O=O))∨( SCY (SCY.SNO=S.SNO ∧ O=O))))

GET W(S.SNO):﹁ CX((( SCX (SCX.SNO=’S4’∧ O=O))∧ ﹁( SCY (SCY.SNO=S.SNO ∧ O=O))))

(9) 检索选修所有课程的学生的学号。πSNO,CNO (SC) πCNO (C) RANGE C CX SC SCX

GET W(S.SNO): CX SCX (O=O∧ S.SNO=SCX.SNO) 全称改存在为: RANGE C CX SC SCX

GET W(S.SNO):﹁CX(﹁SCX (O=O∧ S.SNO=SCX.SNO)) (10) 检索不选修任何课程的学生的学号。πSNO (S) -πSNO (SC) RANGE SC SCX

GET W(S.SNO): SCX(﹁(SCX.SNO=SNO)) 即:

RANGE SC SCX

GET W(S.SNO): SCX(SCX.SNO≠SNO) 或

全称改存在为:

GET W(S.SNO):﹁ SCX(﹁(﹁(SCX.SNO=SNO)) ) 即:

GET W(S.SNO):﹁ SCX(SCX.SNO=SNO)) 或

(你们的做法) RANGE SC SCX C CX

GET W(S.SNO): CX﹁( SCX(SCX.SNO=SNO∧O=O))

钱学忠 李京 主编

即:

RANGE SC SCX

GET W(S.SNO): CX SCX (SCX.SNO≠SNO ∨ O≠O) 全称改存在为: RANGE SC SCX C CX

GET W(S.SNO): CX﹁( SCX(SCX.SNO=SNO∧O=O))

GET W(S.SNO):﹁ CX﹁(﹁( SCX(SCX.SNO=SNO∧O=O))) GET W(S.SNO):﹁ CX( SCX(SCX.SNO=SNO∧O=O)) SQL命令见后

(11) 在关系C中增添一门新课 MOVE 'C9' TO O

MOVE '计算机系统结构' TO MOVE 'C4' TO W.CPNO PUT W(C)

(12) 学号为S17的学生因故退学请在S与SC中将其除名。 Hold W(SC):SNO=’S17’ DELETE W

Hold W(S):SNO=’S17’ DELETE W

(13) 将关系S中学生S6的年龄改为22岁(只需ALPHA操作)。 Hold W(SNO,AGE):SNO=’S6’ MOVE 22 TO W.AGE UPDATE W

(14) 将关系S中学生的年龄均增加1岁(只需ALPHA操作)。 Hold W(SNO,AGE)

MOVE W.AGE+1 TO W.AGE UPDATE W

写出SQL 命令(非本章要求):

9、设有学生-课程关系数据库,它由三个关系组成,它们的模式是:学生S(学号SNO,姓名SN,所在系DEPT,年龄AGE)、课程C(课程号CNO,课程名CN,先修课号CPNO)、SC(学号SNO,课程号CNO,成绩G)。

请用关系代数与ALPHA语言分别写出下列查询: (1) 检索学生的所有情况。 S S SCC GET W(S)

GET W(S,SC,C): S.SNO=SC.SNO∧ O =O SELECT * FROM S

(2) 检索学生年龄大于等于20岁的学生姓名。 πSN(σAGE>=20(S))

GET W(S.SN): (S.AGE>=20) SELECT SN FROM S

钱学忠 李京 主编

WHERE S.AGE>=20

(3) 检索先修课号为C2的课程号。 πCNO(σCPNO= C2 (C))

GET W(O): (C.CPNO=’C2’) SELECT CNO FROM C

WHERE C.CPNO=’C2’

(4) 检索选修了课程号C1成绩为A的所有学生姓名。 πSN(σCNO= C1 ∧SCORE= A (SC C)) RANGE SC SCX

GET W(S.SN): SCX (SCX.SNO=S.SNO∧ O=’C1’∧ SCX.SCORE=’A’) SELECT SN FROM S,SC

WHERE S.SNO=SC.SNO AND O=’C1’ AND SC.SCORE=’A’ (5) 检索学号为S1的学生修读的所有课程名及先修课号。 πCN,CPNO (σSNO= S1 (SC S)) RANGE SC SCX

GET W(,C.CPNO): SCX (O=O∧ SCX.SNO=’S1’) SELECT ,C.CPNO FROM C,SC

WHERE O=O AND SC.SNO=’S1’ (6) 检索年龄为23岁的学生所修读的课程名。 πCN (σAGE=23(S SC C)) RANGE S SX SC SCX

GET W(): SX SCX (SX.SNO=SCX.SNO∧ O=O∧ SX.AGE=23) SELECT FROM S,SC,C

WHERE S.SNO=SC.SNO AND O=O AND S.AGE=23 (7) 检索至少修读了学号为S5的学生修读的一门课的学生的姓名。 πSN (S SC πCNO (σSNO= S5 (SC))) RANGE SC SCX SC SCY

GET W(S.SN): SCX SCY (SCX.SNO=’S5’∧ SCY.SNO=S.SNO∧ O=O) 或

RANGE C CX SC SCX SC SCY

GET W(S.SNO): CX( SCX (SCX.SNO=’S5’∧ O=O)-> SCY (SCY.SNO=S.SNO ∧ O=O)) SELECT S.SNO FROM S,SC X,SC Y

WHERE S.SNO=Y.SNO AND O=O AND X.SNO=’S5’ (8) 检索修读了学号为S4的学生所修读的所有课程的学生的姓名。

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

Top