数据是对现实世界的描述,应该符合一定的语义规则和逻辑常识,但实际应用中,由于各种原因,有些数据违反了这样的语义规则,表现为数据值异常、不完整或相互矛盾,对于关系数据而言,还有实体异常(多条记录对应同一实体)、包含异常(多表之间记录不满足包含关系)等,所有这类“脏”数据我们称之为不一致数据。数据不一致性是指数据的矛盾性、不相容性。
第一种情况的出现往往是由于重复存放的数据未能进行一致性地更新造成的。例如教师工资的调整,如果人事处的工资数据已经改动了,而财务处的工资数据未改变,就会产生矛盾的工资数。
第二种情况是由于多用户共享数据库,而更新操作未能保持同步进行而引起。例如,在飞机票订购系统中,如果不同的两个购票点同时查询某张机票的订购情况,而且分别为顾客订购了这张机票,就会造成一张机票分别卖给两名顾客的情况。这是由于系统没有进行
并发控制,所以造成了数据的不一致性。
因此,在实际应用中,一般开展数据挖掘前要进行数据清洗 (data cleaning)以梗填补遗漏数据、消除异常数据、平滑噪声数据,纠正不一致数据来提高数据质量。不一致数据的查询处理可以为数据挖掘的脏数据处理开拓新的解决思路。
考虑了各种破坏
数据一致性的因素,并采取了一些相应的措施来维护数据库的一致性。例如提供了
并发控制的手段,提供了存储、恢复、日志等功能。由于数据面向整个系统,是有结构的数据,不仅可以被多个应用共享使用,而且容易增加新的应用,这就使得
数据库系统易于扩充,可以适应各种用户的要求。可以取整体数据的各种子集用于不同的应用系统,当应用需求改变或增加时,只要重新选取不同的子集或加上一部分数据便可以满足新的需求。
不一致性被看作是
数据的一个属性,并能使用标记符号加以说明,所有数据库及其查询回答的单元值上都可以附上0到多个标记,如果附上的符号数为0,那么该单元值是一致可信的,反之则不一致不可信。