资源描述:
《DBMS实验报告模板.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、编译原理上机报告《DBMS的设计与实现》学号:姓名:黄海兵手机:邮箱:@qq.com完成时间:2013年6月3日目录1.项目概况31.1基本目标31.2完成情况32.项目实现方案62.1逻辑结构与物理结构62.2语法结构与数据结构62.3功能测试113.总结与未来工作163.1未完成功能163.2未来实现方案16项目概况1.1基本目标DBMS的设计与实现:设计并实现一个DBMS原型系统,可以接受基本的SQL语句,对其进行词法分析、语法分析,然后解释执行SQL语句,完成对数据库文件的相应操作,实现DBMS的基本功能。目的:1.加深编译原
2、理基础知识的理解:词法分析、语法分析、语法制导翻译等;2.加深相关基础知识的理解:数据库系统、数据结构、操作系统等。1.2完成情况已经实现的功能、语句。CREATEDATABASEDB;USEDB;//CREATE测试CREATETABLESTUDENT(SNAMECHAR(8),SAGEINT,SSEXCHAR(4));CREATETABLECOURSE(CNAMECHAR(9),CCREDITINT);CREATETABLESC(SNAMECHAR(8),CNAMECHAR(9),GRADEINT);//INSERT测试INSER
3、TINTOSTUDENTVALUES(HUANG,22,M);INSERTINTOSTUDENTVALUES(HAI,21,M);INSERTINTOSTUDENTVALUES(BING,23,W);SELECTSNAME,SAGE,SSEXFROMSTUDENT;INSERTINTOCOURSEVALUES(DB,3);INSERTINTOCOURSEVALUES(SA,4);SELECTCNAME,CCREDITFROMCOURSE;INSERTINTOSCVALUES(HUANG,DB,85);INSERTINTOSCVALUE
4、S(WANG,SA,90);SELECTSNAME,CNAME,GRADEFROMSC;//SHOW测试SHOWTABLE;//SELECT测试SELECT*FROMSTUDENT;selectSNAMEfromSTUDENT;//小写SELECTSNAMEFROMSTUDENTWHERESAGE=21;SELECTCNAME,CCREDITFROMCOURSEWHERECNAME=DB;SELECTCNAMEFROMCOURSEWHERECCREDIT=5;//没有匹配情况//UPDATE测试UPDATESTUDENTSETSSEX
5、=WWHERESAGE=22;SELECTSNAME,SAGE,SSEXFROMSTUDENT;UPDATECOURSESETCCREDIT=5WHERECNAME=DB;SELECTCNAME,CCREDITFROMCOURSE;//DELETE测试DELETEFROMSTUDENTWHERESAGE=22;SELECTSNAME,SAGE,SSEXFROMSTUDENT;DELETEFROMCOURSEWHERECNAME=AB;//删除失败情况//DROP测试DROPTABLESC;SHOWTABLE;//EXIT测试EXIT;
6、//退出系统1.项目实现方案1.1逻辑结构与物理结构为了要实现增加的SQL语句,通过文件db.db保存所创建的数据库,通过文件***table.db和***field.db保存用户所创建表的信息和列的信息,对每一个表建立单独文件保存所插入的记录。Db.db文件需要保存所创建的数据库名称。***table.db文件用来保存所建立的表名以及列的个数。***field.db文件用来保存每个表的列名、序号、类型、长度。这样做的优点当然是简化DBMS编程难度,减少数据库物理存储方面的编程。但是没有真正实现DBMS的物理存储。1.2语法结构与数据
7、结构createsql正规式:CREATETABLEtable'('fieldsdefinition')'';'createsql语句的产生式语法结构:structCreatefieldsdef{/*createsql中的字段定义*/char*field;//字段名称inttype;//字段类型intlength;//字段长度structCreatefieldsdef*next_fdef;//下一字段};structCreatestruct{/*createsql语法树根节点*/char*table;//基本表名称structCrea
8、tefieldsdef*fdef;//字段定义};例如:CREATETABLEStudent(SnoCHAR(9),SnameCHAR(20),SsexCHAR(2),SageINT);对应的数据结构如下图所示:图1cr