论文部分内容阅读
信息系统中往往存在各种各样的数据形式,例如以关系型数据格式在数据库中进行存储、以XML格式在Web上进行发布和交换等。不同格式之间的数据转换是实现信息交换、信息迁移和信息共享等的一个必要手段。数据转换过程中一个基本要求是要实现信息无丢失,也即信息的无损转换。本文针对信息无损数据转换的模型、测试和判定问题进行研究。
模型方面,提出一个描述数据转换的抽象模型,该模型包括源/目标数据类型定义和数据转换函数定义。本文考虑两种信息无损:完全的和部分的。前者要求源数据中的全部信息没有丢失,后者允许用户指定源数据中的部分信息,要求这一部分信息在转换后是无损的。我们使用“数据可逆”和“相对数据可逆”的概念来分别刻画完全的和部分的信息无损。
测试问题分为两部分:数据类型定义的测试和转换函数定义的测试。针对通用模型,本文采取一种基于文法的测试方法。具体来讲,将数据类型测试转化为文法测试;相应地,利用文法的句子生成算法生成测试数据用于对转换函数的测试。文法测试方面,提出一个系统的测试框架,引入模块测试和集成测试的概念;从文法的句子识别器角度和句子生成器角度,提出两个测试活动来完成文法测试。测试数据生成方面,提出两个句子生成算法:一个基于文法的规则覆盖准则,一个基于分支覆盖准则。算法的基本思想是在满足文法覆盖准则的前提下,使得生成的句子尽量短小简单,以方便测试人员计算预期输出、执行测试和错误定位等。我们对文法测试框架和句子生成算法进行了实现和实验,验证了其有效性。
本文对关系型数据上信息无损判定问题进行了深入研究,考虑当数据转换函数和部分信息选择函数使用不同的关系查询语言表达时,问题的判定性和复杂度。首先证明出部分信息无损问题与视图确定性问题等价,在后者已有结果的基础上,推导出完全信息无损和部分信息无损不可判定的情况。除此之外,证明出下面几种情况下问题的判定性和复杂度:(1)当查询语言是Datalog时;(2)当查询语言是一元模式上的合取查询时;(3)当查询语言是由关系代数{选择,投影,乘积}操作中任意两种操作构成的合取查询子类时。本文同时对XML数据上的判定问题做了初步探索。首先,对于表达能力比较强的XML查询语言,得出不可判定的结论;其次,针对XPath的一个子类XP{/,//,(D),(*)},证明出在没有DTD限制的情况下,完全信息无损问题属于P类问题,部分信息无损问题是coNP难的,并给出该问题的一些必要条件。