MySQL数据库第五章习题与索引解析

版权申诉
0 下载量 33 浏览量 更新于2024-08-06 收藏 15KB DOCX 举报
"mysql数据库武洪萍版第五章习题与答案.docx" 本资料主要涉及MySQL数据库管理系统的知识,包括SQL语言的索引、视图以及相关操作。以下是这些知识点的详细说明: 1. **索引(Index)**: 索引是一种数据库结构,用于快速查找数据库表中的记录。索引不是外模式,它属于数据库的物理结构,可以显著提高查询效率。一个表可以创建多个索引,系统在执行查询时会自动选择最佳的索引来加速数据检索。创建索引的目的是为了提高存取速度,而不是减少I/O或节约空间,因为虽然索引可以加速查询,但它也会占用额外的存储空间。 2. **唯一性索引**: 为了确保某个属性或属性组的值在表中唯一,可以创建唯一性索引。例如,对于关系SC,如果要确保(S#, C#)组合的唯一性,应在此属性组上创建唯一性索引。 3. **视图(View)**: 视图是数据库的外模式,提供了一种虚拟的数据表,其数据来源于一个或多个基本表或视图。视图可以用来简化复杂的查询,提供数据的安全性(如限制用户访问某些列)和逻辑独立性。在视图上可以进行查询操作,但视图通常不允许进行更新,除非更新操作能被转化为对基本表的有效操作。删除视图的SQL命令是`DROP VIEW`。 4. **在视图上操作的限制**: 视图上的更新操作(如UPDATE、INSERT和DELETE)可能会受到限制,具体取决于视图的定义和基本表的约束。例如,如果试图更新一个依赖于聚合函数(如AVG)的视图,这通常是不允许的,因为聚合操作无法确定如何更新基本表以反映视图的变化。 5. **索引的创建与类型**: 创建索引时,可以指定索引的排序方式(升序或降序),以及索引的类型(如一般索引、唯一索引、全文索引等)。例如,`CREATE INDEX Sindex ON STUDENT(Grade)`命令创建了一个基于Grade列的一般索引,但没有指定排序方向,通常默认为升序。 6. **数据库对象的选择**: 索引可以增加查询效率但会占用更多存储空间;视图则简化查询但可能增加数据的存储需求;游标(Cursor)在处理单条记录时有用,而表(Table)是数据的基本存储单元。为了简化查询操作并增加数据存储空间,通常会选择创建视图。 7. **关于视图的错误理解**: 视图并不是关系数据库三级模式中的内模式,而是外模式。视图的数据来源于基本表,对视图的所有操作(如SELECT、JOIN等)最终都需要转换为对基本表的操作。视图可以提供一定程度的逻辑独立性,对机密数据提供安全保护,但它们不是实际存储数据的地方,因此是“虚表”。 8. **触发器(Trigger)**: 虽然在给定的文件内容中没有直接提到触发器,但它是数据库管理系统中的一个重要概念。触发器是一种特殊的存储过程,会在特定的数据库操作(如INSERT、UPDATE、DELETE)发生时自动执行,用于实现复杂的数据完整性规则或业务逻辑。 本资料涵盖了数据库管理和SQL语言的关键概念,包括索引的创建和作用,视图的定义和使用限制,以及数据库对象的选择等,这些都是数据库管理员和开发人员需要掌握的基础知识。