人人范文网 范文大全

黑大数据库实验报告

发布时间:2020-03-02 07:37:59 来源:范文大全 收藏本文 下载本文 手机版

黑龙江大学

“数据库系统原理课程设计”总结报告

学院 年级 专业 学号 姓名 报告日期 成绩

软件学院 2014级 软件工程 20143983 陆芝浩 2016.11.9

黑龙江大学软件学院

1、开发环境

操作系统: Windows7

编程语言环境 :VC++6.0

2、DBMS系统架构

3、DBMS主要功能模块

1、实现SQL语句中的Create Table建表语句,建立相应的数据库表,并生成相应的数据字典文件和数据文件。

2、实现alter table表模式的修改功能: ①能够为已建立的表添加属性。 ②能够从已建立的表中删除属性。

3、实现drop table删除表功能。

4、实现create index创建索引的功能。

5、实现drop index删除索引的功能。

6、实现insert可以向已经创建的表插入元组。

7、实现delete从已经创建的表中删除元组。

8、实现update修改表中的数据。

9、实现SELECT语句,包括: 实现单表全属性查询。 实现单表单属性查询。 实现多表的连接全属性查询。

实现多表的连接和选择条件的全属性查询。 实现多表的连接的单属性查询。 实现多表的连接和选择的单属性查询。 实现单表的选择的单属性查询。 实现单表的选择的全属性查询。

10、利用启发式关系代数优化算法进行查询优化。

11、建立访问权限,根据数据字典(DD)实现对数据库的安全性检查和完整性约束的机制。

3.1 SQL语言的词法和语法分析

(1)功能介绍

通过编译原理的知识对输入的SQL语句进行词法分析,将SQL语句拆分为若干个单词,对其进行语法分析,确定输入的SQL语句的含义.(2)相关理论

利用编译原理的相关知识,对输入的SQL语句进行模仿SQL语言的词法及语法结构的分析。

(3)算法描述

在调用的每个相关模块的的起始部分,对该条SQL语句进行拆分,对每一个关键字位置进行比对处理,如有词法或语法错误,立即停止此次调用模块操作,并报错,重新输入SQL语句。

(4)程序流程图

开始SQL语句字符扫描词法分析报错N关键字正确?Y语法分析YNSQL语句正确?Y命令执行打印结果继续输入SQL语句?N结束

(5)测试用例与实验结果

词法语法分析在各功能中体现。

3.2创建数据库及数据操作功能

功能介绍

1、实现建立数据库表的结构的功能。 (1)支持整型、字符型数据。 (2)以文件形式保存基本表。 (3)建立相应的数据字典。

2、实现输入数据库表记录的功能。

3、实现删除数据库表记录的功能。

4、实现修改数据库表记录的功能。

5、实现显示数据库表结构和内容.

6、实现在已有的表中添加属性的功能;

7、实现从已有的表中删除属性的功能;

8、实现删除表的功能。 (2)相关理论

主要是对文件操作,读文件、写文件及文件指针的运用。 (3)算法描述

创建表:

读取由词法分析产生的文件,根据相应的关键字判断应该进行何种操作,建表前应先判断该表是否存在,若不存在,将该表的信息及各个属性的信息写入文件。生成相应的数据字典和

数据文件。

程序流程图:

开始输入SQL语句N词法分析关键字正确?Y语法分析语法正确?Y执行SQLN报错Y表存在?N创建表创建相应表文件完成

删除表:

1.根据要删除的表名,查找该表是否存在。

2.该表若存在,则将调用remove函数删除该表,并将与该表有关的信息及文件删除。

程序流程图:

开始输入SQL语句N词法分析关键字正确?Y语法分析语法正确?Y执行SQLN结束表不存在N表存在?Y删除表删除相应表文件完成

增加属性:

1.对要进行操作的表判断是否存在;

2.判断要加入的属性在表中是否已存在,若不存在则将要加入的属性加入到该表中,相应文件同时进行更新。

程序流程图:

开始输入SQL语句N词法分析关键字正确?Y语法分析语法正确?Y执行SQLN结束表不存在N表存在?Y属性存在Y添加属性存在?添加属性更新相应表文件完成

删除属性:

1.判断该表是否存在;

2.断该表中是否存在该属性,若存在,则将该属性删除,并更新相应文件的信息;

程序流程图:

开始输入SQL语句N词法分析关键字正确?Y语法分析语法正确?Y执行SQLN结束表不存在N表存在?Y属性不存在N删除属性存在?Y删除属性更新相应表文件完成

插入数据:

1.判断表是否存在

2.判断表中是否存在主键,若存在主键,则判断插入数据的主键是否与已有数据的主键重复。若该表不存在主键,则直接插入数据,并且更新

程序流程图:

开始输入SQL语句N词法分析关键字正确?Y语法分析语法正确?Y执行SQL结束N结束表不存在N表存在?Y主键重复插入失败YY主键存在?N插入数据N表有主键?更新相应表文件插入数据完成

删除记录:

1.表是否存在

2.判断欲删除数据是否存在 3.根据判断条件进行删除 4.更新相关文件

程序流程图

开始输入SQL语句N词法分析关键字正确?Y语法分析语法正确?Y执行SQL完成N结束表不存在N表存在?Y更新相应表文件数据不存在N数据是否存在Y插入数据

(5)测试用例与实验结果

①建表和修改表的结构 ②添加主键和插入数据 ③删除记录 ④修改记录 ⑤删除表

3.3索引的创建及删除

(1)功能介绍

1.在主键上建立主索引。 2.在主键上建立辅助索引。 3.在非主键上建立辅助索引。 4.删除索引。

(2)相关理论

对主键建立索引,利用二分查找法和顺序查找法,二分查找法可缩短查询时间,构造一个索引文件,查询时只要对索引文件进行查询即可,缩短了处理时间。

(3)算法描述

1.若是创建主索引,首先从表中找到主键; 2.然后利用冒泡排序对数据进行从小到大排序; 3.建立主索引中,1条索引记录每个磁盘块中存放5个元组。 4辅助索引每条索引记录都对应一个元组,辅助索引可以是无序文件,最后将其写入索引文件中。

程序流程图

开始输入SQL语句N词法分析关键字正确?Y语法分析语法正确?Y执行SQL结束N结束表不存在N表存在?Y该属性是非主属性,建主键失败对每个元组该属性建立辅助索引N建立主索引?Y该属性是主属性?Y完成

对排序完成的数据建立主索引对表中文件以主属性进行排序

测试用例与实验结果

立主索引:

create index main student_index on student (num);

②建立主键上的辅助索引:

create index fuzhu student_index on student (num);

③建立非主键上的辅助索引:

create index fuzhu student_index on student (name);

3.4查询功能

(1)功能介绍

①实现全关系选择。

②实现单关系选择。

③实现两个关系的连接。

④实现两个关系的连接和选择。

⑤实现单关系投影。

⑥实现单关系选择和投影。

⑦实现两个关系的连接和投影。

⑧实现两个关系的连接,投影和选择。

相关理论

查找分为单表查询以及单表索引查询,多表查询是调用了单表查询,然后进行选择,连接以及投影。全关系查询是将字典文件中该表的所有属性取出,条件过滤是将SQL语句中的条件抽取出来依照字典文件中的表结构进行字段的一次排查将符合条件的留在结果集合中。不符合条件的从结果集合中删除。完成之后按照字段进行投影工作,投影同样是依照sql语句以及数据字典进行的。多表查询,是将sql语句中涉及的表首先行进单表查询,将结果集合分别进行条件过滤,表连接操作最后进行投影工作。

(3)算法描述 a.全关系的选择操作

扫描数据字典,判断是否有该表,如果有,则扫描数据文件,将文件中内容全部输出。

b.实现单关系的投影操作

扫描数据字典,判断是否有该表,若有该表,记录要投影的属性是第几个,扫描数据文件,将每个元组中要查询的属性输出。

c.实现单关系的选择操作(允许多条件)

扫描数据字典,判断是否有该表,若有该表,扫描数据文件,利用循环将满足“where”后条件的元组选出。

d.实现单关系的选择投影操作(允许多条件)

扫描数据字典,判断是否有该表,若有该表,则记录需要投影的属性是第几个,查找数据文件,利用循环将满足“where”条件的元组找出并属性相应的属性值。

e.实现两个关系的连接操作

扫描数据字典,判断是否有这两个表,若有,则查找相关属性,将两个表中的相关属性依据条件进行匹配,若匹配成功,则表示连接成功,输出连接结果。

f.实现两个关系的选择和连接操作

在以上的连接结果中挑选符合条件的元组输出。

g.实现两个关系的选择、投影和连接操作

在以上的结果中选择要投影的属性,输出。

程序流程图

开始输入SQL语句词法分析NN关键字正确?Y语法分析结束表不存在YN单表查询?Y全属性查询?N条件查询?Y条件满足?结束未查询到相关数据NN表存在?语法正确?执行SQLYN显示查询属性内容Y全属性查询?N连接查询?连接查询?YNN连接条件满足?YY有选择条件?N查询到相关数据?NYYY显示查询结果N条件查询?Y条件满足?YYY连接条件满足?N选择条件满足?NN结束

测试用例与实验结果

①全关系选择: select * from student;

②单关系选择:

select * from student where num=1000;

③实现两个关系的连接:

select * from student,xuanxiu where num=x_num;

④实现两个关系的连接和选择:

select * from student,xuanxiu where num=x_num and num >1001;

⑤单关系投影:

select name,sex from student;

⑥单关系选择和投影:

select name,sex from student where num=1007;

⑦两个关系的连接和投影:

select num,grade from student,xuanxiu where num=x_num;

⑧两个关系的连接,投影和选择:

select num,grade from student,xuanxiu where num=x_num and num>1001;

3.6数据库保护功能 (1)功能介绍

要求根据数据字典(DD)实现对数据库的安全性检查。包括设置口令、密码和权限等。 相关理论

掌握数据库系统的安全性保护机制。 (3)算法描述

编写一个登陆界面,限制用户名和密码,实现安全性保护机制,

添加的用户名和密码都写到了mima.txt文件当中。 (4)程序流程图

(5)测试用例与实验结果

①原来mima.txt文件中的数据:

②添加用户名:

root

密码:8833 create user ttt identified by 888;

加后mima.txt文件中的数据:

4、总结

通过模拟DBMS的实现,使理论与实践得到融合,更深刻的理解了相关原理及实现。通过实验的模拟,对关系代数的运算,SQL语句的使用,有了更多的掌握,同时对数据库的理解更深刻,提高了编程能力。

5、参考文献

《数据库系统原理》第2版 电子工业出版社 李建中编著

《数据结构—用C语言描述》 唐策善 清华大学出版社。

数据库实验报告

数据库实验报告

数据库实验报告

数据库实验报告

数据库实验报告

数据库实验报告

数据库实验报告

数据库实验报告

数据库实验报告

数据库实验报告

黑大数据库实验报告
《黑大数据库实验报告.doc》
将本文的Word文档下载到电脑,方便编辑。
推荐度:
点击下载文档
点击下载本文文档