数据库原理与应用(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

相关文章

Linux下MySQL数据库定时备份脚本与Crontab配置教学

《Linux下MySQL数据库定时备份脚本与Crontab配置教学》在生产环境中,数据库是核心资产之一,定期备份数据库可以有效防止意外数据丢失,本文将分享一份MySQL定时备份脚本,并讲解如何通过cr... 目录备份脚本详解脚本功能说明授权与可执行权限使用 Crontab 定时执行编辑 Crontab添加定

PHP应用中处理限流和API节流的最佳实践

《PHP应用中处理限流和API节流的最佳实践》限流和API节流对于确保Web应用程序的可靠性、安全性和可扩展性至关重要,本文将详细介绍PHP应用中处理限流和API节流的最佳实践,下面就来和小编一起学习... 目录限流的重要性在 php 中实施限流的最佳实践使用集中式存储进行状态管理(如 Redis)采用滑动

SpringBoot 多环境开发实战(从配置、管理与控制)

《SpringBoot多环境开发实战(从配置、管理与控制)》本文详解SpringBoot多环境配置,涵盖单文件YAML、多文件模式、MavenProfile分组及激活策略,通过优先级控制灵活切换环境... 目录一、多环境开发基础(单文件 YAML 版)(一)配置原理与优势(二)实操示例二、多环境开发多文件版

Spring 中的切面与事务结合使用完整示例

《Spring中的切面与事务结合使用完整示例》本文给大家介绍Spring中的切面与事务结合使用完整示例,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考... 目录 一、前置知识:Spring AOP 与 事务的关系 事务本质上就是一个“切面”二、核心组件三、完

ShardingProxy读写分离之原理、配置与实践过程

《ShardingProxy读写分离之原理、配置与实践过程》ShardingProxy是ApacheShardingSphere的数据库中间件,通过三层架构实现读写分离,解决高并发场景下数据库性能瓶... 目录一、ShardingProxy技术定位与读写分离核心价值1.1 技术定位1.2 读写分离核心价值二

深度解析Python中递归下降解析器的原理与实现

《深度解析Python中递归下降解析器的原理与实现》在编译器设计、配置文件处理和数据转换领域,递归下降解析器是最常用且最直观的解析技术,本文将详细介绍递归下降解析器的原理与实现,感兴趣的小伙伴可以跟随... 目录引言:解析器的核心价值一、递归下降解析器基础1.1 核心概念解析1.2 基本架构二、简单算术表达

深入浅出Spring中的@Autowired自动注入的工作原理及实践应用

《深入浅出Spring中的@Autowired自动注入的工作原理及实践应用》在Spring框架的学习旅程中,@Autowired无疑是一个高频出现却又让初学者头疼的注解,它看似简单,却蕴含着Sprin... 目录深入浅出Spring中的@Autowired:自动注入的奥秘什么是依赖注入?@Autowired

如何通过try-catch判断数据库唯一键字段是否重复

《如何通过try-catch判断数据库唯一键字段是否重复》在MyBatis+MySQL中,通过try-catch捕获唯一约束异常可避免重复数据查询,优点是减少数据库交互、提升并发安全,缺点是异常处理开... 目录1、原理2、怎么理解“异常走的是数据库错误路径,开销比普通逻辑分支稍高”?1. 普通逻辑分支 v

MySQL中On duplicate key update的实现示例

《MySQL中Onduplicatekeyupdate的实现示例》ONDUPLICATEKEYUPDATE是一种MySQL的语法,它在插入新数据时,如果遇到唯一键冲突,则会执行更新操作,而不是抛... 目录1/ ON DUPLICATE KEY UPDATE的简介2/ ON DUPLICATE KEY UP

MySQL分库分表的实践示例

《MySQL分库分表的实践示例》MySQL分库分表适用于数据量大或并发压力高的场景,核心技术包括水平/垂直分片和分库,需应对分布式事务、跨库查询等挑战,通过中间件和解决方案实现,最佳实践为合理策略、备... 目录一、分库分表的触发条件1.1 数据量阈值1.2 并发压力二、分库分表的核心技术模块2.1 水平分