论文部分内容阅读
由于当代社会数据需求的变化,对数据操纵变得尤为重要。又由于结构化查询语言(SQL)是对数据库的实践操作,学习理解SQL代码可以更好地理解数据库,并为其他需要数据库辅助的工具提供更好的技术帮助。因此,对SQL代码的理解及熟练操作可以有效地提高数据库课程教学的质量。为提高评定SQL实验代码的效率以及稳定评分准确性,研究一套SQL代码的自动评分模型以及开发该模型配套的系统具有一定的必要性。本文在研究了国内外代码的自动评分算法和系统基础上,基于结构化度量技术,提出了两种针对SQL代码的自动评分模型:基于LCS(Longest Common Substring)以及基于权重层次节点匹配的SQL代码评分模型,并针对这两个模型实现了一个自动评判系统,该系统主要通过比对教师上传的SQL参考答案文档与学生上传的SQL代码作业,得出学生SQL作业的成绩和评论,使得教师与学生用户可以查看作业的成绩和评论。基于LCS的评分模型首先对SQL代码进行预处理,分析语义结构进而提取出SQL代码的特征,同时进行分词处理;然后,构建SQL代码的同义库,根据同义库将分词后的代码片段进行同义转换;之后运用最长公共子串算法对代码片段进行相似度匹配,赋予各个片段影响因子,得到代码总的相似度;最后分析人工评分数据制定相应的自动评分策略,从而评定出SQL代码的分数和评论。基于权重层次节点匹配的评分模型同样在预处理过程中删除、处理了部分SQL代码语句;分析了 SQL代码的词法结构,对特征进行标记符标记;继承使用了基于LCS模型的同义库;然后根据标记符标记对SQL代码进行树节点的提取,构建SQL语句树;然后,确定SQL语句树树节点与子树的权重,匹配树的相似度,得到树的相似度,进而确定SQL代码的相似度;最后,根据人工评审数据,多项式拟合拟合出相近数据,据此制定相应的评分策略得到SQL代码的评分结果。