黑大数据库实验报告_第1页
黑大数据库实验报告_第2页
黑大数据库实验报告_第3页
黑大数据库实验报告_第4页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、本文格式为word版,下载可任意编辑黑大数据库实验报告 黑龙江高校 "数据库系统原理课程设计'总结报告 学院 软件学院 班级 4 2021 级 级 专业 软件工程 学号 20213983 姓名 陆芝浩 报告日期 2021.11.9 成果 黑龙江高校软件学院 1 1 、开发环境 操作系统: windows7 编程语言环境 :vc+6.0 2 2 、s dbms 系统架构 3 3 、s dbms 主要功能模块 1、实现 sql 语句中的 create table 建表语句,建立相应的数据库表,并生成相应的数据字典文件和数据文件。 2、实现 alter table 表模式的修改功能

2、: 能够为已建立的表添加属性。 能够从已建立的表中删除属性。 3、实现 drop table 删除表功能。 4、实现 create index 创建索引的功能。 5、实现 drop index 删除索引的功能。 6、实现 insert 可以向已经创建的表插入元组。 7、实现 delete 从已经创建的表中删除元组。 8、实现 update 修改表中的数据。 9、实现 select 语句,包括: 实现单表全属性查询。 实现单表单属性查询。 实现多表的连接全属性查询。 实现多表的连接和选择条件的全属性查询。 实现多表的连接的单属性查询。 实现多表的连接和选择的单属性查询。 实现单表的选择的单属性查

3、询。 实现单表的选择的全属性查询。 10、利用启发式关系代数优化算法进行查询优化。 11、建立访问权限,依据数据字典(dd)实现对数据库的平安性检查和完整性约束的机制。 3.1 sql 语言的词法和语法分析 (1)功能介绍 通过编译原理的学问对输入的sql语句进行词法分析,将sql语句 拆分为若干个单词,对其进行语法分析,确定输入的 sql 语句的含义. (2)相关理论 利用编译原理的相关学问,对输入的 sql 语句进行仿照 sql 语言的词法及语法结构的分析。 (3)算法描述 在调用的每个相关模块的的起始部分,对该条 sql 语句进行拆分,对每一个关键字位置进行比对处理,如有词法或语法错误,

4、马上停止此次调用模块操作,并报错,重新输入 sql 语句。 (4)程序流程图 开头字符扫描sql语句词法分析关键字正确?报错 n语法分析ysql语句正确?yn命令执行打印结果连续输入sql语句?y结束n (5) 测试用例与试验结果 词法语法分析在各功能中体现。 3.2 创建数据库及数据操作功能 功能介绍 1、实现建立数据库表的结构的功能。 (1)支持整型、字符型数据。 (2)以文件形式保存基本表。 (3)建立相应的数据字典。 2、实现输入数据库表记录的功能。 3、实现删除数据库表记录的功能。 4、实现修改数据库表记录的功能。 5、实现显示数据库表结构和内容. 6、实现在已有的表中添加属性的功能

5、; 7、实现从已有的表中删除属性的功能; 8、实现删除表的功能。 (2)相关理论 主要是对文件操作,读文件、写文件及文件指针的运用。 (3)算法描述 创建表: 读取由词法分析产生的文件,依据相应的关键字推断应当进行何种操作,建表前应先推断该表是否存在,若不存在,将该表的信息及各个属性的信息写入文件。生成相应的数据字典和数据文件。 程序流程图: 开头输入sql语句词法分析语法分析语法正确?关键字正确?yn执行sql表存在?yn报错 y创建表n创建相应表文件完成 删除表: 1. 依据要删除的表名,查找该表是否存在。 2. 该表若存在,则将调用 remove 函数删除该表,并将与该表有关的信息及文件

6、删除。 程序流程图: 开头输入sql语句词法分析语法分析语法正确?关键字正确?yn执行sql表存在?yn表不存在 n删除表y删除相应表文件完成结束 增加属性: 1. 对要进行操作的表推断是否存在; 2. 推断要加入的属性在表中是否已存在,若不存在则将要加入的属性加入到该表中,相应文件同时进行更新。 程序流程图: 开头输入sql语句词法分析语法分析语法正确?关键字正确?yn执行sql表存在?yn表不存在 ny更新相应表文件完成结束添加属性存在?属性存在 y添加属性 删除属性: 1. 推断该表是否存在; 2. 断该表中是否存在该属性,若存在,则将该属性删除,并更新相应文件的信息; 程序流程图: 开

7、头输入sql语句词法分析语法分析语法正确?关键字正确?yn执行sql表存在?yn表不存在 ny更新相应表文件完成结束删除属性存在?属性不存在 n删除属性y 插入数据: 1. 推断表是否存在 2. 推断表中是否存在主键,若存在主键,则推断插入数据的主键是否与已有数据的主键重复。若该表不存在主键,则直接插入数据,并且更新 程序流程图: 开头输入sql语句词法分析语法分析语法正确?关键字正确?yn执行sql表存在?yn表不存在 ny更新相应表文件完成结束表有主键? 插入数据 n y主键存在?主键重复插入失败y结束插入数据n 删除记录: 1. 表是否存在 2. 推断欲删除数据是否存在 3. 依据推断条

8、件进行删除 4. 更新相关文件 程序流程图 开头输入sql语句词法分析语法分析语法正确?关键字正确?yn执行sql表存在?yn表不存在 ny更新相应表文件完成结束数据是否存在数据不存在 n y 插入数据 (5 5 )测试用例与试验结果 建表和修改表的结构 添加主键和插入数据 删除记录 修改记录 删除表 3 3.3 索引的创建及删除 (1 1 )功能介绍 1.在主键上建立主索引。 2.在主键上建立帮助索引。 3.在非主键上建立帮助索引。 4.删除索引。 (2 2 )相 关理论 对主键建立索引,利用二分查找法和挨次查找法,二分查找法可缩短查询时间,构造一个索引文件,查询时只要对索引文件进行查询即可

9、,缩短了处理时间。 (3 3 )算法描述 1.若是创建主索引,首先从表中找到主键; 2.然后利用冒泡排序对数据进行从小到大排序; 3.建立主索引中,1 条索引记录每个磁盘块中存放 5 个元组。 4帮助索引每条索引记录都对应一个元组,帮助索引可以是无序文件,最终将其写入索引文件中。 程序流程图 开头输入sql语句词法分析语法分析语法正确?关键字正确?yn执行sql表存在?yn表不存在 ny对表中文件以主属性进行排序完成结束建立主索引?对每个元组该属性建立帮助索引n y该属性是主属性?y对排序完成的数据建立主索引该属性是非主属性,建主键失败结束 测试用例与试验结果 立主索引: create ind

10、ex main student_index on student (num); 建立主键上的帮助索引: create index fuzhu student_index on student (num); 建立非主键上的帮助索引: create index fuzhu student_index on student (name); 4 3.4 查询功能 (1 1 )功能介绍 实现全关系选择。 实现单关系选择。 实现两个关系的连接。 实现两个关系的 连接和选择。 实现单关系投影。 实现单关系选择和投影。 实现两个关系的连接和投影。 实现两个关系的连接,投影和选择。 相关理论 查找分为单表查询以

11、及单表索引查询,多表查询是调用了单表查询,然后进行选择,连接以及投影。全关系查询是将字典文件中该表的全部属性取出,条件过滤是将 sql 语句中的条件抽取出来依照字典文件中的表结构进行字段的一次排查将符合条件的留在结果集合中。不符合条件的从结果集合中删除。完成之后根据字段进行投影工作,投影同样是依照 sql 语句以及数据字典进行的。多表查询,是将 sql 语句中涉及的表首先行进单表查询,将结果集合分别进行条件过滤,表连接操作最终进行投影工作。 (3 3 )算法描述 a. 全关系的选择操作 扫描数据字典,推断是否有该表,假如有,则扫描数据文件,将文件中内容全部输出。 b. 实现单关系的投影操作 扫

12、描数据字典,推断是否有该表,若有该表,记录要投影的属性是第几个,扫描数据文件,将每个元组中要查询的属性输出。 c. 实现单关系的选择操作(允很多条件) 扫描数据字典,推断是否有该表,若有该表,扫描数据文件,利用循环将满意"where'后条件的元组选出。 d. 实现单关系的 选择投影操作(允很多条件) 扫描数据字典,推断是否有该表,若有该表,则记录需要投影的属性是第几个,查找数据文件,利用循环将满意"where'条件的元组找出并属性相应的属性值。 e. 实现两个关系的连接操作 扫描数据字典,推断是否有这两个表,若有,则查找相关属性,将两个表中的相关属性依据条件

13、进行匹配,若匹配胜利,则表示连接胜利,输出连接结果。 f. 实现两个关系的选择和连接操作 在以上的连接结果中选择符合条件的元组输出。 g. 实现两个关系的选择、投影和连接操作 在以上的结果中选择要投影的属性,输出。 程序流程 图 开头输入sql语句词法分析语法分析 语法正确?关键字正确?yn执行sql 表存在? yn表不存在 n 结束全属性查询?条件查询?y显示查询结果n条件满意?yy未查询到相关数据结束条件查询? n显示查询属性内容条件满意?yn单表查询?yy全属性查询?n连接查询?n连接条件满意?y连接查询?连接条件满意?yy选择条件满意?有选择条件?nynyn查询到相关数据?yyn nn

14、ynn结束 测试用例与试验结果 全关系选择: 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 w

15、here num=1007; 两个关系的连接和投影: select num,grade from student,xuanxiu where num=x_num; 两个关系的连接,投影和选择: select num,grade from student,xuanxiu where num=x_num and num1001; 3.6 数据库爱护功能 (1)功能介绍 要求依据数据字典(dd)实现对数据库的平安性检查。包括设置口令、密码和权限等。 相关理论 把握数据库系统的平安性爱护机制。 (3)算法描述 编写一个登陆界面,限制用户名和密码,实现平安性爱护机制, 添加的用户名和密码都写到了 mima.txt 文

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论