数据库系统原理——实验四

实验项目名称:数据库的备份和恢复

一、实验目的

熟悉并掌握数据库备份和恢复的原理和操作。

二、实验要求

掌握存储设备的创建、使用。掌握数据库中数据的导入导出操作。掌握数据上的备

份和恢复操作。掌握数据库备份策略的制定原理和具体操作。

三、实验步骤

1、开始→程序→Microsoft SQL Server→SQL Server Management Stdio。

2、 在“连接到服务器”对话框中,选择“Windows 身份验证”,点击“连接”,

进入 SQL Server Management Stdio 操作界面。

3、 创建 students 数据库。利用如下 sql 语句在 students 数据库中创建表(具

体含义见课本 P37 页)。

CREATE TABLE Student (

Sno char ( 7 ) PRIMARY KEY,

Sname char ( 10 ) NOT NULL,

Ssex char (2),

Sage tinyint ,

Sdept char (20)

)

CREATE TABLE Course (

Cno char(10) NOT NULL,

Cname char(20) NOT NULL,

Ccredit tinyint ,

Semester tinyint,

PRIMARY KEY(Cno)

)CREATE TABLE SC

(

Sno char(7) NOT NULL,

Cno char(10) NOT NULL,

Grade tinyint,

XKLB char(4) ,

PRIMARY KEY ( Sno, Cno ) ,

FOREIGN KEY (Sno) REFERENCES Student (Sno),

FOREIGN KEY (Cno) REFERENCES Course (Cno)

)

4、 数据库的备份与恢复实验

分别采用SSMS 工具和T-SQL语句,利用第10章上机练习建立的“学生数据库”和第11章上机练习建立的表,完成下列各题。

1.利用SSMS工具按顺序完成下列操作:

( 1)创建永久备份设备: backup1, backup2。

(2)对“学生数据库”进行一次完整备份,并以追加的方式备份到 backup1设备上。

(3)执行下述语句删除“学生数据库”中到SC表:DROP TABLE SC

(4)利用backup1设备上对“学生数据库”进行的完整备份,恢复出“学生数据库”

(5)查看SC表是否被恢复出来了。

2.利用SSMS工具按顺序完成下列操作:

(1 )对“学生数据库”进行一次完整备份,并以覆盖的方式备份到 backup1设备上,覆盖掉backup1设备上已有的备份内容。

(2)执行下述语句在Course表中插入一行新记录:

Insert into course values('c201', '离散数学', 3,4)

(3)将“学生数据库”以覆盖的方式差异备份到backup2设备上。(4)执行下述语句删除新插入的记录:

DELETE FROM Course WHERE Cno = 'C201'

( 5 )利用backupl和 backup2备份设备对“学生数据库”的备份,恢复“学生数据库”。完全恢复完成后,在Course表中有新插入的记录吗?为什么?

3.利用SSMS工具按顺序完成下列操作:

(1)将“学生数据库”的恢复模式改为“完整”的。

(2)对“学生数据库”进行一次完整备份,并以覆盖的方式备份到 backup1设备上。

(3)执行下述语句向Course表中插入一行新记录:

Insert into course values('c202', '编译原理', 5,4)

(4)对“学生数据库”进行一次差异备份,并以追加的方式备份到backup1设备上。

(5)执行下述语句删除新插入的记录:

DELETE FROM Course WHERE Cno = 'C202'

(6)对“学生数据库”进行一次日志备份,并以覆盖的方式备份到backup2设备上。

(7)利用backupl和 backup2备份设备恢复“学生数据库”,恢复完成后,在Course表中有新插入的记录吗?为什么?

4.利用备份和恢复数据库的T-SQL语句按顺序完成下列操作:

( 1)新建备份设备back1和 back2,它们均存放在D:\BACKUP文件夹下(假设此文件夹已存在) 对应的物理文件名分别为back1.bak和 back2.bak。

use shiyan4

go

exec sp_addumpdevice 'disk','back1','D:\BACKUP';

exec sp_addumpdevice 'disk','back2','D:\BACKUP';

 

(2)对“学生数据库”进行一次完整备份,以覆盖的方式备份到 back1 上。

( 3)删除SC表。

Drop table sc

( 4)对“学生数据库”进行一次差异备份,以追加的方式备份到 back1 上。

(5)删除“学生数据库”。

(6)利用back1备份设备恢复“学生数据库”的完整备份,并在恢复完成之后使数据库成为可用状态。

(7)在SSMS 工具的对象资源管理器中查看是否有“学生数据库”?为什么?如果有,展开此数据库中的“表”节点,查看是否有SC表?为什么?

有Students数据库,因为进行的是完整备份。展开数据库节点的时候没有Sc表。因为差异备份没有进行恢复。

(8)再次利用backl备份设备恢复“学生数据库”,首先恢复完整备份并使恢复后的数据库成为正在恢复状态,然后再恢复差异备份并使恢复后的数据库成为可用状态。

( 9 )在SSMS 工具的对象资源管理器中展开“学生数据库”和其下的“表”节点,这次是否有SC表?为什么?

存在,因为回复了完整的备份。

(10)对“学生数据库”进行一次完整备份,直接备份到D:\BACKUP文件夹下,备份文件名为:students.bak。

( 11 )对“学生数据库”进行一次事务日志备份,以追加的方式备份到back2设备上。

要求:仔细阅读操作要求, 按要求用 SSMS 工具或 T-SQL 语句实现,请记录结果

并分析原因。

  • 15
    点赞
  • 63
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
酒店管理系统是一个常见的数据库课程设计项目,它涉及到数据库设计、数据模型、触发器、前后端连接等多个方面。以下是一个简单的介绍: 1. 数据库设计:酒店管理系统的数据库设计是整个项目的基础。它包括定义表、字段、主键、外键等。可以使用E-R图来表示实体和关系,以及流程图和模块图来表示系统的功能和模块。 2. 触发器:触发器是数据库中的一种特殊对象,它可以在特定的数据库操作(如插入、更新、删除)发生时自动执行一些操作。在酒店管理系统中,可以使用触发器来实现一些业务逻辑,例如在预订房间时自动更新房间的状态。 3. Python编程:在酒店管理系统中,可以使用Python编程语言来实现一些功能,例如与数据库的交互、数据处理、界面设计等。同时,还可以使用一些第三方库来简化开发过程,例如Django、Flask等。 4. 前后端连接:酒店管理系统通常包括一个前端界面和一个后端数据库。前端界面用于用户交互和数据展示,后端数据库用于存储和管理数据。可以使用Python的Web框架(如Django)来实现前后端的连接,通过HTTP请求和数据库交互来实现数据的增删改查。 总结起来,酒店管理系统是一个综合性的数据库课程设计项目,涉及到数据库设计、触发器、Python编程和前后端连接等多个方面。通过这个项目,你可以学到数据库设计的基本原理和方法,以及如何使用Python来实现一个完整的应用系统。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值