搜档网
当前位置:搜档网 › 数据库系统原理04735课后习题参考答案

数据库系统原理04735课后习题参考答案

数据库系统原理04735课后习题参考答案
数据库系统原理04735课后习题参考答案

数据库系统原理课后习题

第一章. 数据库系统基本概念

1.1.名词解释

DB——DB是长期存储在计算机内、有组织的、统一管理的相关数据的集合。DB能为各种用户共享,具有较小冗余度、数据间联系紧密而又有较高的数据独立性等特点。

DBMS——是位于用户与操作系统之间的一层数据管理软件,它为用户或应用程序提供访问DB的方法,包括DB的建立、查询、更新及各种数据控制。

DBS——是实现有组织地、动态地存储大量关联数据、方便多用户访问的计算机硬件、软件和数据资源组成的系统,即它是采用数据库技术的计算机系统。

联系——是实体间的相互关系。

联系的元数——与一个联系有关的实体集个数。

1:1联系——如果实体集E1中每个实体至多和实体集E2中一个实体有联系,反之亦然,那么实体集E1和E2的联系称为“一对一联系”,记为“1:1”。

1:N联系——如果实体集E1中的每个实体可以与实体集E2中的任意个(0个或多个)实体有联系,而E2中的每个实体至多和E1中的一个实体有联系,那么称E1对E2的联系是一对多联系,记作:“1:N ”。

M:N联系——如果实体集E1中的每个实体可以与实体集E2中的任意个(0个或多个)实体有联系,反之亦然,那么称E1和E2的联系是“多对多联系”,记作“M:N”。

数据模型——在数据库技术中,我们用数据模型的概念描述数据库的结构和语义,对现实世界的数据进行抽象。根据数据抽象级别定义了四种模型:概念数据模型、逻辑数据模型、外部数据模型和内部数据模型。

概念模型——表达用户需求观点的数据全局逻辑结构的模型。

逻辑模型——表达计算机实现观点的DB全局逻辑结构的模型。主要有层次、网状、关系模型等三种。

外部模型——表达用户使用观点的DB局部逻辑结构的模型。

内部模型——表达DB物理结构的模型。

层次模型——用树型(层次)结构表示实体类型及实体间联系的数据模型。

网状模型——用有向图结构表示实体类型及实体间联系的数据模型。

关系模型——是由若干个关系模式组成的集合。关系模式相当于记录类型,它的实例是关系,每个关系实际上是一张二维表格。

外模式——用户与数据库系统的接口,是用户用到的那部分数据的描述。外模式由若干个外部记录类型组成。逻辑模式——是数据库中全部数据的整体逻辑结构的描述。它由若干个逻辑记录类型组成,还包含记录间联系、数据的完整性、安全性等要求。

内模式——是数据库在物理存储方面的描述,定义所有内部记录类型、索引和文件的组织形式,以及数据控制方面的细节。

外模式/逻辑模式映像——存在于外模式和逻辑模式之间,用于定义外模式和逻辑模式之间的对应性,一般放在外模式中描述。

逻辑模式/内模式映像——存在于逻辑模式和内模式之间,用于定义逻辑模式和内模式之间的对应性,一般放在内模式中描述。

数据独立性——是指应用程序和数据库的数据结构之间相互独立,不受影响。在修改数据结构时,尽可能不修改应用程序。分物理数据独立性和逻辑数据独立性两个级别。

物理数据独立性——对内模式修改时,对逻辑模式/内模式像作相应修改,可以尽量不影响逻辑模式。

逻辑数据独立性——逻辑模式修改时,对外模式/逻辑模式映像作相应修改,可以使外模式和应用程序保持不变。主语言——在数据库技术中,用于编写应用程序的高级程序设计语言。

DDL——数据定义语言。DBMS提供DDL定义数据库的三级结构、两级映像,定义数据的完整性约束、保密限制等约束。

DML——数据操纵语言。DBMS提供DML实现对数据的操作。基本的数据操作有两类:检索(查询)、更新(插入、删除、修改)。分为过程性DML和非过程DML两种。

过程性DML——是指用户编程时,不仅需要指出“做什么”(需要什么样的数据),还需要指出“怎么做”(怎

非过程性DML——用户编程时,只需要指出“做什么”,不需要提出“怎么做”。如关系型DML。DD——数据库系统中存放三级结构定义的数据库。它还存放数据库运行时的统计信息。

DD系统——管理DD的子系统。

1.2.人工管理阶段的数据管理有哪些特点?

1)数据不保存在计算机里

2)没有专门的软件进行对数据库管理

3)只有程序概念,没有文件概念

4)数据面向程序

1.3.文件系统阶段的数据管理有哪些特点?

1)数据以文件形式长期存储在外部存储器的磁盘上

2)数据的逻辑结构和物理结构有了区别,但比较简单

3)文件组织多样化,有了索引文件、链接文件和直接存取文件等

4)数据不再属于某个特定程序,可重复使用,即数据面向应用

5)对数据的操作以记录为单位

1.4.文件系统阶段的数据管理有哪些缺陷?请举例说明?

1)数据冗余、数据不一致、数据联系弱

2)比如建立了职工档案、职工工资和职工保健三个文件,职工的电话在三个文件中重复出现,即数

据冗余。

1.5.数据管理的数据库阶段产生的标志是哪三件事情?

1)1968年IBM公司推出层次模型IMS系统

2)1969年美国CODASYL组织发布了DBTG报告

3)1970年IBM公司的E .F.Codd连续发表论文,提出关系模型

1.6.数据库阶段的数据管理有哪些特色?

1)采用了数据模型表示复杂的数据结构

2)有较高的数据独立性

3)数据库系统提供了方便的用户接口

4)数据库系统提供了四个方面的数据控制功能:数据库的恢复、数据的并发控制、数据的完整性、

数据完全性。

5)增加了系统的灵活性:对数据的操作不一定以记录为单位,可以以数据项为单位。

1.7.高级数据库阶段有哪些技术?

面向对象的概念建模、开放数据库互联技术

1.8.逻辑记录与物理记录,逻辑文件与物理文件有哪些联系和区别?

数据描述有两种形式:物理数据描述和逻辑物理描述。

物理数据描述是指数据在存储设备上的描述,物理数据是存储在物理设备上的数据,物理记录和物理文件都是用来描述存储数据的细节。

逻辑数据描述是用户或程序员以操作的数据形式的描述,逻辑记录和逻辑文件都是用户观点的数据描述。

1.9.数据抽象过程有哪些步骤?

1)根据用户的需求,设计数据的概念模型。

2)根据转换原则,把概念模式转换成逻辑模型。

3)根据用户的业务特点,设计不同的外部模型,供程序员使用。

4)根据逻辑模型设计内部模型,实现数据库。

1.10.概念模型、逻辑模型、外部模型、内部模型各具有哪些特点?

概念模型:

表达了数据的整体逻辑结构,它是系统用户对整个应用程序涉及数据的全面描述。从用户的需求的观点,对数据建模。独立于硬件和软件。它是数据库设计人员和用户之间的交流工具。

逻辑模型:

实现的观点,对数据建模。独立于硬件,但依赖软件DBMS。它是数据库设计人员和应用程序员的交流工具。

外部模型:

逻辑模型的一个逻辑子集,独立于硬件,但依赖软件,反映了用户使用数据库的观点。

内部模型:

是数据库最底层抽象,它描述数据在外存上存储方式、存储设备和存储方法。与硬件和软件关系密切。

1.11.试叙述层次、网状和关系三种逻辑模型的区别

层次模型:用树型结构表示,较复杂,表示1:N,记录间联系用指针实现,过程性DML;

网状模型:用向图结构表示,较复杂,表示1:N/M:N,记录间联系用指针实现,过程性DML;

关系模型:用关系模式集合表示,较简单,表示1:N/M:N,记录间联系用关键码实现,非过程性DML;

1.1

2.外部模型使数据库系统有哪些优点?

简化了用户观点;

有助于数据库的安全保护;

外部模型是对概念模型的支持;

1.13.数据独立性和数据联系这两个概念有什么区别?

数据独立性是指应用程序和数据之间相互独立,不受影响。

数据联系是指同一记录内部各字段间的联系,以及和记录之间的联系。

1.14.试叙述用户、DB的三级模式结构、磁盘上的物理文件之间有些什么联系和不同?

在用户到数据库之间,DB的数据结构有三个层次:外部模型、逻辑模型、内部模型。这三个层次要用DB的数据定义语言定义后的内容是外模式、逻辑模式、内模式。

用户使用DB的数据操纵语句实际上是对外模式的外部记录进行操作,而不是数据库的内部记录值;逻辑模式提供了连接内外模式的中间观点,使得两级中任何一级的改变都不受另一级的牵制,逻辑模式不涉及到存储结构、访问技术等细节。内模式并不涉及物理设备的约束,那一部分由操作系统完成。

如磁盘读写数据的操作。

1.15.试述DBMS的工作模式和主要功能。

DBMS的工作模式:

1)接受应用程序的数据请求和处理请求

2)将用户的数据请求转换成复杂的机器代码

3)实现对数据库的操作

4)从对数据库的操作中接受查询结果

5)对查询结果进行处理

6)将处理结果返回用户

DBMS主要功能:

数据库的定义功能

数据库的操纵功能

数据库的保护功能

数据库的维护功能

数据字典

1.16.什么是DB的系统缓冲区?其作用是什么?

DBMS为应用程序在内存中开辟的一个DB的系统缓冲区。用于数据的传输和格式的转换。

1.17.DBS由哪几部分组成?它有哪些系统软件?其中DD有什么作用?

DBS由DB、硬件、软件、DBA组成

它有DBM、OS、各种主语言和应用开发软件等系统软件

DD是用来存放三级数据结构定义的数据库,用来存储数据运行时的统计信息。

1.18.什么是DBA?DBA应具有什么素质?DBA的职责是什么?

DBA是控制数据整体结构的一组人员,负责DBS的正常运行,承担创建、监控和维护数据库结构的责

DBA需具有下来素质:

熟悉全部数据的性质和用途、对所有用户需求的了解、对系统性能的熟悉度、兼有系统分析员和运筹学专家的知识和品质。

DBA的职责:

定义模式、定义内模式、与用户的联络、定义安全性规则,对用户访问数据库授权、定义完整性规则,监督数据库的运行、数据库的转储和恢复工作。

1.19.试对DBS的全局结构作详细解释。

用户、DBMS(查询处理器、存储管理器)、磁盘存储器

1.20.从模块结构观察,DBMS由哪些部分组成?

查询处理器、存储管理器

1.21.使用DBS的用户有哪几类?

DBA、专业用户、程序员、终端用户

1.2

2.DBMS的查询处理器和存储管理器分别由哪几部分组成?

查询处理器:DDL解释器、DML编译器、嵌入式DML预编译器、查询求值引擎

存储管理器:权限和完整性管理器、事务管理器、文件管理器、缓冲区管理器

1.23.磁盘存储器中有哪五类主要的数据结构?

1)数据文件:存储数据库管理的用户数据自身。

2)数据字典:存储三级结构的描述。

3)索引:为提高查询速度而设置的逻辑排序手段。

4)统计数据:存储DBS运行时统计分析的数据。

5)日志:存储DBS运行时对DB的操作情况。

1.24.DBS能产生哪些效益?

灵活性、简易性、面向用户、加快应用程序的开发速度、维护方便、标准化

第二章. 数据库设计和ER模型

2.1名词解释

数据库工程——数据库应用系统的开发是一项软件工程,但又有自己的特点。

数据库系统生存期——数据库应用系统从规划、设计、实现、维护到最后被新的系统取代而停止使用的整个期间。

实体——是一个数据对象,指应用中可以区别的客观存在的事物。

实体集——同一类实体构成的集合。

实体类型——是对实体集中实体的定义。

实体标识符——在一个实体中,能够唯一标识实体的属性或属性集合。

联系——表示一个或多个实体间的关联关系。

联系集——同一类联系构成的集合。

联系类型——对联系集中联系的定义。

属性——实体的某一特性。

简单属性——不可再分隔的属性。

复合属性——可再分解为其它属性的属性。

单值属性——同一实体的属性只能取一个值。

多值属性——同一实体的属性可能取多个值。

存储属性——需要把属性值存入数据库的属性。

派生属性——不需要把属性值存入数据库,属性值可以从其它属性值推导出的属性。

联系元数(度数)——指一个联系涉及的实体集个数。

映射基数——实体集E1和E2之间有二元联系,则参与一个联系中的实体的个数称为映射基数。

部分参与——如果实体集中的只有部分实体参与联系集R的联系中,称实体集E部分参与。

关系模型——用二维表格表示实体集,用关键码表示实体间的联系的数据模型。

关系模式——关系模型中的记录类型。

关系实例——是一个属性集相同的元组的集合。

(关系)属性——关系模型中的字段。

(关系)域——关系模型中字段的取值范围。

(关系)元组——关系模型中的记录。

超键——在关系中能唯一标识元组的属性集,称为关系模式的超键。

候选键——不含有多余属性的超键。

主键——用户选作元组标识的候选键。

外键——如果模式R中的属性K是其它模式的主键,则K在模式R中称为外键。

实体完整性规则——要求关系中元组在组成主键的属性上不能有空值,否则就起不到唯一标识元组的作用了。参照完整性规则——如果属性集K是关系模式R1的主键,同时也是关系模式R2的外键,那么在R2中,K的取值只允许有两种可能,或者为空值,或者等于R1关系中的某个主键值。

弱实体——如一个实体对另一个实体(强实体)具有很强的依赖联系,而且该实体主键的一部分或全部从其强实体中获得,则该实体为弱实体。

子类实体——当较低层次上的实体类型表达了与之联系的较高层次上的实体类型的特殊情况时,就称较低层次上的实体类型为子类实体。

超类实体——当较低层次上的实体类型表达了与之联系的较高层次上的实体类型的特殊情况时,就称较低层次上的实体类型为子类实体。

2.2数据库设计的规划阶段应做哪些事情?

1)系统调查。画出应用单位组织结构图。

2)可行性分析。从技术、经济、效益、法律等各方面可行性进行分析,写出可行性分析报告,组织

专家讨论。

3)确定数据库系统的总目标,对应用单位的工作流程进行优化,制订项目开发计划。

获得决策部门批准后,正式进入数据库系统开发。

2.3数据库设计的需求分析阶段工作主要由哪四步组成?

1)分析用户活动,产生业务流程图

2)确定系统范围,产生系统关联图

3)分析业务活动所涉及的数据,产生数据流图

4)分析系统数据,产生数据字典

2.4在数据库设计中,为什么要有概念设计这一阶段?

使设计人员从用户的观点看待数据和处理需求、约束,产生反映用户观点的概念模型。将概念模设计从设计过程中独立开来,可以使数据库设计各阶段任务单一化,减少复杂度,便于组织管理,能较好地适应各种变化,转换成关系模式。

2.5试述概念设计的主要步骤?

1)进行数据抽象(聚集和概括方法),设计局部概念模型

2)将局部概念模型综合成全局概念模型(消除冲突)

3)评审(用户、DBA和开发人员评审)

2.6逻辑设计的目的是什么?试述逻辑设计阶段主要步骤及内容

逻辑设计的目的是将概念模型转换成与所选用的具体机器上所支持的数据模型相符合的逻辑模型。

逻辑设计阶段主要步骤:

1)将概念模型转换成逻辑模型

2)设计外模式

3)设计应用程序和数据库接口

4)评价模型(定量分析:处理频率、数据容量、性能测量)

2.7什么是数据库结构的物理设计?试述其具体步骤。

物理设计是对于给定的基本数据模型选取一个最适合应用环境的物理结构的过程。数据库的物理结构主要指数据库存储记录格式、存储记录安排、存取方法。

具体步骤:

1)存储记录结构设计:包括记录的组成、数据项的类型、长度,以及逻辑记录到存储记录的映射。

2)确定数据存放位置:可以把经常同时访问的数据组合在一起。

3)存取方法设计:存取路径分为主存取路径与辅存取路径,前者用于主键检索,后者用于辅助键检

索。

4)安全性和完整性考虑。

5)程序设计。

2.8数据库实现阶段主要有哪几件事情?

1)定义数据结构

2)数据装载:人工(刷选数据、转换数据格式、输入数据、校验数据)和计算机装载(筛选数据、

输入数据、效验数据、转换数据、综合数据)

3)编制和调试应用程序

4)数据库试运行。

2.9数据库系统投入运行后,有哪些维护工作?

1)数据库的转储和恢复。

2)数据库的安全性、完整性控制。

3)数据库性能的监督、分析、改进。

4)数据库的重组织和重构造。

2.10在概念设计中,如何把多值属性变换成系统容易实现的形式?

将原来的多值属性用几个新的单值属性表示。

将原来的多值属性用一个新的实体类型表示。

2.11对联系类型有哪两种约束?试详细解释?

联系类型的约束限制了参与联系的实体数目,有技术约束和参数约束。

技术约束表示了一个联系的实体的个数约束,通过映射基数来表达,有1:1,1:N,M:N,M:1四种。

参与约束表示了实体集中是部分实体还是全部实体参与联系集中的联系。有部分参与和完全参与两种。

2.12采用ER模型的数据库概念设计有哪些主要的步骤?

1)设计局部ER模型(确定局部结构范围、定义实体、定义联系、分配属性)

2)设计全局ER模型(确定公共实体类型、合并局部ER模型、消除冲突)

3)全局ER模型优化(合并实体类型、消除冗余属性、消除冗余联系)

2.13在关系模型中,关系具有哪些性质

1)关系中的每个属性值都是不可分解的。

2)关系中不允许出现重复组。

3)由于关系是一个集合,因此不考虑元祖间的顺序,即没有行序。

4)元祖的属性在理论上也是无序的,但使用时按习惯考虑列的顺序。

2.14为什么关系中的元组没有先后顺序?且不允许有重复的元组?

因为关系是一个元祖的集合,而元祖在集合中的顺序无关紧要,即没有行序。

集合中的元素不允许重复出现,因此关系中的元组不能重复,可以用键来标识唯一的元组。

2.15参照完整性规则使用时,有哪些变通?试举例说明。

1)外键和相应的主键可以不同名,只要定义在相同的值域上即可。

2)R1和R2可以是同一个关系模式,此时表示同一个关系中不同元组间的联系。

3)外键值是否允许为空,视具体情况而定。

2.16

商品(商品编号,商品名,规格,价格)

职工(职工号,职工名,性别,业绩,商店编号)

销售(销售单号,商店编号1,商品编号)

2.17略

2.18略

2.19ER图转换成关系模式集的具体思想是什么?

1)实体类型的转换:将每个实体类型转换成一个关系模式,实体的属性即为关系模式的属性,实体

标示符即为关系模式的键。

2)联系类型的转换:

二元联系类型的转换:

a)如果实体间联系是1:1:1,在任意一个实体模型中加入另两个实体的主键作为外键。

b)如果实体间联系是1:1:N,在多方实体模式中加入两个1方的主键作为外键。

c)如果实体间联系是1:M:N,把联系类型转换为关系模式,其属性为M和N方实体类型的键(作

为外键)加上联系类型的属性,而主键为M和N方主键的组合。

d)如果实体间联系是M:N:P, 其属性为三方实体类型的键(作为外键)加上联系类型的属性,而

主键为三方主键的组合。

2.20采用ER模型的数据库逻辑设计有哪些步骤?

导出初始化关系模式集、规范化处理、模式评价、模式修正、设计子模式。

2.21略

2.22图略

仓库(仓库号,仓库名,地址,负责人)

业务员(业务员编号,姓名,性别)

商店(店号,店面,地址)

商品(品号,品名,价格,规格)

收银员(工号,姓名,性别,年龄,店号)

经理(经理编号,姓名,性别,店号,工号)

供应(供应单号,仓库号,店号,经手人)

销售(销售单号,商品号,店号,经手人)

进货(进货单号,商品号,业务员编号)

2.23略

2.24图略

行车人员(驾驶执照号,姓名,地址,电话,邮编)

车辆(机动车牌照号,型号,生产日期,制造厂)

处罚方法(处罚编号,警告,处罚,暂扣驾驶执照)

违章(违章编号,驾驶执照号,机动车牌照号,处罚编号)

第三章. 关系模式设计理论

3.1.函数依赖——设有关系模式R(U),X,Y是属性集U的子集,只要r是R有当前关系,对r中的任意

两个元组t和s,都有t[X]=s[X]蕴含t[Y]=s[Y],那么就称函数依赖(FD)X→Y在关系模式R(U)中

成立。

平凡的函数依赖——对于FD X→Y,如果Y∈X,那么该FD就是平凡的FD。

函数依赖集F的闭包F+——设F为函数依赖集,被F逻辑蕴涵的函数依赖全体构成的集合。

属性集X的闭包X+——设F是属性集U上的FD集,X是U的子集,那么属性集X的闭包是一个从F集使用FD推理规则推出的所有满足X→A的属性A的集合。

函数依赖的逻辑蕴涵——设F是关系模式R上成立的函数依赖集合,X→Y是一个FD,如果对于R的每一个满足F的关系r也满足X→Y,那么称F逻辑蕴涵X→Y。

函数依赖集的等价——如果关系模式R(U)上的两个函数依赖集F和G,有F+=G+,则称F和G是等价的函数依赖集。

最小依赖集——满足下面三个条件的函数依赖集G:

G中每个FD的右边都是单属性;

G中没有冗余的FD。即G中不存在这样的函数依赖X→Y,使得G-{X→Y}与G等价;

G中每个FD的左边没有冗余的属性。即G中不存在这样的函数依赖X→Y,X有一个真子集W,使得G-{X →Y}U{W→Y}与G等价。

无损分解——设R是一个关系模式,F是R上的一个FD集,R分解成数据库模式。如果对R中满足F的每一个关系r,都有r在数据库中的各关系模式Ri上投影连接后仍为r,则称该数据库模式相对于F是无损分解的。泛关系假设——在定义无损分解时,先假设存在泛关系r的情况下,再去谈论分解。

Chase过程——P79。

保持函数依赖——P80。

1NF——关系模式的每一个关系的属性值都是不可分的原子值。

2NF——关系模式是1NF,且每一个非主属性都完全函数依赖于候选键。

3NF——关系模式是1NF,且每一个非主属性都不传递依赖于候选键。

BCNF——关系模式是1NF,且每一个属性都不传递依赖于候选键。

MVD——P88。

平凡的MVD——对于属性集U上的MVD X→→Y,如果Y∈X或XY=U。则此MVD是平凡的MVD。

4NF——设D是关系模式R上成立的FD和MVD的集合。如果D中每个非平凡的MVD X→→Y的左部都是R 的超键。

3.2.试解释下面两个“数据冗余”的概念:

文件系统中不可避免的“数据冗余”

关系数据库设计中应尽量避免的“数据冗余”

文件系统中的“数据冗余”:由于在文件之间缺乏联系,造成每个应用程序都有相应的文件,有可能同样的数据在不同文件中重复存储。

关系数据库设计中的“数据冗余”:数据库某一关系中多个元组大量重复存储同样的属性。

3.3.关系模式的非形式化设计准则有哪几条?这些准则对数据库设计有什么帮助?

1)尽可能指包含直接联系的属性,不要包含间接联系的属性。

2)尽可能使得相应关系中不出现插入、删除、修改异常现象。

3)尽可能使得相应关系中避免放置经常为空值的属性。

4)尽可能使得关系的等值连接在主键和外键的属性上进行,并保证以后不会产生额外的元组。

3.4.对函数依赖X→Y的定义加以扩充,X和Y可以为空属性集,用φ表示,那么X→φ,φ→Y,φ→φ

的含义是什么?

1)一个关系模式R(U)中,X,Y是U的子集,r是R的任一具体关系,如果对r的任意两个元组t1,t2,

由t1[X]=t2[X]必有t1[φ]=t2[φ]。即X→φ表示空属性函数依赖于X。这是任何关系中都存在

的。

3)φ→φ表示空属性函数依赖于空属性。这也是任何关系中都存在的。

3.7已知关系模式R(ABC),F={A→B,B→C},求F+。(有43个FD)

F+={φ→φ,A→φ,B→φ,C→φ,A→B,B→C,A→C,AB→φ,AB→A,AB→B,AB→C,AB→BC,AB →AB,AB→ABC,BC→φ,BC→C,BC→B,BC→BC,AC→φ,AC→C,AC→A,AC→AC,ABC→φ,ABC →A,ABC→B,ABC→C,ABC→BC,ABC→AB,ABC→ABC}

3.16什么是寄生元组?什么是悬挂元组?各是怎么产生的?

在泛关系模式分解成数据库模式时,泛关系r在数据库模式中的每一个模式上投影再连接起来,比原关系r多出来的元组是寄生元组。

在无泛关系模式下,对两个关系进行自然连接中被丢失的元组,被称为悬挂元组。

3.18试解释数据库“丢失信息”与“未丢失信息”两个概念。有什么区别?

分解后是否表示一样的信息,如不一样就是丢失信息,否则就是未丢失信息。

后面题目省略

第四章. 关系运算

4.1. 无限关系——无组数量无限多的关系。

无穷验证——验证一个公式时,必须对关系中所有元组进行验证。

4.10教师关系T(T#,TNAME,TITLE)

课程关系C(C#,CNAME,T#)

学生关系S(S#,SNAME,AGE,SEX)

选课关系SC(S#,C#,SCORE)

1)检索年龄小于17岁的女学生的学号和姓名。

πS#,SNAME(σage<17∧sex=’女’(S))

2)检索男学生所学课程的课程号和成绩

πC#,score(σsex=’男’∧σS.S#=SC.S#(SC C))

3)检索男学生所学课程的任课教师的工号和姓名

πt#,tname(σsex=’男’ (S SC C T))

4)检索至少选修两门课的学生学号

π1(σ1=4∧2!=5(SC×SC))

5)检索至少有学号为S2和S4学生选修的课程的课程号

Π2(σ2!=5∧1=’’S2 ∧4=’S4’(SC×SC))

6)检索wang同学不学的课程号

Πc#(C)- Πc#(σsname=’wang’(S SC))

7)检索全部学生都选修的课程的课程号和课程名

Πc#,cname(C(Πc#,s#(SC) ÷ Πs#(S)))

8)检索选修课程包含liu老师所授全部课程的学生学号

Πs# (σtname=’liu’(SC C T))

4.13为什么要对关系代数表达式进行优化?

对于等价的关系表达式,因表达式中安排选择、投影、连接的顺序不同而执行效率也不一样。

4.14有哪三条启发式规则?对优化起什么作用

尽可能早地执行选择操作

尽可能早地执行投影操作

避免直接做笛卡尔积

作用:合理安排操作顺序,节省时间和空间

第五章. SQL语言

5.1.基本表——是实际存储在数据库中的表。

视图——是由若干基本表和视图构成的表的定义。

实表——是对基本表的别称。(略)。

虚表——在创建一个视图时,只是把视图的定义存储在数据字典中,而不存储视图定义的数据,在用户使用视图时才去求对应的数据。因此,视图被称为“虚表”。

相关子查询——SELECT语句嵌套时,子查询中查询条件依赖于外层查询中的值,因此子查询要反复求值供外层查询使用。这种子查询称为相关子查询。

连接查询——查询时要从多个基本表中提取数据,此时把多个基本表写在同一层的FROM子句中,这种查询形式称为联接查询。

嵌套查询——查询时要从多个基本表中提取数据,此时把多个基本表分别放在不同层次上的FROM子句中,这种查询形式称为嵌套查询。

导出表——是执行了查询时产生的表。

临时视图——SQL3允许用户用WITH子句定义一个临时视图(即子查询),置于SELECT语句的开始处。临时视图本身是用SELECT语句定义的。

交互式SQL——SQL语言在终端交互方式下使用,称为交互式SQL。

嵌入式SQL——SQL语言在语言的程序中使用,称为嵌入式SQL。

游标——是一个与某一查询结果相联系的符号名,是一个指针。

卷游标——可推进也可后退的游标。

5.2 试叙述SELECT语句的关系代数特点和元组演算特点。

SELECT语句中出现的基本表名,都应该理解成基本表中的元组变量,而列名应理解成元组分量,这样SQL就具有了元组演算的特点。

5.3设教学数据库中有四个关系:

教师关系T(t#,tname,title)

课程关系C(c#,cname,t#)

学生关系S(s#,sname,age,sex)

选课关系SC(s#,c#,score)

试用SQL的查询语句表示下列查询:

(1)检索年龄小于17岁的女学生的学号和姓名。

select s#,sname from S where age <17 and sex=’女’

(2)检索男学生所学课程的课程号和成绩。

select c#,score from S,SC where S.s#=SC.s#

and sex=’男’

(3)检索男学生所学课程的任课教师的工号和姓名。

select t#,tname from S,SC,C,T where S.s#=SC.s#

and SC.c#=C.c# and C.t#=T.t# and sex=’男’

(4)检索至少选修两门课的学生学号。

select s# from SC group by s# having count(*)>2

(5)检索至少有学号为S2和S4学生选修的课程的课程号。

select c# from SC,S where S.s#=SC.s#

and S.s#=’S2’or S.s#=’S4’

(6)检索wang同学不学的课程号。

(7)检索全部学生都选修的课程的课程号和课程名。

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

相关主题