基本概念
  • 数据库
  • 数据库管理系统
  • 数据库系统
  • 模式
  • 关系模型
  • 关系代数,交并补差笛卡尔积,选择投影连接
  • [x] SQL语言

    分布式基本概念
  • [x] 节点/场地(物理分布)

  • 分布式数据库: 物理分布,逻辑同一
  • [x] 分布式数据库管理系统

    分布式数据库系统应用举例

    一个公司,总公司在上海,在广州,北京均设有分公司
    全局模式如下:
    员工信息: EMP(ENO,ENAME,TITLE)
    参与项目情况: ASSIGNMENT(ENO,PNO,RESPONSIBILITY,DURING)
    项目信息: PROJECT(PNO,PNAME,BUDGET)
    工资信息: PAY(TITLE,SALARY)
    各分公司管理本公司的员工信息,项目信息和雇员参与项目情况信息。
    总公司管理经费50w以上的项目信息和title>5的员工信息。
    分布式数据的一个应用例子, 不难发现,解耦合可以降低成本(减少通信次数,降低查询消耗资源等)。

    特性
  • 分布透明性

物理分布,逻辑同一,用户使用与集中无明显区别

  • 分片透明性

分片的位置,数量等都不重要,用户只要逻辑上将其视为集中数据库即可

  • 复制透明性

数据可能重复存储在不同的数据库。以上三种均是因为分布式是物理分布,逻辑统一

  • 设计自治性

局部数据库管理系统可以独立决定本地数据库的设计

  • 通信自治性

局部数据库管理系统能独立决定如何与其他数据库通信

  • 执行自治性

能自主决定采用何种方式执行局部操作

作用和特点

特点:物理分布,逻辑统一

优势:适合分布式数据管理,有效提高系统性能;经济性灵活性(降低成本);可用性可靠性(副本,一个出问题不会导致全部瘫痪,容错)

问题:设计复杂;处理与维护复杂;数据安全性与保密性难控制(局部自治,不同的局部安全措施不同,难保证全局安全。分布式要网络传输控制消息和数据,也降低安全性)

关键技术
  1. 分布式数据库设计
    • 如何恰当的对数据分片设计并合理布局
    • 如何设定复制型数据和非复制型数据,且如何权衡其利弊
    • 如何实现元数据管理,复制/分割全局数据字典还是复制/分割局部字典或是结合
    • 如何维护全复制式数据字段和部分复制数据字典的一致性,如何保证分割式数据字典的可靠性
  2. 查询处理
    • 对分布在不同场地的数据如何解决事务到数据操作命令的转换
    • 如何有效利用各场地的处理能力,同时降低通信成本
    • 如何选择副本和执行场地,以最小代价(通信量和时间)执行查询策略的优化问题
  3. 并发控制
    • 多场地多用户并发执行事务,协调并发访问的同步问题,并保证数据的完整性和一致性
    • 多事务并发,考虑多副本的存在,保证事务一致性,隔离性
    • 多事务并发调度,如何选择封锁粒度和封锁策略,提高并发执行效率,以及如何解决或预防死锁
  4. 可靠性
    • 分布式环境,系统故障如何有效实现系统恢复,保证数据正确性。尤其是网络故障
    • 事务原子性和耐久性的实现。重点解决如何保证分布式事务执行的事务原子性和多副本数据的一致性
  5. 安全性
    • 用户授权和认证,访问权限控制问题。分布式环境下,协调多用户的多种权限控制
    • 保证数据安全性,实现数据加密与解密,相关算法的选择以及数据的协调问题
      三个早期分布式数据库系统先驱
  • SDD-1
  • Distributed INGRES
  • System R