1、 0 数据库系统原理数据库系统原理 课程设计文档课程设计文档 学号: 姓名: 1 一、一、DBMSDBMS 的实现的实现方式方式 四张基本表, 以文本文档形式存储, 分别是数据字典数据字典, 用户用户表表, 关系属性表关系属性表,关系数据表关系数据表。 数据字典数据字典用来存储关系名,以换行符进行区别,建立索引时, 在相应关系名后存储索引表名,以逗号进行区别,数据操作时,先 查数据字典,是否有此关系名或相应索引表名,才能继续操作。 用户表用户表用来存储用户信息, 以逗号进行区别, 第零列为用户名, 第一列为用户口令, 第三列为用户相应权限, “0” 代表后台管理者, 可以查询和添加用户, “1
2、”代表数据库管理员,可以做增,删,改, 查操作,但不能添加用户, “2”代表普通用户,只能做查询操作, 用户登陆时,通过对用户名跟口令的匹配,返回第三列权限值。 关系属性表关系属性表用来存储关系属性名,即列名,以逗号区别。 关系数据表关系数据表用来存储关系数据,行内以逗号区别,行间以换行 符区别。 二、二、DBMSDBMS 的功能介绍的功能介绍 (1)create table 建立新关系,权限为 1 (2)drop table 删除关系,权限为 1 (3)alter table add 添加表属性,并添加相应属性数据,权限为“1” drop 删除表属性,权限为“1” 2 (4)insert 插
3、入数据,以行为单位,权限为“1” (5)delete 删除数据,以行为单位,权限为“1” (6)update 修改数据,权限为 1 (7)select 查询操作,权限为“0” , “1” , “2”都可以 (8)create index 建立索引 (9)drop index 删除索引 (10)create user 添加用户,权限为“0” 三三、DBMSDBMS 算法实现算法实现 算法描述算法描述 3 char* bdsctq(char a,char b)char* bdsctq(char a,char b) 表达式串提取,根据第二参数为l或r ,提取表 达式左部或又部串 char* ctq(
4、char a,int b)char* ctq(char a,int b) 关键字串提取,根据字符个数提取关键字 void dgxty(char ch1,char c,int b)void dgxty(char ch1,char c,int b) 单关系投影,参数为:关系属性表名,关系数据表名, 投影所在列 4 void dgxxz(char ch,char ch1,char ch2,char void dgxxz(char ch,char ch1,char ch2,char ch3,char ch4,int a1,int a2)ch3,char ch4,int a1,int a2) 单关系选择
5、,参数为:关系数据表名,选择值 1,选择 值 2,and 或 or,选择后生成表名,选择属性所在列 1,所 在列 2 void dgxyhxz(char ch,char ch1,char ch2,int a1)void dgxyhxz(char ch,char ch1,char ch2,int a1) 单关系优化选择,与上述函数类似, 只不过上述函数比 较两列,此函数只比较一列 char* dhctq(char a,int b) char* dhctq(char a,int b) 根据逗号提取串, 根据第 i 个逗号提取 i 到 i+1 间的串 int gxcz(char z,char a)i
6、nt gxcz(char z,char a) 关系查找,根据关系属性表和属性名的匹配,返回此属 性名所在的列数 char* gxmtq(chachar* gxmtq(char a,int b)r a,int b) 新建模式关系名提取 void gxxg(char p,char a)void gxxg(char p,char a) 关系属性修改, 根据关系属性表和属性名的匹配, 并将 其删除,保留其它属性 char* kgctq(char a,int b) char* kgctq(char a,int b) 根据空格提取串 void lgxlj(char ch,char ch1,char ch2,char void lgxlj(char ch,char ch1,char ch2,char ch3,i