论文部分内容阅读
内存数据库是一种针对内存的组织和管理的数据库管理系统,它把整个数据库都存储在内存中,具有比传统磁盘数据库更高的实时响应能力,适合用在通信、网上银行、证券交易等实时性高的领域。近几年,国内外很多研究者都致力于内存数据库的研究,厦门大学也自主研发的一种基于Windows CE系统的内存数据库系统xMMDB,它采用哈希索引、T树索引等高效的查询处理技术,以动态链接库文件的形式提供API函数,供开发者使用,具有快速、移植性好等特点,但是它还没有实现SQL的接口。
本文在现有的xMMDB基础上,利用xMMDB提供的API函数,采用编译原理相关理论,设计和实现了xMMDB系统的SQL接口,使其能够支持常用的SQL语句。本文所做的工作如下:
一、深入研究内存数据库系统xMMDB,了解其体系结构,归纳并总结了该系统API函数的使用方法。
二、研究了正则表达式文法、正则表达式和不确定有穷自动机之间的等价转换、不确定有穷自动机和确定有穷自动机之间的等价转换,并讨论了模拟确定有穷自动机编写词法分析程序的方案,为SQL解析器设计了一套词法分析程序。
三、研究了自顶向下分析的LL(1)文法,分析了LL(1)文法的设计过程:初步设计文法、消除二义性、消除左递归和提取左公因子。本文总结了一套常用的SQL语法集合,并设计了该SQL集合的LL(1)文法,采用自项向下的方法实现了SQL解析器的语法分析程序。
四、本文讨论了语法分析的另一种实现方法:采用语法生成工具YACC自动生成语法分析程序。分析YACC的使用方法,并为SQL集合设计了一套YACC文法,使用YACC工具生成了一个SQL的语法分析程序。采用统计分析的方法,比较了采用LL(1)文法的手写语法分析程序与采用YACC工具自动生成的语法分析程序的效率,证实了手写语法分析程序的效率显著高于YACC生成的语法分析程序,为写出更高效的语法分析程序提供理论依据。
五、本文设计了一个用于存储词法分析及语法分析结果的数据结构,采用手写语法分析程序及词法分析程序,在EVC4.0开发平台上集成了xMMDB的SQL解析器,并在Windows CE系统上进行功能测试,测试结果表明,SQL解析器已具备常用的SQL语句的解析功能。