小型数据库——命令解析器、数据存储的设计与实现
来源:wenku163.com 资料编号:WK1638226 资料等级:★★★★★ %E8%B5%84%E6%96%99%E7%BC%96%E5%8F%B7%EF%BC%9AWK1638226
资料介绍
小型数据库——命令解析器、数据存储的设计与实现
摘 要
当今时代,“数据”已经成为一种资源。随着各种数据获取技术和数据库技术的迅速发展,人们积累的数据越来越多,如何更加合理的管理数据显得更加重要。小型数据库就是模拟目前比较流行的一些大型数据库,实现通过在命令行输入相应命令来对数据进行存储,管理和查询。
该小型数据库MyDB包括两大模块:SQL命令解析器及数据存储模块。SQL命令解析器负责解析用户命令并完成用户对表的创建、删除、插入、更新等操作;数据存储模块的主要功能是保存和管理用户的数据。整个系统是用C语言、采用模块化的程序设计思想实现的。
关键词:MyDB;命令解析;数据存储;C语言
Minidatabase
---- Design and Implementation of Command Interpreter and Data Storage
Abstract
In this information era, data has been a kind of resource. With the fast development of data getting technology and database technology, people accumulate more and more data. How to manage these data more rational become more and more important. Minidatabase is to simulate popular database at present and implement data storage, management and querying by inputting commands from command line.
This Minidatabase ——MyDB includes two modules: SQL command parser and data storage. SQL command parser takes in change of parsing user commands and operating tables, such as creating a table, deleting a table, inserting elements into table and updating table. The primary function of data storage module is to save and manage user data. The whole system is designed with the idea of modularized programmer and developed with C program language.
Key words: MyDB ; command parse ; data storage ; C program language
目 录
论文总页数:24页
1 引言 1
1.1 数据库课程教学的现状 1
1.2 研制DBMS的重要性 1
1.3 MyDB的设计目标 2
2 数据库理论 2
2.1 数据元素的表示 2
2.1.1字段 2
2.1.2记录 3
2.1.3块 3
2.2 查询编译器 3
3 MyDB的实现 5
3.1 记录的定义 5
3.2 命令解析模块 6
3.2.1 词法分析器 7
3.2.2 语法分析器 11
3.2.3 SQL语句的实现 13
3.3 基本表模块 18
3.3.1数据组织 18
3.3.2基本表的实现 19
3.4 数据存储模块 20
结 论 21
参考文献 21
致 谢 23
声 明 24
1 引言
1.1 数据库课程教学的现状
现在数据库教学的不足突出地表现在以下几点:
1.普遍只强调理论,不重视实践,在学习过程中难以对概念深刻领悟,课程结束后就很快把其中许多内容给淡忘掉了。
2.现有对数据库的实践也是流于形式,内容肤浅与真实的数据库管理系统相去甚远。比如用SQL语言对数据库进行一定的创建查询操作。这些实践都不过是对数据库管理系统的使用,根本谈不上了解数据库本身的运行机理。而且这些实践都太过理想化,完全把底层原理透明化了,这些实践充其量只不过是对SQL语言熟悉而已。
3.用真实的数据库管理系统来实践显然要好得多。但现实中的数据库管理系统都太过庞大,比如开源的数据库管理系统MYSQL,仅源代码就达数十万行之多。专业人员阅读起来都不会很容易,更不要说刚读本科的学生对其进行修改了,所以收效甚微。
以上三点明显地说明了:“实践”在数据库原理教学中的重要性。需要一个能够真正对数据库所学理论进行有效的实践的数据库管理系统。但缺少一个好的教学用数据库管理系统,现有的教学用数据库管理系统并不那么适合中国的实际情况。
因此,无论是从应用的角度还是学习数据库的理论教学的角度来看,设计与实现一个小型的数据库管理系统都是很有必要的。
1.2 研制DBMS的重要性
数据库技术产生于1970年前后。它的出现使得计算机的应用进入了新的时期,社会的每个领域都与计算机发生了联系。数据库技术聚集了数据处理最精华的思想,是管理信息最先进的工具。信息社会的紧迫需求使数据库技术成为计算机园地中一支最有生命力的新秀。而与人工智能的结合又使它获得了新的血液。20世纪80年代中期数据库技术进入一个新的层次,智能数据库、演绎数据库、专家数据库、面向对象数据库、工程数据库、多介质数据库、并行数据库、实时数据库等就是当代数据库研究的前沿。
数据库管理系统(DBMS)的研制是一件非常复杂的软件工程。它涉及的面非常广泛,需要软件、硬件及设备方面的知识;需要一定的物质条件;需要研制人员的丰富的编程经验和精深的软件技术;需要科学的管理方法和科学先进的测试技术。当然由于系统的功能和规模不一样,其复杂程度也相差很大。大一点的数据库如IMS花费几千人年,系统R的研制花费了120个专家人年以及几千程序员人年,SYSTEM2000花费400人年。数据库的设计与数据库的设计不同,前者属于系统软件设计,与机器世界比较接近,它的基础是OS;后者属于应用软件设计,与现实世界更为接近,它的基础是数据库。所以数据库是介于用户程序和OS之间的一个中间媒介,是使得物理数据库与用户程序相互独立的软件系统。
研制数据库对于从事数据库开发的科研人员和教学人员是一件十分有价值的工作。通过参加研制数据库的工作,可以加深对数据库技术的理解,弄清其来龙去脉,提高技术水平,从而改进数据库教学质量。更重要的是满足社会需求。同时数据库的研制是一件很基础的工作,是研究面向对象数据库、分布式数据库、知识库以及智能数据库的基础。因此,数据库原理一般都作为计算机专业的基础课程学习。
1.3 MyDB的设计目标
先看看国际上有关数据库发展的情况。随着计算机广泛而深入地应用与社会各行各业,作为其中重要支柱的系统软件——数据库变的越来越庞大,功能越来越强,而且这种发展势头丝毫不见有放慢的迹象。特别是随着网络通信技术的发展,现代主流的数据库厂商纷纷把网络特性集成系统之中,甚至还出现了专门应用于网络环境的分布式数据库管理系统。所有这些数据库的复杂性给数据库的设计带来很大的挑战。
如果个人想设计并实现一个商用的数据库基本上是不可能的,复杂的技术细节会把数据库的最基本的理论完全掩盖。因此,学生很难通过商用的数据库学习数据库的原理。MyDB是一个面向教学用的DBMS,这是必须首先坚持的,同时亦对DBMS的存储管理、SQL语言感兴趣。
总之,MyDB是一个基于关系代数的、用C实现的、面向教学的关系型数据库管理系统。 |