1. DDB与C/S模式
    1. C/S计算模式
      1. 服务器,客户机,中间件
    2. C/S模式定位
      1. 集中式C/S处理环境
      2. 多服务器C/S处理环境
      3. 对等C/S处理环境
    3. C/S模式的优缺点
      1. 提高投资效率
      2. 使处理和被处理的数据更加接近,减少网络带宽和成本需求
      3. 具有图形界面,更友好
      4. 支持和倡导标准化和开放系统
      5. 多个用户共享硬件资源
      6. 在集中式C/S环境,如果应用逻辑主要在服务器上,则服务器将成为瓶颈
      7. 多服务器应用系统的开发和设计复杂
      8. 优点
      9. 缺点
    4. 分布式数据与分布式访问
      1. 数据分布的基本形式
        1. 复制数据
        2. 子集数据
        3. 重新组织的数据
        4. 分区数据
        5. 独立模式数据
        6. 不相容数据
      2. 数据分布的技术
        1. 人工抽取
        2. 快照
        3. 复制
        4. 分片
      3. 分布式数据访问
        1. 远程请求
        2. 远程事务
        3. 分布式事务
        4. 分布式请求
  2. 安全性与目录管理
    1. 安全性
      1. 保密性
      2. 安全性
    2. 目录结构和管理
      1. 网络目录
      2. 全局外模式目录
      3. 全局概念模式目录
      4. 局部外模式目录与局部概念模式目录
      5. 内模式目录
      6. 目录管理
        1. 目录定义
        2. 目录装入
        3. 目录查询、更新
        4. 目录维护
        5. 报告生成
      7. 结构
    3. 权限保护与用户识别
      1. 权限规则分布
        1. 权限规则全局复制
        2. 权限规则分配在对象所属的站点上
      2. 用户识别
        1. 全复制口令
        2. “家乡”站点
        3. “穿越”
  3. 可靠性
    1. 可靠性与可用性的概念
      1. 可靠性
        1. 数据库在一给定时间间隔内不产生任何失败的概率
        2. 强调正确性,要求数据库正确运行
        3. 通常用来描述不可修复的系统
      2. 可用性
        1. 强调的是当访问数据库时,其可用
        2. 在给定的时间点系统可以正常运行的概率
        3. 描述那些可以修复的系统
      3. 关系
        1. 统一,可靠性高的可用性自然好
        2. 矛盾
    2. 分布式可靠性协议的组成
      1. 提交协议
      2. 终结协议
      3. 恢复协议
    3. 事务阻断与阻断协议
      1. 事务阻断
        1. 处于阻断状态的事务不会释放占有的资源
      2. 两阶段提交协议是阻断协议
      3. 事务阻断降低了系统的可用性
      4. 终结协议
    4. 两阶段提交协议
      1. 允许参与者单方面撤销事务,指导做出肯定性的建议
      2. 参与者一旦做出提交或者撤销建议,就不能更改
      3. 超时协议在协调者和参与者超时时发挥作用
      4. 超时发生在目的站点在期望的时间内没有收到发送站点发送的消息
      5. 超时时默认发送站点失效
      6. 超时的处理依赖于失效时间和失效类型
      7. 是有阻断的协议
    5. 三阶段提交协议
    6. 不一致性的检测与解决方法
      1. 发生网络分割故障时的策略
        1. 保证一致性,事务最多在一个站点组中运行
        2. 提高可用性,可以有多个组执行事务,允许至少有一个数据副本运行事务
      2. 不一致检测方法
        1. 比较所有副本
        2. 版本号比较法
      3. 不一致解决方法
        1. 把事务按某个可串行化执行所产生的结果赋给所有副本
  4. 并发控制
    1. 并发执行存在的问题
      1. 丢失更新
      2. 不一致分析
      3. 依赖于未提交更新
    2. 事务可串行化理论
      1. 调度、冲突操作
        1. 调度
          1. 指事务的一个操作序列
          2. 事务操作分为R,W
          3. 一组事务的调度必须包含这些事务的所有操作
          4. 调度中某个事务的操作顺序必须保持与该事务原有的顺序相同
        2. 冲突
          1. 读-写冲突
          2. 写-写冲突
      2. 串行调度、可串行化调度、一致调度、冲突等价
        1. 串行调度
          1. 一个事务的第一个动作是在另一个事务的最后一个动作完成后开始
          2. 串行调度总是可以正确执行,效率低
          3. 属于一致性调度
        2. 一致性调度
        3. 冲突等价
        4. 可串行化调度
          1. 可通过一系列非冲突操作的交换,调整为串行调度
      3. 可串行化调度的测试(优先图)
        1. 当且仅当优先图中没有环路时,调度才是可串行化的
    3. 并发控制的封锁技术
      1. 锁的类型、大小
        1. 粒度选择
          1. 数据库记录中的一个字段值
          2. 一条数据库记录
          3. 一个磁盘块
          4. 一个完整的文件
          5. 整个数据库
        2. 锁的类型
          1. 共享锁
          2. 排它锁
          3. 更新锁
      2. 封锁准则
      3. 两阶段封锁协议
        1. 任何事务在对数据操作前必须先获得锁
        2. 一个事务所有的封锁操作都在第一个解锁操作之前
        3. 第一阶段:获得锁阶段,扩张阶段
        4. 第二阶段:释放锁阶段,收缩阶段
        5. 基本的2PL
          1. 可能产生死锁
        6. 保守的2PL
          1. 不会产生死锁
        7. 严格的2PL
          1. 可避免脏数据,不能避免死锁
        8. 严酷的2PL
          1. 不能避免死锁
        9. 涉及问题
          1. 锁的类型
          2. 什么时候请求锁
          3. 持锁的时间
          4. 什么时候释放锁
      4. 死锁的处理
        1. 全局死锁
        2. 全局等待图
      5. 死锁的预防方法
        1. 事务排序(按时标排序)
        2. 预防协议
          1. 等待-死亡协议(非占先权法)
          2. 伤害-等待协议(占先权法)
  5. 事务管理与恢复
    1. 分布式事务的概念、特性、结构
      1. 概念
        1. 事务是访问更新各种数据项的最小逻辑工作单位
        2. 一个操作序列
        3. 可以使数据库从一个一致状态到另外一个一致状态
        4. 事务必须保证数据库的一致性
        5. 事务执行期间数据库可能不一致
        6. 当事务提交时数据库必须是一致的
        7. 分布式事务是集中式事务的扩充
        8. 分布式事务是分布式操作序列,分布在不同站点上,要么全做要么不做,不可分割
        9. 由主事务和多个子事务组成
        10. 全局事务涉及多个站点
        11. 局部事务仅涉及一个站点
      2. 特性
        1. 原子性
        2. 一致性
        3. 隔离性
        4. 持久性
        5. 独特性
          1. 全局事务的主事务和子事务全部成功提交,才改变数据库状态
      3. 结构
        1. begin transaction
        2. TI[]
        3. T2[]
        4. :::
        5. Tn[]
        6. commint
        7. rollback or abort
        8. 子事务或操作序列
        9. 成功/失败
    2. 分布式事务管理的问题、目标和任务
      1. 问题
        1. 多个副本之间的一致性
        2. 站点故障
        3. 通信网络故障
        4. 分布式提交
      2. 目标
        1. 维护分布式事务的ASID
        2. 获得最小的主存和CPU开销,降低控制报文的传输个数和加快分布式事务的响应速度
        3. 获得最大限度的系统可靠性和可用性
      3. 任务
    3. 如何保证分布式事务提交的原子性
      1. 两阶段提交协议
        1. 基本思想
        2. 提交过程
          1. 第一阶段:表决阶段
          2. 第二阶段:执行阶段
        3. 两类代理
          1. 协调者:掌握提交和撤销事务的决定权,总代理
          2. 参与者:负责在本地数据库中执行写操作,向协调者提出提交和撤销子事务意向
        4. 特点
          1. 允许参与者单方面撤销事务
          2. 确定提交或撤销,不能再更改
          3. 参与者就绪根据消息可以转换为提交状态或撤销状态
          4. 协调者根据全局提交规则作出全局终止决定
          5. 协调者和参与者可能进入互相等待对方消息的状态
        5. 通信结构
          1. 集中式
          2. 分层式
          3. 线性
          4. 分布式
      2. 2PC与故障恢复
        1. 故障恢复三个层次
          1. 仅处理站点故障
          2. 仅处理站点和报文丢失两种故障
          3. 同时处理站点故障、报文丢失和网络分割三种故障
    4. 多站点数据的更新问题
      1. 同时更新是不现实的
      2. 站点故障如何更新
      3. 主文本更新法
        1. 指定一个文本为主文本,其他为辅文本
        2. 数据的更新面向主文本
        3. 主文本站点负责数据的更新
        4. 更新传播必须在短时间内完成,否则可能产生过时数据
        5. 主文本站点不可用,其他辅文本站点也不可用
        6. 移动主文本法
        7. 问题
  6. 查询优化
    1. 为什么要优化
    2. 优化的目标和优化的准则
      1. 总代价最小
      2. 响应时间最短
      3. 目标/准则
    3. 查询优化的层次、策略和原则
      1. 局部查询
        1. 选择运算尽可能先做
        2. 把投影运算和选择运算同时进行
        3. 把投影同其前或后的双目运算结合起来
        4. 选择运算和前面执行的笛卡尔积结合起来成为一个连接运算
        5. 在执行连接前对关系适当的预处理
        6. 找出公共子表达式
      2. 远程查询
        1. 只涉及单个站点上的数据,优化策略与局部查询相同
        2. 在有多个站点的情况下,就近处理
      3. 全局查询
        1. 具体化
          1. 对查询进行分解,确定查询使用的物理副本,落实查询对象
          2. 对于多个副本,需研究如何选择副本,是通信代价最小
        2. 确定操作执行的顺序
          1. 确定二元操作中连接和并操作的顺序
          2. 选择和投影尽可能早进行
        3. 确定操作执行的方法
          1. 确定若干个操作的合并执行,确定可用的访问路径
          2. 连接方法在查询优化中起着重要作用
        4. 确定执行的站点
          1. 考虑通讯费用和执行效率
          2. 执行站点不一定是发出查询的站点
    4. 基于关系代数的查询优化
      1. 基本原理
        1. 把查询转变为关系代数表达式
        2. 分析得到查询数
        3. 把全局查询映射为片段的查询,得到基于片段的查询树
        4. 利用关系代数等价变换规则的优化算法得到优化的查询树
      2. 处理步骤
        1. 将关系表达式表示为语法树的形式
        2. 利用等价变换规则将选择和投影运算移向数的叶端,连接和合并向上移
        3. 使多个选择和多个投影一起进行
        4. 将树的内部结点分组,形成不同程序步
    5. 基于半连接的查询优化
      1. 半连接操作
      2. 优化原理
      3. 处理办法
        1. 计算每种半连接方案的代价,选择一种最佳的
        2. 选择传输代价最小的站点,计算采用全连接方案的代价
        3. 比较两者,确定最优的
    6. 基于直接连接的查询优化
      1. 站点依赖算法
        1. 无数据传递
        2. 可利用索引做本地连接
        3. 每个站点连接数量总量是R
      2. 分片与复制算法
        1. 数据传输总量是R
        2. 数据传送后,可能要重新创建索引
        3. 每个站点的连接总量是3/2 R,一个全关系和一个片段
      3. 站点依赖与复制相结合
      4. Hash划分算法
        1. 数据传送量R
        2. 索引可能无法使用
        3. 每个站点的连接数据量同站点依赖
  7. 设计
    1. DDB设计的两种方法
      1. 自顶向下
      2. 自底向上
        1. 将现有的各种不同数据库模式集成为全局模式
        2. 需要解决不同数据库之间的不一致
        3. 在全局分布式层采用统一的数据模型表示
    2. 分片设计
      1. 分片原因
        1. 产生一个对全局数据合适的分片方案
        2. 将片段作为存储和分配单位,能够减少应用的数据操作量
        3. 对数据的存取具有最大可能的本地性,即使应用能够尽量存取本站点的数据
      2. 原则
        1. 完整性
        2. 可重构性
        3. 不相交性
      3. 方法
        1. 水平分片
        2. 垂直分片
        3. 混合分片
      4. 评价(连接图)
        1. 完全连接
        2. 分区连接
        3. 简单连接
  8. 概述
    1. 分布式数据库系统的定义、特点和优点
      1. 定义:物理上分散而逻辑上集中的数据库系统
      2. 物理分布性
      3. 逻辑整体性
      4. 站点自治性
      5. 数据分布透明性
      6. 集中与自治相结合
      7. 存在适当的数据冗余度
      8. 事务管理分布性
      9. 优点
        1. 良好的可靠性和可用性
        2. 系统效率高,通信代价小
        3. 结构灵活,易于扩充
        4. 适应分布式管理和控制
        5. 自治性好
      10. 特点
    2. 分布式数据库系统的体系结构
    3. 分布式数据库的模式结构
      1. 全局外模式
      2. 全局概念模式
      3. 分片模式
      4. 分布模式
      5. 局部概念模式
      6. 局部内模式
      7. 特点
        1. 数据分片与数据分布独立
        2. 数据冗余显式控制
        3. 局部DDBS独立性
    4. DDBS的分类方法
      1. 按局部数据类型分
        1. 同构性DDBS
        2. 异构性DDBS
      2. 按全局控制类型分
        1. 全局控制集中式DDBS
        2. 全局控制分散式DDBS
        3. 全局控制可变式DDBS
    5. 数据分片与分布的概念
      1. 数据分片
        1. 水平
        2. 垂直
        3. 混合
        4. 导出
      2. 规则
        1. 完备性条件
        2. 可重构条件
        3. 不相交性条件
      3. 数据分布
        1. 集中式
        2. 分割式
        3. 复制式
        4. 混合式
    6. 分片方式和分片规则
    7. 数据独立性与分布透明性
      1. 数据独立性
        1. 逻辑独立性
        2. 物理独立性
        3. 分布独立性
          1. 分片透明性
          2. 位置透明性
          3. 局部数据模型透明性
          4. 无分布透明性