数据库原理实验报告 下载本文

金陵科技学院实验报告

(5)resource数据库

resource数据库是一个只读数据库,它包含了SQL Server2005中的所有系统对象。SQL Server系统对象在物理上持续存在于Resource数据库中,但逻辑上,他们出现在数据库的sys架构上。resource数据库的物理文件名为Mssqlsystemresource.mdf。任意移动或重命名resource数据库文件,SQL Server2005将不能正常启动。 三、数据库存储文件

SQL Server2005数据库中有三种类型的文件来存储信息。 1、主数据文件

主数据文件包话数据库的启动信息,并指向数据库中的其他文件。用户数据和对象可存储在该文件中,也可以存储在辅助数据文件中。每个数据库只能有一个主数据文件。其扩展名为.mdf。 2、辅助数据文件

辅助数据文件是可选的。由用户定义并存储用户数据。每个数据库可以有多个辅助数据文件,其扩展名为.ndf。 3、事务日志文件

事务日志文件是用于保存恢复数据库的日志信息的。每个数据库必须至少有一个日志文件,其扩展名为.ldf。 4、文件组

文件组是将多个数据文件集合起来形成一个整体。每个文件组有一个组名。文件组分为主文件组和次文件组。一个文件只能存放在一个文件组中,一个文件组也只能为一个数据库使用。主文件组包含了所有的系统表。当建立数据库时,主文件组包含数据库文件和未指定组的其他文件。事务日志文件不包含在任何文件组中。 四、创建数据库 1、使用向导创建数据库 2、语句方式创建数据库 (1)最简单的语句创建数据库 Create database databaseName (2)一般创建数据库的格式 CREATE DATABASE database_name [ ON

[ < filespec > [ ,...n ] ] [ , < filegroup > [ ,...n ] ] ] ]

[ LOG ON { < filespec > [ ,...n ] } ] [ COLLATE collation_name ] [ FOR LOAD | FOR ATTACH ] < filespec > ::= [ PRIMARY ]

3

金陵科技学院实验报告

( [ NAME = logical_file_name , ]

FILENAME = 'os_file_name' [ , SIZE = size ]

[ , MAXSIZE = { max_size | UNLIMITED } ]

[ , FILEGROWTH = growth_increment ] ) [ ,...n ] < filegroup > ::=

FILEGROUP filegroup_name < filespec > [ ,...n ] (3)示例

CREATE DATABASE Sales ON

( NAME = Sales_dat,

FILENAME = 'c:\\program files\\microsoft sql server\\mssql\\data\\saledat.mdf', SIZE = 10, MAXSIZE = 50, FILEGROWTH = 5 ) LOG ON

( NAME = 'Sales_log',

FILENAME = 'c:\\program files\\microsoft sql server\\mssql\\data\\salelog.ldf', SIZE = 5MB, MAXSIZE = 25MB, FILEGROWTH = 5MB )

3、请按照要求用工具和SQL语句两种方法创建名为MyDB数据库。 五、维护数据库 1、修改数据库名称

(1)使用ALTER DATABASE语句

ALTER DATABASE databaseName MODIFY NAME=newdatabaseName (2)使用存储过程

EXEC sp_dboption ‘databaseName’,‘SINGLE’,True /*首先将数据库设置为单用户模式*/ EXEC sp_renamedb ‘databaseName’, ‘newdatabaseName’ /*修改数据库名*/ EXEC sp_dboption ‘newdatabaseName’, ‘SINGLE’,False /*取消单用户模式*/ (3)从资源管理器窗口修改数据库名 2、修改数据库大小

(1)设置数据库文件为自动增长方式 (2)直接修改数据库文件的大小 (3)增加辅助数据库文件 (4)示例

CREATE DATABASE Test1 ON

4

金陵科技学院实验报告

(NAME = Test1dat1,

FILENAME = 'c:\\Program Files\\Microsoft SQL Server\\MSSQL\\Data\\t1dat1.ndf', SIZE = 5MB, MAXSIZE = 100MB, FILEGROWTH = 5MB ) GO

ALTER DATABASE Test1 ADD FILE

(NAME = Test1dat2,

FILENAME = 'c:\\Program Files\\Microsoft SQL Server\\MSSQL\\Data\\t1dat2.ndf', SIZE = 5MB, MAXSIZE = 100MB, FILEGROWTH = 5MB )

(5)请参照示例用SQL语句为MyDB数据库增加辅助数据库文件MyDB2,其大小为3MB,最大为10MB,按照10%增长。 3、收缩数据库

(1)设置数据库为自动收缩 (2)手动收缩数据库

(3)使用DBCC SHRINKDATABASE命令收缩数据库

该命令是一种比自动收缩数据库更加灵活的收缩数据库方式。可以对整个数据库进行收缩。 示例:DBCC SHRINKDATABASE (UserDB, 10)

/*该命令将UserDB用户数据库中的文件减小,以使UserDB中的文件有10%的可用空间。*/ (4)请使用该命令将MyDB数据库收缩到有10%的可用空间。 4、删除数据库 (1)使用管理工具 (2)使用T-SQL语句

DROP DATABASE database_name [ ,...n ] 5、分离数据库

分离数据库是指数据库从SQL Server实例上删除,但是数据文件、但事务日志文件仍然保持不变。注意:分离数据库如果出现下列情况之一,则不允许分离:

*已复制并发数据库、 *数据库中存在数据库快照、 *数据库处于未知状态。 (1)使用语句分离数据库 示例:exec sp_detach_db MyDB (2)可以使用工具 6、附加数据库

附加数据库时,所有的数据文件(.mdf文件和.ndf文件)都必须是可用的。如果任何数据文件的路径和创建时或上次附加数据库时的路径不同,则必须指定文件的当前路径。在附加数据库的过程中,

5

金陵科技学院实验报告

如果没有日志文件,系统将创建一个新的日志文件。 (1)使用工具附加数据库 (2)使用SQL语句附加数据库 示例:CREATE DATABASE Sales ON ( NAME =‘Sales_dat’,

FILENAME =‘c:\\program files\\microsoft sql server\\mssql\\data\\saledat.mdf' ) LOG ON

( NAME =‘Sales_log',

FILENAME =‘c:\\program files\\microsoft sql server\\mssql\\data\\salelog.ldf') FOR ATTACH

(3)请用上述两种方法将MyDB数据库附加到实例中。

五、问题解答及实验结果

1.创建数据库MyDB

create database MyDB

on(name=MyDB_data,Filename='D:\\data\\My_data.mdf',size=3MB,fileGrowth=1mb) log on

(name=MyDB_log,Filename='D:\\data\\MyDB_log.ldf',size=1MB,filegrowth=10%) 2.重命名数据库,改为MyDB1

alter database MyDB Modify name=MyDB1 3.使用存储过程修改数据库名称

exec sp_dboption 'MyDB','SINGLE',True exec sp_renamedb 'MyDB','MyDB1'

exec sp_dboption 'MyDB1','SINGLE',False 4.增加辅助数据库MyDB2 alter database MyDB1

add file(name=MyDB2,filename='D:\\data\\MyDB2dat.ndf',size=3MB,Maxsize=10MB,FileGrowth=10%) 5.收缩数据库

dbcc SHRINKDATABASE (MyDB,10) 6.删除数据库

drop database MyDB 7.附加数据库

create database MyDB on (name='MyDB_dat',filename='D:\\data\\My_data.mdf') log on (name='MyDB_log',filename='D:\\data\\MyDB_log.ldf')for ATTACH;

六、实验体会和收获

通过这次实验,我学习到了Sql Server数据库的基本构成,掌握了基本的创建、添加、重命名数据库等操作,学会了使用图形界面工具操作数据库的使用,在sql命令方法还有点不熟悉,会在以后的实验中逐渐加强。

6