查询语句QL的语义分析和实现-论文

上传人:飞*** 文档编号:32941112 上传时间:2018-02-13 格式:DOC 页数:17 大小:38.59KB
返回 下载 相关 举报
查询语句QL的语义分析和实现-论文_第1页
第1页 / 共17页
查询语句QL的语义分析和实现-论文_第2页
第2页 / 共17页
查询语句QL的语义分析和实现-论文_第3页
第3页 / 共17页
查询语句QL的语义分析和实现-论文_第4页
第4页 / 共17页
查询语句QL的语义分析和实现-论文_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《查询语句QL的语义分析和实现-论文》由会员分享,可在线阅读,更多相关《查询语句QL的语义分析和实现-论文(17页珍藏版)》请在金锄头文库上搜索。

1、查询语句QL的语义分析和实现-论文计算机与信息科学系论文摘要:本文是基于数据库、编译原理、数据 结构、程序设计等理论知识,主要是运用语法制导翻译原理,对数据定义语言中的 查询语句进行语义分析与实现。 语义分析是在自主知识产权数据库第四层上,为上层提供函数接口。本文实现对查询语句在进行语法分析的同时,进行语义分析,包括类型检查,执行语义子动作等。语义检查无误后,经分析可以得到表名和相应的列名,用栈来实现布尔表达式的求值等,布尔表达式的计算结果,用以检查条件是否成立,为事务处理提供函数接口,以便进行正确的查询。本文实现的是对简单QL语句的语义的分析,其中文中的部分算法是通用的。如果 扩充QL 语句

2、的文法定义,并且在语法分析阶段采用 LR分析法,增加相应的产生式,可实现更加复杂的查询语句的语义分析。关键词:自主知识产权数据库,语法制导翻译, 语义分析Semantic Analysis and Realization of the Search Language QL Weifeng Gao (Dept. of Computer and Information Science, Southwest Forestry College, Kunming, Yunan, 650224, China)Abstract: This paper is based on theories knowled

3、ge of the database, compiler implementation, data construction and program design. It mainly makes use of the syntax phrasing system with translation principle to realize the semantic analysis of the search language QL. The semantic analysis is the fourth layer in the model of Independence Intellige

4、nt Property Right Database. It provides function interface to the upper level. The paper has been realized that syntax analysis proceed at the same time with semantic analysis , including the type-checking, carrying out semantic actions. Language righteousness checked without any error, we can get t

5、able name and the corresponding fields names. The paper adopts the stack to realize calculating the logic expressions type. Through the value of the logic expressions, we can check whether conditions in the QL establish or not. And we pass the result to the tranction disposal layer which can deal wi

6、th the right search. This paper realized the semantic analysis of the simple QL .Parts of algorithm which this paper designed is in general use. If we expand the definition of grammars to QL ,add the produce expressions and adopt the LR syntax analysis, it can realize the semantic analysis of the co

7、mplex QL.Key words: Independence Intelligent Property Right Database, Syntax Phrasing System with Translation Principle, Semantic Analysis目 录1 前言 12 概述 32.3 研究的意义 42.4 国内外研究现状及发展趋势 42.5 研究的内容 63 语义分析的理论依据 73.1 数据库设计背景 73.2 SQL 83.3 编译程序及语义分析 103.4 程序设计知识背景 134 系统设计 154.1 概要设计 154.2 功能设计 154.3 接口设计 1

8、65 实现 185.1 实现环境 185.2 分析出表名和列名的设计与实现 185.3 表达式计算的设计与实现 205.4 单表和多表查询的设计 216 总结与展望 236.1 总结 236.2 展望 23参考文献 25指导教师简介 26致 谢 27附 录 4421 前言伴随着网络的日益发展,每天需要 处理的数据更是呈指数级别增长,建立高效良好的数据 库管理系统的重要性已被提上日程。数据 库管理系统是一个能有效建立和管理大量数据的强大工具,并且能安全长期地保存这些数据以供使用。数据 库管理系统无处不在,尤其被 应用于维护商业内部记录,在网络上为顾客存储和查询 数据提供方便服务,以及支持很多其他

9、商业处理。自主知识产权数据库是以市场上常见的数据库管理系统为基础,功能相似的数据库系统。由于数据 库软件的开发需要巨大的资金和研发力量的投入,再加上国内的技 术和制度等有待完善,自己开 发数据库系统软件的难度较大,因此长期以来,国内市场的绝大部分市 场份额一直由Oracle、SQL Server、DB2、SYBASE等国外产品所占据。但无论是从国家信息安全,还是从国家软件产业发展的角度考虑,数据库软件的国产 化都有其十分重要的意义。所以开发自主知识产权库对自己和对国家都有好处,对自己可以提高开 发大型软件的能力, 综合运用所学知 识,充分了解和掌握先进技术,培养团队精神;如果开发 成功, 对国

10、家将是一个巨大的 贡献。自主知识产权数据库的框架共七层,涉及编译原理、数据 库、程序设计等多方面的知识,语法分析和语义分析在第四层。能够进 行正确的语义分析,合理而且高效的语法制导翻译,从而进行语义检查,是为上层SQL语句提供函数式接口的关 键。因此本文研究数据查询语句的语义分析具有十分的必要性和重要的意义。本文是基于自主知识产权数据库数据定义语言的词法分析、语法定义规则、 语法分析的工作原理,在充分运用编译原理中的语义 分析, 语法制导翻译的理论知 识,综合运用数据结构的基础上,定义优先关系表,确定运算符之 间的优先关系,用 栈的形式实现对 条件表达式的计算;设计各模块接口参数的约定形式,并

11、以Visual C+6.0为 开发平台, 对自主知识产权数据库中的查询语句的语义分析进行设计与实现。主要完成了以下工作:首先根据QL文法定义,采用语 法制导翻译方法,在语法分析的同时进行语义分析,侦查和报告QL语句中的语义错误等,包括类型匹配, 边界溢出检查等。其次,在语义检查同时,执行语义子动作。在算法上主要是实行语法制导的翻译,本文主要实现对条件表达式的翻译以及计算。将条件表达式翻 译成易于计算的形式,如: 0=d & 3 , FROM ,WHERE GROUP BY HAVING ORDER BY ASC|DESCSQL查询中的子句顺序为:SELECT、 FROM、WHERE、GROUP

12、 BY、HAVING和ORDER BY 。其中SELECT 、FROM是必须的, WHERE、GROUP BY、HAVING和ORDER BY是可选的,并且HANING 子句只能与 GROUP BY搭配起来使用。利用()、()、(*)、(/)和集函数可以构造表达式,用于在 SELECT子句中查询表中未存储但可以导出的结果。(王能斌,2000)本文的QL语义分析只针对于简单查询:它使用语法制导翻译 原理直接进行语义分析, 语义检查无误后得到表名和相应的列名,运用 逻辑表达式求值对条件进行判断。3.3 编译程序及语义分析3.3.1 什么是编译程序编译程序是现代计算机系统的基本组成部分之一,而且多数

13、计算机系统都含有不止一个高级语言的编译程序,对有些高级语言甚至配置了几个不同性能的编译程序。从功能上看,一个编译程序就是一个语言翻译程序。它把一种 语言(称作源语言)书写的程序翻译成另一种语言(称作目标语言)的等价程序。比如,汇编程序是一个翻译程序,它把汇编语言程序翻译成机器语言程序。如果源语言是像FORTRAN,PASCALA或C那样的高级语言,目标语言是像汇编语言或机器语言那样的低级语言,则这种翻译程序称作 编译程序。如果把把 编译 程序看成一个“黑盒子”,它所 执行的转换工作可以用图 3 2来说明(吕映芝等,1998)。查询语句QL的语义分析和实现3.3.2 编译过程概述编译程序完成从源

14、程序到目标程序的翻译工作,是一个复 杂的整体的过程。从概念上来 讲,一个编译程序的整个工作过程是划分成阶段进行的,每个 阶段将源程序的一种表示形式转换成另一种表示形式,各个阶段进行的操作在 逻辑上是紧密连接在一起的,图 3 3给出了一个编译过程的各个阶段,这是一种典型的划分方法。事实上,某些阶段可能组合在一起,这 些阶段间的源程序的中间表示形式就没必要构造出来了。图 3 3中将编译过程划分成了词法分析、 语法分析、中 间代码生成,代码优化和目标代码生成六个阶段。另外两个重要的工作:表格管理和出错处理与上述六个阶段都有联系。 编译过程中源程序的各种信息被保留在种种不同的表格里,编译各阶段的工作都

15、涉及到构造、查找或更新有关的表格,因此需要有表格管理的工作;如果编译过程中发现源程序有错误,编译程序应报告错误的性质和错误发生的地点,并且将错误所造成的影响限制在尽可能小的范围内,使得源程序的其余部分能继续被编译下去,有些编译程序 还能自动校正错误, 这些工作称之 为出错处理(吕映芝等,1998)。图 3 3 编译过程3.3.3 语义分析A. 什么是语义分析所谓语义分析,就是确定程序是否有意 义的,分析程序的含 义 ,并做出相应的处理。语义分析(Syntax analysis)是编译过 程的一个逻辑阶 段,在整个编译过程中处于第三阶段,语义分析就是语义信息的翻译与计算,而语义信息的翻 译与计算

16、与被翻译过程的最终含义或语义密切相关。使用 语法制导翻译进行语义处理,而语法制 导翻译方法,直 观上说就是为 每个产生式配上一个翻译子程序(语义动作或语义子程序),并且在语法分析的同时执行这些子程序, 语义动作是给产生式赋予具体意义的手段。B. 为什么要语义分析阶段? 逻辑结构清楚;利于不同目标机上实现同一种语言; 利于进行与机器无关的优化,这些内部形式也能用于解释。C. 语义分析任务(1) 审查每个语法结构的静态语义,即验证语法结构合法的程序是否真正有意义,即 审查类型并报告错误,包括:类型检查: 运算数类型一致性检查: 名字声明与引用控制流检查: 转移目标名字检查: 作用域(2) 如果静态语义正确,根据语 法结构分析其含义,并用某种机器内部表示形式表示出来,或者直接生成目标指令。简单地说,就是分析语法结构含义,表示成中间语言或生成目标指令。D. 类型检查的分类和内容(1) 类型检查可以分为动态和静态两种。动态检查在运行时刻完成。功效很低。但是如果语言允许动态确定类型,动态检查是必须的。静态检查在编

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 企业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号