第7章事务与并发控制
- 格式:ppt
- 大小:884.00 KB
- 文档页数:21


IT培训教程与学习资源指南
第1章 基础知识准备 ..................................................................................................................... 4
1.1 计算机硬件与软件概述 ................................................................................................... 4
1.2 操作系统基础 ................................................................................................................... 5
1.3 网络基础知识 ................................................................................................................... 5
第2章 编程语言入门 ..................................................................................................................... 5
2.1 编程语言概述 ................................................................................................................... 5
2.2 Python基础 ...................................................................................................................... 5
1 / 9
可编辑修改精选全文完整版
《数据库技术及应用》课程教学大纲
课程名称 数据库技术及应用
课程类别 专业必修课
课时 64
先修课程 高级语言程序设计,数据结构
一、课程简介
本课程是计算机类专业必修的专业课程。关系数据库是当今数据库技术的主流,本课程以关系数据库为核心,全面概述了数据库系统的基本概念、基本原理和基本技术。内容覆盖了数据管理技术的进展和特点、数据库系统的组成、数据库的三级模式结构、数据模型的组成和分类、关系模型、SQL语言(含数据库完整性的实现)、索引和视图、数据库安全性、事务的并发控制和恢复、规范化设计理论、ER模型和数据库设计等。
面对21世纪互联网应用所产生的海量数据和巨大点击量,关系型数据库技术显得有些力不从心,这助推了更注重大数据存储和高并发交互响应的NoSQL数据库技术的诞生。本课程概要介绍NoSQL数据库技术的概念与特点、存储模式、基本操作和应用场景。数据库技术是信息处理技术中的核心和关键技术,也是一切信息系统的基础。本课程采用基本理论与实际应用相结合的原则,在注重理论性、系统性和科学性的同时,结合目前最流行的数据库管理系统(SQL Server 2014和MongoDB)对照讲述数据库的基本技术与应用。通过Python数据处理技术的学习,训练运用数据库技术解决实际应用问题的知识、素质和能力,为后继课程的学习和今后的工作奠定重要基础。
二、课程目标
1、掌握数据库技术的基本概念、原理、方法和技术;
2、掌握SQL语言查询和编程的基本技术,具备SQL语言编程能力;
3、掌握一个典型的RDBMS(如SQL Server)数据库安全性管理、事务并发控制以及数据库备份和恢复的基本技能;
4、掌握关系数据库规范化设计理论和ER模型基本方法,具备独立思考设计数据库的能力;
2 / 9
5、初步掌握使用Python语言连接SQL Server数据库的方法,培养学生应用数据库技术解决实际问题的思维方法与基本能力;
山西电子技术 2010年第4期 软件技术 文章编号:16744578(2010)04-0054 ̄2 分布式并发控制技术 弓耀龙 (国营七八五厂,山西太原030024) 摘要:并发控制是分布式事务管理的基本任务之一,其目的是保证分布式数据库系统中多个事务的并发、高 效、正确执行。通过介绍几种常用分布式并发控制方法,了解分布式并发控制技术的实现途径和控制协议,通过进 行性能比较,探讨其在现实中的具体应用。 关键词:事务;分布式并发控制;性能分析 中图分类号:TP311.13 文献标识码:A O引言 随着传统的数据库技术日趋成熟、计算机网络技术的飞 速发展和应用范围的扩充,数据库应用已经普遍建立于计算 机网络之上。这时集中式数据库系统表现出它的不足:数据 按实际需要已在网络上分布存储,再采用集中式处理,势必 造成通信开销大;应用程序集中在一台计算机上运行,一旦 该计算机发生故障,则整个系统受到影响,可靠性不高;集中 式处理引起系统的规模和配置都不够灵活,系统的可扩充性 差。在这种形势下,以分布式为主要特征的数据库系统的研 究与开发受到人们的注意。 分布式数据库是数据库技术与网络技术相结合的产物, 它有效地扩展了数据库应用的空间,使得不同地域的用户可 以共享数据库,提高了办事效率。但是分布式处理却有一个 先天缺陷,就是设计的复杂性,设计一个好的分布式数据库 非常困难。本文从数据库并发控制角度,介绍几种常用分 布式并发控制方法,了解分布式并发控制技术的实现途径和 控制协议,探讨其在现实中的具体应用。 l问题的引入 下面先来看一个例子,说明并发操作带来的数据的不一 致性问题。 考虑飞机订票系统中的一个活动序列: (1)甲售票点(甲事务)读出某航班的机票余额A,设 A=16。 (2)乙售票点(乙事务)读出同一航班的机票余额A,也 为16。 (3)甲售票点卖出一张机票,修改余额A+-A一1.所以 A为15,把A写回数据库。 (4)乙售票点也卖出一张机票,修改余额A—A一1.所 以A为15,把A写回数据库。 结果明明卖出两张机票,数据库中机票余额只减少1。 由此可以看出并发控制对分布式数据库的重要性。 2分布式并发控制技术 2.1封锁法 封锁法是并发控制一个非常重要的技术。所谓封锁就 是事务T对某个数据项操作之前,先向并发控制中心申请加 锁请求,如果不和其他事务冲突,加锁成功;且在事务T释放 该锁之前,其他事务不得更新该数据项。锁分为读锁(共享 锁)和写锁(排它锁)。即对同一数据项在同一时刻可以有 多个事务持有对其的读锁,但对同一数据项在任何时刻只能 有一个事务持有对其的写锁。 在封锁法中实现并发的最著名的算法是两段锁协议。 两段封锁协议规定: (1)在对任何数据进行读、写操作之前,事务首先要获 得对该数据的封锁,而且;在释放一个封锁之后,事务不再获 得任何其他封锁。 (2)所谓“两段”锁的含义是,事务分为两个阶段,第一 阶段是获得封锁,也称为扩展阶段,第二阶段是释放封锁,也 称为收缩阶段。 可以证明,若并行执行的所有事务均遵守两段锁协议, 则对这些事务的所有并行调度策略都是可串行化的。因此 我们得出如下结论:所有遵守两段锁协议的事务,其并行的 结果一定是正确的。遵守两段锁协议,在集中式数据库管理 系统中可以破坏死锁的形成条件,以保证事务调度的正确 性。但是在分布式管理系统中并不能保证不发生死锁。 在分布式环境下,如果分布式数据库系统中没有重复存 储的数据,可以使用分布式锁技术。其实现方法是,对每个 结点保留一个局部锁管理器,处理对存储在本地的数据加锁 和释放锁的请求。当分布式数据库系统中有多处重复存储 的数据时,可采用集中式锁技术,即仅有一个锁管理器,该管 理器放在惟一一个结点上,所有的加锁和释放锁的请求都在 该结点上处理。此外,在分布式环境下的锁方法,还有混合锁 技术、主副本锁协议等。这些方法都可以有效地避免死锁。 其次,基于封锁的并发控制方法在分布式环境下还必须 解决全局死锁问题。所谓全局死锁是指包括两个场地以上 的死锁。分布式数据库系统是采用数据库图协议来避免死 锁的。数据库图协议是建立在数据库图基础上的一种无死 锁协议。一种简单的数据库图协议称为树协议。树协议中 只可以有一种锁,即互斥锁。每个事务t对一个数据项只能 加锁一次,且必须遵循以下规则: a)T的第一个锁可以加到任何数据项上; b)数据项可以由T加锁的前提是其父节点已被加锁; C)数据项在任何时刻都可以被解锁; d)一个已经被T加锁并解锁的数据项不能由T再 加锁。 收稿日期:2010—06—20 作者简介:弓耀龙(1981.),男,山西寿阳人,助工,本科,研究方向:网络管理。
第7章TRANSACT-SQL程序设计和应用开发
7.1 编程基础
7.2 流程控制语句
7.3 函数
7.4 游标
7.5 存储过程
7.7 触发器
7.8 数据库的应用开发7.1 编程基础7.1.1 语法规则
7.1.2 常量和变量7.1.3
批和脚本7.1.1 语法规则
1.Transact-SQL语法约定
2.引用数据库对象名的规则
3.Transact-SQL的语法元素7.1.2 常量和变量
1.常量
(1)字符串常量
(2)数值常量
(3)日期常量
(4)uniqueidentifier常量
2 变量
SQL Server中支持两种形式的变量,一种是局部变量,
另一种是全局变量。局部变量的声明:
DECLARE @局部变量名数据类型
局部变量被声明后,赋值的方式有两种:
SET @局部变量名=表达式
SELECT @局部变量名=表达式
[FROM 表名[,…n] WHERE 条件]
全局变量是SQL Server系统提供并赋值的变量,用来
记录SQL Server服务器活动状态的一组数据。全局变量以
@@开头。7.1.3 批和脚本
批是从客户机传递给服务器上的一组完整的数据
和SQL指令集合,将批作为一个整体来进行分析、编译
和执行的,这样可以节省系统开销。批的限制:
某些特殊的SQL指令,不能和其他语句共存在同一批
中,如Create Deafault、Create Rule、Create Procedure、
CreateTrigger、Create View。
不能在一个批中修改表的结构,然后在同一个批汇中
引用刚修改的表结构。
脚本是一系列顺序提交的批。一个脚本可以包含
一个或多个批,脚本中的GO命令标志一个批的结束。7.2 流程控制语句
1 BEGIN…END
2 IF…ELSE
3 WHILE、BREAK和CONTINUE
4 CASE
5 Goto
6
RETURN1 BEGIN…END
BEGIN…END可以将一组T-SQL语句作为一个单元
执行,关键字BEGIN定义T-SQL语句块的起始位置,关