小型数据库
——命令解析器、数据存储的设计与实现
摘 要
当今时代,“数据”已经成为一种资源。随着各种数据获取技术和数据库技术的迅速发展,人们积累的数据越来越多,如何更加合理的管理数据显得更加重要。小型数据库就是模拟目前比较流行的一些大型数据库,实现通过在命令行输入相应命令来对数据进行存储,管理和查询。
该小型数据库MyDB包括两大模块:SQL命令解析器及数据存储模块。SQL命令解析器负责解析用户命令并完成用户对表的创建、删除、插入、更新等操作;数据存储模块的主要功能是保存和管理用户的数据。整个系统是用C语言、采用模块化的程序设计思想实现的。
关键词:MyDB;命令解析;数据存储;C语言
目 录
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.普遍只强调理论,不重视实践,在学习过程中难以对概念深刻领悟,课程结束后就很快把其中许多内容给淡忘掉了。
2.现有对数据库的实践也是流于形式,内容肤浅与真实的数据库管理系统相去甚远。比如用SQL语言对数据库进行一定的创建查询操作。这些实践都不过是对数据库管理系统的使用,根本谈不上了解数据库本身的运行机理。而且这些实践都太过理想化,完全把底层原理透明化了,这些实践充其量只不过是对SQL语言熟悉而已。
3.用真实的数据库管理系统来实践显然要好得多。但现实中的数据库管理系统都太过庞大,比如开源的数据库管理系统MYSQL,仅源代码就达数十万行之多。专业人员阅读起来都不会很容易,更不要说刚读本科的学生对其进行修改了,所以收效甚微。
以上三点明显地说明了:“实践”在数据库原理教学中的重要性。需要一个能够真正对数据库所学理论进行有效的实践的数据库管理系统。但缺少一个好的教学用数据库管理系统,现有的教学用数据库管理系统并不那么适合中国的实际情况。
因此,无论是从应用的角度还是学习数据库的理论教学的角度来看,设计与实现一个小型的数据库管理系统都是很有必要的。