查询语句QL的语义分析和实现 第3页
2 概述
2.1 研究背景
数据库技术从诞生到现在,在不到半个世纪的时间里,形成了坚实的理论基础、成熟的商业产品和广泛的应用领域,吸引越来越多的研究者加入。数据库的诞生和发展给计算机信息管理带来了一场巨大的革命。三十多年来,国内外已经开发建设了成千上万个数据库,它已成为企业、部门乃至个人日常工作、生产和生活的基础设施。二十世纪九十年代,随着基于PC的客户/服务器计算模式和企业软件包的广泛采用,数据管理的变革基本完成。数据管理不再仅仅是存储和管理数据,而转变成用户所需要的各种数据管理的方式。Internet的异军突起以及XML语言的出现,给数据库系统的发展开辟了一片新的天地,而自主知识产权数据库随之诞生。
数据库管理系统(Database Manage System,简称DBMS)DBMS所提供的语言用于对数据库进行操作,称为数据库语言(Database Language)。如今广泛使用是结构化查询语言(Structured Query Language,简称SQL),评价一个DBMS成功的一个关键就是它支持SQL的程度,而一个高效安全的SQL编译器又是优秀数据库的核心和基础之一。因此在自主知识产权数据库的设计中引入了语义分析。
2.2 研究的目的
数据的查询语言(Query Language,简称QL)是SQL的一个组成部分,它用于对数据进行查询。本文根据自主知识产权数据库设计的总体框架,把词法分析产生的单词序列分解成各类语法短语,通过对数据查询语言的语义分析,进行语法制导翻译,从而实现语义检查,为上层提供SQL语句的函数式接口。
编译程序它读入用某种语言(源语言)编写的程序并将其翻译成与之等价的用另一种语言(目标语言)编写的一个程序。作为这个翻译过程的一个重要组成部分,编译器能够向用户报告被编译的源程序中出现的错误。
语义分析则是编译的第三个阶段,它的主要任务是审查源程序有无语义错误,进行语法制导翻译,为代码生成阶段收集类型信息。语义法分析利用语法分析阶段确定的层次结构来识别表达式和语句中的操作符和操作数,它的一个重要组成部分是类型检查。类型检查负责检验每个操作数是否满足源语言的说明。
2.3 研究的意义
集团用户信息化建设的巨额投资中会有相当一部分是用以建设供自己内部使用的数据库,这被称为是In-House系统。自用数据库是非常重要的,特别是那些与自己业务密切相关的工作数据库。这些数据库建设是一个很繁重的过程,需要的技术也会越来越高,有很多数据库建设不仅需要外部的专家,还需要外部的数据库支持。由于很多机构很难有足够的人才来胜任这件事,筹钱容易,筹备人力和技术难,所以数据库的外包业必将红火起来,特别是在信息化建设发展到一定程度之后,大量的机构内部网出现,必然会带来大量数据库外包的需求。
所以自主知识产权数据库的研究具有十分重要的意义,如果自主知识产权数据库研究成功,将带来巨大的经济效益和社会效益。
语义分析本题目来源于自主知识产权数据库项目中的一个模块。通过进行自主知识产权数据库之查询语句QL的语义分析与实现,在掌握了编译原理基本理论的基础上,学习编译器的设计思想,加深对编译原理的理解,使数据库及编程方面的知识得以应用,针对编译过程中的重点和难点进行编程实践;独立完成一定工作量的程序设计,用以检验大学四年专业知识的学习情况。
2.4 国内外研究现状及发展趋势
一个国家数据库产业的发展状况,在很大程度反映了该国信息技术和信息产业的发展水平。在Internet出现以前,数据库产业可以说是发展最快的信息产业,而Internet的发展又给数据库产业注入了新的活力,使传统的数据库产业向着Internet服务的方向发展。在当今世界上,处在数据库产业前列的是以美、欧、日为代表的发达国家。
传统数据库系统按数据模型的分类见图 2 1
图 2 1 传统数据库系统按数据模型的分类
关系型数据库是当今数据库发展的主流,它提供了关系操作的特点和功能要求。其操作是高度非过程化的,用户不需要指出特殊的存取路径,路径的选择由DBMS的优化机制来完成。而网络数据库作为一种主要的电子资源,其独特的优势在网络环境下日益突显。随着计算机、通信网络与信息技术的不断发展,未来几年网络数据库将继续呈现出良好的发展势头,如目前的XML数据库等,将成为图书馆发展电子馆藏、开展电子信息服务的重要资源与基础。
我国的数据库研发经过“八五”和“九五”期间的努力,已经形成了具有一定规模的研究和开发力量。但在支持互联网应用、海量数据管理、安全性支持、系统可扩展性等方面仍显薄弱。在促进数据库的发展和掌握核心技术方面,我国从上世纪80年代以来已进行了深入的理论研究和实际系统的研制,现已有多个产品及原型系统。国家863计划重点支持的东软集团有限公司研制的数据库管理系统OpenBASE、武汉华工达梦数据库有限公司的DM数据库、北京人大金仓信息技术有限公司研制的通用数据库管理系统KingbaseES和北京神舟航天软件公司研制的OSCAR对象关系型数据库等都是国产数据库的代表。
与此同时,作为语义分析母体的编译程序自20世纪50年代早期诞生起也经历了一个发展过程:50年代中期,FORTRAN高级语言的编译系统开发成功;50年代末期,编译程序的自动生成工具产生;60年代,利用自展技术来构造编译程序。
随着并行技术和并行语言的发展,处理并行语言的并行编译技术,将串行程序转换成并行程序的自动并行编译技术也正在深入研究之中。另外嵌入式应用迅速增长的需求,推动了交叉编译技术的发展.还有系统芯片设计方法和关键EDA技术的研究,也带动了专用语言VHDL等及其编译技术的不断深化。
第一个编译器出现在20世纪50年代早期,FORTRAN等一批高级语言极大优化了代码生成,并遥遥领先于它所处的时代。
时至今日,新语言的数量不断翻番,人们开始需要专业的编译程序,同时程序设计方法中新的类型也在发展,重点越来越多地从“如何编译”向“编译成什么”转移。与此同时,数据库管理系统亦经历了30多年的发展演变,发展成了一门内容丰富的学科,形成了总量达数百亿美元的一个软件产业。关系型数据库依然是当今主流,但随着新技术的不断开发与互联网的飞速发展,Web型、嵌入型、数据仓库、联机分析等崭新数据库技术全面开花。
评价一个数据库成功的关键之一就是它支持SQL的程度,而一个高效安全的SQL编译器则是优秀数据库的核心和基础。
国内在编译这方面起步较晚,至今没有出过一款执行效率高的编译器。
2.5 研究的内容
本文随后将在第三章介绍数据库设计、数据查询语言、编译原理以及语义分析的相关理论知识;在第四章对QL语义分析的相关设计,包括功能设计,接口方式的设计等;最后在第五章以Visual C++6.0为开发工具,Visual C++为开发语言,完成QL语义分析的程序实现。
本文的内容是对QL查询语句的语义分析及实现。QL语句的查询是很复杂的,要对其进行正确的编译,需要做很多的工作。语义分析主要是运用语法制导翻译方法,侦查和报告查询语句中的语义错误等,包括类型匹配,边界溢出检查等。语法制导翻译方法既可以用来产生各种中间代码,也可以用来直接产生机器指令,甚至还可用来对源程序进行解释执行,执行语义子动作。但在整个过程中核心问题是:根据QL文法定义,进行语法分析的同时进行语义分析,实现语义检查,执行语义子动作。在算法上主要是实行语法制导的翻译,尤其是对条件表达式的翻译。
上一页 [1] [2] [3] [4] [5] [6] [7] [8] [9] 下一页