SQL数据库中并发控制的方法初探
2017-03-08于雷
于 雷
(吉林广播电视大学,长春 130022)
SQL数据库中并发控制的方法初探
于 雷
(吉林广播电视大学,长春 130022)
随着信息科学技术的快速发展,信息化的普及和互联网的发展变得越来越快,与此同时,用户量也在逐年增加,数据访问的并发性要求也越来越高,研究了SQL数据库中的并发控制方法,结合一些经典案例给出了解决方法。
SQL数据库;并发控制;控制方法
随着信息化社会的发展,互联网等信息技术飞速发展,用户越来越多,对SQL数据库中的并发性要求也越来越多。在日常生活中,每天对数据的访问是比较频繁的,数据在使用时还要实现多用户共享,这就要求数据库中的并发控制方法和机制处于一个最好的状态,以保证数据的完整不流失,防止数据库在运行时出现错误。数据库中的并发控制机制是衡量数据库某些性能的重要指标,笔者重点分析了数据库中的并发控制方法。
1 并发控制概述
1.1 并发的定义
并行性指的是两个或两个以上的事件或活动在同一时刻发生。在多道程序环境下,并行性使多个程序同一时刻在不同CPU上同时执行,并且也能考验系统同时操作和共享数据的能力。与此同时,用户进程数量越多,说明数据库的并发性越好。并发控制是数据库通过自己的管理方式保证用户在访问数据的过程中,数据不会被轻易修改和添加,这样一方面是为了保障数据的安全,另一方面是防止数据不一致的危险发生。如果一味地放纵这些进程运行,就会给数据库的安全性带来极大的威胁。
1.2 事务概念
事务,一般是指要做的或所做的事情。在计算机术语中是指访问并可能更新数据库中各种数据项的一个程序执行单元。事务的组成是从事务开始到结束的全部进程,因此,事务访问数据的基本单元就是逻辑单位,且其操作序列也是固定的,但是却可以实现特有的业务功能。事务有以下功能:第一,原子性。在事务的操作过程中,只会出现全部反映和全部不反映。第二,一致性。事务在执行各项操作时,使数据库数据保持一致性。第三,隔离性。虽然事务的执行是并发执行,但是在数据库的操作中是不会感觉出来其他事务也在同时执行。第四,持久性。事务的各项操作在执行以后,数据库数据可以永久保存,这称为事务的持久性。
在数据库不出现故障的情况下,所有的事务都能并发执行和完成。在数据库的运行中,必须做到定时定期的更新,这样才能保证事务的完整执行和数据库的完整运行。
1.3 并发产生的问题
在研究中发现,并发会带来许多问题。第一,脏读。一般来说,系统在读取未提交的数据时,第一个事务会对其进行修改,第二个事务就会尝试读物数据,这样就会造成第二个事务读取的数据与第一次读取的数据不一样。例如:我们在对文本进行编辑时,第一个人存储原始数据,一旦出现第一个人不满意该文本进行新一次编辑以后,第二个人存取的就是脏数据。第二,不可重复读。在事务执行的过程中,经常会出现事务读取同一条指令而结果不一样,这是因为事务读取数据以后,会有一项新的事务对该数据进行修改,并且指令在被事务读取以后不会再被二次读取。第三,丢失更新。当两个或多个事务选择同一行,然后基于最初选定的值更新该行时,只有最后一次更新有效,之前的更新将被覆盖。每个事务都不知道其他事务的存在,最后的更新将重新由其他事务更新,这将导致数据丢失。第四,幻想读。在一定范围内对事务进行操作时,而另一个事务对该范围内的行执行不兼容操作时,将会出现幻想读。例如:在某一文本进行删除或插入操作时,而这一编辑内容不属于该事务的读取范围,这就非常容易出现幻想读问题。
2 并发控制机制分析——锁机制
在数据库的并发控制中,最主要的方式是封锁,而我们在进行这项操作时,事务的执行过程还不能受其他无关事务的影响,否则就会出现数据的不一致。
在我们使用的SQL数据库中,所有的并发控制方式都是锁机制。所谓的锁机制就是SQL数据库在接受到相关的请求后,系统会根据请求的类型添加锁机制,这样就能很好的防止系统内资源的不兼容锁,在最大程度上保持数据的完整性和一致性。虽然这个机制能够很好的保证数据库的并发控制,但是该机制最大的缺陷是容易造成阻塞,尤其是在频繁操作以后,特别容易出现此类问题,导致数据冲突,不能更好地保证数据的一致性。
2.1 锁模式
SQL数据库在给指令加锁时,会根据资源指令的类型不同添加不同类型的锁,这些不同类型的锁就成为锁模式。在SQL数据库中主要有以下几种锁模式:
第一,共享锁。共享锁在学术界又被成为读锁,其主要的作用是防止事务在读取数据时修改数据,并能很好的实现资源的共享。第二,更新锁。这类锁主要应用于更新资源,同时可以防止资源在更新的过程中被事务修改,如果一旦出现死锁,就需要使用另一项请求进行资源的更新。第三,意向锁。根据用户资源级别的不同,数据库在进行资源的存储时,按资源的优先级添加意向锁。第四,架构锁。当更新对象架构时获取架构锁。第五,键范围锁。用于保护某一范围,用于可串行化隔离级别,以防止幻读。
2.2 封锁的粒度
在数据库系统里面,封锁对象的大小被称为封锁粒度。在封锁的时,封锁的对象既可以是逻辑单元,也可以是物理单元。我们最经常使用的SQL数据库,封锁的对象一般都是属性值、关系和索引项等。其主要目的是为了保证数据库中并发控制方法的运行。
2.3 隔离级别
隔离级别是用于决定控制并发用户读写数据的操作。读操作可以是任何检索书库的语句,默认使用共享锁,写操作是指任何对表做出修改的语句,需要使用排他锁。对于操作获得的锁,以及锁的持续时间来说,虽然不能控制写操作的处理方式,但可以控制读操作的处理方式。当然,作为对读操作的行为进行控制的一种结果,也将隐含地影响写操作的行为方式。可以在会话级别上用会话选项来设置隔离级别,也可以在查询级别上用表提示(table hint)来设置隔离级别。
2.4 SQL数据库中的新特性
在使用的SQL数据库中,出现了一项版本控制的技术,这项技术的出现使事务在对数据进行修改之前可自行进行备份,这就在很大程度上保证了数据库中数据的完整性和一致性。
3 结语
在信息科学技术快速发展的今天,在我们不断的努力中,SQL数据库中的并发控制研究已经取得很大进展,但是针对如何实现数据库的并发控制和健康运行仍有许多需要解决的问题。本文就数据库的有关概念进行了分析,就数据库的并发控制方法进行了研究。
[1] 谭玲丽.数据库SQL查询优化方法的研究[J].信息化建设,2015,(11):115-116.
[2] 郝颖.ASP连接SQL Server数据库的方法与技巧的研究[J].科教导刊(电子版),2015,(03):156.
[3] 朱玛.基于InSQL数据库的航天器遥测数据存储方法研究[J].电子技术与软件工程,2015,(17):194-195.
[4] 王睿.SQLServer2005中的数据定时统计方法研究[J].中国高新技术企业,2016,(17):21-23.
[5] 奚宝玲.基于中等职业学校《SQL Server数据库》教学方法研究[J].电脑迷,2017,(04):65-66.
ThemethodofconcurrentcontrolinSQLdatabase
YU Lei
(Jilin Radio and Television University, Changchun 130022, China)
With the rapid development of information science and technology, the popularization of information technology and the development of the Internet have become faster and faster. At the same time, the number of users has also increased year by year, and the concurrency requirements of data access have become higher and higher. The concurrency control method in the SQL database was researched combining with some classic cases.
SQL database; Concurrency control; Control method
TP311.13
A
1674-8646(2017)20-0154-02
2017-08-16
于雷(1987-),男(满族),助教,硕士研究生。