实验2 数据库的创建和管理
学号: 2011193158 姓名:韩江玲
一、实验目的:
1、 掌握使用企业管理器创建SQL Server数据库的方法;
2、 掌握使用T-SQL语言创建SQL Server数据库的方法;
3、 掌握附加和分离数据库的方法;
4、 掌握使用企业管理器或存储过程查看SQL数据库属性的方法;
5、 熟悉数据库的收缩、更名和删除;
6、 掌握使用企业管理器或sp_dboption存储过程修改数据库选项的方法。
二、实验内容和步骤:
本次实验所创建数据库(包括数据库文件和事务日志)存放位置都为“D:\\TestDB”.因此首先在D盘下新建文件夹TestDB。
1。 数据库的创建
创建数据库的过程实际上就是为数据库设计名称、设计所占用的存储空间和文件存放
位置的过程.
实验内容1:使用SQL Server企业管理器创建一个数据库,具体要求如下:
1)数据库名称为Test1.
2)主要数据文件:逻辑文件名为Test1_Data1,物理文件名为Test1_Data1。mdf,初始容量为1MB,最大容量为10MB,递增量为1MB.
3)次要数据文件:逻辑文件名为Test1_Data2,物理文件名为Test1_Data2。ndf,初始容量为1MB,最大容量为10MB,递增量为1MB。
4)事务日志文件:逻辑文件名为Test1_Log,物理文件名为Test1_Log.ldf,初始容量为1MB,大容量为5MB,递增量为1MB。其他选项为默认值。
注:我在创建数据库的时候,系统要求主文件(Test1_data1和Test1_data2)的大小不能小于3MB,所以在本例中我设置的主文件的初始大小均为3MB
实验内容2:用Transact—SQL(T—SQL)语句创建数据库,实验步骤:启动“查询分析器”,在编辑窗口输入SQL语句。
用T-SQL语句创建一个名为teach的数据库,它由5MB的主数据文件、2MB的次数据文件和1MB的日志文件组成。并且主数据文件以2MB的增长速度增长,其最大容量为15MB;次数据文件以10%的增长速度增长,其最大容量为10MB;事务日志文件以1MB增长速度增长,其最大日志文件大小为10MB.运行完语句后,仔细查看结果框中的消息。
提示:在查询分析器中输入如下SQL语句。
CREATE DATABASE teach
On
(name= teach_data1,
filename= 'd:\\TestDB\each_data1.mdf ’,
size=5,
maxsize=15,
filegrowth=2),
( name= teach_data2,
filename= 'd:\\TestDB\each_data2。ndf ',
size=5,
maxsize=10,
filegrowth=10%)
log on
( name=teach_log,
filename= 'd:\\TestDB\each_log.ldf ’,
size=1,
maxsize=10,
filegrowth=1)
注:要想这段T—SQL语句能够成功执行需要实现在D盘下面建一个TestDB文件夹,不然系统会找不到指定的根目录名称而执行失败
2 数据库的管理
2.1 数据库的分离与附加
将teach数据库与服务器分离。可以使用企业管理器或SQL语言对数据库进行分离的操作。分离数据库的存储过程是sp_detach_db,附加数据库的存储过程是sp_attach_db。
实验内容3: 分离数据库teach
提示:sp_detach_db teach
语句执行成功后,打开企业管理器,查看是否存在该数据库对象。
若出现“无法分离 数据库 ’teach',因为它当前正在使用。”问题,应把企业管理器关闭。
注:将删除链接选项选上,然后点击确定就可以成功将该数据库分离了
实验内容4: 附加数据库
提示:sp_attach_db teach,’d:\\TestDB\each_data1.mdf ’.
语句执行成功后,打开企业管理器,查看是否存在该数据库对象。
首先定位数据库所在路径
接着查看数据库添加成功:
查询数据库附加成功:
2.2 查看和修改数据库属性
数据库创建以后,可以使用企业管理器或SQL语言来查看或修改数据库的属性。
使用企业管理器的方法是右击数据库名称,在快捷菜单中选择“属性\",然后数据库属性对话框中就可以查看或修改数据库的属性。
也可以使用sp_helpdb、sp_spaceused、sp_helpfile和sp_helpfilegroup等存储过程查看和数据库有关的属性。
修改数据库属性可以使用ALTER DATABASE命令.
实验内容5:使用sp_ helpdb存储过程查看teach数据库的信息,然后企业管理器
将teach数据库的事务日志文件的增长大小改为按2MB字节增长,再使用sp_ helpdb存储过程查看student数据库的信息。
提示:在查询分析器中输入如下SQL语句:sp_helpdb teach
使用sp_ helpdb存储过程查看teach数据库的信息
将teach数据库的事务日志文件的增长大小改为按2MB字节增长
使用sp_ helpdb存储过程查看更新后的teach数据库的信息
实验内容6:使用ALTER DATABASE命令为teach数据库添加一个新的数据文件,文件逻辑名为teach3,初始大小为2MB,增长值为1MB,其他属性默认.
提示:在查询分析器中输入如下SQL语句:
ALTER DATABASE teach
ADD FILE
( name= teach_data3,
filename= ’d:\\TestDB\each_data3。ndf ',
size=2,
filegrowth=1)
执行T-SQL语句
查看更改后的数据库信息
2.3 数据库的收缩
数据库收缩可以缩小数据库的空闲空间。可以使用企业管理器或SQL语言对数据库进
行收缩工作.收缩数据库使用的SQL语句是DBCC SHRINKDATABASE命令.也可以使用ALTER DATABASE的SET子句或sp_dboption将数据库设为自动收缩。
实验内容7:将teach数据库设为自动收缩。
提示:1)使用企业管理器。打开企业管理器-选择要收缩的数据库-属性-选项-自动收缩(给服务器性能带来额外负担)
2)使用SQL语句: DBCC SHRINKDATABASE(teach)
其他:DBCC SHRINKDATABASE (UserDB,10)--把数据库UserDB收缩到90%
DBCC SHRINKDATABASE (DataFile1,7) ——把数据文件DataFile1收缩到7M
使用企业管理器将teach数据库设置为自动收缩:
2。4 数据库的更名
使用系统存储过程sp_renamedb更改数据库的名称.在重命名之前,应确保没有用户使用该数据库。
实验内容8:将teach数据库改名为teaching。
提示:在查询分析器中输入如下SQL语句:
sp_renamedb teach,teaching
将teach数据库改名为teaching
2.5数据库选项的配置
可以使用 ALTER DATABASE 语句的 SET 子句、sp_dboption 系统存储过程,或者在某些情况下使用 SQL Server 企业管理器设置数据库选项。
实验内容9:使用企业管理器将teaching数据库设为只读.
提示:打开企业管理器,选中teaching,单击右键,选中“属性”,单击“选项\",选中“只读”,确定。
设置teaching为只读
查看设置后的teaching数据库:
实验内容10:使用sp_dboption存储过程取消teaching数据库的只读设置。
提示:sp_dboption 'teaching’, 'read only', ’FALSE'
取消teaching数据库的只读设置
查看执行后的效果:
2.6 数据库的删除
可以使用企业管理器删除数据库。在企业管理器中,右击所要删除的数据库,从弹出的快捷菜单中选择“删除”命令或直接按下键盘上Delete按钮即可删除数据库。
可以使用DROP语句删除数据库.注意:对正在使用的数据库不能被删除.
实验内容11:使用DROP DATABASE命令将teaching数据库删除。
提示:DROP DATABASE teaching
将teaching数据库删除
三、实验思考:
1。 一个数据库中包含哪几种文件?
1、主数据文件。
用来存储数据库的数据和数据库的启动信息。每个数据库必须有且只有一个主数据文件,其扩展名为.mdf。实际的主数据文件都有两种名称:操作系统文件名和逻辑文件名(在sql语句中会用到)
2、辅助数据文件
用来存储数据库的数据,可以扩展存储空间。一个数据库可以有多个辅助数据文件。扩展名为。ndf
3、事务日志文件
用来存放数据库的事务日志。凡是对数据库进行的增、删、改等操作,都会记录在事务日志文件中。每个数据库至少有一个事务日志文件.扩展名为。ldf
2。 事务日志文件的大小一般为数据文件大小的多少合适?
我认为日志文件的大小跟数据文件是没有太大的关联的,关键是看一次提交的事务的大小(要估计最大量),日志文件大小可以设置为最大的一次事务提交的大小的2-3倍就可以了,然后经常备份日志就可以了。数据库及其日志一定要经常备份,不然就算设置的日志文件再大也不行的.
3。 若需修改数据库文件的大小,可以使用的方法有哪些?若要求使用T-SQL语言,则命令应如何编写?
1、使用企业数据库管理,选中数据库名-》右键—》属性—》文件,然后队要修改的数据库文件的大小进行修改
2、T-SQL语句
backup log @database_name with no_log
dbcc shrinkfile (@database_name_log, 5)
4.能不能删除master数据库?若一个用户数据库当前正在被访问,能不能被删除?
不能删除master数据库;因为master系统数据库记录包括用户信息,数据库信息,系统信息等,若master有坏损sqlserver就启动不了了
若一个用户数据库当前正在被访问,能不能被删除;因为如果正在访问该数据库,泽该数据库与服务器建立起了连接,必须把服务器停止之后才能删除该数据库
因篇幅问题不能全部显示,请点此查看更多更全内容