黑大数据库实验报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

黑龙江大学

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

学院软件学院

年级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)程序流程图

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

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

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

功能介绍

1、实现建立数据库表的结构的功能。

(1)支持整型、字符型数据。

(2)以文件形式保存基本表。

(3)建立相应的数据字典。

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

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

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

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

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

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

8、实现删除表的功能。

(2)相关理论

主要是对文件操作,读文件、写文件及文件指针的运用。

(3)算法描述

创建表:

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

数据文件。

程序流程图:

删除表:

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

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

增加属性:

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

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

程序流程图:

删除属性:

1.判断该表是否存在;

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

插入数据:

1.判断表是否存在

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

程序流程图:

删除记录:

1.表是否存在

2.判断欲删除数据是否存在

3.根据判断条件进行删除

4.更新相关文件

程序流程图

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

①建表和修改表的结构

②添加主键和插入数据

③删除记录

④修改记录

⑤删除表

3.3索引的创建及删除

(1)功能介绍

1.在主键上建立主索引。

2.在主键上建立辅助索引。

3.在非主键上建立辅助索引。

4.删除索引。

(2)相关理论

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

(3)算法描述

1.若是创建主索引,首先从表中找到主键;

2.然后利用冒泡排序对数据进行从小到大排序;

3.建立主索引中,1条索引记录每个磁盘块中存放5个元组。

4辅助索引每条索引记录都对应一个元组,辅助索引可以是无序文件,最后将其写入索引文件中。

程序流程图

测试用例与实验结果

立主索引:

create index main student_index on student (num);

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

create index fuzhu student_index on student (num);

相关文档
最新文档