数据库原理及应用实验大纲

更新时间:2023-10-20 12:09:01 阅读量: 综合文库 文档下载

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

《数据库原理及应用》实验大纲

特别要求与说明

1、单元实验1-8中每做一个实验都要写实验报告,其报告格式见参考模板。 2、单元实验1-8中只有用粗体字书写的实验内容要求同学必须完成,并将相应命令和执行结果窗口剪贴到实验报告中。单元实验9-10是完成大型实验的必备基础,请在大型实验开始之前完成,但不需要写入单元实验报告中。

3、单元实验1-8的要求对每个同学都是统一的,但每个同学在做实验时,必将其修改成针对自己的、具有个性化的特殊实验要求。修改的关键是在数据库、基本表和属性的命名中必须加上自己的姓名信息。操作方法如下: ① 基本表命名与数据库名类似,都是姓的全拼加上名的第一个字母和下划线组成前缀,比如黄德才姓名的拼音为Huang de cai,则前缀是huangdc_,因此数据库University_Mis和基本表Students分别命名为Huangdc_University_Mis和Huangdc_Students。

② 属性名的前缀以姓名的第一个字母和下划线组成,比如,黄德才姓名为huang de cai,则属性的前缀是hdc_,基本表huangdc_Students中属性名为Sname, Scredit, Sroom就分别命名为hdc_Sname, hdc_Scredit, hdc_Sroom等。

4、要求把实验过程、SQL命令和执行结果窗口复制到实验报告中,请从精品课程网站下载单元实验报告模板。

实验1 数据库及数据库表的建立实验

1. 实验目的

本实验的目的是使学生熟悉SQL Server的企业管理器的用法,初步了解SQL Server查询分析器的使用方法,熟悉SQL SERVER的常用数据类型,加深对SQL和SQL语言的查询语句的理解。熟练掌握简单表的创建与修改。 2. 实验时数 3. 实验内容

1. 基本表的建立:

a) 建立一个“学生”表Student,它由学号xh、姓名xm、性别xb、年龄nl、

所在系xi五个属性组成,其中学号属性不能为空,并且其值是唯一的。 b) 建立一个“学生”表Student,它由学号xh、姓名xm、性别xb、年龄nl、

所在系xi五个属性组成,其中学号属性不能为空,并创建检查约束(nl>0)。 c) 建立一个“学生”表Student,它由学号xh、姓名xm、性别xb、年龄nl、

所在系xi五个属性组成,要求学号为主键,xb有默认的值为 ‘男’ d) 建立“课程kc”包括课程号kch,课程名称kcmc,先修课程xxkc,学分

xf,要求建立主键

e) 建立“成绩登记表cjdj”包括学号xh,程号kch,成绩,要求建立主键及

与student及kc表联接的外键

2. 基本表的修改:

a) 在cjdj表中增加一列“任课教师rkjs” b) 删除cj表中rkjs一列

c) 将student表的xm一列允许空值的属性更改成不允许为空,将列xm的长

度由char(8)改为char(10)

d) 增加cjdj表的列cj增加一个约束要求cj>0 and cj<=100 e) 建立一个临时表,再将其删除

3. 索引的建立与删除(理解以下语句的含义并上机实践):

a) create unique index stu_xh on student(xh) b) create index xh_kch on cj(xh asc,kch desc) c) drop index student.xh_kch

4. 实验方法

在“企业管理器”和“SQL查询分析器”均完成以上的任务。并检查所做的操作表现。

实验2 数据库的简单查询和连接查询实验

1. 实验目的

本实验的目的是使学生掌握SQL Server查询分析器的使用方法,加深对SQL和SQL语言的查询语句的理解。熟练掌握简单表的数据查询、数据排序和数据连接查询的操作方法。 2. 实验时数 3. 实验内容

1. 简单查询操作。该实验包括投影、选择条件表达,数据排序,使用临时表等。

具体完成以下题目,将它们转换为SQL语句表示,在学生选课数据库中实现其数据查询操作。

4. 求数学系学生的学号和姓名 5. 求选修了课程的学生学号

6. 求选修课程号为‘C1’的学生号和成绩,并要求对查询结果按成绩的降序排列,

如果成绩相同按学号的升序排列。

7. 求选修课程号为‘C1’且成绩在80~90之间的学生学号和成绩,并成绩乘以0.8

输出。

8. 求数学系或计算机系姓张的学生的信息。 9. 求缺少了成绩的学生的学号和课程号

2. 连接查询操作。该实验包括等值连接、自然连接、求笛卡儿积、一般连接、外连接、

内连接、左连接、右连接和自连接等。

10. 查询每个学生的情况以及他所选修的课程 11. 求学生的学号、姓名、选修的课程及成绩

12. 求选修课程号为‘C1’且成绩在90以上的学生学号、姓名和成绩 13. 查询每一门课程的间接先行课(即先行课的先行课)

4. 实验方法

将查询需求用SQL语言表示;在SQL Server查询分析器的输入区中输入SQL查询语句;设置查询分析器的结果区为Standard Execute(标准执行)或Execute to Grid(网格执行)方式;发布执行命令,并在结果区中查看查询结果;如果结果不正确,要进行修改,直到正确为止。

实验3 数据库的嵌套查询实验

1. 实验目的

本实验的目的是使学生进一步掌握SQL Server查询分析器的使用方法,加深SQL语言的嵌套查询语句的理解 2. 实验时数 3. 实验内容

本实验的主要内容是:在SQL Server查询分析器中使用IN、比较符、ANY或ALL和EXISTS操作符进行嵌套查询操作。

具体完成以下例题。将它们用SQL语句表示,在学生选课中实现其数据嵌套查询操作。

例1 求选修了高等数学的学号和姓名

例2 求C1课程的成绩高于刘晨的学生学号和成绩

例3 求其他系中比计算机系某一学生年龄小的学生(即年龄小于计算机系年龄最大者的学生)

例4 求其他系中比计算机系学生年龄都小的学生 例5 求选修了C2课程的学生姓名 例6 求没有选修C2课程的学生姓名 例7 查询选修了全部课程的学生姓名

例8 求至少选修了学号为“95002”的学生所选修全部课程的学生学号和姓名 4. 实验方法

将查询需求用SQL语言表示:在SQL Server查询分析器的输入区中输入SQL查询语句:设置查询分析器的结果区为Standard Execute(标准执行)或Execute to Grid(网格执行)方式;发布执行命令,并在结果区中查看查询结果;如果结果不正确,要进行修改,直到正确为止。

实验4 数据库的集合查询和统计查询实验

1. 实验目的

本实验的目的是使学生熟练掌握SQL Server查询分析器的使用方法,加深SQL语言查询语句的理解。熟练掌握数据查询中的分组、统计、计算和集合的操作方法。 2. 实验时数 [相关知识]

(1) 分组和SQL函数查询

SQL函数是综合信息的统计函数,包括计数、求最大值、最小值、平均值、和值等,较详细的SQL函数及功能见第三章3.3节(SQL查询用的函数)。SQL函数可作为列标识符

出现在SELECT子句的目标列或HAVING子句的条件中。在SQL查询语句中,如果有GROUP BY分组子句,则语句中的函数为分组统计函数;如果没有GROUP BY分组子句,则语句中的函数为全部结果集的统计函数。

表1 基本的SQL函数 函数 功能 AVG(<数值表达式>) 求与字段相关的数值表达式的平均值 SUM(<数值表达式>) 求与字段相关的数值表达式的和值 MIN(<字段表达式>) 求字段表达式的最小值 MAX(<字段表达式>) 求字段表达式的最大值 COUNT(*|<字段>) 求记录行数(*),或求不是NULL的字段的行数

(2) 集合查询

每一个SELECT语句都能获得一个或一组元组。若要把多个SELECT语句的结果合并为一个结果,可用集合来完成。集合操作主要包括并操作UNION、交操作INTERSECT和差操作MINUS。

标准SQL语言中提供了并操作UNION,没有直接提供交操作INTERSECT和差操作MINUS,但可以用其他方法来实现,具体实现方法依查询不同而不同。

3. 实验内容

本实验的主要内容是:

a) 分组查询实验。该实验包括分组条件表达、选择组条件表达的方法。 b) 使用函数查询的实验。该实验包括统计函数和分组统计函数的使用方法。

c) 集合查询实验。该实验并操作UNION、交操作INTERSECT和差操作MINUS的实

现方法。

具体完成以下例题,将它们用SQL语句表示,在学生选课中实现其数据查询操作。 例1 求学生的总人数

例2 求选修了课程的学生人数

例3 求课程和选修了该课程的学生人数 例4 求选修超过3门课的学生学号

例5 查询计算机科学系的学生及年龄不大于19岁的学生

例6 查询计算机科学系的学生与年龄不大于19岁的学生的交集 例7 查询计算机科学系的学生与年龄不大于19岁的学生的差集

例8 查询选修课程‘C1’的学生集合与选修课程‘C2’的学生集合的交集 例9 查询选修课程‘C1’的学生集合与选修课程‘C2’的学生集合的差集 4. 实验步骤

将查询需求用SQL语言表示:在SQL Server查询分析器的输入区中输入SQL查询语句:设置查询分析器的结果区为Standard Execute(标准执行)或Execute to Grid(网格执行)方式;发布执行命令,并在结果区中查看查询结果;如果结果不正确,要进行修改,直到正确为止。

实验5 数据库的更新实验

1. 实验目的

本实验的目的是要求学生熟练掌握使用SQL 和通过SQL Server企业管理器向数据库输入数据、修改数据和删除数据的操作。 2. 实验时数

[相关知识]

SQL Server提供了很多方法更新表中数据。以插入记录为例,可以使用INSERT语句、VALUES子句将特定值集合插入一行;可以使用数据库接口API(ADO、OLE DB、ODBC和DB-Library)中的函数进行数据插入等。本实验主要掌握INSERT、UPDATE和DELETE语句的基本用法。

? 插入操作,其语句的一般格式为

INSERT

INTO table_or_view [(colum_list)] VALUES (date_values);

此语句是使date_values作为一行数据记录插入已命名的表或视图table_or_view中。 Column_list是由逗号分隔的table_or_view的列名列表,用来指定为其提供数据的列。如果没有指定column_list,表或视图中的所有列都将接收数据。 如果column_list没有为表或视图中的所有列命名,将在列表中没有命名的任何列中插入一个NULL值(或者在默认情况下为这些列定义的默认值)。在列的列表中没有指定的所有列都必须允许NULL值或者指定的默认值。否则SQL Server将返回一个错误。

? 修改操作语句的一般格式为

UPDATE 表名

SET <列名>=<表达式>[,<列名>=<表达式>]…… [where <条件>];

其功能是修改指定表中满足WHERE子句条件的元组。其中SET子句用于指定修改方法,即用<表达式>的值取代相应的属性列值。如果省略WHERE子句,则表示要修改表中的所有元组。

? 删除语句的一般格式为

DELETE

FROM <表名> [WHERE <条件>];

其功能是从指定表中删除满足WHERE子句条件的所有元组。如果省略WHERE子句,则表示要删除表中的所有元组,但表的定义仍在字典中。

3. 实验内容

通过企业管理器,在学生选课数据库的学生、课程和选课3个表中各输入10条记录。要求记录不仅满足数据约束要求,还要有表间关联的记录。

具体完成以下例题。将它们转换为SQL语句表示,在学生选课库中实现其数据更新操

框。

图 触发器属性对话框

如果要新建触发器,在文本[T]的文本框中输入创建触发器的SQL语句(见实验内容),单击“检查语法”按钮进行语法的检查,检查无误后,单击确定按钮。

3) 如果要修改触发器,则在名字弹出项中选择要修改的触发器名(本例为SC_inserted),

然后在文本[T]的文本框中对已有的内容进行修改,检查无误后单击“确定”按钮。 4) 如果要删除触发器,则在名字弹出项中选择要删除的触发器名(本例为SC_inserted),

并检查文本[T]的文本框中的内容,看是否选得正确,最后单击“删除”按钮。

2、 验证触发器

1) 在企业管理器中,由服务器开始逐步扩展到触发器所属表的数据库(本例为学生选课数

据库)。此时,可在选课表中输入一条记录(学号:’96001’,课程号:’C8’,成绩:88)。显然,这条记录是不符合参照完整性的。通过企业管理器输入时,会出现错误提示,违反了数据库的约束(如果约束C5和C6同时存在的话)。 2) 如果约束C5和C6存在,则删除之(参见实验一) 3) 打开SQL查询分析器,输入语句“INSERT INTO 选课 VALUES(‘96001’,‘C8’,88)”,

查看执行结果。

4) 删除触发器(本例为SC_inserted),重复步骤3。

实验9 数据库备份和恢复实验

1. 实验目的

本实验的目的是通过实验使学生了解SQL Server的数据备份和恢复机制,掌握SQL Server中数据库备份和恢复的方法。 2. 实验时数

[相关知识]

1、 SQL Server的三种备份形式

SQL Server具有三种备份形式:完全备份、事务日志和差异备份。 1) 完全备份:将数据库完全复制到备份文件中。 2) 事务日志备份:备份发生在数据库上的事务。

3) 差异备份:备份最近一次完全备份以后数据库发生变化的数据。

2、 数据库进行备份和恢复操作的方式

1) 静态的备份和恢复方式。该方式在进行数据备份或恢复操作时,SQL服务器不

接受任何应用程序的访问请求,只执行备份或恢复操作。

2) 动态的备份和恢复方式。该方式在进行数据备份或恢复操作时,SQL服务器同

时接受应用程序的访问请求。

3. 实验内容 本实验的内容是:

1. 用企业管理器创建一个备份设备。

2. 利用向导为学生选课数据库生成一个完全备份。 3. 在企业管理器中恢复学生选课数据库 4. 实验步骤

3、 在企业管理器中创建一个备份设备

5) 在企业管理器中扩展服务器,在管理文件夹中找到备份文件夹。用鼠标右键单击该文件

夹,在弹出的菜单中选择“新建备份设备”项,则出现“备份设备属性”对话框,如图所示。在名称文本框中输入设备名(本例为学生选课设备1)。单击“确定”按钮,备份设备就创建成功了。

图 “备份设备属性”对话框

6) 在备份文件夹的窗口中出现了新创建的设备。选中该设备,用鼠标右键单击,在弹出的

菜单中选择“属性”项,则出现“备份设备属性”对话框。

4、 利用向导为学生选课数据库生成一个完全备份。

1) 在企业管理器中扩展服务器,在数据库文件夹中选中要备份的数据库文件夹(学生选课

数据库)。选择菜单[工具]|[向导],则出现向导选择对话框。在向导选择对话框中,单击管理左边的“+”号,使之展开。选择“备份向导”项,单击“确定”按键。

2) 进入创建备份向导后,首先出现的是欢迎使用创建数据库备份向导对话框,其中简单介

绍了该向导的功能。单击“下一步”后,就会出现“选择要备份数据库”对话框。选择好要备份数据库后,单击“下一步”,就会出现“键入备份的名称和描述”对话框。键入备份名称为“学生选课备份”,单击“下一步”,就会出现“选择备份类型”对话框。这里我们选择“数据库备份”,单击“下一步”,就会出现“备份验证和调度”对话框。这里我们选择默认状态,单击“下一步”,就会出现“正在完成备份数据库向导”对话框。单击“完成”按钮,完成备份数据库向导,生成数据库备份。

5、 在企业管理器中恢复学生选课数据库。

1) 打开学生选课数据库,删除其中一个表(如选课表),即当前的学生选课数据库中没有

选课表。

2) 恢复学生选课数据库。步骤如下:在企业管理器中扩展服务器,在数据库文件夹中选中

要备份的数据库文件夹(学生选课数据库)。用鼠标右键单击,在弹出的菜单中选择“所有任务”项,在随之出现的级联菜单中选择“还原数据库”项,则出现还原数据库对话框。在此例中按“确定”按钮即可完成恢复工作。

3) 再打开学生选课数据库,看一看当前的学生选课数据库中有没有选课表

4) 修改学生选课数据库备份计划,要求每月1号进行数据库备份,重复步骤2、3。

5) 用其他方法生成备份。

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

Top