数据库原理实验二 2.docx
《数据库原理实验二 2.docx》由会员分享,可在线阅读,更多相关《数据库原理实验二 2.docx(15页珍藏版)》请在冰豆网上搜索。
数据库原理实验二2
学生实验报告
(理工类)
课程名称:
数据库系统原理专业班级:
10计算机(统)
学生学号:
1005103021学生姓名:
程孟德
所属院部:
信息技术学院指导教师:
王预
2012——2013学年第一学期
金陵科技学院教务处制
实验报告书写要求
实验报告原则上要求学生手写,要求书写工整。
若因课程特点需打印的,要遵照以下字体、字号、间距等的具体要求。
纸张一律采用A4的纸张。
实验报告书写说明
实验报告中一至四项内容为必填项,包括实验目的和要求;实验仪器和设备;实验内容与过程;实验结果与分析。
各院部可根据学科特点和实验具体要求增加项目。
填写注意事项
(1)细致观察,及时、准确、如实记录。
(2)准确说明,层次清晰。
(3)尽量采用专用术语来说明事物。
(4)外文、符号、公式要准确,应使用统一规定的名词和符号。
(5)应独立完成实验报告的书写,严禁抄袭、复印,一经发现,以零分论处。
实验报告批改说明
实验报告的批改要及时、认真、仔细,一律用红色笔批改。
实验报告的批改成绩采用百分制,具体评分标准由各院部自行制定。
实验报告装订要求
实验批改完毕后,任课老师将每门课程的每个实验项目的实验报告以自然班为单位、按学号升序排列,装订成册,并附上一份该门课程的实验大纲。
实验项目名称:
熟悉SQLServer2005环境及数据库文件管理实验学时:
2
同组学生姓名:
实验地点:
实验日期:
实验成绩:
批改教师:
批改时间:
一、实验目的和要求
1、熟悉SQLServer2005工作环境、了解SQLServer2005主要管理工具的用途、掌握登录SQLServer2005的方法;
2、熟悉数据库的组成;
3、了解数据库快照的使用方法;
4、掌握创建、修改、删除数据库的方法;
5、熟悉如何查看数据库状态;
6、掌握分离数据库和附加数据库的方法。
二、实验设备、环境
设备:
奔腾Ⅳ或奔腾Ⅳ以上计算机;
环境:
WINDOWS2000SERVER或WINDOWS2003SERVER、SQLServer2005中文版。
三、实验步骤
1、根据题目要求熟悉SQLServer2005的各种管理工具;
2、分析题意,重点分析题目要求并给出解决方法;
3、按题目要求完成实际操作任务,并将相关文档资料保存在以自己学号命名的文件夹中;
4、提交完成的实验结果。
四、实验内容
一、熟悉SQLServer2005管理工具
SQLServer2005系统提供了大量的管理工具,通过这些管理工具可以对系统实现快速、高效管理。
主要管理工具如下:
1、SQLServerManagementStudio
(1)对象资源管理器
允许查看和连接到SQLServer、分析器、集成服务器、报表服务器和SQLMobile。
一旦连接到特定的服务,可以在对象节点中查看它的组件,并且可以访问子节点对象。
(2)已注册的服务器
显示当前已注册的服务器。
窗格顶部的列表,包括SQLServer、分析服务器、集成服务器、报表服务器和SQLMobile。
允许用户在特定的服务器之间快速转换。
(3)模板资源管理器
提供对查询编辑器的模板和任何用户所创建的自定义模板的快速访问。
模板可以通过SQLServerManagementStudio所支持的任何脚本语言来创建。
(4)解决方案管理器
提供对现存的SQLServer、分析服务器和SQLMobile的项目的快速访问。
当项目被执行时,项目会给出连接、查询和执行的其他函数的详细信息。
2、SQLServerBusinessIntelligenceDevelopmentStudio(商业智能)
SQLServerBusinessIntelligenceDevelopmentStudio为开发人员提供的一种新的项目开发和管理工具。
开发人员可以使用SQLServerBusinessIntelligenceDevelopmentStudio设计端到端的商业智能解决方案。
3、SQLServerConfiguration
SQLServerConfiguration(配置管理器)包含了SQLServer2005服务、SQLServer2005网络配置和SQLNativeClient配置3个工具,提供数据库管理人员做服务启动与停止与监控、服务器端支持的网络协议,用户用来访问SQLServer的网络相关设置等工作。
4、SQLServer外围应用配置
SQLServer外围应用配置器是SQLServer2005的新增功能,该工具是用来减少SQLServer的服务数和组件数的一种方法,以帮助保护SQLServer避免出现安全缺口。
5、DatabaseEngineTuningAdvisor(数据库引擎的优化顾问)工具可以完成帮助用户分析工作负荷、提出创建高效索引的建议等功能。
6、SQLServer联机丛书:
主要为用户提供帮助。
7、sqlcmd:
提供了在命令提示符中输入Transact-SQL语句、系统过程和脚本文件的功能。
二、熟悉数据库的组成
1、系统数据库
(1)master数据库
master数据库存储SQLServer2005系统的所有系统级信息。
包括实例范围的元数据、端点、链接服务器和系统配置设置。
(2)model数据库
Model数据库用作SQLServer2005实例上创建的所有数据库的模板。
在SQLServer2005中在三个方面做了重大改变,包括:
扩大了最小值取之范围、兼容级别设置为90和PAGE_VERIFY数据库选项设置为CHECKSUM。
(3)msdb数据库
Msdb数据库主要被SQLServer2005代理用于进行复制、作业调度以及管理警报等活动,该数据库通常用于调度任务或排除故障。
(4)tempdb数据库
tempdb数据库是连接到SQLServer2005所有用户都可能用的全局资源,它保存所有临时表和临时存储过程。
另外,它还用来满足所有的其他存储要求,例如,存储SQLServer2005工作表。
每次启动SQLServer2005时都会重新创建tempdb数据库,以便系统启动时,给数据库总是空的。
断开连接时会自动删除临时表和存储过程,并在系统关闭后没有活动的连接。
(5)resource数据库
resource数据库是一个只读数据库,它包含了SQLServer2005中的所有系统对象。
SQLServer系统对象在物理上持续存在于Resource数据库中,但逻辑上,他们出现在数据库的sys架构上。
resource数据库的物理文件名为Mssqlsystemresource.mdf。
任意移动或重命名resource数据库文件,SQLServer2005将不能正常启动。
2、数据库快照
数据库提供了一种数据库恢复手段,可以在数据库损坏后,还原数据库到数据库快照时的状态。
这是SQLServer2005中的新增功能。
(1)创建数据库快照
一般格式:
CREATEDATABASEdatabase_snapshot_name
ON
(NAME=logical_file_name,
FILENAME='os_file_name'
)[,...n]
ASSNAPSHOTOFsource_database_name
(2)举例:
为MyDB创建一个快照。
CREATEDATABASEMyDB_snapshot
ON
(NAME=MyDB_data,
FILENAME=’D:
\MyDB_snapshot.mdf’
)
ASSNAPSHOTOFMyDB
(3)使用数据库快照
如果因为某个错误而损坏了数据库,可以选择将数据库恢复到给错误出现之前的数据库快照。
USEMyDB
RESTOREDATABASEMyDBfromDATABASE_SNAPSHOT=’MyDB_snapshot’
GO
(4)删除快照
DROPDATABASEMyDB_snapshot
三、数据库存储文件
SQLServer2005数据库中有三种类型的文件来存储信息。
1、主数据文件
主数据文件包话数据库的启动信息,并指向数据库中的其他文件。
用户数据和对象可存储在该文件中,也可以存储在辅助数据文件中。
每个数据库只能有一个主数据文件。
其扩展名为.mdf。
2、辅助数据文件
辅助数据文件是可选的。
由用户定义并存储用户数据。
每个数据库可以有多个辅助数据文件,其扩展名为.ndf。
3、事务日志文件
事务日志文件是用于保存恢复数据库的日志信息的。
每个数据库必须至少有一个日志文件,其扩展名为.ldf。
4、文件组
文件组是将多个数据文件集合起来形成一个整体。
每个文件组有一个组名。
文件组分为主文件组和次文件组。
一个文件只能存放在一个文件组中,一个文件组也只能为一个数据库使用。
主文件组包含了所有的系统表。
当建立数据库时,主文件组包含数据库文件和未指定组的其他文件。
事务日志文件不包含在任何文件组中。
四、创建数据库
1、使用向导创建数据库
2、语句方式创建数据库
(1)最简单的语句创建数据库
CreatedatabasedatabaseName
(2)一般创建数据库的格式
CREATEDATABASEdatabase_name
[ON
[[,...n]]
[,[,...n]]]
]
[LOGON{[,...n]}]
[COLLATEcollation_name]
[FORLOAD|FORATTACH]
:
:
=
[PRIMARY]
([NAME=logical_file_name,]
FILENAME='os_file_name'
[,SIZE=size]
[,MAXSIZE={max_size|UNLIMITED}]
[,FILEGROWTH=growth_increment])[,...n]
:
:
=
FILEGROUPfilegroup_name[,...n]
(3)示例
CREATEDATABASESales
ON
(NAME=Sales_dat,
FILENAME='c:
\programfiles\microsoftsqlserver\mssql\data\saledat.mdf',
SIZE=10,
MAXSIZE=50,
FILEGROWTH=5)
LOGON
(NAME='Sales_log',
FILENAME='c:
\programfiles\microsoftsqlserver\mssql\data\salelog.ldf',
SIZE=5MB,
MAXSIZE=25MB,
FILEGROWTH=5MB)
3、请按照要求用工具和SQL语句两种方法创建名为MyDB数据库。
五、维护数据库
1、修改数据库名称
(1)使用ALTERDATABASE语句
ALTERDATABASEdatabaseNameMODIFYNAME=newdatabaseName
(2)使用存储过程
EXECsp_dboption‘databaseName’,‘SINGLE’,True/*首先将数据库设置为单用户模式*/
EXECsp_renamedb‘databaseName’,‘newdatabaseName’/*修改数据库名*/
EXECsp_dboption‘newdatabaseName’,‘SINGLE’,False/*取消单用户模式*/
(3)从资源管理器窗口修改数据库名
2、修改数据库大小
(1)设置数据库文件为自动增长方式
(2)直接修改数据库文件的大小
(3)增加辅助数据库文件
(4)示例
CREATEDATABASETest1ON
(NAME=Test1dat1,
FILENAME='c:
\ProgramFiles\MicrosoftSQLServer\MSSQL\Data\t1dat1.ndf',
SIZE=5MB,
MAXSIZE=100MB,
FILEGROWTH=5MB)
GO
ALTERDATABASETest1
ADDFILE
(NAME=Test1dat2,
FILENAME='c:
\ProgramFiles\MicrosoftSQLServer\MSSQL\Data\t1dat2.ndf',
SIZE=5MB,
MAXSIZE=100MB,
FILEGROWTH=5MB)
(5)请参照示例用SQL语句为MyDB数据库增加辅助数据库文件MyDB2,其大小为3MB,最大为10MB,按照10%增长。
3、收缩数据库
(1)设置数据库为自动收缩
(2)手动收缩数据库
(3)使用DBCCSHRINKDATABASE命令收缩数据库
该命令是一种比自动收缩数据库更加灵活的收缩数据库方式。
可以对整个数据库进行收缩。
示例:
DBCCSHRINKDATABASE(UserDB,10)
/*该命令将UserDB用户数据库中的文件减小,以使UserDB中的文件有10%的可用空间。
*/
(4)请使用该命令将MyDB数据库收缩到有10%的可用空间。
4、删除数据库
(1)使用管理工具
(2)使用T-SQL语句
DROPDATABASEdatabase_name[,...n]
5、查看数据库状态
(1)使用DATABASEPROPERTYEX函数
DATABASEPROPERTYEX(database,property)/*property是表明应返回的选项或属性设置的表达式*/
示例:
SELECTDATABASEPROPERTYEX(‘Mydb’,‘status’)AS‘当前数据库状态’
(2)使用sys.database_files查看有关数据库文件的信息
(3)使用sys.filegroups查看数据库文件组的信息
(4)使用sys.maste_files查看数据文件的基本信息和状态
6、分离数据库
分离数据库是指数据库从SQLServer实例上删除,但是数据文件、但事务日志文件仍然保持不变。
注意:
分离数据库如果出现下列情况之一,则不允许分离:
*已复制并发数据库、*数据库中存在数据库快照、*数据库处于未知状态。
(1)使用语句分离数据库
示例:
execsp_detach_dbMyDB
(2)可以使用工具
7、附加数据库
附加数据库时,所有的数据文件(.mdf文件和.ndf文件)都必须是可用的。
如果任何数据文件的路径和创建时或上次附加数据库时的路径不同,则必须指定文件的当前路径。
在附加数据库的过程中,如果没有日志文件,系统将创建一个新的日志文件。
(1)使用工具附加数据库
(2)使用SQL语句附加数据库
示例:
CREATEDATABASESales
ON(NAME=‘Sales_dat’,
FILENAME=‘c:
\programfiles\microsoftsqlserver\mssql\data\saledat.mdf')
LOGON
(NAME=‘Sales_log',
FILENAME=‘c:
\programfiles\microsoftsqlserver\mssql\data\salelog.ldf')
FORATTACH
(3)请用上述两种方法将MyDB数据库附加到实例中。
五、问题解答及实验结果
四、创建数据库
3、用SQL语句创建名为MyDB数据库
CREATEDATABASE[mydb]
ONPRIMARY
(NAME=N'mydb',
FILENAME=N'C:
\ProgramFiles\MicrosoftSServer\MSSQL\data\mydb.mdf',
SIZE=2048KB,
MAXSIZE=51200KB,
FILEGROWTH=10%)
LOGON
(NAME=N'mydb_log',
FILENAME=N'C:
\ProgramFiles\MicrosoftSQLServer\MSSQL\data\mydb_log.ldf',
SIZE=4096KB,
MAXSIZE=5120KB,
FILEGROWTH=2%)
COLLATEChinese_PRC_CI_AS
GO
EXECdbo.sp_dbcmptlevel@dbname=N'mydb',@new_cmptlevel=90
五、维护数据库
(1)使用向导工具创建数据库MyDB
(2)使用语句方式创建数据库MyDB
CREATEDATABASE[MyDB]ONPRIMARY
(NAME=N'MyDB_data',FILENAME=N'D:
\data\MyDB_data.mdf',SIZE=3072KB,MAXSIZE=10240KB,FILEGROWTH=1024KB)
LOGON
(NAME=N'MyDB_log',FILENAME=N'D:
\data\MyDB_log.ldf',SIZE=1024KB,MAXSIZE=2048GB,FILEGROWTH=10%)
COLLATEChinese_PRC_CI_AS
5、维护数据库
(1)使用ALTERDATABASE语句修改数据库名称为MyDB1
ALTERDATABASEMyDBMODIFYNAME=MyDB1
CREATEDATABASE[MyDB1]ONPRIMARY
(NAME=N'MyDB_data',FILENAME=N'D:
\data\MyDB_data.mdf',SIZE=3072KB,MAXSIZE=10240KB,FILEGROWTH=1024KB)
LOGON
(NAME=N'MyDB_log',FILENAME=N'D:
\data\MyDB_log.ldf',SIZE=1024KB,MAXSIZE=2048GB,FILEGROWTH=10%)
COLLATEChinese_PRC_CI_AS
(2)使用存储过程修改数据库名称
--首先将数据库设置为单用户模式--
'MyDB1','SINGLE',True
--修改数据库名--
EXECsp_renamedb'MyDB1','MyDB'
--取消单用户模式--
EXECsp_dboption'MyDB','SINGLE',False
(3)从资源管理器窗口修改数据库名名称
(4)修改数据库大小
alterdatabaseMyDB
addfile
(NAME=MyDB2,
FILENAME='D:
\data\MyDBdat.ndf',
SIZE=3MB,
MAXSIZE=10MB,
FILEGROWTH=10%
)
(5)收缩数据库
1.设置数据库为自动收缩
2.手动收缩数据库
3.使用DBCCSHRINKDATABASE命令收缩数据库
--将用户的数据库中的文件减小--
DBCCSHRINKDATABASE(MyDB,10);
(6)删除数据库
1.使用管理工具
2.使用T-SQL语句
--使用命令删除数据库—
DROPDATABASEMyDB;
(6)查看数据库MyDB状态
(7)分离数据库MyDB
--分离数据库—
execsp_detach_dbMyDB;
(8)附加数据库:
包括使用工具和SQL语句两种方式完成
使用SQL语句附加数据库MyDB到实例中;
CREATEDATABASEMyDB
ON(NAME='MyDB_dat',
FILENAME='D:
\data\MyDB_data.mdf')
LOGON
(NAME='MyDB1_log',
FILENAME='D:
\data\MyDB_data.ldf')
FORATTACH
六、实验体会和收获
本次实验我熟悉SQLServer2005的工作环境和各种管理工具,对数据库有了一个初步的了解;学会了如何使用数据库管理器来创建数据库,进行修改、删除数据库,查看数据库状态;掌握了分离数据库和附加数据库的使用。
因为是第一次实验,对于实验的软件还不是特熟悉,所以我在某些语句的使用上还不熟练,希望能在以后的实验中加强语句使用的熟练度练习,在课后多加练习,能够灵活运用SQL语句和窗口两种方式创建数据库对象