文档库 最新最全的文档下载
当前位置:文档库 › 数据库技术实验指导书(2018年春季)

数据库技术实验指导书(2018年春季)

《数据库技术》实验指导书

北方工业大学计算机学院

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办公室,过时不候!请大家配合。

附录《实验报告》统一格式

相关文档
相关文档 最新文档