首页 理论教育 图书馆信息系统分析与设计:QQL和SQL词法语法对比

图书馆信息系统分析与设计:QQL和SQL词法语法对比

时间:2023-07-31 理论教育 版权反馈
【摘要】:QQL和SQL都是面向数据管理的解释性脚本语言,脚本对大、小写非敏感,但是QQL在设计上是面向图书馆信息系统的查询语言,因此属于特定领域语言,并不是通用的数据库管理语言。QQL和SQL在数据定义上的区别,见表3-1。同样,QQL不需要DCL语句。表3-2QQL和SQL在词法分析的区别需要注意的是,QQL不直接支持LIKE指令,因为LIKE指令是顺序遍历,但是QQL的查询主要基于Apache Lucene框架全文查询技术。

图书馆信息系统分析与设计:QQL和SQL词法语法对比

QQL和SQL都是面向数据管理的解释性脚本语言,脚本对大、小写非敏感,但是QQL在设计上是面向图书馆信息系统的查询语言,因此属于特定领域语言,并不是通用数据库管理语言。QQL和SQL在数据定义上的区别,见表3-1。

表3-1 QQL和SQL在数据定义的区别

SQL指令中的DATABASE、TABLE更类似单机离线的本地存储;而QQL指令中的CORPUSES和CORPUS既可以是本地数据源,也可以是远程微服务提供的数据源。SQL的RECORD更多强调的是结构化的二维表数据,而QQL用OBJECT更多强调的是数据内容,而不是数据结构

从数据管理语言角度上看,二者主要有以下区别。

①数据定义语言(Data Definition Language,DDL)的区别。SQL的DDL语句包含的指令有CREATE、ALTER、DROP、TRUNCATE、COMMENT和RENAME。QQL不需要DDL语句,由于QQL主要面向查询,因此,数据定义语言在后台服务自动化处理。

②数据控制语言(Data Control Language,DCL)的区别。SQL的DCL语句包含的指令有CREATE、DROP、SET、REVOKE和GRANT。同样,QQL不需要DCL语句。早年的SQL是基于单机进行权限设计的,而现在QQL设计的时候,将权限管理委托给不同类型服务器的微服务,运行这些微服务的服务器如校验服务器(SCHEMA Server)、语料服务器(CORPUS Server)、算法模型服务器(MODEL Server)、可视化分析服务器(VISUALIZATION Server)和证书权限服务器(LICENSE Server)。

③数据维护语言(Data Manipulation Language,DML)的区别。SQL的DML语句包含的指令有INSERT、UPDATE、DELETE、MERGE、EXPLAIN PLANT和LOCK TABLE。同样,QQL不需要DML语句,也是委托给微服务进行统一管理。

④数据查询语言(Differences of Data Query Language,DQL)的区别。具体区别见表3-2。

表3-2 QQL和SQL在词法分析的区别

需要注意的是,QQL不直接支持LIKE指令,因为LIKE指令是顺序遍历,但是QQL的查询主要基于Apache Lucene框架全文查询技术(倒排表查询和键值对查询)。QQL在WHERE语句查询语句中增加了以下指令。(www.xing528.com)

DO:用于执行内部程序;

MODEL:用于集成第三方算法或者训练的模型;

FILTER:用于过滤数据结果,默认为白名单过滤;

BLACK FILTER:黑名单过滤指令,用于从结果中排除相关数据;

PRORCESS:用于处理外部程序,暂时保留关键字。

⑤数据事务语言(Data Transaction Language,DTL)的区别。SQL的DTL语句包含的指令有“START TRANSACTION”“SAVEPOINT,COMMIT”“ROLLBACK”和“TO SAVEPOINT”。同样,QQL的数据事务委托给不同服务器的微服务进行统一管理。

为了整合第三方数据分析服务,QQL增加了WHICH语句。QQL在WHICH查询语句中增加了以下指令。

VISUALIZATION:用于整合可视化服务的微服务网址;

MODEL:和WHERE语句联合使用,用于指定外部算法服务的微服务网址;

CORPUS:指定外部服务语料来源的微服务网址;

LICENSE:用于从不同的数据库厂家进行鉴权的微服务网址。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈