`
pcial
  • 浏览: 71574 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Informix数据一致性

阅读更多
http://www.chinaunix.net/jh/20/80413.html

如果说高可用性能保证系统级的完整性,那么数据的一致性是在事务级保证完整性。INFORMIX动态服务器通过事务日志和内部一致性检查、创建和加强封锁过程、隔离级别和业务规则来保证数据的一致性。


事务日志

如果一个操作不能完成,则已经完成的那部分事务必须从数据库中清除,以保持数据的一致性。为了清楚部分完成的事务,INFORMIX动态服务器在逻辑日志中对所有事务的历史记录进行维护,并以这些事务记录作为依据,将数据库恢复到事务之前的状态。


内部一致性检查

内部一致性检查为提醒管理员数据或系统的不一致状态而专门设计。INFORMIX动态服务器包含一个数据级的检查机制,它能够发现由于硬件或操作系统故障而引起的数据不一致。如果发现了不一致,该内部机制就自动向INFORMIX动态服务器消息日志发消息。

为了更好地确定不一致的原因,INFORMIX动态服务器管理员可以指导用户来设置一致性检查环境变量,这些变量产生诊断结果(例如,在不一致发生的共享内存中的内容),来帮助确定不一致发生的原因。

封锁和处理的独立性

为了保持数据的一致性,所需的另一个重要的功能是封锁过程和处理的独立性。这些安全性措施保护当前正在被访问或修改的数据不会被其它用户更改。 

封锁

数据库服务器引入封锁机制来防止错误的发生。锁是一个程序加在数据片断上的声明或限制。数据库服务器保证只要数据是被封锁的,其它任何数据库服务器进程都不能对其进行修改。当另一数据库服务器程序要求对该数据库进行修改时,数据库服务器使该程序要么等待,要么返回一个错误。

INFORMIX动态服务器还能防止死锁的发生。死锁是两个用户都封锁着另一个用户所等待得数据。例如,用户A封锁了一个元组,并且在用户A访问B所封锁的数据之前不会将其释放。INFORMIX动态服务器能立即检测到死锁的发生,并向第二个程序发出出错消息,以防止死锁状态的出现。 一个表或事务的吞吐量会受封锁策略的影响。使用排它锁对数据进行访问的应用会发现其它的数据库服务器进程都在花时间等待对数据进行访问。因此,INFORMIX动态服务器提供了几个不同级别的封锁。数据库服务器可以在单个记录、页面、表和数据库的级别上加锁。

在创建表和改变表结构时,可以指定记录和页面级别的封锁。在用户应用中可以指定表和数据库级别的封锁。


隔离级别

隔离级别是读操作独立于其它并发数据库服务进程的程度;其它进程可以对你正在读的记录进行什么修改,以及你可以对其它进程正在读或修改的哪些记录进行读操作。

隔离级别只能影响读操作,它们不作用于其它的语句,如插入,删除,更新等。INFORMIX动态服务器有四个隔离级别:脏读、提交读、游标的稳定性、以及重复读。

脏读是隔离级别中最简单的一个,它实际上根本没有提供任何独立性。当一个程序使用脏读来访问数据时,它不加锁。对于脏读,用户可以读任何数据,包括以提交的未提交的。

提交读保证INFORMIX动态服务器只能读提交给数据库的记录。在对记录进行访问之前,数据库服务器检查是否有更新进程给该记录加了锁。如果没有加锁,数据库服务器就对该数据进行访问。提交读保证数据库服务器不会读未提交的数据,因为在作了修改而又没有提交的记录上加了锁。

下一个隔离级别是游标的稳定性。使用游标的稳定性时,数据库服务器在所读的最新记录上加上锁。每次仅对一个记录加锁;每当读新的记录时,就将原来的锁释放。这个孤立级别保证程序在读的当前的记录不会被改变。

重复读保证在读操作过程中,所得到的结果与在该事务中其它时刻得到的结果是一致的。重复读不仅在所读的记录上加共享锁,而且还阻止其它用户违反数据库的读锁标准向数据库中增加记录或更新记录。


业务规则

业务规则能增强字段级的数据一致性,这些规则指定数据可能的值、列的缺省值,以及列与列之间的关系。 业务规则必须由对数据进行访问和操作的应用来限定。但是,INFORMIX动态服务器不依赖于应用来实现这些规则。实际上,INFORMIX动态服务器可以独立实现这些规则。责任的集中减轻了用户应用的负担,并保证了业务规则的继承性。

INFORMIX动态服务器支持完整性约束、存储过程和触发器,从而保证业务规则。


完整性约束

INFORMIX支持ANSI SQL的完整性约束,保证信息不会被不当地删除,插入的数据满足字段的特殊要求。INFORMIX动态服务器提供两种类型的完整性约束:参照完整性和实体完整性。

参照完整性允许用户定义和保证字段之间的关系。例如,INFORMIX动态服务器的参照完整性可以保证,对于主表中有关的一个实体的信息,如果在子表中存在相应的信息的话,那么主表信息不会被删除。这就保证不会在某客户的订单存在的情况下将该客户删除。

实体完整性为特定字段规定合法取值范围。这样的检查允许DBA对所允许的值的范围作出规定。缺省值允许用户指定符合字段数据类型的任何智值作为缺省值。

存储过程 存储过程是以命名过程的形式存储在数据库中的SQL命令和编程语句,以保证常用操作的一致实现。存储过程在数据库中,而不是在应用程序中对常用的优化过的应用例程进行维护。 存储过程减少数据库操作所需要的网络流量。因为存储过程可在一个命令中处理多个任务(如插入、更新和删除)。在处理请求之后,存储过程仅返回满足条件的结果,而不是每一个查询结果的集合。


触发器

触发器是唤醒存储过程的另一种方法。与应用程序调用存储过程来实现业务规则的方法不同,触发器可以被定义为:在需要进行插入、删除、和更新的时候,启动数据库服务器自动执行存储过程(或SQL语句)。

由于触发器是存储在系统数据字典中的,因此不需要应用程序来完成维护触发器代码。同样,由于无法绕过触发器,所以跨所有事务的完整性约束也得到了保证。
分享到:
评论

相关推荐

    Informix数据相关资料

    Informix支持ACID(原子性、一致性、隔离性和持久性)事务特性,确保了数据的一致性和完整性。它提供了多种事务隔离级别,以满足不同级别的并发控制需求。 **五、复制与高可用性** Informix提供了多种复制解决方案...

    Informix数据装卸技术

    ### Informix数据装卸技术详解 #### 一、概述 Informix数据装卸技术是IBM Informix数据库管理系统中的一个重要组成部分,主要用于实现数据的批量导入导出功能。这些技术包括unload/load、unonload/unonload、...

    IBM_Informix用户定义的例程与数据类型开发者指南.pdf

    - **数据验证**: 分析如何利用UDRs进行数据验证,确保数据的完整性和一致性。 #### 6. 最佳实践 - **代码复用**: 鼓励通过UDRs和UDTs实现代码复用,减少重复代码,提高开发效率。 - **模块化设计**: 建议将复杂的...

    informix学习使用手册

    读者将学习如何通过规范化理论优化数据库设计,减少数据冗余和提高数据一致性。 五、Informix性能优化 Informix提供了多种性能优化工具和技术,包括查询优化器、索引策略、内存管理和统计信息收集。这部分内容将...

    Informix数据装卸技术PPT教案.pptx

    这样确保了数据的完整性和一致性。 unload操作具有较高的灵活性,可以选择导出单个或多个表的部分或全部字段,甚至记录。其输出格式为ASCII文件,列之间由用户定义的分隔符隔开。在数据安全方面,unload在非日志...

    informix考题informix考题

    Informix支持ACID(原子性、一致性、隔离性和持久性)事务特性,确保了数据的一致性和完整性。其多版本并发控制(MVCC)机制,使得在高并发环境下也能实现高效且一致的数据操作。 五、Informix性能优化 Informix提供...

    informix 12.1官方指南(中文)

    5. **事务处理与并发控制**:讲解Informix的事务管理机制,包括ACID属性、锁机制和并发控制策略,确保数据的一致性和完整性。 6. **备份与恢复**:提供Informix的备份策略和恢复技术,包括增量备份、完整备份和热...

    基于Informix+External+Table实现数据快速加载

    - **在线增量数据加载**:在不影响现有业务的情况下,将增量数据实时加载入库,保证数据的时效性和一致性。 - **数据迁移与整合**:跨系统间的数据迁移,或者将异构数据源整合至Informix数据库中。 ### 实践案例与...

    Informix_Quick_Start_ Guide_v1210_informix_Quick_

    在事务处理方面,Informix提供了ACID(原子性、一致性、隔离性和持久性)特性,确保了数据的一致性和完整性。指南会解释如何在Informix中启动和提交事务,以及如何处理回滚和并发控制。 高可用性和灾难恢复也是...

    informix9.3升级到informix9.4

    在执行升级前的备份和一致性检查是至关重要的,因为这些步骤能够防止因升级过程中出现的任何问题导致的数据丢失。在升级后,验证新数据库的正确性和功能是必要的,以确保业务不受影响。整个过程中,与开发部门的紧密...

    Informix原理及管理技术

    它支持事务处理,确保数据的一致性和完整性。同时,Informix使用B树结构的索引来加速查询,通过分区和索引策略优化查询性能。 3. **数据存储**:Informix的数据存储机制包括表空间、卷和数据页等概念。表空间是逻辑...

    Informix11.5认证教程

    了解 Informix 中的事务概念,包括事务的ACID属性(原子性、一致性、隔离性和持久性)。学习事务的提交、回滚和保存点操作,以及并发控制机制如锁定和多版本并发控制(MVCC)。 6. **数据库设计与优化** 学习如何...

    INFORMIX_基础.pdf

    - **数据一致性**:确保数据的准确性和完整性。 - **存储过程**:预编译的SQL代码块,可提高执行效率。 - **触发器**:自动执行的SQL代码,通常用于响应特定事件。 - **磁盘原始分区管理**:优化磁盘空间管理。 ...

    informix 数据库培训文档和学习资料

    文档会介绍如何在Informix中处理事务,确保数据的一致性和完整性。 **5. 性能优化** Informix提供了多种性能优化技术,如索引、分区、查询优化器等。学习这些技术可以帮助提升数据库的运行效率,降低响应时间。 **...

    informix数据库连接驱动jar包

    XA接口允许应用程序协调跨多个资源管理器(如数据库、消息队列等)的事务,确保数据的一致性和完整性。在分布式环境中,ifxjdbcx.jar是必不可少的。 3. ifxlang.jar:这个文件包含Informix特定的本地化和语言支持,...

    oracle到informix数据库移植研究

    日期字段的处理尤为棘手,Oracle的`DATE`类型与Informix的`DATETIME`或`DATE`类型在精度上有所不同,需通过调整NLS_DATE_FORMAT参数,统一日期格式,以确保数据一致性。 #### 结论与展望 Oracle到Informix的数据...

    INFORMIX数据库操作及SQL语法

    - **数据完整性**:通过定义约束条件来保证数据的一致性和准确性。 ###### 2.2.5 数据库系统的历史 从最初的层次模型、网状模型发展到现在的关系模型,数据库技术经历了多次变革和发展。 ###### 2.2.6 数据库系统...

    informix管理员指南

    此外,还会涉及Informix的集群解决方案,如Informix Data Replication Server(IDRS)和Informix Global Transaction Manager(GTM),它们能提供跨地域的数据一致性保证。 此外,手册还将涵盖Informix的开发和集成...

    数据转换(oracle,mysql,informix,sqlserver)(函数,处理过程)

    数据转换在IT行业中扮演着至关重要的角色,尤其是在数据库管理和数据迁移的过程中。...在实际应用中,还需要考虑性能优化、错误处理以及数据一致性验证等多方面因素,以确保数据转换过程的顺利进行。

    IBM Informix 11.5 备份与恢复指南

    1. **完全备份+日志备份**:适用于对数据一致性要求较高的场景。先执行一次完全备份,之后只需定期备份日志文件即可保持数据的完整性。 2. **增量备份+日志备份**:结合使用增量备份和日志备份可以在减少备份时间的...

Global site tag (gtag.js) - Google Analytics