作者:empty 出版社:empty |
第一章 SQL SERVER2000数据库管理系统
1.1 SQL SERVER2000 的安装
1.1.1软硬件的要求
下表说明安装 Microsoft SQL Server 2000 或 SQL Server 客户端管理工具和库的硬件要求。
硬件最低要求
计算机Pentium 166 MHz 或更高。
内存 (RAM)至少 64 MB,建议 128 MB 或更多。根据笔者的经验,内存容量可以和数据容量保持1:1的比例,这样可以更好的发挥其效能。
硬盘空间需要约500MB的程序空间,以及预留500M的数据空间
显示器需要设置成800x600模式,才能使用其图形分析工具
下表说明为使用 Microsoft SQL Server 2000 各种版本或组件而必须安装的操作系统。
SQL Server 版本或组件操作系统要求
企业版Microsoft Windows NT Server 4.0、Microsoft Windows NT Server 4.0 企业版、Windows 2000 Server、Windows 2000 Advanced Server 和 Windows 2000 Data Center Server。(所有版本均需要安装IE5.0以上版本浏览器)
标准版Microsoft Windows NT Server 4.0、Windows 2000 Server、Microsoft Windows NT Server 企业版、Windows 2000 Advanced Server 和 Windows 2000 Data Center Server。
个人版Microsoft Windows Me、Windows 98、Windows NT Workstation 4.0、Windows 2000 Professional、Microsoft Windows NT Server 4.0、Windows 2000 Server 和所有更高级的 Windows 操作系统。
注:SQL Server 2000 的某些功能要求在Microsoft Windows 2000 Server以上的版本才能运行。因此大家安装Windows Server 2000(建议为Advanced版本),可以学习和使用到SQL Server 2000的更多功能,以及享受更好的性能。
1.1.2本地安装过程
先以管理员身份登录进win2000,将SQL SERVER2000的安装光盘插入光驱后,出现以下提示界面。请选择 安装 SQL Server 2000 组件 ,出现下一个页面后,选择 安装数据库服务器 。
选择 下一步 ,然后选择 本地计算机 进行安装。
在 安装选择 窗口,选择 创建新的SQL Server实例... 。对于初次安装的用户,应该选用这一安装模式,不需要使用 高级选项 进行安装。 高级选项 中的内容均可在安装完成后进行调整。
在 用户信息 窗口,输入用户信息,并接受软件许可证协议。
在 安装定义 窗口,选择 服务器和客户端工具 选项进行安装。我们需要将服务器和客户端同时安装,这样在同一台机器上,我们可以完成相关的所有操作。如果你已经在局域网的其它机器上安装了SQL Server的服务器版,则可以只安装客户端工具,用于对其它机器上SQL Server的存取。
在 实例名 窗口,选择 默认 的实例名称。这时本SQL Server的名称将和Windows 2000服务器的名称相同。SQL Server 2000可以在同一台服务器上安装多个实例,也就是你可以重复安装几次。这时您就需要选择不同的实例名称了。建议将实例名限制在 10 个字符之内。实例名会出现在各种 SQL Server 和系统工具的用户界面中,因此,名称越短越容易读取。另外,实例名称不能是 Default 或 MSSQLServer 以及SQL Server的保留关键字等。
在 安装类型 窗口,选择 典型 安装选项,并指定 目的文件夹 。程序和数据文件的默认安装位置都是 系统盘: Program Files Microsoft SQL Server 。注意,如果您的数据库数据有10万条以上的话,请预留至少1G的存储空间,以应付需求庞大的日志空间和索引空间。
在 服务账号 窗口,请选择 对每个服务使用统一账户... 的选项。在 服务设置 处,选择 使用本地系统账户 。如果需要 使用域用户账户 的话,请将该用户添加至Windows Server的本机管理员组中。
在 身份验证模式 窗口,请选择 混合模式... 选项,并设置SQL SERVER管理员 sa 账号的密码。如果您初次接触使用Sql Server2000的话,可以将该密码设置为空,以方便登录。熟练以后再设置sa的密码,设置的密码请不要忘记,因为基于SQL SERVER2000各种应用系统在安装或使用过程中往往需要sa的密码。
在 选择许可模式 窗口,根据您购买的SQL SERVER2000软件的类型和数量输入。 每客户 表示同一时间最多允许的连接数, 处理器许可证 表示该服务器最多能安装多少个CPU。例如可选择“每服务器1个处理器”。
然后就是约10分钟左右的安装时间,安装完毕。并且WINDOWS中将新增“Microsoft SQL Server”的程序组,包含多个相关的实用工具程序。
重新启动电脑后 Microsoft SQL Server 就能正常工作了。
注意事项:
成功安装 了Microsoft SQL Server,则在Sql Server正常启动后,计算机桌面右下角出现的SQL Server服务监视图标显示为一个带绿色三角的服务启动标记 。
若该绿色图标变成了红色的方块,则表明SQL Server已停止了服务,可通过“SQL Server服务管理器”程序来启动SQL Server
双击该图标,将出现以下的“SQL Server服务管理器”程序,可通过该程序停止、启动SQL Server的后台服务。
标按鼠标右键,在弹出的菜单中再选择“退出”。
1.1.3升级到SQL SERVER2000
可以从早期版本升级到 Microsoft® SQL Server™ 2000,也可以在安装 SQL Server 2000 后立即执行升级操作。从 SQL Server 6.5 版升级到 SQL Server 2000 和从 SQL Server 7.0 版升级到 SQL Server 2000 的操作不同。SQL Server 6.5 数据库(及相关信息)转换成 SQL Server 2000 格式。SQL Server 7.0 的安装则被 SQL Server 2000 重写,除非安装命名实例配置,这种情况下 SQL Server 7.0 可以保持原样。
初始安装 SQL Server 2000 之后,便有其它可用的升级选项。如果使用多个 SQL Server 2000 实例,则可以通过添加组件升级某个实例,并且多个实例的组件集各不相同。
升级SQL SERVER6.5的注意事项
为方便SQL SERVER 6.5版本的用户安全、不丢失数据地完成这一数据库升级转换过程,SQL SERVER2000提供了升级向导。使用升级向导可以转换一个或者所有的系统数据、用户数据、数据库对象,甚至可以把复制设置等数据库的任务和配置都进行升级。
在升级SQL SERVER6.5时必须注意以下几个地方:
1、在升级前,必须在计算机上已经安装有SQL SERVER 2000的默认实例。
2、在升级前备份所有的数据库,包括MASTER。
3、运行DBCC以确保原来的SQL SERVER6.5数据保持所有数据的一致性。
4、估计一下升级数据的磁盘空间大小。
5、确保MASTER数据库有至少3M的空间。
6、设置SQL SERVER 6.5的TEMPDB数据库空间至少为10M,推荐空间是25M。
7、关闭所有SQL SERVER 6.5启动时运行的存储过程。
8、关闭SQL SERVER 6.5的复制服务。
9、关闭所有的服务和相差性SQL SERVER运行的服务。
10、确保存在有交叉数据相差性的数据库 都得到升级。
11、确保存在的数据库用户在MASTER数据库上都有相应的注册信息。
12、把MASTER数据库中原来引用的SQL SERVER 6.5服务器名更改为SQL SERVER 2000。
13、当运行升级程序后,升级向导不会把SQL SERVER 6.5从计算机上删除,用户依然可以照常使用原来的SQL SERVER 6.5。
升级SQL SERVER 6.5 的注意事项
可以通过安装 SQL Server 2000 的默认实例重写现有的 SQL Server 7.0 安装。也可以通过安装 SQL Server 2000 的命名实例使 SQL Server 7.0 安装保持原样。这两种操作都通过下列步骤执行。
1.将要升级到的版本的 Microsoft SQL Server 2000 光盘插入光盘驱动器。如果该光盘不自动运行,请双击该光盘根目录中的 Autorun.exe 文件。
说明 如果购买的 SQL Server 版本所具有的功能比当前的 SQL Server 7.0 安装多,则升级过程将同时执行版次和功能版本的升级。
2.选择 SQL Server 2000 组件 ,选择 安装数据库服务器 ,安装程序于是准备 SQL Server 安装向导。在 欢迎 屏幕中单击 下一步 按钮。
3.在 计算机名 对话框中, 本地计算机 是默认选项,本地计算机名显示在编辑框中。单击 下一步 按钮。
4.在 安装选项 对话框中,单击 升级、删除或将组件添加到 SQL Server 现有实例中 ,然后单击 下一步 按钮。
5.在 实例名称 对话框中, 默认 是被选定的。单击 下一步 按钮。
说明 在升级时,SQL Server 7.0 会自动变为 SQL Server 2000 的默认实例。
6.在 现有安装 对话框中,单击 升级现有安装 选项,然后单击 下一步 按钮。
7.在 升级 对话框中,会得到是否希望继续进行所请求的升级的提示。单击 是,升级我的 针对升级的文本> 开始升级过程,然后单击 下一步 按钮。升级进程一直运行直到结束。
8.在 连接到服务器 对话框中选择身份验证模式,然后单击 下一步 按钮。
如果不确定采用哪种模式,请接受默认值: 我登录到计算机上所使用的 Windows 帐户信息 (Windows) 。
9.在 开始复制文件 对话框中单击 下一步 按钮。
10.在 安装完成 对话框中,单击 是,我想现在重新启动计算机 选项,然后单击 完成 按钮。
1.1.4企业管理器介绍
从“开始”菜单上的程序组的“Microsoft SQL Server ”中选择“企业管理器”命令,打开“企业管理器”。
在“控制台根目录”下,有着我们要管理的SQL Server 服务器,顺着它逐级展开,展开每一个节点时,右边的主界面中都会显示这个节点的内容。我们可以一直看到我们的SQL Server 数据库连接甚至更多。
再来看一下菜单,选中“SQL Server 服务器”,查看一下“操作”菜单上的内容;再看一下“SQL Server 服务器”的右键菜单,会发现它们完全一样。我们再选中“数据库”这个节点,查看一下右键菜单和“操作”菜单的子菜单,它们还是完全一样。这说明,“控制台”中的菜单,它们的内容不是一成不变的,而是由“控制台”所管理的内容来决定的。
再来看一下“查看”菜单,它包含有“大图标”、“小图标”、“列表”、“详细信息”几个选项,我们可以通过它来设定界面中的内容以什么方式来显示。下面的“自定义”命令可以打开“自定义视图”对话框,我们可以通过这个对话框来更改选项以显示或者隐藏MMC中的项目,例如“控制台树”或者“标准工具栏”等。
“工具”菜单里面的内容是SQL Server 所特有的,单独的“控制台”不会有这项功能,它里面的内容全部是针对“SQL Server 企业管理器”的。我们可以通过它来调度作业、打开“SQL 查询分析器”、备份和还原数据库以及管理SQL Server 消息等。而且,“SQL Server 企业管理器”自带了许多向导,我们也可以在这里启动这些向导(事实上我们绝大多数情况下是通过这里启动这些向导)。
虽然“SQL Server 企业管理器”本身带有很多的工具,然而,我们还是可以通过“工具”菜单上的“外部工具”命令来增加其它的工具。我们不妨来演示一下增加一个记事本到这个企业管理器中的过程。
点击“工具”菜单下的“外部工具”命令,打开“外部工具”对话框。如图1。
图1
在“外部工具”中,我们可以看到“当前工具”列表中没有任何项目,也就是我们没有将任何外部工具添加到“企业管理器”中。点击右侧的“添加”按钮,打开“添加外部工具”对话框。
在“添加外部工具”对话框中,点击“浏览”按钮,浏览到“记事本”所在的文件夹,选中“NOTEPAD.EXE”后,点击“打开”按钮,回到“添加外部工具”对话框中,我们可以看到,在“命令”文本框中,已经包含了“记事本”程序运行的路径和文件名了。如图2。
图2
下面的运行参数我们可以不输入,这里面的内容和一般程序的运行参数一样,这里限于篇幅,就不再赘述了。
点击“确定”按钮之后,就回到了“外部工具”对话框中了,我们可以看到,在“外部工具”对话框中,“当前工具”列表里面已经多了一项名为“NOTEPAD”的项目了。
当然“NOTEPAD”这个名称显示在菜单上不是很协调,毕竟其它的项目都是中文的,我们何不将它改为“记事本”呢?选中这个项目之后,下面的“菜单文本”正好是我们要修改的地方。选中里面的内容,将它更改成“记事本”,最后别忘了点击一下“更改”按钮,以使我们所作的修改生效,再点击“关闭”按钮回到“企业管理器”中。
查看一下我们刚才工作的成果。点击“工具”菜单,看看最下方,真的多了一项名为“记事本”的项目了。如图3
图3
点击一下这个项目,记事本就打开了。显而易见,这几项操作是非常简单的,如果你愿意,还可以将“计算器”、“画图”或者“磁盘清理”这些功能都加到“企业管理器”中。
下面,我们先来看一下菜单下面的内容:工具栏。如图4
图4
工具栏中的前两个按钮是“向后”和“向前”,这和“IE浏览器”的功能是一样的,它能在我们看过的视图之间切换。
而“向上”这个按钮,则是转到当前节点的父节点上去,以查看它的上一级节点的内容。
在“向上”按钮的右侧的按钮是一个“复选”式按钮,它的功能是决定是否显示“企业管理器”左侧的节点树。当它被按下时,左边的节点树就会显示,反之,它没有被按下时,左边的节点树就会隐藏。
如同菜单一样,企业管理器的“工具栏”里面的按钮也会根据不同的情形决定是否要显示,也会根据不同的情况决定是否可用。
另外,工具栏也会根据不同的对象,决定此时的这个按钮应该具有什么功能。就拿“属性”按钮来说,当我们选中一个SQL Server 服务器时,点击这个“属性”按钮就会打开这个“SQL Server 服务器”的“属性”对话框,而当我们选中一个数据库时,再点击“属性”按钮就可以打开这个数据库的“属性”对话框;
“属性”按钮右边的“刷新”按钮不用多介绍,因为它的作用就是刷新当前视图,我们直接看看“刷新”按钮右边的“导出列表”功能。
为了更好地展示这个功能,我们切换到服务器的“安全性”节点下的“登录”列表中,如图5。
图5
看到右边的列表,如果我们可以将它以这样的格式保存到文本中,兴许以后会用得着,“导出列表”就是完成这个功能的。
点击一下“导出列表”按钮,系统会打开一个名为“导出列表”的对话框,要求我们指定要将文件保存放在何处,以及要导出的文件的名称。
假定我们就要导出到桌面,浏览到桌面后,输入一个名称后,点击“保存”按钮,导出就成功完成了。
我们来查看一下导出结果,用我们刚才在“工具”菜单中增加的外部工具“记事本”来打开我们导出的文件是个不错的办法。点击“工具”菜单下的“记事本”,打开记事本。
用记事本打开我们刚才导出的那个文件,我们来查看一下这个文件的内容,我们可以看到,它和我们的登录列表中的内容是一样的。
“导出列表”功能右边的按钮很明显是联机帮助文档,如果我们在使用企业管理器的过程中遇到什么不清楚的问题,绝大多数可以从这里获得答案。当然我们也可以依照里面的说明来管理SQL Server 数据库。
“联机丛书”按钮右侧是一个“新建”按钮。同前面讲到的“属性”按钮一样,它也是针对不同的当前节点有着不同的意义,当我们选中“数据库” 节点时,点击“新建”按钮,它就会认为我们想“新建数据库”;而当我们选中数据库中的一个表时,再点击“新建”按钮,它就会认为我们想在当前数据库中建立一个新的数据表。
后面的按钮依次是“向导”按钮,我们点击了它就相当于点击了“工具”菜单上的“向导”命令;“添加新服务器”按钮,我们可以用它来将新的SQL Server 数据库服务器添加到企业管理器中;“新数据库”按钮,用来建立新的数据库;“新登录”按钮,用来在当前服务器中建立一个新的登录;还有“新作业”按钮,用来建立一个新的“作业”到当前服务器中。
讲完了企业管理器上方的菜单和工具栏,也讲了左边的节点树和每个节点上面的右键菜单,该是讲一讲右边的区域里面的内容的时候了,其实右边区域里面的内容是非常好理解的,在右侧的空白区域上点击右键,就相当于在当前节点上点击鼠标右键,它们的快捷菜单上的内容是一样的。针对不同的当前节点,快捷菜单的内容当然也会不一样。
1.2 SQL SERVER的系统组成
1.2.1 SQL SERVER2000的系统数据库
SQL SERVER2000在安装过程中,创建了4个系统数据库,这4个系统数据库是运行SQL SERVER 的基础,建立在这4个系统数据库中的表格定义了运行和使用SQL SERVER的规则。
这4个数据库分别是master,model,tempdb,msdb。
•master 数据库
master 数据库记录 SQL Server 系统的所有系统级别信息。它记录所有的登录帐户和系统配置设置。master 数据库是这样一个数据库,它记录所有其它的数据库,其中包括数据库文件的位置。master 数据库记录 SQL Server 的初始化信息,它始终有一个可用的最新 master 数据库备份。
•tempdb 数据库
tempdb 数据库保存所有的临时表和临时存储过程。它还满足任何其它的临时存储要求,例如存储 SQL Server 生成的工作表。tempdb 数据库是全局资源,所有连接到系统的用户的临时表和存储过程都存储在该数据库中。tempdb 数据库在 SQL Server 每次启动时都重新创建,因此该数据库在系统启动时总是干净的。临时表和存储过程在连接断开时自动除去,而且当系统关闭后将没有任何连接处于活动状态,因此 tempdb 数据库中没有任何内容会从 SQL Server 的一个会话保存到另一个会话。
默认情况下,在 SQL Server 在运行时 tempdb 数据库会根据需要自动增长。不过,与其它数据库不同,每次启动数据库引擎时,它会重置为其初始大小。如果为 tempdb 数据库定义的大小较小,则每次重新启动 SQL Server时,将tempdb 数据库的大小自动增加到支持工作负荷所需的大小这一工作可能会成为系统处理负荷的一部分。为避免这种开销,可以使用 ALTER DATABASE 增加 tempdb 数据库的大小。
•model 数据库
model 数据库用作在系统上创建的所有数据库的模板。当发出 CREATE DATABASE 语句时,新数据库的第一部分通过复制 model 数据库中的内容创建,剩余部分由空页填充。由于 SQL Server 每次启动时都要创建 tempdb 数据库,model 数据库必须一直存在于 SQL Server 系统中。
•msdb 数据库
msdb 数据库供 SQL Server 代理程序调度警报和作业以及记录操作员时使用。
在 SQL Server 2000 和 SQL Server 7.0 版中,包括系统数据库在内的每个数据库都有自己的文件集,而且不与其它数据库共享这些文件。
数据库文件物理文件名
master 主数据Master.mdf
master 日志Mastlog.ldf
tempdb 主数据Tempdb.mdf
tempdb 日志Templog.ldf
model 主数据Model.mdf
model 日志Modellog.ldf
msdb 主数据Msdbdata.mdf
msdb 日志Msdblog.ldf
1.2.2 SQL SERVER2000的系统表
SQL SERVER2000用系统表记录所有服务器活动的信息。系统表中的信息组成了SQL SERVER系统利用的数据字典。
注意:
任何用户都不应直接修改系统表。例如,不要尝试使用 DELETE、UPDATE、INSERT 语句或用户定义的触发器修改系统表。
允许在系统表中引用编制的列。然而,系统表中的许多列都未被编制。不应编写应用程序直接查询未编制的列。相反,应用程序应使用以下任何组件检索系统表中存储的信息:
•信息架构视图
•系统存储过程
•Transact-SQL 语句和函数
•SQL-DMO
•数据库应用程序接口 (API) 目录函数
这些组件构成一个已发布的 API,用以从 SQL Server 获取系统信息。Microsoft 维护这些组件在不同版本间的兼容性。系统表的格式取决于 SQL Server 的内部构架,并且可能因不同的版本而异。因此,直接访问系统表中未编制列的应用程序可能需要做些更改后才能访问 SQL Server 的后继版本。
在SQL SERVER中系统表有:
仅在 master 数据库中的系统表
这些表存储服务器级系统信息。
每个数据库中的系统表
这些表为每个数据库存储数据库级系统信息。
msdb 数据库中的 SQL Server 代理程序表
这些表存储 SQL Server 代理程序使用的信息。
msdb 数据库中的表
这些表存储数据库备份和还原操作使用的信息。
用于存储复制信息的表
本节只是对系统表进行简单的介绍。要想了解SQL SERVER所有系统表的详细信息,请参阅SQL SERVER2000的联机图书。
1.2.3 SQL SERVER2000的系统存储过程
SQL SERVER 2000 提供了大量的系统存储过程进行系统表的检索和修改。系统存储过程是预先经过编译的SQL语句集合。使用系统存储过程可以方便地查看有关数据库和数据库对象的信息。
SQL SERVER的系统存储过程都记录在master数据库中,归系统管理员SA所有,所有系统存储过程名称都以sp-开始。
一个简单的调用系统存储过程的例子:
查找pubs数据库中所有用户定义表格的名称,用两种方法实现:
1.使用Transact-SQL语句:
Use pubs
Go
Select name from sysobjects
Where type='U'
Go
查询结果如下:
Name
-----------------
titleauthor
stores
sales
roysched
discounts
jobs
pub_info
employee
dtproperties
authors
publishers
titles
2. 使用系统存储过程:
Use pubs
Go
EXEC sp_tables @table_type= 'table'
使用系统存储过程所返回的结果也许包含了许多用户不需要的数据,在这种情况下,用户应该使用Transact-SQL语句以实现需要的查询功能。
1.2.4 SQL SERVER2000的示例数据库
SQL SERVER为了帮助用户尽快掌握SQL SERVER的使用方法,提供了两个示例数据库,分别是pubs 数据库和Northwind数据库。
pubs 示例数据库以一个图书出版公司为模型,用于演示 Microsoft® SQL Server™ 数据库中可用的许多选项。该数据库及其中的表经常在文档内容所介绍的示例中使用。
Northwind Traders 示例数据库包含一个名为 Northwind Traders 的虚构公司的销售数据,该公司从事世界各地的特产食品进出口贸易。
1.3 SQL SERVER服务器管理与使用
1.3.1 SQL SERVER2000的启动和关闭
登录到 Microsoft® SQL Server® 实例前,需要知道如何启动、暂停和停止 SQL Server 实例。登录成功之后,便可执行各种任务,如管理服务器或查询数据库。
使用 SQL Server 服务
启动 SQL Server 实例时即启动了 SQL Server 服务。启动 SQL Server 服务之后,用户便可与服务器建立新连接。SQL Server 服务可在本地或远程作为 Microsoft Windows NT® 4.0 或 Windows® 2000 服务启动和停止。SQL Server 服务若是默认实例,则被称为 MSSQLServer。
使用 SQL Server 服务管理器
如果运行的是 Microsoft Windows 98,则 SQL Server 服务管理器可用于启动、暂停、停止和检查本地服务的状态,但不能远程管理服务。
如果必须重新启动计算机,SQL Server 服务管理器将自动出现并显示默认服务。可通过 SQL Server 服务管理器更改本地计算机上的默认服务。当重新启动计算机时,默认服务即显示在 SQL Server 服务管理器中。例如,如果将默认服务更改为 SQL Server 代理服务,然后关闭计算机,则下次启动时 SQL Server 代理服务将显示在 SQL Server 服务管理器中。
1.3.2 SQL SERVER2000的服务器组
在一个网络系统中,可能有多个SQL Server服务器,可以对这些SQL Server服务器进行分组管理。分组的原则往往是依据组织结构原则。SQL Server分组管理由企业管理器(Enterprise Manager)来进行。首次启动企业管理器时,有一个名字叫“SQL Server 组”的默认服务器组自动被创建,但用户可以创建新的SQL Server组,在企业管理器菜单中单击操作(Action)菜单或者用右键单击SQL Servers组,选择新建SQL Server 组菜单项,如图所示。
接着出现服务器组对话框,如图所示,输入组的名称并选择组的级别,单击确定即可。
1.3.3 SQL SERVER2000的连接与注册
一.SQL SERVER2000的连接
在SQL Server 企业管理器的SQL Server组中用左键单击所要连接的服务器,或者用右键单击所要连接的服务器,从快捷菜单中选择“连接”选项,即可连接。如果在注册服务器时选择了在连接时提示输入SQL Server 帐户信息选项(如图所示),此时则会提示输入这些信息,如图所示。
连接SQL Server时的输入登录名和口令窗口
二.SQL SERVER2000的注册
所谓服务器注册是指将网络系统中的其它SQL Server服务器注册到企业管理器中,以便于管理。
注册过程
1. 在企业管理器中,从操作(Action)菜单中选择新建SQL Server注册,或从工具菜单中选择注册服务器向导选项,或从工具栏中选择相应图标,就会出现如图所示的注册SQL Server向导对话框。
如果在对话框中选择“我希望今后在执行该任务时不使用向导”复选框,按“下一步”按钮就会转换到服务器注册属性对话框,如图所示。
注册服务器向导对话框
服务器注册属性对话框
2. 在注册服务器向导对话框中不选择复选框,单击“下一步”按钮,就会出现选择或创建服务器名称对话框,如图所示。
选择或创建服务器名称
3.单击“下一步”按钮,出现选择身份验证模式对话框,即选择Windows NT身份验证或SQL Server身份验证。Windows NT身份验证可以使用户只需维护、使用一个Windows NT登录帐户和口令,而使用SQL Server身份验证,则必须维护Windows NT登录帐户和SQL Server登录帐户及口令。如图所示。
选择身份验证模式
输入SQL Server登录名和口令
4. 单击“下一步”按钮,就会出现选择服务器组或创建服务器组对话框,如图3-8所示
选择服务器组或创建服务器组
5. 服务器组确定后,单击“下一步”按钮,就会出现确定注册对话框,单击“完成”按钮,则企业管理器将注册服务器,如下图3-9所示。
6. 接着出现注册SQL Server消息对话框,注册成功后,按“关闭”按钮结束设置。
注册SQL Server消息
1.4查询分析器使用方法
SQL 查询分析器是 Microsoft® Win32® 应用程序,是一种特别用于交互式执行 Transact-SQL 语句和脚本的极好工具。若要使用 SQL 查询分析器,用户必须了解 Transact-SQL。
在 SQL 查询分析器中,用户可在全文窗口中输入 Transact-SQL 语句,执行语句并在结果窗口中查看结果。用户也可以打开包含 Transact-SQL 语句的文本文件,执行语句并在结果窗口中查看结果。
SQL 查询分析器还提供工具以确定 Microsoft SQL Server 是如何解释并处理 Transact-SQL 语句的。用户可以:
•显示语句所生成的执行计划的图形表示。
•启动索引优化向导确定可为基础表定义哪些索引,以优化语句的性能。
显示有关语句性能的统计信息。
习题:
1.安装 Microsoft SQL Server 2000 或 SQL Server 客户端管理工具和库的硬件要求中队CPU和内存的最低要求是什么?
2.QL SERVER2000在安装过程中,创建了4个系统数据库,它们是哪4个,请写出它们的名称?
3.SQL SERVER为了帮助用户尽快掌握SQL SERVER的使用方法,提供了两个示例数据库,分别是哪两个数据库?
实验一SQL SERVER2000的安装及初步使用
1.1.安装SQLSERVER2000
先以管理员身份登录进win2000,将SQL SERVER2000的安装光盘插入光驱后,出现以下提示界面。请选择 安装 SQL Server 2000 组件 ,出现下一个页面后,选择 安装数据库服务器 。
选择 下一步 ,然后选择 本地计算机 进行安装。
在 安装选择 窗口,选择 创建新的SQL Server实例... 。对于初次安装的用户,应该选用这一安装模式,不需要使用 高级选项 进行安装。 高级选项 中的内容均可在安装完成后进行调整。
在 用户信息 窗口,输入用户信息,并接受软件许可证协议。
在 安装定义 窗口,选择 服务器和客户端工具 选项进行安装。我们需要将服务器和客户端同时安装,这样在同一台机器上,我们可以完成相关的所有操作。如果你已经在局域网的其它机器上安装了SQL Server的服务器版,则可以只安装客户端工具,用于对其它机器上SQL Server的存取。
在 实例名 窗口,选择 默认 的实例名称。这时本SQL Server的名称将和Windows 2000服务器的名称相同。SQL Server 2000可以在同一台服务器上安装多个实例,也就是你可以重复安装几次。这时您就需要选择不同的实例名称了。建议将实例名限制在 10 个字符之内。实例名会出现在各种 SQL Server 和系统工具的用户界面中,因此,名称越短越容易读取。另外,实例名称不能是 Default 或 MSSQLServer 以及SQL Server的保留关键字等。
在 安装类型 窗口,选择 典型 安装选项,并指定 目的文件夹 。程序和数据文件的默认安装位置都是 系统盘: Program Files Microsoft SQL Server 。注意,如果您的数据库数据有10万条以上的话,请预留至少1G的存储空间,以应付需求庞大的日志空间和索引空间。
在 服务账号 窗口,请选择 对每个服务使用统一账户... 的选项。在 服务设置 处,选择 使用本地系统账户 。如果需要 使用域用户账户 的话,请将该用户添加至Windows Server的本机管理员组中。
在 身份验证模式 窗口,请选择 混合模式... 选项,并设置SQL SERVER管理员 sa 账号的密码。如果您初次接触使用Sql Server2000的话,可以将该密码设置为空,以方便登录。熟练以后再设置sa的密码,设置的密码请不要忘记,因为基于SQL SERVER2000各种应用系统在安装或使用过程中往往需要sa的密码。
在 选择许可模式 窗口,根据您购买的SQL SERVER2000软件的类型和数量输入。 每客户 表示同一时间最多允许的连接数, 处理器许可证 表示该服务器最多能安装多少个CPU。例如可选择“每服务器1个处理器”。
然后就是约10分钟左右的安装时间,安装完毕后,出现以下界面。并且WINDOWS中将新增“Microsoft SQL Server”的程序组,包含多个相关的实用工具程序。
重新启动电脑后 Microsoft SQL Server 就能正常工作了。
1.2.启动SQLSERVER2000服务
自动启动 SQL Server
1.右击一个服务器,再单击 属性 。
2.单击 常规 选项卡。
3.在 在操作系统启动时自动启动策略 下选择 自动启动 SQL Server 复选框。
或:
使用SQL SERVER服务管理器设置:
选择:“ 当启动OS时自动启动服务(A)”
1.3.使用企业管理器
1.从“开始”菜单选择“所有程序”“Mcrosoft SQL Server”“企业管理器”
2.企业管理器的界面:
1.4.使用SQLSERVER2000的联机帮助
1.从“开始”菜单选择“所有程序”“Mcrosoft SQL Server”“联机丛书”
2.查看联机丛书
目录:
索引:
搜索:
查看具体信息:
第二章 创建和维护数据库
在 Microsoft® SQL Server™ 2000 中,数据库由包含数据的表集合和其它对象(如视图、索引、存储过程和触发器)组成,目的是为执行与数据有关的活动提供支持。存储在数据库中的数据通常与特定的主题或过程(如生产仓库的库存信息)相关。
SQL Server 能够支持许多数据库。每个数据库可以存储来自其它数据库的相关或不相关数据。例如,服务器可以有一个数据库存储职员数据,另一个数据库存储与产品相关的数据。另一种方案是,一个数据库可以存储当前客户的订单数据,而另一个相关的数据库可以存储用于年度报告的历史客户订单。
在创建数据库之前,理解数据库的各组成部分及其设计方法,以确保实现数据库后,数据库能很好地运行是很重要的。
强烈建议不要在 master 数据库中创建任何用户对象(如表、视图、存储过程或触发器)。master 数据库包含系统表,这些系统表存储 SQL Server 所用的系统信息(如配置选项设置)。
2.1 数据库个组成部分
2.1.1文件和文件组
Microsoft® SQL Server™ 2000 使用一组操作系统文件映射数据库。数据库中的所有数据和对象(如表、存储过程、触发器和视图)都存储在下列操作系统文件中:
•主要
该文件包含数据库的启动信息,并用于存储数据。每个数据库都有一个主要数据文件。
•次要
这些文件含有不能置于主要数据文件中的所有数据。如果主文件可以包含数据库中的所有数据,那么数据库就不需要次要数据文件。有些数据库可能足够大故需要多个次要数据文件,或使用位于不同磁盘驱动器上的辅助文件将数据扩展到多个磁盘。
•事务日志
这些文件包含用于恢复数据库的日志信息。每个数据库都必须至少有一个日志文件。
例如,创建简单的数据库 sales 时,可以只使用一个包含所有数据和对象的主文件和一个包含事务日志信息的日志文件。另一种情况是,创建更复杂的数据库 orders 时,可以使用一个主文件和五个辅助文件,数据库内的数据和对象扩展到所有的六个文件中,另外有四个日志文件包含事务日志信息。
文件组允许对文件进行分组,以便于管理和数据的分配/放置。例如,可以分别在三个硬盘驱动器上创建三个文件(Data1.ndf、Data2.ndf 和 Data3.ndf),并将这三个文件指派到文件组 fgroup1 中。然后,可以明确地在文件组 fgroup1 上创建一个表。对表中数据的查询将分散到三个磁盘上,因而性能得以提高。在 RAID(独立磁盘冗余阵列)条带集上创建单个文件也可以获得相同的性能改善。然而,文件和文件组使您得以在新磁盘上轻易地添加新文件。另外,如果数据库超过单个 Microsoft Windows NT® 文件的最大大小,则可以使用次要数据文件允许数据库继续增长。
默认文件组
数据库由一个主文件组和任意用户定义的文件组组成。
包含主文件的文件组为主文件组。在创建数据库时,主文件组包含主要数据文件和任何其它未放入另一个文件组中的文件。所有系统表都分配在主文件组中。如果主文件组空间耗尽,那么将不能向系统表添加新目录信息。只要在下列情况下,主文件组才会填满:关闭了自动增长选项,或者含有主文件组中文件的所有磁盘空间耗尽。如果发生这种情况,要么重新打开自动增长,要么将其它文件从磁盘上移走以释放更多的空间。
用户定义的文件组是指在首次创建或以后更改数据库时,用户明确创建的任何文件组。如果用户定义的文件组填满,那么只有明确地分配到该文件组的用户表会受到影响。
在任何时候,有且仅有一个文件组被指定为 DEFAULT 文件组。创建数据库中的对象时,如果没有指定其所属的文件组,那么就将这些对象指派到默认文件组。默认文件组必须足够大,以容纳未分配到用户定义文件组中的所有对象。在初始情况下,主文件组是默认文件组。
可用 ALTER DATABASE 语句更改默认文件组。通过更改默认文件组,创建时没有指定文件组的任何对象都被分配到新默认文件组中的数据文件。然而,系统对象和表仍然保留在 PRIMARY 文件组内,而不是新默认文件组。
更改默认文件组可防止未明确地在用户定义文件组上创建的用户对象与系统对象和表争夺数据空间。
使用文件和文件组
文件组对组内的所有文件都使用按比例填充策略。当将数据写入文件组时,Microsoft® SQL Server™ 2000 根据文件中的可用空间量将一定比例的数据写入文件组的每个文件,而不是将所有的数据先写满第一个文件,接着再写入下一个文件。例如,如果文件 f1 有 100 兆字节 (MB) 可用空间,文件 f2 有 200 MB 可用空间,则从文件 f1 中分配一个扩展盘区,从文件 f2 中分配两个扩展盘区,依此类推。这样,两个文件几乎同时填满,并且可获得简单的条带化。
一旦文件组内的所有文件已满,SQL Server 就自动地采用循环方式一次扩展一个文件,以容纳更多的数据(假定数据库设置为自动增长)。例如,某个文件组由三个文件组成,它们都设置为自动增长。当文件组中的所有文件的空间用完时,只扩展第一个文件。当第一个文件已满,不能将更多的数据写入该文件组时,扩展第二个文件。当第二个文件已满,不能将更多的数据写入该文件组时,扩展第三个文件。如果第三个文件已满,不能将更多的数据写入该文件组,那么再次扩展第一个文件,依此类推。
使用文件和文件组时,通过允许跨多个磁盘、多个磁盘控制器或 RAID(独立磁盘冗余阵列)系统创建数据库,可提高数据库性能。例如,如果计算机中有四个磁盘,那么可以创建一个由三个数据文件和一个日志文件组成的数据库,每个磁盘上放置一个文件。在对数据进行访问时,四个读/写磁头可以同时并行地访问数据,从而加速数据库操作。
另外,文件和文件组允许数据布局,因为可以在特定的文件组中创建表。因为特定表的所有输入/输出都可以定向到特定的磁盘,所以性能得以改善。例如,可以将最常用的表放在一个文件组中的一个文件中,该文件组位于一个磁盘上;而将数据库中其它的不常访问的表放在另一个文件组中的其它文件中,该文件组位于第二个磁盘上。
这些是对于文件和文件组的一些一般性建议:
•大多数数据库在只有单个数据文件和单个事务日志文件的情况下可以很好地运行。
•如果使用多个文件,请为附加文件创建第二个文件组,并将其设置为默认文件组。这样,主文件将仅包含系统表和对象。
•若要获得最佳性能,请在尽可能多的可用本地物理磁盘上创建文件或文件组,并将争夺空间最激烈的对象置于不同的文件组中。
•使用文件组以允许将对象放置在特定的物理磁盘上。
•将在同一联接查询中使用的不同表置于不同的文件组中。由于采用并行磁盘输入/输出对联接数据进行搜索,所以性能将得以改善。
•将最常访问的表和属于这些表的非聚集索引置于不同的文件组上。如果文件位于不同的物理磁盘上,由于采用并行输入/输出,所以性能得以提高。
•不要将事务日志文件与其它文件和文件组置于同一物理磁盘上。
使用文件和文件组管理数据库增长
在使用文件和文件组创建数据库时,必须指定文件的初始大小。Microsoft® SQL Server™ 2000 根据用户提供的大小创建数据文件。随着数据不断地添加到数据库,这些文件将逐渐变满。然而,如果被添加到数据库中的数据多于文件的容量,就需要考虑数据库增长以超过所分配初始空间的条件及方法。
默认情况下,SQL Server 允许数据文件根据需要尽可能地增长,直到磁盘空间用完为止。因此,如果数据库文件不允许增长到大于创建时的初始值,就必须使用 SQL Server 企业管理器或 CREATE DATABASE 语句在创建数据库时指定。
另外,SQL Server 允许创建在数据填满时自动增长的数据文件,但仅能增长到预定义的最大值。这可以防止完全耗尽磁盘驱动器的空间。
建议
在创建数据库时,请根据数据库中预期的最大数据量,创建尽可能大的数据文件。允许数据文件自动增长,但要有一定的限度,为此需指定数据文件增长的最大值,以便在硬盘上留出一些可用空间。这样,当添加的数据多于预期值时允许数据库增长,但不会填满磁盘驱动器。如果超过了数据文件初始值,而且文件开始自动增长,那么请重新评估预期的数据库最大值,并通过在必要时添加更多的磁盘空间、在数据库中创建并添加更多的文件或文件组的方法,作出相应的计划。
然而,如果假定不使数据库增长到超过其初始值,请将数据库增长的最大值设置为零。这将防止数据库文件增长。如果数据库文件已填满数据,那么只有为数据库添加更多的数据文件或扩展现有的文件后,才能添加更多的数据。
文件碎片
如果大量的文件共享同一磁盘,允许文件自动增长可能会使这些文件产生碎片。因此,建议在尽可能多的不同可用本地物理磁盘上创建文件或文件组。将争夺空间最激烈的对象置于不同的文件组中。
只读文件组
Microsoft® SQL Server™ 2000 允许将文件组标记为只读。任何现有的文件组(主文件组除外)都可以标记为只读。不能使用任何方式对标记为只读的文件组进行修改。
将不允许修改的表(如历史数据)置于一些文件组上,然后将这些文件组标记为只读。这会防止意外的更新。这样一来,可以对只读文件组进行备份,并在其它运行 SQL Server 的服务器上还原,而不用考虑恢复事务日志。
2.1.2事务日志
在 Microsoft® SQL Server™ 2000 中,数据库必须至少包含一个数据文件和一个事务日志文件。数据和事务日志信息从不混合在同一文件中,并且每个文件只能由一个数据库使用。
SQL Server 使用各数据库的事务日志来恢复事务。事务日志是数据库中已发生的所有修改和执行每次修改的事务的一连串记录。事务日志记录每个事务的开始。它记录了在每个事务期间,对数据的更改及撤消所做更改(以后如有必要)所需的足够信息。对于一些大的操作(如 CREATE INDEX),事务日志则记录该操作发生的事实。随着数据库中发生被记录的操作,日志会不断地增长。
事务日志记录页的分配和释放,以及每个事务的提交或回滚。这允许 SQL Server 采用下列方式应用(前滚)或收回(回滚)每个事务:
•在应用事务日志时,事务将前滚。SQL Server 将每次修改后的映象复制到数据库中,或者重新运行语句(如 CREATE INDEX)。这些操作将按照其原始发生顺序进行应用。此过程结束后,数据库将处于与事务日志备份时相同的状态。
•当收回未完成的事务时,事务将回滚。SQL Server 将所有修改前的映象复制到 BEGIN TRANSACTION 后的数据库。如果遇到表示执行了 CREATE INDEX 的事务日志记录,则会执行与该语句逻辑相反的操作。这些前映象和 CREATE INDEX 逆转将按照与原始顺序相反的顺序进行应用。
在检查点处,SQL Server 确保所有已修改的事务日志记录和数据库页都写入磁盘。在重新启动 SQL Server 时所发生的各数据库的恢复过程中,仅在不知道事务中所有的数据修改是否已经从高速缓冲中实际写入磁盘时才必须前滚事务。因为检查点强迫所有修改的页写入磁盘,所以检查点表示启动恢复必须开始前滚事务的位置。因为检查点之前的所有修改页都保证在磁盘上,所以没有必要前滚检查点之前已完成的任何事务。
利用事务日志备份可以将数据库恢复到特定的即时点(如输入不想要的数据之前的那一点)或故障发生点。在媒体恢复策略中应考虑利用事务日志备份。
虚拟日志文件
每个事务日志文件都被逻辑地分成称为虚拟日志文件的较小的段。虚拟日志文件是事务日志的截断单位。当虚拟日志文件不再包含活动事务的日志记录时,可以对其进行截断处理,使其空间可用于记录新事务。
虚拟日志文件的最小大小为 256 千字节 (KB)。事务日志的最小大小为 512 KB,它可以提供两个 256 KB 大小的虚拟日志文件。事务日志中的虚拟日志文件数目和大小随日志文件大小的增加而增加。小日志文件可以包含较少量的小虚拟日志文件(例如,5 MB 的日志文件包含 5 个 1 MB 的虚拟日志文件)。大日志文件可以有较大的虚拟日志文件(例如,500 MB 的日志文件包含 10 个 50 MB 的虚拟日志文件)。
Microsoft® SQL Server™ 2000 力求避免包含太多的小虚拟日志文件。虚拟日志文件数目的增长比其大小的增长要慢得多。如果日志文件以小增量增长,则它趋向于包含多个小虚拟日志文件。如果日志文件以较大增量增长,SQL Server 则会创建较少数量的较大虚拟日志文件。例如,如果事务日志以 1 MB 增量增长,那么与以 50 MB 增量增长的事务日志相比,其虚拟日志文件的大小将更小,数目将更多。虚拟日志文件数较多时,数据库恢复所需要的执行时间将增加。
随着记录不断地写入日志中,日志的结尾会从一个虚拟日志文件增长到下一个虚拟日志文件。如果数据库有一个以上的物理日志文件,随着日志的增长,日志结尾将穿过每个物理文件中的每个虚拟日志文件,直至循环回到第一个物理文件中的第一个虚拟日志文件。只有当所有的日志文件已满时,日志才开始自动增长。
2.2创建数据库
若要创建数据库,必须先确定数据库的名称、所有者(创建数据库的用户)、大小,以及用于存储该数据库的文件和文件组。
在创建数据库之前,请考虑如下事项:
•创建数据库的权限默认授予 sysadmin 和 dbcreator 固定服务器角色的成员,但是它仍可以授予其他用户。
•创建数据库的用户将成为该数据库的所有者。
•在一个服务器上,最多可以创建 32,767 个数据库。
•数据库名称必须遵循标识符规则。
有三种文件类型可用于存储数据库:
•主文件
这些文件包含数据库的启动信息。主文件还用于存储数据。每个数据库都包含一个主文件。
•次要文件
这些文件含有不能置于主要数据文件中的所有数据。如果主文件足够大,能够容纳数据库中的所有数据,则该数据库不需要次要数据文件。有些数据库可能非常大,因此需要多个次要数据文件,或可能在各自的磁盘驱动器上使用次要文件,以便在多个磁盘上存储数据。
•事务日志
这些文件包含用于恢复数据库的日志信息。每个数据库必须至少有一个事务日志文件(但是可以有多个)。日志文件最小为 512 KB。
Microsoft® SQL Server™ 2000 数据和事务日志文件不能放在压缩文件系统或远程网络驱动器上(如共享的网络目录)。
建议指定文件的最大允许增长的大小。这样做可以防止文件在添加数据时无限制增大,以至用尽整个磁盘空间。若要指定文件的最大大小,请在使用SQL Server 企业管理器内的 属性 对话框创建数据库时,使用 CREATE DATABASE 语句的 MAXSIZE 参数或者 将文件增长限制为 (MB) 选项。
创建数据库之后,建议创建一个 master 数据库的备份。
2.2.1使用Transact-SQL创建数据库
语法
CREATE DATABASE database_name
[ ON
[ filespec > [ ,...n ] ]
[ , filegroup > [ ,...n ] ]
]
[ LOG ON { filespec > [ ,...n ] } ]
[ COLLATE collation_name ]
[ FOR LOAD | FOR ATTACH ]
filespec > ::=
[ PRIMARY ]
( [ NAME = logical_file_name , ]
FILENAME = 'os_file_name'
[ , SIZE = size ]
[ , MAXSIZE = { max_size | UNLIMITED } ]
[ , FILEGROWTH = growth_increment ] ) [ ,...n ]
filegroup > ::=
FILEGROUP filegroup_name filespec > [ ,...n ]
参数
database_name
新数据库的名称。数据库名称在服务器中必须唯一,并且符合标识符的规则。database_name 最多可以包含 128 个字符,除非没有为日志指定逻辑名。如果没有指定日志文件的逻辑名,则 Microsoft® SQL Server™ 会通过向 database_name 追加后缀来生成逻辑名。该操作要求 database_name 在 123 个字符之内,以便生成的日志文件逻辑名少于 128 个字符。
ON
指定显式定义用来存储数据库数据部分的磁盘文件(数据文件)。该关键字后跟以逗号分隔的 filespec> 项列表, filespec> 项用以定义主文件组的数据文件。主文件组的文件列表后可跟以逗号分隔的 filegroup> 项列表(可选), filegroup> 项用以定义用户文件组及其文件。
n
占位符,表示可以为新数据库指定多个文件。
LOG ON
指定显式定义用来存储数据库日志的磁盘文件(日志文件)。该关键字后跟以逗号分隔的 filespec> 项列表, filespec> 项用以定义日志文件。如果没有指定 LOG ON,将自动创建一个日志文件,该文件使用系统生成的名称,大小为数据库中所有数据文件总大小的 25%。
FOR LOAD
支持该子句是为了与早期版本的 Microsoft SQL Server 兼容。数据库在打开 dbo use only 数据库选项的情况下创建,并且将其状态设置为正在装载。SQL Server 7.0 版中不需要该子句,因为 RESTORE 语句可以作为还原操作的一部分重新创建数据库。
FOR ATTACH
指定从现有的一组操作系统文件中附加数据库。必须有指定第一个主文件的 filespec> 条目。至于其它 filespec> 条目,只需要与第一次创建数据库或上一次附加数据库时路径不同的文件的那些条目。必须为这些文件指定 filespec> 条目。附加的数据库必须使用与 SQL Server 相同的代码页和排序次序创建。应使用 sp_attach_db 系统存储过程,而不要直接使用 CREATE DATABASE FOR ATTACH。只有必须指定 16 个以上的 filespec> 项目时,才需要使用 CREATE DATABASE FOR ATTACH。
如果将数据库附加到的服务器不是该数据库从中分离的服务器,并且启用了分离的数据库以进行复制,则应该运行 sp_removedbreplication 从数据库删除复制。
collation_name
指定数据库的默认排序规则。排序规则名称既可以是 Windows 排序规则名称,也可以是 SQL 排序规则名称。如果没有指定排序规则,则将 SQL Server 实例的默认排序规则指派为数据库的排序规则。
PRIMARY
指定关联的 filespec> 列表定义主文件。主文件组包含所有数据库系统表。还包含所有未指派给用户文件组的对象。主文件组的第一个 filespec> 条目成为主文件,该文件包含数据库的逻辑起点及其系统表。一个数据库只能有一个主文件。如果没有指定 PRIMARY,那么 CREATE DATABASE 语句中列出的第一个文件将成为主文件。
NAME
为由 filespec> 定义的文件指定逻辑名称。如果指定了 FOR ATTACH,则不需要指定 NAME 参数。
logical_file_name
用来在创建数据库后执行的 Transact-SQL 语句中引用文件的名称。logical_file_name 在数据库中必须唯一,并且符合标识符的规则。该名称可以是字符或 Unicode 常量,也可以是常规标识符或定界标识符。
FILENAME
为 filespec> 定义的文件指定操作系统文件名。
'os_file_name'
操作系统创建 filespec> 定义的物理文件时使用的路径名和文件名。os_file_name 中的路径必须指定 SQL Server 实例上的目录。os_file_name 不能指定压缩文件系统中的目录。
如果文件在原始分区上创建,则 os_file_name 必须只指定现有原始分区的驱动器字母。每个原始分区上只能创建一个文件。原始分区上的文件不会自动增长;因此,os_file_name 指定原始分区时,不需要指定 MAXSIZE 和 FILEGROWTH 参数。
SIZE
指定 filespec> 中定义的文件的大小。如果主文件的 filespec> 中没有提供 SIZE 参数,那么 SQL Server 将使用 model 数据库中的主文件大小。如果次要文件或日志文件的 filespec> 中没有指定 SIZE 参数,则 SQL Server 将使文件大小为 1 MB。
size
filespec> 中定义的文件的初始大小。可以使用千字节 (KB)、兆字节 (MB)、千兆字节 (GB) 或兆兆字节 (TB) 后缀。默认值为 MB。指定一个整数,不要包含小数位。size 的最小值为 512 KB。如果没有指定 size,则默认值为 1 MB。为主文件指定的大小至少应与 model 数据库的主文件大小相同。
MAXSIZE
指定 filespec> 中定义的文件可以增长到的最大大小。
max_size
filespec> 中定义的文件可以增长到的最大大小。可以使用千字节 (KB)、兆字节 (MB)、千兆字节 (GB) 或兆兆字节 (TB) 后缀。默认值为 MB。指定一个整数,不要包含小数位。如果没有指定 max_size,那么文件将增长到磁盘变满为止。
说明 在磁盘即将变满时,Microsoft Windows NT® S/B 系统日志会警告 SQL Server 系统管理员。
UNLIMITED
指定 filespec> 中定义的文件将增长到磁盘变满为止。
FILEGROWTH
指定 filespec> 中定义的文件的增长增量。文件的 FILEGROWTH 设置不能超过 MAXSIZE 设置。
growth_increment
每次需要新的空间时为文件添加的空间大小。指定一个整数,不要包含小数位。0 值表示不增长。该值可以 MB、KB、GB、TB 或百分比 (%) 为单位指定。如果未在数量后面指定 MB、KB 或 %,则默认值为 MB。如果指定 %,则增量大小为发生增长时文件大小的指定百分比。如果没有指定 FILEGROWTH,则默认值为 10%,最小值为 64 KB。指定的大小舍入为最接近的 64 KB 的倍数。
示例:
1.创建指定数据文件和事务日志文件的数据库
下面的示例创建名为 Sales 的数据库。因为没有使用关键字 PRIMARY,第一个文件 (Sales_dat) 成为主文件。因为 Sales_dat 文件的 SIZE 参数没有指定 MB 或 KB,因此默认为 MB,以兆字节为单位进行分配。Sales_log 文件以兆字节为单位进行分配,因为 SIZE 参数中显式声明了 MB 后缀。
USE master
GO
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 )
GO
2.指定多个数据文件和事务日志文件创建数据库
下面的示例使用三个 100 MB 的数据文件和两个 100 MB 的事务日志文件创建了名为 Archive 的数据库。主文件是列表中的第一个文件,并使用 PRIMARY 关键字显式指定。事务日志文件在 LOG ON 关键字后指定。注意 FILENAME 选项中所用的文件扩展名:主要数据文件使用 .mdf,次要数据文件使用 .ndf,事务日志文件使用 .ldf。
USE master
GO
CREATE DATABASE Archive
ON
PRIMARY ( NAME = Arch1,
FILENAME = 'c: program files microsoft sql server mssql data archdat1.mdf',
SIZE = 100MB,
MAXSIZE = 200,
FILEGROWTH = 20),
( NAME = Arch2,
FILENAME = 'c: program files microsoft sql server mssql data archdat2.ndf',
SIZE = 100MB,
MAXSIZE = 200,
FILEGROWTH = 20),
( NAME = Arch3,
FILENAME = 'c: program files microsoft sql server mssql data archdat3.ndf',
SIZE = 100MB,
MAXSIZE = 200,
FILEGROWTH = 20)
LOG ON
( NAME = Archlog1,
FILENAME = 'c: program files microsoft sql server mssql data archlog1.ldf',
SIZE = 100MB,
MAXSIZE = 200,
FILEGROWTH = 20),
( NAME = Archlog2,
FILENAME = 'c: program files microsoft sql server mssql data archlog2.ldf',
SIZE = 100MB,
MAXSIZE = 200,
FILEGROWTH = 20)
GO
3.创建简单的数据库
本例创建名为 Products 的数据库,并指定单个文件。指定的文件成为主文件,并会自动创建一个 1 MB 的事务日志文件。因为主文件的 SIZE 参数中没有指定 MB 或 KB,所以主文件将以兆字节为单位进行分配。因为没有为事务日志文件指定 filespec>,所以事务日志文件没有 MAXSIZE,可以增长到填满所有可用的磁盘空间为止。
USE master
GO
CREATE DATABASE Products
ON
( NAME = prods_dat,
FILENAME = 'c: program files microsoft sql server mssql data prods.mdf',
SIZE = 4,
MAXSIZE = 10,
FILEGROWTH = 1 )
GO
4.使用文件组创建数据库
下面的示例使用三个文件组创建名为 sales 的数据库:
•主文件组包含文件 Spri1_dat 和 Spri2_dat。指定这些文件的 FILEGROWTH 增量为 15%。
•名为 SalesGroup1 的文件组包含文件 SGrp1Fi1 和 SGrp1Fi2。
•名为 SalesGroup2 的文件组包含文件 SGrp2Fi1 和 SGrp2Fi2。
CREATE DATABASE Sales
ON PRIMARY
( NAME = SPri1_dat,
FILENAME = 'c: program files microsoft sql server mssql data SPri1dat.mdf',
SIZE = 10,
MAXSIZE = 50,
FILEGROWTH = 15% ),
( NAME = SPri2_dat,
FILENAME = 'c: program files microsoft sql server mssql data SPri2dt.ndf',
SIZE = 10,
MAXSIZE = 50,
FILEGROWTH = 15% ),
FILEGROUP SalesGroup1
( NAME = SGrp1Fi1_dat,
FILENAME = 'c: program files microsoft sql server mssql data SG1Fi1dt.ndf',
SIZE = 10,
MAXSIZE = 50,
FILEGROWTH = 5 ),
( NAME = SGrp1Fi2_dat,
FILENAME = 'c: program files microsoft sql server mssql data SG1Fi2dt.ndf',
SIZE = 10,
MAXSIZE = 50,
FILEGROWTH = 5 ),
FILEGROUP SalesGroup2
( NAME = SGrp2Fi1_dat,
FILENAME = 'c: program files microsoft sql server mssql data SG2Fi1dt.ndf',
SIZE = 10,
MAXSIZE = 50,
FILEGROWTH = 5 ),
( NAME = SGrp2Fi2_dat,
FILENAME = 'c: program files microsoft sql server mssql data SG2Fi2dt.ndf',
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 )
GO
2.2.2使用企业管理器创建数据库
1.展开服务器组,然后展开服务器。
2.右击 数据库 ,然后单击 新建数据库 命令。
3.键入新数据库的名称。
用指定的数据库名作为前缀创建主数据库和事务日志文件,例如:newdb_Data.mdf 和 newwdb_Log.ldf。数据库和事务日志文件的初始大小与为 model 数据库指定的默认大小相同。主文件中包含数据库的系统表。
4.要更改新建主数据库文件的默认值,单击 常规 选项卡。若要更改新建事务日志文件的默认值,单击 事务日志 选项卡。
5.要更改 文件名 、 位置 、 初始大小 (MB) 和 文件组 (不适用于事务日志)等列的默认值,单击要更改的适当单元格,再键入新值。
6.要指定文件如何增长,请从以下选项中选择:
•当需要更多的数据空间时,若要允许当前选定的文件增长,选择 文件自动增长 命令。
•要指定文件按固定步长增长,选择 按兆字节 命令并指定一个值。
•若要指定文件按当前大小的百分比增长,选择 按百分比 命令,并且指定一个值。
7.若要指定文件大小的限制,请从以下选项中选择:
•若要允许文件按需求增长,选择 文件增长不受限制 命令。
•若要指定允许文件增长到的最大值,选择 将文件增长限制为 (MB) 命令。
8.完成
2.3修改数据库
创建数据库后,可以对其原始定义进行更改。更改包括:
•扩充分配给数据库的数据或事务日志空间。
•收缩分配给数据库的数据或事务日志空间。
•添加或删除数据和事务日志文件。
•创建文件组。
•创建默认文件组。
•更改数据库的配置设置。
•脱机放置数据库。
•附加新数据库或分离未使用的数据库。
•更改数据库名称。
•更改数据库的所有者。
在更改数据库之前,有时需要使数据库退出正常操作模式。在这些情况下,需确定终止事务的适当方法。
在这里我们只对附加或分离未数据库、更改数据库名称,进行描述。其他相关的信息请参阅SQLSERVER联机帮助。
2.3.1附加或分离数据库
Microsoft® SQL Server™ 2000 允许分离数据库的数据和事务日志文件,然后将其重新附加到另一台服务器,甚至同一台服务器上。分离数据库将从 SQL Server 删除数据库,但是保持在组成该数据库的数据和事务日志文件中的数据库完好无损。然后这些数据和事务日志文件可以用来将数据库附加到任何 SQL Server 实例上,包括从中分离该数据库的服务器。这使数据库的使用状态与它分离时的状态完全相同。
如果想按以下方式移动数据库,则分离和附加数据库很有用:
•从一台计算机移到另一台计算机,而不必重新创建数据库,然后手动还原数据库备份。
•移到另一物理磁盘上,例如,当包含该数据库文件的磁盘空间已用完,您希望扩充现有的文件而又不愿将新文件添加到其它磁盘上的数据库。
将数据库或数据库文件移动到另一服务器或磁盘:
1.分离数据库。
4.将数据库文件移到另一服务器或磁盘。
5.通过指定移动文件的新位置附加数据库。
当附加在数据库上时,必须指定主数据文件的名称和物理位置。主文件包含查找由数据库组成的其它文件所需的信息,除非自分离了数据库后那些文件中的一个或多个已改变了位置。除主文件外,还必须指出其它任何已改变位置的文件。否则,SQL Server 将试图基于存储在主文件中的不正确的文件位置信息附加文件,且不能成功附加数据库。
如果将数据库附加到的服务器不是该数据库从中分离的服务器,并且启用了分离的数据库用于复制,则应运行 sp_removedbreplication 从数据库中删除复制。或者,可以在分离数据库之前从数据库中删除复制。
分离数据库时所产生的错误可能会防碍干净地关闭数据库和重建事务日志。如果收到错误信息,请执行下列操作以纠正错误:
1.重新附加所有与数据库相关联的文件,而不仅是主文件。
2.解决导致错误信息的问题。
3.再次分离数据库。
附加数据库
语法
sp_attach_db [ @dbname = ] 'dbname'
, [ @filename1 = ] 'filename_n' [ ,...16 ]
参数
[@dbname =] 'dbname'
要附加到服务器的数据库的名称。该名称必须是唯一的。dbname 的数据类型为 sysname,默认值为 NULL。
[@filename1 =] 'filename_n'
数据库文件的物理名称,包括路径。filename_n 的数据类型为 nvarchar(260),默认值为 NULL。最多可以指定 16 个文件名。参数名称以 @filename1 开始,递增到 @filename16。文件名列表至少必须包括主文件,主文件包含指向数据库中其它文件的系统表。该列表还必须包括数据库分离后所有被移动的文件。
返回代码值
0(成功)或 1(失败)
只应对以前使用显式 sp_detach_db 操作从数据库服务器分离的数据库执行 sp_attach_db。如果必须指定多于 16 个文件,请使用带有 FOR ATTACH 子句的 CREATE DATABASE。
如果将数据库附加到的服务器不是该数据库从中分离的服务器,并且启用了分离的数据库以进行复制,则应该运行 sp_removedbreplication 从数据库删除复制。
权限
只有 sysadmin 和 dbcreator 固定服务器角色的成员才能执行本过程。
示例
下面的示例将 pubs 中的两个文件附加到当前服务器。
EXEC sp_attach_db @dbname = N'pubs',
@filename1 = N'c: Program Files Microsoft SQL Server MSSQL Data pubs.mdf',
@filename2 = N'c: Program Files Microsoft SQL Server MSSQL Data pubs_log.ldf'
使用企业管理器附加和分离数据库
附加数据库
1.展开服务器组,然后展开服务器。
2.右击 数据库 ,然后选择 所有任务 / 附加数据库 。
3.输入要附加的数据库的 MDF(master 数据文件)名称。如果不确定文件位于何处,单击浏览( ... )搜索。最多可以指定 16 个文件名。
4.若要确保指定的 MDF 文件正确,请单击 验证 。 原文件名 列列出了数据库中的所有文件(数据文件和日志文件)。 当前文件位置 列列出了文件的名称和路径。如果 Microsoft® SQL Server™ 找不到指定位置的文件,则附加操作将失败。可以对 当前文件位置 列进行编辑,并且文件的当前位置必须在该列中才能使附加操作得以进行。例如,如果在分离操作前改变了文件的默认位置,则必须指定当前位置才能使附加操作顺利进行。
5.在 附加为 框内,输入数据库的名称。数据库名称不能与任何现有数据库名称相匹配。
6.指定数据库的所有者。
7.单击 确定 按钮。新附加的数据库的数据库节点即创建在 数据库 文件夹中。
分离数据库
1.展开服务器组,然后展开服务器。
2.展开 数据库 文件夹。
3.右击数据库,然后选择 所有任务 / 分离数据库 命令。该菜单只有在您是 sysadmin 固定服务器角色成员并且所连接的服务器是 SQL Server 2000 时才可用。无法分离 master、model 和 tempdb 数据库。
4.在 分离数据库 对话框中,检查数据库的状态。要成功地分离数据库,STATUS 应为:数据库已就绪,可以分离。或者可以选择在分离操作前更新统计信息。
5.若要终止任何现有的数据库连接,请单击 清除 。
6.单击 确定 按钮。已分离的数据库的数据库节点即从 数据库 文件夹中被删除。
2.3.2重命名数据库
语法
sp_renamedb [ @dbname = ] 'old_name' ,
[ @newname = ] 'new_name'
参数
[@dbname =] 'old_name'
是数据库的当前名称。old_name 为 sysname 类型,无默认值。
[@newname =] 'new_name'
是数据库的新名称。new_name 必须遵循标识符规则。new_name 为 sysname 类型,无默认值。
返回代码值
0(成功)或非零数字(失败)
权限
只有 sysadmin 和 dbcreator 固定服务器角色的成员才能执行 sp_renamedb。
示例
下例将数据库 accounting 改名为 financial。
EXEC sp_renamedb 'accounting', 'financial'
2.5查看数据库
使用Transact-SQL查看数据库
语法
sp_helpdb [ [ @dbname= ] 'name' ]
参数
[@dbname=] 'name'
是要为其提供信息的数据库名称。name 的数据类型为 sysname,无默认值。如果没有指定 name,则 sp_helpdb 报告 master.dbo.sysdatabases 中的所有数据库。
返回代码值
0(成功)或 1(失败)
结果集
列名数据类型描述
namenvarchar(24)数据库名称。
db_sizenvarchar(13)数据库总计大小。
ownernvarchar(24)数据库所有者(例如 sa)。
dbidsmallint数字数据库 ID。
createdchar(11)数据库创建的日期。
statusvarchar(340)以逗号分隔的值的列表,这些值是当前在数据库上设置的数据库选项的值。
只有启用布尔值选项时,才将这些选项列出。非布尔值选项及其对应值以 option_name=value 的形式列出。
有关更多信息,请参见 ALTER DATABASE。
compatibility_leveltinyint数据库兼容级别(60、65、70 和 80)
如果指定 name,那么将有其它结果集,这些结果集显示指定数据库的文件分配。
列名数据类型描述
namenchar(128)逻辑文件名。
fileidsmallint数字文件标识符。
file namenchar(260)操作系统文件名(物理文件名称)。
filegroupnvarchar(128)文件所属的组。为便于分配和管理,可以将数据库文件分成文件组。日志文件不能作为文件组的一部分。
sizenvarchar(18)文件大小。
maxsizenvarchar(18)文件可达到的最大值。此字段中的 UNLIMITED 值表示文件可以一直增大直到磁盘满为止。
growthnvarch
第一章 SQL SERVER2000数据库管理系统9
1.1 SQL SERVER2000 的安装9
1.1.1软硬件的要求9
1.1.2本地安装过程9
1.1.3升级到SQL SERVER200022
1.1.4企业管理器介绍24
1.2 SQL SERVER的系统组成30
1.2.1 SQL SERVER2000的系统数据库30
1.2.2 SQL SERVER2000的系统表32
1.2.3 SQL SERVER2000的系统存储过程33
1.2.4 SQL SERVER2000的示例数据库34
1.3 SQL SERVER服务器管理与使用34
1.3.1 SQL SERVER2000的启动和关闭34
1.3.2 SQL SERVER2000的服务器组35
1.3.3 SQL SERVER2000的连接与注册36
1.4查询分析器使用方法41
实验一SQL SERVER2000的安装及初步使用43
1.1.安装SQLSERVER200043
1.2.启动SQLSERVER2000服务51
1.3.使用企业管理器54
1.4.使用SQLSERVER2000的联机帮助55
第二章 创建和维护数据库59
2.1 数据库个组成部分59
2.1.1文件和文件组59
2.1.2事务日志62
2.2创建数据库64
2.2.1使用Transact-SQL创建数据库65
2.2.2使用企业管理器创建数据库72
2.3修改数据库77
2.3.1附加或分离数据库78
2.3.2重命名数据库86
2.5查看数据库87
2.6 删除数据库90
实验二 创建数据库94
2.1创建名称为guestbook的数据库94
2.2修改数据库97
2.3查看数据库98
2.4删除数据库99
第三章设计表100
3.1指定列数据类型100
3.1.1二进制数据100
3.1.2字符数据102
3.1.3 Unicode 数据103
3.1.4日期和时间数据103
3.1.5数字数据105
3.1.6货币数据107
3.1.7特殊数据109
3.1.8创建用户定义的数据类型110
3.1.9使用uniqueidentifier数据112
3.2使用约束、默认值和空值113
3.2.1 PRIMARY KEY约束114
3.2.2FOREIGN KEY约束115
3.2.3级联引用完整性约束117
3.2.4 UNIQUE约束120
3.2.5 CHECK约束121
3.2.6 DEFAULT定义122
3.2.7允许空值123
第四章 表的管理124
4.1 表的创建124
4.1.1 使用企业管理器创建表124
4.1.2 使用 Transact-SQL 创建表格的语法如下125
4.2删除表141
4.2.1 使用企业管理器删除表格141
4.2.2使用 Transact-SQL 删除表格141
4.3修改表141
4. 3. 1 使用企业管理器修改表格定义141
4. 3. 2 使用Transact-SQL 修改表格定义142
4.4表属性的查看146
4.5索引的特点与用途149
4.6索引的创建与删除150
实验三 表的创建153
3.1 使用企业管理器创建数据库154
3.2 使用查询分析器创建表的脚本157
第五章 维护表的数据165
5.1添加数据INSERT165
5.1.1 简单的INSERT语句165
5. 1. 2 省略列清单的 INSERT 语句165
5.1.3 省略 VALUES 清单的 INSERT 语句166
5.2更新数据UPDATE167
5.3删除数据DELETE169
5.4使用企业管理器管理表170
实验四:表数据的维护174
4.1 添加数据INSERT174
4.2 更新数据UPDATE177
4.3 删除数据DELETE177
第六章 结构化查询语言 SQL178
6.1简单的SELECT语句178
6.2关键词、列名的使用180
6.2.1 top关键字180
6.2.2 distinct关键字180
6.2.3列的运算182
6.2.4列的别名184
6.3 WHERE子句185
6.3.1算数表达式186
6.3.2逻辑表达式187
6.3.3使用BETWEEN关键字187
6.3.4使用IN关键字189
6.3.5 LIKE子句191
6.4 ORDER BY子句194
6.5多表查询196
6.5.1多表查询和笛卡儿乘积196
6.5.2使用UNION子句199
实验五 利用查询分析器练习SELECT202
5.1简单查询:202
5.2查询显示不同的字段:204
5.3条件查询使用WHERE、LIKE、ORDER BY 子句:205
第七章 视图208
7.1视图的概念208
7.1.1视图的概念208
7.1.2视图的优点208
7.2视图的使用209
7.2.1视图的创建与删除209
7.2.2修改视图211
7.2.3浏览视图信息213
7.3视图的高级应用216
7.3.1在视图上使用INSERT语句216
7.3.2使用UPDATE更新视图中的数据218
7.3.3 删除视图中的数据218
7.3.4 WITH CHEcK OPTION 的视图219
7.3.5 对视图进行加密220
7.3.6使用视图加强数据安全221
7.3.7使用视图隐藏列222
7.3.8 使用视图隐藏行224
第八章 Transact-SQL 高级查询226
8.1使用聚合函数226
8.1.1常用的聚合函数226
8.1.2聚合函数在SQL中的使用227
8.2 GROUP BY子句228
8.2.1 GROUP BY的使用方法228
8.2.2使用HAVING230
8.2.3使用ALL231
8.2.4使用CUBE关键字232
8.2.5 使用 ROLLUP 关键字234
8.2.6 使用COMPUTE 和COMPUTE BY 子句234
8.3嵌套子查询236
8.3.1 嵌套查询的使用方法236
8.3.2 在嵌套查询中使用 Exists 关键字237
8.3.3 使用NOT EXISTS 和NOT IN 关键字238
8.3.4 在列清单中使用嵌套查询240
8.3.5 灵活使用嵌套查询241
实验六 利用查询分析器的综合练习244
6.1 视图的创建244
6.2 多表查询、使用聚合函数、子查询245
第九章 SQL SERVER 编程结构248
9.1 程序注释248
9.2 批处理249
9.3 变量的使用253
9.4 IF…ELSE判断结构262
9.5 BEGIN…END语句块264
9.6 WHILE循环结构265
9.7 CASE266
9.8 RETURN267
9.9 游标的使用268
9.9.1 游标的声明268
9.9.2 打开、关闭、释放游标269
9.9.3 使用游标取数271
9.9.4 利用游标修改数据274
第十章 SQL SERVE函数278
10.1 SQL SERVER常用函数278
10.1.1 数学函数278
10.1.2 字符串函数282
10.1.3 日期函数287
10.2 SQL SERVER系统函数290
10.3 其他函数293
10.4 用户自定义函数296
10.4.1创建和使用用户自定义函数296
10.4.2 修改和删除用户自定义函数298
实验七:利用查询分析器练习SQL编程300
7.1 变量的使用,变量的赋值,转换函数的使用300
7.2 使用循环301
7.3 使用游标取数据302
第十一章 事务和锁303
11.1事务的概念303
11.2事务的特性与分类303
11.3 Transact-SQL表示事务306
11.4事务日志308
11.5锁的分类309
11.6事务的并发控制318
第十二章 存储过程的使用与管理323
12.1 存储过程概述323
12.2 创建存储过程324
12.3 执行存储过程330
12.4删除存储过程335
12.5 修改和重命名存储过程336
12.5.1修改存储过程336
12.5.2重命名存储过程339
12.5.3重新编译存储过程341
12.6 管理存储过程342
第十三章存储过程的高级应用345
13.1在存储过程中使用参数345
13.2从存储过程中返回数据350
13.3处理错误信息352
13.4系统存储过程356
13.5确定存储过程的执行状态357
实验八 存储过程358
8.1 使用系统存储过程358
8.2 创建自定义存储过程358
8.3 利用前面所学的知识编写数据分页的存储过程361
第十四章 触发器的使用与管理365
14.1触发器的概念365
14.2触发器的使用367
14.2.1创建触发器367
14.2.3修改触发器375
14.2.4管理触发器376
14.3 Inserted和deleted表376
14.4 列级触发器380
14.5 综合应用存储过程和触发器维护数据完整性381
实验九: 触发器384
9.1 表之间使用触发器业务规则384
9.2 使用延迟名称解析385
9.3 使用 COLUMNS_UPDATED386
9.4 使用带有提醒消息的触发器388
第十五章数据库的安全390
15.1 SQL SERVER的安全机制390
15.1.1 操作系统的安全机制390
15.1.2 SQL SERVER 的安全性391
15.1.3数据库的安全性391
15.1.4数据库对象的安全性392
15.2登录管理392
15.2.1标准登录模式392
15.2.2集成登录模式397
15.3用户管理399
15.3.1添加用户399
15.3.2删除用户400
15.3.3特殊用户400
15.4角色管理401
15.4.1固定服务器角色401
15.4.2固定数据库角色404
15.4.3创建角色407
15.5权限管理409
15.5.1权限概述409
15.5.2授权410
15.5.3撤销权限412
15.5.4 拒绝访问413
15.5.4使用企业管理器管理权限414
实验十:数据库安全练习417
第十六章备份、恢复、数据传输管理420
16.1数据库备份的概念420
16.1.1备份的重要性420
16.1.2备份设备类型420
16.2数据备份与恢复421
16.2.1创建备份421
16.2.2恢复数据427
16.3 DTS概述429
16.3.1 DTS工具430
16.3.2 数据转换服务导入向导和数据转换服务导入向导431
实验十一 数据库的备份438
11.1创建数据库备份438
11.2创建差异数据库备份439
11.3 还原数据库备份440
11.4 使用企业管理器创建数据库备份440
第十七章 数据库设计考虑事项451
17.1创建数据库计划451
17.2规范化453
17.3 数据完整性455
17.4数据安全性456
17.5数据库性能457
17.6维护457
17.7估计数据库的大小458
17.7.1估计表的大小458
17.7.2估计无聚集索引的表的大小460
17.7.3估计带有聚集索引的表的大小462
第十八章数据库设计467
18.1 数据库设计467
18.1.1 理解实体和关系471
18.1.2 E/R模型472
18.1.3 设计原则483
18.2 数据库建模489
18.2.1 范式的概念489
18.2.2 第一范式490
18.2.3 第二范式491
18.2.5 建模工具简介492
18.3 数据字典492
实验十二 数据库设计练习495