11.并发控制
并发控制 多用户数据库系统 多事务执行方式 事务串行执行 交叉并发方式 单处理机系统 同时并发方式 多处理机系统 并发控制概述 数据不一致性 丢失修改 不可重复读 读"脏"数据 并发控制的主要技术 封锁 时间戳 乐观控制法 多版本并发控制 封锁 基本封锁类型 排它锁(X锁) 写锁 不可读不可改 共享锁(S锁) 读锁 可读不能改 锁的相容矩阵 T1\T2 X S _ X N N Y S N Y Y _ Y Y Y 封锁协议 何时申请X锁或S锁 封锁时间 何时释放 一级封锁协议 事务T在修改之前必须先对其加X锁, 直到事务结束才释放; 事务结束包括正常结束(COMMIT)和非正常结束(POLLBACK) 作用 一级封锁协议可防止丢失修改, 并保证事务T可恢复 在一级封锁协议中, 如果仅仅是读数据不对其进行修改是不需要加锁的,...
10.数据库恢复
事务的基本概念 事务 是用户定义的一个数据库操作序列, 要么全做, 要么全不做, 是一个不可分割的工作单位 是恢复和并发的基本单位 事务与程序 事务的定义 显式定义方式 事务正常终止 123BEGIN TRANSACTION; SQL 语句;COMMIT; # 提交 事务异常终止 123BEGIN TRANSACTION; SQL 语句;ROLLBACK; # 回滚 事务的特性(ACID特性) 原子性 一致性 隔离性 持续性 破坏ACID特性的因素 多个事务并行运行, 不同事物的操作交叉执行 事物在运行过程中被强行停止 数据库恢复概述 故障是不可避免的 故障对数据库的影响的主要表现 数据库恢复的作用 恢复操作的基本原理是冗余 故障的种类 事务内部的故障 非预期 系统故障 软故障 介质故障 硬故障 计算机病毒 恢复的实现技术 数据转储 DBA定期地将整个数据库复制到磁带, 磁盘或其他存储介质上保存起来的过程,...
09.关系查询处理和查询优化
查询处理 查询处理步骤 查询分析 对查询语句进行扫描 词法分析和语法分析 查询检查 合法性检查 视图转换 安全性和完整性初步检查 查询优化 查询优化分类 代数优化/逻辑优化 物理优化 查询优化的选择依据 基于规则 基于代价 基于语义 查询执行 实现查询操作的算法示例 选择操作的典型实现 全表扫描方法 索引扫描方法 连接操作的实现 嵌套循环算法 排序-合并算法 索引连接算法 Hash Join算法 查询优化 查询优化概述 关系系统的查询优化 : 只要提出"干什么", 不必指出"怎么干" 关系数据库管理系统通过某种代价模型计算出各种查询执行策略的执行代价, 然后选取代价最小的执行方案 查询优化的总目标是选择有效的策略, 求得给定关系表达式的值, 使得查询代价最小 一个实例 见ppt ch59 第一种情况 计算广义笛卡尔积 作选择操作 作投影操作 第二种情况 计算自然连接 读取中间文件块,...
07.数据库设计
数据库设计概述 数据库设计的特点 数据库建设的基本规律 三分技术, 七分管理, 十二分基础数据 结构(数据)设计和行为(处理)设计相结合 数据库设计方法 手工试凑法 规范设计法 过程迭代和精益求精 新奥尔良方法 基于E-R模型的数据库设计 3NF的设计方法 面向对象的数据库设计方法 统一建模语言(UML)方法 数据库设计的基本步骤 数据库设计分6个阶段 需求分析, 概念结构设计, 逻辑结构设计, 物理结构设计, 数据库实施, 数据库运行和维护 参加数据库设计的人员 系统分析人员和数据库设计人员 数据库管理员和用户代表 应用开发人员 各阶段的主要任务 各个阶段的数据设计描述 数据库设计过程中的各级模式 需求分析 需求分析的任务 调查的重点是"数据"和"处理", 获得用户对数据库在信息, 处理, 安全性与完整性的要求 需求分析的方法 需求分析的目的: 调查清楚用户的实际需求并进行初步分析, 最终与用户达成共识 常用分析方法 结构化分析方法...
06.关系数据库理论
问题的提出 关系模式的表示 关系模式由五部分组成, 是一个五元组: R(U, D, DOM, F) R: 关系名 U: 一组属性 D: 属性组U中的属性所来自的域 DOM: 属性到域的映射 F: 属性组U上的一组数据依赖 数据依赖 一个关系内部属性之间的一种约束关系 函数依赖 (FD) 多值依赖 (MVD) 函数依赖 x->y 表示为 y函数依赖于x 函数依赖存在的问题 数据冗余 更新异常 插入异常 删除异常 函数依赖的解决方式 把单一的模式分成多个关系模式 分离不合适的函数依赖 规范化 函数依赖 x->y 表示为 x函数确定y 或 y函数依赖于x 非平凡函数依赖 平凡函数依赖 完全函数依赖(F) 部分函数依赖(P) 传递函数依赖 码 (关键字/键) 候选码 主属性 非属性 全码: 属性组的所有属性都是码 超码 主码 外码 范式 符合某一种级别的关系模式的集合 2NF 消除非主属性对码的部分函数依赖 每一个非主属性都完全函数依赖于任何一个候选码 不属于2NF,...
05.数据库完整性
提供定义完整性约束条件的机制 提供完整性检查的方法 违约处理 实体完整性 实体完整性定义 关系模型的实体完整性 设置主码 PRIMARY KEY 实体完整性检查和违约处理 完整性检查的内容 检查主码值是否唯一 检查主码的各个属性是否为空 检查主码值方法 全表扫描 B+数索引 参照完整性 参照完整性定义 设置外码 FOREIGN KEY 参照完整性检查和违约处理 修改参照表 – 违约处理为 拒绝 修改被参照表 – 违约处理为 拒绝/级联删除/设置为空值 设置外码时可在后面显示指定违约处理方式 123FOREIGN KEY (列名) REFERENCES <表名>(列名)ON <操作类型> CASCADE # 级联处理ON <操作类型> NO ACTION # 拒绝 用户定义的完整性 属性上的约束条件 属性上约束条件的定义 列值非空 NOT NULL 列值唯一 UNIQUE 检查列值是否满足一个条件 CHECK 元组上的约束条件 元组上约束条件的定义 表级上使用...
04.数据库安全性
数据库安全性概述 数据库的不安全因素 安全标准简介 TESEC标准 四组七个等级:D、C(C1, C2)、B(B1, B2, B3)、A(A1) CC标准 数据安全性控制 非法使用数据库的情况 编写合法程序绕过数据库管理系统及其授权机制 直接或编写应用程序执行非授权操作 通过多次合法查询数据库从中推导出一些保密数据 计算机系统的安全模型 数据库有关的安全性 存储控制流程 首先, 数据库管理系统对提出SQL访问请求的数据库用户进行身份鉴别, 防止不可信用户使用系统 然后, 在SQL处理层进行自主存取控制和强制存取控制, 进一步可以进行推理控制 还可以对用户访问行为和系统关键操作进行审计, 对异常用户行为进行简单入侵检测 用户身份鉴别 存取控制 用户权限定义和合法权检测机制一起组成了数据库管理系统的存取控制子系统 定义用户权限, 并将用户权限登记到数据字典中 权限是指用户对某一数据对象的操作权力 DBMS提供适当的语言来定义用户权限, 存放在数据字典中 合法权限检查 用户发出存取数据库操作请求 DBMS查找数据字典,...
03.关系数据库标准语言SQL
SQL概述 结构化查询语言 综合统一 高度非过程化 面向集合的操作方式 以同一种语法结构提供多种使用方式 语言简洁, 易学易用 基本概念 支持三级模式 数据定义 模式的定义与删除 定义模式 CREATE SCHEMA <模式名> AUTHORIZATION <用户名> 在CREATE SCHEMA中可以接受CREATE TABLE CREATE VIEW GRANT子句 删除模式 DROP SCHEMA <模式名> <CASCADE|RESTRICT> CASCADE(级联) RESTRICT(限制) 基本表的定义, 删除与修改 定义基本表 123456CREATE TABLE <表名> ( <列名> <数据类型> [<列级完整性约束条件>] [, <列名> <数据类型> [<列级完整性约束条件>]] ... [,...
02.关系数据库
关系数据结构及形式化定义 关系 单一的数据结构 – 关系 现实世界的实体以及实体间的各种联系均用关系来表示 逻辑结构 – 二维表 从用户角度, 关系模型中数据的逻辑结构是一张二维表 关系模型是建立在集合代数的基础上 域 笛卡尔积 元组 分量 基数 关系 关系: R(D1, D2, …, Dn) 元组 单元关系与二元关系 关系的表示: 二维表 属性 码 候选码: 唯一标识一个元组的某一属性组 全码 主码 主属性 非主属性 三类关系 基本关系: 实际存在的表, 是实际存储数据的逻辑表示 查询表: 查询结果对应的表 视图表: 由基本表或其他视图表导出的表, 是虚表, 不对应实际存储的数据 基本关系的性质 关系模式 关系模式是对关系的描述 (关系模式是型, 关系是值) 元组集合的结构 一个关系通常由赋予它的元组语义确定 现实的世界中还存在着完整性约束 关系模式可以形式化地表示为: R(U, D, DOM, F) R: 关系名 U: 组成该关系的属性名集合 D: 属性组U中属性所来自的域 DOM:...