SQL Schema Dataset
收藏github2024-05-15 更新2024-05-31 收录
下载链接:
https://github.com/jacklanda/SQLSchema
下载链接
链接失效反馈官方服务:
资源简介:
用于数据库和BI工具中关系连接预测的SQL架构数据集。
A SQL schema dataset for relational join prediction in databases and BI tools.
创建时间:
2021-12-06
原始信息汇总
数据集概述
数据集名称
- SQL Schema Dataset
数据集内容
- 存储所有解压缩的SQL脚本文本的目录:
s3_sql_files_crawled_all_vms/ - 存储解析输出.pkl文件的目录:
s4_sql_files_parsed/ - 存储样本分析的.pkl文件的目录:
samples/ - 存储通过grep从多个来源匹配的结果的目录:
variants_cases/
数据集处理流程
- Run.sh:最外层的shell脚本,调用
repo_parse_sql.py。 - repo_parse_sql.py:最外层的Python文件,作为主控文件,调用并行工作者。
- s4_parse_sql.py:中间层,执行多阶段解析。
- parse_query.py:最低层,用于每个查询的解析。
数据集统计分析
- 使用
display.py脚本对整个解析过程输出的pkl文件进行统计分析,包括:- 非空仓库总数
- 解析的表总数
- 非空表总数
- 所有表中的列总数
- 所有表中的主键总数
- 所有表中的外键总数
- 唯一约束数量
- 候选键数量
- 具有数据类型的列数量
- 查询总数
- 二元连接总数
- 连接条件总数
- 索引数量
- 带有投影的查询数量
- 带有聚合的查询数量
- 带有选择的查询数量
- 带有groupby的查询数量
数据集分析方法
- 使用
print_name2tab函数在运行仓库数据时输出同名表。 - 使用
calc_fk_jq_overlap函数分析ForeignKey和BinaryJoin Condition的重叠情况。 - 使用
calc_missing_table_in_other_repo函数计算同一用户仓库中缺失表的比例。 - 使用
calc_failed_cases_num函数计算检查失败的案例数量。 - 使用
dump_tables.py脚本将pkl文件内容输出为序列化的模式序列。 - 使用
sample.py模块中的函数打印pkl文件中保存的实体信息。
数据集调试方法
- 使用Python第三方工具PuDB进行调试。
- 通过修改
repo_parse_sql.py和s4_parse_sql.py中的特定行来调试特定用户、仓库、SQL文件或语句。
数据集引用信息
- 引用格式: latex @misc{sql-schema-dataset, title={SQL Schema Dataset}, author={Yang Liu}, url={https://github.com/jacklanda/SQLSchema}, howpublished={url{https://github.com/jacklanda/SQLSchema}}, year={2022} }
搜集汇总
数据集介绍

构建方式
SQL Schema Dataset通过多层次的解析流程构建,首先从外部脚本`run.sh`启动,调用`repo_parse_sql.py`进行主控,进而通过`s4_parse_sql.py`实现多阶段的SQL文件解析,包括创建表、修改表、外键处理及查询解析等。每个查询通过`parse_query.py`进行详细解析,涵盖连接、聚合、分组等操作。解析结果以.pkl文件形式存储,便于后续分析和处理。
特点
该数据集的显著特点在于其多层次的解析结构,能够全面捕捉SQL查询的复杂性,包括表结构、外键关系及查询逻辑等。此外,数据集支持并行处理,提升了大规模数据解析的效率。通过丰富的统计分析功能,用户可以深入了解表结构、查询类型及外键与连接条件的重叠情况,为SQL语言模型的训练提供了丰富的语料。
使用方法
使用SQL Schema Dataset时,用户可通过运行`run.sh`脚本启动解析过程,选择并行或串行模式进行处理。解析结果存储在.pkl文件中,用户可利用`display.py`等工具进行统计分析,或通过`dump_tables.py`将数据转换为自然语言序列。此外,数据集支持多种调试模式,便于用户针对特定SQL文件或查询进行深入分析和调试。
背景与挑战
背景概述
SQL Schema Dataset是由Yang Liu主导开发的一个专注于SQL数据库模式解析与分析的数据集,创建于2022年。该数据集的核心研究问题在于如何高效且准确地解析SQL文件中的数据库模式信息,包括表结构、外键关系、查询语句等。通过多阶段的解析过程,该数据集不仅为数据库模式的自动化分析提供了丰富的资源,还为语言模型在SQL语句生成与理解方面的研究提供了重要的数据支持。其影响力主要体现在为SQL解析领域的研究者提供了一个标准化的数据集,促进了相关技术的进一步发展。
当前挑战
SQL Schema Dataset在构建过程中面临了多重挑战。首先,SQL语句的多样性和复杂性使得解析过程异常复杂,尤其是在处理多表连接、聚合查询等复杂查询时,解析的准确性和效率成为关键问题。其次,数据集的构建需要从大量的SQL文件中提取并解析出结构化的数据库模式信息,这一过程涉及大量的文本处理和模式识别,如何保证解析的全面性和一致性是一个巨大的挑战。此外,数据集的规模和多样性也带来了存储和计算资源的巨大压力,如何在有限的资源下高效地处理和存储数据是另一个亟待解决的问题。
常用场景
经典使用场景
SQL Schema Dataset 的经典使用场景主要集中在数据库模式解析与查询语义理解领域。该数据集通过解析SQL脚本中的表结构、外键关系、查询语句等,为研究人员提供了丰富的数据库模式信息。这些信息可用于训练自然语言处理模型,以实现SQL查询的自动生成、语义解析及错误检测。此外,数据集还支持多阶段解析,包括创建表、修改表、外键定义及查询解析,为数据库模式的理解与应用提供了全面的支持。
解决学术问题
SQL Schema Dataset 解决了数据库模式解析与查询语义理解中的多个学术研究问题。首先,它为研究人员提供了大规模的SQL脚本解析结果,有助于深入研究数据库模式的复杂性。其次,通过解析查询语句中的连接、聚合、分组等操作,数据集为查询语义的理解提供了基础。此外,数据集还支持外键与连接条件的重叠分析,为数据库设计与查询优化提供了新的研究视角。这些研究成果对于提升数据库系统的智能化水平具有重要意义。
衍生相关工作
SQL Schema Dataset 的发布催生了一系列相关的经典工作。首先,基于该数据集的研究工作在数据库模式解析与查询语义理解领域取得了显著进展,推动了相关算法的优化与创新。其次,数据集的解析结果为自然语言处理模型提供了丰富的训练数据,促进了SQL查询生成与语义解析技术的发展。此外,数据集的多阶段解析方法也为数据库模式的自动化处理提供了新的思路,推动了数据库设计与维护工具的进步。这些衍生工作为数据库领域的研究与应用提供了重要的参考价值。
以上内容由遇见数据集搜集并总结生成



