论文部分内容阅读
随着大数据时代的到来,越来越多数据的涌现,电脑需要处理的数据成几何倍数增长,特别是在人工智能盛行的今天,一切的算法都离不开数据的支持,数据的重要性可见一斑,同时数据的管理与存储也扮演着越来越重要的角色。数据库作为主要的数据管理软件,为当今的计算机信息技术的发展提供最基本也是最重要的底层支持。同时,大量的数据库研究者提出了一系列的理论为数据存储与管理提供重要的支持,尤其是Codd提出的实体完整性准则[19],它保障了数据被唯一性的标识。Codd的实体完整性规则规定了每个数据库表都必须存在主键(Primary Key)。更进一步地说,在具有主键属性的列上的数据必须确保唯一性和非空性,即每个主键属性上的数据必须是唯一的,并且不能存在空值。但是由于大数据时代的到来,大规模的数据如雨后春笋般涌现出来,庞大的数据不再依靠人工存入到数据库中,数据的“纯净度”很难保证。因而,在实际的数据库中往往存在大量的空值,Codd的实体完整性准则对于这种情况来说并不适用,传统的主键并不能应对这种情况。为了解决这个问题,Thalheim提出了Key Set来解决在非完全数据关系中的实体完整性保障[8],并且在具有大量缺失值的数据库表上,Key Set可以实现通用的实体完整性规则。具体来说,Key Set可以通过其中某一个密钥(Key)上的唯一非空值来区分不同的数据。虽然主键是关系数据库的核心功能,但是Key Set将在大数据时代的商业数据库上发挥出其巨大的优势,特别是在实际出现的大规模非完全数据关系中。本文主要着手于以下三个方面:(1)首先,本文将致力于关系数据库中的Key Set验证,目标之一是专注于数据库系统中Key Set的实际可用性研究。在给定的非完全数据关系中,Key Set的使用的前提是需要数据库管理员具有能够识别那些有意义的Key Set的能力,以及在数据库的生命周期内有效地验证这些Key Set的能力。为此,在SQL数据库中,我们首次分析了Key Set验证过程的相关性能,为在商业上的使用提供进一步的理论与实践上的支持。同时,为了帮助数据库管理者设计出更加高效的Key Set,本文通过具体的实验来研究Key Set的特征与真实世界数据集在Key Set的“满足度”之间的内在联系。换句话说,即怎样的Key Set能更好的唯一性约束一个给定的非完全数据关系。(2)其次,为了使数据库管理员在未来大规模非完全数据关系上高效的使用Key Set,本文继续着手于Key Set验证的优化问题,提出了一种新颖而高效的快速过滤算法,该算法旨在加速解决非完全关系上的Key Set的验证问题。为了对比快速过滤算法的高效性,本文与按照定义进行验证的蛮力算法进行了比较,同时在八个真实世界的数据集进行了测试,根据实验结果,本文提出的快速过滤算法在验证效率上完全领先于蛮力算法。(3)Armstrong关系(Armstrong Relation)作为一个完美的数据模型,有且仅满足给定函数依赖及其闭包,它可以帮助数据库管理人员设计出合适的Key Set。在给定关系模式下,Armstrong关系为识别Key Set提供了计算支持。因此,研究基于Key Set上的Armstrong关系的构建具有特别重要的意义。本文基于Key Set来研究Armstrong关系的构建问题,为Armstrong关系在未来商业上使用的可能性提供了实验论证。更确切地说,通过任意Key Set集合来构建最小Armstrong关系,总结其所需的时间以及得到的关系的规模,以此来进一步研究随着关系模式的增大,新生成的最小Armstrong关系在这两方面的发展趋势,从而判定是否存在实际的实用价值。