软考系统分析师·每日学习卡 | [日期:2025-08-18] | [今日主题:数据库封锁协议-安全-备份]

时间:2025-09-06 08:00:01来源:互联网

下面小编就为大家分享一篇软考系统分析师·每日学习卡 | [日期:2025-08-18] | [今日主题:数据库封锁协议-安全-备份],具有很好的参考价值,希望对大家有所帮助。

一、今日学了啥?

graph LR A[数据库控制] --> B(事务管理) A --> C(并发控制) A --> D(安全管理) A --> E(备份恢复) B --> B1[ACID特性] C --> C1[封锁协议] D --> D1[安全措施] E --> E1[备份策略]

二、重点/要记住的!

  • ? 数据库事务:代表一组相关的数据库操作,这些操作的执行要么都发生,要么都不发生,构成一个不可分割的整体

    • 原子性(Atomicity):事务是不可分割的最小单元,事务中的操作要么全部成功,要么全部失败回滚。这些操作是一个整体,不能部分完成,如银行转账(张三扣10元+李四加10元必须同时成功/失败)
    • 一致性(Consistency):事务必须使数据库从一个一致性状态变换到另一个一致性状态,即事务执行前后后,数据库必须处于一致性状态,如银行转账前后总金额不变(张三10元→5元,李四20元→25元)
    • 隔离性(lsolation):指一个事务的执行不能被其他事务干扰,一个事务内部的操作及使用的数据对并发的其他事务是隔离的
    • 持久性(Durability):事务一旦被提交,对数据库的修改就是永久性的,无论发生何种故障,都不应对其有任何影响
  • ? 并发控制产生的问题

    • 丢失更新((两人同时修改库存))
    • 不可重复读(同一查询返回不同结果)
    • 读脏数据(读到未提交的回滚数据)
  • ? 处理机制

    • S锁(共享锁):读
    • X锁(排他锁):写

    • 一级封锁协议:事务T在修改数据R前必须先对其加X锁,直到事务结束才释放,可防止丢失修改
    • 二级封锁协议:一级锁协议加上事务T在读取数据R时必须先对其加S锁,读完即可释放S锁,可防止丢失修改,还可防止读脏数据
    • 三级封锁协议:一级锁协议加上事务T在读取数据R时必须先对其加S锁,直到事务结束才释放,可防止读脏数据,还可防止读脏数据与防止数据(不可)重复读
    • 两段锁协议:可串行化的,可能发生死锁
  • ? 安全性措施

    • 用户标识和鉴定:最外层的安全保护措施,可以使用用户账户、口令和随机数检验等方式
    • 存取控制:对用户进行授权,包括操作类型(如查找、插入、删除、修改等动作)和数据对象(主要是数据范围)的权限(Grant 和 Revoke)
    • 密码存储和传输:对远程终端信息用密码传输
    • 视图的保护:对视图进行授权
    • 审计:使用一个专用文件或数据库,自动将用户对数据库的所有操作记录下来
  • ? 数据库备份与恢复

    • 冷备份(静态备份):将数据库正常关闭,在停止状态下,将数据库的文件全部备份(复制)下来
    • 热备份(动态备份):利用备份软件,在数据库正常运行的状态下,将数据库中的数据文件备份出来
    备份类型优点缺点
    冷备份(静态备份)非常快速的备份方法(只需复制文件)
    容易归档(简单复制即可)
    容易恢复到某个时间点上(只需将文件在复制回去)
    能与归档方法相结合,做数据库最佳状态的恢复
    低度维护,高度安全
    单独使用时,只能提供到某一时间点上的恢复
    事实备份的全过程中,数据库必须做备份而不能进行其他工作
    若磁盘空间有限只能复制到磁带等其他外部存储设备上,速度会很慢
    不能按表或按用户恢复
    热备份(动态备份)可在表空间或数据库文件级备份,备份时间短
    备份时数据库仍可用
    可达到秒级恢复(恢复到某一时间点上)
    可对几乎所有数据库实体做恢复
    恢复是快速的
    不能出错,否则后果严重
    若热备份不成功所得结果不可用于时间点的恢复
    因难以恢复,因此要特别小心,不允许以失败告终
  • ? 备份策略

    • 完全备份:备份所有数据
    • 差量备份:仅备份上一次完全备份之后变化的数据
    • 增量备份:备份上一次备份之后变化的数据

    • 日志文件:在事务处理过程中,DBMS 把事务开始、结束以及对数据库的插入、删除和修改的每一次操作写入日志文件中。一旦发生故障,DBMS的恢复子系统利用日志文件撤销事务对数据库的改变,回退到事务的初始状态

三、今天的小收获/卡住的地方

选错的例题:

数据库的安全机制中,通过提供 ______ 给第三方开发人员进行数据更新,从而保证数据库的关系模式不被第三方获取。
选项:
A. 索引
B. 视图
C. 存储过程
D. 触发器

解题思路:

graph TD A[题目核心需求] --> B[允许第三方更新数据] A --> C[隐藏数据库关系模式] B --> D[选项分析] C --> D D --> E[索引: 仅加速查询, 无关安全] D --> F[视图: 隐藏结构但不支持更新] D --> G[存储过程: 封装操作逻辑, 支持更新且隐藏底层结构] D --> H[触发器: 监控事件, 无关数据更新权限] F --> |错误原因| I[视图是只读的, 无法直接更新数据] G --> |正确原因| J[存储过程通过调用接口更新数据, 且第三方不可见底层表结构] E --> K[排除] F --> L[排除] H --> M[排除] G --> N[选择C]

四、明天学啥?

明天学习计算机网络—TCP/IP协议族


像实干家一样思考问题,像思想家一样付诸行动。

愿你我共同进步!

本站部分内容转载自互联网,如果有网站内容侵犯了您的权益,可直接联系我们删除,感谢支持!