《数据库系统原理》课程基本实验设置

更新时间:2024-04-26 17:58:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

目 录

每个实验包括: 实验内容 实验要求 实验环境(可选) 实验背景知识 (可选) 实验步骤及结果分析 实验总结

第一章 概述

数据库课程的学习需要理论和实践的紧密结合,数据库实验是数据库学习的重要的环节。我们将针对数据库学习的实验环节进行实验设置和指导,包括数据库实验需要的知识、环境和内容的设置。

数据库课程的目标是:

理解和掌握数据库的理论知识。学生理解数据库系统的基本概念,掌握数据库系统的基本理论,包括数据库的特点、结构、关系数据模型、数据存储、数据查询及优化、关系数据库设计、事务管理等内容。

了解和熟悉数据库的使用和基本操作,掌握数据访问方法。在学生掌握基本的数据库概念和理论的基础上,培养学生的实践能力,学生能掌握基本的数据库的操作。

全面理解数据库系统,能进行数据库的设计,最终能完成一个完整的数据库应用系统的设计和实现。

数据库实验是为上面的目标服务,其内容的设置要和数据库的理论学习结合起来。根据课程进展和学生掌握的数据库系统知识的提高,数据库的实验分为两个大的部分。一个是和课程紧密相关的,和课程同步的实验,一是在数据库设计理论结束或在课程理论教学完成后进行的数据库系统的设计实验。

这里的实验指导将是针对和数据库的理论学习同步的课程实验。 课程实验目的:通过实验加深学生对数据库相关基本理论和概念的认识和理解,通过对SQL SERVER的操作和使用,了解一种具体的数据库管理系统,熟悉数据库的操作,提高学生数据库实践能力。

课程实验环境:

在实验中,我们选择Kingbase数据库作为基本的实验环境,操作系统可以是Windows2000/XP, 在课程实验中需要用到KingBase的管理工具企业管理器,并用ISQL语言完成实验操作。

实验方式和要求:

课程实验要求每一个学生独立完成;

学生需要理解每一次实验内容,先掌握和了解相关的理论知识,然后制定实验步骤,完成实验内容;

课程实验虽然分次完成,但其在内容上是连贯的,前一次实验的数据可能为后面的实验所用,因此每一次实验结果需要保留;

实验完后,要完成实验报告,写清楚实验内容、实验步骤和实验结果。 实验内容设置:

课程基本实验根据理论学习的内容,包括如下8组实验: 实验一 数据库安装、数据库创建与维护实验; 实验二 数据库表/视图的创建与维护实验; 实验三 数据查询实验; 实验四 数据库接口实验;

实验五 数据库完整性与安全性实验; 实验六 数据查询分析实验;

实验七 数据库事务的创建与运行实验; 实验八 数据库的备份与恢复实验;

我们将在后面详细给出每一次实验的内容和要求。

第二章 Kingbase系统的主要内容

简介Kingbase和实验用到的管理工具。

第三章 ISQL语言

简介实验用到的ISQL语句及语法。

第四章 课程实验内容

实验一 Kingbase安装、数据库创建与维护实验 实验目的

1.通过对KINGBASE的安装和简单使用:

(1)了解安装KINGBASE的软硬件环境和安装方法; (2)熟悉KINGBASE相关使用;

(3)熟悉KINGBASE的构成和相关工具;

(4)通过KINGBASE的使用来理解数据库系统的基本概念;

2.通过创建数据库、并进行相应的维护,了解并掌握Kingbase数据库的创建和维护的不同方法和途径,并通过这一具体的数据库理解实际数据库所包含的各要素。

实验内容

1.Kingbase 安装

(1) 在windows2000/XP上安装并运行Kingbase。 (2) 练习启动和停止数据库服务。 (3) 通过Kingbase ES 交互式工具连接数据库。

(4) 熟悉Kingbase ES交互式工具的各项功能。 (5) 熟悉数据库服务器的启动和停止运行。 (6)指定具体的安装位置。

2.数据库创建与维护

(1) 创建学生选课数据库。

(2) 对数据库属性和参数进行查询、相应的修改和维护,内容包括:

- 最大连接数 - 服务器端口 - 共享缓存数

- 为DBA保留的连接数 - 死锁检测时间 - 日志缓冲数 - 设置系统同步写

(3) 练习数据库的删除等维护;

(4) 用Kingbase管理工具和交互式的ISQL语句分别完成以上操作。

实验要求及说明

1.SQL Server的安装实验要求学生在微机上安装SQL Server数据库系统,为后续各个实验搭建实验环境。

2.数据库创建与维护实验则要求面向具体应用领域,利用SQL Server相关机制,创建并维护数据库系统,为后续各个实验提供前期准备

3.要求学生根据以上要求确定实验步骤,独立完成以上实验内容。并在安装和数据库运行后熟悉SQL SERVER 的各种运行管理。 4.实验完成后完成实验报告

实验步骤(待定)

Kingbase的安装过程

实验报告要求

实验报告需要完成以下内容: 实验目的 描述本次实验的目的。 实验平台及环境 介绍自己实验所基于的软硬件环境及所用到的工具。 实验内容 介绍本次实验的具体内容。 实验步骤 根据实验内容和实验过程情况介绍实验步骤。 实验结果及分析 对实验结果进行总结和分析。 说明建立的数据库的相关内容,和维护后的相关属性的改变。 实验小结 总结本次实验遇到的问题和心得。

实验二 数据库表/视图的创建与维护实验 实验目的

1. 通过进行数据库表的建立操作,熟悉并掌握Kingbase数据库表的建立方法,理解关系数

据库表的结构,巩固SQL标准中关于数据库表的建立语句。 2. 通过进行数据库表数据的增加、删除和插入等维护操作,熟悉并掌握Kingbase数据库数

据的操作方法,巩固SQL中关于数据维护的语句

3. 通过对Kingbase中建立、维护视图的实验,熟悉Kingbase中对视图的操作方法和途径,

理解和掌握视图的概念

实验内容

数据库表实验:

(1) 创建数据库表

创建学生选课数据库中所包含的数据库表,数据库表结构如下: 学生(学号,姓名,性别,年龄,系别,班级) 课程(课程编号,课程名称,学分) 选修(学号,课程编号,学生成绩)

要求为各数据库表属性选择合适的数据类型。 列名、数据类型(长度列、精度、小数位数项)、是否允许空值等。 (2) 查看和修改表结构。

选择一个数据库表,练习对其表结构进行相应的修改。 (3) 练习用交互式的SQL语句分别完成以上操作。 (4) 对学生数据库中的三张表分别插入数据; (5) 对表中的数据进行修改; (6) 对表中的数据进行删除操作

视图实验:视图的建立、修改、删除

(1)建立如下视图: 学生选修课程信息视图,包括以下内容: 学生学号、姓名、所在系、选修的课程编号、课程名称、成绩 (2)修改以上视图,增加学生所在班级信息。 (3)对以上视图删除。

实验要求

(1) 用交互式语句完成以上操作;

(2) 能够对整个的过程进行批命令操作;

(3) 要求学生独立完成以上内容。 (4) 根据以上内容确定实验步骤。

(5) 实验完成后完成要求的实验报告内容。

实验步骤(待定)

实验报告要求

实验报告需要完成以下内容: 实验目的 描述本次实验的目的。 实验平台及环境 介绍自己实验所基于的软硬件环境及所用到的工具。 实验内容 介绍本次实验的具体内容。 实验步骤 根据实验内容和实验过程情况介绍实验步骤。 实验结果及分析 对实验结果进行总结和分析。 给出完成以上实验内容的SQL语句,并对相应的SQL语句进行分析。 说明建立的数据库表的相关内容,和进行的相关维护工作。 实验小结 总结本次实验遇到的问题和心得。

实验三 数据查询实验 实验目的

通过对实验二中建立的学生数据库关系表和视图的各种查询的操作,加深对SQL查询语言的了解,掌握相关查询语句的语法和使用方法。

实验内容

数据库关系表查询:

(1) 简单的查询操作,包括单表的查询、选择条件、结果排序等的练习; (2) 多表的连接查询,包括等值连接、自然连接等;

(3) 复杂的查询操作,包括使用分组函数等库函数的查询操作; (4) 练习带有IN、比较符的嵌套查询。 具体内容包括:

(1)在简单查询实验中,在sql语句完成以下查询操作: 查询“数据库原理”课程的学分; 查询选修了课程编号为“C01”的学生的学号和成绩,并将成绩按降序输出; 查询学号为“31401”的学生选修的课程编号和成绩; 查询选修了课程编号为“C01”且成绩高于85分的学生的学号和成绩。 (2)在多表连接的查询实验中,在SQL SERVER提供的交互式语言环境下用Transact SQL语句完成以下查询操作: 查询选修了课程编号为“C01”且成绩高于85分的学生的学号、姓名和成绩; 查询所有学生的学号、姓名、选修的课程名称和成绩; (3)在复杂查询实验中,用 SQL语句完成以下查询操作: 查询至少选修了三门课程的学生的学号和姓名; 查询所有学生的学号和他选修课程的最高成绩,要求他的选修课程中没有成绩为空的。 (4)在嵌套查询实验中,在kingbase提供的交互式语言环境下用iSQL语句完成以下查询操作,要求写嵌套查询语句: 查询选修了数据库原理的学生的学号和姓名; 查询没有选修数据库原理的学生的学号和姓名; 查询至少选修了学号为“31401”的学生所选修的所有课程的学生的学号和姓名。

视图查询:

对实验二建立的视图进行相关的查询操作,如: 查询选修了课程编号为“C01”的学生的学号和成绩; 查询所有学生的学号、姓名、选修的课程名称和成绩; 查询选修了数据库原理的学生的学号和姓名。

实验要求

(1) 用SQL语句完成以上操作 (2) 要求学生独立完成以上内容。

(3) 实验完成后完成要求的实验报告内容。

实验步骤(待定)

实验四 数据库接口实验-1 实验目的

1.通过实验了解通用数据库应用编程接口ODBC的基本原理和实现机制,熟悉主要的ODBC接口的语法和使用方法;

2.利用C语言(或其它支持ODBC接口的高级程序设计语言)编程实现简单的数据库应用程序,掌握基于ODBC的数据库访问的基本原理和方法 3.学习java语言,并采用jdbc接口方式对数据库进行访问

实验内容与步骤

1. 以教科书第四章关于SQL语言相关内容为基础,课后查阅、自学ODBC接口有关内容,

包括ODBC的体系结构、工作原理、数据访问过程、主要API接口的语法和使用方法等。 2..以实验二建立的学生数据库为基础,编写 C语言(或其它支持ODBC接口的高级程序设计语言) 数据库应用程序,按照如下步骤访问数据库

(a) Step1. ODBC初始化,为ODBC分配环境句柄 (b) Step2. 建立应用程序与ODBC数据源的连接

(c) Step3. 利用SQLExecDirect语句,实现数据库应用程序对数据库的建立、查询、

修改、删除等操作 (d) Step4. 检索查询结果集 (e) Step5. 结束数据库应用程序

实验要求

1.要求所编写的数据库访问应用程序中使用到以下主要的ODBC API函数:

(1) SQLALLocEnv:初始化ODBC环境,返回环境句柄 (2) SQLALLocConnect:为连接句柄分配内存并返回连接句柄 (3) SQLConnect:连接一个SQL数据资源 (4) SQLDriverConnect

连接一个SQL数据资源,允许驱动器向用户询问信息 (5) SQLALLocStmt

为语句句柄分配内存, 并返回语句句柄 (6) SQLExecDirect

把SQL语句送到数据库服务器,请求执行由SQL语句定义的数据库访问 (7) SQLFetchAdvances

将游标移动到到查询结果集的下一行(或第一行) (8) SQLGetData

按照游标指向的位置,从查询结果集的特定的一列取回数据 (9) SQLFreeStmt

释放与语句句柄相关的资源 (10) SQLDisconnect

切断连接

(11) SQLFreeConnect

释放与连接句柄相关的资源 (12) SQLFreeEnv

2. 释放与环境句柄相关的资源

实验五 数据库完整性与安全性实验 实验目的

1. 通过对完整性规则的定义实现,熟悉了解kingbase中完整性保证的规则和实现方法,加

深对数据完整性的理解。

2. 通过对安全性相关内容的定义,熟悉了解kingbase中安全性的内容和实现方法,加深对

数据库安全性的理解

实验内容

完整性实验:

(1) 分别定义学生数据库中各基表的主键、外键,实现实体完整性约束和参照完整性约

束;

CREATE TABLE sc (

sno varchar(6) NOT NULL, cno varchar(3) NOT NULL, grade int(11) DEFAULT NULL, PRIMARY KEY (sno,cno) ) DEFAULT CHARSET=gbk

Create Table student (

sno varchar(6) NOT NULL,

sname varchar(6) DEFAULT NULL, sex varchar(2) DEFAULT NULL, bdate datetime DEFAULT NULL, dept varchar(8) DEFAULT NULL, classno varchar(3) DEFAULT NULL, PRIMARY KEY (sno) ) DEFAULT CHARSET=gbk

Create Table course (

cno varchar(3) NOT NULL,

cname varchar(12) DEFAULT NULL, lhour int(11) DEFAULT NULL, credit int(11) DEFAULT NULL,

semester varchar(2) DEFAULT NULL, PRIMARY KEY (cno) ) DEFAULT CHARSET=gbk

(2) 分别向学生表、课程表插入具有相同学号和相同课程编号的学生数据和课程数据,

验证其实体完整性约束;

(3) 向学生选课表中插入一条数据,课程编号是课程表中没有的,验证参照完整性约束;

(4) 删除学生表中的所有数据,验证参照完整性约束;

(5) 定义存储过程,完成查询某个学生的选课情况,并执行。

存储过程存放在服务器端数据库中,是经编译过的能完成特定功能的Transact-SQL语句的集合,是作为一个单元来处理的。用户可以像使用函数一样重复调用这些存储过程,实现它所定义的操作。

存储过程在第一次执行时进行语法检查和编译,执行后它的执行计划就驻留在高速缓存中,用于后续调用。存储过程可以接收和输出参数、返回执行存储过程的状态值,还可以嵌套调用。

存储过程的优点 实现了模块化编程。

存储过程具有对数据库立即访问的功能,使用存储过程可以加快程序的运行速度。 使用存储过程可以减少网络流量。

使用存储过程可以提高数据库的安全性。 语句 输入、返回结果 视图 只能是SELECT语句 不能接受参数,只能返回结果集 多个表格的连接查询 存储过程 可以包含程序流、逻辑以及SELECT语句 可以有输入输出参数,也可以有返回值 典型应用 完成某个特定的较复杂的任务 用CREATE PROCEDURE 命令创建存储过程 创建存储过程前,应该考虑下列几个事项:

①不能将 CREATE PROCEDURE 语句与其它 SQL 语句组合到单个批处理中。每一个批处

理就是一个go语句段.

②创建存储过程的权限默认属于数据库所有者,该所有者可将此权限授予其他用户。

③存储过程是数据库对象,其名称必须遵守标识符规则,应避免使用sp_前缀,以免和系统存储过程相混淆.

④只能在当前数据库中创建存储过程。 ⑤一个存储过程的最大尺寸为128M。

(6) 定义触发器,当向学生表插入新的一条记录时,将所有学生出生日期加1;并对其

进行测试。

(7) 用sql完成以上操作。

安全性实验内容

(1) 定义一新的登陆帐号、数据库用户,并授予其访问学生数据库的读权限;

(2) 分别用sa用户和新定义的用户访问学生数据库,并对其中的学生表数据进行修改;

(3) 创建数据库角色,并授予访问学生数据库的读、写权限; (4) 将角色赋予(1)中定义的用户,建立用户和角色联系;

(5) 再次用此用户访问学生数据库,并对其中的学生表数据进行修改。 (6) 用SQL语句分别完成以上内容。

实验六 数据查询分析实验 实验目的

通过对不同情况下查询语句的执行分析,巩固和加深对查询和查询优化相关理论知识的理解,提高优化数据库系统的实践能力,熟悉了解kingbase中查询分析器的使用,并进一步提高编写复杂查询的SQL 程序的能力。

实验内容

1.索引对查询的影响

(1) 对结果集只有一个元组的查询分三种情况进行执行(必如查询一个具体学生的信

息):

不建立索引,(学号上)建立非聚集索引,(学号上)建立聚集索引。 用查询分析器的执行步骤和结果对执行进行分析比较。

(2) 对结果集中有多个元组的查询(例如查看某门成绩的成绩表)分类似(1)的三种情

况进行执行比较。

(3) 对查询条件为一个连续的范围的查询(例如查看学号在某个范围内的学生的选课情

况)分类似(1)的三种情况进行执行比较,注意系统处理的选择。

(4)索引代价。在有索引和无索引的情况下插入数据(例如在选课情况表SC 上插入数据),比较插入的执行效率。

2 对相同查询功能不同查询语句的执行比较分析 (1) group by select avg(grade) from sc

group by cno having cno =100

select avg(grade) from sc

where cno = 100

有和没有group by,比较其查询效率,并分析。

(2)

select sno,sname,age from student s1 where age = (select max(age) from student s2

where s1.dept = s2.dept )

另一个:

select dept ,max(age) as maxAge into tmp from student group by dept;

select sno, sname , age from student,tmp

where student.age = tmp.maxAge and tmp.dept=student.dept drop table tmp;

重写后的查询一定比原始查询更优吗?通过执行分析结果。

(3)对下面两个查询进行比较 select sname,age from student

where dept != 10 and age > all (select age

from student where dept = 10 ) 另:

select sname ,age from student

where dept != 10 and age > ( select max(age) from student where dept = 10 )

3 查询优化

除了建立适当索引,对SQL 语句重写外,还有其他手段来进行查询调优,例如调整缓冲区大小,事先建立视图等。设计实现下列查询,使之运行效率最高。 写出你的查询形式,以及调优过程;并说明最优情况下的运行时间。

(1)查找选修了每一门课的学生,其成绩等于该课程的平均分。先按照课程升序排序,再按照学号升序排序。

(2) 查找至少选修了课程数据库原理和操作系统的学生的学号。

实验七 数据库的事务创建与运行实验 实验目的

通过实验,了解kingbase数据库系统中各类数据库事务的定义机制和基于锁的并发控制机制,掌握kingbase数据库系统的事务控制机制。

实验内容

1.定义三种模式的数据库事务 2.察看事务的锁信息和隔离级别

3.利用SQL语句和数据库API函数控制事务

4.利用事务调试语句,查看事务相关信息,调试事务

实验八 数据库的备份和恢复实验 实验目的

结合课堂所学知识,了解kingbase的数据备份和恢复机制,通过面向具体应用领域数据库的相关实验掌握kingbase的数据备份和恢复机制的具体方法,加深对数据库备份和恢复的理解。

实验内容与步骤

(1) 用企业管理器或存储过程创建一个备份设备

(2) 为“学生数据库”设置一个备份计划,要求每当CPU空闲时采用多种方式进行数据库备份。

备份方式可以是:完全数据库备份、数据库和事务日志备份、差异/增量备份、或数据库文件/文件组备份。

备份可利用系统的备份机制进行。

(3) 修改“学生数据库库”备份计划,要求以三天为周期(或自定义的其它时间周期)修改数据库的备份方式,重新对数据库进行备份。

比较2种备份计划下,所备份的数据库内容的异同。

(4) 利数据库恢复工具,恢复“学生数据库”,比较恢复还原的数据库和原来的学生数据库

在数据库内容上的异同。

(5) 用数据库转换工具,将数据库的内容从一种格式转换到另外一个格式; (6) 利用数据库转换工具,将数据库的内容从一种数据库转移到一个数据库中;

实验八 数据库的备份和恢复实验 实验目的

结合课堂所学知识,了解kingbase的数据备份和恢复机制,通过面向具体应用领域数据库的相关实验掌握kingbase的数据备份和恢复机制的具体方法,加深对数据库备份和恢复的理解。

实验内容与步骤

(1) 用企业管理器或存储过程创建一个备份设备

(2) 为“学生数据库”设置一个备份计划,要求每当CPU空闲时采用多种方式进行数据库备份。

备份方式可以是:完全数据库备份、数据库和事务日志备份、差异/增量备份、或数据库文件/文件组备份。

备份可利用系统的备份机制进行。

(3) 修改“学生数据库库”备份计划,要求以三天为周期(或自定义的其它时间周期)修改数据库的备份方式,重新对数据库进行备份。

比较2种备份计划下,所备份的数据库内容的异同。

(4) 利数据库恢复工具,恢复“学生数据库”,比较恢复还原的数据库和原来的学生数据库

在数据库内容上的异同。

(5) 用数据库转换工具,将数据库的内容从一种格式转换到另外一个格式; (6) 利用数据库转换工具,将数据库的内容从一种数据库转移到一个数据库中;

本文来源:https://www.bwwdw.com/article/jlup.html

Top