数据库--数据库控制

214 阅读4分钟

一、DBMS相关

1.1.基本知识

  • DBMS运行的基本工作单位是事务

  • 事务是用户定义的一个数据库操作序列,这些操作序列要么全做,要么全都不做,是一个不可分割的工作单位

  • 事务具有以下特性(ACID特性):

    • 原子性(atomicity)
    • 一致性(consistency)
    • 隔离性(isolation)
    • 持续性(durability,永久性)
  • 事务通常以BEGIN TRANSACTION(事务开始)语句开始,以COMMIT或ROLLBACK语句结束

  • COMMIT称为事务提交语句,表示事务执行成功地结束

  • ROLLBACK称为事务回滚语句,表示事务执行不成功地结束,即把事务对数据库的修改进行恢复

二、并发控制

2.1.基本概念

  • 在多用户共享系统中,许多事务可能同时对统一数据进行操作,称为并发操作,此时数据库管理系统的并发控制子系统负责协调并发事务的执行,保证数据库的完整性不受破坏,同时避免用户得到不正确的数据

2.2.并发操作的问题

  • 丢失更新问题
  • 不一致分析问题(读过时的数据)
  • 依赖于未提交更新的数据(读脏数据)

2.3.封锁的类型

  • X封锁(排他型封锁)
    • 如果事务T对数据A(可以是数据项、记录、数据集以致整个数据库)实现了X封锁,那么只允许事务T读取和修改数据A,其他事务要等事务T解除X封锁后,才能对数据A实现任何类型的封锁。可见X封锁只允许一个事务独锁某个数据,具有排他性
  • S封锁(共享型封锁)
    • S封锁允许并发读,但不允许修改,也就是说,如果事务T对数据A实现了S封锁,那么允许事务T读取数据A,但不能修改数据A,在所有S封锁解除之前绝不允许任何事物对数据A实现X封锁

三、数据备份和恢复技术

3.1.数据备份

  • 是指为防止系统出现操作失误或系统故障导致数据丢失,而将全部或部分数据集合从应用主机的硬盘或阵列复制到其它的存储介质的过程

  • 数据库只能恢复到备份时的状态,从那以后的所有更新事务必须重新运行才能恢复到故障时的状态

  • 备份分为冷备份(静态备份)和热备份(动态备份)

    • 冷备份是在数据库正常关闭的情况下进行的,所以备份过程中不允许对数据库进行任何存取、修改活动

      • 缺点:
        • 单独使用时,只能提供到“某一时间点上”的恢复
        • 在备份时,数据库不能做其他工作
        • 若磁盘有限,只能将备份数据拷贝到磁带等其他外部存储设备上,速度会比较慢
        • 不能按表或按用户恢复
    • 热备份是指备份期间允许对数据库进行存取或修改,即备份和用户事务可以并发执行

      • 优点:

        • 可在表空间或数据库文件级备份,备份时间短
        • 备份时数据库仍可使用
        • 可对几乎所有数据库实体做恢复
        • 恢复是快速的,可在数据库工作时恢复
      • 缺点:

        • 不能出错,否则后果严重
        • 若热备份不成功,所得结果不可用于时间点的恢复
        • 因难于维护,所以要特别仔细小心,不允许“以失败告终”
    • 完全备份:备份全部文件,并不依赖文件的存档属性来确定备份哪些文件

    • 差分备份:备份自上一次完全备份以来变化过的文件

    • 增量备份:备份上一次备份后(无论是哪种备份),所有发生变化的文件

3.2.日志文件

  • 事务日志是针对数据库改变所做的记录,记录对数据库的任何操作,并将记录结果保存在独立的文件中
  • 在热备份中,必须建立日志文件,备份副本和日志文件综合起来才能有效地恢复数据库
  • 在冷备份中,也可以建立日志文件,当数据库毁坏后可重新装入后援副本把数据库恢复到备份结束时刻的正确状态,然后利用日志文件,把已完成的事务进行重做处理,对故障发生时尚未完成的事务进行撤销处理
  • 要求遵循“先写日志文件,然后再写数据库的修改”

3.3.数据恢复

  • 把数据库从错误状态恢复到某一个已知的正确状态的功能,称为数据库的恢复
  • 数据恢复的基本原理就是冗余,建立冗余的方法有数据备份和登录日志文件等