2022年数据库简答题答案.pdf
数据库简答题答案1 、试述数据、数据库、数据库系统、数据库管理系统的概念。数据: 描述事物的符号记录称为数据。数据的种类有文字、图形、图象、声音、正文等等。数据与其语义就是不可分的。数据库 : 数据库就是长期储存在计算机内、有组织的、可共享的数据集合。数据库中的数据按一定的数据模型组织、描述与储存, 具有较小的冗余度、较高的数据独立性与易扩展性 , 并可为各种用户共享。2、 使用数据库系统有什么好处?使用数据库系统的好处就是由数据库管理系统的特点或优点决定的。使用数据库系统的好处很多 , 例如可以大大提高应用开发的效率, 方便用户的使用 , 减轻数据库系统管理人员维护的负担等。为什么有这些好处, 可以结合第 5 题来回答。使用数据库系统可以大大提高应用开发的效率。因为在数据库系统中应用程序不必考虑数据的定义、 存储与数据存取的具体路径, 这些工作都由 DBMS 来完成。用一个通俗的比喻 , 使用了 DBMS 就如有了一个好参谋好助手, 许多具体的技术工作都由这个助手来完成。 开发人员就可以专注于应用逻辑的设计而不必为管理数据的许许多多复杂的细节操心。还有, 当应用逻辑改变 , 数据的逻辑结构需要改变时,由于数据库系统提供了数据与程序之间的独立性。数据逻辑结构的改变就是DBA的责任 , 开发人员不必修改应用程序, 或者只需要修改很少的应用程序。 从而既简化了应用程序的编制 , 又大大减少了应用程序的维护与修改。使用数据库系统可以减轻数据库系统管理人员维护系统的负担。因为DBMS 在数据库建立、运用与维护时对数据库进行统一的管理与控制, 包括数据的完整性、 安全性, 多用户并发控制, 故障恢复等等都由DBMS 执行。总之 , 使用数据库系统的优点就是很多的,既便于数据的集中管理 , 控制数据冗余 , 可以提高数据的利用率与一致性, 又有利于应用程序的开发与维护。3、 试述文件系统与数据库系统的区别与联系。文件系统与数据库系统的区别: 文件系统面向某一应用程序, 共享性差、冗余度大 ,独立性差 , 纪录内有结构、 整体无结构 , 应用程序自己控制。 数据库系统面向现实世界, 共享性高、冗余度小 , 具有高度的物理独立性与一定的逻辑独立性, 整体结构化, 用数据模型描述 , 由数据库管理系统提供数据安全性、完整性、并发控制与恢复能力。读者可以参考概论书中表1、1 中的有关内容。文件系统与数据库系统的联系就是: 文件系统与数据库系统都就是计算机系统中管理数据的软件。 * 解析: 文件系统就是操作系统的重要组成部分, 而 DBMS 就是独立于操作系统的软件。但就是DBMS 就是在操作系统的基础上实现的。数据库中数据的组织与存储就是通过操作系统中文件系统来实现的。读者可以参考书中第十一章 数据库管理系统。或者说 , 读者进一步学习数据库管理系统实现的有关课程( 第十一章只就是 DBMS 实现技术的概述 ) 后可以对本题有深入的理解与全面的解答。因为 DBMS 的实现与操作系统中的文件系统就是紧密相关的。例如, 数据库实现的基础就是文件 , 对数据库的任何操作最终要转化为对文件的操作。所以在 DBMS 实现中数据库物理组织的基本问题就是如何利用或如何选择操作系统提供的基本的文件组织方法。4、 试述数据库系统的特点。数据库系统的主要特点有: 一、数据结构化数据库系统实现整体数据的结构化,这就是数据库的主要特征之一, 也就是数据库系统与文件系统的本质区别。 * 解析: 注意这里“整体”两个字。在数据库系统中, 数据不再针对某一个应用 , 而就是面向全组织 , 具有整体的结构化。 不仅数据就是结构化的 , 而且数据的存取单位精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 1 页,共 24 页 - - - - - - - - - - 数据库简答题答案即一次可以存取数据的大小也很灵活。可以小到某一个数据项(如一个学生的姓名), 大到一组记录 (成千上万个学生记录 ) 。而在文件系统中 , 数据的存取单位只有一个 : 记录。如一个学生的完整记录。二、数据的共享性高 , 冗余度低 , 易扩充数据库的数据不再面向某个应用而就是面向整个系统, 因此可以被多个用户、多个应用、用多种不同的语言共享使用。由于数据面向整个系统, 就是有结构的数据, 不仅可以被多个应用共享使用, 而且容易增加新的应用 , 这就使得数据库系统弹性大 , 易于扩充。 * 解析: 数据共享可以大大减少数据冗余, 节约存储空间 , 同时还能够避免数据之间的不相容性与不一致性。所谓“数据面向某个应用”就是指数据结构就是针对某个应用设计的, 只被这个应用程序或应用系统使用。可以说数据就是某个应用的“私有资源”。 所谓“弹性大”就是指系统容易扩充也容易收缩, 即应用增加或减少时不必修改整个数据库的结构, 或者只要做很少的修改。我们可以取整体数据的各种子集用于不同的应用系统, 当应用需求改变或增加时,只要重新选取不同的子集或加上一部分数据便可以满足新的需求。三、数据独立性高数据独立性包括数据的物理独立性与数据的逻辑独立性。数据库管理系统的模式结构与二级映象功能保证了数据库中的数据具有很高的物理独立性与逻辑独立性。 * 解析: 所谓“独立性”即相互不依赖。数据独立性就是指数据与程序相互不依赖。即数据的逻辑结构或物理结构改变了, 程序不会跟着改变。数据与程序的独立 , 把数据的定义从程序中分离出去, 加上数据的存取又由DBMS 负责,简化了应用程序的编制 , 大大减少了应用程序的维护与修改。四、数据由DBMS统一管理与控制数据库的共享就是并发的共享, 即多个用户可以同时存取数据库中的数据甚至可以同时存取数据库中同一个数据。为此,DBMS 必须提供统一的数据控制功能 , 包括数据的安全性保护, 数据的完整性检查, 并发控制与数据库恢复。 * 解析: DBMS 数据控制功能包括四个方面: 数据的安全性保护 : 保护数据以防止不合法的使用造成的数据的泄密与破坏; 数据的完整性检查 : 将数据控制在有效的范围内或保证数据之间满足一定的关系; 并发控制 : 对多用户的并发操作加以控制与协调 , 保证并发操作的正确性 ; 数据库恢复 : 当计算机系统发生硬件故障、软件故障 , 或者由于操作员的失误以及故意的破坏影响数据库中数据的正确性, 甚至造成数据库部分或全部数据的丢失时, 能将数据库从错误状态恢复到某一已知的正确状态 (亦称为完整状态或一致状态) 。 下面我们可以得到“什么就是数据库”的一个定义: 数据库就是长期存储在计算机内有组织的大量的共享的数据集合。它可以供各种用户共享, 具有最小冗余度与较高的数据独立性。DBMS在数据库建立、运用与维护时对数据库进行统一控制, 以保证数据的完整性、安全性, 并在多用户同时使用数据库时进行并发控制, 在发生故障后对系统进行恢复。 数据库系统的出现使信息系统从以加工数据的程序为中心转向围绕共享的数据库为中心的新阶段。5、 数据库管理系统的主要功能有哪些? 数据库定义功能 ; 数据存取功能 ; 数据库运行管理 ; 数据库的建立与维护功能。6、 试述数据模型的概念、数据模型的作用与数据模型的三个要素。数据模型就是数据库中用来对现实世界进行抽象的工具, 就是数据库中用于提供信息表示与操作手段的形式构架。一般地讲, 数据模型就是严格定义的概念的集合。这些概念精确地描述系统的静态特性、动态特性与完整性约束条件。因此数据模型通常由数据结构、数据操作与完整性约束三部分组成。 数据结构 : 就是所研究的对象类型的集合, 就是对系统的静态特性的描述。 数据操作 : 就是精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 2 页,共 24 页 - - - - - - - - - - 数据库简答题答案指对数据库中各种对象 ( 型) 的实例 ( 值) 允许进行的操作的集合 , 包括操作及有关的操作规则 , 就是对系统动态特性的描述。 数据的约束条件 : 就是完整性规则的集合 , 完整性规则就是给定的数据模型中数据及其联系所具有的制约与依存规则, 用以限定符合数据模型的数据库状态以及状态的变化, 以保证数据的正确、 有效、相容。 * 解析: 数据模型就是数据库系统中最重要的概念之一。同学们必须通过概论的学习真正掌握数据模型的概念与作用。数据模型就是数据库系统的基础。任何一个DBMS都以某一个数据模型为基础, 或者说支持某一个数据模型。数据库系统中模型有不同的层次。根据模型应用的不同目的, 可以将模型分成两类或说两个层次 : 一就是概念模型 , 就是按用户的观点来对数据与信息建模,用于信息世界的建模 , 强调语义表达能力 , 概念简单清晰 ; 另一就是数据模型 , 就是按计算机系统的观点对数据建模, 用于机器世界 , 人们可以用它定义、 操纵数据库中的数据。一般需要有严格的形式化定义与一组严格定义了语法与语义的语言,并有一些规定与限制 , 便于在机器上实现。7、 试述概念模型的作用。概念模型实际上就是现实世界到机器世界的一个中间层次。概念模型用于信息世界的建模 , 就是现实世界到信息世界的第一层抽象, 就是数据库设计人员进行数据库设计的有力工具 , 也就是数据库设计人员与用户之间进行交流的语言。8、 定义并解释概念模型中以下术语: 实体 , 实体型 , 实体集 , 属性 , 码, 实体联系图(E-R 图) 实体: 客观存在并可以相互区分的事物叫实体。实体型 : 具有相同属性的实体具有相同的特征与性质, 用实体名及其属性名集合来抽象与刻画同类实体称为实体型。实体集 : 同型实体的集合称为实体集。属性: 实体所具有的某一特性 , 一个实体可由若干个属性来刻画。码: 唯一标识实体的属性集称为码。实体联系图:E-R图提供了表示实体型、 属性与联系的方法 : ? 实体型 : 用矩形表示 , 矩形框内写明实体名。 ? 属性: 用椭圆形表示 , 并用无向边将其与相应的实体连接起来。 ? 联系: 用菱形表示 , 菱形框内写明联系名, 并用无向边分别与有关实体连接起来, 同时在无向边旁标上联系的类型(1 : 1,1 : n或 m : n) 。9、 试述网状、层次数据库的优缺点。层次模型的优点主要有 : 1) 模型简单 , 对具有一对多的层次关系的部门描述非常自然、直观 , 容易理解 , 这就是层次数据库的突出优点; 2) 用层次模型的应用系统性能好 , 特别就是对于那些实体间联系就是固定的预先定义好的应用, 采用层次模型来实现 , 其性能优于关系模型 ; 3) 次数据模型提供了良好的完整性支持。层次模型的缺点主要有: 1) 现实世界中很多联系就是非层次性的, 如多对多联系、一个结点具有多个双亲等, 层次模型不能自然地表示这类联系。只能通过引入冗余数据或引入虚拟结点来解决。 2 ) 对插入与删除操作的限制比较多。 3)查询子女结点必须通过双亲结点。网状模型 : 网状数据模型的优点主要有: 1) 能够更为直接地描述现实世界, 如一个结点可以有多个双亲。 2) 具有良好的性能 ,存取效率较高。 网状数据模型的缺点主要有: 1) 结构比较复杂 , 而且随着应用环境的扩大 , 数据库的结构就变得越来越复杂, 不利于最终用户掌握。 2) 其DDL,DML语言复杂 , 用户不容易使用。由于记录之间联系就是通过存取路径实现的, 应用程序在访问数据时必须选择适当的存取路径。因此, 用户必须了解系统结构的细节 , 加重了编写应用程序的负担。10、 试述关系模型的概念 , 定义并解释以下术语 : (1)关系 (2) 属性 (3) 域 (4)元组 (5) 主码 (6) 分量 (7) 关系模式精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 3 页,共 24 页 - - - - - - - - - - 数据库简答题答案关系模型由关系数据结构、 关系操作集合与关系完整性约束三部分组成。在用户观点下 , 关系模型中数据的逻辑结构就是一张二维表, 它由行与列组成。 ( ) 关系: 一个关系对应通常说的一张表。( ) 属性: 表中的一列即为一个属性;( ) 域: 属性的取值范围 ;( ) 元组: 表中的一行即为一个元组;( ) 码: 表中的某个属性组 , 它可以唯一确定一个元组;( ) 分量: 元组中的一个属性值;( ) 关系模式: 对关系的描述 , 一般表示为关系名 ( 属性 , 属性 ,?,属性 n) 。11、 试述关系数据库的特点。关系数据模型具有下列优点: ? 关系模型与非关系模型不同, 它就是建立在严格的数学概念的基础上的。 ? 关系模型的概念单一。无论实体还就是实体之间的联系都用关系表示。操作的对象与操作的结果都就是关系。 所以其数据结构简单、清晰, 用户易懂易用。 ? 关系模型的存取路径对用户透明, 从而具有更高的数据独立性、更好的安全保密性, 也简化了程序员的工作与数据库开发建立的工作。当然, 关系数据模型也有缺点 , 其中最主要的缺点就是, 由于存取路径对用户透明,查询效率往往不如非关系数据模型。因此为了提高性能, 必须对用户的查询请求进行优化 , 增加了开发数据库管理系统软件的难度。12、 试述数据库系统三级模式结构, 这种结构的优点就是什么?数据库系统的三级模式结构由外模式、模式与内模式组成。( 参见书上图 1、29)外模式 , 亦称子模式或用户模式, 就是数据库用户 ( 包括应用程序员与最终用户)能够瞧见与使用的局部数据的逻辑结构与特征的描述, 就是数据库用户的数据视图, 就是与某一应用有关的数据的逻辑表示。模式, 亦称逻辑模式 , 就是数据库中全体数据的逻辑结构与特性的描述, 就是所有用户的公共数据视图。模式描述的就是数据的全局逻辑结构。外模式涉及的就是数据的局部的逻辑结构, 通常就是模式的子集。内模式 , 亦称存储模式 , 就是数据在数据库系统内部的表示, 即对数据的物理结构与存储方式的描述。 数据库系统的三级模式就是对数据的三个抽象级别, 它把数据的具体组织留给DBMS 管理, 使用户能逻辑抽象地处理数据, 而不必关心数据在计算机中的表示与存储。为了能够在内部实现这三个抽象层次的联系与转换 , 数据库系统在这三级模式之间提供了两层映象: 外模式模式映象与模式内模式映象。 正就是这两层映象保证了数据库系统中的数据能够具有较高的逻辑独立性与物理独立性。13、 定义并解释以下术语 :DDL、DML 14、 什么叫数据与程序的物理独立性?什么叫数据与程序的逻辑独立性?为什么数据库系统具有数据与程序的独立性?数据与程序的逻辑独立性: 当模式改变时 ( 例如增加新的关系、 新的属性、改变属性的数据类型等 ), 由数据库管理员对各个外模式模式的映象作相应改变, 可以使外模式保持不变。应用程序就是依据数据的外模式编写的, 从而应用程序不必修改, 保证了数据与程序的逻辑独立性, 简称数据的逻辑独立性。数据与程序的物理独立性 : 当数据库的存储结构改变了, 由数据库管理员对模式内模式映象作相应改变 , 可以使模式保持不变 , 从而应用程序也不必改变。 保证了数据与程序的物理独立性 , 简称数据的物理独立性。数据库管理系统在三级模式之间提供的两层映象保证了数据库系统中的数据能够具有较高的逻辑独立性与物理独立性。15、 试述数据库系统的组成。数据库系统一般由数据库、 数据库管理系统 ( 及其开发工具 )、应用系统、 数据库管理员与用户构成。精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 4 页,共 24 页 - - - - - - - - - - 数据库简答题答案16、 DBA的职责就是什么?负责全面地管理与控制数据库系统。具体职责包括: 决定数据库的信息内容与结构 ; 决定数据库的存储结构与存取策略; 定义数据的安全性要求与完整性约束条件 ; 监督与控制数据库的试用与运行; 数据库系统的改进与重组。17、 系统分析员、数据库设计人员、应用程序员的职责就是什么?系统分析员负责应用系统的需求分析与规范说明, 系统分析员要与用户及DBA相结合, 确定系统的硬件软件配置 , 并参与数据库系统的概要设计。 数据库设计人员负责数据库中数据的确定、 数据库各级模式的设计。 数据库设计人员必须参加用户需求调查与系统分析 , 然后进行数据库设计。 在很多情况下 , 数据库设计人员就由数据库管理员担任。应用程序员负责设计与编写应用系统的程序模块, 并进行调试与安装。18、 试述关系模型的三个组成部分。关系模型由关系数据结构、关系操作集合与关系完整性约束三部分组成。19、 试述关系数据语言的特点与分类。关系数据语言可以分为三类: 关系代数语言 , 例如 ISBL 关系演算语言 , 包括: 元组关系演算语言 , 例如 APLHA,QUEL 域关系演算语言 , 例如 QBE 具有关系代数与关系演算双重特点的语言例如 SQL 这些关系数据语言的共同特点就是, 具有完备的表达能力 , 就是非过程化的集合操作语言, 功能强 , 能够嵌入高级语言中使用。20、 定义并理解下列术语, 说明它们之间的联系与区别: (1) 域, 笛卡尔积 , 关系, 元组, 属性(2) 主码, 候选码 , 外部码 (3) 关系模式 , 关系, 关系数据库域 : 域 就 是 一 组 具 有 相 同 数 据 类 型 的 值 的 集 合 。 笛 卡 尔 积 : 给 定 一 组域D1,D2,Dn, 这些域中可以有相同的。这组域的笛卡尔积为: D1 D2 Dn (d1,d2, ,dn) di?Di,i1,2, ,n 其中每一个元素 (d1,d2, ,dn) 叫作一个 n 元组(n-tuple)或简称元组 (Tuple) 。元素中的每一个值di 叫作一个分量(Component)。关系 : 在域 D1,D2,Dn 上笛卡尔积 D1 D2 Dn的子集称为关系 , 表示为 R(D1,D2,Dn) 元组: 关系中的每个元素就是关系中的元组。属性: 关系也就是一个二维表 , 表的每行对应一个元组 , 表的每列对应一个域。由于域可以相同 , 为了加以区分 , 必须对每列起一个名字 , 称为属性 (Attribute)。 候选码: 若关系中的某一属性组的值能唯一地标识一个元组, 则称该属性组为候选码(Candidate key)。主码 : 若一个关系有多个候选码, 则选定其中一个为主码(Primary key)。外部码 : 设 F 就是基本关系 R的一个或一组属性 , 但不就是关系R的码, 如果 F 与基本关系 S的主码 Ks 相对应, 则称 F 就是基本关系 R的外部码(Foreign key),简称外码。基本关系R称为参照关系 (Referencing relation),基 本 关 系 S 称 为 被 参 照 关 系 (Referenced relation)或 目 标 关 系 (Target relation)。关系 R与 S可以就是相同的关系。 关系模式 : 关系的描述称为关系模式(Relation Schema) 。 它可以形式化地表示为 : R(U,D,dom,F) 其中 R为关系名 ,U为组成该关系的属性名集合,D 为属性组 U中属性所来自的域 ,dom 为属性向域的映象集合 ,F 为属性间数据的依赖关系集合。关系: 在域 D1,D2,Dn 上笛卡尔积D1 D2 Dn 的子集称为关系 , 表示为R(D1,D2,Dn) 关系就是关系模式在某一时刻的状态或内容。关系模式就是静态的、稳定的, 而关系就是动态的、随时间不断变化的 , 因为关系操作在不断地更新着数据库中的数据。关系数据库:关系数据库也有型与值之分。关系数据库的型也称为关系数据库模式, 就是对关精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 5 页,共 24 页 - - - - - - - - - - 数据库简答题答案系数据库的描述 , 它包括若干域的定义以及在这些域上定义的若干关系模式。关系数据库的值就是这些关系模式在某一时刻对应的关系的集合, 通常就称为关系数据库。21、 试述关系模型的完整性规则。在参照完整性中, 为什么外部码属性的值也可以为空?什么情况下才可以为空?关系模型的完整性规则就是对关系的某种约束条件。关系模型中可以有三类完整性约束 : 实体完整性、参照完整性与用户定义的完整性。其中实体完整性与参照完整性就是关系模型必须满足的完整性约束条件, 被称作就是关系的两个不变性,应该由关系系统自动支持。 1) 实体完整性规则 : 若属性 A就是基本关系 R的主属性, 则属性 A不能取空值。 2) 参照完整性规则 : 若属性 ( 或属性组 )F 就是基本关系 R的外码 , 它与基本关系 S的主码 Ks 相对应 ( 基本关系 R与 S不一定就是不同的关系 ), 则对于 R中每个元组在 F 上的值必须为: ? 或者取空值 (F 的每个属性值均为空值 ); ? 或者等于 S中某个元组的主码值。 3) 用户定义的完整性就是针对某一具体关系数据库的约束条件。它反映某一具体应用所涉及的数据必须满足的语义要求。在参照完整性中 , 外部码属性的值可以为空 , 它表示该属性的值尚未确定。但前提条件就是该外部码属性不就是其所在关系的主属性。例如,在下面的“学生”表中 , “专业号”就是一个外部码, 不就是学生表的主属性 , 可以为空。其语义就是 , 该学生的专业尚未确定。学生( 学号 , 姓名 , 性别, 专业号 ,年龄) 专业( 专业号 , 专业名 )而在下面的“选修”表中的“课程号”虽然也就是一个外部码属性 , 但它又就是“选修”表的主属性, 所以不能为空。因为关系模型必须满足实体完整性。课程( 课程号 , 课程名 , 学分)选修(学号, 课程号 , 成绩) 22、 等值连接与自然连接的区别就是什么?连接运算中有两种最为重要也最为常用的连接, 一种就是等值连接 (equi-join),另一种就是自然连接 (Natural join)。 为“”的连接运算称为等值连接。它就是从关系 R与 S的笛卡尔积中选取A、B属性值相等的那些元组。即等值连接为: R A=B S = t t | t R t S t A = tB 自然连接 (Natural join)就是一种特殊的等值连接, 它要求两个关系中进行比较的分量必须就是相同的属性组, 并且要在结果中把重复的属性去掉。即若R与 S具有相同的属性组 B,则自然连接可记作 : R S = t t | t R t S t B = tB 23、 代数的基本运算有哪些?如何用这些基本运算来表示其她的关系基本运算?在八种关系代数运算中 , 并、差、笛卡尔积、 投影与选择五种运算为基本的运算。其她三种运算 , 即交、连接与除 , 均可以用五种基本运算来表达。交运算: R ? S = R-(R-S) 连接运算 R S = ?A?B(R?S) A?B 除运算 :R(X,Y)? S(Y,Z) = ?X? - ?X ( ?X? ? ?Y(S) ?R ) X、Y、Z 为属性组 ,R 中的 Y与 S中的 Y可以有不同的属性名, 但必须出自相同的域集。24、 试述 SQL语言的特点。(1) 综合统一。 SQL 语言集数据定义语言DDL 、数据操纵语言DML 、数据控制语言 DCL 的功能于一体。(2) 高度非过程化。用 SQL 语言进行数据操作 , 只要提出“做什么”, 而无须指明“怎么做” , 因此无需了解存取路径, 存取路径的选择以及SQL语句的操作过程由系统自动完成。(3) 面向集合的操作方式。 SQL语言采用集合操作方式 , 不仅操作对象、查找结果可以就是元组的集合, 而且一次插入、删除、更新操作的对象也可以就是元组的集合。(4) 以同一种语法结构提供两种使用方精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 6 页,共 24 页 - - - - - - - - - - 数据库简答题答案式。SQL语言既就是自含式语言 , 又就是嵌入式语言。作为自含式语言, 它能够独立地用于联机交互的使用方式, 也能够嵌入到高级语言程序中, 供程序员设计程序时使用。 (5) 语言简捷 , 易学易用。25、 试述 SQL的定义功能。SQL的数据定义功能包括定义表、定义视图与定义索引。 SQL 语言使用 CREATE TABLE 语句建立基本表 ,ALTER TABLE 语句修改基本表定义 ,DROP TABLE 语句删除基本表 ; 使用 CREATE INDEX 语句建立索引 , DROP INDEX 语句删除索引 ; 使用CREATE VIEW 命令建立视图 ,DROP VIEW 语句删除视图26、 用 SQL语句建立第 2 章习题 5 中的四个表。对于 S表:S( SNO,SNAME,STATUS,CITY); 建 S表 CREATE TABLE S (SNO CHAR(3), SNAME CHAR(10), STATUS CHAR(2), CITY CHAR(10); P(PNO,PNAME,COLOR,WEIGHT); 建 P 表 CREATE TABLE P (PNO CHAR(3), PNAME CHAR(10), COLOR CHAR(4), WEIGHT INT); J(JNO,JNAME,CITY); 建 J 表 CREATE TABLE J (JNO CHAR(3), JNAME CHAR(10), CITY CHAR(10); SPJ(SNO,PNO,JNO,QTY); 建 SPJ 表CREATE TABLE SPJ (SNO CHAR(3), PNO CHAR(3), JNO CHAR(3), QTY INT); 27、 针对上题中建立的四个表试用SQL语言完成第 2 章习题 5 中的查询。(1) 求供应工程J1 零件的供应商号码SNO; SELECT SNO FROM SPJ WHERE JNO= J1;(2) 求供应工程 J1 零件 P1的供应商号码 SNO; SELECT SNO FROM SPJ WHERE JNO=J1 AND PNO= P1;(3) 求供应工程J1 零件为红色的供应商号码 SNO; SELECT SNO /* 这就是嵌套查询 */ FROM SPJ WHERE JNO=J1 AND PNO IN /* 找出红色的零件的零件号码PNO */ (SELECT PNO FROM P /* 从 P表中找 */ WHERE COLOR=红); 或 SELECT SNO FROM SPJ,P /*这就是两表连接查询*/ WHERE JNO=J1 /* 这就是复合条件连接查询*/ AND SPJ 、PNO=P 、PNO AND COLOR=红; (4) 求没有使用天津供应商生产的红色零件的工程号JNO; * 解析: 读者可以对比第 2 章习题 5 中用 ALPHA 语言来完成该查询的解答。如果大家理解了有关该题的解析说明, 那么本题的解答可以瞧成就是把关系演算用SQL来表示的过程。 GET W (J 、 JNO): ?SPJX( SPJX 、 JNO=J 、 JNO ? ?SX ( SX 、 SNO=SPJX 、SNO ? SX 、CITY=天津 ? ?PX(PX 、PNO=SPJX 、PNO ? PX 、COLOR= 红 ) 这里的第一种解法就是使用多重嵌套查询, 第二种方法的子查询就是一个多表连接。 注意: 从 J 表入手 , 以包含那些尚未使用任何零件的工程号。 SELECT JNO FROM J WHERE NOT EXISTS (SELECT * FROM SPJ WHERE SPJ、JNO=J 、JNO AND SNO IN /* 天津供应商的 SNO*/ (SELECT SNO FROM S WHERE CITY= 天津 ) AND PNO IN /* 红色零件的 PNO*/ (SELECT PNO FROM P WHERE COLOR=红); 或 SELECT JNO FROM J WHERE NOT EXISTS (SELECT * FROM SPJ, S, P WHERE SPJ、JNO=J 、JNO AND SPJ 、SNO=S 、SNO AND SPJ 、PNO=P 、PNO AND S 、CITY=天津 AND P、COLOR=红); / 删除: 本例中父查询与子查询均引用了Student 表, 可以像自身连接那样用别名将父查询中的Student 表与子查询中的Student 表区分开 :/ (5) 求至少用了供应商S1所供应的全部零件的工程号JNO (类似于 P113例 44)。*解析: 本查询的解析可以参考第二章第5 题, 用 ALPHA 语言的逻辑蕴函来表达。上述查询可以抽象为 : 要求这样的工程 x, 使 (?y) p ? q 为真。即 : 对于所有的零件 y, 满足逻辑蕴函 p ? q: P表示谓词 : “供应商 S1供应了零件 y” q 表示谓词: “工程 x 选用了零件 y” 即 只要“供应商 S1供应了零件 y”为真 , 则“工程x 选用了零件 y”为真。逻辑蕴函可以转换为等价形式: (?y)p ? q ? (?y (?(p ? 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 7 页,共 24 页 - - - - - - - - - - 数据库简答题答案q ) ? (?y (?(? p q)? ?y(p ?q) 它所表达的语义为 : 不存在这样的零件y, 供应商 S1 供应了 y, 而工程 x 没有选用y。用 SQL语言表示如下 : SELECT DISTINCT JNO FROM SPJ SPJZ WHERE NOT EXISTS /*这就是一个相关子查询 */ (SELECT * /* 父查询与子查询均引用了SPJ表*/ FROM SPJ SPJX /* 用别名将父查询与子查询中的SPJ表区分开 */ WHERE SNO=S1 AND NOT EXISTS (SELECT * FROM SPJ SPJY WHERE SPJY 、PNO=SPJX、PNO AND SPJY 、JNO=SPJZ 、JNO AND SPJY 、SNO= S1); 28、 针对习题 3 中的四个表试用SQL语言完成以下各项操作 : (1) 找出所有供应商的姓名与所在城市。 (2) 找出所有零件的名称、颜色、重量。 (3) 找出使用供应商 S1所供应零件的工程号码。 (4) 找出工程项目 J2 使用的各种零件的名称及其数量。 (5) 找出上海厂商供应的所有零件号码。 (6) 找出使用上海产的零件的工程名称。 (7) 找出没有使用天津产的零件的工程号码。 (8) 把全部红色零件的颜色改成蓝色。 (9) 由 S5供给 J4 的零件 P6改为由 S3供应 ,请作必要的修改。(1) 找出所有供应商的姓名与所在城市。 SELECT SNAME, CITY FROM S; (2) 找出所有零件的名称、颜色、重量。 SELECT PNAME, COLOR, WEIGHT FROM P; (3) 找出使用供应商S1 所供应零件的工程号码。 SELECT JNO FROM SPJ WHERE SNO= S1; (4) 找出工程项目 J2 使用的各种零件的名称及其数量。 SELECT P、PNAME, SPJ 、QTY FROM P, SPJ WHERE P、PNO=SPJ、PNO AND SPJ 、JNO=J2; (5) 找出上海厂商供应的所有零件号码。 SELECT DISTINCT PNO FROM SPJ WHERE SNO IN (SELECT SNO FROM S WHERE CITY=上海); (6) 找出使用上海产的零件的工程名称。 SELECT JNAME FROM J, SPJ, S WHERE J、 JNO=SPJ 、 JNO AND SPJ 、SNO=S 、SNO AND S、CITY=上海; 或 SELECT JNAME FROM J WHERE JNO IN (SELECT JNO FROM SPJ, S WHERE SPJ、 SNO=S 、SNO AND S 、CITY=上海); (7) 找出没有使用天津产的零件的工程号码。 SELECT JNO FROM J WHERE NOT EXISTS (SELECT * FROM SPJ WHERE SPJ、JNO=J 、JNO AND SNO IN (SELECT SNO FROM S WHERE CITY=天津 ); 或 SELECT JNO FROM J WHERE NOT EXISTS (SELECT * FROM SPJ, S WHERE SPJ、JNO=J 、JNO AND SPJ 、SNO=S 、SNO AND S、CITY=天津 ); (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 的记录 , 并从供应情况关系中删除相应的记录。 DELETE FROM SPJ WHERE SNO=S2; DELETE FROM S WHERE SNO=S2; *解析: 注意删除顺序 , 应该先从 SPJ表中删除供应商 S2所供应零件的记录 , 然后从从 S表中删除 S2。 (11) 请将 (S2,J6,P4,200) 插入供应情况关系。 INSERT INTO SPJ(SNO, JNO, PNO, QTY) /*INTO 子句中指明列名 */ VALUES (S2,J6,P4,200); /*插入的属性值与指明列要 对 应 */ 或INSERT INTO SPJ /*INTO子 句 中 没 有 指 明 列 名 */ VALUES (S2,P4,J6,200); /*插入的记录在每个属性列上有值*/ /*并且属性列要与表定义中的次序对应 */ 29、 什么就是基本表?什么就是视图?两者的区别与联系就是什么?基本表就是本身独立存在的表, 在 SQL中一个关系就对应一个表。视图就是从一个或几个基本表导出的表。视图本身不独立存储在数据库中, 就是一个虚表。即数据库中只存放视图的定义而不存放视图对应的数据, 这些数据仍存放在导出视图的基本表中。视图在概念上与基本表等同, 用户可以如同基本表那样使用视图,精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 8 页,共 24 页 - - - - - - - - - - 数据库简答题答案可以在视图上再定义视图。30、 试述视图的优点。(1) 视图能够简化用户的操作。 (2) 视图使用户能以多种角度瞧待同一数据。 (3)视图对重构数据库提供了一定程度的逻辑独立性。 (4) 视图能够对机密数据提供安全保护。31、 所有的视图就是否都可以更新?为什么?不就是。视图就是不实际存储数据的虚表, 因此对视图的更新 , 最终要转换为对基本表的更新。因为有些视图的更新不能唯一地有意义地转换成对相应基本表的更新, 所以, 并不就是所有的视图都就是可更新的。 如 概论3、 5、 1 中的视图 S_G( 学生的学号及她的平均成绩) CREAT VIE