数据库基本特性
1.数据库错误读
脏读(Dirty Read):脏读意味着一个事务读取了另一个事务未提交的数据,而这个数据是有可能回滚。
不可重复读(Unrepeatable Read):不可重复读意味着,在数据库访问中,一个事务范围内两个相同的查询却返回了不同数据。这是由于查询时系统中其他事务修改的提交而引起的。例如:事务B中对某个查询执行两次,当第一次执行完时,事务A对其数据进行了修改。事务B中再次查询时,数据发生了改变。
幻读(phantom read):幻读,是指当事务不是独立执行时发生的一种现象。例如第一个事务对一个表中的数据进行了修改,这种修改涉及到表中的全部数据行。同时,第二个事务也修改这个表中的数据,这种修改是向表中插入一行新数据。那么,以后就会发生操作第一个事务的用户发现表中还有没有修改的数据行,就好象发生了幻觉一样。
2.数据库四大特性(ACID)
原子性(Atomicity):事务中包含的程序作为数据库的逻辑工作单位,它所做的对数据修改操作要么全部执行,要么完全不执行。
一致性(consistency):在事物开始以前,数据库处于一致性的状态,事物结束后,数据库也必须处于一致性的状态。
隔离性(Isolation):分离性指并发的事务是相互隔离的。即一个事务内部的操作及正在操作的数据必须封锁起来,不被其它企图进行修改的事务看到。
持久性(Durability):一个事务一旦成功完成,它对数据库的改变必须是永久的,即使是在系统遇到故障的情况下也不会丢失。对已提交事务的更新能恢复。持久性通过数据库备份和恢复来保证。
3.数据库三大参照完整性
域完整性:域完整性是对数据表中字段属性的约束,通常指数据的有效性,它包括字段的值域、字段的类型及字段的有效规则等约束,它是由确定关系结构时所定义的字段的属性决定的。限制数据类型,缺省值,规则,约束,是否可以为空,域完整性可以确保不会输入无效的值。
实体完整性:实体完整性是对关系中的记录唯一性,也就是主键的约束。准确地说,实体完整性是指关系中的主属性值不能为Null且不能有相同值。定义表中的所有行能唯一的标识,一般用主键,唯一索引 unique关键字,及identity属性。
参照完整性:参照完整性是对关系数据库中建立关联关系的数据表间数据参照引用的约束,也就是对外键的约束。准确地说,参照完整性是指关系中的外键必须是另一个关系的主键有效值,或者是NULL。参考完整性维护表间数据的有效性,完整性,通常通过建立外部键联系另一表的主键实现,还可以用触发器来维护参考完整性。
4.事务的隔离级别
隔离级别越高,越能保证数据的完整性和一致性,但是对并发性能的影响也越大。
版权声明:本文为博主原创文章,未经博主允许不得转载。
posted on 2015-07-18 22:19 GatsbyNewton 阅读(407) 评论(0) 编辑 收藏 举报