1、数据库系统原理数据库系统原理课程设计文档学号: 姓名: 一、DBMS的实现方式在WindowsXP下,使用Dev-C+环境,用C+语言编写。二、DBMS的功能介绍 1. 词法分析2. 语法分析3. 检查表是否已经存在4. 检查属性是否已经存在5. 建表6. 删表7. 为已经建立的添加属性8. 为已经建立的表删除属性9. 为已经建立的表添加数据10. 为已经建立的表删除数据11. 更新数据12. 显示数据库的结构和功能13. 实现全关系选择操作(select * from 关系名)。14. 实现单关系的投影操作。15. 实现单关系的选择操作(允许多条件)。16. 实现单关系的选择和投影操作(允许
2、多条件)。17. 实现两个关系和多个关系的连接操作。18. 实现两个关系和多个关系的选择和连接操作。19. 实现多个关系的选择、投影和连接操作。20. 实现带视图的查询。21. 为某关系的主属性建立索引。22. 利用索引属性完成选择操作。23. 把查询转换成语法树。24. 用高级语言实现启发式关系代数优化算法。25. 要求根据数据字典(DD)实现对数据库的安全性检查。包括设置口令、密码和权限等。三、DBMS算法实现算法描述 实验二:对用户输入的字符流做词法分析,形成单词流,然后使用SLR1算法对其进行语法分析,SLR1分析程序使用MyYacc生成,然后对生成的程序进行适当的改造。 实验三:每一
3、个表使用两个文件进行存储,一个是.dbf文件,用来存储实际的数据,一个是.dic文件用来存储表的结构,对用户输入的命令进行判断,通过对对应的.dbf和.dic文件进行适当的增、删、改,实现相应的功能。 实验四、实验六:对用户输入的select语句进行检查,验证其合法性,然后将根据用户输入的select语句构建查询树,构建完成后进行选择条件的下移,继而确定投影,然后开始实际的执行,最后从最终的结果文件中读出结果,并显示在屏幕上。 实验五:本实验使用的是B树索引,当创建索引的时候,将数据从数据文件中一条一条地读出来,将索引项和该数据距离文件首部的偏移量插入到B树中,当进行查询的时候,先判断对应的列
4、有无索引,若有,则在查询中利用该索引,以提高查询效率 实验七:建立一张用户表,每次登陆的时候,进行用户名和密码的验证,在进入系统后,对于用户每输入的一条命令,都去判断用户是否有权限执行该命令,若有权限,则执行,否则不执行。程序流程图四、实验测试用例与结果一、实验二 二、实验三三、实验四、实验六 四、实验五 五、实验七五、关键技术 本实验的语法分析程序使用了自己开发的自动生成工具MyYacc,大大方便了语法分析程序的编写。并且还大量使用了自己开发的模板库,使得程序的编写大大简化,并且使用类将相关的内容封装在一起,提高了程序的模块化程度。六、总结这个实验是我做过的规模最大的一个实验了,通过这个实验真的学到了很多,同时也是对以前学过的知识的一种综合。这次的实验虽然还是有很多功能做的不是很完整,但是通过自己动手真的是受益匪浅。首先,使得我对于数据库课上的内容有了更为深刻的认识;其次,使得我对于程序设计中如何管理大量的代码的能力有了很大的提高;再次,使得我重温了以前学过的编译原理、数据结构等课程。虽然在做这个实验中也遇到了很多难题,也有过困惑,但最终还是走了下来,完成了相关的实验内容。七、参考文献 数据库系统原理( 第二版 ) 李建中 王珊 编著