联系我们:010-88559646

  老师群

170086145

  学生群

179326524

209318323

215410234

客服电话:010-88559646

B7-数据库语法树遍历

时间:2021-04-16        来 源:中国软件杯

   第十届中国软件杯大赛--B组赛题

赛题名称:数据库语法树遍历

组类:B组(高职)

赛题已于2021.5.11进行了补充完善,详情见赛题中红字部分

赛题简介:介绍整个赛题的实现目标、实用价值、涉及技术和整体要求

数据库管理系统提供了一套结构化查询语言(SQL),用来访问和操作数据库,基于标准语法的SQL语法树演化成的SQL语句是无法穷尽的,那么如何更加有效的完成一款数据库的语法正确性验证成为一个非常有价值的课题。

赛题业务场景:描述赛题相关的真实企业业务背景。从真实场景中,适当简化或者提炼出适合比赛的赛题场景

基于KingbaseES V8数据库,提供关键语法树(如create table、create view等),请抽象出语法树形成特定的输入(如正则表达式),并根据语法树的输入生成对应的SQL语句来完成语法树的覆盖。 

语法树样例:

CREATE TABLE [ IF NOT EXIST ] table_name ([{ column_name data_type [ column_constraint] }])

预期结果语句如下:

CREATE TABLE table1 ();

CREATE TABLE IF NOT EXIST table1 ();

CREATE TABLE table1 (col1 int) ;

CREATE TABLE table1 (col1 int primary key);

CREATE TABLE IF NOT EXIST  table1 (col1 int) ;

CREATE TABLE IF NOT EXIST  table1 (col1 int primary key);

说明:

1.本语法标准使用的句法记法是BNF(“巴科斯范式”或“巴科斯诺尔范式”)的扩展版本。在BNF语言定义中,语言的每一个句法元素(称为BNF非终结符)都由产生式规则来定义。它采用公式的形式定义句法元素,每个公式由一些字符、字符串及句法元素组成,该公式可用来生成句法元素的实例。

2.[ ] 方括号表示公式中的可选元素。方括号内公式中的部分可以显式指定也可以省略

3.{} 大括号括着公式中的分组元素。 大括号内公式中的部分必须显式说明

4.|选择符。竖线表示在公式中后边的部分可以代替在它前面的部分。如果竖线不是出现在方括号或大括号中,则表示由产生式规则定义的元素可相互完全替换。如果竖线出现在方括号或大括号中,则表示竖线所在最内层大括号或方括号中的内容可互相替换

5、... 省略号。省略号表示公式中使用了该符号的元素可以重复任意多次。如果省略号直接出现在大闭括号 “}”之后,则它应用于该大闭括号“}”和对应的大开括号“{”之间所括的公式部分。如果省略号出现在任意其他元素之后,则仅用于该元素。

 

任务要求:

需要实现程序,实现[]、{}、|、...等表达式,覆盖如下语法的全遍历:

语法树1:

CREATE [ [GLOBAL | LOCAL] | UNLOGGED] TABLE [ IF NOT EXIST ]  table_name ( [  { column_name data_type [ column_constraint ] } [ ,  ...  ]  ] )

语法树2:

Create [ OR REPLACE ] [ TEMP | TEMPORARY ] VIEW name [ (column_name [, ...] ) ] AS query [ WITH [ CASCADED | LOCAL ] ]

基本功能要求

请完成软件设计和编码:

1、完成语法树的输入设计

2、完成语法树的遍历算法设计

3、完成软件编码,能根据语法树输出正确的SQL语法树覆盖语句

非功能性要求

实现条件:开发环境、实验平台、开发语言、数据库、编译器、涉及硬件等实现条件

关键工具:

数据库:KingbaseES(国产软件)

语言:不限

开发工具:不限

测试数据或平台:提供给参赛者的测试环境和测试数据

KingbaseES V8软件包及产品文档:

https://pan.baidu.com/s/1fQq0TsVXrGIMNHgR3AiSVg

提取码:507l (小写L)

测试数据见业务场景描述

开发所需设备及设备指标需求说明

无特殊设备

文档及其他要求

对关键语法树搜索算法的说明文档,关键代码段的解释说明

各评分项及大致占比

1、提交材料(30%)

提交的程序可运行(或有详实的延时录屏),代码、文档完整清晰

2、功能实现(50%)

按实现功能打分,语法完成基础覆盖可得到基础分;其余根据路径覆盖的完整度和质量打分

3、文档质量和代码可阅读性(20%)

软件设计文档、关键算法说明文档、代码风格质量等

初赛作品提交要求

1、PPT

 讲解需求分析、软件整体设计、关键算法设计、成果展示

2、关键算法文档

3、源码及可执行程序、自测试输入输出测试数据

  可执行程序需要能在win7环境上正常运行

4、应用演示视频(控制在10分钟内)

 【参赛团队作品中团队自主开发部分的软件作品著作权归参赛团队所有,其中具有市场应用及拓展的优秀作品,出题企业具有优先权,可以优先合作开发或者优先购买。另如基于该作品的任何合作升级开发、市场拓展等活动,以及在这一过程中所获得的任何商业费用,出题企业应与参赛团队协商解决。】

出题企业:北京人大金仓信息技术股份有限公司

答疑老师:阮老师  qsruan@kingbase.com.cn

 

上一篇:上一篇:B6-基于音视频通信技术的云会议应用
下一篇:下一篇:没有了

主办单位

工业和信息化部

教育部

江苏省人民政府

承办单位

中国电子信息产业发展研究院

江苏省工业和信息化厅

江苏省教育厅

教育部高等学校计算机类专业教学指导委员会

信息技术新工科产学研联盟

执行单位

中国信息化周报

南京江北新区产业技术研创园

江苏软件产业人才发展基金会

南京市软件和信息服务集群发展促进机构

南京航空航天大学

关于我们

客服电话:010-88559646

邮编:100048

联系地址:北京市海淀区紫竹院路66号赛迪大厦18层

网站备案/许可证号:京ICP备05039896号-10     京公网安备 11010802020860号