数据库原理及应用实验指导SQL ServerWord文档下载推荐.docx

上传人:b****6 文档编号:16823912 上传时间:2022-11-26 格式:DOCX 页数:38 大小:1.79MB
下载 相关 举报
数据库原理及应用实验指导SQL ServerWord文档下载推荐.docx_第1页
第1页 / 共38页
数据库原理及应用实验指导SQL ServerWord文档下载推荐.docx_第2页
第2页 / 共38页
数据库原理及应用实验指导SQL ServerWord文档下载推荐.docx_第3页
第3页 / 共38页
数据库原理及应用实验指导SQL ServerWord文档下载推荐.docx_第4页
第4页 / 共38页
数据库原理及应用实验指导SQL ServerWord文档下载推荐.docx_第5页
第5页 / 共38页
点击查看更多>>
下载资源
资源描述

数据库原理及应用实验指导SQL ServerWord文档下载推荐.docx

《数据库原理及应用实验指导SQL ServerWord文档下载推荐.docx》由会员分享,可在线阅读,更多相关《数据库原理及应用实验指导SQL ServerWord文档下载推荐.docx(38页珍藏版)》请在冰豆网上搜索。

数据库原理及应用实验指导SQL ServerWord文档下载推荐.docx

打开SQLServer2008中文版,将产品销售信息管理系统的产品销售数据库CPXS恢复到SQLServer2008中。

步骤如下:

菜单中选择还原数据库,弹出下对话框

目标数据库为CPXS,选择源设备,单击右边浏览按钮

单击添加,找到CPXS数据库备份文件,确定即可恢复。

打开SQLServerManagementStudio,选择产品销售数据库CPXS,打开供应商(XSS)表,显示记录,临时输入一些记录。

打开SQLServer2008查询分析器,查询

中临时输入的全部或部分记录。

打开VC++,打开产品销售信息工程

修改数据库连接串,步骤如下:

①打开StdAfx.h文件,修改连接串如下图:

②打开CCPXSSet.h文件,修改如下

③打开IDD_CPWH对话框,选择Adodc1,右键属性,然出对话框中选择Control,单击BUILD按钮,设置数据库连接串。

④打开IDD_XSWH对话框,选择Adodc1,右键属性,然出对话框中选择Control,单击BUILD按钮,设置数据库连接串。

操作和③一样;

⑸运行产品销售管理系统

3.掌握SQLServer2008管理工具的使用、了解数据库及对象

参看实验教材实验2

4.安装图解

放入SQLServer2008光盘,直接运行

要求安装.NET

开始安装

再次运行SQLServer2008安装

单击安装-全新的SQLServer独立安装,如果我们准备好了故障转移群集,那么我们就可以创建故障转移群集SQL

常规检查

授权协议

支持文件安装

安装完成开始检查自身

俩警告,一个是.NET警告,说没网络会延迟,或者需要下载文件

一个数要打开端口,无视了,晚点再打开

选择安装的功能,SQL数据库和管理工具

选择实例

驱动器检查

选择服务账户,如图选择的是本地系统账户

验证模式:

sql和本地模式两种,输入密码,另外添加管理员,可以添加本地组或者当前用户

选择汇报微软选项

运行检查

信息预览确认

开始正式安装

安装完成

单击关闭完成

开始菜单中的sql2008

打开smse管理工具

打开管理工具如图

新建数据库选项居然有启动ps选项了,集成到sql2008了

新建数据库页面已经抛弃了sql7.0,只兼容SQLServer2000了,其他的倒没什么大的变化

启动ps后如图

在防火墙中新建入站规则,端口选择1433

建立完成,可以在客户端作业了.

实验3数据库和表创建

♦参看实验教材实验3

♦实验报告要求

1、记录在使用SQL语句过程中遇到的问题及解决办法。

2、举例说明如何操作会违背完整性(实体完整性、参照完整性)。

实验4数据库查询

参看实验教材实验4.1(P12页)

实验报告要求

写出与上述查询任务相对应的SQL查询语句,并记录在实验过程中遇到的问题、解决办法及心得体会。

实验5视图的定义和操作

参考实验教材4.2

实验报告要求:

1、在实验报告中要给出具体的视图定义要求;

2、分情况讨论那些操作可以成功完成,哪些不能成功完成。

查询操作:

举出一个进行查询操作的例子。

更新操作:

更新操作包含插入、更新、删除,针对不能成功完成更新操作的情况举出两个例子,并分析原因。

实验6实现数据完整性

参考实验教材实验6

实验7实现数据库安全管理

参考实验教材实验8

实验8存储过程和触发器

参考实验教材实验7

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

参考实训教材实验9

实验10数据库设计综合应用

可选择实验教材的产品销售数据库系统实验,也可选择下面实验

任务1:

活期储蓄管理系统数据库设计

1.问题的提出

在活期储蓄管理过程中,“储户”通过“存取款”与“储蓄所”发生业务联系。

试设计活期储蓄管理系统数据库的概念模型、关系模型并确定约束。

2.系统需求分析

通过对数据库用户(储蓄所业务人员)的调查,对用户的需求进行分析得知:

(1)储户是指在某个储蓄所开户的人。

该储蓄所称为储户的开户行。

(2)一个储蓄所可以有多个储户,每个储户有惟一的账号。

(3)每个储户可以在多个允许发生业务的储蓄所进行存取款。

(4)储户按信誉分为“一般”和“良好”两种(分别用0和1表示)。

信誉“一般”的储户不允许透支。

信誉“良好”的储户可以透支,但不能超过5万元。

(5)储户按状态分为:

“正常”和“挂失”两种(分别用0、1表示)。

状态为“正常”的储户允许存取款,状态为“挂失”的储户不允许存取款。

(6)储户的信息有:

账号、姓名、密码、电话、地址、信誉、存款额、开户行编号、开户日期、状态等。

(7)储蓄所的信息有:

编号、名称、电话、地址、负责人

(8)储户进行存取款时应该提供账号、存取标志(1:

表示存款,0:

表示取款)、存取金额、存取日期等信息,储蓄所首先要对储户的身份进行验证,对合法的储户再根据“信誉”判断是否可以发生此次业务。

若发生业务则记录相应信息,修改储户的存款额。

3.概念模型设计

请你根据系统需求分析设计E-R图。

4.关系模型设计

请你跟据E-R图转换成对应的关系模型,并标出主码

5.约束关系

(1)实体完整性

例如实体“储户”的主码“账号”不能为空等。

请你描述出全部的实体完整性。

(2)参照完整性

例如参照关系“存取款”的属性“账号”和储蓄所“编码”分别是被参照关系“储户”和“储蓄所”的外码。

因此,参照关系“存取款”的属性“账号”的值必须是被参照关系“储户”中某一元组的“账号”的值。

请你描述出全部的参照完整性。

(3)用户定义的完整性

要求如下:

对信誉为“一般”的储户取款时,只有当:

“储户.存款额”-“存取款.金额”≥0

时才可以发生取款业务。

同理,对信誉为“良好”的储户取款时,只要:

“储户.存款额”-“存取款.金额”≥-50000(元)

时便可以发生取款业务。

6.关系结构描述

请你仿照表1描述出活期储蓄管理系统的关系结构,实际上是给出了该系统数据库模式的型。

 

表1学生数据库关系结构描述

关系名称

属性名称

数据类型

宽度

说明

学生

学号

字符串

10

姓名

8

电话

16

出生年月

日期时间型

性别

15

课程

课程号

课程名

6

先修课程号

货币型

状态

整数

1

取值为0、1

学生选课

40

成绩

任务2:

活期储蓄管理系统数据库上的查询

1.示例数据

这里的示例数据,实际上是给出了活期储蓄管理系统数据库模式中各关系型的一个值,这些值构成数据库模式的一个值(或一个状态)。

(1) 

储户基本信息数据

账号

地址

开户行

开户日期

10020089

张晓军

(0571)22959618

杭州

1002

2002-11-20

10020123

李丹娜

(021)86129618

上海

1208

2000-08-06

10245082

张岚

(0571)66787968

1998-06-01

10204568

王立群

(021)89727982

1303

2004-01-08

10204567

赵庆

(0571)28008986

2003-02-08

(2) 

储户动态信息数据

密码

信誉

存款额[元]

ASDZXC

286000

WERERT

1678120

DFGASD

3000000

SDFCVB

35000

CVBGHJ

1200000

密码一般都是加密存储的。

(3) 

储蓄所数据

编号

名称

1001

中国建行杭州分行秋涛支行

(0571)88049082

秋涛北街283号

中国建行杭州分行武林支行

(0571)68066080

武林南路366号

中国建行杭州分行下沙支行

(0571)28800088

下沙22号大街788号

中国建行杭州分行滨江支行

(0571)26880266

滨江18号大街632号

(4)存取款数据

储蓄所编号

标志

存取金额

存取日期

50000

2003-09-28

80000

2003-10-16

10000

2003-12-10

12000

20000

2003-12-16

2004-02-08

30000

2004-03-16

2.数据查询

这里的每个查询可以侠义的视为一个应用,它所涉及的基本表或视图即为该应用的外模式。

请你在上述给出的活期储蓄管理系统数据库表数据中,写出完成如下诸查询SQL命令。

(1)查询储户的姓名和存款额

(2)查询账号为10245082的储户的存取款记录。

(3)查询编号为1002的储蓄所2003.10-2004.10的存取款业务详细记录。

(4)查询编号为1002的储蓄所的存取款业务汇总情况。

任务3:

创建活期储蓄管理系统数据库

--数据库的物理设计与实现

这里给出的活期储蓄数据库的物理设计与实现,实际上就是数据库模式到内模式(数据库的存储模式)的映射。

1.用SQLServer2000创建案例1描述的数据库

数据库名称为:

活期储蓄。

数据主文件为:

活期储蓄_data.mdf,存储在“D:

\data”,存储空间初始值为5MB,最大空间为100MB,文件增量15%。

日志文件为:

活期储蓄_log.idf,存储在“E:

\data”,存储空间初始值为5MB,最大空间为200MB,文件增量5MB。

请你写出实现上述要求的Transact-SQL语句为。

2.创建表

根据案例1描述的关系结构,建立表,并设置实体完整性、参照完整性。

请你写出Transact-SQL语句。

3.创建视图

(1)创建视图“存款”,包括信息:

储户基本信息.账号、储户基本信息.姓名、储户动态信息.存款额

以便于储户简单查询。

(2)创建视图“储户”,信息来自“储户基本信息”和“储户动态信息”。

前台应用程序,输入开户信息时,应该包括这两个表的内容,建立视图后,应用程序可以只调用这个视图,从而简化了前台应用程序对数据库的调用。

4.创建索引

在表“存取款”上按“存取日期”的索引。

以利于按时间段的业务查询。

Transact-SQL语句为:

任务4:

活期储蓄管理系统数据库上的一般操作

1.录入数据

利用企业管理器,将案例2中的示例数据输入到相应的表中。

2.数据查询

在案例2中,给出了活期储蓄管理系统数据库表上用SQL语句进行查询的命令。

这里给出在SQLServer2000查询分析器中使用Transact-SQL语句完成相应查询的命令。

(1)查询账号10245082的姓名和存款额。

查询语句和查询结果如图4-1所示。

图4-1查询

(1)的语句和结果

(2)查询账号10245082自2003.10-2004.10的存取款记录。

查询语句和查询结果如图4-2所示。

图4-2查询

(2)的语句和结果

(3)查询编号为1002的储蓄所2003.10-2004.10的存取款业务详细记录。

查询语句和查询结果如图4-3所示。

图4-3查询(3)的语句和结果

(4)查询编号为1002的储蓄所的存取款业务汇总情况。

存取款表的数据如图4-4所示。

查询语句及其结果如图4-5所示。

图4-4存取款表中的数据

图4-5查询(4)的语句和结果

任务5:

建立活期储蓄管理系统数据库的触发器和存储过程

利用企业管理器向“存取款”表中插入两条记录:

账号

2004.06.28

2004.7.16

检查“储户动态信息表”,会发现以上两个储户存取款后,储户的“存款额”值并未发生改变。

这显然是不符合实际情况的。

我们希望,每当“储户”在某一个“储蓄所”进行“存取款”时,应同时自动修改该储户的“存款额”。

这一功能可以通过在表“存取款”上建立“INSERT”触发器完成。

2.在“存取款”表上创建“INSERT”触发器

步骤:

(1)驱动企业管理器,打开【数据库】文件夹,打开【活期储蓄】数据库,选择表【存取款】并单击右键,在弹出的菜单中选择【所有任务】,然后选择【管理触发器】命令,出现如图5-1所示的界面。

图5-1在表存取款上选择建立触发器

(2)在编辑窗口中,输入以下Transact-SQL命令:

CREATETRIGGER[ins-存取款]ON[dbo].[存取款]

FORINSERT

AS

DECLARE@ckemoney,--存款额

@jemoney,--存取金额

@bzint,--存取标志

@xyint,--信誉

@zhchar(15),--账号

@ztint--储户状态

SELECT@zh=i.账号,@je=i.[金额(元)],@bz=i.标志FROMinsertedi

SELECT@cke=a.[存款额(元)],@xy=a.信誉,@zt=a.状态from储户动态信息a

IF(@zt=1)

PRINT'

此账号为挂失状态!

'

ELSE

BEGIN

IF(@bz=1)

SET@cke=@cke+@je

ELSE

SET@cke=@cke-@je

IF(@xy=0and@cke<

0)

BEGIN

对不起,您不能透支!

ROLLBACK

END

IF(@xy=1and@cke<

-5000)

您的透支金额超过5000元'

END

UPDATE储户动态信息表

SET[存款额(元)]=@cke

WHERE账号=@zh

(3)

【检查语法】无误后,单击【确定】按钮,便在表“存取款”上建立了名为ins-存取款触发器。

如图5-2所示。

图5-2建立触发器操作界面

将“存取款”表中插入的两条记录删除,重新插入,会发现“储户动态信息表”中,储户的“存款额”值以正确改变。

3.编写验证储户“密码”的存储过程

问题要求:

将储户输入的“密码”与“用户动态信息”表中保存的“密码”值进行比较,回答正确返回“1”,不正确返回“0”。

存储过程设计

入口参数:

@zh-储户账号,@ma-储户输入的密码。

出口参数:

@tag-值为1,表示密码正确;

值为0,表示密码错误。

Transact-SQL程序

CREATEPROCEDURE[dbo].[test]

@zhchar(15),--储户账号

@machar(6),--储户密码

@tagintoutput--值为1,表示输入正确;

值为0,表示账号或密码错误

AS

IFEXISTS(

SELECT*

FROM储户动态信息

WHERE(ltrim(rtrim(@zh))=ltrim(rtrim(账号))

andltrim(rtrim(@ma))=ltrim(rtrim(密码))))

可以继续操作!

SET@tag=1

ELSE

账号或密码错误,不能继续操作!

SET@tag=0

建立存储过程,命名为:

test。

打开【活期储蓄】数据库,右击【存储过程】,在弹出的菜单中选择【新建存储过程】,输入以上程序,进行【检查语法】,无误后【确定】即可。

也可以在查询分析器中输入以上程序,检查语法,无误后执行,与上述过程等效。

执行存储过程

可以在查询分析器中执行建立的存储过程:

命令:

EXECtest'

10245082'

'

DFGASD'

0

结果:

10245082

任务6:

活期储蓄管理系统数据库的完整性控制

1.实体完整性

实体完整性一般在创建表时,通过定义主码完成。

若有遗漏应及时修改,使各关系满足实体完整性。

2.参照完整性

(1)表“储户基本信息”和“储户动态信息”互为参照关系,由于两个表本来就是一个表,因而可以任意指定其中一个表为被参照关系。

考虑到“储户基本信息”表比较稳定,所以将此表作为被参照关系,“储户动态信息”表为参照关系。

“储户动态信息.账号”既是外码又是内码。

考虑到实际情况,在“储户基本信息”表上定义“Update”、“Delete”触发器(一般情况下,不允许进行修改和删除操作)。

Transact-SQL程序如下:

CREATETRIGGER[dele]ON[dbo].[储户基本信息]

FORDELETE,UPDATE

DECLARE@zhchar(15)

SELECT@zh=d.账号FROMdeletedd

IFexists(SELECT*FROM储户动态信息

WHERE账号=@zh)

--'

储户动态信息表中包含储户@zh'

的信息,不能进行删除操作!

END

(2)“储户动态信息”还是“存取款”表的被参照关系。

每当表“储户动态信息”上有插入(新开户)操作时,“存取款”表上有一条存款操作。

因此,要修改“储户动态信息”表上的“Insert”触发器,加上下面代码:

CREATETRIGGER[ins-开户]ON[dbo].[储户动态信息]

FORINSERT,UPDATE

DECLARE@zhchar(15),

@ckemoney,

@bhchar(15),

@khrqdatetime

SELECT@zh=i.账号FROMinsertedi

SELECT@zh=a.账号,@cke=i.[存款额(元)],@khrq=a.开户日期

FROMinsertedi,储户基本信息a

WHEREa.账号=i.账号

INSERTINTO存取款

VALUES(@zh,@bh,1,@cke,@khrq)

(3)用关系图建立参照完整性。

存取款表的被参照关系有两个:

储蓄所表、储户基本信息表。

储户基本信息表和储户动态信息表互为参照表。

用SQLServer2000提供的关系图建立参照完整性的步骤如下:

1)打开【活期储蓄】数据库,右击【关系图】,在弹出的菜单中选择【新建数据库关系图】。

2)在出现的向导界面中单击【下一步】,则出现如图6-1所示的对话框。

3)

【从可用表】中,将所需的表添加到【要添加到关系图中的表】中,单击【下一步】按钮,在向导对话中单击【完成】按钮,则选择的表出现在关系图中,如图6-2所示。

图6-1选择关系图中所需的表对话框

图6-2选中的表在关系图中

图图6-3建立约束

4)拖动储户基本信息表的“账号”到储户动态信息表的“账号”,在弹出的创建关系对话框中确定参照关系,单击【确定】按钮,完成(如图6-3所示)。

用相同的方法建立其他外码约束关系。

右击任一关系,在弹出的菜单中选择显示关系标签,这形成如图6-4所示的关系图。

关闭窗口,给关系图命名,完成。

图6-4活期储蓄的关系图

3.用户定义的完整性

(1)定义约束,使储户动态信息表中的属性“状态”、“信誉”和存取款表的属性“标志”的域为{0,1}

Tansact-SQL命令如下:

ALTERTABLE储户动态信息

ADDCHECK(状态=0or状态=1)

ADDCHECK(信

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 幼儿教育 > 少儿英语

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1