| 注册
home doc ppt pdf
请输入搜索内容

热门搜索

年终总结个人简历事迹材料租赁合同演讲稿项目管理职场社交

西电编译原理上机报告DBMS的设计与实现

z***u

贡献于2022-08-26

字数:16590



编译原理机报告


DBMS设计实现





学号: 姓名:
手机: 邮箱:








完成时间:2013 年X月X日
目 录
1 项目概况 3
11 基目标 3
12 完成情况 3
2 项目实现方案 4
21 逻辑结构物理结构 4
22 语法结构数结构 7
23 执行流程 19
24 功测试 39
3 总结未工作 48
31 未完成功 48
32 未实现方案 48

1 项目概况
11 基目标
设计实现DBMS原型系统接受基SQL语句进行词法分析语法分析然解释执行SQL语句完成数库文件相应操作实现DBMS基功

12 完成情况
1CREATE DATABASE 创建数库
2SHOW DATABASES 显示数库名
3DROP DATABASE 删数库
4USE DATABASE 选择数库
5CREATE TABLE 创建表
6SHOW TABLES 显示表名
7DROP TABLE 删表
8INSERT 插入元组
9SELECT 查询元组
10DELETE 删元组
11UPDATE 更新元组
12EXIT 退出系统
2 项目实现方案
21 逻辑结构物理结构
1逻辑结构
(1)系统数库
1)元数逻辑结构
设计系统数库中然建元数文件文件中没数元数逻辑结构存
2)基数逻辑结构
表1 系统数库基数逻辑结构

列名
说明
类型
name
数库名称
char(20)
dbfile
数库元数文件名称
char(40)
datfile
数库基数文件名称
char(40)

(2)户数库
1)元数逻辑结构
设计中数库中表创建基数文件需ppt中起始页添加表中列数目列表示:
表2 户数库元数逻辑结构
列名
说明
类型
tname
表名称
char(20)
col_count
表中列数目
int(4)
tname
表名称前面样
char(20)
col_num
列号
int(4)
col_name
列名
char(10)
col_type
列类型
int(4)
offset
偏移
int(4)
width
宽度
int(4)
说明:表中col_type列取值整数1表示字符串2表示整型
2)基数逻辑结构
ppt中参考方案数库中表表基数均存放数库名基数文件中表创建表名基数文件基数逻辑结构表结构关然然表创建表名基数文件系统数库基数相匹配然创建数库名基数文件文件空没逻辑结构

2物理结构
数库文件均存放名mydb根文件夹根文件夹创建元数文件sysdb创建基数文件sysdat创建数库(xjgl)时根文件夹创建数库名文件夹(xjgl)文件夹创建数库名元数文件(xjgldb)创建数库名基数文件(xjgldat)创建表(student)时表属数库文件夹创建表基数文件(studentdat)
(1)系统数库
1)元数物理结构
设计数库中仅仅mydb根文件夹创建sysdb文件文件中没数
2)基数物理结构
mydb根文件夹创建sysdat文件文件中数保存实例表:
表3 系统数库基数物理结构
name
dbfile
datfile
xjgl
xjgldb
xjgldat




(2)户数库
1)元数物理结构
数库(xjgl)名文件夹创建数库名元数文件(xjgldb)文件中数保存实例表:
表4 户数库元数物理结构
student
3
student
0
sname
1
0
20
student
1
sage
2
20
4
student
2
ssex
2
24
4
course
2
course
0
cname
1
0
20
course
1
cid
2
20
4
cs
2
cs
0
sname
1
0
20
cs
1
cid
2
20
4
2)基数物理结构
数库(xjgl)名文件夹创建数库名基数文件(xjgldat)文件中存放表基数表基数均存放表名基数文件中student表中基数存放studentdat文件中course表中基数存放coursedat文件中sc表中基数存放scdat文件中文件中数保存实例两表:
表5 户数库student表基数物理结构
sname
sage
ssex
zhangsan
22
1
lisi
23
0
wangwu
21
0
zhouliu
22
1
xiaobai
23
0
xiaohei
19
0

表6 户数库course表基数物理结构
cname
cid
db
1
complier
2
c
3

3优缺点
(1)优点:表应基数文件表操作容易理解文件指针移动易出错
(2)缺点:存空文件浪费存储空间

22 语法结构数结构
1CREATE DATABASE语句
(1)产生式语法结构:
create_database CREATE DATABASE database ''
非终结符create_database属性右结构说明:char *yych
非终结符database属性:database ID (字符串)
(2)实例说明该数结构:
CREATE DATABASE XJGL
应数结构图示:

图1 数结构图

2SHOW DATABASES语句
(1)产生式语法结构:
show_databases SHOW DATABASES ''
非终结符show_databases属性
(2)实例说明该数结构:
SHOW DATABASES
数结构

3DROP DATABASE语句
(1)产生式语法结构:
drop_database DROP DATABASE database ''
非终结符drop_database属性右结构说明:char *yych
非终结符database属性:database ID (字符串)
(2)实例说明该数结构:
DROP DATABASE XJGL
应数结构图示:

图2 数结构图

4USE DATABASE语句
(1)产生式语法结构:
use_database USE database ''
非终结符use_database属性右结构说明:char *yych
非终结符database属性:database ID (字符串)
(2)实例说明该数结构:
USE XJGL
应数结构图示:

图3 数结构图

5CREATE TABLE语句
(1)产生式语法结构:
createsql CREATE TABLE table '(' fieldsdefinition ')' ''
table ID
fieldsdefinition field_type
| fieldsdefinition '' field_type
field_type field type
field ID
type CHAR '(' NUMBER ')' | INT
非终结符createsql属性结构说明:
struct Createstruct{ create语法树根节点
char *table
struct Createfieldsdef *fdef
}
非终结符fieldsdefinitionfield_type属性结构说明:
struct Createfieldsdef{ create语句中字段定义
char *field
int type
int length
struct Createfieldsdef *next_fdef
}
非终结符type属性结构说明:
struct Type_def{ create语句中字段类型定义
int type
int length
}
(2)实例说明该数结构:
CREATE TABLE Student (Sname CHAR(20) Sage INT Ssex INT )
应数结构图示:

图4 数结构图

6SHOW TABLES语句
(1)产生式语法结构:
show_tables SHOW TABLES ''
非终结符show_tables属性
(2)实例说明该数结构:
SHOW TABLES
数结构

7DROP TABLE语句
(1)产生式语法结构:
drop_table DROP TABLE table ''
非终结符drop_table属性右结构说明:char *yych
非终结符table属性:table ID (字符串)
(2)实例说明该数结构:
DROP table course
应数结构图示:

图5 数结构图

8INSERT语句
(1)产生式语法结构:
insertsql INSERT INTO table VALUES '(' insert_values ')' ''
| INSERT INTO table '(' insert_fields ')' VALUES '(' insert_values ')' ''
insert_fields insert_field | insert_fields '' insert_field
insert_field ID
insert_values insert_value | | insert_values '' insert_value
insert_value '\'' ID '\'' | NUMBER
非终结符insertsql属性结构说明:
struct Insertstruct{ insert语法树根节点
char *table
struct Insertedfields *insert_fields
struct Insertedvalues *insert_values
}
非终结符insert_fieldsinsert_field属性结构说明:
struct Insertedfields{ insert语句中插入列定义
char *field
struct Insertedfields *next_field
}
非终结符insert_valuesinsert_value属性结构说明:
struct Insertedvalues{ insert语句中插入值定义
int type
char *value
struct Insertedvalues *next_value
}
(2)实例说明该数结构:
INSERT INTO Student(SnameSageSsex) VALUES(zhangsan221)
应数结构图示:

图6 数结构图

9SELECT语句
(1)产生式语法结构:
selectsql SELECT fields_star FROM tables ''
| SELECT fields_star FROM tables WHERE conditions ''
fields_star table_fields | '*'
table_fields table_field | table_fields '' table_field
table_field field | table '' field
tables tables '' table | table
conditions condition | '(' conditions ')' | conditions AND conditions
| conditions OR conditions
condition comp_left comp_op comp_right
comp_left table_field | NUMBER | '\'' ID '\''
comp_right table_field | NUMBER | '\'' ID '\''
comp_op '<' | '>' | '' | '' ''
非终结符selectsql属性结构说明:
struct Selectstruct{ select语法树根节点
struct Selectedfields *sf
struct Selectedtables *st
struct Conditions *cons
}
非终结符fields_startable_fieldstable_field属性结构说明:
struct Selectedfields{ select语句中查询列定义
char *table
char *field
struct Selectedfields *next_sf
}
非终结符tables属性结构说明:
struct Selectedtables{ select语句中查询表定义
char *table
struct Selectedtables *next_st
}
非终结符conditionconditionscomp_leftcomp_rightcomp_op属性结构说明:
struct Conditions{ select语句中查询条件定义
struct Conditions *left
struct Conditions *right
char comp_op
int type
char *value
char *table
}
(2)实例说明该数结构:
SELECT SnameSage FROM Student WHERE (Sage>21) AND (Ssex0)
应数结构图示:

图7 数结构图

10 DELETE语句
(1)产生式语法结构:
deletesql DELETE FROM table ''
| DELETE FROM table WHERE conditions ''
非终结符deletesql属性结构说明:
struct Deletestruct{ delete语法树根节点
char *table
struct Conditions *cons
}
(2)实例说明该数结构:
DELET FROM Student WHERE Sage<21
应数结构图示:

图8 数结构图

11UPDATE语句
(1)产生式语法结构:
updatesql UPDATE table SET field_expressions ''
| UPDATE table SET field_expressions WHERE conditions ''
field_expressions field_expression
| field_expressions '' field_expression
field_expression field '' expression
expression '\'' ID '\'' | NUMBER
非终结符updatesql属性结构说明:
struct Updatestruct{ update语法树根节点
char *table
struct Updatedfields *fe
struct Conditions *cons
}
非终结符field_expressionsfield_expression属性结构说明:
struct Updatedfields{ update语句中更新字段定义
char *field
struct Expression *expression
struct Updatedfields *next_fe
}
非终结符expression属性结构说明:
struct Expression{ update语句中更新值定义
int type 1表示字符串2表示整数
char *value
}
(2)实例说明该数结构:
UPDATE Student SET Sage21 WHERE Ssex1
应数结构图示:

图9 数结构图

12EXIT语句
(1)产生式语法结构:
exit EXIT ''
(2) 实例说明该数结构:
EXIT
数结构



23 执行流程
外部函数:
函数名称:judge_cons(struct Conditions *p)
函数说明:删者更新表数时判断语句中条件否正确检查条件中字段否存条件中操作符两端数类型否致
输入参数:struct Conditions *p条件结点
输出参数:1表示正确0表示错误
执行流程:
(1)判断条件左部否空空转(2)空转(3)
(2)条件左部参数递调左部返回值左部返回值0返回0左部返回值1条件右部参数递调右部返回值右部返回值0返回0右部返回时1返回1
(3)条件类型字段检查表中否存字段存置标志变量0存判断层条件左部右部左部记录字段类型置标志变量1右部判断字段类型左部条件类型否相相置标志变量1置标志变量0 条件类型字符串整型判断层条件左部右部左部记录时条件类型置标志变量1右部判断条件类型左部条件类型否相相置标志变量1置标志变量0返回标志变量

函数名称:judge(struct Conditions *p)
函数说明:删者更新表数时判断表中元组否满足删者更新条件
输入参数:struct Conditions *p条件结点
输出参数:1表示满足条件0表示满足条件
执行流程:
(1)判断条件左部否空空转(2)空转(5)
(2)条件左部条件右部参数递调左部右部返回值左部返回值右部返回值均2转(3)否转(4)
(3)判断条件中操作符操作符>判断条件左部值否条件右部值返回1否返回0理处理操作符分>时情况
(4) 判断条件中操作符操作符a 条件左部参数递调左部返回值左部返回值0返回0左部返回值1条件右部参数递调右部返回值右部返回值0返回0右部返回时1返回1理处理操作符o时情况
(5)条件类型字段根表中字段长度偏移找该字段元组中相位置接着判断层条件左部右部左部该字段元组中值赋值左部值变量右部该字段元组中值赋值右部值变量条件类型字符串整型判断层条件左部右部左部结点p中传值赋值左部值变量右部结点p中传值赋值右部值变量判断结束返回2

函数名称:judge_set(struct Updatedfields *p)
函数说明:更新表数时判断语句中set部分否正确检查set部分中字段否存字段类型更新值类型否致
输入参数:struct Updatedfields *p更新字段结点
输出参数:1表示正确0表示错误
执行流程:
(1)set结点空时转(2)否返回1
(2)检查表中时候存该字段字段类型更新值类型否致p转更新字段结点转(1)否返回0

函数名称:update_data(struct Updatedfields *p)
函数说明:更新数表中元组标记更新时更新元组然改变元组写进新文件否直接原元组写进新文件
输入参数:struct Updatedfields *p更新字段结点
输出参数:返回值
执行流程:
(1)判断元组否标记更新转(2)否转(3)
(2)根结点p元组中set部分中需更新字段进行更新字段更新完成转(3)
(3)元组写入新文件

函数名称:judge_sf(struct Selectedfields *p)
函数说明:进行查询时判断选择属性列否正确(表中否存表查询带表名称时否唯)
输入参数:struct Selectedfields *p查询属性列结点
输出参数:1表示选择属性列正确0表示选择属性列错误
执行流程:
(1)判断选择属性列结点容否空空(表示选择属性列*)返回1否转(2)
(2)判断选择属性列结点p否空空转(4)否转(3)
(3)判断前属性列否注明属表注明属表先找表表中检查属性列否存存p指属性列结点转(2)存表示属性列存输出错误返回0未注明属表查询表中查找属性列存唯p指属性列结点转(2)否输出应错误返回0
(4)返回1

函数名称:judge_sel_cons(struct Conditions *p)
函数说明:查询表时判断语句中条件否正确检查条件中字段否存条件中操作符两端数类型否致
输入参数:struct Conditions *p条件结点
输出参数:1表示正确0表示错误
执行流程:
(1)判断条件左部否空空转(2)空转(3)
(2)条件左部参数递调左部返回值左部返回值0返回0左部返回值1条件右部参数递调右部返回值右部返回值0返回0右部返回时1返回1
(3)条件类型字段注明字段属表先找表表中检查字段否存存置标志变量0存判断层条件左部右部左部记录字段类型置标志变量1右部判断字段类型左部条件类型否相相置标志变量1置标志变量0未注明字段属表查询表中查找字段存置标志变量0存判断层条件左部右部左部记录字段类型置标志变量1右部判断字段类型左部条件类型否相相置标志变量1置标志变量0
条件类型字符串整型判断层条件左部右部左部记录时条件类型置标志变量1右部判断条件类型左部条件类型否相相置标志变量1置标志变量0
返回标志变量
说明:函数judge _cons(struct Conditions *p)函数执行流程基致唯区前者针查询语句条件中字段涉表者针删更新语句条件中字段仅仅涉表

函数名称:create_file()
函数说明:进行表查询时表中元组进行连接新元组存入新文件中(适单表查询)
输入参数:输入参数
输出参数:返回值
执行流程:
(1)置变量i初始0转(2)
(2)变量值查询涉表数量时转(3)
(3)i0第表中元组全部存入文件file1转(2)i0文件file1中元组第i+1表中元组笛卡尔积形式连接新元组存入文件file2中删文件file1文件file2重命名file1转(2)

函数名称:judge_sel(struct Conditions *p)
函数说明:查询表数时判断表中元组否满足查询条件
输入参数:struct Conditions *p条件结点
输出参数:1表示满足条件0表示满足条件
执行流程:
(1)判断条件左部否空空转(2)空转(5)
(2)条件左部条件右部参数递调左部右部返回值左部返回值右部返回值均2转(3)否转(4)
(3)判断条件中操作符操作符>判断条件左部值否条件右部值返回1否返回0理处理操作符分>时情况
(4) 判断条件中操作符操作符a 条件左部参数递调左部返回值左部返回值0返回0左部返回值1条件右部参数递调右部返回值右部返回值0返回0右部返回时1返回1理处理操作符o时情况
(5)条件类型字段注明字段属表先找表表中找字段根表中字段长度偏移找该字段元组中相位置接着判断层条件左部右部左部该字段元组中值赋值左部值变量右部该字段元组中值赋值右部值变量未注明字段属表查询表中查找找字段根表中字段长度偏移找该字段元组中相位置接着判断层条件左部右部左部该字段元组中值赋值左部值变量右部该字段元组中值赋值右部值变量
条件类型字符串整型判断层条件左部右部左部结点p中传值赋值左部值变量右部结点p中传值赋值右部值变量判断结束返回2
说明:函数judge (struct Conditions *p)函数执行流程基致唯区前者针查询语句条件中字段涉表者针删更新语句条件中字段仅仅涉表

函数名称:put_sf(struct Selectedfields *p)
函数说明:查询数时输出结果时输出查询属性列名称
输入参数:struct Selectedfields *p查询属性列结点
输出参数:返回值
执行流程:
(1)判断选择属性列结点容否空空(表示选择属性列*)输出查询涉表属性列名称转(4)否转(2)

(2)判断选择属性列结点p否空空转(4)否转(3)
(3)输出属性列结点中属性列名称p指属性列结点转(2)
(4)输出换行结束

函数名称:select_data(struct Selectedfields *p)
函数说明:选择数文件中元组标记选择时根传入参数p选择中全部者部分属性列逐条输出
输入参数:struct Selectedfields *p查询属性列结点
输出参数:返回值
执行流程:
(1)判断元组否标记更新转(2)否转(5)
(2)判断选择属性列结点容否空空(表示选择属性列*)输出整元组转(5)否转(3)
(3)判断选择属性列结点p否空空转(5)否转(4)
(4)判断前属性列否注明属表注明属表先找表表中找属性列根表中属性列长度偏移找该属性列元组中相位置输出元组该属性列值p指选择属性列结点未注明属表查询表中查找找属性列根表中属性列长度偏移找该属性列元组中相位置输出元组该属性列值p指选择属性列结点转(3)
(5)结束

1CREATE DATABASE语句
(1)执行流程:
开文件sysdat检查创建数库否已存存允许创建数库输出创建失败存创建数库需创建数库信息写入文件sysdat末尾接着创建数库名文件夹文件夹创建数库名元数文件(db)基数文件(dat)输出创建成功关闭文件sysdat
(2)执行流程图:

图10 执行流程图

2SHOW DATABASES
(1)执行流程:
开文件sysdat检查文件否空空输出文件中数库空逐条输出文件中数库关闭文件sysdat
(2)执行流程图:

图11 执行流程图

3DROP DATABASE
(1)执行流程:
开文件sysdat检查删数库否存存删数库失败存检查删数库否前选择数库关闭前数库(关闭开数库元数文件置指数库元数文件指针空置指数库名称字符指针空)接着删数库名文件夹文件文件夹修改文件sysdat删文件中数库记录关闭文件sysdat
(2)执行流程图:

图12 执行流程图

4USE DATABASE
(1)执行流程:
判断前否已选择数库关闭前选择数库开文件sysdat检查选择数库否存存选择数库失败存开数库名文件夹名元数文件保存指数库元数文件文件指针字符指针指数库名称选择数库成功关闭文件sysdat
(2)执行流程图:

图13 执行流程图

5CREATE TABLE
(1)执行流程:
判断前否已选择数库(检查指数库元数文件文件指针否空)文件指针空创建表失败文件指针空数库元数文件中查找创建表否已存存创建表失败存create语法树中表信息存入元数文件末尾创建表名基数文件(dat)创建表成功
(2)执行流程图:

图14 执行流程图

6SHOW TABLES
(1)执行流程:
判断前否已选择数库(检查指数库元数文件文件指针否空)文件指针空输出表失败文件指针空检查数库元数文件否空空数库中未创建表空输出文件中记录表
(2)执行流程图:

图15 执行流程图

7DROP TABLE
(1)执行流程:
判断前否已选择数库(检查指数库元数文件文件指针否空)文件指针空删表失败文件指针空检查数库元数文件判断删表否存存删表失败存删表名基数文件修改数库元数文件删表关信息删成功
(2)执行流程图:

图16 执行流程图

8INSERT
(1)执行流程:
判断前否已选择数库(检查指数库元数文件文件指针否空)文件指针空插入数失败文件指针空检查数库元数文件判断插入数表否存表存插入数失败表存判断否出需插入属性列没出需插入属性列检查插入实际值数目数类型表实际属性列数目数类型否致致数插入表名基数文件末尾插入数成功致插入数失败出需插入属性列 检查插入属性列数目数类型插入值数目数类型否保持致属性列表中否存述条件均满足数插入表名基数文件末尾插入数成功否插入数失败
(2)执行流程图:

图17 执行流程图

9SELECT
(1)执行流程:
判断前否已选择数库(检查指数库元数文件文件指针否空)文件指针空查询数失败文件指针空检查数库元数文件判断查询数涉表否均存表存查询数失败表存调函数judge_sf()判断查询属性列否正确属性列错误查询数失败属性列正确判断查询条件否存查询条件存调函数create_file()生成记录表连接时组合元组时文件接着时文件中元组调函数select_data()输出想查询属性列值查询成功查询条件存调函数judge_sel_cons()判断查询条件否正确条件错误查询失败条件正确调函数create_file()生成记录表连接时组合元组时文件接着时文件中元组调函数judge_sel()标记元组否满足查询条件时文件中元组调函数select_data()输出想查询属性列值查询成功
(2)执行流程图:

图18 执行流程图

10DELETE
(1)执行流程:
判断前否已选择数库(检查指数库元数文件文件指针否空)文件指针空删数失败文件指针空检查数库元数文件判断删数表否存表存删数失败表存判断删语句条件否存删语句条件存清空表名基数文件容删成功删语句条件存调函数judge _cons()判断删条件否正确条件错误删数失败条件正确表中元组调函数judge()标记元组否满足删条件接着满足删条件元组存入新基数文件原表名基数文件删重命名新基数文件表名字
(2)执行流程图:

图19 执行流程图

11UPDATE
(1)执行流程:
判断前否已选择数库(检查指数库元数文件文件指针否空)文件指针空更新数失败文件指针空检查数库元数文件判断更新数表否存表存更新数失败表存调函数judge_set()判断更新语句中set部分否正确set部分错误更新数失败set部分正确判断更新语句中条件否存条件存读出表中元组调函数update_data()更新元组更新元组写入新基数文件元组更新完成原表名基数文件删重命名新基数文件表名字更新成功条件存调函数judge_cons()判断更新语句中条件否正确条件错误更新数失败条件正确表中元组调函数judge()标记元组否满足更新条件接着调函数update_data()更新标记更新元组更新元组需更新元组写入新基数文件元组更新完成原表名基数文件删重命名新基数文件表名字更新成功
(2)执行流程图:

图20 执行流程图

12EXIT
(1)执行流程:
退出程序输出退出成功
(2)执行流程图:
执行流程图

24 功测试
测试实现SQL语句基功测试:
测试1(创建数库)
输入:(1)CREATE DATABASE XJGL
(2)CREATE DATABASE JUST_FOR_TEST
(3)CREATE DATABASE JUST_FOR_TEST
输出:


测试2(输出数库)
输入:SHOW DATABASES
输出:


测试3(删数库)
输入:DROP DATABASE JUST_FOR_TEST
SHOW DATABASES
输出:


测试4(选择数库)
输入:USE XJGL
输出:


测试5(创建表条语句)
输入:CREATE TABLE STUDENT(SNAME CHAR(20)SAGE INTSSEX INT)CREATE TABLE COURSE(CNAME CHAR(20)CID INT)
输出:


测试6(创建表单条语句)
输入:(1)CREATE TABLE CS(SNAME CHAR(20)CID INT)
(2)CREATE TABLE TEST_TABLE(COL1 CHAR(22)COL2 INTCOL3 CHAR(22))
(3)CREATE TABLE TEST_TABLE(COL1 CHAR(22)COL2 INTCOL3 CHAR(22))
输出:


测试7(输出表)
输入:SHOW TABLES
输出:


测试8(删表)
输入:DROP TABLE TEST_TABLE
SHOW TABLES
输出:


测试9(插入数)
输入:(1)INSERT INTO STUDENT(SNAMESAGESSEX) VALUES ('ZHANGSAN'221)
(2)INSERT INTO STUDENT VALUES ('LISI'230)
(3)INSERT INTO STUDENT(SNAMESAGE) VALUES ('WANGWU'21)
(4)INSERT INTO STUDENT VALUES ('ZHAOLIU'221)
(5)INSERT INTO STUDENT VALUES ('XIAOBAI'230)
(6)INSERT INTO STUDENT VALUES ('XIAOHEI'190)
(7)INSERT INTO COURSE(CNAMECID) VALUES ('DB'1)
(8)INSERT INTO COURSE (CNAMECID) VALUES('COMPILER'2)
(9)insert into course (CNAMECID) VALUES('C'3)
输出:



测试10(单表查询)
输入:(1)SELECT SNAMESAGESSEX FROM STUDENT
(2)SELECT SNAMESAGE FROM STUDENT WHERE (SAGE>21) AND (SSEX0)
输出:



测试11(表查询)
输入:SELECT * FROM STUDENTSELECT * FROM COURSE
(1) select * from studentcourse
(2) SELECT * FROM STUDENTCOURSE WHERE (SSEX0) AND (CID1)
输出:




测试12(删数)
输入:SELECT * FROM STUDENT
DELETE FROM STUDENT WHERE (SAGE>21) AND (SSEX0)
SELECT * FROM STUDENT
输出:


测试13(更新数)
输入:SELECT * FROM STUDENT
(1)UPDATE STUDENT SET SAGE21 WHERE SSEX1
SELECT * FROM STUDENT
(2)UPDATE STUDENT SET SAGE27SSEX1 WHERE SNAME'ZHANGSAN'
SELECT * FROM STUDENT
输出:



测试13(退出系统)
输入:EXIT
输出:


3 总结未工作
31 未完成功
1没实现码外码
2没实现视图功

32 未实现方案
1码外码
数库属文件夹创建约束文件limitdb文件中存放该数库中表码外码信息
表码外码信息连续存放首先存放表名称接着存放表码中属性列数目名称接着存放表外码数目外码信息存放外码名称参表名称参表中名称
表进行操作时查找约束文件中信息完成相关判断插入数时检查码值否重复检查外码值参表中否已存等等

2视图
视图做表处理视图属数库文件夹创建视图元数文件viewdb存放创建视图名称属性列属性列分表表名称等信息创建视图时先视图基结构信息存入元数文件viewdb中接着创建视图名基数文件里面存放实际表中元组信息
然总体构想遇问题时述总体构想做细微调整满足实际操作中需求
文档香网(httpswwwxiangdangnet)户传

《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
该内容是文档的文本内容,更好的格式请下载文档

下载文档,方便阅读与编辑

文档的实际排版效果,会与网站的显示效果略有不同!!

需要 5 香币 [ 分享文档获得香币 ]

该文档为用户出售和定价!

购买文档

相关文档

编译原理课程设计报告 简单编译器的设计与实现

 编译原理课程设计 ——简单编译器的设计与实现 班 级: 组长: 组员: 指导教师: 设计时间: 姓名 分工 组长: 语法分析部分,语义分析和中间代码生成部分,符号表的管理,目标代码的生成,数据结构的设计和总体框架的设计。 组员: 中间代码优化部分,负责从DAG图中获得优化后的四元式代码,以及

文***享 5年前 上传1905   0

《编译原理》课程实验报告

《编译原理》课程实验报告题 目: 词法分析器实验 专 业: 计算机科学与技术 班 级: 1班 学 号: * * * ***** 姓 名: * * * 一、实验目的通过本实验的编程实践,使

文***享 3年前 上传632   0

编译原理语法分析实验报告

编译原理语法分析实验报告软工班一、 实验内容二、 实验目的三、 实验要求四、 程序流程图l 主函数;l scanner();l irparser()函数l yucu() /*语句串分析*/l statement()/*语句分析函数*/l expression()/*表达式分析函数*/l term()/*项分析函数*/ l factor()/*因子分析函数*/五、 程

文***享 2年前 上传951   0

编译原理实验指导书

目 录相关问题说明 1实验题 2实验1 词法分析(2课时) 3实验2 语法分析(2课时) 5实验3 语义分析(2课时) 7实验4 代码生成(2课时) 9参考书目 11相关问题说明本课程共有4个实验, 本课程中所实现的程序为普通C或C++程序,在Windows环境下,属于控制台应用程序。提交实验成果:1. 实验成果包括:n 源程序。用学号加姓名方式命名项目或源程序所在

文***品 3年前 上传588   0

编译原理课后习题答案

编译原理课后习题答案Chapter 11.解答:程序设计语言:程序设计语言是遵守一定规范的、描述“计算”(Computing)过程的形式语言。一般可以划分为低级语言和高级语言两大类。低级语言是面向机器的语言,它是为特定的计算机系统设计的语言,机器指令、汇编语言是低级语言。高级语言是与具体计算机无关的“通用”语言,它更接近于人类的自然语言和数学表示,例如FORTRAN、Pascal、C等等我

z***u 2年前 上传604   0

《编译原理》期末试题(五)

1.语言是A.句子的集合 B.产生式的集合 C.符号串的集合 D.句型的集合2.编译程序前三个阶段完成的工作是A.词法分析、语法分析和代码优化 B.代码生成、代码优化和词法分析

x***2 2年前 上传737   0

编译原理课程设计心得体会

编译原理课程设计心得体会  经过一个星期的编译原理课程设计,本人在刘贞老师的指导下,顺利完成该课程设计。通过该课程设计,收获颇多。  一、对实验原理有更深的理解  通过该课程设计,掌握了什么是编译程序,编译程序工作的基本过程及其各阶段的基本任务,熟悉了编译程序总流程框图,了解了编译程序的生成过程、构造工具及其相关的技术对课本上的知识有了更深的理解,课本上的知识师机械的,表面的。通过把

a***k 11年前 上传639   0

基于Vue+Django技术的电商网站的设计与实现

该电商网站使用python框架django-rest-framework和前端框架vuejs开发,采用现在市面上大多数系统流行的浏览器/服务器模式结构。该项目需要使用vuejs框架开发前端界面,而所有的数据逻辑均在python框架搭建的服务器后台运行。天天生鲜市场项目高度模块化,前端与后台明确分离,对后期维护和二次开发十分友好。

平***苏 3年前 上传942   0

编译原理期末试题附答案

《编译原理》期末试题(一)一、是非题(请在括号内,正确的划√,错误的划×)(每个2分,共20分)1.编译程序是对高级语言程序的解释执行。(× )2.一个有限状态自动机中,有且仅有一个唯一的终态。(×)3.一个算符优先文法可能不存在算符优先函数与之对应。 (√ )4.语法分析时必须先消除文法中的左递归 。 (×)5.LR分析法在自左至右扫描输入串时就能发现错误,但不能准确地指出出错地点

z***u 1年前 上传428   0

编译原理实验报告LR(1)分析法

河南工业大学实验报告课 程 编译原理 实验名称 实验四 LR(1)分析法 一. 实验目的 1.掌握LR(1)分析法的基本原理; 2.掌握LR(1)分析表的构造方法; 3.掌握LR(1)驱动程序的构造方法。二. 实验内容及要求根据某一文法编制调试LR(1)分析程序,以便对任意输入的符号串进行分析。本次实验的目的主要是加深对LR(1)分析法的理解。

文***品 2年前 上传1059   0

实验2.正规式的定义与应用 编译原理实验报告

实验2. 正规式的定义与应用一、 实验目的1. 熟悉正规式的构造方法;2. 熟悉从字符串中识别特定字符串的方法;3. 复习对文件的操作。二、 实验内容和要求已知一段C语言程序:#include “stdio.h“int gcd(int k){ int m; m=k+2; return m;}main(){ /*main function*/ int i, main

文***品 1年前 上传414   0

编译原理实验报告(一)词法分析程序

 编译原理实验报告(一) ----词法分析程序【目的要求】 通过设计编制调试一个具体的词法分析程序,加深对词法分析原理的理解。并掌握在对程序设计语言源程序进行扫描过程中将其分解为各类单词的词法分析方法。 【题目分析】本实验以用户指定的想编译的以C语言编写的文件作为词法分析程序的输入数据。在进行词法分析中,先

文***品 3年前 上传782   0

编译原理实验报告LL(1)分析法

课 程 编译原理 实验名称 实验二 LL(1)分析法 实验目的 1.掌握LL(1)分析法的基本原理; 2.掌握LL(1)分析表的构造方法; 3.掌握LL(1)驱动程序的构造方法。一. 实验内容及要求根据某一文法编制调试LL(1)分析程序,以便对任意输入的符号串进行分析。本次实验的目的主要是加深对预测分析LL(1)分析法的理解。 对下列文法,

文***享 1年前 上传412   0

编译原理实验报告3-LL(1)文法构造

实验3 LL(1)文法构造一、实验目的熟悉LL(1)文法的分析条件,了解LL(1)文法的构造方法。 二、实验内容1、编制一个能够将一个非LL(1)文法转换为LL(1)文法;2、消除左递归;3、消除回溯。 三、实验要求1、 将一个可转换非LL(1)文法转换为LL(1)文法,要经过两个阶段,1)消除文法左递归,2)提取左因子,消除回溯。2、 提取文法左因子算法:1)对文法G的所

文***享 2年前 上传307   0

AMI编译码系统设计

电气工程学院 《通信原理课程设计》说明书设计题目: AMI编码及译码系统设计 专 业: 通信工程 学生姓名: 学 号: 起迄日期: 2013 年

文***品 3年前 上传679   0

编译原理课程设计LR(0)分析器自动构造程序

XX学院工科课程设计 -《编译原理》课程设计报告 题 目: LR(0)分析器自动构造程序的实现 学 号: 姓 名: 班 级:

文***品 2年前 上传402   0

西电东送征文

“西电送粤” 正当时 作者:庞旺琼  荣获**南日报举办的《我看改革开放三十年》征文优秀奖 刊登媒体:超高压公司报纸、**南日报 **南是一个山川秀丽、气候宜人、民族众多、资源富集、发展潜力巨大的三省交界之处,但长期以来却是“守着金山银山过穷日子”。 改革开放以来,在国家提出西电东送电网建设的号角声中,沉睡已久的**南大山焕发出了无限的生机,成为祖国西南重要的电力交汇中心。 上世纪70年

s***y 11年前 上传10694   0

上机实验报告

上机实验报告  一.     题目1.  建立一个学生档案,内容包括学号,姓名,年龄,性别,数学,物理和英语3门功课成绩。要求实现以下功能:1)        数据输入;2)        查询某个学生的成绩;3)        按平均排列输出;4)        统计某门课各分数段人数;5)        删除某个学生记录;2.  编程实现对二位数进行加,减,乘运算,每运行一次程序做10道

l***2 8年前 上传876   0

通信原理课程设计PAM调制与解调系统的MATLAB实现及性能分析

PAM的调制与解调目录摘要 引言 1.1 课程设计目的 1.2 课程设计内容 2.1 PAM调制信号的频谱 2.2 PAM调制过程的波形和频谱图 3.1正弦波矩形抽样 3.2矩形波调制 3.3 矩形波抽样后解调 3.4矩形波解调 结束语摘要在通信系统中,调制与解调是实现信号传递必不可少的重要手段。所谓调制是用一个信号去控制另一个信号的某个参量,产生已调制信号。解

文***享 1年前 上传391   0

数电课程设计数字电子时钟的实现

课 程 设 计 报 告设计题目:数字电子时钟的设计与实现班 级:学 号:姓 名: 指导教师:设计时间:摘 要钟表的数字化给人们生产生活带来了极大的方便,大大的扩展了原先钟表的报时。诸如,定时报警、按时自动打铃、时间程序自动控制等,这些,都是以钟表数字化为基础的。功能数字钟是一种用数

文***品 4年前 上传1866   0

《化工原理课程设计》报告换热器的设计

 《化工原理课程设计》报告 换热器的设计 目录 概述 1.1.换热器设计任务书 - 4 - 1.2换热器的结构形式 - 7 - 2.蛇管式换热器 - 7 - 3.套管式换热器 - 7 - 1.3换热器材质的选择 - 8 - 1.4管板式换热器的优点 -

文***享 5年前 上传1646   0

编译原理-实验报告2-递归下降分析法

计算机硬件实验室实验报告姓名学号班 级成 绩 设备名称及软件环境递归下降分析一、实验目的: 根据某一文法编制调试递归下降分析程序,以便对任意输入的符号串进行分析。本次实验的目的主要是加深对递归下降分析法的理解。二、实验要求:对下列文法,用递归下降分析法对任意输入的符号串进行分析: (1)E->TG(2)G->+TG|—TG(3)G->ε(4)T

文***品 3年前 上传603   0

编译原理实验3-4预测分析表方法

实验3-4 预测分析表方法班级:_ _ 学号:_ _ 姓名:_ _ 得分:_ _一、实验目的理解预测分析表方法的实现原理。二、实验内容: 编写一通用的预测法分析程序,要求有一定的错误处理能力,出错后能够使程序继续运行下去,直到分析过程结束。可通过不同的文法(通过数据表现)进行测试。 二、实验内容提示1.算法数据构造:

z***u 1年前 上传329   0

编译原理课后习题第三版答案

第二章P36-6(1)是0~9组成的数字串(2)最左推导:最右推导:P36-7G(S)P36-8文法:最左推导:最右推导:语法树:/*************************************************/P36-9句子iiiei有两个语法树:P36-10/****************************

z***u 2年前 上传511   0

广东海洋大学编译原理期末复习资料

广东海洋大学《编译原理》期末试题(一) 一、是非题(请在括号内,正确的划√,错误的划×)(每个2分,共20分) 1.编译程序是对高级语言程序的解释执行。(× ) 2.一个有限状态自动机中,有且仅有一个唯一的终态。(×)(终态一个或多个) 3.一个算符优先文法可能不存在算符优先函数与之对应。 (√ ) 4.语法分析时必须先消除文法中的左递归 。 (×) 5.LR分析法在自左至右扫描输入

文***品 5年前 上传1772   0