《数据库系统原理》课程设计讲义
黑龙江大学软件学院《数据库系统原理》课程设计讲义
一、开设本课程设计的目的
本课程是计算机专业中一门重要的专业理论课.为配合《数据库原理》课程的教学,通过模拟DBMS的实现,更深刻地领会DBMS的工作原理和实现方法,从而具有初步开发系统软件的实际能力,特开设此课程设计.
二、课程设计的题目
用高级程序设计语言实现《DBMS原型设计与实现》.
三、课程设计的主要内容
通过模拟DBMS的实现,使学生系统地掌握关系代数语言的运算功能,了解DBMS的DDL,DML,DCL等功能的实质含义,掌握结构化设计方法,了解大型软件的设计技术.
四、课程设计的具体内容和要求
1,创建数据库(DDL)功能模拟
在熟悉和掌握某一关系数据库语言的基础上,用高级程序设计语言创建数据库.具体包括:
(1)建立"建库"功能的总体菜单,包括建立库结构,输入数据,显示数据库结构和内容,退出等功能.
(2)实现建立数据结构的功能.要求:
①能输入任意表名(即关系名)
②字段个数,名称任意给定(包括字段名,字段类型,长度任意).
(3)实现输入数据库记录的功能.
(4)实现显示数据库结构和内容(最好以表格形式显示)
(5)实现对主关键字的索引功能.
(6)实现建立视图的功能.
(7)建立数据字典保存模式中有关视图,基本表,存储文件的定义.
2,关系代数运算(DML)功能模拟
将关系代数语言的选取,投影,连接运算公式进行等价变换,以便输入计算机,被计算机接受和识别.
(1)用高级程序设计语言做工具,实现关系代数语言中集合的并,交,差运算功能.并以表格形式显示的运算结果.
(2)采用索引的方式,用高级语言实现数据库系统中选取运算的功能.包括带有"与","或"条件的查询,并以表格形式显示的运算结果.
(3)用高级语言实现数据库系统中投影运算的功能.并以表格形式显示的运算结果.
(4)采用索引的方式,用高级程序语言实现关系代数语言自然连接,等值连接等运算功能.并以表格形式显示的运算结果.
3,关系演算(DML)功能模拟
(1)系统掌握DBMS中关系演算语言的功能,以QUEL语言为样本,用C语言实现对用规定符号表达的简单查询命令行进行识别,以表格形式显示查询结果.
(2)熟悉QUEL语言的查询功能,用高级语言模拟实现对含有"与","或","非"符号的命令行进行识别,并以表格形式显示查询结果.
4,关系数据库系统的查询优化
掌握关系数据库的查询优化技术,用高级语言实现启发式关系代数优化算法以及启发式关系演算优化算法.
5,数据库保护(DCL)功能模拟
要求根据数据字典(DD)实现对数据库的安全性检查和完整性约束的机制,利用事务的封锁机制实现对事务处理的并发控制,利用建立日志文件及周期性备份的机制实现对数据库的恢复.
6,综合设计
(1)将前几个实验利用结构化设计方法综合为一个完整的程序系统.
(2)设计该系统的总体菜单.
(3)通过总体菜单选择某一功能进入子菜单.
(4)通过某一功能子菜单,进入相应各个子系统,完成具体的功能.
(5)通过辅助工具,进一步丰富和完善上述程序窗口界面的设计.
(6)采用软件工程的结构化设计方法,将上述各种程序综合为一个完整的软件系统,以达到系统掌握开发系统软件的方法和技术的目的.
五、教学文件及教学形式
教学文件:《数据库系统原理》李建中编着电子工业出版社
教学形式:教学与实验同步进行,并按实验要求上机实验,编程调试.
实验一关系数据库SQL语言的使用
实验条件:提供以SQL语言为核心的数据库管理系统(如ORACLE,DB2,SYBASE,SQLServer,VisualFoxpro等)上机环境.
(一)实验目的:
通过上机实践,了解DBMS和SQL的概貌.熟练掌握SQL的数据定义,数据操纵,完整性控制等功能.
(二)实验内容与步骤:
实验1基本表的创建,数据插入
(1)建立教学数据库的三个基本表:
S(S#,SNAME,AGE,SEX)学生(学号,姓名年龄,性别)SC(S#,C#,GRADE)学习(学号,课程号,成绩)
C(C#,CNAME,TEACHER)课程(课程号,课程名,任课教师)(2)用INSERT命令输入数据.
基本表S的数据:
S1WANG20MS2LIU19MS3CHEN22MS4WU19MS5LOU21FS8DONG18F
基本表C的数据:
C1DBLIC2MATHAC3CHEMISTRYZHOUPHYSICSSHIC5OSWEN
基本表SC的数据:
S1C180S1C270S1C385S190S1C570S2C185S3C190S3C285S3C395S4C175S470S5C170S5C260S5C380S5C565S8C190S8C395
实验2数据查询
(1)检索学习课程号为C2的学生学号与姓名.
(2)检索学习课程名为MATHS的学生学号与姓名.
(3)检索不学C2课的学生姓名与年龄.
(4)检索学习全部课程的学生姓名.
实验3数据修改,删除
(1)把C2课程的非空成绩提高10%.
(2)在SC表中删除课程名为PHYSICS的成绩的元组.
(3)在S和SC表中删除学号为S8的所有数据.
实验4视图的操作
(1)建立男学生的视图,属性包括学号,姓名,选修课程名和成绩.
有关论文范文主题研究: | 数据库类论文范文 | 大学生适用: | 函授毕业论文、学位论文 |
---|---|---|---|
相关参考文献下载数量: | 92 | 写作解决问题: | 怎么写 |
毕业论文开题报告: | 论文模板、论文小结 | 职称论文适用: | 杂志投稿、初级职称 |
所属大学生专业类别: | 怎么写 | 论文题目推荐度: | 最新题目 |
(2)在男学生视图中查询平均成绩大于80分的学生学号和姓名.
实验5库函数,授权控制
(1)计算每个学生有成绩的课程门数,平均成绩.
(2)使用GRANT语句,把对基本表S,SC,C的使用权限授给其他用户.
实验二创建数据库(DDL)功能模拟
(一)实验目的:
(1)了解关系数据库定义语言的功能.
(2)熟悉关系数据库建库命令的功能.
(3)掌握用高级程序设计语言创建数据库的方法.
(4)掌握以表格形式显示运算结果的方法.
(二)实验内容与步骤:
1,用C语言(或其它语言)建立"建库"功能的总体菜单(下拉菜单或文本方式),包括建立基本表的结构,输入数据,显示数据库中基本表的结构和内容,退出等功能.
2,用C语言实现建立数据库表的结构的功能.要求:
(1)能输入任意关系名.
(2)字段个数,名称任意给定(包括字段名,字段类型,长度任意).
(3)要求以文件形式保存基本表.(存储结构也可自行设计)
3,用C语言实现输入数据库记录的功能(插入位置任意).
4,用C语言实现删除数据库记录的功能(删除位置任意).
5,用C语言实现显示数据库结构和内容(最好以表格形式显示)
6,用C语言实现对主关键字的索引功能.
7,用C语言实现对其它关键字的索引功能.
8,用C语言实现建立视图的功能.
9,用C语言建立数据字典保存模式中有关视图,基本表,存储文件的定义.
10,设计每项功能完成后均返回主菜单的功能.
实验三关系代数语言的集合运算功能模拟
(一)实验目的:
(1)了解集合运算的功能.
(2)掌握关系代数语言的并,交,差运算.
(3)掌握C语言实现并,交,差运算的设计方法.
(4)掌握以表格形式显示并,交,差运算结果的方法.
(二)实验内容与步骤:
1,设计该实验的功能菜单.
2,用C语言实现建立两个相容的关系.
3,用C语言实现关系代数语言的"并"运算功能,并以表格形式显示运算的结果.
4,用C语言实现关系代数语言的"交"运算功能,并以表格形式显示运算的结果.
5,用C语言实现关系代数语言的"差"运算功能,并以表格形式显示运算的结果.
6,设计每项功能完成后均返回主菜单的功能.
实验四关系代数语言的专门运算功能模拟
(一)实验目的:
(1)熟悉高级语言编译程序的思想.
(2)掌握符号串处理的方法和技术.
(3)掌握关系代数语言的选取,投影,连接运算的功能.
(4)掌握关系代数语言的选取,投影,连接运算的实现技术.
(5)掌握关系数据库的查询优化技术.
(二)实验内容与步骤:
1,将关系代数语言的选取,投影运算公式进行等价变换,以便输入计算机,被计算机接受和识别.
2,建立任意一关系数据库.
3,采用索引的方式,用C语言实现对该库中关系的某一字段的"θ"(等于,≠,≤,≥,<,,>,)条件的选取运算,并以表格形式显示运算的结果.
4,采用索引的方式,用C语言实现对该库中关系的带有"与"条件的查询,并以表格形式显示运算的结果.
5,采用索引的方式,用C语言实现对该库中关系的带有"或"条件的查询,并以表格形式显示运算的结果.
6,用C语言实现对该库的任意字段的投影运算,并以表格形式显示运算的结果.
7,用C语言实现对该库的选取,投影综合运算,并以表格形式显示运算的结果.
8,采用索引的方式,用C语言实现对两个关系的自然连接和等值连接运算,并以表格形式显示运算的结果.
实验五简单的关系演算(DML)功能模拟
(一)实验目的:
(1)掌握关系演算语言的查询功能.
(2)熟悉符号串识别和处理技术.
(3)掌握关系演算语言的查询功能的实现方法和技术.
(二)实验内容与步骤:
(1)系统掌握DBMS中关系演算语言的功能,以QUEL语言为样本,用C语言实现对用规定符号表达的简单查询命令行进行扫描和识别,并以表格形式显示查询结果.
(2)熟悉QUEL语言的查询功能,用高级语言实现对含有"与","或","非"符号的命令行进行扫描和识别,并以表格形式显示查询结果.
实验六关系数据库的查询优化
(一)实验目的:
(1)掌握关系系统的定义及分类.
(2)了解全关系系统的概念.
(3)了解优化的一般策略.
(4)掌握关系代数等价变换规则.
(5)掌握关系数据库系统的查询优化技术.
(6)掌握关系代数表达式的优化算法.
(二)实验内容与步骤:
1,采用启发式关系代数优化算法:
(1)把查询转换成某种内部表示.
(2)把语法树转换成标准形式.
(3)选择低层的存取路径.
(4)用高级语言实现关系代数表达式优化算法.(对原始的语法树进行优化处理,生成查询计划,选择代价最小的.)
2,用高级语言实现启发式关系演算优化算法.
实验七数据库保护(DCL)功能模拟
(一)实验目的:
(1)掌握数据库系统的安全性保护机制.
(2)掌握数据库系统的完整性约束机制.
(3)了解数据库系统的并发控制技术.
(4)掌握数据库系统的恢复技术.
(二)实验内容与步骤:
(1)要求根据数据字典(DD)实现对数据库的安全性检查.包括设置口令,和权限等.
(2)根据数据字典(DD)实现对数据库系统的完整性约束机制.
(3)利用事务的封锁机制实现对事务处理的并发控制,
(4)利用建立日志文件及周期性备份的机制实现对数据库系统的恢复.
实验八综合设计
(一)实验目的:
(1)系统地掌握关系代数语言的运算功能.
(2)了解DBMS的DDL,DML,DCL等功能的实质含义.
(3)掌握结构化设计方法.
(4)了解大型软件的设计技术.
(二)实验内容与步骤:
(1)采用软件工程的结构化设计方法,将前几个实验利用结构化设计方法综合为一个完整的DBMS原型系统,以达到系统掌握开发软件系统的方法和技术的目的.
系统总体结构图如下:
(2)设计该系统的总体菜单.
(3)通过总体菜单选择某一功能进入子菜单.
(4)通过某一功能子菜单,进入相应各个子系统,完成具体的功能.(5)通过辅助工具,进一步丰富和完善上述程序窗口,菜单的界面
设计.
实验考核标准
1,本课程设计共包含八个实验,要求每个学生完成全部实验.完成全部实验的学生经测试答辩通过,方可得到学分.不合格者需要重修.
2,实验成绩评定:每个实验需在规定时间内完成,成绩达到及格以上方可进行下一个实验.每个实验题目有各自的分值,总计100分.实验课不通过者,不能参加期末考试.
3,实验教学项目,时间安排及分值分配
序号
实验项目
内容提要
时间
安排
分数
有关说明
实验一
关系数据库SQL语言的使用
了解DBMS和SQL的概貌.熟练掌握SQL的数据定义,数据操纵,完整性控制等功能.
第二周
|
第三周
10分要求:实验1和实验2必做,实验3至实验5任选,完成任选题目的学生可加分
实验二
创建数据库功能模拟用C语言实现,模拟"建库"功能,建立任意结构,任意元组数目的关系,以表格形式显示所建关系的名称,结构及内容,并实现对主关键字的索引和建立视图的功能.
第四周
|
第五周
20分要求:实验内容的第2,3,4,5,6步必做,第1,7,8,9,10步任选,完成任选题目的学生可加分.
实验三关系代数语言的集合运算功能模拟用C语言模拟,任意两个相容关系的并,交,差运算,并将运算结果以表格形式显示
第六周
10分要求:实验内容的第3,4,5步必做,第1,2,6步任选,完成任选题目的学生可加分.
实验四关系代数语言的专门运算功能模拟用C语言实现,对用规定符号表达的选取,投影,连接运算的命令行进行扫描和识别,并以表格形式给出运算的结果
第七周
|
第八周
20分要求:实验内容的第3,6,8步必做,第1,2,4,5,7,步任选,完成任选题目的学生可加分.
实验五
简单的关系演算功能模拟
以QUEL语言为样本,用C语言实现对含有比较运算符的命令行进行识别,并以表格形式显示查询结果
第九周
|
第十周
10分要求:实验内容的第1步必做,第2步任选,完成任选题目的学生可加分.
实验六关系数据库的查询优化
掌握关系数据库的查询优化技术,用高级语言实现启发式关系代数优化算法以及启发式关系演算优化算法.第十一周
|
第十二周
10分要求:实验内容的第1步必做,第2步任选,完成任选题目的学生可加分
实验七数据库保护功能(DCL)模拟
根据数据字典(DD)实现对数据库的安全性检查和完整性约束机制.实现对事务处理的并发控制和数据库系统的恢复.
第十三周
|
第十四周
10分要求:实验内容的第1,2步必做,第3,4步任选,完成任选题目的学生可加分.
实验八
综合设计
通过结构化设计方法将上述各种程序综合为一个完整的软件系统,以窗口,菜单做界面进入各个子系统,最终实现《DBMS原型系统的设计》.
第十五周
10分要求:实验完成后,经测试通过者,综合前几个实验成绩和平时的出勤分数,给出整个实验的成绩.成绩不及格的学生必须重修.
DBMS原型模拟
DDL功能模拟
建库
DCL功能模拟
集合运算
专门运算
DML功能模拟
关系代数运算
并
选择
交
关系演算
安全
性
连接
投影
完整
性
并发控制
恢复
差