[每天五分钟,备战架构师-10]数据库系统

事务管理

事务是数据库系统运行的基本工作单位,相当于操作系统中的进程,事务具有ACID特性。从用户的角度来看,事务中的操作要么都做,要么都不做。

  • 原子性 Atomicity
  • 一致性 Consistency
  • 隔离性 Isolation,表示不能被其他事务干扰
  • 持久性 Durability,一旦提交改变就是永久性的

处理并发控制 Concurrency

多个用户对同一数据进行并发操作时,如果没有控制,可能会产生丢失更新、读到过时的数据(不一致分析问题)、读到脏数据(依赖于未提交更新的问题)的情况。并发控制的主要方法是采用封锁技术,有两种类型:排他型封锁、共享型封锁。

  • 排他型封锁(简称X封锁)。如果事务T对数据A实现了X封锁,那么只允许T读取修改数据A,其他事务需等T解除X封锁后,才能进行后续动作。
  • 共享型封锁(简称S封锁)。X封锁要求太严,于是产生S封锁。如果事务T对数据A实现了S封锁,那么允许事务T读取数据A,但不能修改数据A,在所有S封锁解前不允许任何事务

处理并行控制 Parallelism

并行控制主要通过封锁协议来进行处理。

  • 一级封锁协议。事务T在修改数据R之前必须先对其加X锁,直到事务结束才释放。
  • 二级封锁协议。一级封锁协议加上事务T在读取数据R之前先对其加S锁,读完后即可释放S锁。
  • 三级封锁协议。一级封锁协议加上事务T在读取R之前先对其加S锁,直到事务结束才释放。
  • 两段锁协议。所有事务必须分两个阶段对数据项加锁和解锁。

死锁问题

采用封锁方法可以防止数据不一致,但是会带来死锁问题。死锁的避免一般有预防法和解除法。

故障与恢复

数据库的故障主要分为4类:

  • 事务故障。事务未能正常终止被撤销的情况。
  • 系统故障。事务以非正常方式终止的情况,此时内存信息丢失。
  • 介质故障。物理存储介质的故障,可能性虽低,但破坏性大。
  • 计算机病毒。

针对不同的故障,可以采用不同的恢复策略:

  • 事务故障恢复。应对未完成事务进行撤销,系统自动完成恢复。
  • 系统故障恢复。数据库根据日志,在重新启动时对事务进行撤销,对重做队列事务进行重做。
  • 介质故障恢复需要依赖备份的副本,将数据库恢复到最近一次备份时的状态,会丢失数据。
  • 具有检查点的恢复技术。
    大型数据库系统,例如Oracle提供了安全机制保证,但是小型的数据库并非都有相应的功能,有时需要人工辅助,保证数据库的安全和恢复。

备份与恢复

为应对数据库损坏的可能性,需要指定合适的备份和恢复计划。备份计划制定的原则包括:

  • 保证数据丢失得尽量少或完全不丢失
  • 备份和恢复时间尽量短,保证系统最大得可用性

根据备份内容,分为物理备份和逻辑备份。根据效率,分为完全、增量、累积三种备份方式。

分布式数据库

概念

分布式数据库系统是相对于集中系统而言的,确切的含义是通过数据库技术与网络技术相结合,由一组数据组成,这组数据分布在计算机网络的不同计算机上,网络中的每个节点具有独立处理的能力,成为场地自治,它可以执行局部应用,同时,每个节点也能通过网络通信子系统执行全局应用。

负责分布式数据库的建立、查询、更新、复制、管理和维护的软件,称为分布式数据库管理系统(Distributed Database Management System,DDBMS)。

分布式数据库系统具有以下几个特点:

  1. 数据的分布性
  2. 统一性。表现在数据逻辑上的统一性和数据管理上的统一性。
  3. 透明性,用户无须关心数据存放的位置。

体系机构

分布式数据库系统的模式有6个层次:

  1. 全局外模式,是全局应用的用户视图
  2. 全局概念模式,定义分布式数据库中数据的整体逻辑结构
  3. 分片模式
  4. 分布模式
  5. 局部概念模式
  6. 局部内模式,类似于集中式数据库系统中的内模式

并行数据库系统

对比互联网领域的技术发展路径来看,目前基本上看不到并行数据库系统使用的场景。教材中提到的Sequent系统在网上也是资料寥寥,建议可以直接略过这一节了。但是后面提到的并行处理技术,可能和目前的大数据处理、人工智能平台有结合点,感兴趣的可以自己研究下。

数据仓库

数据仓库的概念:Data Warehouse 是一个面向主题的、集成的、相对稳定的、且随时间变化的数据集合,用于支持管理决策。

数据仓库的结构包括:

  • 数据源
  • 数据的存储与管理
  • OLAP服务器
  • 前端工具,主要包括各种报表工具、查询工具、数据分析工具、数据挖掘工具等

参考资料

  1. 并发与并行的区别
  2. Sequence database
  3. Sequent Computer Systems
posted @ 2018-09-05 13:53  Cocowool  阅读(319)  评论(0编辑  收藏  举报