1、创建数据库和数据库文件,数据库结构介绍使用Transact-SQL创建数据库和文件,2.1数据库的文件组成,数据库通常可以由三类文件组成。主数据文件:默认扩展名为*.mdf辅助数据文件:默认扩展名*.ndf,一般是创建的数据库跨越多个文件,就需要建立辅助数据文件事务日志文件:默认扩展名*.ldf,负责记录对数据库的所有操作,但是不包含数据页面,创建数据库的参数,数据库大小的选项数据文件初始大小日志文件初始大小文件增长,model 数据库,主文件,辅助文件,事务日志,事务日志,提示:为了提高性能,将日志放在单独的驱动器上,磁盘,磁盘,缓冲区缓存,注意事项:,为了避免数据读写时对磁盘的争抢,请不要
2、将数据文件置于包含了操作系统文件的磁盘中。将数据文件和事务日志文件分开放置。由于减少了数据文件和事务日志文件对磁盘的争抢,这种分隔将给数据库带来最佳的性能。如果可能的话,将tempdb数据库放置在一个独立的磁盘驱动器上,例如RAID 10或者RAID 5系统中。这样,在tempdb数据库被大量使用的时候,通过独立的磁盘驱动器,数据库可以并行的处理tempdb的操作,因此将获得最佳性能。,SQL Server中一个数据库可以对应多个物理文件,其中有一个的主数据库文件,扩展名为MDF,其他为次数据库文件,扩展名为NDF。可以将不同的文件存放在不同的驱动器上,可以提高数据访问速度。 文件组是逻辑概念
3、,主要目的是将文件分组管理。,重要概念:,在SQLserver中创建,涉及到很多数据库的设置选项数据库:用于存储特定格式的关系数据总集文件:用于存放由数据构成的表文件组:用于将多个文件组织起来进行管理架构:用于管理数据表等对象的命名快照:用于建立数据库的快速还原点,方便测试和故障恢复,2.2使用CREATE DATABASE语句创建数据库,-Demo1 只有PRIMARY一个文件组CREATE DATABASE TestDBON -允许显式定义用于存储数据的文件- 定义数据库主文件(NAME = TestDB_Data, - 主文件逻辑名称 FILENAME = D:DATATransactT
4、estDB.mdf, - 操作系统文件名称,包含路径 SIZE = 20 MB, - 主文件初始大小 FILEGROWTH = 0) - 未启用自动增长- 定义数据库日志文件LOG ON (NAME = TestDB_Log, - 日志文件逻辑名称 FILENAME = D:DATATestDB_Log.ldf, - 包含路径的操作系统文件名称 SIZE = 5 MB, - 日志文件初始大小 FILEGROWTH = 0) 未启用自动增长,DEMO2 -有多个文件组,create database DemoDB On PRIMARY (-主文件组 name=DemoDB_data, filen
5、ame=d:DemoDB_data.mdf, size=10mb, filegrowth=10%, maxsize=500mb),filegroup fg -第二个文件组 (name=fg_DemoDB_data, filename=d:fg_DemoDB_data.ndf, size=10mb, filegrowth=0),log on(name=DemoDB_log, filename=d:DemoDB_log.ldf, size=5mb,filegrowth=0) GO,DEMO3 添加文件组,create database DeomDBGOalter database DemoDB A
6、DD filegroup fg1GOalter database DemoDB ADD FILE (name=fg1_data, filename=d:fg1_data.ndf, size=5mb, filegrowth=10%)to filegroup fg1 GO,2.3修改数据库,2.3.1使用Transact-SQL修改数据库 T-SQL中修改数据库的命令为ALTER DATABASE。,修改的内容主要包括以下几项: (1)扩展数据库。 (2)收缩数据库。 (3)添加和删除文件(数据文件和事务日志文件)。 (4)创建文件组。 (5)创建默认文件组。 (6)更改数据库所有者。,语法格式如
7、下:ALTER DATABASE DATABASEADD FILE,nTO FILEGROUP filegroup_name|ADD LOG FILE,n|REMOVE FILE logical_file_name|ADD FILEGROUP filegroup_name|REMOVE FILEGROUP filegroup_name,|MODIFY FILE|MODIFY NAME=new_dbname|MODIFY FILEGROUP filegroup_namefilegroup_property|NAME=new_filegroup_name|SET,nWITH|COLLATE,1修改
8、数据库时修改数据库大小,可以使用ALTER DATABASE命令修改数据库的大小。 【例3-3】 使用ALTER DATABASEMODIFY命令删除数据库的文件。,图2.5修改数据库的大小,2修改数据库时缩小数据库,(1)可以调用T-SQL的命令DBCC SHRINKDATABASE缩小过于庞大的数据库,以回收没有使用的数据页。,DBCC SHRINKDATABASE的语法格式如下:DBCC SHRINKDATABASE( database_name|,target_percent,NOTRUNCATE|TRUNCATEONLY),【例2-4】 使用DBCC SHRINKDATABASE命令
9、缩小数据库的文件。,图2.6缩小gwh数据库的大小,(2)可以使用DBCC SHRINKFILE命令收缩相关数据库的指定数据文件或日志文件大小。,DBCC SHRINKFILE的语法格式如下:DBCC SHRINKFILE(file_name , target_size| ,EMPTYFILE | NOTRUNCATE | TRUNCATEONLY ),【例2-5】 使用DBCC SHRINKFILE命令缩小joy文件。,图2.7使用DBCC SHRINKFILE命令缩小joy文件,3修改数据库时将数据库更名,系统存储过程sp_renamedb可以修改数据库的名字。 语法格式如下:sp_ren
10、amedb dbname = old_name , newname = new_name,【例2-6】 将数据库名称“mr”更名为“mrsoft”。,图2.8将数据库名称“mr”更名为“mrsoft”,3.3.2使用企业管理器修改数据库,数据库创建完成以后,用户在使用过程中可以根据需要对其原始定义进行修改。,图2.9选择数据库属性,图2.10“文件”选项卡,图2.11选择数据库所有者,图2.12“查找对象”对话框,3.4删除数据库,3.4.1使用Transact-SQL删除数据库 DROP DATABASE命令可以删除一个或多个数据库。 当某一个数据库被删除后,这个数据库的所有对象和数据都将被
11、删除,所有日志文件和数据文件也都将删除,所占用的空间将会释放给操作系统。,语法格式如下:DROP DATABASE database_name ,.n ,图2.13删除正在使用的数据库,系统会报错,1使用DROP DATABASE命令删除一个数 据库,【例3-7】 使用DROP DATABASE命令删除数据库。,图2.14删除“teacher”数据库,2使用DROP DATABASE命令批量删除数据库,DROP DATABASE 学生管理, 住房信息管理DROP DATABASE student,stu,goods,shopping,【例3-8】 使用DROP DATABASE命令将“hell
12、o”、“every”和“person”这3个数据库批量删除。,图2.15批量删除数据库,3.4.2使用企业管理器删除数据库,如果用户不再需要某一数据库时,只要满足一定的条件即可将其删除,删除之后,相应的数据库文件及其数据都会被删除,并且不可恢复。,删除数据库时必须满足以下条件: (1)如果数据库涉及日志传送操作,在删除数据库之前必须取消日志传送操作。,(2)若要删除为事务复制发布的数据库,或删除为合并复制发布或订阅的数据库,必须首先从数据库中删除复制。 如果数据库已损坏,不能删除复制,可以先将数据库设置为脱机状态,然后再删除数据库。 (3)如果数据库上存在数据库快照,必须首先删除数据库快照。,
13、图2.16删除数据库,图2.17除去对象,3.5查看和设置数据库参数,3.5.1使用sp_helpdb查看数据库参数 sp_helpdb是SQL Server中的一个系统存储过程,它主要用来返回服务器中指定数据库或所有数据库的参数信息,该存储过程的使用语法如下:sp_helpdbdbname=name,存储过程sp_helpdb必须通过访问服务器上的数据库,来确定要显示的有关数据库信息。 因此,服务器上的每个数据库都必须满足下列条件之一: (1)执行sp_helpdb存储过程的用户必须拥有访问数据库的权限。 (2)guest用户必须存在于数据库中。,3.5.2使用企业管理器查看和设置数据库参数,图2.18“数据库属性”对话框,小结,本章介绍了SQL Server 2005数据库的组成、创建和管理数据库的方法以及如何查看数据库信息。 读者不仅可以使用SQL Server 2005企业管理器完成创建和管理数据库的工作,还可以调用Transact-SQL语句完成对应操作。 通过调用sp_helpdb存储过程或者使用企业管理器可以查看到数据库的详细信息。,