数据不一致性

科技工作者之家 2020-11-17

数据不一致性,是指各类数据的矛盾性、不相容性。其一是由于数据冗余造成的,二是由于并发控制不当造成的,三是由于各种故障、错误造成的。

内容简介数据是对现实世界的描述,应该符合一定的语义规则和逻辑常识,但实际应用中,由于各种原因,有些数据违反了这样的语义规则,表现为数据值异常、不完整或相互矛盾,对于关系数据而言,还有实体异常(多条记录对应同一实体)、包含异常(多表之间记录不满足包含关系)等,所有这类“脏”数据我们称之为不一致数据。数据不一致性是指数据的矛盾性、不相容性。1

产生原因数据不一致性的原因主要有以下三种:一是由于数据冗余造成的;二是由于并发控制不当造成的;三是由于各种故障、错误造成的。

第一种情况的出现往往是由于重复存放的数据未能进行一致性地更新造成的。例如教师工资的调整,如果人事处的工资数据已经改动了,而财务处的工资数据未改变,就会产生矛盾的工资数。

第二种情况是由于多用户共享数据库,而更新操作未能保持同步进行而引起。例如,在飞机票订购系统中,如果不同的两个购票点同时查询某张机票的订购情况,而且分别为顾客订购了这张机票,就会造成一张机票分别卖给两名顾客的情况。这是由于系统没有进行并发控制,所以造成了数据的不一致性。

第三种情况下,当由于某种原因(如硬件故障或软件故障)而造成数据丢失或数据损坏,要根据各种数据库维护手段(如转存、日志等)和数据恢复措施将数据库恢复到某个正确的、完整的、一致性的状态下。1

分类数据集成系统中的数据不一致性主要来自两个层次,即数据本身的不一致性和模式匹配的不确定性。

在数据交换应用中,由于不同的应用对同一数据可能有着不同的要求,源数据的语义模型和目标数据的语义模型可能不一样,这就导致确定一致的源数据,可能因为违反了目标数据上的语义约束而不一致。

数据集成系统处理的数据多种多样,有些数据本身就不一致,例如通过信息抽取系统自动从文本或者半结构化的数据源中抽取的数据,由于抽取技术所限,这些数据通常不准确;还有一些数据是从在线数据源中抽取的,数据集成系统很难保证所抽取数据的可靠性和实时性。另外,即使单个数据源是确定的,当多个自治的数据源整合到一个数据中,由于相互冲突,或违反全局语义模型,而表现为不一致。1

实际举例数据不一致性存在于以下应用:

web信息抽取技术将网页中的非结构化数据或半结构化数据按照一定的需求抽取成结构化数据。这些结构化数据往往存储在后台数据库中,供用户查询以及进一步分析利用。但众所周知,internet具有开放性,不一致性,交互性,超时空性等特点。但正是因为互联网的这些特性,网页中的数据良莠不齐,存在着严重的不一致问题。

数据挖掘的目的是从大量纷繁复杂的原始数据中获取知识。原始数据的质量在很大程度上决定了数据挖掘的成功与否。当原始数据信息丰富、准确客观时,所获取的知识价值高;如果原始数据的质量不理想,例如字段值有误差或不一致,所获取的知识可能并无任何借鉴意义。数据挖掘中的数据往往来自多个系统,这些数据源本身可能存在一些缺失或错误等质量问题,集成到一起更可能相互矛盾。

因此,在实际应用中,一般开展数据挖掘前要进行数据清洗 (data cleaning)以梗填补遗漏数据、消除异常数据、平滑噪声数据,纠正不一致数据来提高数据质量。不一致数据的查询处理可以为数据挖掘的脏数据处理开拓新的解决思路。2

解决办法数据库系统考虑了各种破坏数据一致性的因素,并采取了一些相应的措施来维护数据库的一致性。例如提供了并发控制的手段,提供了存储、恢复、日志等功能。由于数据面向整个系统,是有结构的数据,不仅可以被多个应用共享使用,而且容易增加新的应用,这就使得数据库系统易于扩充,可以适应各种用户的要求。可以取整体数据的各种子集用于不同的应用系统,当应用需求改变或增加时,只要重新选取不同的子集或加上一部分数据便可以满足新的需求。

基于标记的查询回答不一致性被看作是数据的一个属性,并能使用标记符号加以说明,所有数据库及其查询回答的单元值上都可以附上0到多个标记,如果附上的符号数为0,那么该单元值是一致可信的,反之则不一致不可信。

聚类将数据集划分为聚类,然后通过聚类来表示数据集;1

如果数据可以组成各种不同的聚类,则技术非常有效,反之,如果数据界线模糊,则方法无效;

数据可以分层聚类,并存储在多层索引树中。3

本词条内容贡献者为:

杜强 - 高级工程师 - 中国科学院工程热物理研究所

科技工作者之家

科技工作者之家APP是专注科技人才,知识分享与人才交流的服务平台。