数据库关键字查询技术研究
2014-03-07杨芳萍
杨芳萍
摘 要:随着互联网技术与数据库技术的不断发展和相互结合,越来越多的用户需要访问在线数据库来获取各种信息,在该过程中,用户要对数据库中的数据进行查询。因此,用户就必需要掌握一定的结构化查询语言SQL,而且还要对数据库模式有一个认识和了解。但事实上,多数用户并不会使用结构化查询语言,也不了解数据库模式。所以,便产生了一个很自然的用户需求——数据库支持基于关键字的查询,文章主要就是对数据库支持基于关键字的查询进行简要的分析和探讨。
关键字:查询;SQL;模式图;关键字;简化子树
中图分类号:TP311 文献标志码:A 文章编号:2095-1302(2014)02-0078-02
0 引 言
在计算机应用领域中,由专业人员实现对数据库查询的编程技术,我们就以关系数据库进行数据处理来举例说明,大多数情况下都使用结构化查询语言SQL(Structured Query Language)语言,SQL语言是一种在关系数据库中定义和操纵数据的标准语言,其最主要、最核心的部分就是查询功能。当针对某一个数据库执行查询时,系统按照特定的组合、条件表达式或次序进行检索,依此用来返回我们所要寻找和感兴趣的数据信息。
1 查询举例
设有一个SPJ数据库,包括S、P、J、SPJ四个数据表,S供应商表由SNO(供应商代码)、SNAME(供应商姓名)、STATUE(供应商状态)和CITY(供应商所在城市)组成;P零件表由PNO(零件代码)、PNAME(零件名)、COLOR(颜色)和WEIGHT(重量)组成;J工程项目表由JNO(工程项目代码)、JNAME(工程项目名)和CITY(工程项目所在城市)组成;SPJ供应情况表SNO(供应商代码)、PNO(零件代码)、JNO(工程项目代码)和QTY(供应数量)组成。如果想要找到“没有使用天津供应商生产的红色零件的工程号JNO”的数据信息,那么,可以使用以下一种SQl语句来实现查询:
SELECT JNO
FROM J
WHERE NOT EXISTS
(SELECT *
FROM SPJ
WHERE SPJ. JNO= J .JNO
AND SNO IN
(SELECT SNO
FROM S
WHERE CITY= ‘天津)
AND PNO IN
(SELECT PNO
FROM P
WHERE COLOR = ‘红色));
从上面的例子中可知,若用户要在线访问数据库,就必须使用SQL语句在数据库上查询,那么该系统就要求用户了解数据库模式的基本知识,而且还要求用户能够熟练、灵活的使用SQL语句。但在实际的操作过程中,我们发现大多数用户对关系数据库基本不了解,更谈不上熟练地使用结构化查询语言SQL等知识,所以,该SQL查询不适合广大用户。随着互联网技术的不断发展,出现了以关键字查询的数据库技术。尽管数据库关键字的查询研究有很多代表性成果,但其查询的核心思想都是基于图和“简化子树”的,所有的关键字查询技术的研究都是从数据图中找到最好的查询结果树。
2 核心思想
2.1 关键字查询
一个关键字查询其实就是一个集合K,其查询结果就是一个给定的数据图G的一个子树T,那么T就是给定集合K的简化形式,简而言之,T包含了K,但不会有T的子树包含K。 所有的关键字查询技术都是把我们定义好的关系数据库当做一个数据图G,图G的节点是以元祖、关键字表示的。在我们进行查询时,不同元祖间的连接是通过外键实现,所以在它们之间就有一条边存在。若一条元祖t有关键字k,那么t和k间就有连接存在。所以,一个关键字查询的结果其实就是一个图G的子树,该子树是图G关于关键字K的简化,也就是简化子树。简化子树的生成主要有两种方法:“基于数据图的方法”和“基于模式图的方法”。
2.2 基于数据图的方法
数据库关键字查询技术的大多数研究都是采用了基于数据图的方法来生成简化子树。这种方法就是对数据图直接处理,从中枚举简化子树,首先,把数据图看成一个带权重的数据图,并且假设数据图已经被物化;其次,利用数据图中的节点(元组)和边(元组之间的主外键关联)的权重,作为关键字查询找到top-k个代价最小的简化子树。
2.3 基于模式图的方法
利用数据库模式创建连接表达式,再在DBMS上执行连接表达式对应的SQL语句得到结果,具体的步骤为:第一步,枚举所有可能包含查询结果的连接表达式,在枚举连接表达式时会对该表达式的尺寸做一个限制。若表达式尺寸太大,就说明包含的连接数目很多,那么这两个元祖之间会产生大的距离。那么,即使这两个元祖之间存在连接关系,但是实际的意义不是很大;第二步,根据相应的规则把第一步得到的连接表达式转化为SQL的查询语句,然后在对应的数据库上执行,要么SQL语句直接在DBMS上执行,要么在中间件上执行SQL语句,而中间件位于RDBMS层之上。因为要处理大量的关系代数表达式,所以许多研究都采用基于中间件的方法。
3 结 语
越来越多的用户需要通过互联网访问在线数据库来获取信息。因此,本文主要针对数据库关键字查询技术做了一个简单的分析和介绍,主要包括的内容有数据库关键字查询技术的核心思想,紧接着引出了关键字查询的两类方法,分别是基于数据图的方法和基于模式图的方法,并对这两类方法做了介绍,并比较了各自的优缺点,解决了传统意义上的数据库查询技术所遇到的问题,具有一定的理论和实践价值。
参 考 文 献
[1] 萨师煊, 王珊 . 数据库系统概论(第三版)[M] . 高等教育出版社,2000.
[2] 张坤龙. 数据库关键字搜索的预处理新技术研究 [D] . 北京:中国人民大学. 2005 .
[3] 林子雨,杨冬青,王腾蛟,等. 基于关系数据库的关键词查询[J] . 软件学报,2010 (10):2454-2478.
[4] 王珊,张俊, 彭朝晖,等. 基于本体的关系数据库语义检索[J] . 计算机科学与探索,2007(1):63-82.
[5] 朱凡微,吴明晖,金苍宏,等. 基于关键字的数据库搜索研究综述[J].计算机应用研究,2008(11):44-48.
Research on keywords search technology in database
YANG Fang-ping
(School of Information Engineering, Longdong University, Qingyang 745000, China)
Abstract: With the development and interaction of IOT and database technology, more and more users need to access online databases to get all kinds of information. In this process the data in the database is need to be queried, therefore, the user should master some structural query language of SQL, and also have some knowledge and understanding about the database schema. But in fact, most of users can not use structural query language or understand the database schema. So, a very natural user requirement of querying based on keywords in database is generate. The keyword-based queries in database are briefly analyzed and discussed.
Keywords: query; SQL; mode pattern; keyword; simplified sub-tree