数据库的创建与管理
第2章 数据库的创建与管理
【学习目标】
本章将要学习SQL Server 2005数据库的物理文件、逻辑文件、事务日志、文件组、数据库的物理空间和数据库状态等基本概念。学会使用SSMS 和 T-SQL 语句创建与管理数据库。本章的学习要点包括如下几点:
(1)SQL Server2005简介
(2)创建数据库
(3)管理数据库
【学习导航】
数据库是表、视图、索引、存储过程、触发器等数据库对象的集合,是数据库管理系统的核心内容。应用SQL Server 2005进行数据管理之前,首先要创建数据库。 本章的主要内容及其在SQL Server2005数据库管理系统中的位置如图2-1所示。
SQL Server 数据库简介
SQL Server 2005是关系数据库,它是按照二维表结构方式组织的数据集合,每个SQL Server 都包含了两种类型的数据库,系统数据库和用户数据库。系统数据库存储的是有关SQL Server系统本身的相关信息,SQL Server 通过系统数据库来操作和管理系统。用户数据库由用户来建立和管理,SQL Server中可以包含一个或多个用户数据库。不能在master 数据库中创建任何用户对象(例如表、视图、存储过程或触发器)。master 数据库包含SQL Server 实例使用的系统级信息(例如登录选项和配置选项设置)。
2.1.1 课堂案例1—数据库文件的分类
【案例学习目标】 掌握Books 数据库中数据库文件的类型。
【案例知识要点】 数据文件、文件组、事务日志文件。
【案例完成步骤】
(1)启动“SQL Server Management Studio”。
(2)在“对象资源管理器”中展开【数据库】结点,查看到其中有一个名为Books 的数据库,如图2-2所示。
图2-2 Books 数据库
(3)找到SQL Server的安装路径(如:C:\Program Files\Microsoft SQL Server),依次打开“MSSQL.3”、“MSSQL ”、“Data ”文件夹,其中的“books.mdf ”和“books_log.ldf”即为Books 数据库对应的数据文件和日志文件,如图2-3所示。
图2-3 Books 数据库的数据文件和日志文件
在Microsoft SQL Server 2005系统中,一个数据库至少有一个数据文件和一个事务日志文件。当然,一个数据库也可以有多个数据文件和多个事务日志文件。
数据文件
数据文件用于存放数据库的数据和各种对象,如表、存储过程和视图等对象,一个数据库可以有一个或多个数据文件,一个数据文件只属于一个数据库,当一个数据库中有多个数据文件时,
有一个文件被定义为主数据文件,其扩展名是.mdf ,用来存放数据库的启动信息和部分或全部数据,一个数据库只能有一个主数据文件,其他数据文件被称为次数据文件,其扩展名为.ndf ,用来存放主数据文件没有存储的其他数据。
采用多个数据文件来存储数据时,数据文件可以不断扩充,而不受操作系统文件大小的限制。还可以将数据文件存储在不同的硬盘中,这样可以同时对几个硬盘进行数据存取,提高了数据处理的效率。
● 文件组
文件组就是文件的逻辑集合,文件组可以把一些指定的文件组合在一起以方便管理和分配数据。例如,在某个数据库中,三个文件(data1.ndf ,data2.ndf ,data3.ndf )分别创建在三个不同的磁盘驱动器中,并且为它们指定了一个文件组fgroup1,以后所创建的表可以明确指定存放在文件组fgroup1中,对该表中数据的查询将在这三个磁盘上同时进行。因此,可以通过执行并行访问而提高查询性能,在创建表时,不能指定将表创建在那个文件中,只能指定将表放在那个文件组中。因此,如果希望将某个表放在特定的文件中,必须通过创建文件组来实现。使用文件和文件组时,应考虑以下因素:①一个文件或文件组只能用于一个数据库,不能用于多个数据库;②一个文件只能是某一个文件组的成员,不能是多个文件组的成员。
SQL Server 2005提供了三种文件组类型,它们分别是主文件组(PRIMARY ),用户自定义文件组(USER-DEFINED )和默认文件组(DEFAULT )。
主文件组:每个数据库都有一个主文件组,主文件组内包含主要数据文件和一些没有放入其他文件组的次要数据文件。数据库的系统表都包含在主文件组中。
用户自定义文件组:由用户创建的文件组,用户在创建和修改数据库时可以用指定数据文件的文件组。
默认文件组:容纳所有在创建时没有指定文件组的表、索引以及text 、ntext 、image 数据类型的数据。任何时候,只能有一个文件组被指定为默认文件组。默认情况下,主文件组被当作默认文件组。
● 事务日志文件
SQL Server 2005 使用数据库的事务日志来实现事务的功能,一般地,事务日志文件是用来记录数据库更新情况的文件,其扩展名为.ldf ,每一个数据库都至少有一个日志文件,数据库的数据信息和日志信息不能存放在同一个文件或文件组中,数据文件和日志文件是分开的,日志文件永远也不能是任何文件组的一部分。
● SQL Server 2005 文件有两个名称,逻辑文件名和操作系统文件名。逻辑文件名
是在所有T-SQL 语句中引用物理文件时所使用的名称,逻辑文件名必须符合SQL Server
标识符的命名规则,而且在数据库中逻辑文件名必须是唯一的。操作系统文件名是包括目
录路径的物理文件名,它必须符合操作系统文件命名规则。
● SQL Server 2005 不强制使用.mdf 、.ndf 、.ldf 文件扩展名,但使用它们有助于标
识文件的各种类型和用途。在SQL Server 2005中,数据库所有文件的位置都记录在数据
库的主文件和master 数据库中。大多数情况下,数据库引擎使用master 数据库中的文
件位置信息。
● 要查看某数据库的文件位置,可以在“对象资源管理器”中展开“数据库”
结点,右击该数据库名称,在快捷菜单中选择【属性】,打开【数据库属性】对话框,
在选择页区选择“文件”项,在“数据库文件”区即可查看所有数据库文件的信息。
2.1.2 系统数据库
SQL Server 2005 支持系统数据库、示例数据库和用户数据库。系统数据库和示例数据库是在安装SQL Server 2005 后自动创建的,用户数据库是由系统管理员或授权的用户创建的。SQL Server 2005 的系统数据库包括以下5个。
(1)master 数据库
master 数据库记录了SQL Server 系统级的信息,包括登录账号信息、所有的系统配置信息、其他数据库的存储信息和SQL Server 的初始化信息。一旦master 数据库被破坏,将无法启动SQL Server 系统。在SQL Server 2005中,系统对象不再存储在master 数据库中,而是存储在Resource 数据库中。注意,不能在master 数据库中进行添加文件或文件组、更改排序规则、删除主文件组、主数据文件或日志文件等相关操作。
(2)model 数据库
model 数据库是所有数据库的模板,当创建一个新数据库时,新数据库的最初部分是复制model 数据库的内容,然后剩下的部分以空页面填充。因此,如果更改了model 数据库,所有创建的数据库也会随之更改。如果用户想使每个新创建的数据库一开始就具有某些对象,可以将这些对象放到model 数据库中,这样新建的数据库都将继承这些内容。注意:不能在model 数据库中进行添加文件或文件组、更改排序规则、删除数据库所有者、删除数据库、删除主文件组、主数据文件或日志文件等操作。
(3)msdb 数据库
msdb 数据库是SQL Server Agent用来存储警告、任务和报表操作的数据库。不能在此数据库中进行更改排序规则、删除主文件组、主数据文件或日志文件等相关操作。
(4)tempdb 数据库
tempdb 系统数据库是连接到SQL Server 实例的所有用户都可用的全局资源,它保存在所有临时表和临时存储过程。另外,它还用来满足所有其他临时存储要求,例如存储SQL Server 生成的工作表。每次启动SQL Server 时,都是重新创建tempdb 数据库,以便系统启动时,该数据库总是空的。在断开连接时会自动删除临时表和存储过程,并且在系统关闭后没有活动连接。因此,tempdb 数据库中不会有什么内容从一个SQL Server 会话保存到另一个会话。
tempdb 数据库用于保存以下内容:
●
●
●
● 显示创建的临时对象,例如表、存储过程、表变量或游标。 当启用了快照隔离时所有版本的更新记录。 SQL Server Database Engine创建的内部工作表。 创建或重新生成索引时产生的临时排序结果。
(5)resource 数据库
resource 数据库是一个只读数据库,包含和装载了SQL Server 2005的所有系统对象,SQL Server 系统对象(例如sys.objects )在物理上存在于resource 数据库中,但在逻辑上,它们出现在每个数据库的sys 架构中,每一个数据库实例都单独有一个resource 数据库。
对系统数据库中的数据可以进行修改和查看操作。
● SQL Server 不支持用户直接更新系统对象中的信息。但Microsoft 提供了一整套
管理工具,使用户可以充分管理他们的系统和数据库中的所有用户和对象。其中包括以下几种:管理实用工具,如SQL Server Management Studio;SQL-SMO API,此工具使程序员获得在其应用程序中管理SQL Server 的全部功能;Transact-SQL 脚本和存储过程,它们可使用系统存储过程和Transact-SQL DDL语句。
● 不要编码直接查询系统表的Transact-SQL 语句,应用程序应该通过使用以下
方法获得目录和系统信息:系统目录图;SQL-SMO ;Windows Management
Instrumentation(WMI)接口;应用程序中使用的数据API (如ADO 、OLE DB、ODBC )
的目录函数、方法、特性或属性;Transact-SQL 系统存储过程和内置函数。
● Microsoft SQL Server 2005 引入了AdventureWorks 示例OL TP 数据库、
AdventureWorksDW 示例数据仓库、AdventureWorksAS 示例分析服务数据库,这些数据库
用在SQL Server 2005联机丛书的代码示例以及随产品一起安装的配套应用程序和代码示
例中。默认情况下,Microsoft SQL Server 2005中不安装Northwind 和pubs 示例数据库。
这些数据库可以从Microsoft 下载中心下载。
课堂实践1
【任务1】
启动“SQL Server Management Studio”,查看有哪几个系统数据库。
【任务2】
启动“SQL Server Management Studio ”,查看master 数据库的数据文件和日志文件位置并在操作系统文件夹中查看对应的操作系统文件名。
课堂案例2—使用SSMS 管理数据库
在SQL Server 2005中,为了保存图书管理系统的读者和图书等信息,需要创建用户数据库Books 来对系统数据进行管理,在数据库创建后,需要对数据库进行信息的修改、查看和删除操作。创建数据库一般有两种方式,一种是利用SQL Server Management Studio 管理平台直接创建(简写为SSMS ),另一种是使用Transact-SQL (简写为T-SQL )语句。
【案例学习目标】 学会用Microsoft SQL Server管理平台管理Books 数据库。
【案例知识要点】 数据库的创建、修改、查看和删除操作。
【案例完成步骤】
(1)启动“SQL Server Management Studio ”,在“对象资源管理器”中右键单击【数据库】节点,选择【新建数据库】命令,如图2-4所示。
图2-4 新建数据库
(2)打开【新建数据库】对话框,在窗口中依次完成如下操作:在【数据库名称】文本框中输入要创建的数据库名称。此处输入Books ,在【所有者】文本框中输入数据库的拥有者,此处可选用默认值,在【数据库文件】的文本框内【逻辑名称】列中分别输入数据文件和日志文件的逻辑文件名,也可使用默认文件名,在【初始大小】列中分别输入数据文件和日志文件的初始值大小,系统默认均为1MB ,在【自动增长】列中分别设置数据文件和日志文件的自动增长情况,当数据文件和日志文件满时,它们会根据设定的增长情况自动增长文件的容量。自动增长率可以设置按百分比或按MB 进行计算,单击【路径】列的按钮可设置文件的保存位置,如果不需要改变以上的设置,可以使用默认值。如图2-5所示。
图2-5 “新建数据库”对话框
(3)在【新建数据库】窗口中,单击【选择页】窗格中的【选项】选项,如图2-6所示,可以设置数据库的配置参数。
图2-6 设置数据库配置参数
(4)根据系统的要求,如果要添加新的文件组,单击【选择页】窗格中的【文件组】选项,打开如图2-7所示的窗口,在其中单击【添加】按钮,就可以增加一个文件组,在【名称】列输入文件组的名称即可。
图2-7 添加或删除文件组
(5)回到【常规】页面,用户可以增加新的数据文件或日志文件,方法是单击【添加】按钮,在对应的【逻辑名称】列输入新增文件的逻辑文件名,在【文件类型】列设置新增文件类型,并依次设置新增文件的大小、自动增长、存储位置等基本信息即可。
(6)设置完相关属性后,单击【确定】按钮,系统开始创建数据库,创建完成后,在“对象资源管理器”的【数据库】目录下就会显示新创建的数据库。
● 一个数据库最多可以创建32767个文件组,文件组不能独立于数据库文件而
创建,文件组是管理数据库中一组文件的机制,文件组中只能包含数据文件,不能包含日志文件。
● 创建数据库后,构成该数据库的所有文件都将用零填充,以重写磁盘上以前
的删除文件所遗留的现有数据。
● 在创建数据库时最好指定文件的最大允许增长的大小,这样做可以防止文件
在添加数据时无限制增大,以至用尽整个磁盘空间。
● 创建数据库后,最好创建一个master 数据库备份。
(7)右键单击【books 】数据库节点,选择【属性】,如图2-8所示。
图2-8 选择数据库属性
(8)打开【数据库属性】对话框,进行数据库的属性查看和修改。如图2-9所示。
图2-9“数据库属性”对话框
可以看到,修改或查看数据库属性时,属性选项比创建数据库时多了两个,即“文件”和“权限”。
在【常规】页面中,可以查看数据库的状态、所有者、创建日期、大小、可用空间、用户数和备份等基本信息。
在【文件】页面中,可以修改数据文件和日志文件的基本信息,如逻辑文件名、初始大小和自动增长情况等,也可以增加数据文件和日志文件。
在【文件组】页面中,可以添加和删除文件组。
在【选项】面面中,可以为数据库设置若干个决定数据库特点的数据库级选项。
在【权限】页面中,可以设置用户对该数据库的使用权限,有关权限的设置将在后续的章节中详细介绍。
(9)关闭【数据库属性】对话框,右键单击【books 】数据库节点,依次选择【编写数据库脚本为】、【CREATE 到】。
(10)选择数据库脚本文件生成的目的地,这里选择【文件】。如图2-10所示。
图2-10创建脚本到文件
图2-11“选择文件”对话框
(11)打开【选择文件】对话框,在【文件名】文本框中输入数据库脚本的文件名。(这里为Book.sql ),如图2-11所示。
(12)生成脚本文件后,可以通过“记事本”或“SQL Server Management Studio”查看生成的数据库脚本文件Book.sql ,如图2-12所示。
图2-12生成的数据库脚本文件Book.sql 内容
(13)在【对象资源管理器】窗格中,右键单击【books 】数据库节点,在快捷菜单中选择
【删除】命令,如图2-13所示。
图2-13 在“对象资源管理器”中删除数据库
(14)打开【删除对象】对话框,确认是否为目标数据库,并通过选中复选框决定是否要删除备份以及关闭已存在的数据库连接。最后单击【确定】按钮完成数据库删除操作。
删除数据库要慎重,因为系统无法轻易恢复被删除的数据库,除非做过数据库备份。使用这种方法每次只能删除一个数据库。
● 在数据库删除之后备份master 数据库。因为删除数据库将更新master 中的
系统表。如果master 需要还原,则从上次备份master 之后删除的所有数据库都将仍
然在系统表中有引用,因而可能导致出现错误信息。
● 生成的脚本文件中包含了许多设置信息。其他对象生成脚本的方法类似。
课堂实践2
【任务1】
创建数据库Books ,并要求进行如下设置:
① 数据库文件和日志文件的逻辑名称分别为Books 和Books_log
② 物理文件放在D:\data文件夹中
③ 数据文件的增长方式为“按MB ”自动增长,初始大小为6MB ,文件增长量为2MB ④ 日志文件的增长方式为“按百分比”自动增长,初始大小为2MB ,文件增长量为10%
【任务2】
对Books 数据库进行以下修改:
⑤ 添加一个日志文件Books_log1
⑥ 将主数据文件的增长上限修改为500MB
【任务3】
在操作系统文件夹中查看Books 数据库对应的操作系统文件。
【任务4】
生成Books 数据库脚本文件,保存在D:\data文件夹中。
使用T-SQL 创建与管理数据库
现在主流的数据库管理系统都提供了图形用户界面管理数据库的方式。同时也可以使用SQL 语句来进行数据库的管理。图形用户界面因数据库产品和版本的不同而各不相同,如Access 不同于SQL Server和Oracle ,SQL Server 2005也不同于SQL Server 2000。而SQL 作为一种标准的结构化查询语言,是一种通用语言,虽然也会因其种类而大同小异,但基本语法是一致的,这也是要求数据库用户比较熟悉地掌握SQL 基本语句的原因。在SQL Server 中,我们介绍的是Transact-SQL ,简称T-SQL 。
2.3.1 课堂案例3—创建数据库
CREATE DATABASE语句是Transact-SQL 创建数据库的语句,CREATE DATABASE语句在执行过程中自动创建数据文件和日志文件。 CREATE DATABASE语句的语法格式如下:
CREATE DATABASE database_name
[ON
[PRIMARY][[,...n]
[,[,...n]]
[LOG ON{[,...n]}]]]
::=
{
(
NAME=logical_file_name,
FILENAME='os_file_name'
[,SIZE=size[KB|MB|GB|TB]]
[,MAXSIZE={max_size[KB|MB|GB|TB]| UNLIMITED}]
[,FILEGROWTH=growth_increment[KB|MB|GB|TB| %]]
)[,...n]
}
::=
{
FILEGROUP filegroup_name [DEFAULT]
[,...n]
}
参数的具体含义请参阅“SQL Server联机丛书”。
【案例学习目标】 学习用Transact-SQL 语句创建Books 数据库的方法。
【案例知识要点】 CREATE DATABASE语句的使用,查询的创建、执行与保存。
【案例完成步骤】
(1)启动SQL Server Management Studio,单击工具栏上的【新建查询】按钮,建立一个新的查询,如图2-14所示。
图2-14新建查询
图2-15新建查询脚本
(2)在查询窗口中输入T-SQL 语句,如图2-15所示。
【脚本说明】
● 第3行~第7行:创建一个主数据文件,指定数据文件的逻辑名称为“books_dat”,物理文件名称为“books_dat.mdf”,存储在此d 盘data 文件夹下,初始大小为10MB ,SIZE 没有指定MB 或KB ,所以默认为MB ,以兆字节为单位进行分配。最大尺寸为10MB ,文件按百分比方式每次增长10%。
● 第9行:定义文件组BG 。
● 第10行~第20行:创建二个次要数据文件,放在名称为BG 的文件组中。各行意义同上。
● 第23行~第27行:创建一个日志文件,其中指定文件最大尺寸为无限大。
(3)在工具栏上单击【执行】按钮,执行查询窗口中的SQL 语句。执行后服务器返回“命令成功完成”的信息。
执行这个语句,将在d 盘data 文件夹下(该文件夹应事先建立)创建主数据文件Books_dat和二个次要数据文件Books1_dat、Books2_dat及日志文件Books_log。如图2-16所示。
图2-16创建的数据文件和日志文件
(4)在工具栏上单击【保存】按钮,可以将查询窗口中的T-SQL 脚本以文件(.sql )形式保存。
● 如果在查询语句编辑区选定了语句,则对指定的语句执行检查和执行操作,
否则执行所有语句。
● PRIMARY :用来定义主文件,在主文件组的项中指定的第一个文
件将成为主文件,一个数据库只能有一个主文件。如果没有指定PRIMARY ,那么
CREATE DATABASE语句中列出的第一个文件将成为主文件。
● LOG ON:指定显示定义用来存储数据库日志的磁盘文件(日志文件)。LOG
ON 后跟以逗号分隔的用以定义日志文件的项列表。如果没有指定LOG
ON ,将自动创建一个日志文件,其大小为该数据库的所有数据文件大小总和的25%
或512KB ,取两者之中的较大者。
2.3.2 修改数据库
数据库创建好后,有时需要对它的某些属性进行修改,如给数据库增加次要文件、重新对数据库命名等。这时就可以用SQL Server Management Studio或Transact-SQL 语句来修改数据库配置。使用Transact-SQL 语句修改数据库需要使用ALTER DATABASE命令,其语法格式如下: ALTER DATABASE database_name
{
ADD FILE [ ,...n ]
[ TO FILEGROUP { filegroup_name | DEFAULT } ]
| ADD LOG FILE [ ,...n ]
| REMOVE FILE logical_file_name
| MODIFY FILE
| ADD FILEGROUP filegroup_name
| REMOVE FILEGROUP filegroup_name
| MODIFY FILEGROUP filegroup_name
{
| DEFAULT
| NAME = new_filegroup_name }
| MODIFY NAME = new_database_name
}
主要参数说明如下:
● ADD FILE:指定要添加新的数据文件。
● ADD LOG FILE:指定要添加新的日志文件。
● REMOVE FILE :从数据库系统表中删除文件描述并删除物理文件,只有在文件为空时才能删除。
● ADD FILEGROUP:指定要添加文件组。
● REMOVE FILEGROUP:从数据库中删除文件组并删除该文件组中的所有文件。只有在文件组为空时才能删除。
● MODIFY FILE :指定要更改给定的文件。更改选项包括FILENAME 、SIZE 、FILEGROUP 、MAXSIZE 。一次只能更改这些属性中的一种。必须在中指定NAME ,以标识要更改的文件。如果指定了SIZE ,那么新大小必须比文件当前大小要大,只能为tempdb 数据库中的文件指定FILENAME ,而且新名称只有在Microsoft SQL Server重新启动后才能生效。
● MODIFY NAME:重命名数据库。
● MODIFY FILEGROUP:修改指定文件组的属性。
考虑到Books 数据库中Books1_dat文件的初始大小5MB 太小,现在想将它的初始大小增加到20MB 。ALTER DATABASE命令如下:
ALTER DATABASE books
MODIFY FILE(NAME=Books1_dat, SIZE=20MB)
如果实际应用中不需要Books 数据库中Books2_dat文件,可以将其从数据库中删除,命令如下:
ALTER DATABASE books
REMOVE FILE Books2_dat
数据库创建之后,一般情况下不要更改数据库的名称,因为许多应用程序可能已经使用了该数据库的名称。数据名称更改之后,需要修改相应的应用程序。但是,如果确实需要修改数据库的名称,也可以使用Alter Database的modify name子句进行修改。
● 使用系统存储过程sp_dboption可以显示或更改数据库选项,sp_dboption
的详细用法请参阅联机丛书。不能在master 或tempdb 数据库上使用sp_dboption。
● 在重命名数据库前,应该确保没有用户使用该数据库,而且数据库应该设置为
“单用户”模式。利用系统存储过程sp_renamedb修改数据库的名字,其语法结构为:
sp_renamedb @old_name,@new_name 如:sp_renamedb 'books', 'Books1',将数据库名由“books ”改为“Books1”。
2.3.3 查看数据库
在Microsoft SQL Server 2005系统中,可以使用一些目录视图,函数、存储过程等查看有关数据库的基本信息。如使用系统表sysdatabases 可以查看有关数据库的基本信息,使用系统表sysfiles 可以查看有关数据库文件的信息,使用sysfilegroups 可以查看有关数据库文件组的信息。
使用系统存储过程sp_helpdb可以查看所有数据库和特定数据库的基本信息。
需要查看当前数据库服务器中所有数据库信息:
sp_helpdb
该语句可以查看所有数据库的信息,如图2-17
所示。
图2-17
查看所有数据库的信息
图2-18 查看Books 数据库的信息
需要查看当前数据库服务器中Books 数据库的基本信息:
sp_helpdb books
该语句可以查看指定数据库Books 的信息,如图2-18所示。
2.3.4 删除数据库
对于那些不再使用的数据库,可以删除它以释放在磁盘上所占用的空间,用户可能使用T-SQL 语句删除数据库,一次可以删除一个或多个数据库。其基本语法格式为:
DROP DATABASE database_name [,„n][;] 如果不再需要Books 数据库,可以用以下语句删除:
DROP DATABASE books
并不是所有的数据库在任何时候都能被删除,只有处于正常状态下的数据库,才能使用DROP 语句删除。当数据库处于以下状态时不能被删除:数据库正在使用;数据库正在恢复;数据库包含用于复制的已经出版的对象。
2.3.5 更改数据库所有者
在SQL Server 2005中,可以更改当前数据库的所有者。任何可以访问到SQL Server的连接的用户(SQL Server 登录账户或Microsoft Windows 用户)都可以成为数据库的所有者,但无法更改系统数据库的所有权。更改数据库的所有权可以使用存储过程sp_changedborner来实现。详细用法请参阅“联机丛书”。
课堂实践3
【任务1】
使用T-SQL 语句创建数据库Books ,并要求进行如下设置:
① 两个数据文件和一个日志文件,逻辑名称分别为Books_dat、Books1_dat和Books_log,次要数据文件Books1_dat存放在文件组FG 中。
② 物理文件存放在D:\data文件夹中。
③ 主文件的增长方式为“按MB ”自动增长,初始大小为5MB ,文件增长量为1MB 。最大尺寸为50MB 。次要数据文件的增长方式为“按MB ”自动增长,初始大小为3MB ,文件增长量为1MB 。无限制增长。
④ 日志文件的增长方式为“按百分比”自动增长,初始大小为5MB ,文件增长量为10%。
【任务2】
在操作系统文件夹中查看Books 数据库对应的操作系统文件。
【任务3】
使用T-SQL 语句修改Books 数据库。
① 添加一个日志文件Books1_log。
② 将主数据库文件的增长上限修改为300MB 。
③ 删除数据文件Books1_dat。
课外实践
【任务1】
某机票代理公司代理销售国内各个航空公司的机票,需要一个专门查询航空公司机票信息的网站。经过分析和调研决定采用SQL Server 2005作为后台数据库进行信息管理。现在使用SSMS 和T-SQL 语句分别实现如下操作:
① 创建数据库FlightsDB (航班查询系统)。数据文件名为Flights_dat.mdf,初始大小为2MB ,最大值为15MB ,增长方式是按10%比例增长;日志文件初始大小为1MB ,最大可增长到10MB ,按1MB 大小增长,日志文件名为Flights_log.ldf,并将两个文件保存在D:\data目录下。
② 将上一题所创建的FlightsDB 数据库中的数据文件的增长方式改为按1MB 大小增长。最大容量没有限制。
③ 为数据库FlightsDB 新增一个逻辑文件名为Flights_dat的数据文件,其初始大小及最大值分别为10MB 和50MB 。
思考与练习
【填空题】
1.在SQL Server 2005中,系统数据库有________、________、________、________和________。
2.在SQL Server 2005中,文件分为三大类,它们是________、________和________,文件组也分为三大类,它们是________、________和________。
3.默认情况下,SQL Server 2005数据库的默认文件组是________,用户可以重新定义默认文件组,但只能有________个文件组是默认文件组。
4.删除数据文件和日志文件时,它们必须是空文件,里面不能含有________或________,因此,删除数据文件时需要首先转移数据到文件组的其他数据文件中,然后再删除。
【选择题】
1.在创建数据库时,系统自动将________系统数据库中的所有用户自定义的对象都复制到新建的数据库中。
A .master B .msdb C .model D .tempdb
2.关于SQL Server 2005文件组的叙述正确的是________。
A .一个数据库文件不能存在于两个或两个以上的文件组里
B .日志文件可以属于某个文件组
C .文件组可以包含不同数据库的数据文件
D .一个文件组只能存放在同一个存储设备中
3.如果在定义数据库Books 时,没有指明数据库文件大小的单位,此时系统会自动为其指定单位,这个单位是________。
A .KB
A ..mdf
功能。
A .ALTER DATABASE books REMOVE Books1_dat B .MB C .TB B ..ndf C ..ldf D .不确定 D .没有扩展名 4.SQL Server 2005数据库文件的扩展名是________。 5.从数据库Books 中删除一个名称为Books1_dat的次数据文件,下面命令________可以完成此
B .ALTER DATABASE books REMOVE FILE Books1_dat
C .ALTER DATABASE books REMOVE FILE Books1_dat.ndf
D .REMOVE FILE Books1_dat
6.在修改数据库时不能完成的操作是________。
A .添加或删除数据和事务日志文件
B .更改数据库的所有者
C .更改数据库的名称
D .更改数据库的物理路径
【简答题】
1.SQL Server 2005系统数据库各自有什么特点和作用?
2.事务日志文件的作用是什么?