数据库原理与应用(SQL Server)笔记——第十五章 事务与数据库管理

本文主要是介绍数据库原理与应用(SQL Server)笔记——第十五章 事务与数据库管理,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

  • 一、事务
  • 二、锁定机制
    • (一)不一致性
    • (二)锁模式
    • (三)死锁
  • 三、数据库管理
    • (一)SQL Server身份验证
    • (二)数据库的备份
    • (三)数据库的恢复

一、事务

数据库中的事务是单个逻辑单元执行的一系列操作,事务的处理必须满足ACID原则,有以下四种:
(一)原子性
使数据库管理系统中满足原子性的子系统是事务管理子系统,原子性意味着若事务中的某个操作失败,整个事务都会回滚到初始状态,即事务包括的操作要么全执行,要么全不执行。
(二)一致性
一致性是指事务必须使数据库从一个一致性状态变换到另一个一致性状态,即一个事务执行之前和执行之后,数据库都必须处于一致性状态。
(三)隔离性
一个事务的执行不被其他事务干扰,即为事务的隔离性。
(四)持续性
数据库管理系统的恢复管理子系统保证了事务的持续性,持续性是指事务一旦提交,则对数据库中的数据的改变是永久性的。

之所以叫事务的ACID属性,是因为包括原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)以及持续性(Durability),所以,简称事务的ACID。

二、锁定机制

(一)不一致性

锁定机制用来解决多个数据库用户同时对同一个数据块访问所引起并发操作的情况,若不对其进行相关的控制,会导致数据库中的数据的不一致性,包括丢失更新、脏读、不可重复读、幻读等问题。

(二)锁模式

SQL Server使用了不同的锁模式来锁定资源,锁模式确定了并发事务访问资源的方式,有共享锁、更新锁、排他锁、意向锁、架构锁、大容量更新锁、键范围锁七种。每种锁都有不同的特点,例如,共享锁(S锁)允许事务访问资源,不允许修改;更新锁(U锁)可以防止死锁;排他锁(X锁)可以防止并发事务访问和修改……

例如,事务R获得了数据对象S上的排他锁,则R对S能读、写,但其他事务对S不能读、写。

(三)死锁

当两个事务分别锁定某个资源,而又等待对方释放其锁定的资源时,将发生死锁。另外,SQL Server的死锁监视器会监视事务,同时会根据死锁优先级来决定回滚,若死锁优先级相同,则会将回滚开销较低的选为死锁牺牲品。

三、数据库管理

(一)SQL Server身份验证

SQL Server的身份验证模式包括Windows 身份验证模式和混合验证模式,当采用后者时,允许使用Windows 账号登陆,也允许使用SQL Server账号登陆。

(二)数据库的备份

数据库备份是确保数据库中的数据安全性和完整性的重要手段,常用的备份方式有以下:
1、完整备份:
完整备份整个数据库。优点是恢复性强,提供了完整性的数据库副本;缺点是完整的备份文件占存储空间和备份时间长。
2、增量备份:
备份上一次备份以来的更新数据,该方式可以节省备份时间和存储空间。
3、事务日志备份
只备份事务日志文件,文件中记录了数据库的改变情况,该方式用时最节省时间。

总的来说,要根据实际情况来选择备份方式,且通常还是要综合使用多种备份类型来共同保障数据库,以提供最佳的数据保护和恢复能力。

(三)数据库的恢复

数据库恢复的基础是利用转储的冗余数据,即通过数据转储的数据库后备副本和日志文件来进行恢复。其中,数据转储是指数据库管理员定期将整个数据库复制到另一个硬盘保存起来,保存的数据即为数据库后备副本。

冗余数据是指可以由基本数据导出的数据,这些数据在数据库中重复存储,虽然冗余数据容易破坏数据库的完整性并给数据库的维护带来困难,但可以通过冗余数据来重建被破坏或不正确的数据,从而作为恢复数据的手段。

在SQL Server中有三种恢复模式,分别是简单恢复、完整恢复和大容量日志恢复模式。

这篇关于数据库原理与应用(SQL Server)笔记——第十五章 事务与数据库管理的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/863716

相关文章

MySQL8.0设置redo缓存大小的实现

《MySQL8.0设置redo缓存大小的实现》本文主要在MySQL8.0.30及之后版本中使用innodb_redo_log_capacity参数在线更改redo缓存文件大小,下面就来介绍一下,具有一... mysql 8.0.30及之后版本可以使用innodb_redo_log_capacity参数来更改

Python调用Orator ORM进行数据库操作

《Python调用OratorORM进行数据库操作》OratorORM是一个功能丰富且灵活的PythonORM库,旨在简化数据库操作,它支持多种数据库并提供了简洁且直观的API,下面我们就... 目录Orator ORM 主要特点安装使用示例总结Orator ORM 是一个功能丰富且灵活的 python O

Springboot中分析SQL性能的两种方式详解

《Springboot中分析SQL性能的两种方式详解》文章介绍了SQL性能分析的两种方式:MyBatis-Plus性能分析插件和p6spy框架,MyBatis-Plus插件配置简单,适用于开发和测试环... 目录SQL性能分析的两种方式:功能介绍实现方式:实现步骤:SQL性能分析的两种方式:功能介绍记录

使用 sql-research-assistant进行 SQL 数据库研究的实战指南(代码实现演示)

《使用sql-research-assistant进行SQL数据库研究的实战指南(代码实现演示)》本文介绍了sql-research-assistant工具,该工具基于LangChain框架,集... 目录技术背景介绍核心原理解析代码实现演示安装和配置项目集成LangSmith 配置(可选)启动服务应用场景

oracle DBMS_SQL.PARSE的使用方法和示例

《oracleDBMS_SQL.PARSE的使用方法和示例》DBMS_SQL是Oracle数据库中的一个强大包,用于动态构建和执行SQL语句,DBMS_SQL.PARSE过程解析SQL语句或PL/S... 目录语法示例注意事项DBMS_SQL 是 oracle 数据库中的一个强大包,它允许动态地构建和执行

SQL 中多表查询的常见连接方式详解

《SQL中多表查询的常见连接方式详解》本文介绍SQL中多表查询的常见连接方式,包括内连接(INNERJOIN)、左连接(LEFTJOIN)、右连接(RIGHTJOIN)、全外连接(FULLOUTER... 目录一、连接类型图表(ASCII 形式)二、前置代码(创建示例表)三、连接方式代码示例1. 内连接(I

SpringBoot中使用 ThreadLocal 进行多线程上下文管理及注意事项小结

《SpringBoot中使用ThreadLocal进行多线程上下文管理及注意事项小结》本文详细介绍了ThreadLocal的原理、使用场景和示例代码,并在SpringBoot中使用ThreadLo... 目录前言技术积累1.什么是 ThreadLocal2. ThreadLocal 的原理2.1 线程隔离2

在MySQL执行UPDATE语句时遇到的错误1175的解决方案

《在MySQL执行UPDATE语句时遇到的错误1175的解决方案》MySQL安全更新模式(SafeUpdateMode)限制了UPDATE和DELETE操作,要求使用WHERE子句时必须基于主键或索引... mysql 中遇到的 Error Code: 1175 是由于启用了 安全更新模式(Safe Upd

使用Navicat工具比对两个数据库所有表结构的差异案例详解

《使用Navicat工具比对两个数据库所有表结构的差异案例详解》:本文主要介绍如何使用Navicat工具对比两个数据库test_old和test_new,并生成相应的DDLSQL语句,以便将te... 目录概要案例一、如图两个数据库test_old和test_new进行比较:二、开始比较总结概要公司存在多

轻松上手MYSQL之JSON函数实现高效数据查询与操作

《轻松上手MYSQL之JSON函数实现高效数据查询与操作》:本文主要介绍轻松上手MYSQL之JSON函数实现高效数据查询与操作的相关资料,MySQL提供了多个JSON函数,用于处理和查询JSON数... 目录一、jsON_EXTRACT 提取指定数据二、JSON_UNQUOTE 取消双引号三、JSON_KE