数据库系统概论答案第四版.pdf
第 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和 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=J1Pno=P1(SPJ)3)求供 应工程 J1 零 件为 红色 的供应商号 码 SNO:Sno(Pno=P1(COLOR=红 (P)SPJ))4)求没有使用 天津 供应商 生产的 红色 零件的工程号JNO:Jno(SPJ)-JNO(city=天津 Color=红 (S SPJP)5)求至少 用了供 应商 S1所供 应的 全 部零件的工程号JNO:Jno,Pno(SPJ)Pno(Sno=S1(SPJ)6试述等 值连接 与自然连接 的区 别和联系。答:连接 运算符是“=”的连接 运算称为等 值连接。它是从关系R 与 S 的广义 笛卡尔积 中 选取 A,B 属性值相 等的 那些元组自然连接 是一种特 殊的等 值连接,它要求两个关系中 进行比较的分 量必须是 相同 的属性组,并且 在结果中把重复的 属性列去掉。7关系代数的基本运算有 哪些?如何 用这些基 本运算来表示其他运算?答:并、差、笛卡尔积、投影 和选择 5种运算为基 本的运算。其他 3种运算,即交、连接 和除,均可以用这5 种基 本 运算来表 达。第 3 章 关系数据库 标准 语言 SQL1 试述 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 C(6),COLOR C(2),WEIGHT INT);对于 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;SELECTDIST SNOFROMSPJ WHERE JNO=J1(2)求供 应工程 Jl 零件 Pl 的供 应商号 码 SNO;SELECT DIST SNO FROM SPJ WHERE JNO=J1 AND PNO=P1(3)求供 应工程 Jl 零 件为 红色 的供 应商号 码 SNO;SELECTSNOFROMSPJ,P WHERE JNO=J1ANDSPJ.PNO=P.PNOAND 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供应商 供应的 零件号SELECTDIST PNOFROMSPJ WHERE SNO=S1结果是(P1,P2)B、查询哪一个工程 既使用 P1零件又使用 P2零件。SELECTJNO FROMSPJ WHERE PNO=P1ANDJNO IN(SELECT JNO FROMSPJ 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,JWHERE 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=S2B、DELETE FROM SPJ WHERE SNO=S2(11)请将(S2,J6,P4,200)插入供应 情况 关系。INSERT INTO SPJ VALUES(S2,J6,P4,200)6 什么是基 本表?什么是 视图?答两者的区 别和联 系是什么?基本 表是 本身独立存在的表,在 sQL 中一个关系就对应一个表。视图是从一个或几个基 本表导出的表。视图本身 不独立存储在数据库中,是一个虚表。即数据库中 只存放视 图的定义 而不存 放视 图对应的数据,这些数据仍存放在导 出视图的基 本表中。视图在概念上与基本 表等 同,用户可以如 同基本表那样 使用 视图,可以在 视图上 再 定义视 图。7 试述 视图的优点。答(l)视图能够简 化用户的操作;(2)视图使用户能以多种角度看待 同一数据;(3)视图对重构数据库提供了 一定程度的 逻辑 独立性;(4)视图能够对机 密数据提 供安全保 护。8 所有的 视图是 否都可以 更新?为什么?答:不是。视 图是不实 际存储数据的 虚表,因 此对视图的 更 新,最终要转换为对基 本表的 更 新。因为有些 视图的 更 新不能 惟一有 意 义地 转换成对 相应基 本表的 更新,所以,并不是 所有的视图都是可 更新的.9 哪类 视图是可以 更新 的?哪类视图是不可 更新的?各 举一例 说明。答:基 本表的行 列 子集视图一般是可 更新的。若视图的 属性来 自集函数、表达式,则该视 图肯定是不可以 更新 的。10 试述 某个你熟悉 的实 际系统中对 视图更新 的规定。答VFP11请为三建工程 项 目建立一个 供应 情况 的视图,包括 供应商代 码(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 可信计算机系统 评估 标 准(伽 sted Co 哪 uter system Evaluation criteria,简称TcsEc,又 称 桔皮 书)。(TDI/TCSEC 标准是将 TcsEc 扩展 到数据库管理系统,即 可信计算机系统 评估 标准关于可 信数据库系统的解释 (Tmsted Database Interpretation 简称 TDI,又称紫皮 书)。在 TDI 中定义 了 数据库管理系统的设 计与实现中需满足 和用以 进 行 安全 性 级别 评估 的 标 准。TDI 与 TcsEc 一样,从 安全 策略、责任、保证 和文 档 四个方 面来描述 安全 性级别 划 分的指 标。每个方 面又细 分为 若干项。4 试述 TcsEC(TDI)将系统 安全级别 划 分为 4 组 7 个等 级的基 本内容。答:根 据计算机系统对安全 性各 项指标 的支持 情况,TCSEC(TDI)将系统 划 分为 四 组(division)7 个等 级,依次是 D、C(CI,CZ)、B(BI,BZ,B3)、A(AI),按系统可 靠或可 信程度 逐渐 增 高。这些 安全级别 之间具有一种偏序向 下兼容的关系,即较高 安全 性级别 提供的 安全保 护包 含较低级别 的所有保 护要 求,同时 提 供更多或 更完 善的保护能 力。各个等 级的基 本内容为:D 级 D 级是最低级别。一 切不符合 更高标准的系统,统统归于 D 组。Cl 级只 提供了非 常初级的自主 安全保 护。能够实现对用户和数据的分离,进 行自主存取 控制(DAC),保护或限制用户权限的传播。C2 级实际 是安全 产品的 最低 档次,提 供受控的存取 保护,即将 Cl 级的 DAC 进一步细化,以个人身份注册负责,并实施审计和资源隔离。Bl 级标 记安全保 护。对系统的数据加以标记,并对 标记的主体和客 体实 施强 制存取 控制(MAC)以及审计等安全机制。B2 级结 构化保 护。建立形 式化 的安全 策略 模型并对系统内的所有主体和 客体实 施 DAC 和MACoB3 级安全 域。该级 的 TCB 必须满足 访问监 控器 的要 求,审 计跟踪 能力更强,并提 供系统 恢复过程。Al 级验证设 计,即提供 B3 级保 护的 同时给出 系统的形 式化设 计说明 和验证 以确信 各安全保护 真正实现。5 试述实现数据库安全 性控制的常用方 法和技术。答:实现数据库安全性控制的常用方法和技术有:(l)用户 标识 和 鉴别:该方法由系统提 供一定的方 式让用户 标识自己 的名字或 身份。每次用 户 要 求 进 入 系 统 时,由 系 统 进 行 核 对,通 过 鉴 定 后 才 提 供 系 统 的 使 用 权。(2)存取 控制:通过 用户 权 限定义和合 法权 检查确保只 有合 法权限的用户 访问 数据库,所有未被授 权的人员 无法 存取数据。例如CZ 级中的 自主存取 控制(DAC),Bl 级中的 强制存取控制(MAC)。(3)视图机制:为不同的用户定义 视图,通过 视图机制把要 保密 的数据对 无权存取的用户隐藏 起来,从 而自动 地对数据提 供 一定程度的 安全保 护。(4)审 计:建立 审计日 志,把用户对数据库的所 有操作 自动 记录下来 放 入审 计日 志 中,DBA 可以 利用审计跟踪 的信息,重现 导致数据库现有 状况的一系 列事件,找出非法 存取数据的人、时间和内容等。(5)数据加 密:对存储和传输的数据 进行加 密处理,从 而 使得不知道解密 算法的人 无法 获知数据的内 容。6 什么是数据库中