《数据库系统原理课程设计讲义》由会员分享,可在线阅读,更多相关《数据库系统原理课程设计讲义(11页珍藏版)》请在金锄头文库上搜索。
1、黑龙江大学软件学院一、开设本课程设计的目的本课程是计算机专业中一门重要的专业理论课。为配合 数据库 原理 课程的教学,通过模拟 DBMS 的实现,更深刻地领会 DBMS 的工 作原理和实现方法,从而具有初步开发系统软件的实际能力,特开设此 课程设计 。二、课程设计的题目用高 级程 序设 计语 言 实现 DBMS 原型设计与实现 。三、课程设计的主要内容通过模拟 DBMS 的实现,使学生系统地掌握关系代数语言的运算功能; 了解DBMS的DDL、DML、DCL等功能的实质含义;掌握结构化设计方法; 了 解大型软件的设计技术。四、课程设计的具体内容和要求1、创建数据库(DDL )功能模拟在熟悉和掌握
2、某一关系数据库语言的基础上,用高级程序设计语言创 建数据库。 具体包括:(1)建立 “建库 ”功能的总体菜单,包括建立库结构、输入数据、 显示数据库结构和内容、退出等功能。(2)实现建立数据结构的功能。 要求: 能输入任意表 名(即关系名) 字段个数、名称任意给定(包括字段名、字段类型、长度任意)(3)实现输入数据库记录的功能。(4)实现显示数据库结构和内容(最好以表格形式显示)(5)实现对主关键字的索引功能。(6)实现建立视图的功能。(7)建立数据字典保存三级模式中 有关视图、 基本表、 存储文件 的定义。2、关系代数运算(DML)功能模拟将关系代数语言的选取、 投影、 连接运算公式进行等价
3、变换,以便输 入计算机,被计算机接受和识别。(1)用高级程序设计语言做工具,实现关系代数语言中 集合的并、 交、 差运算功能。并以表格形式显示的运算结果。(2) 采用索引的方式,用高级语言实现数据库系统中选取运算的功能。 包括带有 “与 ” 、“或 ”条件的查询,并以表格形式显示的运算结果。(3) 用高级语言实现数据库系统中投影运算的功能。并以表格形式显示 的运算结果。(4) 采用索引的方式,用高级程序语言实现关系代数语言自然连接、等 值连接等运算功能。并以表格形式显示的运算结果。3、关系演算(DML )功能模拟( 1)系统掌握 DBMS 中关系演算语言的功能,以QUEL 语言为样本,用C 语
4、 言 实 现对用 规定符号表 达的 简单查询命令行进行识别, 以 表 格形 式 显 示查询结果。( 2)熟悉 QUEL 语言的查询功能,用高级语言模拟实现对含有“与”、“或”、“非”符号的命令行进行识别,并以表格形式显示查询结果。4、关系数据库系统的査询优化掌握关 系 数据库的 查 询 优化技术, 用 高 级 语 言 实 现启发式 关 系 代 数优 化算 法以 及启发式 关 系演算优化算 法。5、数据库保护(DCL )功能模拟要求根据数据字典(DD )实现对数据库的安全性检查和完整性约束的机制;利用事务的封锁机制实现对事务处理的并发控制;利用建立日 志文件及周期性 备份的 机制实 现对数 据库
5、的 恢复。6、综合设计( 1) 将前几个实 验利用 结 构化设计方法综合为一个完 整 的 程序 系统。( 2) 设计该系统的 总体菜单。( 3 ) 通 过 总 体 菜 单 选 择 某 一 功 能 进 入 子 菜 单 。( 4) 通过某一功 能 子菜单, 进 入相应各个子系统, 完 成具体的 功 能 。( 5) 通过辅助工具, 进一步丰富和 完 善上述程序 窗口界面的 设计。( 6) 采 用 软件工程的 结 构化设计方法, 将上述各种程序 综合为一个 完 整 的 软件系统, 以 达到系统掌握开发系统软件的 方法和 技术的 目的 。五、教学文件及教学形式教学文件:数据库系统原理李建中编著 电子工业
6、出版社 教学形式:教学与实验同步进行,并按实验要求上机实验,编程调试。实验-关系数据库SQL语言的使用实验条件:提供以 SQL 语言为核心的数据库管理系统(如ORACLE , DB2 , SYBASE , SQL Server, Visual Foxpro 等)上机环境。(一)实验目的: 通过上机实践,了解 DBMS 和 SQL 的概貌。熟练掌握 SQL 的数据定义、 数据操纵、完整性控制等功能。(二)实验内容与步骤:实验 1 基本表的创建、数据插入(1)建立教学数据库的三个基本表:S( S#, SNAME ,AGE,SEX)学生(学号,姓名年龄,性别)SC( S#, C#, GRADE )学
7、习(学号,课程号,成绩)C( C#, CNAME , TEACHER )课程(课程号,课程名,任课教师)(2)用 INSERT 命令输入数据。基本表 S 的数据 :S1WANG20MS2LIU19MS3CHEN22MS4WU19MS5LOU21FS8DONG18F基本表C的数据:C1DBLIC2MATHSMAC3CHEMISTRYZHOUC4PHYSICSSHIC5OSWEN基本表SC的数据:S1C180S1C270S1C385S1C490S1C570S2C185S3C190S3C285S3C395S4C175S4C470S5C170S5C260S5C380S5C565S8C190S8C395
8、实验 2 数据查询( 1)检索学习课程号为 C2 的学生学号与姓名。( 2)检索学习课程名为 MATHS 的学生学号与姓名。( 3)检索不学 C2 课的学生姓名与年龄。( 4) 检索 学习 全部 课程 的学 生姓 名。实验 3 数据修改、删除(1) 把C2课程的非空成绩提高10%。(2) 在SC表中删除课程名为PHYSICS的成绩的元组。(3) 在S和SC表中删除学号为S8的所有数据。实验 4 视图的操作(1) 建立男学生的视图,属性包括学号、姓名、选修课程名和成绩(2) 在男学生视图中查询平均成绩大于 80 分的学生学号和姓名。实验 5 库函数、授权控制(1) 计算每个学生有成绩的课程门数、
9、平均成绩。(2) 使用GRANT语句,把对基本表S、SC、C的使用权限授给其他用户。实验二创建数据库(DDL)功能模拟一)实验目的:(1) 了解关系数据库定义语言的功能。(2) 熟悉关系数据库建库命令的功能。(3) 掌握用高级程序设计语言创建数据库的方法。(4) 掌握以表格形式显示运算结果的方法。二)实验内容与步骤:1、用c语言(或其它语言)建立“建库”功能的总体菜单(下拉菜 单或文本方式) , 包括建立基本表的结构、 输入数据、 显示数据库 中基本表的结构和内容、 退出等功能。2、用C语言实现建立数据库表的结构的功能。要求:(1) 能输入任意关系名。(2) 字段个数、 名称任意给定(包括字段
10、名、 字段类型、 长度任意)( 3)要求以文件形式保存 基本表。(存储结构也可自行设计)3、用C语言实现输入数据库记录的功能(插入位置任意)。4、用C语言实现删除数据库记录的功能(删除位置任意)。5、用C语言实现显示数据库结构和内容(最好以表格形式显示)6、用C语言实现对主关键字的索引功能。7、用C语言实现对其它 关键字的索引功能。8、用C语言实现建立视图的功能。9、用C语言建立数据字典保存三级模式中有关视图、基本表、存储文 件的 定义 。10、设计每项功能完成后均返回主菜单的功能。实验三 关系代数语言的集合运算功能模拟一)实验目的:(1)了解集合运算的功能。(2)掌握关系代数语言的并、 交、
11、 差运算。( 3)掌握 C 语 言 实 现 并、 交、 差运 算 的 设计 方法 。(4)掌握以表格形式显示并、 交、 差运算结果的方法。二)实验内容与步骤:1、设计该实验的功能菜单。2、用C语言实现建立两个相容的关系。3、用C语言实现关系代数语言的“并”运算功能,并以表格形式显 示运算的结果。4、用C语言实现关系代数语言的“交”运算功能,并以表格形式显 示运算的结果。5、用C语言实现关系代数语言的“差”运算功能,并以表格形式显 示运算的结果。6、设计每项功能完成后均返回主菜单的功能 。实验四 关系代数语言的专门运算功能模拟一)实验目的:(1)熟悉高级语言编译程序的思想。( 2) 掌握符号串处
12、理的方法和技术。(3)掌握关系代数语言的选取、 投影、 连接运算的功能。(4)掌握关系代数语言的选取、 投影、 连接运算的实现技术。(5)掌握关系数据库的查询优化技术。二)实验内容与步骤:1、将关系代数语言的选取、 投影运算公式进行等价变换, 以便输入计 算机, 被计算机接受和识别。2、建立任意一关系数据库。3、采用索引的方式,用C语言实现对该库中关系的某一字段的“0”(二、丰、W、三、)条件的选取运算,并以表格形式显 示运算的结果。4、采用索引的 方式 , 用 C 语言实现对该库中关系的 带有 “与”条 件的 查询, 并 以 表 格形式 显 示运算 的 结果。5、采用索引的 方式 , 用 C
13、 语言实现对该库中关系的 带有 “或”条 件的 查询, 并 以 表 格形式 显 示运算 的 结果。6、用 C 语言实现对该库的 任意字段的 投影运算 , 并 以 表 格形 式 显 示运 算的 结果 。7、用 C 语言实现对该库的 选取 、 投影综合运算 , 并 以 表 格形 式 显 示运 算的 结果 。8、采用索引的 方式 , 用 C 语言实现对两个关系的 自然连接和等值连接 运算 , 并 以 表 格形 式 显 示运算 的 结果。实验五 简单的关系演算(DML)功能模拟一)实验目的:( 1)掌握关系演算 语言的 查询功能。( 2 ) 熟 悉 符 号 串 识 别 和 处 理 技 术 。( 3)掌
14、握关系演算 语言的 查询功能的 实现方法和技术。二)实验内容与步骤:( 1)系统掌握 DBMS 中关系演算语言的功能,以QUEL 语言为样本,用c语言实现对用规定符号表达的简单查询命令行进行扫描和识别, 并以表格形式显示查询结果。(2)熟悉QUEL语言的查询功能,用高级语言实现对含有“与”、“或”、“非”符号的命令行进行扫描和识别,并以表格形式显示查询结果。实验六 关系数据库的 查询优化一)实验目的:1)掌握关系系统的定义及分类。2)了解全关系系统的 概念 。(3)了解优化的一般策略。(4)掌握关系代数等价变换规则。(5)掌握关系数据库系统的查询优化技术。(6)掌握关系代数表达式的优化算法。二)实验内容与步骤:1、采用启发式关系代数优化算法:(1)把查询转换成某种内部表示。(2)把语法树转换成标准形式。(3)选择低层的存取路径。(4)用高级语言实现关系代数表达式优化算法。(对原始的语法树进行优化处理,生成查询计划,选择代价最小的。)2、用高级语言实现 启发式关系演算优化算法。实验七 数据库保护(DCL)功能模拟一)实验目的:( 1)掌握数据库系 统的 安全性保护机制。( 2)掌握数据库系 统的 完整