大型数据库管理系统技术、应用与实例分析:SQL Server 2005
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.1 SQL Server 2005概述

SQL Server是由Microsoft公司开发和推广的关系数据库管理系统(DBMS),它最初是由Microsoft、Sybase和Ashton-Tate三家公司共同开发的。SQL Server近年来不断更新版本,1996年,Microsoft 推出了SQL Server 6.5版本;1998年,SQL Server 7.0版本与用户见面;2000年推出了SQL Server 2000;SQL Server 2005是Microsoft公司在SQL Serve 2000的基础上于2005年底开发出的新版本。

2.1.1 SQL Server 2005版本和环境需求介绍

SQL Server 2005常见的版本有企业版、评估版、标准版、开发人员版、工作组版,它们分别满足不同用户针对性能和价格所提出的需求。

  • 企业版支持SQL Server 2005的全部功能,并且支持最大的联机事务处理(OLTP)及数据仓库系统所需的性能,同时支持故障转移群集和日志传送,多作为企业级生产数据库服务器使用。
  • 评估版支持与企业版相同的功能集,只是有效期为180天。评估版有两种,分别适用于32位或64位平台。
  • 标准版支持SQL Server 2005的大部分功能,包括电子商务、数据仓库和业务流解决方案所需的基本功能,但在服务器扩展性、数据仓库和Web站点方面的能力有所欠缺,适合作为中小企业的数据库服务器使用。
  • 开发人员版具有企业版的所有功能,但仅供开发人员进行开发和测试系统使用,数据存储在本地,不能作为生产服务器使用。
  • 工作组版可以用做前端Web服务器,也可以用于部门或分支机构的运营。它包括SQL Server产品系列的核心数据库功能,并且可以轻松升级为标准版或企业版。

表2-1列出了SQL Server 2005对计算机硬件的需求。

表2-1 SQL Server 2005对计算机硬件的需求

表2-2列出了硬盘空间需求。实际的硬盘需求取决于系统配置以及所选择安装的SQL Server 2005服务和组件。

表2-2 硬盘空间需求

表2-3列出了SQL Server 2005运行对计算机软件的需求。

表2-3 SQL Server 2005对计算机软件的需求

2.1.2 SQL Server 2005的特点和组成

1.SQL Server 2005的特点

①图形化管理:具有十分强烈的微软气息,它的管理系统使用图形化管理工具。SQL Server 2005管理都可以使用对象资源管理器实现,这是一个基于图形用户界面的集成管理工具。

②丰富的编程接口:SQL Server提供了DB-Library for C、Transact-SQL、嵌入式SQL开发工具、ODBC规范、OLE DB 规范等开发工具,满足用户根据自己的需要开发更适合处理事务的要求。

③多线程系统:由于支持多线程操作,SQL Server可以在多用户并发访问时,并不占用系统的过多资源,从而可以承受较大访问量的冲击。

④良好的并发控制:在SQL Server中,用户可以不用关心并发操作中的锁定过程,系统自动利用动态锁定功能防止用户在进行查询、修改、删除等并发操作时发生的相互冲突。

⑤与操作系统的良好接口:SQL Server既能运行于Windows 98/95操作系统下(只能作为客户端),也可以运行于Windows XP和Windows 2000(包括Windows 2000 Server/Advance Server)环境下。作为微软自己开发的数据库管理系统,SQL Server与以上操作系统有着良好的接口,并充分利用其中所提供的服务,可以提高SQL Server数据库管理系统的运行性能。

⑥更加强大的数据引擎:SQL Server 2005具有增强的数据引擎,高级的管理方式,这样就大大降低了检索的开销。此外,SQL Server 2005支持XML、HTTP,并与Web相结合,使其功能更加强大。

⑦简单的管理方式:SQL Server能和Windows有机集成,可以充分利用操作系统提供的服务功能(如安全管理、事务日志、性能监视、内存管理等)。

⑧支持XML(Extensive Markup Language,扩展标记语言),强大的基于Web的分析,支持OLE DB和多种查询,支持分布式的分区视图。

2.SQL Server 2005基本组成

(1)服务器端组件、客户端组件和通信组件

服务器端组件、客户端组件和通信组件三者之间的关系如图2-1所示。

图2-1 服务器端组件、客户端组件和通信组件三者之间的关系

①客户端组件

·对象资源管理器:配置服务器、管理服务器上的对象(数据库、表、列、约束等)。

·查询编辑器:编写和执行Transact-SQL程序。

·实用工具:网络配置工具、性能工具等。

②服务器端组件

·数据库引擎服务:执行SQL语句并返回结果。

·SQL Server代理:自动执行DBA事先安排好的作业、监视事件、触发警报。

·Full-text Search服务:全文检索服务。

·Analysis Services、Reporting Services等。

③通信组件

·进程通信组件:本地通信,如本地命名管道。

·网络库组件:远程通信,包括API 和协议。

(2)实例组、实例、数据库和基本表

在SQL Server中,一个服务器组件称为一个实例,一台计算机上可以安装多个实例,其中一个为默认实例,其他为命名实例,如图2-2(a)所示。通过注册,一台计算机可以访问多个本地实例和远程实例,每个实例上可以创建多个数据库,每个数据库上可创建多张基本表。可以将一台计算机能够访问的实例按照一定的方式进行分组,这就是实例组。实例组、实例、数据库、基本表都可以用企业管理器来管理,它们之间的关系如图2-2(b)所示。

图2-2 实例组、实例、数据库和基本表组成关系

2.1.3 SQL Server 2005的安装

1.安装时必须注意的几个问题

安装SQL Server服务器比较容易,但安装完成后要进行调整就比较困难了,特别是在使用一段时间且已经累积了很多数据信息后才发现某些性能必须改变,这种调整就显得更加艰难。因此在安装开始之前就必须对相关问题有所准备。

(1)数据文件的存储位置

在安装过程中,安装程序要求输入磁盘驱动器和安装SQL Server系统数据库的路径。数据文件的默认位置是SQL Server的根目录C:\Program Files\Microsoft SQL Server\MSSQL. 1\MSSQL和子目录DATA,可以根据需要修改默认目录,建议不要把数据安装在系统盘下。SQL Server 2005安装后自带4个系统数据库master、msdb、model和tempdb,它们安装的磁盘驱动器要具有足够的空间来满足这些数据的扩充(每天要增加几兆空间)。

需要注意的是SQL Server 2005运行时所需要的临时数据库tempdb,要允许该文件在不超过数据库配置长度的前提下自动扩充。当SQL Server被关闭并重新启动时,该文件自动缩小到其初始长度,正是由于这个原因,最好要选择一个具有足够空间的驱动器或带区来适应该数据库的增长,除此之外,还要选择一个带区来为应用提供良好的磁盘读写性能。

(2)实例名

实例是SQL Server 2005的工作单元。每个实例都由系统数据库和用户数据库组成,拥有独立的管理和运行环境。客户端应用程序通过指定实例的名称来访问数据库服务器。

SQL Server 2005支持在同一台主计算机上安装SQL Server的多个实例,最多可达16个。

实例有系统默认实例和用户的命名实例。如果只需要安装唯一的SQL Server实例,则可以使用默认的实例名,如果需要安装多个SQL Server实例,则必须为每一个实例都指定一个不同的名称。实例名对大小写不敏感,其长度不能超过16个字符且必须由字母、下画线、数字或&符号组成。

①默认实例

默认实例由运行该实例的主计算机在网络中的名称进行标识。若计算机在网络中的名称是Server,则默认实例的名称就为Server。

安装时,在“实例名”对话框中选中“默认”复选框,则安装默认实例。

一台主计算机只能存在一个默认实例。默认实例可以用SQL Server的任何版本。应用程序连接指定的计算机名时,客户端组件首先尝试连接该计算机的默认实例。

SQL Server 2005默认实例程序和数据文件的默认目录是:

C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Binn

C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data

②命名实例

命名实例是用户在安装的过程中指定的名称,由一组独立的、非重复的服务组成。

安装时,在“实例名”对话框中不选中“默认”复选框,在“实例名”文本的输入框输入实例名。安装结束后命名实例的名称显示为“计算机名称\实例名称”。

一台计算机可以安装多个SQL Server 2005命名实例,用户操作某个实例不会混淆其他实例。一台计算机最多可以运行16个实例。

SQL Server 2005命名实例程序和数据文件的默认目录是:

C:\Program\Files\Micrsoft SQL Server\ MSSQL.1\MSSQL$InstanceName\Binn

C:\Program\Files\Micrsoft SQL Server\ MSSQL.1\MSSQL$InstanceName\Data

SQL Server 2005实例的程序和数据文件的目录可以由用户选择。即在安装时,在“安装类型”对话框中单击“浏览”按钮进行选择。

(3)确定启动服务的账户

SQL Server 2005提供了两种启动服务的账户。

域用账户:该账户使用Windows操作系统的用户账户启动SQL Srver服务。域用账户必须经过域控制器的身份验证,才能启动SQL Server服务。为了使SQL Server的服务在大多数网络环境中能正常工作,微软建议使用域用账户。

本地账户:本地账户不要口令,没有网络访问权限,同时限制SQL Server与网络中的其他服务器交互。

安装时的默认设置的是域用账户。

(4)选择安全机制

SQL Server 2005有两种方式的安全机制。

Windows身份验证模式:在该模式下,用户必须拥有有效的Windows 2000或Windows XP的用户账户,才能够建立到SQL Server的连接。

混合身份验证模式:在该模式下,除需要上述条件外,还需要拥有SQL Server的登录账户。SQL Server管理员的账户是sa,密码默认是空。所以安装时不要选择空密码,而要输入密码。若选择了空,完成安装后的第一件事则是修改密码。

为了保证两种模式都能够成功实现,SQL Server必须安装在正确的Windows域环境中,否则就只能使用混合模式。

(5)选择排序规则

选择排序规则是非常重要的。如果在安装之后,才发现选择不当,要重新选择排序规则,将不得不重新构建数据库,并重新加载数据。当数据庞大时,这种工作是非常繁重的。一般情况下,安装程序会根据操作系统的类型自动选择正确的选项,不需要用户过多参与。如果用户的应用程序代码依赖于早期版本SQL Server的排序规则,则必须慎重选择使用排序规则。

(6)选择合适的网络库

网络库也称通信协议。SQL Server 2005在默认方式下安装TCP/IP协议。下面是几个常用的网络库。

①命名管道协议

该协议是为局域网开发的协议。它的运行模式是内存的一部分被某个进程用来向另一个进程传递信息。因此,一个进程的输出就是另一个进程的输入。第二个进程可以是本地的,也可以是远程的。

②共享内存

可供使用的最简单协议,没有可配置的设置。由于使用共享内存协议的客户端仅可以连接到同一台计算机上运行的SQL Server实例,因此它对于大多数数据库活动而言是没用的。如果怀疑其他协议配置有误,可以使用共享内存协议进行故障排除。

③TCP/IP协议

TCP/IP是Internet上广泛使用的通用协议。它与互联网络中硬件结构和操作系统各异的计算机进行通信。它包括路由网络流量的标准,并能提供高级安全功能。TCP/IP协议是目前在商业中最常用的协议。

2.SQL Server 2005的安装过程

SQL Server 2005的安装过程与其他Microsoft Windows系列产品类似,用户可以根据向导提示,选择需要的选项一步一步地完成。

注意:安装完成后再纠正仓促安装所造成的错误是比较困难的,所以安装时需结合系统规划慎重进行。

安装步骤如下。

(1)使用有管理权限的账户登录Windows服务器。

(2)确保没有其他程序在前台运行,例如浏览器等。

(3)插入SQL Server 2005光盘,运行autorun.exe程序。出现安装向导,该窗口包含了3部分:准备部分、安装部分和其他信息部分。

(4)单击“安装部分”中的“服务器组件、工具、联机丛书和示例”,出现如图2-3所示SQL Server 2005安装程序窗口。

(5)单击“我接受许可条款和条件”前面的复选框,单击“下一步”按钮,出现如图2-4所示组件配置窗口,系统先进行检查,然后安装运行SQL Server 2005缺少的其他组件。

图2-3 SQL Server 2005安装程序

图2-4 组件配置

(6)单击“安装”按钮,出现安装向导窗口,再单击“下一步”按钮,进入系统配置检查界面,如图2-5所示。

图2-5 系统配置检查

(7)系统如果检查成功,单击“下一步”按纽,进行注册,输入公司名称和用户名称。

(8)选择需要安装的SQL Server程序。这里有6个选项:SQL Server Database Services;Analysis Services;Reporting Services;Notification Services;Integration Services;工作站组件、联机丛书和开发工具。作为SQL Server一般应用,其中第一和第六是必选的。

(9)最后根据上面安装时必须注意的几个问题,慎重选择默认实例还是命名实例,内置账户还是域用账户,Windows身份认证还是混合身份认证,以及排序规则设置等。

(10)在完成文件复制和系统配置后,系统提示“完成”。

2.1.4 SQL Server Management Studio介绍

1.启动SQL Server Management Studio

(1)在“开始”菜单上,依次指向“所有程序”、“Microsoft SQL Server 2005”,再单击SQL Server Management Studio。

(2)在“连接到服务器”对话框中,验证默认设置,再单击“连接”,出现SQL Server 2005主界面,如图2-6所示。

图2-6 Microsoft SQL Server Management Studio主界面

Microsoft SQL Server Management Studio主界面由以下几个部分组成。

菜单条:SQL Server的实际操作中使用并不多,大部分操作在树形结构中就可以完成。

工具条:如果不了解某个图标代表什么功能,只需将鼠标指针移到图标上,系统就会给出图标所代表的功能。

树形结构:树形结构是经常要使用的工具。图2-6左边展示了Microsoft SQL Server Management Studio启动后树形结构的样子。加号表示这个分支可以打开。右键单击树形结构中的任何一项可以打开快捷菜单,这些菜单可以使用户在树形结构中操作相应的对象。

2.Management Studio组件介绍

默认情况下,Management Studio中将显示3个组件窗口。

(1)已注册的服务器窗口

已注册的服务器窗口列出的是经常管理的服务器。用户可以在此列表中添加和删除服务器。如果计算机上以前安装了SQL Server 2000企业管理器,则系统将提示用户导入已注册服务器的列表。否则,列出的服务器中仅包含Management Studio的SQL Server实例。如果未显示所需的服务器,请在已注册服务器中右键单击Microsoft SQL Server,再单击更新本地服务器注册。

(2)对象资源管理器窗口

对象资源管理器窗口是服务器中所有数据库对象的树视图,可以包括SQL Server Database Engine、Analysis Services、Reporting Services、Integration Services和SQL Server Mpbile的数据库。对象资源管理器还包括与其连接的所有服务器的信息。

(3)文档组件窗口

文档窗口是Management Studio中最大的部分,它可能包含查询编辑器和浏览器窗口。查询编辑器主要用于完成SQL查询、程序设计等,浏览器主要用于数据库表结构及数据的编辑浏览等。默认情况下,将显示当前计算机上的数据库引擎实例连接的摘要页。

2.1.5 设置安全认证模式

当要登录SQL Server服务器时,必须选择用户登录时的安全认证模式。

设置安全认证模式的操作步骤如下。

①打开对象资源管理器,右键单击要设置认证模式的服务器,从快捷菜单中选择“属性”选项,则出现SQL Server属性对话框,如图2-7所示。

②在SQL Server属性对话框中选择“安全性”选项。

③在“安全性”选项栏中,身份验证中可以选择要设置的认证模式(本例选择了SQL Server和Windows认证模式)。同时审核级别中还可以选择跟踪审核用户登录时的哪种信息,例如登录成功或登录失败的信息事件等(本例选择“仅限失败的登录”)。

④其他选项。

图2-7 SQL Server属性对话框

2.1.6 分离和附加数据库文件

在SQL Server中,数据库文件和日志文件在磁盘上都是普通的操作系统文件。当数据库从SQL Server实例中分离出来后,就可以把数据库文件和日志文件复制出来(数据库在线时不能复制)。

1.分离数据库并复制文件

方法一:使用对象资源管理器。

步骤如下:

①展开服务器组和服务器。

②展开“数据库”文件夹。

③选择要分离的数据库,右键单击选择“任务”子菜单的分离数据库命令。

④在分离数据库对话框中选择“删除连接”断开所有用户对该数据库的连接。

⑤单击“确定”分离数据库。

⑥找到数据库和日志文件的存放位置,复制数据库文件和日志文件。

方法二:使用系统存储过程。

①运行sp_detach_db <数据库名>

②复制数据库文件和日志文件。

2.附加数据库到系统

方法一:使用对象资源管理器。

步骤如下:

①展开服务器组和服务器。

②右击“数据库”文件夹,选择子菜单的“附加数据库”。

③在附加数据库对话框中,单击“添加”按钮寻找附加的数据库文件和日志文件。

④单击“确定”按钮,新附加的数据库就出现在“数据库”文件夹下。

方法二:使用系统存储过程。

运行sp_attach_db [ @dbname = ] '数据库名' , [ @filename1 = ] '包括路径的数据库文件的物理名称' [ ,...16 ]。