当前位置:首页 > 物联网 > 《物联网技术》杂志
[导读]摘要:随着互联网技术与数据库技术的不断发展和相互结合,越来越多的用户需要访问在线数据库来获取各种信息,在该过程中,用戶要对数据库中的数据进行查询。因此,用户就必需要掌握一定的结构化查询语言SQL,而且还要对数据库模式有一个认识和了解。但事实上,多数用户并不会使用结构化查询语言,也不了解数据库模式。所以,便产生了一个很自然的用户需求——数据库支持基于关键字的查询,文章主要就是对数据库支持基于关键字的查询进行简要的分析和探讨。

引言

在计算机应用领域中,由专业人员实现对数据库查询的编程技术,我们就以关系数据库进行数据处理来举例说明,大多数情况下都使用结构化查询语言SQL(StructuredQueryLanguage)语言,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结语

越来越多的用户需要通过互联网访问在线数据库来获取信息。因此,本文主要针对数据库关键字查询技术做了一个简单的分析和介绍,主要包括的内容有数据库关键字查询技术的核心思想,紧接着引出了关键字查询的两类方法,分别是基于数据图的方法和基于模式图的方法,并对这两类方法做了介绍,并比较了各自的优缺点,解决了传统意义上的数据库查询技术所遇到的问题,具有一定的理论和实践价值。

声明:该篇文章为本站原创,未经授权不予转载,侵权必究。
换一批
延伸阅读

摘要:为了解决外施工单位进变电站施工前的资质审核难问题,研制了一个外施工单位资质快速查询平台,安全管理人员将外施工单位的审批资料、作业人员资质和安规成绩等信息录入系统,运行人员可以快速查询外施工单位信息,实现信息的共享,...

关键字: 资质 查询 研制

问题描述C保险公司业务系统中,团体保险明细查询速度很慢。查询时输入保单号,要返回团体保单包含的所有被保险人的信息。较小的保单,包含1万个被保险人,返回页面需要等待7.5分钟。较大的保单,包含100万被保险人,返回页面等待...

关键字: 数据库 SQL 代码 性能优化

触发器(trigger)是SQL server 提供给程序员和数据分析员来保证数据完整性的一种方法,它是与表事件相关的特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由事件来触发,比如当对一个表进行操作( i...

关键字: 触发器 数据库 SQL

摘 要 :随着电子商务的蓬勃发展,专门提供运输平台的寄递行业呈现持续高速发展的态势,一些非法分子通过邮政、快递渠道寄递违禁品的案件越来越多。随着大数据时代的来临,寄递行业选用应用软件系统对数据进行专业管理很有必要。文中设...

关键字: 寄递行业 大数据挖掘 数据分析预警 查询 数据抓取

「最全」电子元器件图片、名称、符号图形对照(精编请收藏)

关键字: 电子 查询

摘要:传统的实验室设备维护管理工作模式已经大大落后于实验室现代化科学管理的需求。为了适应实验室设备的现代化管理需要,进一步提高实验教学任务和管理效率,应用数据库技术和面向对象程序设计技术,并采用客户端/服务器结构,设计开...

关键字: 实验室设备管理 信息系统 ASP ACCESS 数据库 查询

为什么 select * from t where c = 0;这条不符合联合索引的最左匹配原则的查询语句走了索引查询呢?

关键字: SQL 最左匹配原则 索引

在MySQL中我们通常会采用limit来进行翻页查询,比如limit(0,10)表示列出第一页的10条数据,limit(10,10)表示列出第二页。

关键字: MySQL limit SQL

最近在学习Redis相关知识,看了阿里的redis开发规范,以及Redis开发与运维这本书。

关键字: Redis SQL

用一个简单的c程序例子,介绍c语言的基本构成、格式、以及良好的书写风格,使小伙伴对c语言有个初步认识。

关键字: C语言 标识符 关键字
关闭
关闭