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


    

    编译原理机报告


    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 香币 [ 分享文档获得香币 ]

    下载文档

    相关文档

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

     编译原理课程设计 ——简单编译器的设计与实现 班 级: 组长: 组员: 指导教师: 设计时间: ...

    5年前   
    1917    0

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

    《编译原理》课程实验报告题 目: 词法分析器实验 专 业: 计算机科学与技术 班 级: 1班 学 号: ...

    3年前   
    641    0

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

    编译原理语法分析实验报告软工班一、 实验内容二、 实验目的三、 实验要求四、 程序流程图l 主函数;l scanner();l irparser()函数l yucu() /*语句串分析*/l...

    2年前   
    953    0

    编译原理实验指导书

    目 录相关问题说明 1实验题 2实验1 词法分析(2课时) 3实验2 语法分析(2课时) 5实验3 语义分析(2课时) 7实验4 代码生成(2课时) 9参考书目 11相关问题说明本课程共有4个...

    3年前   
    592    0

    编译原理课后习题答案

    编译原理课后习题答案Chapter 11.解答:程序设计语言:程序设计语言是遵守一定规范的、描述“计算”(Computing)过程的形式语言。一般可以划分为低级语言和高级语言两大类。低级语言是...

    2年前   
    609    0

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

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

    2年前   
    747    0

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

    编译原理课程设计心得体会  经过一个星期的编译原理课程设计,本人在刘贞老师的指导下,顺利完成该课程设计。通过该课程设计,收获颇多。  一、对实验原理有更深的理解  通过该课程设计,掌握了什么是...

    11年前   
    642    0

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

    该电商网站使用python框架django-rest-framework和前端框架vuejs开发,采用现在市面上大多数系统流行的浏览器/服务器模式结构。该项目需要使用vuejs框架开发前端界面,...

    3年前   
    944    0

    编译原理期末试题附答案

    《编译原理》期末试题(一)一、是非题(请在括号内,正确的划√,错误的划×)(每个2分,共20分)1.编译程序是对高级语言程序的解释执行。(× )2.一个有限状态自动机中,有且仅有一个唯一的终态...

    1年前   
    435    0

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

    河南工业大学实验报告课 程 编译原理 实验名称 实验四 LR(1)分析法 一. 实验目的 1.掌握LR(1)分析法的基本原理; 2.掌握LR(1)分析表的构...

    2年前   
    1064    0

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

     编译原理实验报告(一) ----词法分析程序【目的要求】 通过设计编制调试一个具体的词法分析程序,加深对词法分析原理的...

    3年前   
    785    0

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

    课 程 编译原理 实验名称 实验二 LL(1)分析法 实验目的 1.掌握LL(1)分析法的基本原理; 2.掌握LL(1)分析表的构造方法; 3.掌握LL(1...

    1年前   
    417    0

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

    实验2. 正规式的定义与应用一、 实验目的1. 熟悉正规式的构造方法;2. 熟悉从字符串中识别特定字符串的方法;3. 复习对文件的操作。二、 实验内容和要求已知一段C语言程序:#include...

    1年前   
    417    0

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

    实验3 LL(1)文法构造一、实验目的熟悉LL(1)文法的分析条件,了解LL(1)文法的构造方法。 二、实验内容1、编制一个能够将一个非LL(1)文法转换为LL(1)文法;2、消除左递归;3...

    2年前   
    315    0

    AMI编译码系统设计

    电气工程学院 《通信原理课程设计》说明书设计题目: AMI编码及译码系统设计 ...

    3年前   
    683    0

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

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

    2年前   
    406    0

    西电东送征文

    “西电送粤” 正当时 作者:庞旺琼  荣获**南日报举办的《我看改革开放三十年》征文优秀奖 刊登媒体:超高压公司报纸、**南日报 **南是一个山川秀丽、气候宜人、民族众多、资源富集、发展潜...

    11年前   
    10704    0

    上机实验报告

    上机实验报告  一.     题目1.  建立一个学生档案,内容包括学号,姓名,年龄,性别,数学,物理和英语3门功课成绩。要求实现以下功能:1)        数据输入;2)        查...

    8年前   
    884    0

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

    PAM的调制与解调目录摘要 引言 1.1 课程设计目的 1.2 课程设计内容 2.1 PAM调制信号的频谱 2.2 PAM调制过程的波形和频谱图 3.1正弦波矩形抽样 3.2矩形波调制 ...

    1年前   
    396    0

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

    课 程 设 计 报 告设计题目:数字电子时钟的设计与实现班 级:学 号:姓 名: 指导教师:设计时间:摘 要钟表的数字化给人们生产生活带来了极大的方便,大大的扩展了原先钟表...

    5年前   
    1873    0

    文档贡献者

    z***u

    贡献于2022-08-26

    下载需要 5 香币 [香币充值 ]
    亲,您也可以通过 分享原创文档 来获得香币奖励!
    下载文档