数据库的并发控制技术

数据库的并发控制技术

ID:35546604

大小:62.16 KB

页数:4页

时间:2019-03-26

数据库的并发控制技术_第1页
数据库的并发控制技术_第2页
数据库的并发控制技术_第3页
数据库的并发控制技术_第4页
资源描述:

《数据库的并发控制技术》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第四节数据库的并发控制技术数据库是一个共享资源,可以供许多用户使用。各个用户程序(通常为一个事务)可以一个一个地串行执行,即每个时刻只有一个用户程序运行,执行数据库的存取操作,其它用户程序必须等到这个用户程序结束后方能对数据库存取。但是,由于用户程序在执行过程中随着时间的不同需要不同的资源,有时需要CPU,有时需要访问磁盘,有时需要I/O,有时需要通讯等,如果只让一个用户程序运行,而其它用户闲置等待,则导致许多系统资源在大部分时间内处于闲置状态。因此,为了充分利用系统资源,发挥数据库共享资源的特点,应该允许各个用户并行地存取数据。但这样就会产生多个用户程序并发存取同一数据的情况。若对并

2、发操作不加控制就可能导致存取和存储不正确的数据,从而破坏数据库的一致性。所以DBMS必须提供并发控制机制,且并发控制机制的好坏是衡量一个DBMS性能的重要指标之一。一.事务及其特性DBMS的并发控制是以事务(transaction)为单位进行的,因此,本节先介绍事务的概念及其特性。在多用户环境中用户程序不断访问数据库中的数据,构成了若干操作序列,在这些操作序列中,有些操作必须作为一个整体来执行,这些作为一个整体来执行的操作序列称为一个事务(Transaction)。即事务是用户定义的一组操作序列的集合,是数据恢复和并发控制的基本单位。数据库系统在执行事务时,要么执行事务中全部操作,要么

3、一个操作都不执行。一个应用程序往往由若干个独立的事务组成。在应用程序中,事务的开始与结束可以由用户显示地控制。如果用户没有显示地定义事务,则由DBMS自动地按照缺省方式划分事务。在SQL中,用户显示定义事务的语句有如下3条:1、BEGINTRANSACTION,该语句显示地定义一个事务的开始。2、COMMIT,该语句显示地提交一个事务,并表示该事务已正常结束。3、ROLLBACK,该语句显示地回滚一个事务,且表示事务因执行失败而结束。所谓提交事务,就是将该事务对数据库的所有更新操作结果永久地保存到磁盘上的物理数据库中去。所谓回滚事务,就是撤消该事务对数据库的所有更新操作,使数据库恢复到

4、该事务开始时的状态。由以上可知,用户若要显示地定义事务,必须以BEGINTRANSATION开始,而以COMMIT或ROLLBACK结束。事务具有四个特性,即原子性、一致性、隔离性和持续性,又常简称为ACID特性:1、原子性:即一个事务是不可分割的数据库逻辑工作单位。2、一致性:事务的执行结果必须使数据库从一个一致性状态变到另一个一致性状态。3、隔离性:一个事务的执行不能被其它事务干扰。4、持续性:持续性也称为永久性,指一个事务一旦提交,它对数据库中数据的改变应该是永久性的,其它操作或故障不对其产生任何影响。二.数据库的并发控制DBMS的并发控制是以事务为单位进行的。数据库在执行事务时

5、,要么执行事务中的全部操作,要么一个操作都不执行。当有多个事务对数据库进行操作时,如果对数据库进行操作的各个事务按顺序执行,即一个事务执行完全结束后,另一个事务才开始,则称这种执行方式为串行访问(Serialaccess)。如果DBMS可以同时接纳多个事务,事务可以在时间上重叠执行,则称这种执行方式为并发访问(Concurrentaccess)。在单CPU系统中,同一时间只能有一个事务占用CPU,若各个事务交叉使用CPU,则称这种并发方式为交叉并发。在多CPU系统中,可以允许多个事务同时占用CPU,这种并发方式称为同时并发。三.并发的目的在数据库管理系统中对事务采用并发机制的主要目的有

6、两个:1、改善系统的资源利用率对于一个事务来讲,在不同的执行阶段需要的资源不同,有时需要CPU,有时需要访问磁盘,有时需要I/O、有时需要通信如果事务串行执行,有些资源可能会空闲;如果事务并发执行,则可以交叉利用这些资源,有利于提高系统资源的利用率2、改善短事务的响应时间设有两个事务T1和T2,其中T1是长事务,交付系统在先;T2是短事务,交付系统比T1稍后。如果串行执行,则须等T1执行完毕后才能执行T2。而T2的响应时间会很长。一个长事务的响应时间长一些还可以得到用户的理解,而一个短事务的响应时间过长,用户一般难以接受。如果T1和T2并发执行,则T2可以和T1重叠执行,可以较快地结束

7、,明显地改善其响应时间。四.并发所引起的问题数据库中的数据是共享的,即多个用户可以同时使用数据库中的数据,这就是并发操作。但是当多个用户存取同一组数据时,由于相互的干扰和影响,并发操作可能引发错误的结果,从而导致数据的不一致性问题我们将用下面的例子予以说明。例5.5设有一个飞机机票订票系统,考虑如下售票活动的并发操作问题:1、售票员A通过网络在数据库中读出某航班的机票余额为y张,设y=15;2、售票员B通过网络在数据库中读出某航班的机票余额为y

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。