论文部分内容阅读
当前的DBMS只能处理精确的查询,对于自然语言表述的模糊查询条件无能为力,也无法体现用户对查询中不同条件的重视程度。要实现数据库的模糊查询主要有两种途径:一是直接建立模糊的数据库系统;二是对现有的数据库查询语言进行扩展。现有的数据库系统多为关系型的,显然对已有的数据库查询语言进行扩展比直接建立模糊数据库更为现实。所以本文以模糊集合理论为基础,对现有的SQL语言进行了扩展,使其能处理某些模糊的查询条件。本文在模糊查询中引入了权重的概念,用来表示查询中各个条件的相对重要程度,反应它们对查询的不同影响程度。本文主要针对SQL语言的SELECT语句进行了模糊扩展,实现了带权重的模糊简单查询、复合查询、多表查询、子查询、全关系查询等。详细讨论了带权重的模糊SQL语句的去模糊机制,实现了利用现有的DBMS来处理模糊查询。研究了权重、阈值和匹配度之间的关系,提出了避免查询结果为空集或全集的方法,使得查询更加人性化。同时讨论了模糊查询中投影运算的问题,提出了按最大匹配度原则去除查询结果中的副本的方法。本文设计实现的通用模糊查询系统以Microsoft SQL Server 2000为底层DBMS,类似于一个接口,能把用户提出的带权重的模糊查询条件转换为SQL Server能编译执行的精确SQL语句。本系统能对用户在SQL Server中建立的任何数据库表实现模糊查询,主要提供了以下功能:为数值型字段的语言值属性定义隶属函数;自定义模糊算子;构造模糊的、精确的或混合型的查询条件,为查询条件设置阈值和权重;对于满足条件的记录按照匹配度的高低降序输出。该系统的设计理念可以推广到其他的DBMS,如Oracle、Access中,具有较高的实用价值。