数据库系统原理课程设计讲解03.docx
- 文档编号:373434
- 上传时间:2022-10-09
- 格式:DOCX
- 页数:17
- 大小:21.79KB
数据库系统原理课程设计讲解03.docx
《数据库系统原理课程设计讲解03.docx》由会员分享,可在线阅读,更多相关《数据库系统原理课程设计讲解03.docx(17页珍藏版)》请在冰豆网上搜索。
数据库系统原理课程设计讲解03
《数据库系统原理课程设计》
讲义
黑龙江大学计算机学院
黑龙江大学软件学院
2016年3月
一、开设本课程设计的目的
本课程是计算机专业中一门重要的专业理论课。
为配合《数据库系统原理与实现》课程的教学,通过模拟DBMS的实现,更深刻地领会DBMS的工作原理和实现方法,从而具有初步开发系统软件的实际能力,特开设此课程设计。
将读书环节融入数据库系统原理课程设计的教学内容中,做到理论教学、实践教学、读书环节三者有机结合。
通过读书使学生进一步了解课程的理论知识,拓宽视野,加深对本专业相关课程的理解,并培养独立阅读、思考、解决问题的能力。
二、课程设计的主要内容
通过理论授课与读书环节,熟悉DBMS设计与实现的基本理论和方法,用高级程序设计语言完成DBMS原型系统的设计与实现。
通过模拟DBMS的实现,使学生系统地掌握关系代数语言的运算功能;了解DBMS的DDL、DML、DCL等功能的实质含义;掌握结构化设计方法;了解大型软件的设计技术。
1、DDL功能模拟
在熟悉和掌握关系数据库查询语言的基础上,用高级程序设计语言创建数据库。
具体包括:
(1)实现SQL的建库语句,建立相应的数据库表,并填写数据字典。
(2)实现表模式的修改功能。
要求:
1能够为已建立的表添加属性。
2能够从已建立的表中删除属性。
(3)实现删除表功能。
(4)实现创建视图的功能。
(5)实现删除视图的功能。
(6)实现创建索引的功能。
(7)实现删除索引的功能。
2、DML功能模拟
使用某种高级程序设计语言,实现SQL语句中的数据维护操作和查询操作。
具体包括:
(1)往已经创建的表中插入元组。
(2)从已经创建的表中删除元组。
(3)修改表中的数据。
(4)实现SELECT语句,包括:
1实现单表上的选择和投影操作。
2实现多表的连接操作。
3实现多表的选择、投影和连接的混合操作。
4实现带视图的上述操作。
5实现索引关系的上述操作。
(5)用高级语言实现启发式关系代数优化算法和基于复杂性估计的查询优化方法。
3、DCL功能模拟
要求根据数据字典(DD)实现对数据库的安全性检查和完整性约束的机制;利用事务的封锁机制实现对事务处理的并发控制;利用建立日志文件及周期性备份的机制实现对数据库的恢复。
三、教学文件及教学形式
教学文件:
《数据库系统原理》,李建中编著,电子工业出版社
教学形式:
教学与实验同步进行,并按实验要求上机实验,编程调试。
四、课程设计的具体内容
数据库系统原理课程设计共包括7个子实验,具体实验内容如下。
实验一关系数据库SQL语言的使用
实验条件:
提供以SQL语言为核心的数据库管理系统(如ORACLE,DB2,SYBASE,SQLServer等)上机环境。
(一)实验目的
通过上机实践,了解DBMS和SQL的概貌。
熟练掌握SQL的数据定义、数据操纵、完整性控制等功能。
(二)实验内容与步骤
1、基本表的创建、数据插入
(1)建立教学数据库的三个基本表:
S(S#,SNAME,AGE,SEX)学生(学号,姓名,年龄,性别)
SC(S#,C#,GRADE)学习(学号,课程号,成绩)
C(C#,CNAME,TEACHER)课程(课程号,课程名,任课教师)
(2)用INSERT命令输入数据。
基本表S的数据:
S1WANG20M
S2LIU19M
S3CHEN22M
S4WU19M
S5LOU21F
S8DONG18F
基本表C的数据:
C1DBLI
C2MATHSMA
C3CHEMISTRYZHOU
C4PHYSICSSHI
C5OSWEN
基本表SC的数据:
S1
C1
80
S1
C2
70
S1
C3
85
S1
C4
90
S1
C5
70
S2
C1
85
S3
C1
90
S3
C2
85
S3
C3
95
S4
C1
75
S4
C4
70
S5
C1
70
S5
C2
60
S5
C3
80
S5
C5
65
S8
C1
90
S8
C3
95
2、数据查询
(1)检索学习课程号为C2的学生学号与姓名。
(2)检索学习课程名为MATHS的学生学号与姓名。
(3)检索不学C2课的学生姓名与年龄。
(4)检索学习全部课程的学生姓名。
3、数据修改、删除
(1)把C2课程的非空成绩提高10%。
(2)在SC表中删除课程名为PHYSICS的成绩的元组。
(3)在S和SC表中删除学号为S8的所有数据。
4、属性的添加和删除
(1)为S表添加家庭住址和身高两个属性。
(2)为家庭住址和身高这两个属性添加值。
(3)分别删除家庭住址和身高属性。
5、视图的操作
(1)建立男学生的视图,属性包括学号、姓名、选修课程名和成绩。
(2)在男学生视图中查询平均成绩大于80分的学生学号和姓名。
6、库函数、授权控制
(1)计算每个学生有成绩的课程门数、平均成绩。
(2)使用GRANT语句,把对基本表S、SC、C的使用权限授给其他用户。
实验二关系数据库SQL语言的词法和语法分析
(一)实验目的
利用已有的编译知识,完成SQL语句的词法和语法分析工作,进一步了解DBMS中数据字典的作用,并为后续的查询处理和优化实验打好基础。
(二)实验内容与步骤
分别完成下面语句的词法和语法分析工作:
(1)createtable(8)createindex
(2)droptable(9)dropindex
(3)altertable(10)createview
(4)insert(11)dropview
(5)delete(12)createuser
(6)update(13)grant
(7)select(14)revoke
每一个语句的具体要求:
(1)CREATETABLE关系名
(属性名类型,//类型至少支持int、char两种类型
......,
属性名类型)
(2)DROPTABLE关系名
(3)ALTERTABLE关系名ADD属性名类型
//支持的类型同createtable语句
ALTERTABLE关系名DROP属性名,……,属性名
(4)INSERTINTO关系名[(<列名>,…,<列名>)]
(VALUES(<常值>,...,<常值>))
(5)DELETEFROM关系名
[WHERE条件表达式]//条件表达式包括and、or、=、≠、≤、≥、<、>
(6)UPDATE关系名
SET〈列名〉=〈常值〉,…,〈列名〉=〈常值〉
[WHERE条件表达式]//同delete
(7)SELECT*|属性名列表
FROM关系名列表
WHERE条件表达式//同delete
(8)CREATEINDEX索引名ON关系名(属性名,......,属性名)
(9)DROPINDEX索引名
(12)CREATEUSER用户名IDENTIFIEDBY密码
(13)GRANT权限列表//自己实现的所有SQL命令
ON关系名
TO用户列表
(14)REVOKE权限列表//同GRANT
ON关系名
FROM用户列表
实验三创建数据库及数据操作功能
(一)实验目的
1、熟悉关系数据库建库语句和数据操作语句的功能。
2、熟悉关系数据库中关系模式维护语句的功能。
3、掌握用高级程序设计语言创建数据库的方法。
4、掌握数据操作功能的实现方法。
5、掌握修改关系模式的方法。
(二)实验内容与步骤:
//以下命令实现的功能参照实验二中对语句的要求
1、实现建立数据库表结构的功能(createtable)。
要求:
(1)支持整型、字符型数据。
(2)以文件形式保存基本表。
(存储结构可自行设计)
(3)建立相应的数据字典。
2、实现输入数据库记录的功能(insert)。
3、实现删除数据库记录的功能(delete)。
4、实现修改数据库记录的功能(update)。
5、实现显示数据库结构和内容(以表格形式显示)(select*from关系名)。
6、实现在已有的关系中添加属性的功能(altertable……add);
7、实现从已有的关系中删除属性的功能(altertable……drop);
6和7要求不论关系表中是否有数据,都能正确执行命令,并修改相应的数据字典。
8、实现删除表的功能(droptable)。
9、实现建立视图的功能,并保存在数据字典中。
//选作
10、实现删除视图的功能。
//选作
实验四索引的创建及删除
(一)实验目的
1、了解SQL语句中的创建索引及删除索引语句的格式和功能。
2、掌握主索引、聚集索引及辅助索引的建立及检索方法。
3、掌握B树索引的建立及检索方法。
4、掌握删除索引的方法。
(二)实验内容与步骤
1、为某关系的主属性建立索引。
//当指定的属性有序时建立的索引
2、为某关系的非主属性建立索引。
//当指定的属性无序时建立的索引
3、为某关系的某属性建立B树索引。
//选作
4、删除建立的索引。
实验五查询功能
(一)实验目的
1、熟悉SQL语句中的查询语句的格式和功能。
2、掌握查询处理算法,包括选择、投影、连接算法。
要求:
能够处理多个表的连接操作;查询条件包括and、or、=、≠、≤、≥、<、>。
(二)实验内容与步骤
1、实现全关系选择操作(select*from关系名)。
2、实现单关系的投影操作(select属性名列表from关系名)。
3、实现单关系的选择操作(select*from关系名where条件表达式)。
4、实现单关系的选择和投影操作(select属性名列表from关系名where选择条件)。
//选择条件是指“属性名操作符常量”形式的条件
5、实现两个关系和多个关系的连接操作(select*from关系名列表where连接条件)。
//选择条件是指“属性名操作符属性名”形式的条件
6、实现两个关系和多个关系的选择和连接操作(select*from关系名列表where选择条件和连接条件)。
7、实现两个关系和多个关系的投影和连接操作(select属性名列表from关系名列表where连接条件)。
7、实现多个关系的选择、投影和连接操作(select属性名列表from关系名列表where条件表达式)。
8、利用索引属性完成选择操作,记录完成操作花费的时间,在建立索引前的关系上执行同样的选择操作并进行时间代价的比较。
9、利用索引属性完成连接操作,记录完成操作花费的时间,在建立索引前的关系上执行同样的连接操作并进行时间代价的比较。
10、实现带视图的查询。
//选作
实验六关系数据库的查询优化
(一)实验目的
1、了解优化的一般策略。
2、掌握关系代数等价变换规则。
3、掌握启发式代数优化规则。
4、掌握启发式关系代数优化算法。
5、掌握基于复杂性估计的查询优化方法。
(二)实验内容与步骤
1、把查询转换成语法树。
2、用高级语言实现启发式关系代数优化算法。
(对原始的语法树进行优化处理,生成查询计划,选择代价最小的。
)
3、采用基于复杂性估计的查询优化方法
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 系统 原理 课程设计 讲解 03