基于结构和语义相似度的SQL程序评分模型①
2017-06-07陈洁
计算机系统应用 2017年5期
陈洁
(中华女子学院 计算机系,北京 100101)
基于结构和语义相似度的SQL程序评分模型①
陈洁
(中华女子学院 计算机系,北京 100101)
针对SQL查询程序实现多样性的问题,提出一种用于精确评估SQL程序的评分模型.首先基于通用标准的SQL语法规范标识符和命令子句,基于同义词链和抽象语法树规范表达式,将SQL程序转换成统一的中间形式,充分消除SQL程序句法和语义表达多样性带来的差异;然后,模拟人工评分思想,对标准化后的程序按评分点组成评估单元序列,采用改进的最长公共子序列算法评估代码相似度,按评分点权重计算成绩,并给出错误定位;最后,通过样例测试和分析说明了评分模型的有效性.
SQL查询;程序标准化;抽象语法树;最长公共子序列;自动评分
SQL查询设计是数据库技术的一个重要应用,其设计方法灵活,表达方式多样化,为实现同一要求,可以使用不同的命令式子;而在同一个命令式子中,同一个数据项可以有不同的表示形式,同一个表达式也可以有多种表示方式.这种多样性给机器的自动评阅带来了很大困难,成为影响评阅精度的重要因素.
字符串的相似度查询和语句相似度计算已成为研究热点[1-3].文献[4]给出了一个基于结构相似匹配的评估模型,该模型借鉴 Petro vskiy[5]提出的通过提取SQL查询语句框架进行异常检测的方法,重点评估SQL查询程序的结构,即命令关键字和运算符,对标识符(如字段名、表名等)和表达式则不做检测.但在实……
登录APP查看全文
