《高级数据库复习要点》是一份针对学习过高级数据库课程的学生设计的学习指南,涵盖了关系模型、SQL查询优化、事务处理及并发控制等核心概念和技巧,旨在帮助学生系统地准备考试并深入理解数据库管理系统的关键原理。
### 高级数据库复习知识点详解
#### 数据库系统原理
1. **数据管理技术的四个发展阶段**:
- **人工管理阶段**:早期计算机没有操作系统支持数据管理,数据与程序紧密耦合,难以共享和重复利用。
- **文件系统阶段**:引入了操作系统中的文件管理系统,数据可以被组织成文件并进行一定的共享。
- **数据库系统阶段**:通过数据库管理系统(DBMS)实现了数据的高度共享、减少冗余和增强数据的一致性。
- **高级数据库系统阶段**:包括分布式数据库、并行数据库、Web数据库等,解决大数据量和复杂应用的需求。
2. **数据库系统的四个特点**:
- **数据结构化**:数据之间存在固定的结构关系。
- **数据共享性高**:允许多个用户同时访问同一数据集。
- **数据独立性**:物理结构和逻辑结构相互独立。
- **数据控制功能**:包括数据的安全性保护、完整性控制、并发控制及故障恢复能力。
3. **数据库语言SQL的内容和作用**:
- SQL(Structured Query Language)是一种用于管理和操作关系型数据库的标准语言。
- 内容:包括数据查询(SELECT)、数据定义(CREATE/DROP/ALTER TABLE)、数据操纵(INSERT/UPDATE/DELETE)和数据控制(GRANT/REVOKE)等语句。
- 作用:通过SQL,用户可以执行各种数据库操作,如查询、插入、更新和删除数据,以及定义新的数据库对象和管理权限。
4. **数据库设计的步骤**:
- 使用E-R图建立概念模型。
- 将E-R图转换成关系模型。
- 对关系模型进行规范化设计,确保数据的一致性和减少冗余。
- 针对特定的查询需求进行反规范化设计,以提高查询效率。
5. **数据库中的两种独立性**:
- **逻辑独立性**:当数据库的模式发生变化时,应用程序不受影响。
- **物理独立性**:当数据库的存储结构发生变化时,模式和应用程序不受影响。
#### 完整性和视图
1. **完整性约束的影响**:实施完整性约束会增加系统开销,因为这涉及到数据字典(DD)和数据库(DB)的检索,尤其是在检索DB时可能涉及内外存数据交换。
2. **DBMS提供的完整性实现方法**:
- 非过程性方法:通过CREATE TABLE语句定义表结构时指定约束条件。
- 过程性方法:使用触发器,在特定事件发生时自动执行预定义的操作。
3. **实体完整性和参照完整性**:
- 实体完整性要求表中的每一行都有一个唯一的标识符(通常是主键),以确保数据行的独特性。
- 参照完整性维护表间关系的一致性,确保外键引用的是另一个表中存在的主键值。
4. **视图的作用**:
- 视图是虚表,不存储实际数据,只存储定义视图的SQL查询语句。
- WITH CHECK OPTION限制通过视图进行数据修改时必须满足视图定义中的条件。
- 主要作用包括简化复杂的查询、提供数据的不同视图、支持数据重构和增强安全性。
#### 安全性和目录
1. **数据库安全性问题**:由于数据库系统的高度共享特性,需要采取措施防止未授权访问或数据泄露。
2. **常见的安全措施**:包括用户身份验证、权限管理、加密技术和审计日志等。
3. **数据字典的内容**:
- 包括所有数据库对象的信息,如表、视图、索引等。
- 格式通常以表格形式存储在数据库内部。
- 可通过特定的查询命令或者DBMS提供的图形界面工具进行查看。
#### 索引
1. **索引设计的目标**:减少磁盘访问次数,加快查询速度。
2. **B+-树索引的优点**:
- 适用于频繁的范围查询。
- 叶节点之间的链接使得范围查找更加高效。
- 能够有效地支持索引扫描。
3. **索引的创建、维护和使用**:
- 创建通常由DBA或开发人员使用CREATE INDEX语句完成。
- 维护由DBMS自动执行,包括更新索引结构以反映数据的变化。
- 使用时查询优化器根据查询条件选择合适的索引进行访问。
#### 查询处理
1. **查询优化的重要性**:由于SQL是非过程性的,同样的查询可能有不同的执行计划,其性能差异可能很大。
2. **查询优化的最终目标**:最小化查询响应时间。
#### 事务的并发
1. **事务的基本特性(ACID)**: