编译原理上机报告

上传人:第*** 文档编号:35031974 上传时间:2018-03-07 格式:DOC 页数:27 大小:281.63KB
返回 下载 相关 举报
编译原理上机报告_第1页
第1页 / 共27页
编译原理上机报告_第2页
第2页 / 共27页
编译原理上机报告_第3页
第3页 / 共27页
编译原理上机报告_第4页
第4页 / 共27页
编译原理上机报告_第5页
第5页 / 共27页
点击查看更多>>
资源描述

《编译原理上机报告》由会员分享,可在线阅读,更多相关《编译原理上机报告(27页珍藏版)》请在金锄头文库上搜索。

1、1 编译原理上机报告 DBMS的设计与实现 学号: 姓名: 手机: 邮箱: 完成时间: 年 月 日2 目 录 1. 项目概况 .3 1.1 基本目标 .3 1.2 完成情况 .3 2. 项目实现方案 .4 2.1 逻辑结构与物理结构 .4 2.2 语法结构与数据结构 .6 2.3 执行流程 .12 2.4 功能测试 .14 3. 总结与未来工作. .18 3.1 未完成功能 .18 3.2 未来实现方案 .18 4. 附录(源代码).203 1、项目概况 1.1 基本目标DBMS 的设计与实现: 设计并实现一个 DBMS 原型系统,可以接受基本的 SQL 语句,对其进行词法 分析、语法分析,然

2、后解释执行 SQL 语句,完成对数据库文件的相应操作,实 现 DBMS 的基本功能。目的: 1.加深编译原理基础知识的理解:词法分析、语法分析、语法制导翻译等; 2.加深相关基础知识的理解:数据库系统、数据结构、操作系统等。 1.2 完成情况 已经实现的功能、语句: 1、CREATE DATABASE 、USE DATABASE 、CREATE TABLE 、INSERT、SELECT 、UPDATE 、DELETE 、DROP TABLE 、DROP DATABASE 的词法规则 2、CREATE DATABASE 、USE DATABASE 、CREATE TABLE 、INSERT、SE

3、LECT 、UPDATE 、DELETE 、DROP TABLE 、DROP DATABASE 的语法规则 3、CREATE DATABASE、USE DATABASE 、CREATE TABLE 、SELECT 的部分语法制导翻译4 2.项目实现方案 2.1 逻辑结构与物理结构 为了要实现 SQL 语句,增加的元数据: 表字典结构: struct TableDictionarychar *table;int page;struct TableDictionary *nexttable; 列字典结构: struct RowDictionarychar *table;int rowid;char

4、 *field;int offset;int width; 元数据的逻辑结构: 数据库可分为系统数据库与用户数据库。数据库信息分为元数据和基本数 据,可以作为两个物理文件分开保存。5 系统数据库 sys: 使用 database 表保存用户数据库的相关信息,使用 security 表保存安全控 制的相关信息等,具体包含 2个文件: 1、元数据文件 sys.db 表字典:表在基本数据文件 sys.dat 中的起始页数,如 database 表开始于 0 页、security 表开始于 4页; 列字典: database 表的结构:列的名称、宽度等; security 表的结构:列的名称、宽度等;

5、 2、基本数据文件 sys.dat database 表的具体内容:用户数据库名、元数据文件名、基本数据文件名 等; security 表的具体内容:用户名、用户数据库名等; 用户数据库 xjgl 结构: 1、元数据文件 xjgl.db 表字典:表在基本数据文件 xjgl.dat 中的起始页数,如 course 表开始于 0 页,其它表的开始页数; 列字典: course 表的结构:列的名称、宽度等; 其它表的结构; 2、基本数据文件 sys.dat course 表的具体内容:课程号 cno,课程名 cname,学分 ccredit 等; 其它表的具体内容;6 表 1 系统元数据的逻辑结构

6、结构 列名 类型 表名 Char(20) 起始页 Char(20) 表字典 . . 表名 Char(20) 列号 int 列名 Char(20) 偏移 int 宽度 int 列字典 . . 表2 系统基本数据文件逻辑结构 表名 列名 类型 database 表 用户数据库名 Char(20) 元数据文件名 Char(20)基本数据文件名 Char(20) . . security 表 用户名 Char(20) 用户数据库名 Char(20) . .表3 用户元数据的逻辑结构 结构 列名 类型 表名 Char(20) 起始页 Char(20) 表字典 . . 表名 Char(20) 列号 int

7、 列名 Char(20) 偏移 int 宽度 int 列字典 . .7表 4 用户基本数据文件的逻辑结构 用户表的具体内容 . . 2.2 语法结构与数据结构 CREATE 语句的产生式语法结构: createsql: CREATE TABLE table ( fieldsdefinition ) ; 非终结符 createsql 的属性使用如下结构说明: typedef struct _createstruct /*create 语法树根节点*/ char *table; _createfieldsdef_type *fdef; _createstruct_type; 非终结符 fields

8、definition 的_createfieldsdef_type 数据结构如下: typedef struct _createfieldsdef/*create 语句中的字段定义*/ char *field; enum TYPE type; int length; struct _createfieldsdef *next_fdef; _createfieldsdef_type; 配以实例说明该数据结构: CREATE TABLE Student8( Sno CHAR(9), Sname CHAR(20), Ssex CHAR(2), Sage INT ); 对应的数据结构如下图所示: ta

9、ble fdef Student field type Sno CHAR length next_fdef 9 field type Sname CHAR length next_fdef 20 field type Ssex CHAR length next_fdef 2 field type Sage INT length next_fdef 4 NULL 图 2 数据结构图 SELECT 语句的产生式语法结构: selectsql: SELECT fields_star FROM tables ;| SELECT fields_star FROM tables WHERE conditi

10、ons ; 非终结符 selectsql 的属性使用如下结构说明: struct Selectstruct /*select 语法树的根节点*/ struct Selectedfields *sf; /所选字段 struct Selectedtables *st;/所选基本表 struct Conditions *s_cons; /条件 ; 非终结符 conditions 的数据结构如下: struct Conditions/*条件*/ struct Conditions *left; /左部条件 struct Conditions *right; /右部条件 char comp_op; /*

11、 a是 and, o是 or, , =, != */9 int type; /* 0 是字段,1是字符串,2是整数 */ char *value;/* 根据 type 存放字段名、字符串或整数 */ char *table;/* NULL 或表名 */ ; 非终结符 fields_star 的 Selectedfields 数据结构如下: struct Selectedfields/*select 语句中选中的字段*/ char *table; /字段所属表 char *field; /字段名称 struct Selectedfields *next_sf;/下一个字段 ; 非终结符 tabl

12、es 的 Selectedtables 数据结构如下: struct Selectedtables /*select 语句中选中的表*/ char *table; /基本表名称 struct Selectedtables *next_st; /下一个表 ; 配以实例说明该数据结构: SELECT Sno, Sname FROM student WHERE Ssex=男 AND Sage=20; 对应的数据结构如下图所示:10 sf st table field Sno next_sf cons table field Sname next_sf NULL table next_st Student NULL left right comp_op type value table a left right comp_op type value table = left right c

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 教学课件 > 初中课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号