DBMS实验报告模板Word格式文档下载.doc

上传人:b****2 文档编号:14617260 上传时间:2022-10-23 格式:DOC 页数:16 大小:1.30MB
下载 相关 举报
DBMS实验报告模板Word格式文档下载.doc_第1页
第1页 / 共16页
DBMS实验报告模板Word格式文档下载.doc_第2页
第2页 / 共16页
DBMS实验报告模板Word格式文档下载.doc_第3页
第3页 / 共16页
DBMS实验报告模板Word格式文档下载.doc_第4页
第4页 / 共16页
DBMS实验报告模板Word格式文档下载.doc_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

DBMS实验报告模板Word格式文档下载.doc

《DBMS实验报告模板Word格式文档下载.doc》由会员分享,可在线阅读,更多相关《DBMS实验报告模板Word格式文档下载.doc(16页珍藏版)》请在冰豆网上搜索。

DBMS实验报告模板Word格式文档下载.doc

1.项目概况

1.1基本目标

DBMS的设计与实现:

设计并实现一个DBMS原型系统,可以接受基本的SQL语句,对其进行词法分析、语法分析,然后解释执行SQL语句,完成对数据库文件的相应操作,实现DBMS的基本功能。

目的:

1.加深编译原理基础知识的理解:

词法分析、语法分析、语法制导翻译等;

2.加深相关基础知识的理解:

数据库系统、数据结构、操作系统等。

1.2完成情况

已经实现的功能、语句。

CREATEDATABASEDB;

USEDB;

//CREATE测试

CREATETABLESTUDENT(SNAMECHAR(8),SAGEINT,SSEXCHAR(4));

CREATETABLECOURSE(CNAMECHAR(9),CCREDITINT);

CREATETABLESC(SNAMECHAR(8),CNAMECHAR(9),GRADEINT);

//INSERT测试

INSERTINTOSTUDENTVALUES(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);

INSERTINTOSCVALUES(WANG,SA,90);

SELECTSNAME,CNAME,GRADEFROMSC;

//SHOW测试

SHOWTABLE;

//SELECT测试

SELECT*FROMSTUDENT;

selectSNAMEfromSTUDENT;

//小写

SELECTSNAMEFROMSTUDENTWHERESAGE=21;

SELECTCNAME,CCREDITFROMCOURSEWHERECNAME=DB;

SELECTCNAMEFROMCOURSEWHERECCREDIT=5;

//没有匹配情况

//UPDATE测试

UPDATESTUDENTSETSSEX=WWHERESAGE=22;

UPDATECOURSESETCCREDIT=5WHERECNAME=DB;

//DELETE测试

DELETEFROMSTUDENTWHERESAGE=22;

DELETEFROMCOURSEWHERECNAME=AB;

//删除失败情况

//DROP测试

DROPTABLESC;

//EXIT测试

EXIT;

//退出系统

2.项目实现方案

2.1逻辑结构与物理结构

为了要实现增加的SQL语句,通过文件db.db保存所创建的数据库,通过文件***table.db和***field.db保存用户所创建表的信息和列的信息,对每一个表建立单独文件保存所插入的记录。

Db.db文件需要保存所创建的数据库名称。

***table.db文件用来保存所建立的表名以及列的个数。

***field.db文件用来保存每个表的列名、序号、类型、长度。

这样做的优点当然是简化DBMS编程难度,减少数据库物理存储方面的编程。

但是没有真正实现DBMS的物理存储。

2.2语法结构与数据结构

createsql正规式:

CREATETABLEtable'

('

fieldsdefinition'

)'

'

;

'

createsql语句的产生式语法结构:

struct Createfieldsdef{ /*createsql中的字段定义*/

char *field;

//字段名称

inttype;

//字段类型

int length;

//字段长度

structCreatefieldsdef*next_fdef;

//下一字段

};

struct Createstruct{ /*createsql语法树根节点*/

char *table;

//基本表名称

structCreatefieldsdef *fdef;

//字段定义

例如:

CREATETABLEStudent

(SnoCHAR(9),SnameCHAR(20),SsexCHAR

(2),SageINT);

对应的数据结构如下图所示:

图1createsql对应的数据结构

Selectsql正规式:

SELECTtable_fieldsFROMtables'

|SELECTtable_fieldsFROMtablesWHEREconditions'

selectsql语句的产生式语法结构:

struct Conditions{ /*条件*/

structConditions *left;

//左部条件

structConditions *right;

//右部条件

char comp;

/*'

a'

是and,'

o'

是or,'

<

'

>

='

‘!

*/

int type;

/*0是字段,1是字符串,2是整数*/

char *value;

/*根据type存放字段名、字符串或整数*/

intnumvalue;

char *table;

/*NULL或表名*/

struct Selectfields{/*select语句中选中的字段*/

char *table;

//字段所属表

char *field;

//字段名称

struct Selectfields *next_sf;

//下一个字段

struct Selecttables{ /*select语句中选中的表*/

char *table;

//基本表名称

structSelecttables*next_st;

//下一个表

structSelectstruct

{ /*select语法树的根节点*/

structSelectfields *sf;

//所选字段

structSelecttables *st;

//所选基本表

structConditions *cons;

//条件

SELECTSno,SnameFROMstudentWHERESsex='

男'

ANDSage=20;

图2selectsql对应的数据结构

insertsql正规式:

INSERTINTOtableVALUES'

table_values'

insertsql语句的产生式语法结构:

structInsertstruct

{

char*table;

structInsertvalue*next_val;

structInsertvalue

intnumval;

char*charval;

structInsertvalue*next;

图3insertsql对应的数据结构

updatesql正规式:

UPDATEtableSETexpsWHEREconditions'

updatasql语句的产生式语法结构:

structUpdatevalue

char*field;

char*field_value;

structUpdatevalue*next;

showsql正规式:

showtable:

SHOWTABLE'

dropsql正规式:

dropsql:

DROPTABLEtable'

Usesql正规式:

USEdatabasename'

exitsql正规式:

EXIT'

Databasesql正规式:

CREATEDATABASEdatabasename'

Deletesql正规式:

DELETEFROMtableWHEREconditions'

2.3功能测试

测试所实现的SQL语句的基本功能:

测试1

输入:

输出:

测试2

测试3

测试4

测试5

测试6

测试7

测试8

SELECTSNAME,SAGE,SSEXFROMST

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 工作计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1