内在数据库xMMDB的SQL解析器分析与实现

来源 :厦门大学 | 被引量 : 0次 | 上传用户:tony_one
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
内存数据库是一种针对内存的组织和管理的数据库管理系统,它把整个数据库都存储在内存中,具有比传统磁盘数据库更高的实时响应能力,适合用在通信、网上银行、证券交易等实时性高的领域。近几年,国内外很多研究者都致力于内存数据库的研究,厦门大学也自主研发的一种基于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语句的解析功能。  
其他文献
随着互联网的迅猛发展,各种网络应用平台逐步渗入到人们的学习和生活中。符号网络作为复杂网络系统的一个分支,其生成的数据规模越来越大,如何快速而有效地从中挖掘出有价值
解决耳聋患者听觉问题已是当今世界的一大难题,传统的方法有佩戴助听器和植入电子耳蜗,但二者都有明显的缺陷:前者将声音信号简单的放大,只适用于轻度耳聋患者,依赖于残余听
中医辨证是中医理论的重要一环,是中医诊断疾病、对症下药的最主要的参考依据。然而,传统的中医诊疗过于依赖于医生直观的定性观察,而且辨证过程也以“体验”和“感悟”的人
随着社会经济的飞速发展,公共场所的安全问题面临日益严峻的考验,如何对这些公共场所进行有效地控制和管理,是非常重要的问题。智能监控的出现在一定程度上很好的解决了这一
医学图像的三维重建是采用面绘制或体绘制的成像算法对CT、MRI等图像数据进行处理,从而为医生提供具有真实感的三维立体影像。它能将组织器官内部的层次关系表现出来,呈现出
随着软件技术的快速发展和软件产品的广泛应用,软件测试作为保障软件质量的重要手段越来越受到研究人员的关注。近年来面向对象软件开发技术的广泛应用,带来了信息技术革命的同
随着Web服务标准逐渐被广泛采纳与实现,高度异构的软件系统之间的互操作已经取得了前所未有的进步,面向服务的架构也因其在IT项目中的重要角色而获得广泛的认可,软件作为一种服
医学图像分割是虚拟器官研究工作的重要基础。在虚拟器官研究的工作中,医学图像分割属于前端工作,是医学图像处理进入到医学图像分析的关键步骤,影响着后期的形态建模和物理
随着网络的高速发展,网络中的信息量越来越大,而且质量参差不齐。如何在海量信息中找到满足用户需求的高质量搜索结果变得越来越重要,技术上也更加困难和具有挑战性。目前,搜
赤潮日益成为危害海洋生态环境和人类生产生活的自然灾害。近年我国沿海地区赤潮频发,规模亦呈增长趋势。监控和预测赤潮爆发并及时采取防治措施,利于保护环境,保证渔业生产