《数据库系统原理》 总 复 习 数学与计算机科学学院 编写:颜清
《数据库系统原理》 总 复 习 数学与计算机科学学院 编写:颜清
数据库系统原理总复习 第1章绪论复习题参考答案 试据库系华提系统的许算☆有品织的、可共字的数据 合:数据库管理系统是位于用户与操作系统之间的一层数据管理件:数据库系统是指在计 机系统中 入数据床后的系统,一般由数据床、数据床管理系统及其开发工其)、应用系统、数据库管理员和用 均D 2.使用数据库系统有什么好处?(12页) 氏起年收餐智受看袋用的服亮地装禁斋骨先招常位的提食装 的可靠性。 3。试述文件系统与数据库系统的区别和联系。(8、9、10页) 答:1)数据结构化是数据库与文件系统的根本区别。 间没有件系多 中相立的文件的记内部是有结构的,管其记录内部已有了某些结构但记录之 的最小存取单位 据的方式也很灵 粒度不能细到数据项。而在数据库系统中,存取费 I- 库中的封 项一个 3》)文件系统中的文件是为某特定应用服务的,文件的逻辑结构对该应用程序来说是优化的,因此 要想对现有的数据再增加一些新的应用会很困难,系统不容易扩充。而在数据库系统中数据不再针对某 应用,而是面向全组织,具有整体的结构化 5.试述数据库系统的特点。(9、10、11页) 答:数据结构化:数据的共享性高、冗余度低、易扩充:数据独立性高:数据由DBMS统一管理和控 制。 4 0驼、 的运行管理、数据库的建立和维护功能 作用:在数据库中用数据模型来抽象 表示和处理现实世界中的数据和信息。通俗地讲数据模型就 是现实世界的模拟,现有的数据库系统均是基子某种数据模型的, 三个要素:数据模型由数据结构、数据操作和完整性约束三部分组成。 8、概念模型的作用(15页) 答:概念模型用于信息世界的建模,是现实世界到信息世界的第一层抽象,是数据库设计人员进行 数据库设计的有力工具,也是数据库设计人员和用户之间进行交流的语言,因此概念模型一方面应该具 有较备的语义表达能力,能够方便、直接地表达应用中的各种语义知识,另一方面它还位该简单、清蛛。 用 生用 体定义并解释概冬模型中以下术语 生体系图E-R图 10。试给出三个实际部门的ER图,要求实体型之间具有一对一,一对多,多对多各种不同的联系 :学员和座位的关系。(满员 学员日 联系 座位 一对多:值班医生和病人的关系。 值班医生 联系 病人 多对多: 营业员 联系 顾客☐
数据库系统原理总复习 第 1 章 绪论复习题参考答案 1、试述数据、数据库、数据库管理系统、数据库系统的概念。(3、4、5 页) 答:描述事物的符号记录称为数据;数据库是长期储存在计算机内的、有组织的、可共享的数据集 合;数据库管理系统是位于用户与操作系统之间的一层数据管理软件; 数据库系统是指在计算机系统中 引入数据库后的系统,一般由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员和用 户构成。 2.使用数据库系统有什么好处?(12 页) 答:数据库系统使信息系统从以加工数据的程序为中心转向围绕共享的数据库为中心的阶段,这样 既便于数据的集中管理,又有利于应用程序的研制和维护,提高了数据的利用率和相容性,提高了决策 的可靠性。 3.试述文件系统与数据库系统的区别和联系。(8、9、10 页) 答:1)数据结构化是数据库与文件系统的根本区别。 在文件系统中,相互独立的文件的记录内部是有结构的,管其记录内部已有了某些结构,但记录之 间没有联系。数据库系统实现整体数据的结构化,是数据库的主要特征之一。 2)在文件系统中,数据的最小存取单位是记录,粒度不能细到数据项。而在数据库系统中,存取数 据的方式也很灵活,可以存取数据库中的某一个数据项、一组数据项一个记录或或一组记录。 3)文件系统中的文件是为某一特定应用服务的,文件的逻辑结构对该应用程序来说是优化的,因此 要想对现有的数据再增加一些新的应用会很困难,系统不容易扩充。而在数据库系统中数据不再针对某 一应用,而是面向全组织,具有整体的结构化。 5.试述数据库系统的特点。(9、10、11 页) 答:数据结构化;数据的共享性高、冗余度低、易扩充;数据独立性高;数据由 DBMS 统一管理和控 制。 6.数据库管理系统的主要功能有哪些? (4 页) 答:数据定义功能、数据操纵功能、数据库的运行管理、数据库的建立和维护功能。 7.试述数据模型的概念(13 页)、数据模型的作用、数据模型的三个要素。(14、15 页) 答:数据模型(Data Model)也是一种模型,它是现实世界数据特征的抽象。 作用:在数据库中用数据模型来抽象、表示和处理现实世界中的数据和信息。通俗地讲数据模型就 是现实世界的模拟,现有的数据库系统均是基于某种数据模型的。 三个要素:数据模型由数据结构、数据操作和完整性约束三部分组成。 8、概念模型的作用(15 页) 答:概念模型用于信息世界的建模,是现实世界到信息世界的第一层抽象,是数据库设计人员进行 数据库设计的有力工具,也是数据库设计人员和用户之间进行交流的语言,因此概念模型一方面应该具 有较强的语义表达能力,能够方便、直接地表达应用中的各种语义知识,另一方面它还应该简单、清晰、 易于用户理解。 9、定义并解释概念模型中以下术语(P16 页)。 实体、实体型、实体集、属性、码、实体联系图(E-R 图) 10.试给出三个实际部门的 E_R 图,要求实体型之间具有一对一,一对多,多对多各种不同的联系。 一对一:学员和座位的关系.(满员) 1 1 一对多 : 值班医生和病人的关系. 1 n 多对多: m n 学员 座位 值班医生 病人 营业员 顾客 联系 联系 联系
11,试给出一个实际部门的E-R图,要求有三个实体型,而且三个实体型之间有多对多联系。三个 实体型之间的多对多联系和三个实体型两两之间的三个多对多联系等价吗?为什么?(17页) 12,学校中有若干系,每个系有若干班级和教研室,每个教研室有若干教员,每个班有若干学生 (20贝例题 品由不同的零件 ,这些零件 产品 原材料 制/ 仓库 14。试述层次模型的概念,举出三个层次模型的实例。(22页】 答:层次模型是数据库系统中最早出现的数据模型,层次数据库系统采用层次模型作为数据的组织 方式。层次模型是用树形结构来表示各类实体以及实体间的联系的数据模型。例题: 时室教研数号教研度鞋学号数名质填 教黄取工号姓名研究方前 15。今有一个层次数据库实例,试用子女-兄弟链接法和层次序列链接法画出它的存储结构示意图, (见P26页图1.23) 邻接法如下:(P25页) A1 B1 C3 C8 C10 B2 C12 D2 D3 D4 C14 16.试述网状模型的概念,举出三个网状模型的实例。(27页)》 答:把满足以下两个条件的基本层次联系集合称为网状模型: (1)允许一个以上的结点无双亲。 (2) 联系 2)学生/课程/选课的网状数据库模式: 人 父母 种 养 伐 育 养 树 子女
11.试给出一个实际部门的 E-R 图,要求有三个实体型,而且三个实体型之间有多对多联系。三个 实体型之间的多对多联系和三个实体型两两之间的三个多对多联系等价吗? 为什么 ? (17 页) 12.学校中有若干系,每个系有若干班级和教研室,每个教研室有若干教员,每个班有若干学生, 每个学生选修若干课程,每门课可由若干学生选修。请用 E-R 图画出此学校的概念模型。(20 页例题) 13.某工厂生产若干产品,每种产品由不同的零件组成,有的零件可用在不同的产品上。这些零件 由不同的原材料制成,不同零件所用的材料可以相同。这些零件按所属的不同产品分别放在仓库中,原 材料按照类别放在若干仓库中。请用 E-R 图画山此工厂产品,零件,材料,仓库的概念模型。 m n p m r n n k 14.试述层次模型的概念,举出三个层次模型的实例。(22 页) 答:层次模型是数据库系统中最早出现的数据模型,层次数据库系统采用层次模型作为数据的组织 方式。层次模型是用树形结构来表示各类实体以及实体间的联系的数据模型。例题: 15.今有一个层次数据库实例,试用子女-兄弟链接法和层次序列链接法画出它的存储结构示意图。 (见 P26 页图 1.23) 邻接法如下:(P25 页) A1 B1 C3 C8 C10 B2 C12 D2 D3 D4 C14 16.试述网状模型的概念,举出三个网状模型的实例。(27 页) 答: 把满足以下两个条件的基本层次联系集合称为网状模型: (1)允许一个以上的结点无双亲。 (2)一个结点可以有多于一个的双亲。 例: 1) 网状模型的两个结点之间有多种联系 2) 学生/课程/选课的网状数据库模式: 产品 零件 原材料 仓库 构成 存储 存储 制成 人 父母 树 子女 种 植 砍 伐 养 育 赡 养
生号名系利服预号保原名份 悬楼学号积号发地 图1,5学生选课课程的网状数据库模式 17.试述网状、层次数据库的优缺点。(26、30页) 答:网状数据模型的优点主要有: (1)能够更为直接地描述现实世界,如一个结点可以有多个双亲。 (2)具有良好的性能,存取效率较高。 握。 (2)其数据定义语言(DDL)、数据操作语言(DM)复杂,用户不容易使用 (3)数据独立性较差。由于记录之间联系是通过存取路径实现的,应用程序在访问数据时必须选择适 当的存取路径,因此,用户必须了解系统结构的细节,加重了编写应用程序的负担。从而影响数据独立 性。 层次模型的优点主要有: (1)层次数据模型本身比较简单,层次分明,便于在计算机内实现。 (2)在层次数据结构中,从根结点到树中任一结点均存在一条唯一的层次路径,为有效地进行数据 操纵提供条件 一地是由于我 结构规定除根结点外所有结点有且仅有 个双来,故实 集之 的联系 可省 云的联系固定 4层次数据模型提供良好的完整性支持 型对层状结构的数需有较高的处理数】 (5)实体间联系是固定的,且预先定义好的应用系统,采用层次模型来实现,其性能优于关系模型, 不低于网状模型。 可见用层次模型对具有一对多的层次关系的部门描述非常自然、直观,容易理解。这是层次数据库 的突出优点。 层次模型的缺点主要有: 一个结点具有多个双亲等,层次模型表万 点)来解 对插入和删除操作的限制比较多 在询子女结点必 (1)关系 (2)属性 (3)域 (4)元组 (⑤)主码 (6)分量 (7)关系模式 19.试述关系数据库的特点。(32页) 系犹的二 洁构是指数据库系统是由外模式 氏和内 模式三级构成。 级 ,E把 的 理东机 及模 ●式/内横式 正是这两层映象保证了数据库系统中的数据能够具有较高的逻辑独立性和物理独立性。 22.什么叫数据与程序的物理独立性?什么叫数据与程序的逻辑独立性?为什么数据库系统具有数据 与程序的独立性?(35、36页) 当数据库的存储结构政变了(例如选用了另一种存储结构),由数据库管理员对模式/内模式映象作 相应改变,可以使模式保持不变,从而应用程序也不必改变。保证了程序与数据的物理独立性,简称数据
17.试述网状、层次数据库的优缺点。(26、30 页) 答:网状数据模型的优点主要有: (1)能够更为直接地描述现实世界,如一个结点可以有多个双亲。 (2)具有良好的性能,存取效率较高。 网状数据模型的缺点主要有: (1)结构比较复杂,而且随着应用环境的扩大,数据库的结构就变得越来越复杂,不利于最终用户掌 握。 (2)其数据定义语言(DDL)、数据操作语言(DML)复杂,用户不容易使用。 (3)数据独立性较差。由于记录之间联系是通过存取路径实现的,应用程序在访问数据时必须选择适 当的存取路径,因此,用户必须了解系统结构的细节,加重了编写应用程序的负担。从而影响数据独立 性。 层次模型的优点主要有: (1)层次数据模型本身比较简单,层次分明,便于在计算机内实现。 (2)在层次数据结构中,从根结点到树中任一结点均存在一条唯一的层次路径,为有效地进行数据 操纵提供条件。 (3)由于层次结构规定除根结点外所有结点有且仅有一个双亲,故实体集之间的联系可用双亲结点唯 一地表示,并且层次模型中的基本层次联系总是从双亲记录指向子女记录,所以记录类型之间的联系名 可省略。由于实体集间的联系固定,所以层次模型 DBMS 对层次结构的数据有较高的处理效率。 (4)层次数据模型提供了良好的完整性支持。 (5)实体间联系是固定的,且预先定义好的应用系统,采用层次模型来实现,其性能优于关系模型, 不低于网状模型。 可见用层次模型对具有一对多的层次关系的部门描述非常自然、直观,容易理解。这是层次数据库 的突出优点。 层次模型的缺点主要有: (1)现实世界中很多联系是非层次性的,如多对多联系、一个结点具有多个双亲等,层次模型表示 这类联系的方法很笨拙,只能通过引入冗余数据(易产生不一致性)或创建非自然的数据组织(引入虚拟结 点)来解决。 (2)对插入和删除操作的限制比较多。 (3)查询子女结点必须通过双亲结点。 (4)由于结构严密,层次命令趋于程序化。 18.试述关系模型的概念,定义并解释以下术语:(P31 页) (1)关系 (2)属性 (3)域 (4)元组 (5)主码 (6)分量 (7)关系模式 19.试述关系数据库的特点。(32 页) 20.试述数据库系统三级模式结构,这种结构的优点是什么?(33、35 页) 数据库系统的三级模式结构是指数据库系统是由外模式、模式和内模式三级构成。 数据库系统的三级模式是对数据的三个抽象级别,它把数据的具体组织留给 DBMS 管理,使用户能逻 辑地抽象地处理数据,而不必关心数据在计算机中的具体表示方式与存储方式。为了能够在内部实现这 三个抽象层次的联系和转换,数据库管理系统在这三级模式之间提供了两层映象: ⚫ 外模式/模式映象 ⚫ 模式/内模式映象 正是这两层映象保证了数据库系统中的数据能够具有较高的逻辑独立性和物理独立性。 22.什么叫数据与程序的物理独立性?什么叫数据与程序的逻辑独立性?为什么数据库系统具有数据 与程序的独立性? (35、36 页) 当数据库的存储结构改变了(例如选用了另一种存储结构),由数据库管理员对模式/内模式映象作 相应改变,可以使模式保持不变,从而应用程序也不必改变。保证了程序与数据的物理独立性,简称数据
的物理独立性 由数要改 模式时(例如增加新的关系、新的属性、改变属性的数据类型、改变数据间的联 。 面应 依据数 居的外模式编写的, 保证了数 与程序的逻荆独立 的 独立性 特定的应用程序是在外模式描述的数据结构上编制的,它依赖于特定的外模式,与数据库的模式和 存储结构独立。不同的应用程序有时可以共用同一个外模式。数据库的二级映象保证了数据库外模式的 稳定性,从而从底层保证了应用程序的稳定性,除非应用需求本身发生变化,否则应用程序一般不需要 修改 23.试述数据库系统的组成。(37页) 数据库系统一般由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员和用户构成 24.D A的职员是什么?37 居库 决定数据库的存储 和存取策略、定义数据的安全性要求和完 39页 系统分析员负责应用 用程 确完系体的件件 置,并参与数据系统的树要设计。数据库设计人员负责数据库中数据的确定、数据库各级模式的设计 数据库设计人员必须参加用户需求调查和系统分析,然后进行数据库设计。在很多情况下,数据库设计 人员就由数据库管理员相任 应用程序员负责设计和编写应用系统的程序模块,并进行调试和安装。 第1章作业(P41):习题3、10、12、13、15 第2章关系数据库复习题参考答案 1、试述关系模型的三个组成部分。(46页) 答:关系模型由关系数据结构、关系操作集合和关系完整性约束三部分组成。 2、试述关系数据语言的特点和分类。(47页) 答:关系数据语言可以分为三类: 关系代数语言。 元组关系 演算语言和域关系演算语言。 SQL: 关系勒 有完备的表达能力,是非过程化的集合操作语言,功能强 能够嵌入高级语 2、定义并理解下列术语,说明它们联系与区别:(P46一50页) (1)域,笛卡尔积,关系,元组,属性 (②)主码,候选码,外部码 (③)关系模式,关系,关系数据库 3、试述关系模型的完整性规则(53页),在参照完整性中,为什么外部码属性也可以为空?什么情况下才可 实光则是指性A是木关系的主,则A不取字值。 (55 P56页) 或属性组)F是基本关系 外码,它与基本关系S的主码Ks相对应(基本关系R和S 或者签是 中其 士码值 为 均为空值): 身 个SpI数库 c D Sp四个关系模: 1)求供应工程J1零件的供应商号码SNO 2)求供应工程J1零件P1的供应商号码SNO: (SPD) 3)求供应工程J1零件为红色的供应商号码SNO: 一少有月天应生产的色程号 红(P)oSPJ) (SPJ) SPD
的物理独立性。 当需要改变模式时(例如增加新的关系、新的属性、改变属性的数据类型、改变数据间的联系等), 由数据库管理员对各个外模式/模式的映象作相应改变,而使外模式保持不变,从而不必修改或重写应 用程序改。而应用程序是依据数据的外模式编写的,保证了数据与程序的逻辑独立性。简称数据的逻辑 独立性。 特定的应用程序是在外模式描述的数据结构上编制的,它依赖于特定的外模式,与数据库的模式和 存储结构独立。不同的应用程序有时可以共用同一个外模式。数据库的二级映象保证了数据库外模式的 稳定性,从而从底层保证了应用程序的稳定性,除非应用需求本身发生变化,否则应用程序一般不需要 修改。 23.试述数据库系统的组成。(37 页) 数据库系统一般由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员和用户构成 24.DBA 的职责是什么?(37 页) 决定数据库中的信息内容和结构、决定数据库的存储结构和存取策略、定义数据的安全性要求和完 整性约束条件、监控数据库的使用和运行、数据库的改进和重组重构。 25.系统分析员、数据库设计人员、应用程序员的职责是什么?(39 页) 系统分析员负责应用系统的需求分析和规范说明,要和用户及 DBA 相结合,确定系统的硬件软件配 置,并参与数据库系统的概要设计。数据库设计人员负责数据库中数据的确定、数据库各级模式的设计。 数据库设计人员必须参加用户需求调查和系统分析,然后进行数据库设计。在很多情况下,数据库设计 人员就由数据库管理员担任。 应用程序员负责设计和编写应用系统的程序模块,并进行调试和安装。 第 1 章作业(P41): 习题 3、10、12、13、15 第 2 章 关系数据库复习题参考答案 1、试述关系模型的三个组成部分。(46 页) 答:关系模型由关系数据结构、关系操作集合和关系完整性约束三部分组成。 2、试述关系数据语言的特点和分类。(47 页) 答:关系数据语言可以分为三类: A、 关系代数语言。 B、 关系演算语言:元组关系演算语言和域关系演算语言。 C、 SQL:具有关系代数和关系演算双重特点的语言。 这些关系数据语言的共同特点是,语言具有完备的表达能力,是非过程化的集合操作语言,功能强, 能够嵌入高级语言中使用。 2、 定义并理解下列术语,说明它们联系与区别:(P46---50 页) (1)域,笛卡尔积,关系,元组,属性 (2)主码,候选码,外部码 (3)关系模式,关系,关系数据库 3、 试述关系模型的完整性规则(53 页),在参照完整性中,为什么外部码属性也可以为空?什么情况下才可 以为空?(55 页) 答:实体完整性规则是指若属性 A 是基本关系 R 的主属性,则属性 A 不能取空值。 (P55 页)若属性(或属性组)F 是基本关系 R 的外码,它与基本关系 S 的主码 Ks 相对应(基本关系 R 和 S 不一定是不同的关系),则对于 R 中每个元组在 F 上的值必须为:或者取空值(F 的每个属性值均为空值); 或者等于 S 中某个元组的主码值。即属性 F 本身不是主属性,则可以取空值,否则不能取空值。 5.设有一个 SPJ 数据库,包括 S,P,J,SPJ 四个关系模式: 1)求供应工程 J1 零件的供应商号码 SNO: πSno(σSno=‘J1’(SPJ)) 2)求供应工程 J1 零件 P1 的供应商号码 SNO: πSno(σSno=‘J1’∧Pno=‘P1‘(SPJ)) 3)求供应工程 J1 零件为红色的供应商号码 SNO: πSno(σPno=‘P1‘ (σCOLOR=’红‘ (P)∞SPJ)) 4)求没有使用天津供应商生产的红色零件的工程号 JNO: πJno(SPJ)- πJNO(σcity=‘天津’∧Color=‘红‘ (S∞SPJ∞P) 5)求至少用了供应商 S1 所供应的全部零件的工程号 JNO: πJno,Pno(SPJ)÷ πPno(σSno=‘S1‘ (SPJ))
(见P62页例6) 6.试述等值连接与自然连接的区别和联系。(61页) 的连接运算称为等值连接。它是从关系R与S的广义笛卡尔积中选取A,B属性 A-R 自然连接是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且在 结果中把重复的属性列去掉 7.关系代数的基本运算有哪些?如何用这些基本运算来表示其他运算?(63页) 并、差、笛卡尔积、投影和选择5种运算为基本的运算。其他3种运算,即交、连接和除,均可以 用这5种基本运算来表达。 第3章SQL语言习复题参考答案 1.试述SQL语言的特点。(85页) 答:综合统一、高度非过程化、面向集合的操作方式、以同一种语法结构提供两种使用方式、语言简捷, 易学易用。 试述SQL的定义功能。(87页) 义视图和定义索引 语句列 5中的四个表。 CITY) WEIGHT): SPI(SNO.PNO.INO.OTY) 供应商表S由供应商代码(SNO)、供应商姓名(SNAME)、供应商状态(STATUS)、供应商所在城市(CITY) 组成: CREATE TABLE S(Sno C(2)UNIQUE,Sname C(6),Status N(2),City C(4)) 零件表P由零件代码(PNO)、零件名(PNAME)、颜色(COLOR)、重量(WEIGHT)组成: CREATE TABLE P(Pno C(2 UNIQUE,Pname C(6),C0L.0R C2), WEIGHT I(2)) 工程项相表L工程项代玛小O、工项自名、所在城市组成 件代 8) 马(JNO)、供应数量(QIY)组成 CREATE TABLE SE 倚代 C(2) 4.针对上题中建立的四个表试用5语言完成第二章习题5中的查询: 1 求供应工程J1零件的供应商号码SO SELECT DIST SNO FROM SPI WHERE INO=I1' (2) 求供应工程J1零件P1的供应商号码SNO: SELECT DIST SNO FROM SPJ WHERE JNO='JI'AND PNO='P1' 3) 求供应工程J1零件为红色的供应商号码SNO: SELECT SNO FROM SPJ,P WHERE JNO- JIAND SPJ.PNO=P.PNO AND COLOR=' (4) 求没有使用天津供应商生产的红色零件的工程号O: AND PJ. 是至 太深,将查询分为西 的工程号NO. A、查询S1供应商供应的零件号 ELECT DIST PNO FROM SPI WHERE SNO='S1'结果是(P1,P2 B、查询哪一个工程既使用P1零件又使用P2零件。 SELECT JNO FROM SPJ WHERE PNO='P1' AND JNO IN (SELECT JNO FROM SPJ WHERE PNO='P2') 5.针对习题3中的四个表 用SQL语言完成以下各项操作: (1)找出所有供应商的姓名和所在城市。 ②找出所有学件的名称、色、重量
(见 P62 页 例 6) 6.试述等值连接与自然连接的区别和联系。(61 页) 答:连接运算符是“=”的连接运算称为等值连接。它是从关系 R 与 S 的广义笛卡尔积中选取 A,B 属性 值相等的那些元组,即等值连接为: R∞S={trts| tr∈R ∧ts∈S∧tr[A]=ts[B]} A=B 自然连接是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且在 结果中把重复的属性列去掉。 7.关系代数的基本运算有哪些 ? 如何用这些基本运算来表示其他运算?(63 页) 并、差、笛卡尔积、投影和选择 5 种运算为基本的运算。其他 3 种运算,即交、连接和除,均可以 用这 5 种基本运算来表达。 第 3 章 SQL 语言习复题参考答案 1. 试述 SQL 语言的特点。(85 页) 答:综合统一、高度非过程化、面向集合的操作方式、以同一种语法结构提供两种使用方式、语言简捷, 易学易用。 2. 试述 SQL 的定义功能。(87 页) 答:SQL 的数据定义功能包括定义表、定义视图和定义索引 3. 用 SQL 语句建立第二章习题 5 中的四个表。 S(SNO,SNAME,STATUS,CITY); P(PNO,PNAME,COLOR,WEIGHT); J(JNO,JNAME,CITY); SPJ(SNO,PNO,JNO,QTY); 供应商表 S 由供应商代码(SNO)、供应商姓名(SNAME)、供应商状态(STATUS)、供应商所在城市(CITY) 组成: CREATE TABLE S(Sno C(2) UNIQUE,Sname C(6) ,Status N(2),City C(4)) 零件表 P 由零件代码(PNO)、零件名(PNAME)、颜色(COLOR)、重量(WEIGHT)组成: CREATE TABLE P(Pno C(2) UNIQUE,Pname C(6),COLOR C(2), WEIGHT I(2)) 工程项目表 J 由工程项目代码(JNO)、工程项目名(JNAME)、所在城市(CITY)组成: CREATE TABLE J(Jno C(2) UNlQUE,JNAME C(8), CITY C(4)) 供应情况表 SPJ 由供应商代码(SNO)、零件代码(PNO)、工程项目代码(JNO)、供应数量(QTY)组成: CREATE TABLE SPJ(Sno C(2),Pno C(2),JNO C(2), QTY N(2)) 4.针对上题中建立的四个表试用 SQL 语言完成第二章习题 5 中的查询: (1) 求供应工程 J1 零件的供应商号码 SNO: SELECT DIST SNO FROM SPJ WHERE JNO=’J1’ (2) 求供应工程 J1 零件 P1 的供应商号码 SNO: SELECT DIST SNO FROM SPJ WHERE JNO='J1' AND PNO='P1' (3) 求供应工程 J1 零件为红色的供应商号码 SNO: SELECT SNO FROM SPJ,P WHERE JNO='J1' AND SPJ.PNO=P.PNO AND COLOR='红' (4) 求没有使用天津供应商生产的红色零件的工程号 JNO: SELECT DIST JNO FROM SPJ WHERE JNO NOT IN (SELE JNO FROM SPJ,P,S WHERE S.CITY='天津 ' AND COLOR='红' AND S.SNO=SPJ.SNO AND P.PNO=SPJ.PNO)。 (5) 求至少用了供应商 S1 所供应的全部零件的工程号 JNO。 由于 VFP 不允许子查询嵌套太深,将查询分为两步 A、查询 S1 供应商供应的零件号 SELECT DIST PNO FROM SPJ WHERE SNO='S1'结果是(P1,P2) B、查询哪一个工程既使用 P1 零件又使用 P2 零件。 SELECT JNO FROM SPJ WHERE PNO='P1' AND JNO IN (SELECT JNO FROM SPJ WHERE PNO='P2') 5.针对习题 3 中的四个表试用 SQL 语言完成以下各项操作: (1)找出所有供应商的姓名和所在城市。 SELECT SNAME,CITY FROM S (2)找出所有零件的名称、颜色、重量
SELECT PNAME,COLOR,WEIGHT FROM P (③)找出使用供应商1所供应零件的工程号 EC 用的各种零件的名称及其数量 WHERE P.PNO=SPI.PNO AND SPJ.JNO='J2' (5)找出上海厂高供应的所有零件号图。 SELECT PNO FROM SPJ,S WHERE S.SNO=SPJ.SNO AND CITY= (6)出使用上海产的零件的工程名称。 SELECT JNAME FROM SPJ,S,J WHERE S.SNO=SPJ SNO AND S.CITY='上海'ANDJ.JNO-=SPJ.JNO ()找出没有使用天津产的零件的工程号码 注意:SELECT o DIS IN (SELECT DIST JNO FROM SPJ.S WHERE S.SN 不明 WHERE S.SNO-SPJ.SN .CITY'天津适用于JNO是唯 的情莎 (8)把全部红色零件的领色改成蓝色 UPDATE P SET COLOR= WHERE COLOR='红 (9)由S5供给J4的零件P6改为由S3供应。 UPDATE SPJ SET SNO='S3'WHERE SNO='S5'AND JNO='J4'AND PNO='P6' (10)从供应商关系中剧除供应商号是S2的记录,并从供应情况关系中删除相应的记录。 A.DELETE FROM S WHERE SNO 52 、DELETE FROM SPJ WHER D请将Sm p200)抽 6。什么是基本表2什么是视图?两 况关系,p 200 一个(或多个)基本表对应一个存储 文件 个表可以带若 视图是从一个或几个基本表导出的表。它本身不独立存储在数据库中,即数据库中只存放视图的定 义而不存放视图对应的数据,这些数据仍存放在导出视图的基本表中,因此视图是一个虚表。视图在概 念上与基本表等同,用户可以在视图上再定义视图。 7.试述视图的优点。(128页) 答:视图能够简化用户的操作、视图使用户能以多种角度看待同一数据、视图对重构数据库提供了一定 程度的逻辑独 图 对机密数据提供安全保护。 新的 因为有些视图的更新不能 一地有意义地转换成对相应基本表的 哪类视图是可以更新的,哪类视图是不可更新的?各举一例说明。(127页) 行列子集视图是可更新的。除行列子集视图外,还有些视图理论上是可更新的,但它们的确切特征 还是尚待研究的课题。还有些视图从理论上不可更新的 10.试述某个你热悉的实际系统中对视图更新的规定。(VP) 11.请为三建工程项目建立一个供应情况的视图,包括供应商代码(SO)、零件代码(PNO)、供应数量(QTY)。 CREATE VIEW VSP AS SELECT SNO,PNO,QTY FROM SPJ,J WHERE SPJ.JNG=J.JNO AND.J JNAME='三建 针对该视图 完成下列查询: (1)找日 建工程目使用的各种件代及其数量。 (②)找出供应商S1的供应 SELECT DIST EROM VSD WUEPE SNO-SI' 12.针对习题3建立的表,用SQL语言完成以下各项操作: ()把对表S的INSERT权限授予用户张勇,并允许他再将此权限授子其他用户。 GRANT INSERT ON TABLE S TO张勇WITH GRANT OPTION (2)把查询SPT表和修改QTV属性的权限授给用户李天明
SELECT PNAME,COLOR,WEIGHT FROM P (3)找出使用供应商 S1 所供应零件的工程号码。 SELECT DIST JNO FROM SPJ WHERE SNO='S1' (4)找出工程项目 J2 使用的各种零件的名称及其数量。 SELECT PNAME,QTY FROM SPJ,P WHERE P.PNO=SPJ.PNO AND SPJ.JNO='J2' (5)找出上海厂商供应的所有零件号码。 SELECT PNO FROM SPJ,S WHERE S.SNO=SPJ.SNO AND CITY='上海' (6)出使用上海产的零件的工程名称。 SELECT JNAME FROM SPJ,S,J WHERE S.SNO=SPJ.SNO AND S.CITY='上海' AND J.JNO=SPJ.JNO (7)找出没有使用天津产的零件的工程号码。 注意: SELECT DISP JNO FROM SPJ WHERE JNO NOT IN (SELECT DIST JNO FROM SPJ,S WHERE S.SNO=SPJ.SNO AND S.CITY='天津') 适用于 JNO 是唯一或不唯一的情况. 注意: SELECT DIST JNO FROM SPJ,S WHERE S.SNO=SPJ.SNO AND S.CITY<>'天津'适用于 JNO 是唯一 的情况 (8)把全部红色零件的颜色改成蓝色。 UPDATE P SET COLOR='蓝' WHERE COLOR='红' (9)由 S5 供给 J4 的零件 P6 改为由 S3 供应。 UPDATE SPJ SET SNO='S3' WHERE SNO='S5' AND JNO='J4' AND PNO='P6' (10)从供应商关系中删除供应商号是 S2 的记录,并从供应情况关系中删除相应的记录。 A、DELETE FROM S WHERE SNO=’S2’ B、DELETE FROM SPJ WHERE SNO=‘S2’ (11)请将(S2,J6,P4,200)插入供应情况关系。 INSERT INTO SPJ VALUES(‘S2’,‘J6’,‘P4’,200) 6.什么是基本表?什么是视图?两者的区别和联系是什么?(87 页) 基本表是本身独立存在的表,在 SQL 中一个关系就对应一个表。一个(或多个)基本表对应一个存储 文件,一个表可以带若干索引,索引也存放在存储文件中。 视图是从一个或几个基本表导出的表。它本身不独立存储在数据库中,即数据库中只存放视图的定 义而不存放视图对应的数据,这些数据仍存放在导出视图的基本表中,因此视图是一个虚表。视图在概 念上与基本表等同,用户可以在视图上再定义视图。 7.试述视图的优点。(128 页) 答:视图能够简化用户的操作、视图使用户能以多种角度看待同一数据、视图对重构数据库提供了一定 程度的逻辑独立性、视图能够对机密数据提供安全保护。 8.所有的视图是否都可以更新?为什么?(127 页) 答:并不是所有的视图都是可更新的,因为有些视图的更新不能唯一地有意义地转换成对相应基本表的 更新。 9.哪类视图是可以更新的,哪类视图是不可更新的? 各举一例说明。(127 页) 行列子集视图是可更新的。除行列子集视图外,还有些视图理论上是可更新的,但它们的确切特征 还是尚待研究的课题。还有些视图从理论上不可更新的。 10.试述某个你热悉的实际系统中对视图更新的规定。(VFP) 11.请为三建工程项目建立一个供应情况的视图,包括供应商代码(SNO)、零件代码(PNO)、供应数量(QTY)。 CREATE VIEW VSP AS SELECT SNO,PNO,QTY FROM SPJ,J WHERE SPJ.JNO=J.JNO AND J.JNAME='三 建' 针对该视图 VSP 完成下列查询: (1)找出三建工程项目使用的各种零件代码及其数量。 SELECT DIST PNO,QTY FROM VSP (2)找出供应商 S1 的供应情况。 SELECT DIST * FROM VSP WHERE SNO='S1' 12.针对习题 3 建立的表,用 SQL 语言完成以下各项操作: (1) 把对表 S 的 INSERT 权限授予用户张勇,并允许他再将此权限授予其他用户。 GRANT INSERT ON TABLE S TO 张勇 WITH GRANT OPTION (2) 把查询 SPJ 表和修改 QTY 属性的权限授给用户李天明
GRANT SELECT,UPDATE(QTY)ON TABLE SPJ TO李天明 13.在嵌 分SL语句和主语言语句的 (133页) 14.在嵌入式SQL中是如何解决数据库工作单元与源程序工作单元之间通讯的(134页) (Q)向主语言传递SQL语句台 执行状态信息,使主语言能够据此信息控制程序流程,主要用S通信 区(S 称SOLCA)实现 ②)主语言向SqL语句提供参数,主要用主变量(ost Variable)实现。 (③)将SQL语句查询数据库的结果交主语言进一步处理,主要用主变量和游标(Cursor)实现。 15.在嵌入式SqL中是如何协调SQL语言的集合处理方式和主语言的单记录处理方式的?(135页) :好标是用于协同SQL言的集合处理万式和王培言的单1记录处理万式 S0L语言4 主语言其有不同的数据处理方式。SQL语言是面向集合的,一条S语句原则上可以产生 或处理多条记 组主变 第4章关系系统及其优化复习题参考答案 、给出音类关系系统的度特英木泰的系统:关冠 的系驾 系型的 系 多微机关系数据 (P153页 三种关系操 统如FoxBASE, 关系完各的系统:这类系统支持关系数据结构和所有的关系代数操作(功能上与关系代数等价) 20世纪90年代初的许多关系数据库管理系统属于这一类。 全关系系统:这类系统支持关系模型的所有特征。即不仅是关系上完备的而且支持数据结构中 域的概念,支持实体完整性和参照完整性。目前,大多数关系系统己不同程度上接近或达到了这个目标。 3、试述查询优化在关系数据库系统中的重要性和可能性。(P157页) 答:查询优化在关系数据库系统中有若非常重要的地位。关系数据库系统和非过程化的SQL语言 能够取得巨大的成功 关键是得益于查询优化技术的发展 。关系查询优化是影响RDS性能的关键因素 行查化关春系获说联是 统在性能上 接近甚至超 过非关系系统提供了 查询信息系学生选修的所有课程名称 SELECT Cname FROM St.Course.S WHERE St.Sno=SC.Sno AND SC.Cno=Course.Cno AND St.Sdept='IS' 试画出用关系代数表示的语法树,并用关系代数表达式优化算法对原始的语法树进行优化处理,画 出优化后的标准语法树。 答:关系代数表达式如下 cname (o St.sdept= IS'(6 st.sno=sc.Sno(6 sc.Cno=Course.Cno(STXSCXCOURSE))) 用关系代数表示的语法树如下左图: 6St.sdept='IS 6Sc.cno=course.cno 6 st.sno=sc.Sno 6sc.Cno=Course.Cno 6 St.sno=sc.sno n cno,cname + Course /Couree rsn0元sno,cn0 St.sdept='IS'Sc
GRANT SELECT,UPDATE(QTY) ON TABLE SPJ TO 李天明 ************** 以 下 选 作 ************* 13.在嵌入式 SQL 中是如何区分 SQL 语句和主语言语句的? (133 页) 在嵌入式 SQL 中,为了能够区分 SQL 语句与主语言语句,所有 SQL 语句都必须加前缀 EXEC SQL。(VFP 例外) 14.在嵌入式 SQL 中是如何解决数据库工作单元与源程序工作单元之间通讯的?(134 页) (1)向主语言传递 SQL 语句的执行状态信息,使主语言能够据此信息控制程序流程,主要用 SQL 通信 区(SQL Communication Area,简称 SQLCA)实现。 (2)主语言向 SQL 语句提供参数,主要用主变量(Host Variable)实现。 (3)将 SQL 语句查询数据库的结果交主语言进一步处理,主要用主变量和游标(Cursor)实现。 15.在嵌入式 SQL 中是如何协调 SQL 语言的集合处理方式和主语言的单记录处理方式的? (135 页) 答:游标是用于协调 SQL 语言的集合处理方式和主语言的单记录处理方式。 SQL 语言与主语言具有不同的数据处理方式。SQL 语言是面向集合的,一条 SQL 语句原则上可以产生 或处理多条记录。 主语言是面向记录的,一组主变量一次只能存放一条记录。所以仅使用主变量并不能完全满足 SQL 语句向应用程序输出数据的要求,为此嵌入式 SQL 引入了游标的概念,用游标来协调这两种不同的处理 方式。 第 4 章 关系系统及其优化复习题参考答案 1、给出各类关系系统的定义:最小关系的系统;关系完备的系统;全关系型的关系系统。(P153 页) 答:(最小)关系系统:仅支持关系数据结构和三种关系操作。许多微机关系数据库系统如 FoxBASE, FoxPro 等就属于这一类。 关系完备的系统:这类系统支持关系数据结构和所有的关系代数操作(功能上与关系代数等价)。 20 世纪 90 年代初的许多关系数据库管理系统属于这一类。 全关系系统:这类系统支持关系模型的所有特征。即不仅是关系上完备的而且支持数据结构中 域的概念,支持实体完整性和参照完整性。目前,大多数关系系统已不同程度上接近或达到了这个目标。 3、试述查询优化在关系数据库系统中的重要性和可能性。(P157 页) 答:查询优化在关系数据库系统中有着非常重要的地位。关系数据库系统和非过程化的 SQL 语言 能够取得巨大的成功,关键是得益于查询优化技术的发展。关系查询优化是影响 RDBMS 性能的关键因素。 优化对关系系统来说既是挑战又是机遇。所谓挑战是指关系系统为了达到用户可接受的性能必须进 行查询优化。由于关系表达式的语义级别很高,使关系系统可以从关系表达式中分析查询语义,提供了 执行查询优化的可能性。这就为关系系统在性能上接近甚至超过非关系系统提供了机遇。 4.对学生-课程数据库有如下的查询: 查询信息系学生选修的所有课程名称: SELECT Cname FROM St,Course,SC WHERE St.Sno=SC.Sno AND SC.Cno=Course.Cno AND St.Sdept=’IS’ 试画出用关系代数表示的语法树,并用关系代数表达式优化算法对原始的语法树进行优化处理,画 出优化后的标准语法树。 答:关系代数表达式如下: πcname(бSt.sdept=’IS’(бst.sno=sc.Sno(бsc.Cno=Course.Cno(ST×SC×COURSE))) 用关系代数表示的语法树如下左图: πcname πcname бSt.sdept=’IS’ бSc.cno=course.cno бst.sno=sc.Sno × бsc.Cno=Course.Cno бSt.sno=sc.sno πcno,cname × × Course × Course πsno πsno,cno St Sc St.sdept=’IS’ Sc
St 用关系代数表达式优化算法对原关系代数表达式进行优化,优化后的关系代数表达式如下: cname(6 sc.cno=course.cno((6 St.sno=sc.sno(sno(6 St.sdept='IS'(ST))xn sno,cno(SC)) X cno,cname (Course) 优化处理后的标准语法树如上右图: 5.试述查询优化的 一般准则。(P161 -162页) 容:选择楼对系适当地预处理 3)把投 4)把投影同其前或其后的双目运算结合起来 5)把某些选择同在它前面要执行的笛卡尔积结合起来成为一个连接运算。 6)找出公共子表达式。 6.试沫查淘代化的一般步摩。(165页) 答:(1)把查询转换成某种内部表示。 (②)把语法树转换成标准(优化)形式。 的存取路径 生说查面计划,选择代价最小的 第5章关系数据理论复习题参考答案 规范化定义小结: 定义1:设R()是属性集U上的关系模式 :X,是属性集U的子集。若对于R(的任意 个可能的 横于不可 上的属性值不等,则称X函数确定Y或】 个贺上的腰性值相等:正的定相等 存在两 且相 而在 ·XY,但Y不是X的子集,则称Xy是非平凡的函数依赖。若不特别声明,总是讨论非平凡的 函数依赖。 ●X)Y,但Y是X的子集,则称X)Y是平凡的函数依赖 。若X→Y,则X叫做决定因素(①eterminant)。 ·若X)Y,Y)X,则记作X←Y。 若Y不函数依赖于X,则记作X→Y。 定义2:在R(U)中,如果X今Y,并且对于X的任何一个真集X',都有X'→Y,则称Y对X完 全函数依赖,记作: X 若XY,但Y不完全函数依赖于X,则称Y对X部分函数依赖,记作: 定义3:若关系模式R的每一个分量是不可再分的数据项,则关系模式R属于第一范式(1NF), 定义4:若关系模式RE1NF,且每一个非主属性完全函数依赖于码,则关系模式R∈2NF。(即IN 消除了非主属性对码的部分函数依赖则成为2NF)。 定义5:关系模式R中若不存在这样的码X、属性组Y及非主属性Z(忆不是Y的子集)低得X→Y, Y今X,Y今 则称REIN 不是X的子集时,X必含有码,则R<, 如果对于R的每个非平凡多值依赖X→→Y(Y不是X的子集,Z=-X-Y :一个关于系、学生、班级、学会等诸信息的关系数据库。 学生:学号、姓名、出生年月、系名、班号、宿舍区 班级:班号、专业名、系名、人数、入校年份。 系:系名、系号、系办公地点、人数。 学会:学会名、成立年份、办公地点、人数。 语义如下: 个系有若干专业,每个专业每年只招一个班,每个班有若干学生。 一个系的学生 住在同一宿合区。每个学生可参加若干学会,每个学会有若干学生。学生参加某学会有一个入会年份
St 用关系代数表达式优化算法对原关系代数表达式进行优化,优化后的关系代数表达式如下: π cname( б sc.cno=course.cno(( б St.sno=sc.sno( π sno( б St.sdept=’IS’(ST)) × π sno,cno(SC))) ×πcno,cname(Course)) 优化处理后的标准语法树如上右图。 5.试述查询优化的一般准则。(P161----162 页) 答:1)选择运算应尽可能先做。 2)在执行连接前对关系适当地预处理。 3)把投影运算和选择运算同时进行。 4)把投影同其前或其后的双目运算结合起来。 5)把某些选择同在它前面要执行的笛卡尔积结合起来成为一个连接运算。 6)找出公共子表达式。 6.试述查询优化的一般步骤。( 165 页) 答: (1)把查询转换成某种内部表示。 (2)把语法树转换成标准(优化)形式。 (3)选择低层的存取路径。 (4)生成查询计划,选择代价最小的。 第 5 章 关系数据理论复习题参考答案 规范化定义小结: 定义 1:设 R(U)是属性集 U 上的关系模式。X,Y 是属性集 U 的子集。若对于 R(U)的任意一个可能的 关系 r,r 中不可能存在两个元组在 X 上的属性值相等,而在 Y 上的属性值不等,则称 X 函数确定 Y 或 Y 函数依赖于 X,记作 X→Y。(即只要 X 上的属性值相等,Y 上的值一定相等。) 术语和记号:(P173 页) ⚫ X→Y,但 Y 不是 X 的子集,则称 X→Y 是非平凡的函数依赖。若不特别声明,总是讨论非平凡的 函数依赖。 ⚫ X→Y,但 Y 是 X 的子集,则称 X→Y 是平凡的函数依赖。 ⚫ 若 X→Y,则 X 叫做决定因素(Determinant)。 ⚫ 若 X→Y,Y→X,则记作 X→Y。 ⚫ 若 Y 不函数依赖于 X,则记作 X → Y。 定义 2:在 R(U)中,如果 X→Y,并且对于 X 的任何一个真子集 X’,都有 X’ → Y,则称 Y 对 X 完 全函数依赖,记作: F X→Y 若 X→Y,但 Y 不完全函数依赖于 X,则称 Y 对 X 部分函数依赖,记作: P X→Y 定义 3:若关系模式 R 的每一个分量是不可再分的数据项,则关系模式 R 属于第一范式(1NF)。 定义 4:若关系模式 R∈1NF,且每一个非主属性完全函数依赖于码,则关系模式 R∈2NF 。(即 1NF 消除了非主属性对码的部分函数依赖则成为 2NF)。 定义 5:关系模式 R 中若不存在这样的码 X、属性组 Y 及非主属性 Z(Z 不是 Y 的子集)使得 X→Y, Y → X,Y → Z 成立,则称 R∈3NF。 定义 6:关系模式 R∈1NF 。若 X→Y 且 Y 不是 X 的子集时,X 必含有码,则 R∈BCNF。 定义 7:关系模式 R∈1NF,如果对于 R 的每个非平凡多值依赖 X→→Y(Y 不是 X 的子集,Z=U-X-Y 不为空),X 都含有码,则称 R∈4NF。 习题如下: 2.建立一个关于系、学生、班级、学会等诸信息的关系数据库。 学生:学号、姓名、出生年月、系名、班号、宿舍区。 班级:班号、专业名、系名、人数、入校年份。 系:系名、系号、系办公地点、人数。 学会:学会名、成立年份、办公地点、人数。 语义如下:一个系有若干专业,每个专业每年只招一个班,每个班有若干学生。一个系的学生 住在同一宿舍区。每个学生可参加若干学会,每个学会有若干学生。学生参加某学会有一个入会年份
请给出关系模式,写出每个关系模式的极小函数依赖集,指出是否存在传递函数依栽,对于函 数依赖左部是多属性的情况讨论函数依赖是完全函数依赖,还是部分函数依赖。指出各关系模式的候选 码、外部码 码存在 解: 式 班级:cC1ass Pnam 系:D(Dep Dnm Cyear △ (②)每个关系模式的最小函数依赖集如下: A、学生S(Sno,Snane,Sbirth,Dept,Class,Rmo)的最小函数依赖集如下:Sno→Sname, Sno→Sbirth,Sno→Class,C1ass→Dept,DEPT→Rmo 传递依赖如下: 由于Sno→Dept,而Dept→Sno,Dept→Rmo(宿舍区》 C 由于Sno1as 所以Sno与DeDt之间存在若传递函勒依钟 B、班级C(Class,Pname,Dept,Cnum, Cyear)的最小函数依赖集如下 Class-→Pname,Class→Cnum,Class-→Cyear,Pname→Dept. 由于Class→Pname,Pname→Class,PnameDept 所以C1ass与Dept之间存在着传递函数依赖 C、系(Dept,Dmo, t,Dno→0 ffice, Dno今Dnu Dept D 学会 该模式不存在传递依赖。 (3)各关系模式的候选码、外部码,全码如下: A、学生S候选码:Sno:外部码:Dept、Class:无全码 B、班级C候洗码:C1ass:外部码:DeDt:无全码 C、系D候选码:Dept或Dmo:无外部码:无全码 D、学会M候选码:Mname:无外部码: 尤全 下面的结论 是正确的?哪些是错误的?对于错误的请给一个反例说明之 因为关系楼 只有 个属性,所以无传递。 若Y,且Y不是X的子集时,每个决定因素都包含码,对于二目关系 定因素必然包含码。详细证明如下:(任何二元关系模式必定是CNF) 证明设R为一个 二目关系R(A1,A2),则属性A1和A2之间可能存在以下几种依赖关系: A、A→A2,但A2→A1,则关系R的码为A1,决定因素都包含码,所以,R是BCNF。 B、A1→A2,2→A1,则关系R的码为A2,所以决定因素都包含码,R是BCNF。 包含码。R是BCNF。C、R的码为(AL,A2)Y即A1→A2,A2→A1),决定因素都 (3)任何一 二目关系是属于4NF 答:正确。因为只有两个属性,所以无非平凡的多值依赖 已知学 习题参考容案(补充 生关新 6acn0学 其中 (①)写出关系模式S的基本函数依赖和主码。 答:关系模式S的基本函数依赖如下: Sno→Sname,SD-Sdname,Sno→SD,(Sno,Course)→Grade
请给出关系模式,写出每个关系模式的极小函数依赖集,指出是否存在传递函数依赖,对于函 数依赖左部是多属性的情况讨论函数依赖是完全函数依赖,还是部分函数依赖。指出各关系模式的候选 码、外部码,有没有全码存在? 解:(1)关系模式如下: 学生:S(Sno,Sname,Sbirth,Dept,Class,Rno) 班级:C(Class,Pname,Dept,Cnum,Cyear) 系:D(Dept,Dno,Office,Dnum) 学会:M(Mname,Myear,Maddr,Mnum) (2)每个关系模式的最小函数依赖集如下: A、学生 S (Sno,Sname,Sbirth,Dept,Class,Rno) 的最小函数依赖集如下:Sno→Sname, Sno→Sbirth,Sno→Class,Class→Dept,DEPT→Rno 传递依赖如下: 由于 Sno→Dept,而 Dept→Sno ,Dept→Rno(宿舍区) 所以 Sno 与 Rno 之间存在着传递函数依赖。 由于 Class→Dept,Dept → Class,Dept→Rno 所以 Class 与 Rno 之间存在着传递函数依赖。 由于 Sno→Class,Class→Sno,Class→Dept 所以 Sno 与 Dept 之间存在着传递函数依赖。 B、班级 C(Class,Pname,Dept,Cnum,Cyear)的最小函数依赖集如下: Class→Pname,Class→Cnum,Class→Cyear,Pname→Dept. 由于 Class→Pname,Pname→Class,Pname→Dept 所以 C1ass 与 Dept 之间存在着传递函数依赖。 C、系 D(Dept,Dno,Office,Dnum)的最小函数依赖集如下: Dept→Dno,Dno→Dept,Dno→Office,Dno→Dnum 根据上述函数依赖可知,Dept 与 Office,Dept 与 Dnum 之间不存在传递依赖。 D、学会 M(Mname,Myear,Maddr,Mnum)的最小函数依赖集如下: Mname→Myear,Mname→Maddr,Mname→Mnum 该模式不存在传递依赖。 (3)各关系模式的候选码、外部码,全码如下: A、学生 S 候选码:Sno;外部码:Dept、Class;无全码 B、班级 C 候选码:Class;外部码:Dept;无全码 C、系 D 候选码:Dept 或 Dno;无外部码;无全码 D、学会 M 候选码:Mname;无外部码;无全码 12.下面的结论哪些是正确的? 哪些是错误的? 对于错误的请给一个反例说明之。 (1)任何一个二目关系是属于 3NF。 答:正确。因为关系模式中只有两个属性,所以无传递。 (2) 任何一个二目关系是属于 BCNF. 答:正确。按 BCNF 的定义,若 X→Y,且 Y 不是 X 的子集时,每个决定因素都包含码,对于二目关系决 定因素必然包含码。详细证明如下:(任何二元关系模式必定是 BCNF)。 证明:设 R 为一个二目关系 R(A1,A2),则属性 A1 和 A2 之间可能存在以下几种依赖关系: A、A1→A2,但 A2→A1,则关系 R 的码为 A1,决定因素都包含码,所以,R 是 BCNF。 B、A1→A2,A2→A1,则关系 R 的码为 A2,所以决定因素都包含码,R 是 BCNF。 包含码。R 是 BCNF。C、R 的码为(A1,A2)(即 A1 →A2,A2 →A1),决定因素都 (3)任何一个二目关系是属于 4NF. 答:正确。因为只有两个属性,所以无非平凡的多值依赖。 第 5 章 关系数据理论习题参考答案(补充) 1. 已知学生关系模式 S(Sno,Sname,SD,Sdname,Course,Grade) 其中:Sno 学号、Sname 姓名、SD 系名、Sdname 系主任名、Course 课程、Grade 成绩。 (1)写出关系模式 S 的基本函数依赖和主码。 答: 关系模式 S 的基本函数依赖如下: Sno→Sname,SD→Sdname,Sno→SD,(Sno,Course) →Grade