
第2章 SQL Server简介
2.1 概述
SQL Server 2012是微软公司于2012年3月推出的数据库产品,是一种基于客户机/服务器模式的关系数据库管理系统,它采用Transact-SQL在客户机和服务器之间传递信息,扮演着后端数据库的角色,是数据的汇总与管理中心。SQL Server 2012不仅延续现有数据平台的强大能力,而且全面支持云技术与平台,在电子商务、数据仓库和数据库解决方案等应用中起着重要的作用,为企业的数据管理提供强大的支持。
2.1.1 SQL Server的发展
SQL Server最初由Microsoft、Sybase和Ashton-Tate 3家公司共同开发,并于1988年推出了第一个OS/2版本。1990年,Ashton-Tate公司中途退出了SQL Server的开发。1992年,SQL Server移植到Windows NT上之后,Microsoft公司成了这个项目的主导者。从1994年开始,Microsoft公司专注于开发、推广SQL Server的Windows NT版本,Sybase公司则较专注于SQL Server在UNIX操作系统上的应用。1996年,Microsoft公司推出了SQL Server 6.5版本;1998年SQL Server 7.0版本和用户见面;2000年推出的SQL Server 2000是最经典的、拥有大量用户的SQL Server数据库版本,它可跨越从运行Windows 95/98的膝上型电脑到运行Windows 2000/2003的大型多处理器等多种平台。Microsoft公司于2005年推出了SQL Server 2005,2008年推出了SQL Server 2008,并于2012年3月推出SQL Server 2012。
2.1.2 SQL Server的客户机/服务器体系结构
SQL Server是一个客户机/服务器系统,其结构可以划分为客户机(Client)和服务器(Server)两部分。从客户机和服务器之间通信的概念来看,客户机/服务器结构可以用图2-1表示,其特点是客户机通过发送一条消息或一个操作来启动与服务器之间的交互,而服务器通过返回消息进行响应。

图2-1 客户机/服务器结构
客户机/服务器结构把整个任务划分为客户机上的任务和服务器上的任务。
客户机的任务主要如下。
• 建立和断开与服务器的连接。
• 提交数据访问请求。
• 等待服务通告,接收请求结果或错误。
• 处理数据库访问结果或错误,包括重发请求和终止请求。
• 提供应用程序的友好用户界面。
• 数据输入/输出及验证。
服务器的任务主要如下。
• 为多用户管理一个独立的数据库。
• 管理和处理接收到的数据访问请求,包括管理请求队列、管理缓存、响应服务、管理结果和通知服务完成。
• 管理用户账号、控制数据库访问权限和其他安全性。
• 维护数据库,包括数据库备份和恢复。
• 保证数据库数据的完整或为客户提供完整性控制手段。
SQL Server的客户机/服务器体系结构可以采用灵活的部署方案,主要方案有两层结构、三层结构和桌面系统。
1. 两层结构
两层结构如图2-2所示。在两层结构中,SQL Server安装在一个中心服务器上,数据库存储在该服务器上。该服务器称为数据库服务器,可以被多台客户机访问。众多的客户机通过网络直接访问数据库服务器,客户机运行处理业务的程序和显示处理结果的程序。两层结构比较适合于用户量较少的情况,当用户量较大时,数据库服务器的性能会显著下降。

图2-2 两层结构
2. 三层结构
三层结构如图2-3所示。

图2-3 三层结构
在三层结构中引入了一层应用服务器。客户机只运行向应用服务器发送请求和显示请求结果的程序,客户机没有处理业务的程序,应用服务器运行处理业务的程序,多个客户机可以同时访问应用服务器,应用服务器负责访问数据库服务器,并取回处理结果,将结果返回给客户机。三层结构适用于客户量较大的情况。
三层体系结构应用程序的优势在于以下几个方面。
• 将整个系统清晰地划分为3个逻辑块,即客户机、应用服务器和数据库服务器。开发人员分工协作,分头开发。因为客户端程序不直接访问数据库,所以即使是不了解数据库编程的开发人员,也可以参与到数据库应用程序的团队开发中。
• 在客户端不需要处理业务逻辑,只用于表现用户界面。这不仅可以提高客户端程序的运行效率,而且当业务逻辑发生变化时,只要用户界面不变,就不需要修改客户端程序,从而大大提高了系统模块的重用性,缩短了开发周期,降低了维护费用。
• 系统的扩展性大大增强。模块化使得系统很容易在纵向和水平两个方向拓展,一方面可以将系统升级为更大、更有力的平台,同时也可以适当增加规模来增强系统的网络应用。
3. 桌面系统
在桌面系统中,数据库服务器和客户机程序被安装在同一台计算机中,整个系统只有一台计算机。这台计算机既是服务器,也是客户机。因此不需要有网络连接,客户机只需要建立一个本地连接来访问本机上的数据库服务器。桌面系统适合于只有一个用户,或者有几个用户但共用一台计算机的情形。
数据库系统采用客户机/服务器结构的好处主要有以下几个方面。
• 数据集中存储。数据集中存储在服务器上,而不是分开存储在各客户机上。
• 所有用户都可以访问到相同的数据。
• 业务逻辑和安全规则可以在服务器上定义一次,而后被所有的客户机使用。
• 数据库服务器仅返回应用程序所需要的数据,这样可以减少网络流量。
• 节省硬件开销,因为数据都存储到服务器上,不需在客户机上存储数据,所以客户机硬件不需要具备存储和处理大量数据的能力。同样,服务器不需要具备数据表示的功能。
• 由于数据集中存储在服务器上,所以备份和恢复数据变得非常容易。
客户机/服务器结构的最大优势在于提高了使用和处理数据的能力。SQL Server在客户端和服务器端的良好表现,使它成为了一个优秀的客户机/服务器系统。