当前位置: 首页 > >

数据库与事务日志

第5章 数据库与事务日志

1

授课班级 授课时间 授课地点

计英1001 10月25日星期二 知711

计英1001 10月25日星期二 知815

第 22 次 课

课程内容:数据库与事务日志 教学目的: 1.熟悉数据库的文件组成;
2.掌握创建数据库和事物日志的方法;
3.掌握删除数据库的方法; 4.掌握数据库更名、修改大小的方法;

能力目标:能够使用T-SQL语句根据需要创建、删除数据库和事务日志;会使用系
统存储过程显示数据库的信息;会对数据库进行配置和管理。




点:根据需要使用T-SQL语句创建、修改和删除数据库;
点:创建、删除数据库的方法

教学方法:讲授法、演示法 课堂类型:理论课 教 具:多媒体设备、SQL Server 2005

复*提问: ? 1、在Xk数据库中显示班级编码、班级名称和 系部名称(当系部编码为时,显示系部名称为 “计算机系”;当系部编码为时,显示系部名 称为“建筑系”;当系部编码为时,显示系部 名称为“旅游系”,否则为‘其它系’),要 求使用CASE语句。 ? 2、显示Course表中有多少类课程,要求将该 值保存在一个变量中,并要求显示:Course 表中有XX类课程。

导入新课:
数据库是用来存放相互关联数据的仓库。以前我们

已经掌握了如何在SQL Server 2005中附加或删除一个
数据库,本次课我们要学*的是利用T-SQL语句来实现: 数据库的创建、删除、管理,以及数据库文件的相关知 识。

5.1 数据库的组成
? ? ? ?

?
? ?

?
? ? ?

关系图 表 视图 存储过程 用户 角色 规则 默认 用户定义的数据类型 用户定义的函数 全文目录

5.2 系统数据库与示例数据库
?

系统数据库
master数据库:记录系统的所有系统级的信息 ? model数据库:模板数据库 ? msdb数据库:记录了有关SQL Server Agent服 务的信息 ? tempdb数据库:临时数据库,用于保存中间数 据
?

?

示例数据库
AdventureWorks数据库 ? AdventureWorksDW数据库
?

5.3 数据库的存储结构
数据库的文件
根据文件作用不同,可以将他们划分为以下3种: 1.主数据库文件(Primary Database File)

包含数据库的启动信息、数据信息——唯一的
一个数据库可以有一个或多个数据库文件,一个数据库文件只能 属于一个数据库。当有多个数据库文件时,有一个文件被定义为主 数据库文件(简称为主文件),其扩展名为mdf。 作用:用于存储数据库的启动信息以及部分或者全部数据,是所有数 据库文件的起点,包含指向其它数据库文件的指针。一个数据库只 能有一个主数据库文件。

5.3 数据库的存储结构
2.事务日志文件

包含恢复数据库的所有日志信息——至少有一个
作用:用于存储数据库的更新情况等事务日志信息 ,当数据库损坏时,管理 员使用事务日志恢复数据库。每一个数据库至少必须拥有一个事务日志文 件,而且允许拥有多个日志文件。事务日志文件的扩展名为ldf,日志文件 的大小至少是512KB。 SQL Server事务日志采用提前写入的方式 。即对数据库的修改先写入事

务日志中,然后再写入数据库。
3.辅助数据库文件(Secondary Database File)

主文件中不包括的所有数据信息——0个、一个或多个
作用:用于存储主数据库文件中未存储的剩余数据和数据库对象,一个数据 库可以没有辅助数据库文件,但也可以同时拥有多个辅助数据库文件。 辅助数据库文件的扩展名为ndf(简称为辅助文件)。

5.3 数据库的存储结构
SQL Server 2005的文件拥有两个名称,即逻辑文件名 和物理文件名。当使用Transact-SQL命令语句访问某一个 文件时,必须使用该文件的逻辑名 。 物理文件名是文件实际存储在磁盘上的文件名,而且 可包含完整的磁盘目录路径。

例如:对于Master系统数据库, Master为其逻辑名,
其对应的物理名称为Master.mdf, 其日志文件名为Master.ldf

5.4 创建数据库
创建数据库需要一定许可,在默认情况下,只有系统管理

员和数据库拥有者可以创建数据库。数据库被创建后,创建数
据库的用户自动成为该数据库的所有者。 创建数据库的过程实际上就是为数据库设计名称、设计所

占用的存储空间和存放文件位置的过程等。
注:创建数据库之前,首先需通过分析确定数据库的名字、所有 者、大小、数据文件、日志文件存放位置、表和索引是否需要

单独放在某个磁盘上等 。

5.4 创建数据库
创建数据库的方法: 1.使用Management Studio创建数据库 2.使用Transact-SQL语言创建数据库

5.4 创建数据库
1、使用Management Studio创建数据库 【例5-1】 创建一个名字为Pk的数据库,将物理文件保存在 D:\下,主数据文件名为Pk.mdf,事务日志文件名为 Pk_log.LDF。

5.4 创建数据库
2、使用Transact-SQL语言创建数据库 T-SQL创建数据库的语法:
CREATE DATABASE 数据库名 ON [PRIMARY]

(
<数据文件参数> [,…n] [<文件组参数>] ) LOG ON ( <日志文件参数> [,…n] )

数据文件的具 体描述

日志文件的具 体描述 (参看P136)

【例5-2】
创建一个Student1数据库,该数据库的主数据文件逻辑 名称为Student1_data,物理文件名为Student1.mdf,初始大 小为10MB,最大尺寸为无限大,增长速度为10%;数据库 的日志文件逻辑名称为Student1_log,物理文件名为 Student1.ldf,初始大小为1MB,最大尺寸为5MB,增长速 度为1MB。

【程序清单】
create database student1 on primary ( name=student1_data, filename=‘e:\data\student1.mdf', size=10, maxsize=unlimited, filegrowth=10%) log on ( name=student1_log, filename=‘e:\data\student1.ldf', size=1, maxsize=5, filegrowth=1)

【例5-3】创建一个指定多个数据文件和日志文件的数据库。

该数据库名称为students,有1个10MB和1个20MB的数
据文件和2个10MB的事务日志文件。数据文件逻辑名称为 student1和student2,物理文件名为student1.mdf和 student2.mdf。主文件是student1,由primary指定,两个数据 文件的最大尺寸分别为无限大和100MB,增长速度分别为

10%和1MB。事务日志文件的逻辑名为studentlog1和
studentlog2,物理文件名为studentlog1.ldf和studentlog2.ldf, 最大尺寸均为50MB,文件增长速度为1MB。

【程序清单】
create database students
on primary (name=student1, filename=’e:\data\student1.mdf’, size=10, maxsize=unlimited, filegrowth=10%), (name=student2, filename=’e:\data\student2.ndf’, size=20,
(接左) log on (name=studentlog1, filename=’e:\data\studentlog1.ldf’, size=10, maxsize=50, filegrowth=1), (name=studentlog2, filename=’e:\data\studentlog2.ldf’, size=10, maxsize=50, filegrowth=1)

maxsize=100, filegrowth=1)
(转右)

5.5 显示数据库的信息

显示数据库的信息: 1. sp_helpdb Pk /*显示指定数据库信息*/

2.sp_helpdb /*显示指定数据库信息*/

5.6 删除数据库
删除数据库有2种方法: 1.利用Management Studio删除数据库

2.利用Drop语句删除数据库
Drop语句可以从SQL Server中一次删除一个或多个数据

库。其语法如下:
Drop database database_name[,…n] 例: drop database students

5.6 删除数据库
说明:
?

只有处于正常状态下的数据库,才能使用DROP语句
删除。

?

当数据库处于以下状态时不能被删除:
? ? ?

数据库正在使用; 数据库正在恢复; 数据库包含用于复制的已经出版的对象。

【例5-4】
USE master --设置当前数据库为master,以便访问sysdatabases表 GO IF EXISTS(SELECT * FROM sysdatabases WHERE name ='stuDB') DROP DATABASE stuDB CREATE DATABASE stuDB

ON (
….. ) EXISTS()语句:检测是 否存在stuDB数据库如果存 在stuDB数据库,则删除

LOG ON
( … ) GO

5.7 配置数据库
数据库创建之后,用户可以根据需要重新配置数据库的 选项。 配置方法:

1、利用Management Studio进行配置
2、利用系统存储过称sp_dboption进行配置

5.7 配置数据库
sp_dboption [ dbname, optname, {true┃false} ]

其中:
dbname为用户所需设置选项的数据库名称。如果执行带参数 的sp_dboption,则当前使用的库必须是master。不带参 数便显示数据库选项清单。但是,用户不能设置master库 的数据库选项。 optname为用户所要设置或关闭的选项名称。当其名称为关 键字或含嵌入空格或标点符号时,用引号括起来。 【P147】

选项

描述

当为 true 时,优化查询所需的任何缺少的统*谟呕 auto create statistics 过程中自动生成。有关更多信息,请参见 CREATE STATISTICS。 auto update statistics autoclose autoshrink ANSI null default 当为 true 时,优化查询所需的任何过期的统*谟呕 过程中自动生成。有关更多信息,请参见 UPDATE STATISTICS。 当为 true 时,数据库完全关闭,其资源在最后一个用户 注销后释放。 当为 true 时,数据库文件将成为自动周期性收缩的候选 文件。 当为 true 时,CREATE TABLE 遵循 SQL-92 规则以决 定列是否允许为空值。 当为 true 时,所有对空值的比较都取值 UNKNOWN。 当为 false 时,如果都为 NULL,则对空值的非 UNICODE 值比较取值 TRUE。

ANSI nulls

ANSI warnings

当为 true 时,如果出现诸如"被零除"情况,则发出错误或警告 消息。 当为 true 时,溢出或被零除错误将导致查询或批处理终止。如 果错误发生在事务内,则回滚事务。当为false 时,将显示警告 消息,但是继续执行查询、批处理或事务,就像没有出错一样。 当为 true 时,如果串联操作中任何一个操作数为 NULL,则结 果为 NULL。 当为 true 时,将关闭提交或回滚事务时所打开的任何游标。当 为 false 时,提交事务时这些游标仍处于打开状态。当 为 false 时,回滚事务时将关闭所有游标(除定义为 INSENSITIVE 或 STATIC 的游标)。 当为 true 时,只有数据库所有者可以使用数据库。

arithabort

concat null yields null

cursor close on commit

dbo use only

default to local cursor
merge publish numeric roundabort offline published

当为 true 时,游标声明默认为 LOCAL。
当为 true 时,可以为合并复制发布数据库。 当为 true 时,如果表达式中出现精度损失则生成错误。当 为 false 时,精度损失不生成错误信息,并且将结果四舍五入为 存储结果的列或变量的精度。 当为 true 时,数据库将处于脱机状态。 当为 true 时,可以发布数据库用于复制目的。

quoted identifier

当为 true 时,可以将分隔标识符包含在双引号中。 当为 true 时,用户仅能读取数据库中的数据而无法对其 进行修改。若要为 read only 选项指定新的 value,则数 据库不能处于使用状态。但 master 数据库例外,并且 当正在设置 read only 选项时,只有系统管理员可以使 用 master。 当为 true 时,启用触发器递归调用。当为 false 时,只 防止直接递归。若要禁用间接递归,请使用 sp_configure 将 nested triggers 服务器选项设置为 0。 当为 true 时,允许使用 SELECT INTO 语句和快速大容 量复制。 当为 true 时,每次只能有一个用户访问数据库。 当为 true 时,可以为发布目的而订阅。 当为 true 时,可以检测残缺页。 当为 true 时,如果数据库处于日志截断模式,则检查点 将截断日志中非活动的部分。只能为 master 数据库设 置此选项。

read only

recursive triggers

select into/bulkcopy single user subscribed torn page detection trunc. log on chkpt.

5.8 修改数据库
1、数据库更名 重命名数据库之前,应该确保没有用户使用该数据 库,而且数据库应该设置为“单用户”模式。

可以使用系统存储过程sp_renamedb更改数据库的名称。 例: sp_renamedb 'student ', 'students '

5.8 修改数据库
ALTER DATABASE语句允许创建、删除和修改数据库中的数 据文件、事务日志文件和文件组。只有数据库管理员或具有 CREATE DATABASE权限的数据库所有者才有权执行该语句。

2、扩充数据库或事务日志的容量

当数据库和事务日志容量不够时,数据库所有者需 要扩充容量。
(ALTER DATABASE语句的语法格式参考教材P141)

【例5-6】从students数据库中删除数据文件student3和文件组
data1。 Alter database students

remove file student3
Alter database students remove filegroup data1

5.8 修改数据库
3、缩小数据库和数据文件 当为数据库分配的磁盘空间过大时,可以缩小数据 库,以节省存储空间。
?

使用DBCC SHRINKFILE命令收缩数据库的指定数据文件或日志文

件大小。
?

例:使用DBCC SHRINKFILE将student数据库的日志文件 (student_log)缩小到1MB大小。

DBCC SHRINKFILE (student_log,1)

小 结
主要介绍了SQL Server 2005数据库和事务
日志的相关应用技术。通过本章学*应学会根 据实际应用设计数据库,并创建数据库的主数 据文件、次数据文件、事务日志的日志文件技 术。表的创建、表的管理。

作业
教材P154 ? 练*题1-5
?




友情链接: year2525网 工作范文网 QS-ISP 138资料网 528200 工作范文网 baothai 表格模版