《数据库技术》实验指导书
北方工业大学计算机学院
2018年01月
目录
一实验目的 (3)
二适用专业 (3)
三实验学时数 (3)
四实验总要求 (3)
五实验环境 (4)
六实验一:数据库的管理(2学时) (4)
【实验目的】 (4)
【实验任务】 (4)
【实验步骤】 (7)
1、SQL Server 2005服务管理器使用 (7)
2、查询分析器的使用 (9)
七实验二:数据库的数据操作(4学时) (13)
【实验目的】 (13)
【实验任务】 (14)
八实验三: C/S结构的数据库编程(6学时) (15)
【实验目的】 (15)
【实验任务】 (15)
【相关知识】 (16)
1、ODBC的概述 .............................................................................................................. 错误!未定义书签。
2、通过ODBC连接数据库 ............................................................................................. 错误!未定义书签。
3、VS2005开发环境中连接数据库 (16)
4、通过连接字符串连接数据库 ................................................................................... 错误!未定义书签。九实验考核. (20)
附录《实验报告》统一格式 (20)
一实验目的
数据库原理是一门理论和实践性很强的课程。本课程要求学生不仅要掌握数据库的基本原理,而且还要掌握一门数据库系统的应用技能。因此上机实验是数据库课程的重要环节。学生学习这门课程后要求掌握两方面内容:数据库设计和上机实践。
本课程实验的目的如下:
1. 通过上机实验,加深对数据库系统理论知识的理解,增强对大型数据库的感性认识和实际操作能力;
2. 通过使用具体的RDBMS(如SQL Server 2005/2008),了解一种实际的数据库管理系统,并掌握其操作技术。
3. 学习使用SQL语言,加深对SQL语言的认识和理解,提高SQL语言的实际应用能力;
4. 通过给出一个具体数据库应用实例,使学生们了解各关系(表)间的联系,并判断其是否达到3NF模式.并对这个数据库编程以达到利用高级语言处理数据库的目的。
二适用专业
数字媒体专业
三实验学时数
12学时
四实验总要求
某一个学校有若干个系,每个系有若干个学生,每个学生可以选修多门课程,一门课程也可以由多名同学选修,一位教师只讲授一门课程,一门课程仅由一位教师讲授。为便于学生信息及学生成绩的有效管理,需要开发一个学生成绩管理系统。
此数据库的数据字典定义如下:
(1)学生(Student):学号(SNO),姓名(SNAME),性别(SSEX),年龄(SAGE),系别(SDEPT);
(2)课程(Course):课程号(CNO)、课程名(CNAME)、学时(CTIME)、学分(CCREDIT)
(3)教师(Teacher):教师编号(TNO),教师名(TName),性别(TSex),所在
系(TDept)。
实验内容及总要求如下:
1.根据以上数据字典,画出该数据库的ER图,并将ER图转换成逻辑关系模式,保证
每个关系均规范到3NF,最后在SQL Server中实现关系模式的存储,确定主码、外部码、索引等。
2.利用查询分析器完成SQL语句操作。
3.实现C/S结构的数据库编程。
五实验环境
数据库实验要求如下环境,服务器端:Windows 2008/7、数据库服务器(SQL Server 2005/2008)。
六实验一:数据库的管理(2学时)
【实验目的】
1.学会使用企业管理器和查询分析器创建数据库、创建基本表和查看数据库属性。
2. 学会使用企业管理器和查询分析器向数据库输入数据,修改数据,删除数据的
操作。
【实验任务】
1、根据以上数据字典,画出该数据库的ER图,完成数据库的概念结构设计;
2、将ER图转换成逻辑关系模式,判断逻辑数据库模式中的各个关系(表)是第几
范式,如果没有达到第三范式或BC范式,请进行规范化。完成数据库的逻辑结构设计。
3、通过企业管理器或者查询分析器实现关系模式的存储,包括确定主码、外部码
等。
4、通过企业管理器或查询分析器向数据库中输入数据。
各关系表的结构和示例数据如下:
1.学生情况表 Student
说明:(1)主键:SNO 非空字段:SNAME,Ssex
(2) CS:计算机系 MS:数学系 IS:信息科学系2.课程名称表 Course
说明:(1)主键:CNO 非空字段:Cname 3.教师表 Teacher
说明:主键:TNO 非空字段:Tname,Tsex
参照关系:Course(Cno)
4.成绩表 Score
主关键字:(SNO,CNO)参照关系:Student(SNO),Course(CNO)
【实验步骤】
1、SQL Server 2005服务管理器使用
1.启动数据库服务软件SQL Server 2005:
在程序菜单中选择Microsoft SQL Server 2005,如图1-1所示:
图1-1
点击SQL Server Management Studio后,出现连接到服务器,如图1-2所示:
图1-2
注意图1-2中,“服务器名称”默认位本机的机器名,也可以直接输入“.”或
“(local)”或“本机的IP地址”,如果要连接远程的数据库服务器,则需要输入远程机器的IP地址,“身份验证”一般选择“SQL Server身份验证”(前提是设置了系统用户sa的密码),登录名一般使用系统账号“sa”。点击“连接”按钮,连接SQL Server 2005数据库。
2.在SQL Server 2005中建立数据库:
在对象资源管理器中选择数据库单击右键,新建数据库。如图1-3所示:
图1-3
在新建数据库窗口中,数据库名称输入数据库的名称。如图1-4所示:
图1-4
点击确定后,新建完成,如图1-5所示:
图1-5
2、查询分析器的使用
1.在“文件”菜单中选择新建--->使用当前连接查询,如图2-1所示:
图2-1
点击使用当前连接查询后,出现新的工作区窗口,输入sql语句。如图2-2所示。
图2-2
点击按钮,出现查询结果窗口,如图2-3所示。
图2-3
3、使用Studio、查询分析器建数据表
使用Studio提供的工具建立student、course、teacher、score这4个表
1、使用可视化工具建student、course表。如图在“对象资源管理器”中找到表,如图
3-1
图3-1
右键点击“表”,选择“新建表”,根据提示输入“列名”、“数据类型”等,注意:数据类型如果是字符串,一般选择VarChar类型。同时设置主键设置主键时右键点击“行”,根据提示操作即可。
2、使用查询分析器建立teacher、score表。如图3-2,先选中一个数据库,如图中选
中的“StudentCourse”数据库,然后点击“新建查询”。在新建的查询中,输入建表的SQL语句,如:create table teacher ………。输入后点击即可,或者按F5执行,注意:如果查询分析器中有多条语句,而这时仅希望执行其中的一条,则可以选中这条语句,再进行执行。
图3-2
4、使用查询分析器将表中的数据插入到数据表中
如图3-3所示,使用SQL语句将数据插入到数据表中,注意:字符型、日期型的数据使用单引号,数值型的数据不使用引号。
图3-3
5、数据库的备份
我们使用一种简单有效的备份方法(还有一些其他的备份方法,可自行查阅相关资料)。
1)首先右键选择要备份的数据库,选择“属性”。查看文件中,数据库的物理文件.mdf和.ldf文件的存放位置。如图3-4。记录物理文件存放的位置。
图3-4
2)然后选择要备份的数据库,右键点击,依次选择“任务”、“分离”,根据提示操
作即可。如图3-5
图3-5
3)最后到1)中记录的目录中找到两个物理文件,将其拷贝到U盘中带走即可。如要
还原数据库,只需将两个备份的.mdf和.ldf文件拷贝到计算机上,采用图3-6的操
作即可。右键选择“数据库”,点击“附加”,随后在弹出的界面中选择“添
加”,按照提示操作即可。
图3-6
七实验二:数据库的数据操作(4学时)
【实验目的】
1.在SOL Server查询分析器中完成复杂查询及视图定义。
2.在SOL Server查询分析器中完成增、删、改操作。
【实验任务】
1、打开数据库SQL Server 2005的查询分析器,用SQL语言完成以下语句。并通
过实验结果验证查询语言的正确性,将每个SQL语言及结果存盘,以备老师检查。(每题3分)
(1)求全体学生的学号、姓名和出生年份。
(2)求每个系的学生总人数并按降序排列。
(3)求选修了课程号为002或003的学生的学号、课程名和成绩。
(4)检索选修某课程的学生人数多于3人的教师姓名。
(5)查询所有未选课程的学生姓名和所在系。
(6)求每个同学的课程成绩的最高分,查询结果项包括:学生姓名、课程号及最高分。
(7)求所有讲授数据结构课程的教师姓名
(8)查询所有选修了李正科老师的课程的学生信息
(9)新建一个关系表S1(SNO,SNAME,SD,SA),其字段类型定义与Student表中的相应字段(SNO,SNAME,SDEPT,SAGE)的数据类型定义相同。将表Student中在计算机系
‘CS’的学生数据插入到表S1中。
(10)建立计算机系的学生的视图STUDENT_CS。利用视图STUDENT_CS,将学生的001号课程的成绩提高5分。
2、打开数据库SQL Server 2005的查询分析器,用SQL语言完成以下语句。并通
过实验结果验证数据操作的正确性,将每个SQL语句及结果存盘,以备老师检查。(每题3分)
(1)在学生信息表中插入一条记录:(sno,sname,ssex,sdept,sage),(96006,王
晓磊,男,CS,17)。
(2)学号为96006的王晓磊,其大学英语(课程编号009)的成绩是85分,将
其加入到成绩表中。(提示,如果建立了外键约束关系,必须先将大学英语这门
课加入到课程表中,才能往成绩表中添加此记录)
(3)删除年龄小于18岁的学生信息。
(4)将所有男生的‘数据库原理’成绩提高2分。
(5)查询课程平均成绩大于等于60分的课程,查询结果项包括:课程号、课程
名、平均分。
八实验三: C/S结构的数据库编程(6学时)
【实验目的】
1.学会通过https://www.wendangku.net/doc/5f3885090.html,访问数据库,熟悉使用https://www.wendangku.net/doc/5f3885090.html,技术进行数据库应用程序的设
计,通过ADO接口对数据库进行操作。
2.按要求设计界面,学会使用高级语言对数据库进行基本的增、删、改、查操作。【实验任务】
通过一门编程工具(VS2005 C#或.net)编写访问数据库的应用程序,编程序设计良好的一个人机交互界面,完成如下功能(也可选择其他编程工具开发)。
1)根据第四大项的实验总要求中的语义设计ER图,并实现学生、教师、课程等实体的基本信息管理(即对student、course、teacher三个表的增、删、改),这里注意对教师进行增、删、改时一定要注意教师所讲授的课程是否在课程表中存在(可以用下拉列表列出所有的课程进行选择,避免输入无效课程);(增加功能10分、删除功能10分、修改功能10分,总计30分,如果未考虑教师讲授课程的约束问题适当扣减1-5分)
2)设计并实现学生选课功能,所选课程存入score表中(成绩为空);(10分)3)设计并实现学生成绩录入功能,修改score表中的“成绩”字段;(10分)4)设计友好界面,展示“实验二”中的查询语句与数据操作语句;(5分)
5)将以上4项功能整合,设计并完成学生选课成绩管理系统。
【相关知识】
1、一个简单的C#数据库应用程序
1)创建数据库应用程序,如图
2)创建C#窗体应用程序MyDBApp,在窗体上添加一个DataGridView控件和Button 控件,并适当调整它们的大小和位置,设置其Text属性(其他属性不用设置):
3) 编写代码。假设数据库服务器的名称为“(local)”,服务器的登录名和密码分别为
“sa”和“sql”,则连接数据库StudentCourse并显示表student中数据的代码如下:private void button1_Click(object sender, EventArgs e)
{
//设置连接字符串
string ConnectionString = "Data Source=(local);Initial Catalog=StudentCourse;" +
"Persist Security Info=True;User ID=sa;Password=sql";
DataSet dataset = new DataSet(); //创建数据集
//创建一个新连接
SqlConnection conn = new SqlConnection(ConnectionString);
try
{
//创建数据提供者
SqlDataAdapter DataAdapter =
new SqlDataAdapter("SELECT * FROM student", conn);
//填充数据集dataset,并为本次填充的数据起名“student_table”
DataAdapter.Fill(dataset, "student_table");
dataGridView1.DataSource = dataset;
//在dataGridView1控件中显示名为student_table的填充数据
dataGridView1.DataMember = "student_table";
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
finally
{
conn.Close();
conn.Dispose();
dataset.Dispose();
}
}
4) 执行该程序,在运行界面上双击【浏览数据】按钮即可看到数据库StudentCourse中
数据表student所包含的内容:
——SqlConnection和DataSet实际上是https://www.wendangku.net/doc/5f3885090.html,组件包含的内容,因此要开发基于C#的数据库应用程序,需要对数据库及https://www.wendangku.net/doc/5f3885090.html,组件有一定的了解。
2、另一个简单例子
1)添加两个控件richTextBox1 和button1
双击“查询”按钮,进入后台代码页代码如下:
using System;
using System.Collections.Generic;
using https://www.wendangku.net/doc/5f3885090.html,ponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
namespace StudentClientServer
{
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
string constr = "Data Source=(local);Initial Catalog=StudentCourse;User
ID=sa;Password=sql";
SqlConnection conn = new SqlConnection(constr);
conn.Open();
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
https://www.wendangku.net/doc/5f3885090.html,mandText = "select * from teacher";
https://www.wendangku.net/doc/5f3885090.html,mandType = CommandType.Text;
SqlDataReader sdr = cmd.ExecuteReader();
while (sdr.Read())
{
richTextBox1.Text += sdr.GetString(0) + " " + sdr.GetString(1) + " " + sdr.GetString(2) + " " + sdr.GetString(3) + " " + sdr.GetString(4) + "\n";
}
sdr.Close();
conn.Close();
}
}
}
3、https://www.wendangku.net/doc/5f3885090.html, 技术基础
参考PPT“09_3C#数据库开发技术及实例”
九实验考核
1、实验考核采取实验报告和程序验机相结合的方式,包括验机成绩和报告成绩。
2、验机要求:
◆检验实验二的SQL语句及结果;
◆检验实验三的程序功能;
3、实验报告要求:
◆《数据库技术》报告内容包括两个方面:封面和报告内容。
◆封面占单独一页,固定格式。样本见下面附件1(封面样本)。
◆报告内容包括:实验题目、实验目的和要求,实验步骤、主要技术问题的处理
方法、实验结果及实验总结
◆报告字体要求:正文为“宋体小四”,行间距为单行倍距,,纸张统一为A4
纸。
◆源代码和课程设计报告不允许出现抄袭现象,若出现内容相似者,所有雷同者
均按不通过处理。
◆提交打印文档时间:第16周的周五下班前(5:30)提交,每个班
级的课代表或者学习委员将实验报告按学号排序,送到五教9层903办公室,过时不候!请大家配合。
附录《实验报告》统一格式