查询 考试查询选修人数大于等于3的课程2人的课程名 数据库系统概论

当前位置: >>
《数据库系统概论》第四版---课后习题答案
第 1 章 绪论 1 .试述数据、数据库、数据库系统、数据库管理系统的概念。 试述数据、数据库、数据库系统、数据库管理系统的概念。 答: ( l )数据( Data ) :描述事物的符号记录称为数据。数据的种类有数字、文字、图形、 数据( 描述事物的符号记录称为数据。数据的种类有数字、文字、图形、 图像、声音、正文等。数据与其语义是不可分的。 图像、声音、正文等。数据与其语义是不可分的。解析在现代计算机系统中数据的概念是 广义的。早期的计算机系统主要用于科学计算,处理的数据是整数、实数、 广义的。早期的计算机系统主要用于科学计算,处理的数据是整数、实数、浮点数等传统 数学中的数据。现代计算机能存储和处理的对象十分广泛, 数学中的数据。现代计算机能存储和处理的对象十分广泛,表示这些对象的数据也越来越 复杂。数据与其语义是不可分的。 复杂。数据与其语义是不可分的。 500 这个数字可以表示一件物品的价格是 500 元,也 可以表示一个学术会议参加的人数有 可以表示一个学术会议参加的人数有 500 人,还可以表示一袋奶粉重 500 克。 ( 2 )数据库( DataBase ,简称 DB ) :数据库是长期储存在计算机内的、有组织的、可 数据库( 数据库是长期储存在计算机内的、有组织的、 共享的数据集合。数据库中的数据按一定的数据模型组织、描述和储存, 共享的数据集合。数据库中的数据按一定的数据模型组织、描述和储存,具有较小的冗余 较高的数据独立性和易扩展性,并可为各种用户共享。 度、较高的数据独立性和易扩展性,并可为各种用户共享。 ( 3 )数据库系统( DataBas 。 Sytem ,简称 DBS ) :数据库系统是指在计算机系统中 数据库系统( 引入数据库后的系统构成,一般由数据库、数据库管理系统(及其开发工具) 应用系统、 、应用系统 引入数据库后的系统构成,一般由数据库、数据库管理系统(及其开发工具) 应用系统、 、 数据库管理员构成。解析数据库系统和数据库是两个概念 数据库系统是一个人一机系统, 库系统和数据库是两个概念。 数据库管理员构成。解析数据库系统和数据库是两个概念。数据库系统是一个人一机系统, 数据库是数据库系统的一个组成部分。 数据库是数据库系统的一个组成部分。但是在日常工作中人们常常把数据库系统简称为数 据库。希望读者能够从人们讲话或文章的上下文中区分“数据库系统” 数据库” 据库。希望读者能够从人们讲话或文章的上下文中区分“数据库系统”和“数据库” 不要 , 引起混淆。 引起混淆。 ( 4 )数据库管理系统( DataBase Management sytem ,简称 DBMs ) :数据库管理系统 数据库管理系统( 是位于用户与操作系统之间的一层数据管理软件,用于科学地组织和存储数据、 是位于用户与操作系统之间的一层数据管理软件,用于科学地组织和存储数据、高效地获 取和维护数据。 的主要功能包括数据定义功能、数据操纵功能、 取和维护数据。 DBMS 的主要功能包括数据定义功能、数据操纵功能、数据库的运行管理 功能、数据库的建立和维护功能。 是一个大型的复杂的软件系统, 功能、数据库的建立和维护功能。解析 DBMS 是一个大型的复杂的软件系统,是计算机中 的基础软件。目前, 产品很多。 的基础软件。目前,专门研制 DBMS 的厂商及其研制的 DBMS 产品很多。著名的有美国 IBM 公司的 DBZ 关系数据库管理系统和 IMS 层次数据库管理系统、美国 Oracle 公司 层次数据库管理系统、 关系数据库管理系统、 关系数据库管理系统、 的 orade 关系数据库管理系统、 s 油 ase 公司的 s 油 ase 关系数据库管理系统、 美国微 关系数据库管理系统等。 软公司的 SQL Serve ,关系数据库管理系统等。 2 .使用数据库系统有什么好处? 使用数据库系统有什么好处? 答: 使用数据库系统的好处是由数据库管理系统的特点或优点决定的 点或优点决定的。 使用数据库系统的好处是由数据库管理系统的特点或优点决定的。使用数据库系统的好处 很多,例如,可以大大提高应用开发的效率,方便用户的使用, 很多,例如,可以大大提高应用开发的效率,方便用户的使用,减轻数据库系统管理人员 维护的负担,等等。使用数据库系统可以大大提高应用开发的效率。 维护的负担,等等。使用数据库系统可以大大提高应用开发的效率。因为在数据库系统中 应用程序不必考虑数据的定义、 存储和数据存取的具体路径, 来完成。 应用程序不必考虑数据的定义、 存储和数据存取的具体路径, 这些工作都由 DBMS 来完成。 用一个通俗的比喻, 就如有了一个好参谋、好助手, 用一个通俗的比喻,使用了 DBMS 就如有了一个好参谋、好助手,许多具体的技术工作都 由这个助手来完成。开发人员就可以专注于应用逻辑的设计, 由这个助手来完成。开发人员就可以专注于应用逻辑的设计,而不必为数据管理的许许多 多复杂的细节操心。还有,当应用逻辑改变,数据的逻辑结构也需要改变时,由于数据库 多复杂的细节操心。还有,当应用逻辑改变,数据的逻辑结构也需要改变时,由于数据库 系统提供了数据与程序之间的独立性, 的责任, 系统提供了数据与程序之间的独立性,数据逻辑结构的改变是 DBA 的责任,开发人员不 必修改应用程序,或者只需要修改很少的应用程序,从而既简化了应用程序的编制, 必修改应用程序,或者只需要修改很少的应用程序,从而既简化了应用程序的编制,又大 大减少了应用程序的维护和修改。 大减少了应用程序的维护和修改。使用数据库系统可以减轻数据库系统管理人员维护系统 的负担。 在数据库建立、运用和维护时对数据库进行统一的管理和控制, 的负担。因为 DBMS 在数据库建立、运用和维护时对数据库进行统一的管理和控制,包括 数据的完整性、安全性、多用户并发控制、故障恢复等, 执行。总之, 数据的完整性、安全性、多用户并发控制、故障恢复等,都由 DBMS 执行。总之,使用数 据库系统的优点是很多的,既便于数据的集中管理,控制数据冗余, 据库系统的优点是很多的,既便于数据的集中管理,控制数据冗余,提高数据的利用率和 一致性,又有利于应用程序的开发和维护 读者可以在自己今后的工作中结合具体应用, 序的开发和维护。 一致性,又有利于应用程序的开发和维护。读者可以在自己今后的工作中结合具体应用, 认真加以体会和总结。 认真加以体会和总结。 3 .试述文件系统与数据库系统的区别和联系。 试述文件系统与数据库系统的区别和联系。 答: 文件系统与数据库系统的区别是:文件系统面向某一应用程序,共享性差,冗余度大, 文件系统与数据库系统的区别是:文件系统面向某一应用程序,共享性差,冗余度大,数 据独立性差,记录内有结构,整体无结构,由应用程序自己控制。 据独立性差,记录内有结构,整体无结构,由应用程序自己控制。数据库系统面向现实世 共享性高,冗余度小,具有较高的物理独立性和一定的逻辑独立性,整体结构化, 界,共享性高,冗余度小,具有较高的物理独立性和一定的逻辑独立性,整体结构化,用 数据模型描述,由数据库管理系统提供数据的安全性、完整性、并发控制和恢复能力。 数据模型描述,由数据库管理系统提供数据的安全性、完整性、并发控制和恢复能力。 文件系统与数据库系统的联系是:文件系统与数据库系统都是计算机系统中管理数据的软 文件系统与数据库系统的联系是:文件系统与数据库系统都是计算机系统中管理数据的软 解析文件系统是操作系统的重要组成部分; 是独立于操作系统的软件。 件。解析文件系统是操作系统的重要组成部分;而 DBMS 是独立于操作系统的软件。但是 DBMS 是在操作系统的基础上实现的;数据库中数据的组织和存储是通过操作系统中的文 是在操作系统的基础上实现的; 件系统来实现的。 件系统来实现的。 4 .举出适合用文件系统而不是数据库系统的例子;再举出适合用数据库系统的应用例子。 举出适合用文件系统而不是数据库系统的例子;再举出适合用数据库系统的应用例子。 答 : ( l )适用于文件系统而不是数据库系统的应用例子数据的备份、软件或应用程序使用过程 适用于文件系统而不是数据库系统的应用例子数据的备份、 中的临时数据存储一般使用文件比较合适。早期功能比较简单、 中的临时数据存储一般使用文件比较合适。早期功能比较简单、比较固定的应用系统也适 合用文件系统。 合用文件系统。 ( 2 )适用于数据库系统而非文件系统的应用例子目前,几乎所有企业或部门的信息系统 适用于数据库系统而非文件系统的应用例子目前 用例子目前, 都以数据库系统为基础,都使用数据库。例如,一个工厂的管理信息系统( 都以数据库系统为基础,都使用数据库。例如,一个工厂的管理信息系统(其中会包括许 多子系统,如库存管理系统、物资采购系统、作业调度系统、设备管理系统、 多子系统,如库存管理系统、物资采购系统、作业调度系统、设备管理系统、人事管理系 统等) 学校的学生管理系统,人事管理系统,图书馆的图书管理系统,等等, ,学校的学生管理系统 统等) 学校的学生管理系统,人事管理系统,图书馆的图书管理系统,等等,都适合用数 , 据库系统。希望读者能举出自己了解的应用例子。 据库系统。希望读者能举出自己了解的应用例子。 5 .试述数据库系统的特点。 试述数据库系统的特点。 答: 数据库系统的主要特点有: 数据库系统的主要特点有: ( l )数据结构化数据库系统实现整体数据的结构化,这是数据库的主要特征之一,也是数 数据结构化数据库系统实现整体数据的结构化,这是数据库的主要特征之一, 据库系统与文件系统的本质区别。解析注意这里的 整体’夕两个字。在数据库系统中, 里的“ 据库系统与文件系统的本质区别。解析注意这里的“整体’夕两个字。在数据库系统中, 数据不再针对某一个应用,而是面向全组织,具有整体的结构化。不仅数据是结构化的, 数据不再针对某一个应用,而是面向全组织,具有整体的结构化。不仅数据是结构化的, 而且数据的存取单位即一次可以存取数据的大小也很灵活,可以小到某一个数据项( 而且数据的存取单位即一次可以存取数据的大小也很灵活,可以小到某一个数据项(如一 个学生的姓名) 大到一组记录(成千上万个学生记录) 而在文件系统中, ,大到一组记录 。而在文件系统中 个学生的姓名) 大到一组记录(成千上万个学生记录) 而在文件系统中,数据的存取单 , 。 位只有一个:记录,如一个学生的完整记录。 位只有一个:记录,如一个学生的完整记录。 ( 2 )数据的共享性高,冗余度低,易扩充数据库的数据不再面向某个应用而是面向整个 数据的共享性高,冗余度低, 系统,因此可以被多个用户、多个应用以多种不同的语言共享使用。 系统,因此可以被多个用户、多个应用以多种不同的语言共享使用。由于数据面向整个系 是有结构的数据,不仅可以被多个应用共享使用 而且容易增加新的应用, 应用共享使用, 统,是有结构的数据,不仅可以被多个应用共享使用,而且容易增加新的应用,这就使得 数据库系统弹性大,易于扩充。解析数据共享可以大大减少数据冗余,节约存储空间, 数据库系统弹性大,易于扩充。解析数据共享可以大大减少数据冗余,节约存储空间,同 时还能够避免数据之间的不相容性与不一致性。所谓“数据面向某个应用” 时还能够避免数据之间的不相容性与不一致性。所谓“数据面向某个应用”是指数据结构 是针对某个应用设计的, 只被这个应用程序或应用系统使用, 可以说数据是某个应用的“ 是针对某个应用设计的, 只被这个应用程序或应用系统使用, 可以说数据是某个应用的 私 “ 有资源” 所谓“弹性大”是指系统容易扩充也容易收缩, 有资源” 所谓“弹性大”是指系统容易扩充也容易收缩,即应用增加或减少时不必修改整 。 个数据库的结构,只需做很少的改动。可以取整体数据的各种子集用于不同的应用系统, 个数据库的结构,只需做很少的改动。可以取整体数据的各种子集用于不同的应用系统, 当应用需求改变或增加时,只要重新选取不同的子集或加上一部分数据,便可以满足新的 当应用需求改变或增加时,只要重新选取不同的子集或加上一部分数据,便可以满足新的 需求。 需求。 ( 3 )数据独立性高数据独立性包括数据的物理独立性和数据的逻辑独立性。数据库管理 数据独立性高数据独立性包括数据的物理独立性和数据的逻辑独立性。 系统的模式结构和二级映像功能保证了数据库中的数据具有很高的物理独立性和逻辑独立 性。 ( 4 )数据由 DBMS 统一管理和控制数据库的共享是并发的共享,即多个用户可以同时存 统一管理和控制数据库的共享是并发的共享, 取数据库中的数据甚至可以同时存取数据库中同一个数据。 为此, 取数据库中的数据甚至可以同时存取数据库中同一个数据。 为此, DBMS 必须提供统一的 数据控制功能,包括数据的安全性保护、数据的完整性检查、并发控制和数据库恢复。 数据控制功能,包括数据的安全性保护、数据的完整性检查、并发控制和数据库恢复。解 数据控制功能包括四个方面: 数据的安全性保护: 保护数据以防止不合法的使用 析 DBMS 数据控制功能包括四个方面: 数据的安全性保护: 保护数据以防止不合法的使用 造成的数据的泄密和破坏;数据的完整性检查:将数据控制在有效的范围内, 造成的数据的泄密和破坏;数据的完整性检查:将数据控制在有效的范围内,或保证数据 之间满足一定的关系;并发控制:对多用户的并发操作加以控制和协调, 之间满足一定的关系;并发控制:对多用户的并发操作加以控制和协调,保证并发操作的 正确性;数据库恢复:当计算机系统发生硬件故障、软件故障, 正确性;数据库恢复:当计算机系统发生硬件故障、软件故障,或者由于操作员的失误以 及故意的破坏影响数据库中数据的正确性,甚至造成数据库部分或全部数据的丢失时, 及故意的破坏影响数据库中数据的正确性,甚至造成数据库部分或全部数据的丢失时,能 将数据库从错误状态恢复到某一已知的正确状态(亦称为完整状态或一致状态) 。下面可以 将数据库从错误状态恢复到某一已知的正确状态(亦称为完整状态或一致状态) 下面可以 。 得到“什么是数据库”的一个定义: 得到“什么是数据库”的一个定义:数据库是长期存储在计算机内有组织的大量的共享的 数据集合,它可以供各种用户共享,具有最小冗余度和较高的数据独立性 冗余度和较高的数据独立性。 数据集合,它可以供各种用户共享,具有最小冗余度和较高的数据独立性。 DBMS 在数据 库建立、运用和维护时对数据库进行统一控制,以保证数据的完整性、安全性, 库建立、运用和维护时对数据库进行统一控制,以保证数据的完整性、安全性,并在多用 户同时使用数据库时进行并发控制,在发生故障后对系统进行恢复。 户同时使用数据库时进行并发控制,在发生故障后对系统进行恢复。数据库系统的出现使 信息系统从以加工数据的程序为中心转向围绕共享的数据库为中心的新阶段。 信息系统从以加工数据的程序为中心转向围绕共享的数据库为中心的新阶段。 6 .数据库管理系统的主要功能有哪些? 数据库管理系统的主要功能有哪些? 答: ( l )数据库定义功能; 数据库定义功能; ( 2 )数据存取功能; 数据存取功能; ( 3 )数据库运行管理; 数据库运行管理; ( 4 )数据库的建立和维护功能。 数据库的建立和维护功能。 7 .试述数据模型的概念、数据模型的作用和数据模型的三个要素。 试述数据模型的概念、数据模型的作用和数据模型的三个要素。 答: 数据模型是数据库中用来对现实世界进行抽象的工具, 数据模型是数据库中用来对现实世界进行抽象的工具,是数据库中用于提供信息表示和操 作手段的形式构架。一般地讲,数据模型是严格定义的概念的集合。 作手段的形式构架。一般地讲,数据模型是严格定义的概念的集合。这些概念精确描述了 系统的静态特性、动态特性和完整性约束条件。因此数据模型通常由数据结构、 系统的静态特性、动态特性和完整性约束条件。因此数据模型通常由数据结构、数据操作 和完整性约束三部分组成。 和完整性约束三部分组成。 ( l )数据结构:是所研究的对象类型的集合,是对系统静态特性的描述。 数据结构:是所研究的对象类型的集合,是对系统静态特性的描述。 ( 2 )数据操作:是指对数据库中各种对象(型)的实例(值)允许进行的操作的集合, 数据操作:是指对数据库中各种对象( 的实例( 允许进行的操作的集合, 包括操作及有关的操作规则,是对系统动态特性的描述。 包括操作及有关的操作规则,是对系统动态特性的描述。 ( 3 )数据的约束条件:是一组完整性规则的集合。完整性规则是给定的数据模型中数据 数据的约束条件:是一组完整性规则的集合 性规则的集合。 及其联系所具有的制约和依存规则,用以限定符合数据模型的数据库状态以及状态的变化, 及其联系所具有的制约和依存规则,用以限定符合数据模型的数据库状态以及状态的变化, 以保证数据的正确、有效、相容。解析数据模型是数据库系统中最重要的概念之一。 以保证数据的正确、有效、相容。解析数据模型是数据库系统中最重要的概念之一。必须 的学习真正掌握数据模型的概念和作用。数据模型是数据库系统的基础。 通过 《 概论 》 的学习真正掌握数据模型的概念和作用。数据模型是数据库系统的基础。 都以某一个数据模型为基础, 或者说支持某一个数据模型。 数据库系统中, 任何一个 DBMS 都以某一个数据模型为基础, 或者说支持某一个数据模型。 数据库系统中, 模型有不同的层次。根据模型应用的不同目的,可以将模型分成两类或者说两个层次: 模型有不同的层次。根据模型应用的不同目的,可以将模型分成两类或者说两个层次:一 类是概念模型,是按用户的观点来对数据和信息建模,用于信息世界的建模 的建模, 类是概念模型,是按用户的观点来对数据和信息建模,用于信息世界的建模,强调语义表 达能力,概念简单清晰;另一类是数据模型,是按计算机系统的观点对数据建模, 达能力,概念简单清晰;另一类是数据模型,是按计算机系统的观点对数据建模,用于机 器世界,人们可以用它定义、操纵数据库中的数据, 器世界,人们可以用它定义、操纵数据库中的数据,一般需要有严格的形式化定义和一组 严格定义了语法和语义的语言,并有一些规定和限制,便于在机器上实现。 严格定义了语法和语义的语言,并有一些规定和限制,便于在机器上实现。 8 .试述概念模型的作用。 试述概念模型的作用。 答: 概念模型实际上是现实世界到机器世界的一个中间层次。概念模型用于信息世界的建模, 概念模型实际上是现实世界到机器世界的一个中间层次。概念模型用于信息世界的建模, 是现实世界到信息世界的第一层抽象,是数据库设计人员进行数据库设计的有力工具, 是现实世界到信息世界的第一层抽象,是数据库设计人员进行数据库设计的有力工具,也 是数据库设计人员和用户之间进行交流的语言。 是数据库设计人员和用户之间进行交流的语言。 9 .定义并解释概念模型中以下术语:实体,实体型,实体集,属性,码,实体联系图( E 定义并解释概念模型中以下术语 实体,实体型,实体集,属性, 实体联系图( 一 R 图) 答: 实体:客观存在并可以相互区分的事物叫实体。实体型: 实体:客观存在并可以相互区分的事物叫实体。实体型:具有相同属性的实体具有相同的 特征和性质,用实体名及其属性名集合来抽象和刻画同类实体,称为实体型。实体集: 特征和性质,用实体名及其属性名集合来抽象和刻画同类实体,称为实体型。实体集:同 型实体的集合称为实体集。属性:实体所具有的某一特性, 型实体的集合称为实体集。属性:实体所具有的某一特性,一个实体可由若干个属性来刻 惟一标识实体的属性集称为码。实体联系图( :提供了表示实体型 画。码:惟一标识实体的属性集称为码。实体联系图( E 一 R 图) 提供了表示实体型、 :提供了表示实体型、 属性和联系的方法: 实体型:用矩形表示,矩形框内写明实体名; 属性: 属性和联系的方法: ? 实体型:用矩形表示,矩形框内写明实体名; ? 属性:用椭圆 形表示,并用无向边将其与相应的实体连接起来 接起来; 联系:用菱形表示, 形表示,并用无向边将其与相应的实体连接起来; ? 联系:用菱形表示,菱形框内写明 联系名, 并用无向边分别与有关实体连接起来, 联系名, 并用无向边分别与有关实体连接起来, 同时在无向边旁标上联系的类型 1 : 1 , 1 : ( n 或 m:n ) 。 10 .试给出 3 个实际部门的 E 一 R 图,要求实体型之间具有一对一、一对多、多对多 要求实体型之间具有一对一、一对多、 各种不同的联系。 各种不同的联系。 答:11 .试给出一个实际部门的 E 一 R 图,要求有三个实体型,而且 3 个实体型之间有多 要求有三个实体型, 对多联系。 对多联系。 3 个实体型之间的多对多联系和三个实体型两两之间的三个多对多联系等价 为什么? 吗?为什么? 答: 3 个实体型之间的多对多联系和 3 个实体型两两之间的 3 个多对多联系是不等价,因为 个实体型之间的多对多联系和 个多对多联系是不等价, 它们拥有不同的语义。 个实体型两两之间的三个多对多联系如下图所示。 它们拥有不同的语义。 3 个实体型两两之间的三个多对多联系如下图所示。12 . 每个班有若干学生, 每个学生选修若干课程, 每门课可由若干学生选修。 ; 每个班有若干学生, 每个学生选修若干课程, 每门课可由若干学生选修。 请用 E 一 R 图 画出此学校的概念模型。 画出此学校的概念模型。 答:13 .某工厂生产若干产品,每种产品由不同的零件组成,有的零件可用在不同的产品上。 某工厂生产若干产品,每种产品由不同的零件组成,有的零件可用在不同的产品上。 这些零件由不同的原材料制成,不同零件所用的材料可以相同。 这些零件由不同的原材料制成,不同零件所用的材料可以相同。这些零件按所属的不同产 品分别放在仓库中,原材料按照类别放在若干仓库中。 图画出此工厂产品、 品分别放在仓库中,原材料按照类别放在若干仓库中。请用 E 一 R 图画出此工厂产品、 零件、材料、仓库的概念模型。 零件、材料、仓库的概念模型。 答: 14 .试述层次模型的概念,举出三个层次模型的实例。 试述层次模型的概念,举出三个层次模型的实例。 答: ( l )教员学生层次数据库模型( 2 )行政机构层次数据库模型( 3 )行政区域层次数据库模型15.今有一个层次数据库实例,试用子女一兄弟链接法和层次序列链接法画出它的存储结 .今有一个层次数据库实例, 构示意图。 构示意图。 答: 子女兄弟链接法: 子女兄弟链接法:层次序列链接法: 层次序列链接法:16 .试述网状模型的概念,举出三个网状模型的实例。 试述网状模型的概念,举出三个网状模型的实例。 答: 满足下面两个条件的基本层次联系集合为网状模型。 满足下面两个条件的基本层次联系集合为网状模型。 ( l )允许一个以上的结点无双亲; ( 2 )一个结点可以有多于一个的双亲。 允许一个以上的结点无双亲; 一个结点可以有多于一个的双亲。 实例 1 : 实例 2 :实例 3 :17 .试述网状、层次数据库的优缺点。 试述网状、层次数据库的优缺点。 答: 层次模型的优点主要有: 模型简单,对具有一对多层次关系的部门描述非常自然、 层次模型的优点主要有: ( l )模型简单,对具有一对多层次关系的部门描述非常自然、直 容易理解,这是层次数据库的突出优点; 用层次模型的应用系统性能好, 观,容易理解,这是层次数据库的突出优点; ( 2 )用层次模型的应用系统性能好,特别 是对于那些实体间联系是固定的且预先定义好的应用,采用层次模型来实现, 是对于那些实体间联系是固定的且预先定义好的应用,采用层次模型来实现,其性能优于 关系模型; 层次数据模型提供了良好的完整性支持。 关系模型; ( 3 )层次数据模型提供了良好的完整性支持。 层次模型的缺点主要有: 现实世界中很多联系是非层次性的 如多对多联系、 是非层次性的, 层次模型的缺点主要有: ( l )现实世界中很多联系是非层次性的,如多对多联系、一个结 点具有多个双亲等,层次模型不能自然地表示这类联系, 点具有多个双亲等,层次模型不能自然地表示这类联系,只能通过引入冗余数据或引入虚 拟结点来解决; 对插入和删除操作的限制比较多; 拟结点来解决; ( 2 )对插入和删除操作的限制比较多; ( 3 )查询子女结点必须通过双 亲结点。 亲结点。 网状数据模型的优点主要有: 能够更为直接地描述现实世界, 网状数据模型的优点主要有: ( l )能够更为直接地描述现实世界,如一个结点可以有多个 双亲; 具有良好的性能,存取效率较高。 双亲; ( 2 )具有良好的性能,存取效率较高。 网状数据模型的缺点主要有: 结构比较复杂,而且随着应用环境的扩大, 网状数据模型的缺点主要有: ( l )结构比较复杂,而且随着应用环境的扩大,数据库的结 构就变得越来越复杂,不利于最终用户掌握; 言复杂, 构就变得越来越复杂,不利于最终用户掌握; ( 2 )其 DDL 、 DML 语言复杂,用户不 容易使用。由于记录之间联系是通过存取路径实现的, 容易使用。由于记录之间联系是通过存取路径实现的,应用程序在访问数据时必须选择适 当的存取路径。因此,用户必须了解系统结构的细节,加重了编写应用程序的负担。 当的存取路径。因此,用户必须了解系统结构的细节,加重了编写应用程序的负担。 18 .试述关系模型的概念,定义并解释以下术语: ( l )关系( 2 )属性( 3 )域( 4 ) 试述关系模型的概念,定义并解释以下术语: 关系( 属性( 主码( 分量( 元组 ( 5 )主码( 6 )分量( 7 )关系模式 答: 关系模型由关系数据结构、关系操作集合和关系完整性约束三部分组成。在用户观点下, 关系模型由关系数据结构、关系操作集合和关系完整性约束三部分组成。在用户观点下, 关系模型中数据的逻辑结构是一张二维表,它由行和列组成。 关系: 关系模型中数据的逻辑结构是一张二维表,它由行和列组成。 ( l )关系:一个关系对应通 常说的一张表; 属性: 表中的一列即为一个属性; 属性的取值范围; 常说的一张表; ( 2 )属性:表中的一列即为一个属性; ( 3 )域:属性的取值范围; ( 4 ) 元组:表中的一行即为一个元组; 主码:表中的某个属性组, 元组:表中的一行即为一个元组; ( 5 )主码:表中的某个属性组,它可以惟一确定一个 元组; 分量:元组中的一个属性值; 关系模式:对关系的描述, 元组; ( 6 )分量:元组中的一个属性值; ( 7 )关系模式:对关系的描述,一般表示为 关系名( 关系名(属性 1 ,属性 2 , … ,属性 n ) 19 .试述关系数据库的特点。 试述关系数据库的特点。 答: 关系数据模型具有下列优点: 关系模型与非关系模型不同, 关系数据模型具有下列优点: ( l )关系模型与非关系模型不同,它是建立在严格的数学概 念的基础上的。 关系模型的概念单一,无论实体还是实体之间的联系都用关系表示 用关系表示, 念的基础上的。 ( 2 )关系模型的概念单一,无论实体还是实体之间的联系都用关系表示, 操作的对象和操作的结果都是关系,所以其数据结构简单、清晰,用户易懂易用。 操作的对象和操作的结果都是关系,所以其数据结构简单、清晰,用户易懂易用。 ( 3 ) 关系模型的存取路径对用户透明,从而具有更高的数据独立性、更好的安全保密性, 关系模型的存取路径对用户透明,从而具有更高的数据独立性、更好的安全保密性,也简 化了程序员的工作和数据库开发建立的工作。当然,关系数据模型也有缺点, 化了程序员的工作和数据库开发建立的工作。当然,关系数据模型也有缺点,其中最主要 的缺点是,由于存取路径对用户透明,查询效率往往不如非关系数据模型。 的缺点是,由于存取路径对用户透明,查询效率往往不如非关系数据模型。因此为了提高 性能,必须对用户的查询请求进行优化,增加了开发数据库管理系统的难度。 性能,必须对用户的查询请求进行优化,增加了开发数据库管理系统的难度。 20 .试述数据库系统三级模式结构,这种结构的优点是什么? 试述数据库系统三级模式结构,这种结构的优点是什么? 答: 数据库系统的三级模式结构由外模式、模式和内模式组成 ( 模式组成。 (参见书上图 外模式, 数据库系统的三级模式结构由外模式、模式和内模式组成。 参见书上图 1 . 29 ) 外模式, 亦称子模式或用户模式,是数据库用户(包括应用程序员和最终用户) 亦称子模式或用户模式,是数据库用户(包括应用程序员和最终用户)能够看见和使用的 局部数据的逻辑结构和特征的描述,是数据库用户的数据视图, 局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据 的逻辑表示。模式,亦称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述, 的逻辑表示。模式,亦称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所 有用户的公共数据视图。模式描述的是数据的全局逻辑结构。 有用户的公共数据视图。模式描述的是数据的全局逻辑结构。外模式涉及的是数据的局部 逻辑结构,通常是模式的子集。内模式,亦称存储模式,是数据在数据库系统内部的表示, 逻辑结构,通常是模式的子集。内模式,亦称存储模式,是数据在数据库系统内部的表示, 即对数据的物理结构和存储方式的描述。数据库系统的三级模式是对数据的三个抽象级别 抽象级别, 即对数据的物理结构和存储方式的描述。数据库系统的三级模式是对数据的三个抽象级别, 管理,使用户能逻辑抽象地处理数据, 它把数据的具体组织留给 DBMs 管理,使用户能逻辑抽象地处理数据,而不必关心数据在 计算机中的表示和存储。为了能够在内部实现这三个抽象层次的联系和转换, 计算机中的表示和存储。为了能够在内部实现这三个抽象层次的联系和转换,数据库系统 在这三级模式之间提供了两层映像:外模式/模式映像和模式/内模式映像。 在这三级模式之间提供了两层映像:外模式/模式映像和模式/内模式映像。正是这两层 映像保证了数据库系统中的数据能够具有较高的逻辑独立性和物理独立性。 映像保证了数据库系统中的数据能够具有较高的逻辑独立性和物理独立性。 21 .定义并解释以下术语:模式、外模式、内模式、 DDL 、 DML 模式、外模式、内模 定义并解释以下术语:模式、外模式、内模式、 模式、外模式、 亦称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述, 式,亦称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数 据视图。模式描述的是数据的全局逻辑结构 外模式涉及的是数据的局部逻辑结构, 的全局逻辑结构。 据视图。模式描述的是数据的全局逻辑结构。外模式涉及的是数据的局部逻辑结构,通常 是模式的子集。内模式,亦称存储模式,是数据在数据库系统内部的表示, 是模式的子集。内模式,亦称存储模式,是数据在数据库系统内部的表示,即对数据的物 理结构和存储方式的描述。 数据定义语言,用来定义数据库模式、外模式、 理结构和存储方式的描述。 DDL :数据定义语言,用来定义数据库模式、外模式、内模 式的语言。 数据操纵语言,用来对数据库中的数据进行查询、插入、 式的语言。 DML :数据操纵语言,用来对数据库中的数据进行查询、插入、删除和修改 的语句。 的语句。 22 .什么叫数据与程序的物理独立性?什么叫数据与程序的逻辑独立性?为什么数据库系 什么叫数据与程序的物理独立性?什么叫数据与程序的逻辑独立性? 统具有数据与程序的独立性? 统具有数据与程序的独立性? 答: 数据与程序的逻辑独立性:当模式改变时(例如增加新的关系、新的属性、 数据与程序的逻辑独立性:当模式改变时(例如增加新的关系、新的属性、改变属性的数 据类型等) 由数据库管理员对各个外模式/模式的映像做相应改变, ,由数据库管理员对各个外模式 据类型等) 由数据库管理员对各个外模式/模式的映像做相应改变,可以使外模式保持不 , 应用程序是依据数据的外模式编写的,从而应用程序不必修改, 变。应用程序是依据数据的外模式编写的,从而应用程序不必修改,保证了数据与程序的 逻辑独立性,简称数据的逻辑独立性。数据与程序的物理独立性: 逻辑独立性,简称数据的逻辑独立性。数据与程序的物理独立性:当数据库的存储结构改 变了,由数据库管理员对模式/内模式映像做相应改变,可以使模式保持不变, 变了,由数据库管理员对模式/内模式映像做相应改变,可以使模式保持不变,从而应用 程序也不必改变,保证了数据与程序的物理独立性,简称数据的物理独立性。 程序也不必改变,保证了数据与程序的物理独立性,简称数据的物理独立性。数据库管理 系统在三级模式之间提供的两层映像保证了数据库系统中的数据能够具有较高的逻辑独立 性和物理独立性。 性和物理独立性。 23 .试述数据库系统的组成。 试述数据库系统的组成。 答: 数据库系统一般由数据库、数据库管理系统(及其开发工具) 应用系统、 、应用系统 数据库系统一般由数据库、数据库管理系统(及其开发工具) 应用系统、数据库管理员和 、 用户构成。 用户构成。 24 . DBA 的职责是什么? 的职责是什么? 答: 负责全面地管理和控制数据库系统。 具体职责包括: 决定数据库的信息内容和结构; 负责全面地管理和控制数据库系统。 具体职责包括: ① 决定数据库的信息内容和结构; ② 决定数据库的存储结构和存取策略; 定义数据的安全性要求和完整性约束条件; 决定数据库的存储结构和存取策略; ③ 定义数据的安全性要求和完整性约束条件; ④ 监 督和控制数据库的使用和运行; 改进和重组数据库系统。 系统分析员、 督和控制数据库的使用和运行; ⑤ 改进和重组数据库系统。 25 .系统分析员、数据库 设计人员、应用程序员的职责是什么?答系统分析员负责应用系统的需求分析和规范说明, 设计人员、应用程序员的职责是什么?答系统分析员负责应用系统的需求分析和规范说明, 相结合 确定系统的硬件、软件配置, 系统分析员要和用户及 DBA 相结合,确定系统的硬件、软件配置,并参与数据库系统的 概要设计。数据库设计人员负责数据库中数据的确定、数据库各级模式的设计。 概要设计。数据库设计人员负责数据库中数据的确定、数据库各级模式的设计。数据库设 计人员必须参加用户需求调查和系统分析,然后进行数据库设计。在很多情况下, 计人员必须参加用户需求调查和系统分析,然后进行数据库设计。在很多情况下,数据库 设计人员就由数据库管理员担任。应用程序员负责设计和编写应用系统的程序模块, 设计人员就由数据库管理员担任。应用程序员负责设计和编写应用系统的程序模块,并进 行调试和安装。 行调试和安装。第 2 章 关系数据库 1 .试述关系模型的三个组成部分。 试述关系模型的三个组成部分。 关系模型由关系数据结构、关系操作集合和关系完整性约束三部分组成。 答:关系模型由关系数据结构、关系操作集合和关系完整性约束三部分组成。 2 .试述关系数据语言的特点和分类。 试述关系数据语言的特点和分类。 关系数据语言可以分为三类: 答:关系数据语言可以分为三类: 关系代数语言。 关系代数语言。 关系演算语言:元组关系演算语言和域关系演算语言。 关系演算语言:元组关系演算语言和域关系演算语言。 SQL:具有关系代数和关系演算双重特点的语言。 :具有关系代数和关系演算双重特点的语言。 这些关系数据语言的共同特点是,语言具有完备的表达能力, 这些关系数据语言的共同特点是,语言具有完备的表达能力,是非过程化的集合操作 语言,功能强,能够嵌入高级语言中使用。 语言,功能强,能够嵌入高级语言中使用。 4 .试述关系模型的完整性规则。在参照完整性中,为什么外部码属性的值也可以为空? 试述关系模型的完整性规则。在参照完整性中,为什么外部码属性的值也可以为空? 什么情况下才可以为空? 什么情况下才可以为空? 的主属性, 不能取空值。 答:实体完整性规则是指若属性 A 是基本关系 R 的主属性,则属性 A 不能取空值。 若属性(或属性组 或属性组)F 的外码, 相对应(基本关系 若属性 或属性组 是基本关系 R 的外码,它与基本关系 S 的主码 Ks 相对应 基本关系 R 不一定是不同的关系 关系), 上的值必须为:或者取空值(F 和 S 不一定是不同的关系 ,则对于 R 中每个元组在 F 上的值必须为:或者取空值 的每 个属性值均为空值); 中某个元组的主码值。 本身不是主属性, 个属性值均为空值 ;或者等于 S 中某个元组的主码值。即属性 F 本身不是主属性,则可以 取空值,否则不能取空值。 取空值,否则不能取空值。 5.设有一个 SPJ 数据库,包括 S,P,J,SPJ 四个关系模式: . 数据库, 四个关系模式: , , , 1)求供应工程 J1 零件的供应商号码 SNO: ) : πSno(σSno=‘J1’ SPJ)) σ ‘ ’ ( ) 2)求供应工程 J1 零件 P1 的供应商号码 SNO: ) : ’∧Pno=‘P1‘(SPJ)) πSno(σSno=‘J1’∧ σ ‘ ’∧ ‘ ‘ 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) , ÷ ( ‘ ‘ ) ) 6.试述等值连接与自然连接的区别和联系。 .试述等值连接与自然连接的区别和联系。 连接运算符是“ ”的连接运算称为等值连接。 答:连接运算符是“=”的连接运算称为等值连接。它是从关系 R 与 S 的广义笛卡尔积中选 取 A,B 属性值相等的那些元组 , 自然连接是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组 两个关系中进行比较的分量必须是相同的属性组, 自然连接是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组, 并且在结果中把重复的属性列去掉。 并且在结果中把重复的属性列去掉。 7.关系代数的基本运算有哪些 ? 如何用这些基本运算来表示其他运算 . 如何用这些基本运算来表示其他运算? 笛卡尔积、 种运算为基本的运算。 种运算,即交、 答:并、差、笛卡尔积、投影和选择 5 种运算为基本的运算。其他 3 种运算,即交、连接 和除, 种基本运算来表达。 和除,均可以用这 5 种基本运算来表达。第 3 章 关系数据库标准语言 SQL 1 .试述 sQL 语言的特点。 语言的特点。 答: (l) 综合统一。 ) 综合统一。 sQL 语言集数据定义语言 DDL 、 数据操纵语言 DML 、 数据控制语言 DCL 的功能于一体。 的功能于一体。 (2)高度非过程化。用 sQL 语言进行数据操作,只要提出“做什么” 而无需指明“怎么 语言进行数据操作,只要提出“做什么” 而无需指明“ )高度非过程化。 , 语句的操作过程由系统自动完成。 做” 因此无需了解存取路径,存取路径的选择以及 sQL 语句的操作过程由系统自动完成。 ,因此无需了解存取路径, (3)面向集合的操作方式。 sQL 语言采用集合操作方式,不仅操作对象、查找结果可以是 语言采用集合操作方式,不仅操作对象、 )面向集合的操作方式。 元组的集合,而且一次插入、删除、更新操作的对象也可以是元组的集合。 元组的集合,而且一次插入、删除、更新操作的对象也可以是元组的集合。 (4)以同一种语法结构提供两种使用方式。 sQL 语言既是自含式语言,又是嵌入式语言。 语言既是自含式语言,又是嵌入式语言。 )以同一种语法结构提供两种使用方式。 作为自含式语言,它能够独立地用于联机交互的使用方式;作为嵌入式语言, 作为自含式语言,它能够独立地用于联机交互的使用方式;作为嵌入式语言,它能够嵌入 到高级语言程序中,供程序员设计程序时使用。 到高级语言程序中,供程序员设计程序时使用。 (5)语言简捷,易学易用。 )语言简捷,易学易用 2 .试述 sQL 的定义功能。 的定义功能。 sQL 的数据定义功能包括定义表、 的数据定义功能包括定义表、 定义视图和定义索引。 定义视图和定义索引。 SQL 语言使用 cREATE TABLE 语句建立基本表, 语句修改基本表定义, 语句建立基本表, ALTER TABLE 语句修改基本表定义, DROP TABLE 语句删除基本 语句建立索引, 语句删除索引; 表; 使用 CREATE INDEX 语句建立索引, DROP INDEX 语句删除索引; 使用 CREATE VIEW 语句建立视图, DROP VIEW 语句删除视图。 语句建立视图, 语句删除视图。 3 .用 sQL 语句建立第二章习题 5 中的 4 个表。 个表。 答: 对于 S 表: S ( SNO , SNAME , STATUS , CITY ) ; 建 S 表: CREATE TABLE S ( Sno C(2) UNIQUE,Sname C(6) ,Status C(2),City C(4)); , , 对于 P 表: P ( PNO , PNAME , COLOR , WEIGHT ); 建 P 表 : CREATE TABLE P(Pno C(2) UNIQUE , Pname WEIGHT INT);C(6) , COLORC(2) ,对于 J 表: J ( JNO , JNAME , CITY) ; ) 建 J 表: CREATE TABLE J(Jno C(2) UNlQUE,JNAME C(8), CITY C(4)) , , 对于 sPJ 表: sPJ ( sNo , PNo , JNo , QTY) ; ) 建 SPJ 表:SPJ(SNO,PNO,JNO,QTY) CREATE TABLE SPJ(Sno C(2),Pno C(2),JNO C(2), QTY INT)) , , , 4.针对上题中建立的 4 个表试用 sQL 语言完成第二章习题 5 中的查询。 针对上题中建立的 中的查询。 ( l )求供应工程 Jl 零件的供应商号码 SNO ; JNO=’J1 J1’ SELECT DIST SNO FROM SPJ WHERE JNO= J1 ( 2 )求供应工程 Jl 零件 Pl 的供应商号码 SNO ; SELECT DIST SNO FROM SPJ WHERE JNO='J1' AND PNO='P1' ( 3 )求供应工程 Jl 零件为红色的供应商号码 SNO ; COLOR=' 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 )求至少用了供应商 Sl 所供应的全部零件的工程号 JNO ; 不允许子查询嵌套太深, 由于 VFP 不允许子查询嵌套太深,将查询分为两步 A、查询 S1 供应商供应的零件号 SELECT SNO='S1'结果是 P1,P2) 结果是( 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 (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)请将 ,J6,P4,200)插入供应情况关系。 请将(S2, , , 插入供应情况关系。 请将 插入供应情况关系 INSERT INTO SPJ VALUES( S2’‘J6’‘P4’ 200) ( ‘ ’ , ’ , ’ , ) 6 .什么是基本表?什么是视图? 什么是基本表?什么是视图? 答 两者的区别和联系是什么?基本表是本身独立存在的表, 中一个关系就对应一个 两者的区别和联系是什么?基本表是本身独立存在的表,在 sQL 中一个关系就对应一个 视图是从一个或几个基本表导出的表。视图本身不独立存储在数据库中,是一个虚表。 表。视图是从一个或几个基本表导出的表。视图本身不独立存储在数据库中,是一个虚表。 即数据库中只存放视图的定义而不存放视图对应的数据, 即数据库中只存放视图的定义而不存放视图对应的数据,这些数据仍存放在导出视图的基 本表中。视图在概念上与基本表等同,用户可以如同基本表那样使用视图, 本表中。视图在概念上与基本表等同,用户可以如同基本表那样使用视图,可以在视图上 再定义视图。 再定义视图。 7 .试述视图的优点。 试述视图的优点。 答 ( l )视图能够简化用户的操作; ( 2 )视图使用户能以多种角度看待同一数据; ( 3 )视 视图能够简化用户的操作; 视图使用户能以多种角度看待同一数据; 图对重构数据库提供了一定程度的逻辑独立性; 视图能够对机密数据提供安全保护。 图对重构数据库提供了一定程度的逻辑独立性; ( 4 )视图能够对机密数据提供安全保护。 8 .所有的视图是否都可以更新?为什么? 所有的视图是否都可以更新?为什么? 答: 不是。视图是不实际存储数据的虚表,因此对视图的更新,最终要转换为对基本表的更新。 不是。视图是不实际存储数据的虚表,因此对视图的更新,最终要转换为对基本表的更新。 因为有些视图的更新不能惟一有意义地转换成对相应基本表的更新,所以, 因为有些视图的更新不能惟一有意义地转换成对相应基本表的更新,所以,并不是所有的 视图都是可更新的. 视图都是可更新的 9 .哪类视图是可以更新的?哪类视图是不可更新的?各举一例说明。 哪类视图是可以更新的?哪类视图是不可更新的?各举一例说明。 基本表的行列子集视图一般是可更新的。若视图的属性来自集函数、表达式, 答:基本表的行列子集视图一般是可更新的。若视图的属性来自集函数、表达式,则该视 图肯定是不可以更新的。 图肯定是不可以更新的。 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'第 4 章 数据库安全性 1 .什么是数据库的安全性? 什么是数据库的安全性? 数据库的安全性是指保护数据库以防止不合法的使用所造成的数据泄露、更改或破坏。 答:数据库的安全性是指保护数据库以防止不合法的使用所造成的数据泄露、更改或破坏。 2 .数据库安全性和计算机系统的安全性有什么关系? 数据库安全性和计算机系统的安全性有什么关系? 安全性问题不是数据库系统所独有的,所有计算机系统都有这个问题。 答:安全性问题不是数据库系统所独有的,所有计算机系统都有这个问题。只是在数据库 系统中大量数据集中存放,而且为许多最终用户直接共享,从而使安全性问题更为突出。 系统中大量数据集中存放,而且为许多最终用户直接共享,从而使安全性问题更为突出。 系统安全保护措施是否有效是数据库系统的主要指标之一。 系统安全保护措施是否有效是数据库系统的主要指标之一。 数据库的安全性和计算机系统的安全性,包括操作系统、网络系统的安全性是紧密联系、 数据库的安全性和计算机系统的安全性,包括操作系统、网络系统的安全性是紧密联系、 相互支持的, 相互支持的, 3 .试述可信计算机系统评测标准的情况,试述 TDI / TCSEC 标准的基本内容。 试述可信计算机系统评测标准的情况, 标准的基本内容。 各个国家在计算机安全技术方面都建立了一套可信标准。 答:各个国家在计算机安全技术方面都建立了一套可信标准。目前各国引用或制定的一系 列安全标准中,最重要的是美国国防部( 正式颁布的《 列安全标准中,最重要的是美国国防部(DoD )正式颁布的《 DoD 可信计算机系统评估 标准》 又称桔皮书) (TDI 标准》 (伽 sted Co 哪 uter system Evaluation criteria ,简称 TcsEc ,又称桔皮书)( 。 / TCSEC 标准是将 TcsEc 扩展到数据库管理系统,即《 可信计算机系统评估标准关于可 扩展到数据库管理系统, 信数据库系统的解释》 又称紫皮书) 信数据库系统的解释》(Tmsted Database Interpretation 简称 TDI , 又称紫皮书) 在 TDI 。 中定义了数据库管理系统的设计与实现中需满足和用以进行安全性级别评估的标准。 中定义了数据库管理系统的设计与实现中需满足和用以进行安全性级别评估的标准。 TDI 与 TcsEc 一样,从安全策略、责任、保证和文档四个方面来描述安全性级别划分的指 一样,从安全策略、责任、 每个方面又细分为若干项。 标。每个方面又细分为若干项。 4 .试述 TcsEC ( TDI )将系统安全级别划分为 4 组 7 个等级的基本内容。 个等级的基本内容。 根据计算机系统对安全性各项指标的支持情况, 答:根据计算机系统对安全性各项指标的支持情况,TCSEC ( TDI )将系统划分为四组 个等级, 、B 、A (division ) 7 个等级,依次是 D 、C ( CI , CZ ) ( BI , BZ , B3 ) ( AI ) ,按系统可 、 、 靠或可信程度逐渐增高。 靠或可信程度逐渐增高。这些安全级别之间具有一种偏序向下兼容的关系, 这些安全级别之间具有一种偏序向下兼容的关系,即较高安全性级别提供的安全保护包含 较低级别的所有保护要求,同时提供更多或更完善的保护能力。各个等级的基本内容为: 较低级别的所有保护要求,同时提供更多或更完善的保护能力。各个等级的基本内容为: D 级 D 级是最低级别。一切不符合更高标准的系统,统统归于 D 组。 级是最低级别。一切不符合更高标准的系统, Cl 级只提供了非常初级的自主安全保护。能够实现对用户和数据的分离,进行自主存取控 级只提供了非常初级的自主安全保护。能够实现对用户和数据的分离, 保护或限制用户权限的传播。 制(DAC ) ,保护或限制用户权限的传播。 C2 级实际是安全产品的最低档次, 级实际是安全产品的最低档次, 提供受控的存取保护, 进一步细化 细化, 提供受控的存取保护, 即将 Cl 级的 DAC 进一步细化, 以个人身份注册负责,并实施审计和资源隔离。 以个人身份注册负责,并实施审计和资源隔离。 Bl 级标记安全保护。对系统的数据加以标记,并对标记的主体和客体实施强制存取控制 级标记安全保护。对系统的数据加以标记, 以及审计等安全机制。 (MAC )以及审计等安全机制。 B2 级结构化保护。建立形式化的安全策略模型并对系统内的所有主体和客体实施 DAC 和 级结构化保护。 MACo B3 级安全域。该级的 TCB 必须满足访问监控器的要求,审计跟踪能力更强,并提供系统 级安全域。 必须满足访问监控器的要求,审计跟踪能力更强, 恢复过程。 恢复过程。 Al 级验证设计,即提供 B3 级保护的同时给出系统的形式化设计说明和验证以确信各安全 级验证设计, 保护真正实现。 保护真正实现。 5 .试述实现数据库安全性控制的常用方法和技术。 试述实现数据库安全性控制的常用方法和技术。 实现数据库安全性控制的常用方法和技术有: 答:实现数据库安全性控制的常用方法和技术有: ( l )用户标识和鉴别:该方法由系统提供一定的方式让用户标识自己的名字或身份。每次 用户标识和鉴别:该方法由系统提供一定的方式让用户标识自己的名字或身份。 用户要求进入系统时,由系统进行核对,通过鉴定后才提供系统的使用权。 用户要求进入系统时,由系统进行核对,通过鉴定后才提供系统的使用权。 ( 2 )存取控制:通过用户权限定义和合法权检查确保只有合法权限的用户访问数据库,所 存取控制:通过用户权限定义和合法权检查确保只有合法权限的用户访问数据库, 有未被授权的人员无法存取数据。 级中的自主存取控制( 有未被授权的人员无法存取数据。 例如 CZ 级中的自主存取控制 DAC ) , Bl 级中的强制存 取控制( 取控制(MAC ) 。 ( 3 )视图机制:为不同的用户定义视图,通过视图机制把要保密的数据对无权存取的用户 视图机制:为不同的用户定义视图, 隐藏起来,从而自动地对数据提供一定程度的安全保护。 隐藏起来,从而自动地对数据提供一定程度的安全保护。 定程度的安全保护 (4 ) 审计: 建立审计日志, 把用户对数据库的所有操作自动记录下来放入审计日志中, DBA 审计: 建立审计日志, 把用户对数据库的所有操作自动记录下来放入审计日志中, 可以利用审计跟踪的信息,重现导致数据库现有状况的一系列事件, 可以利用审计跟踪的信息,重现导致数据库现有状况的一系列事件,找出非法存取数据的 时间和内容等。 人、时间和内容等。 ( 5 )数据加密:对存储和传输的数据进行加密处理,从而使得不知道解密算法的人无法获 数据加密:对存储和传输的数据进行加密处理, 知数据的内容。 知数据的内容。 6 .什么是数据库中的自主存取控制方法和强制存取控制方法? 什么是数据库中的自主存取控制方法和强制存取控制方法? 答: 自主存取控制方法:定义各个用户对不同数据对象的存取权限。 自主存取控制方法:定义各个用户对不同数据对象的存取权限。当用户对数据库访问时首 先检查用户的存取权限。防止不合法用户对数据库的存取。 先检查用户的存取权限。防止不合法用户对数据库的存取。 制存取控制方法:每一个数据对象被(强制地)标以一定的密级,每一个用户也被( 强制存取控制方法:每一个数据对象被(强制地)标以一定的密级,每一个用户也被(强 制地)授予某一个级别的许可证。 制地)授予某一个级别的许可证。系统规定只有具有某一许可证级别的用户才能存取某一 个密级的数据对象。 个密级的数据对象。 7 .SQL 语言中提供了哪些数据控制(自主存取控制)的语句?请试举几例说明它们的使用 语言中提供了哪些数据控制(自主存取控制)的语句? 方法。 方法。 答: SQL 中的自主存取控制是通过 GRANT 语句和 REVOKE 语句来实现的。如: 语句来实现的。 GRANT SELECT , INSERT ON Student TO 王平 WITH GRANT OPTION ; 权限授予了用户王平,后面的“ 就将 Student 表的 SELECT 和 INSERT 权限授予了用户王平,后面的“WITH GRANT OPTION ”子句表示用户王平同时也获得了“授权”的权限,即可以把得到的权限继续授 子句表示用户王平同时也获得了“授权”的权限, 予其他用户。 予其他用户。 REVOKE INSERT ON Student FROM 王平 CASCADE ; 权限从用户王平处收回, 表示, 就将 Student 表的 INSERT 权限从用户王平处收回,选项 CASCADE 表示,如果用户王 权限又转授给了其他用户, 那么这些权限也将从其他用户处收回。 平将 Student 的 INSERT 权限又转授给了其他用户, 那么这些权限也将从其他用户处收回。8. . 请用 SQL 的 GRANT 和 REVOKE 语句 加上视图机制 完成以下授权定义或存取控制功 语句(加上视图机制 加上视图机制)完成以下授权定义或存取控制功 能: ( a )用户王明对两个表有 SELECT 权力。 权力。 GRANT SELECT ON 职工 部门 职工,部门 TO 王明 ( b )用户李勇对两个表有 INSERT 和 DELETE 权力。 权力。 GRANT INSERT,DELETE ON 职工 部门 职工,部门 TO 李勇 ( c ) 每个职工只对自己的记录有 SELECT 权力。 权力。 GRANT SELECT ON 职工 WHEN USER()=NAME TO ALL; ( d )用户刘星对职工表有 SELECT 权力,对工资字段具有更新权力。 权力,对工资字段具有更新权力。 GRANT SELECT,UPDATE(工资 ON 职工 工资) 工资 TO 刘星 ( e )用户张新具有修改这两个表的结构的权力。 用户张新具有修改这两个表的结构的权力。 GRANT ALTER TABLE ON 职工 部门 职工,部门 TO 张新 张新; ( f )用户周平具有对两个表所有权力(读,插,改,删数据) 并具有给其他用户授权的 用户周平具有对两个表所有权力( 删数据) ,并具有给其他用户授权的 , 权力。 权力。 GRANT ALL PRIVILIGES ON 职工 部门 职工,部门 TO 周平 WITH GRANT OPTION; ( g )用户杨兰具有从每个部门职工中 SELECT 最高工资、最低工资、平均工资的权力, 最高工资、最低工资、平均工资的权力, 他不能查看每个人的工资 人的工资。 他不能查看每个人的工资。 CREATE VIEW 部门工资 AS SELECT 部门 名称 部门.名称 名称,MAX(工资 工资),MIN(工资 工资),AVG(工资 工资) 工资 工资 工资 FROM 职工 部门 职工,部门 WHERE 职工 部门号 部门 部门号 职工.部门号 部门.部门号 部门号=部门 GROUP BY 职工 部门号 职工.部门号 GRANT SELECT ON 部门工资 TO 杨兰 杨兰; 9 .把习题 8 中(1)---(7)的每一种情况,撤销各用户所授予的权力 ) ( )的每一种情况, (1) REVOKE SELECT ON 职工,部门 FROM 王明; 职工, 王明; (2) REVOKE INSERT , DELETE ON 职工,部门 FROM 李勇; 职工, 李勇; (3) REOVKE SELECT ON 职工 WHEN USER ( ) =NAME FROM ALI ; (4) REVOKE SELECT , UPDATE ON 职工 FROM 刘星; 刘星; (5) REVOKE ALTER TABLE ON 职工,部门 职工, FROM 张新; 张新; (6) REVOKE ALL PRIVILIGES ON 职工,部门 职工, FROM 周平; 周平; (7) REVOKE SELECT ON 部门工资 FROM 杨兰; 杨兰; DROP VIEW 部门工资; 部门工资; 10. 为什么强制存取控制提供了更高级别的数据库安全性? 为什么强制存取控制提供了更高级别的数据库安全性 取控制提供了更高级别的数据库安全性? 强制存取控制( 是对数据本身进行密级标记,无论数据如何复制, 答:强制存取控制(MAC )是对数据本身进行密级标记,无论数据如何复制,标记与数据 是一个不可分的整体,只有符合密级标记要求的用户才可以操纵数据, 是一个不可分的整体,只有符合密级标记要求的用户才可以操纵数据,从而提供了更高级 别的安全性。 别的安全性。 11 .理解并解释 MAC 机制中主体、客体、敏感度标记的含义。 机制中主体、客体、敏感度标记的含义。 答: 主体是系统中的活动实体, 所管理的实际用户,也包括代表用户的各进程。 主体是系统中的活动实体,既包括 DBMS 所管理的实际用户,也包括代表用户的各进程。 客体是系统中的被动实体,是受主体操纵的,包括文件、基表、索引、视图等。 客体是系统中的被动实体,是受主体操纵的,包括文件、基表、索引、视图等。对于主体 客体, 为它们每个实例( 指派一个敏感度标记( 和 客体,DBMS 为它们每个实例(值)指派一个敏感度标记(Label ) 。 敏 感 度 标 记 被 分 成 若 干 级 别 , 例 如 绝 密 ( Top Secret ) 机 密 ( Secret ) 可 信 、 ? ( Confidential ) 公开(PubliC )等。主体的敏感度标记称为许可证级别(ClearanCe 玫 、公开 主体的敏感度标记称为许可证级别( 、公开( vel ) ,客体的敏感度标记称为密级(Classification Level ) 客体的敏感度标记称为密级( 。 13 .什么是数据库的审计功能,为什么要提供审计功能? 什么是数据库的审计功能,为什么要提供审计功能? 答: 审计功能是指 DBMS 的审计模块在用户对数据库执行操作的同时把所有操作自动记录 到系统的审计日志中。 到系统的审计日志中。 因为任何系统的安全保护措施都不是完美无缺的,蓄意盗窃破坏数据的人总可能存在。 因为任何系统的安全保护措施都不是完美无缺的,蓄意盗窃破坏数据的人总可能存在。利 用数据库的审计功能, 可以根据审计跟踪的信息, 用数据库的审计功能,DBA 可以根据审计跟踪的信息,重现导致数据库现有状况的一系列 事件,找出非法存取数据的人、时间和内容等。 事件,找出非法存取数据的人、时间和内容等。 14 .统计数据库中存在何种特殊的安全性问题? 统计数据库中存在何种特殊的安全性问题? 统计数据库允许用户查询聚集类型的信息,如合计、平均值、最大值、最小值等, 答:统计数据库允许用户查询聚集类型的信息,如合计、平均值、最大值、最小值等,不 允许查询单个记录信息。但是,人们可以从合法的查询中推导出不合法的信息, 允许查询单个记录信息。但是,人们可以从合法的查询中推导出不合法的信息,即可能存 在隐蔽的信息通道,这是统计数据库要研究和解决的特殊的安全性问题。 在隐蔽的信息通道,这是统计数据库要研究和解决的特殊的安全性问题。第 5 章 数据库完整性 1 什么是数据库的完整性? 什么是数据库的完整性? 答: 数据库的完整性是指数据的正确性和相容性 整性是指数据的正确性和相容性。 数据库的完整性是指数据的正确性和相容性。 2 .数据库的完整性概念与数据库的安全性概念有什么区别和联系? 数据库的完整性概念与数据库的安全性概念有什么区别和联系? 答: 数据的完整性和安全性是两个不同的概念,但是有一定的联系。 数据的完整性和安全性是两个不同的概念,但是有一定的联系。前者是为了防止数据库中 存在不符合语义的数据,防止错误信息的输入和输出,即所谓垃圾进垃圾出( 存在不符合语义的数据,防止错误信息的输入和输出,即所谓垃圾进垃圾出( Garba : e In Garba : e out )所造成的无效操作和错误结果。后者是保护数据库防止恶意的破坏和非法 所造成的无效操作和错误结果。 的存取。也就是说,安全性措施的防范对象是非法用户和非法操作, 的存取。也就是说,安全性措施的防范对象是非法用户和非法操作,完整性措施的防范对 象是不合语义的数据。 象是不合语义的数据。 3 .什么是数据库的完整性约束条件?可分为哪几类? 什么是数据库的完整性约束条件? 分为哪几类? 答 完整性约束条件是指数据库中的数据应该满足的语义约束条件。一般可以分为六类: 完整性约束条件是指数据库中的数据应该满足的语义约束条件。一般可以分为六类:静态 列级约束、静态元组约束、静态关系约束、动态列级约束、动态元组约束、动态关系约束。 列级约束、静态元组约束、静态关系约束、动态列级约束、动态元组约束、动态关系约束。 静态列级约束是对一个列的取值域的说明,包括以下几个方面: 对数据类型的约束, 静态列级约束是对一个列的取值域的说明,包括以下几个方面: ( l )对数据类型的约束, 包括数据的类型、长度、单位、精度等; 对数据格式的约束; 包括数据的类型、长度、单位、精度等; ( 2 )对数据格式的约束; ( 3 )对取值范围或 取值集合的约束; 对空值的约束; 其他约束。 取值集合的约束; ( 4 )对空值的约束; ( 5 )其他约束。静态元组约束就是规定组成一 个元组的各个列之间的约束关系,静态元组约束只局限在单个元组上。静态关系约束是在 个元组的各个列之间的约束关系,静态元组约束只局限在单个元组上。静态关系约束是在 一个关系的各个元组之间或者若干关系之间常常存在各种联系或约束。 一个关系的各个元组之间或者若干关系之间常常存在各种联系或约束。 常见的静态关系约束有: 实体完整性约束; 参照完整性约束; 常见的静态关系约束有: ( l )实体完整性约束; ( 2 )参照完整性约束; ( 3 )函数依 赖约束。 赖约束。 动态列级约束是修改列定义或列值时应满足的约束条件,包括下面两方面: 动态列级约束是修改列定义或列值时应满足的约束条件,包括下面两方面: ( l )修改列定 义时的约束; 修改列值时的约束。 义时的约束; ( 2 )修改列值时的约束。动态元组约束是指修改某个元组的值时需要参照 其旧值,并且新旧值之间需要满足某种约束条件。 其旧值,并且新旧值之间需要满足某种约束条件。动态关系约束是加在关系变化前后状态 上的限制条件,例如事务一致性、原子性等约束条件。 上的限制条件,例如事务一致性、原子性等约束条件。 4 . DBMS 的完整性控制机制应具有哪些功能? 的完整性控制机制应具有哪些功能 应具有哪些功能? 答: DBMS 的完整性控制机制应具有三个方面的功能: ( l )定义功能,即提供定义完整性约 的完整性控制机制应具有三个方面的功能: 定义功能, 束条件的机制; 检查功能,即检查用户发出的操作请求是否违背了完整性约束条件; 束条件的机制; ( 2 )检查功能,即检查用户发出的操作请求是否违背了完整性约束条件; ( 3 )违约反应:如果发现用户的操作请求使数据违背了完整性约束条件,则采取一定的动 违约反应:如果发现用户的操作请求使数据违背了完整性约束条件, 作来保证数据的完整性。 作来保证数据的完整性。 5 . RDBMS 在实现参照完整性时需要考虑哪些方面? 在实现参照完整性时需要考虑哪些方面? 答 RDBMs 在实现参照完整性时需要考虑以下几个方面: ( l ) 在实现参照完整性时需要考虑以下几个方面: 外码是否可以接受空值。 外码是否可以接受空值。 ( 2 ) 除被参照关系的元组时的考虑,这时系统可能采取的作法有三种 系统可能采取的作法有三种: 册 l 除被参照关系的元组时的考虑 , 这时 系统可能采取的作法有三种 : l ) 级联删除 受限删除( 置空值删除( ( CASCADES ) ; 2 )受限删除( RESTRICTED ) ; 3 )置空值删除( NULLIFIES ) 。 ( 3 )在参照关系中插入元组时的问题,这时系统可能采取的作法有: l )受限插入; 2 ) 在参照关系中插入元组时的问题,这时系统可能采取的作法有: 受限插入; 递归插入。 修改关系中主码的问题。 语句修改关系主码的。 递归插入。 ( 4 )修改关系中主码的问题。一般是不能用 UPDATE 语句修改关系主码的。 如果需要修改主码值,只能先删除该元组,然后再把具有新主码值的元组插入到关系中。 如果需要修改主码值,只能先删除该元组,然后再把具有新主码值的元组插入到关系中。 如果允许修改主码,首先要保证主码的惟一性和非空,否则拒绝修改。 如果允许修改主码,首先要保证主码的惟一性和非空,否则拒绝修改。然后要区分是参照 关系还是被参照关系 是被参照关系。 关系还是被参照关系。 6 .假设有下面两个关系模式:职工(职工号,姓名,年龄,职务,工资,部门号) 其中 假设有下面两个关系模式:职工(职工号,姓名,年龄,职务,工资,部门号) ,其中 , 职工号为主码;部门(部门号,名称,经理名,电话) 其中部门号为主码。 ,其中部门号为主码 职工号为主码;部门(部门号,名称,经理名,电话) 其中部门号为主码。用 sQL 语言 , 定义这两个关系模式,要求在模式中完成以下完整性约束条件的定义: 定义这两个关系模式,要求在模式中完成以下完整性约束条件的定义:定义每个模式的主 定义参照完整性; 码;定义参照完整性;定义职工年龄不得超过 60 岁。 答 CREATE TABLE DEPT (Deptno NUMBER(2), Deptname VARCHAR(10), Manager VARCHAR(10), PhoneNumber Char(12) CONSTRAINT PK_SC RIMARY KEY(Deptno)); CREATE TABLE EMP (Empno NUMBER(4), Ename VARCHAR(10), Age NUMBER(2), CONSTRAINT C1 CHECK ( Aage&=60), Job VARCHAR(9), Sal NUMBER(7,2), Deptno NUMBER(2), CONSTRAINT FK_DEPTNO FOREIGN KEY(Deptno) REFFERENCES DEPT(Deptno)); 7 .关系系统中,当操作违反实体完整性、参照完整性和用户定义的完整性约束条件时, 关系系统中,当操作违反实体完整性、参照完整性和用户定义的完整性约束条件时, 一般是如何分别进行处理的? 一般是如何分别进行处理的? 答: 对于违反实体完整性和用户定义的完整性的操作一般都采用拒绝执行的方式进行处理。 对于违反实体完整性和用户定义的完整性的操作一般都采用拒绝执行的方式进行处理。而 对于违反参照完整性的操作,并不都是简单地拒绝执行, 对于违反参照完整性的操作,并不都是简单地拒绝执行,有时要根据应用语义执行一些附 加的操作,以保证数据库的正确性。 加的操作,以保证数据库的正确性。 关系数据库理论 第 6 章 关系数据库理论 1 .理解并给出下列术语的定义: 理解并给出下列术语的定义: 函数依赖、部分函数依赖、完全函数依赖、传递依赖、候选码、主码、外码、全码( 函数依赖、部分函数依赖、完全函数依赖、传递依赖、候选码、主码、外码、全码(All 一 key ) NF 、ZNF 、3NF 、BcNF 、多值依赖、4NF 。 、1 多值依赖、 、 的子集。 定义 1:设 R(U)是属性集 U 上的关系模式。X,Y 是属性集 U 的子集。若对于 R(U)的任意 : 是属性集 上的关系模式。 , 的任意 r 上的属性值相等, 上的属性值不等, 一个可能的关系 r, 中不可能存在两个元组在 X 上的属性值相等, , 而在 Y 上的属性值不等, (即只要 上的属性值相等, 则称 X 函数确定 Y 或 Y 函数依赖于 X,记作 X Y。 即只要 X 上的属性值相等,Y 上的 , 。 ( 值一定相等。 值一定相等。 ) 术语和记号: 术语和记号: X Y,但 Y 不是 X 的子集,则称 X Y 是非平凡的函数依赖。若不特别声明,总是讨论非 的子集, 是非平凡的函数依赖。若不特别声明, , 平凡的函数依赖。 平凡的函数依赖。 X Y,但 Y 是 X 的子集,则称 X Y 是平凡的函数依赖。 的子集, 是平凡的函数依赖。 , 叫做决定因素(Determinant)。 若 X Y,则 X 叫做决定因素 , 。 若 X Y,Y X,则记作 X? Y。 , , ? 。 若 Y 不函数依赖于 X,则记作 X Y。 , 。 定义 2:在 R(U)中,如果 X Y,并且对于 X 的任何一个真子集 X’,都有 X’ Y,则称 Y : 中 , , , 对 X 完全函数依赖 若 X Y,但 Y 不完全函数依赖于 X,则称 Y 对 X 部分函数依赖 , , 的每一个分量是不可再分的数据项, 属于第一范式 定义 3:若关系模式 R 的每一个分量是不可再分的数据项,则关系模式 R 属于第一范式 : (1NF)。 。 且每一个非主属性完全函数依赖于码, 定义 4: : 若关系模式 R∈1NF, ∈ , 且每一个非主属性完全函数依赖于码, 则关系模式 R∈2NF 。 ∈ (即 1NF 消除了非主属性对码的部分函数依赖则成为 2NF) ) 。 定义 5:关系模式 R&U,F& 中若不存在这样的码 X、属性组 Y 及非主属性 Z(Z 不是 Y 的子 关系模式 , 、 成立, 集)使得 X Y,Y X,Y Z 成立,则称 R&U,F&∈3NF。 使得 , , , ∈ 。 的子集时,X 必含有码, 定义 6:关系模式 R&U,F&∈1NF 。若 X Y 且 Y 不是 X 的子集时 必含有码,则 R&U, 关系模式 , ∈ , F&∈BCNF。 ∈ 。 Y(Y 不是 X 的 定义 7:关系模式 R&U,F&∈1NF,如果对于 R 的每个非平凡多值依赖 X 关系模式 , ∈ , 子集, 不为空), 都含有码, 子集,Z=U-X-Y 不为空 ,X 都含有码,则称 R&U,F&∈4NF。 , ∈ 。 2.建立一个关于系、学生、班级、学会等诸信息的关系数据库。 .建立一个关于系、学生、班级、学会等诸信息的关系数据库。 学生:学号、姓名、出生年月、系名、班号、宿舍区。 学生:学号、姓名、出生年月、系名、班号、宿舍区。 班级:班号、专业名、系名、人数、入校年份。 班级:班号、专业名、系名、人数、入校年份。 系名、系号、系办公地点、人数。 系:系名、系号、系办公地点、人数。 学会:学会名、成立年份、办公地点、人数。 学会:学会名、成立年份、办公地点、人数。 语义如下:一个系有若干专业,每个专业每年只招一个班,每个班有若干学生。 语义如下:一个系有若干专业,每个专业每年只招一个班,每个班有若干学生。一个 系的学生住在同一宿舍区。每个学生可参加若干学会,每个学会有若干学生。 系的学生住在同一宿舍区。每个学生可参加若干学会,每个学会有若干学生。学生参加某 学会有一个入会年份。 学会有一个入会年份。 请给出关系模式 写出每个关系模式的极小函数依赖集,指出是否存在传递函数依赖, 模式, 请给出关系模式,写出每个关系模式的极小函数依赖集,指出是否存在传递函数依赖, 对于函数依赖左部是多属性的情况讨论函数依赖是完全函数依赖,还是部分函数依赖。 对于函数依赖左部是多属性的情况讨论函数依赖是完全函数依赖,还是部分函数依赖。指 出各关系模式的候选码、外部码,有没有全码存在? 出各关系模式的候选码、外部码,有没有全码存在 关系模式如下: 解:(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、 Sname, Sbirth, Dept, Class, Rno) 的最小函数依赖集如下 的最小函数依赖集如下:Sno Sname, 、 学生 S (Sno, , , , , , , 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;无外部码;无全码 候选码: 、 ;无外部码; 3 .试由 amstrong 公理系统推导出下面三条推理规则: 公理系统推导出下面三条推理规则: ( l )合并规则:若 X 一 Z , X 一 Y ,则有 X 一 YZ 合并规则: ( 2 )伪传递规则:由 x 一 Y ,明吟 z 有翔一 z 伪传递规则: ( 3 )分解规则:x 一 Y , zcy ,有 x 一 z 分解规则: 证明 ( l )已知 X 一 Z ,由增广律知哟,YZ ,又因为 X 一 Y ,可得狱一 X 卜)YZ ,最后 由增广律知哟, 根据传递律得 x 一 YZ 。 ( 2 )已知 X 一 Y ,据增广律得翔一 Wy ,因为阴几)Z ,所以 X 林协明,Z ,通过传 因为阴几) 林协明, 递律可知翔一 Z 。 ( 3 )已知 zcy ,根据自反律知、吟 z ,又因为 x 一 Y ,所以由传递律可得 x 一 Z 。 根据自反律知、 5 .试举出 3 个多值依赖的实例。 个多值依赖的实例。 答: 表示专业, 表示学生, 表示该专业的必修课。 (1)关系模式 MSC ( M , S , C )中,M 表示专业,S 表示学生,C 表示该专业的必修课。 ) 假设每个专业有多个学生,有一组必修课。设同专业内所有学生选修的必修课相同, 假设每个专业有多个学生,有一组必修课。设同专业内所有学生选修的必修课相同,实例 关系如下。按照语义对于 关系如下。按照语义对于 M 的每一个值 M i , s 有一个完整的集合与之对应而不问 C 取何 的完全对称性, 成立。 值,所以 M 一一 S 。由于 C 与 S 的完全对称性,必然有 M 一一 C 成立。 表示学生兴趣小组, 表示学生, (2)关系模式 ISA ( I , S , A )中,I 表示学生兴趣小组,S 表示学生,A 表示某兴趣小组 ) 的活动项目。假设每个兴趣小组有多个学生,有若干活动项目。 的活动项目。假设每个兴趣小组有多个学生,有若干活动项目。每个学生必须参加所在兴 趣小组的所有活动项目,每个活动项目要求该兴趣小组的所有学生参加。 趣小组的所有活动项目,每个活动项目要求该兴趣小组的所有学生参加。 成立。 按照语义有 I 一一 S , I 一一 A 成立。 表示医院的病房 病房, 表示责任医务人员, (3)关系模式 RDP ( R , D , P )中,R 表示医院的病房,D 表示责任医务人员,P 表示 ) 病人。假设每个病房住有多个病人, 病人。假设每个病房住有多个病人,有多个责任医务人员负责医治和护理该病房的所有病 人。 12.下面的结论哪些是正确的 哪些是错误的 对于错误的请给一个反例说明之。 .下面的结论哪些是正确的? 哪些是错误的? 对于错误的请给一个反例说明之。 ) (1)任何一个二目关系是属于 3NF。 。 正确。因为关系模式中只有两个属性,所以无传递。 答:正确。因为关系模式中只有两个属性,所以无传递。 (2)任何一个二目关系是属于 BCNF. ) 正确。 的定义, 的子集时,每个决定因素都包含码, 答:正确。按 BCNF 的定义,若 X Y,且 Y 不是 X 的子集时,每个决定因素都包含码, 正确 且 对于二目关系决定因素必然包含码。 详细证明如下: (任何二元关系模式必定是 对于二目关系决定因素必然包含码 。 详细证明如下 : 任何二元关系模式必定是 ( BCNF) ) 。 证明: 为一个二目关系 证明:设 R 为一个二目关系 R(A1,A2),则属性 A1 和 A2 之间可能存在以下几种依 , , 赖关系: 赖关系: A、 A1 A2, A2 A1, 决定因素都包含码, 所以, R 、 , 但 , 则关系 R 的码为 A1, , 决定因素都包含码, 所以, 是 BCNF。 。 B、A1 A2,A2 A1,则关系 R 的码为 A2,所以决定因素都包含码,R 是 BCNF。 、 , , ,所以决定因素都包含码, 。 包含码。 ,决定因素都 包含码。R 是 BCNF。C、R 的码为 。 、 的码为(A1,A2)(即 A1 A2,A2 A1) 决定因素都 , ( , ) , (3)任何一个二目关系是属于 4NF. ) 正确。 答:正确。因为只有两个属性,所以无非平凡的多值依赖。 正确 因为只有两个属性,所以无非平凡的多值依赖。 第 7 章 数据库设计 1.试述数据库设计过程。 .试述数据库设计过程。 这里只概要列出数据库设计过程的六个阶段 过程的六个阶段: 需求分析; 概念结构设计; 答:这里只概要列出数据库设计过程的六个阶段: ( l )需求分析; ( 2 )概念结构设计; ( 3 )逻辑结构设计; ( 4 )数据库物理设计; ( 5 )数据库实施; ( 6 )数据库运行和维 逻辑结构设计; 数据库物理设计; 数据库实施; 这是一个完整的实际数据库及其应用系统的设计过程。不仅包括设计数据库本身, 护。这是一个完整的实际数据库及其应用系统的设计过程。不仅包括设计数据库本身,还 包括数据库的实施、运行和维护。 包括数据库的实施、运行和维护。设计一个完善的数据库应用系统往往是上述六个阶段的 不断反复。 不断反复。 2 .试述数据库设计过程各个阶段上的设计描述。 试述数据库设计过程各个阶段上的设计描述。 各阶段的设计要点如下: 需求分析: 答: 各阶段的设计要点如下: ( l ) 需求分析: 准确了解与分析用户需求 包括数据与处理) (包括数据与处理) 。 ( 2 )概念结构设计:通过对用户需求进行综合、归纳与抽象,形成一个独立于具体 DBMS 概念结构设计:通过对用户需求进行综合 归纳与抽象, 需求进行综合、 的概念模型。 逻辑结构设计: 所支持的数据模型, 的概念模型。 ( 3 )逻辑结构设计:将概念结构转换为某个 DBMS 所支持的数据模型, 并对其进行优化。 数据库物理设计: 并对其进行优化。 ( 4 )数据库物理设计:为逻辑数据模型选取一个最适合应用环境的物 理结构(包括存储结构和存取方法) 数据库实施: 理结构(包括存储结构和存取方法) ( 5 )数据库实施:设计人员运用 DBMS 提供的数 。 据语言、工具及宿主语言,根据逻辑设计和物理设计的结果建立数据库, 据语言、工具及宿主语言,根据逻辑设计和物理设计的结果建立数据库,编制与调试应用 程序,组织数据入库,并进行试运行。 数据库运行和维护: 程序,组织数据入库,并进行试运行。 ( 6 )数据库运行和维护:在数据库系统运行过程 中对其进行评价、调整与修改。 中对其进行评价、调整与修改。 3 .试述数据库设计过程中结构设计部分形成的数据库模式。 试述数据库设

我要回帖

更多关于 数据库系统概论答案 的文章

 

随机推荐