### 数据库复习提纲
#### 第一章 数据库系统概论
- **教材与学习资料**:本章节的学习主要依据王珊、萨师煊主编的《数据库系统概论》教材,重点阅读第3页至第38页的内容。
- **数据库**:
- 定义:数据库是长期存储在计算机内、有组织的、统一管理的相关数据集合。(P4)
- 功能:支持数据的获取、存储、管理和检索等操作。
- **数据库管理系统(DBMS)的功能**:
- 数据定义:如创建表、索引等。
- 数据操纵:如查询、插入、删除、修改等。
- 数据保护:确保数据的安全性和完整性。
- 数据维护:包括备份、恢复等操作。
- **数据库系统(DBS)**:
- 定义:由硬件、软件、数据库及人员组成的整个运行系统。(P5)
- 发展历程:从人工管理到文件系统再到数据库系统。(P6)
- 特点:数据共享性强、冗余度低、数据独立性高、易扩展等。(P9)
- **文件系统与数据库系统的本质区别**:
- 文件系统:面向某一应用程序;数据共享性差,冗余度大;数据独立性差。
- 数据库系统:面向多个应用;数据共享性强,冗余度低;数据独立性高。(P10)
- **数据独立性**:
- 物理独立性:当数据库的物理存储结构发生变化时,保持逻辑结构不变。
- 逻辑独立性:当数据库的逻辑结构发生变化时,不影响应用程序。(P11,P35)
- **数据模型**:
- 概念:描述数据及其联系的方法。(P13)
- 三要素:数据结构、数据操作、完整性约束条件。(P14)
- 常见的数据模型:层次模型、网状模型、关系模型。(P21)
- **概念模型**:用于信息世界的建模,与具体的DBMS无关。(P15)
- **层次模型**:
- 定义:树形结构表示实体之间的联系。
- 特点:单根结点,每个结点最多有一个父结点。
- **网状模型**:
- 定义:有向图结构表示实体之间的联系。
- 特点:允许一个以上的结点无双亲,也允许一个结点有多个双亲。
- **关系模型**:
- 优点:结构简单、易于理解和实现。(P32)
- **数据库系统的三级模式**:
- 外模式:用户视图。
- 模式:全局逻辑视图。
- 内模式:物理视图。(P33)
- **两级映射**:
- 模式/内模式映射:保证数据物理独立性。
- 外模式/模式映射:保证数据逻辑独立性。(P33-34)
- **数据库系统的组成**:
- 用户
- 数据库
- 数据库管理系统
- 应用程序
- 数据库管理员(DBA)
- 系统分析员
- **系统软件**:
- DBMS:提供数据定义、数据操纵、数据控制等功能。
- 工具软件:辅助数据库设计和管理的工具。
- **数据库管理员(DBA)的主要职责**:
- 数据库的规划与设计。
- 数据库的实施。
- 数据库的运行与维护。
- 数据库的安全性与完整性控制。
- **系统分析员的主要职责**:
- 负责应用系统的需求分析和规范说明。
- 设计数据模型。
- 协调用户与技术人员之间的工作。
#### 第二章 关系模型
- **关系模型**:基于关系数学理论,使用二维表格结构来表示实体以及实体间的关系。
- **关系完整性**:
- 实体完整性:主键不能为空。
- 参照完整性:外键必须指向另一个表的主键或为NULL。
- **关系运算**:
- 选择:从关系中挑选满足某些条件的元组。
- 投影:从关系中选取指定的属性列。
- 连接:从两个关系的笛卡尔积中选取满足连接条件的元组。
- **关系代数**:一种过程查询语言,用于执行各种关系运算。
- **关系系统**:
- 分类:完全关系系统、部分关系系统。(P152)
- **SQL**:
- 特点:非过程化语言、统一的数据访问方式、支持多种数据模型。(P85)
- 主要功能:
- 数据定义:创建、删除表等。
- 查询:SELECT语句。
- 数据更新:INSERT、UPDATE、DELETE语句。
- 数据控制:GRANT、REVOKE语句。
- **视图**:
- 定义:虚拟表,其内容由查询定义。
- 优点:简化用户的数据查询;增加数据安全性;逻辑数据独立性。(P128)
#### 第三章 SQL
- **SQL的特点**:非过程化、统一的数据访问方式、支持多种数据模型。(P85)
- **SQL语言的主要功能**:
- 数据定义:如CREATE TABLE。
- 数据操纵:如SELECT、INSERT、UPDATE、DELETE。
- 数据控制:如GRANT、REVOKE。
- 数据查询:如SELECT语句。
- **SQL定义功能**:
- 表:创建、修改、删除表。
- 视图:创建、删除视图。
- 存储过程:定义存储过程。(P87)
- **SQL语言的控制语句**:
- GRANT:授予用户特定权限。
- REVOKE:收回已授予的权限。(P129)
#### 第四章 查询优化
- **目的**:提高查询效率,减少资源消耗。
- **查询优化的目标**:最小化查询成本(时间、空间)。
- **查询优化步骤**:
- 物理查询计划生成。
- 成本估算。
- 最优查询计划选择。(P158,P165)
- **查询优化的一般准则**:
- 尽量避免全表扫描。
- 合理使用索引。
- 优化连接操作等。(P161)
#### 第五章 关系数据库理论
- **函数依赖**:描述了关系模式中属性间的依赖关系。(P172)
- **范式**:通过消除非主属性对码的部分函数依赖和传递函数依赖来规范关系模式。(P174)
- **主码、外码、键**:
- 主码:唯一标识一个元组的属性集。
- 外码:一个表中的属性或属性组,在另一个表中作为主码出现。
- 键:候选码中任意一个都可以作为主键使用。
- **INF、2NF、3NF、BCNF**:
- INF(第一范式):消除重复组。
- 2NF(第二范式):消除非主属性对候选键的部分函数依赖。
- 3NF(第三范式):消除非主属性对候选键的传递函数依赖。
- BCNF(波克斯特范式):确保每个决定因素都是候选键。
- **多值依赖**:描述了关系中一个属性值的存在可能意味着另一个属性具有多个值的情况。(P178)
- **Armstrong公理**:一组用于推理函数依赖的规则。(P183)
- **最小依赖集**:包含所有必要函数依赖但没有冗余的集合。(P186)
- **部分依赖、传递依赖**:部分依赖指一个属性依赖于非候选键的一部分;传递依赖指一个属性间接依赖于候选键。
#### 第六章 数据库设计
- **数据库设计一般步骤**:
- 需求分析:明确用户需求。
- 概念设计:使用E-R图表示实体及其联系。
- 逻辑设计:将E-R图转换为关系模式。
- 物理设计:确定数据库的物理结构。
- **需求分析步骤**:
- 收集信息。
- 分析数据。
- 编制文档。
- **概念设计步骤**:
- 确定实体及其属性。
- 确定实体间的联系。
- 使用E-R图表示概念模型。
- **逻辑设计步骤**:
- 将E-R图转换为关系模式。
- 规范化关系模式。
- **ER向关系模式转换的规则**:
- 实体转换为表。
- 属性转换为表中的列。
- 实体间的联系转换为表间的关联。
- **物理设计主要内容**:
- 存储结构。
- 访问方法。
- 缓冲区管理。
#### 第七章 恢复技术
- **事务**:
- 定义:一系列按顺序执行的操作集合。
- 特性:原子性、一致性、隔离性、持久性(ACID)。(P248)
- **故障的种类**:
- 事务内部的故障。
- 系统故障。
- 介质故障。(P249)
- **数据转储**:
- 静态转储:在系统停止的情况下进行转储。
- 动态转储:在系统正常运行的情况下进行转储。(P252)
- **日志文件**:
- 内容:记录所有事务对数据库的修改。
- 作用:用于故障恢复。(P254)
- **日志先写原则**:任何修改在写入数据库之前必须先写入日志文件。
- **恢复策略**:
- 事务故障恢复:撤销未完成的事务。
- 系统故障恢复:重做已完成的事务。
- 介质故障恢复:结合使用转储和日志文件进行恢复。(P255-256)
#### 第八章 并发控制
- **并发操作带来的问题**:
- 丢失更新。
- 不可重复读。
- 读脏数据。(P265,P268)
- **并发控制**:
- 目标:确保多个事务并发执行时数据的一致性。
- 方法:使用锁机制、时间戳等。
- **封锁**:
- 类型:排他锁(X锁)、共享锁(S锁)。(P266-267)
- **三级封锁协议**:
- 一级封锁协议:事务开始前加锁,结束时解锁。
- 二级封锁协议:一级的基础上加上读锁。
- 三级封锁协议:一级的基础上加上读锁,并且读完后解锁。(P268-269)
- **活锁和死锁**:
- 活锁:事务等待时间过长而无法获得锁。
- 死锁:两个或多个事务互相等待对方释放资源。(P270)
- **解决死锁的方法**:
- 采用预防措施:如设置最大锁持有时间。
- 采用检测和恢复方法:如定时检测并解除死锁。(P271)
- **并发调度的可串行性**:确保并发调度的结果与某个串行调度的结果相同。(P272)
#### 第九章 数据库安全
- **数据库安全**:
- 定义:防止非法使用数据库造成的数据泄露、更改或破坏。(P283)
- **安全控制的一般方法**:
- 用户标识与鉴别。
- 存取控制。
- 审计。
- 数据加密等。(P288)
- **存取权限**:
- SELECT、INSERT、UPDATE、DELETE、ALTER等操作的权限。(P290)
- **授权语句**:
- GRANT:授予权限。
- REVOKE:收回权限。(P290)
#### 第十章 数据库完整性
- **数据库完整性**:
- 定义:确保数据正确性和一致性的一系列规则和机制。
- 与安全性的区别:安全性关注数据的访问权限,而完整性关注数据的正确性。(P303)
- **完整性约束的三个级别**:
- 列级:针对表中的每一列。
- 元组级:针对每一行数据。
- 关系级:针对整个表。(P303-304)
- **完整性约束规则定义**:
- 实体完整性:确保主键唯一。
- 参照完整性:确保外键的有效性。
- 用户自定义完整性:根据业务规则定制的完整性约束。(P306)
- **触发器**:
- 动态约束机制:在数据改变时自动执行。
- 静态约束机制:在数据改变前检查约束。
- **DOACP**:
- Data:数据。
- Operation:操作。
- Access:访问。
- Control:控制。
- Protection:保护。
- **SQL求解**:
- 给出提问,写出SQL语句或给出SQL语句,写出语句含义。
- 掌握关系代数操作。
- **案例设计**:
- 给定关系模式。
- 确定主码、外码、全码。
- 描述数据依赖、部分依赖、传递依赖等。
- 掌握ER图、规范化、设计等内容。
评论0
最新资源