数据库系统原理课程设计讲义
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《数据库系统原理》课程设计讲义黑龙江大学软件学院
《数据库系统原理》课程设计讲义
一、开设本课程设计的目的
本课程是计算机专业中一门重要的专业理论课。为配合《数据库原理》课程的教学,通过模拟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,SQL Server, Visual Foxpro 等)上机环境。
(一)实验目的:
通过上机实践,了解DBMS和SQL的概貌。熟练掌握SQL的数据定义、数据操纵、
完整性控制等功能。
(二)实验内容与步骤:
实验1 基本表的创建、数据插入
(1)建立教学数据库的三个基本表:
S(S#,SNAME,AGE,SEX)学生(学号,姓名年龄,性别)SC(S#,C#,GRADE)学习(学号,课程号,成绩)
C(C#,CNAME,TEACHER)课程(课程号,课程名,任课教师)(2)用INSERT命令输入数据。
(1)检索学习课程号为C2的学生学号与姓名。
(2)检索学习课程名为MATHS的学生学号与姓名。
(3)检索不学C2课的学生姓名与年龄。
(4)检索学习全部课程的学生姓名。
实验3 数据修改、删除
(1)把C2课程的非空成绩提高10%。
(2)在SC表中删除课程名为PHYSICS的成绩的元组。
(3)在S和SC表中删除学号为S8的所有数据。
实验4 视图的操作
(1)建立男学生的视图,属性包括学号、姓名、选修课程名和成绩。(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语言实现对该库中关系的带有“与”条件的查询,并以
表格形式显示运算的结果。