当前位置: 首页 > news >正文

数据库系统-数据库控制

并发控制

事务的ACID特性:

  • 原子性(Atomicity):事务包含的所有操作要么全部成功(commit提交),要么全部失败(rollback回滚)
  • 一致性(Consistency):事务必须使数据库从一个一致性状态变换到另一个一致性状态。eg:转账时,一定是一方扣款,一方入账同时发生,不可只让一方扣款或只让一方入账
  • 隔离性(Isolation):一个事务的执行不能被其他事务干扰。
  • 持久性(Durability):一个事务一旦提交了,那么对数据库中的数据的改变就是永久性的。

并发产生的问题:

  • 丢失更新:两个并发事务对同一属性值进行修改,其中某个修改可能会被覆盖
  • 不可重复读的问题:某个事务要对同一组数据进行两次操作,两次操作中间被另一事务修改了这一组数据,导致两次操作的数据产生偏差。
  • “脏”数据的读出:一个事务中修改了某一数据后发现异常进行回滚,在修改数据之后,回滚之前这个数据被另一事务读取,则另一事务读取的就是脏数据 

解决方案:

封锁协议:

  • S封锁:读锁/共享锁,添加了S锁的数据,别的事务仍可以读取并添加S锁
  • X封锁 :写锁/独占锁,添加了X锁的数据,其他所有锁都无法添加
  • 一级封锁协议:事务在修改数据之前必须先对其加X锁,直到事务结束才能释放。可防止丢失修改
  • 二级封锁协议:一级封锁协议上加事务在读取数据之前先对其加S锁,读完后释放。可防止丢失修改,还可防止读“脏”数据
  • 三级封锁协议:一级封锁协议上加事务在读取数据之前先对其加S锁,直到事务结束再释放。可防止丢失修改、防止读“脏数据”与数据不可重复读。
  • 两段锁协议:将加锁的操作尽量都安排在解锁操作之前

数据库安全

用户标识与鉴定:最外层的安全保护措施,可用使用账户、口令及随机数检验等方式

存取控制:对用户进行授权,包括操作类型(如增删改查)和数据对象(数据范围)的权限

密码存储与传输:对远程终端信息用密码传输

视图保护:对视图进行授权

审计:使用一个专用文件或数据库,自动将用户对数据库的所有操作记录下来

数据库备份与恢复技术

数据备份 

冷备份:静态备份 ,是将数据库正常关闭,在停止状态下,将数据库文件全部备份下来

热备份:动态备份,是利用备份软件,在数据库正常运行的状态下,将数据库中的数据文件备份出来。

完全备份:备份所有数据

差量备份:仅备份上一次完全备份后变化的数据

增量备份:备份上一次任意备份之后变化的数据

 

日志文件:事务日志是针对数据库改变所做的记录,它可用记录针对数据库的任何操作,并将记录结果保存在独立的文件中

数据库故障与恢复

事务本身的可预期故障:本身逻辑,在程序中预先设置Rollback语句

事务本身的不可预期的故障:算术溢出、违反存储保护,由DBMS的恢复子系统通过日志、撤销事务对数据库的修改,回退到事务初始状态

系统故障:系统停止运转,通常使用检查点法(系统重启时自动完成)

介质故障:外村被破坏,一般使用日志重做业务

撤销事务(UNDO):故障发生时未完成的事务,放入Undo撤销

重做事务(REDO):故障发生前已提交的事务,放入Redo队列

数据库性能优化

集中式数据库优化:

  • 硬件系统:CPU,内存,I/O(硬盘。队列),网络
  • 系统软件:参数,如进程优先级,CPU使用权,内存使用
  • 数据库设计:表与视图(表的规划(可能会反规范化),建立物理视图)、索引(常查询-建索引,常修改-避免索引)、SQL语句优化
  • 应用软件:数据库连接池

分布式数据库优化:

  • 通信代价:全局查询树的变化,多副本策略,查询树的分解,半连接与直接连接 

相关文章:

  • 大模型快速 ASGI 服务器uvicorn
  • 石头剪刀布游戏
  • linux sudo不需要输入密码
  • 通过 itms-services 协议下载安装 IOS 应用
  • Shiro学习(六):Shiro整合CAS实现单点登录
  • JSON 是什么?通俗详解
  • Opencv计算机视觉编程攻略-第十节 估算图像之间的投影关系
  • 【力扣hot100题】(059)单词搜索
  • 华为IP(4)
  • 面试自我介绍
  • 介绍几种创意登录页(含完整源码)
  • Go语言-初学者日记(五):文件操作与 JSON 实战
  • PHP 项目搭建 ELK 日志监控体系完整指南
  • 第三方检测报告—科技成果鉴定测试
  • Ansible YAML 基础语法与关键词 的详细指南
  • 网络编程—TCP/IP模型(IP协议)
  • 若依系统弹窗父子页面传参数
  • 45.跳跃游戏 II
  • 网络编程—TCP/IP模型(数据链路层了解与知识补充)
  • DApp实战篇:前端技术栈一览
  • 做网站公司怎么找/百度推广平台首页
  • 建设网站后如何做后台/百度关键词优化查询
  • 大型门户网站有哪些/系统优化是什么意思
  • 网站建设个体营业执照/seo优化工程师
  • wordpress首页文章并排/潍坊seo关键词排名
  • 数码公司网站建设的意义/网站怎么才能被百度收录