由浅入深学SQL Server:基础、进阶与必做300题
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

第1篇 数据库创建篇

第1章 SQL Server 2008简介及安装

SQL Server 2008(简称SQL 2008)是运行在网络环境下的数据库服务器。数据库是数据管理的实用技术,它的出现极大地促进了计算机应用向各行各业的渗透。SQL Server 2008是单进程、多线程、高性能的关系型数据库管理系统(RDBMS)。它可以用来对存储在计算机中的数据进行组织、管理和检索。它使用Transact-SQL语言在服务器和客户机之间传送请求。本章将对SQL Server 2008进行详细的学习,首先重点介绍数据库的基础和SQL Server 2008的安装过程。

在本章中,将重点学习以下内容:

● 数据库与数据库系统的基本概念。

● 数据库管理系统的基本概念。

● SQL Server数据库的发展。

● SQL Server数据库与其他数据库的比较。

● SQL Server 2008的安装要求及方法。

● SQL Server 2008的升级。

1.1 数据库基础

随着信息技术和市场的发展,特别是20世纪90年代以后,数据管理不再仅仅是存储和管理数据,而转变成用户所需要的各种数据管理的方式。同时,数据库技术也得到了更加迅猛的发展。本节将首先简略介绍数据库技术的基础,主要包括数据处理的基本概念、数据库系统的发展等。

1.1.1 数据管理与数据处理

本节将首先介绍数据、数据管理与数据处理的基本概念。

1.数据

数据(Data)是描述事物的符号记录。除了常用的数字数据外,文字(如名称)、图形、图像、声音等信息也都是数据。日常生活中,人们使用交流语言(如汉语)去描述事物。在计算机中,为了存储和处理这些事物,就要抽出对这些事物感兴趣的特征组成一个记录来描述。数据的表现形式是多种多样的。文字、图形、图像、声音、商品的销售账目、货物的运输情况等,这些都是数据。

例如,在学生信息管理中,可以对学生的编号、学生姓名、学生年龄、学生籍贯等情况这样描述:000610013、王一、18、山东。数据与其语义是不可分的,对于上面一条学生信息记录,了解其语义的人会得到信息,而不了解其语义的人则无法理解其含义。可见,数据的形式本身并不能完全表达其内容,需要经过语义解释。

2.数据管理与数据处理

现实世界中的事物反映到人们的头脑中,经过认识、选择、命名等综合分析而形成了印象和概念,产生了信息。因此,信息是维持生产、经济和社会活动必不可少的资源。而在计算机中,所有的信息只能用二进制数表示。一切信息进入计算机时,必须是数据化的。

数据的形式本身并不能完全表达其内容,需要经过语义解释。数据与其语义是不可分的,并不是所有的数据都是信息。信息是一种已经被加工为特定形式的数据,这种数据形式对接收者来说是有意义的。即只有有价值的数据才是信息。

数据处理是用计算机对数据进行加工处理的系统应用。它是一个由人、计算机等组成的能进行信息的收集、传递、存储、加工、维护、分析、计划、控制、决策和使用的系统,这些基本操作环节称为数据管理。在数据处理中,通常数据的计算比较简单,而数据的管理比较复杂。

数据的收集、整理、组织、存储和查询等操作是数据处理业务的基本环节,是任何数据处理业务中必不可少的共有部分。对于应用开发来说,最核心的任务就是通过应用程序很好地完成数据处理业务的功能。要完成这些功能,首先就必须学习和掌握数据管理技术,从而对数据处理提供有利的支持。

1.1.2 数据管理与数据库系统的发展

随着计算机硬件和软件的发展,数据管理技术也不断地发展。从数据管理方式的角度看,数据管理到目前共经历了人工管理阶段、文件系统阶段和数据库系统阶段。

1.人工管理阶段

在人工管理阶段(20世纪50年代以前),计算机主要用于科学计算。从硬件上看,外存只有磁带、卡片、纸带,没有磁盘等直接存取的存储设备;从软件上看,没有操作系统,也没有专门管理数据的软件,数据处理的方式是批处理。

2.文件系统阶段

人工管理阶段的数据管理有许多缺点,如数据独立性差、应用程序依赖于物理组织等。由于数据的组织是根据用户的要求设计,不同用户之间有许多共同的数据,分别保存在各自文件中,从而会造成很高的数据冗余度,给数据的维护带来许多问题。

而在文件系统阶段,对上述问题有了较大的改进。从处理方式上讲,不仅有了文件批处理,而且能够进行联机实时处理。虽然文件系统阶段比人工管理有了很大的改进,但随着数据量的急剧增加,数据管理规模不断扩大,文件系统也暴露出以下3个缺点:

● 数据冗余度(Redundancy)大。由于文件之间缺乏联系,造成每个应用程序都有对应的文件,有可能同样的数据在多个文件中重复存储,从而也会导致冗余度的问题。

● 数据不一致性。由于冗余数据的存在,稍不谨慎,就可能造成同样的数据在不同的文件具有不一样的数值。

● 数据和程序缺乏独立性。文件系统中文件是为某一特定应用服务的,文件的逻辑结构对该应用程序来说是优化的。但想对现有的数据再增加一些新的应用比较困难,系统不容易扩充。一旦数据的逻辑结构改变,就必须修改应用程序和文件结构的定义。而应用程序的改变,如应用程序所使用的高级语言的变化等,都将影响文件的数据结构的改变。

3.数据库系统阶段

随着计算机应用越来越广泛,数据量急剧增加,数据的共享要求越来越高。同时,软件价格开始上升,硬件价格下降,使编制和维护系统软件及应用程序所需的成本相对增加。在这种情况下,为了解决多用户、多应用共享数据的需求,使数据为尽可能多的应用服务,出现了数据库这样的数据管理技术。数据库系统的特点如下:

● 采用复杂的数据模型(结构)。数据模型不仅描述数据本身的特点,而且描述数据之间的联系。这种联系通过存取路径实现,数据不再面向特定的某个或多个应用,而是面向整个应用系统。数据冗余明显减少,实现了数据共享。

● 有较高的数据独立性。数据库的结构分成用户的逻辑结构、整体逻辑结构、物理结构三级。用户以简单的逻辑结构操作数据而无须考虑数据的物理结构。数据的物理结构与逻辑结构之间的差别可以很大。用户的数据和外存中的数据之间转换由数据管理系统实现。

● 在物理结构改变时,尽量不影响整体逻辑结构、用户的逻辑结构及应用程序,这就是物理数据独立性。

● 在整体逻辑结构改变时,尽量不影响用户的逻辑及应用程序,这是逻辑数据独立性。

● 数据库系统为用户提供了方便的用户接口,用户可使用SQL查询语言(通用的、功能极强的关系数据库语言,用于对数据库进行查询等操作,将在后续章节中进行详细的学习)或简单的终端命令操作数据库,也可以用程序方式操作数据库。

1.1.3 数据库、数据库管理系统与数据库系统概念

本节将简要介绍数据库、数据库管理系统、数据库系统这几个基本概念。

1.数据库

所谓数据库(Database,DB)是将数据按一定的数据模型组织、描述和存储,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享的数据集合。数据库由相互关联的数据表组成,表中包含若干的不同列。这些列主要用来存储在数据表中的相同数据类型的一系列值,并使数据冗余度尽可能地小。

2.数据库管理系统

在现实应用中,需要对收集到的大量数据进行整理、加工、归并、分类、计算、存储等处理,产生新的数据,以便反映事物或现象的本质、特征和内在联系。例如,在产品生产中,生产管理者根据某种产品历年销售数量及最近的市场需求调查,获得了许多数据,再对这些数据进行加工,就会得出相关产品的市场预测信息。生产管理者就可根据这些信息进行分析和评价,做出对该产品是增产、减产还是停产的决策。

完成这个数据处理任务的就是数据库管理系统(Database Management System,DBMS)。它是位于用户与操作系统之间的一层数据管理软件。数据库在建立、运用和维护时就由数据管理系统统一管理、统一控制。它使用户能够方便地定义数据和操纵数据,并能够保证数据的安全性、完整性以及多用户对数据的并发使用及发生故障后的数据恢复。

在日常学习和开发中所接触到的SQL Server、Oracle、Access、MySQL等都是各种各样的数据库管理系统,这些系统通过不同的实现机制为用户提供不同的数据管理服务。本书将围绕SQL Server 2008对数据管理的各个方面进行全面而详细的学习。

数据库管理系统提供以下4个方面的数据控制功能:

● 数据完整性。保证数据库始终包含正确的数据。用户可以设计一些完整性规则以确保数据的正确性。

● 数据安全性。保证数据的安全和机密,防止数据丢失或被窃取。

● 数据库的并发控制。避免并发程序之间的相互干扰,防止数据库被破坏,杜绝给用户提供不正确的数据。

● 数据库的恢复。在数据库被破坏或数据不可靠时,系统有能力把数据恢复到最近某时刻的正确状态。

3.数据库系统

数据库系统(Database System,DBS)一般由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员和用户组成。其中,数据库管理员和用户主要是指存储、维护和查询数据的各类使用者,主要有以下3类。

(1)最终用户(End User,EU)

最终用户是应用程序的使用者,通过应用程序与数据库进行交互。他们通过计算机联机终端存取数据库的数据,具体操作应用程序。通过应用程序的用户界面,使用数据库来完成其业务活动。数据库的模式结构对最终用户是透明的。

(2)应用程序员(Application Programmer,AP)

应用程序员是指负责设计和编写应用程序的人员。他们使用高级语言编写应用程序,以对数据库进行存取操作。数据库系统一般需要一个以上的应用程序员在开发周期内完成数据库结构设计、应用程序开发等任务,在后期管理应用程序,保证使用周期中对应用程序在功能及性能方面的维护、修改工作。对于大部分项目开发任务来说,项目开发者承担的一般是数据库的应用程序员角色。

(3)数据库管理员(Database Administrator,DBA)

DBA的职能是对数据库进行日常的管理,负责全面管理和控制数据库系统。数据库管理员的主要职责包括:

● 设计与定义数据库系统。

● 帮助最终用户使用数据库系统。

● 监督与控制数据库系统的使用和运行。

● 改进和重组数据库系统,优化数据库系统的性能。

● 备份与恢复数据库。

● 当用户的应用需求增加或改变时,DBA需要对数据库进行较大的改造,即重新构造数据库。

1.2 SQ L Server的发展

SQL Server是Microsoft公司的关系数据库管理系统系列,从20世纪80年代后期开始开发,最初是由Microsoft、Sybase和Ashton-Tate三家公司共同开发的。1992年,Microsoft公司、Sybase公司共同将SQL Server移植到了Windows NT平台上。在SQL Server 4版本发行以后,Microsoft公司专注于Windows N T平台上的SQL Server开发,而Sybase公司则致力于UNIX平台上的SQL Server开发。本书中介绍的是Microsoft SQL Server,以后简称SQL Server或MS SQL Server。

SQL Server 6.0版是第一个完全由Microsoft公司开发的版本。1998年推出了具有巨大变化的7.0版,这一版本在数据存储和数据库引擎方面发生了根本性的变化。又经过两年的努力开发,Microsoft公司于2000年9月公布了SQL Server 2000,其中包括企业版、标准版、开发版、个人版共4个版本。从SQL Server 7.0到SQL Server 2000的变化是渐进的,只是在SQL Server 7.0的基础上进行了增强。而后又逐渐开发出了SQL Server 2005、SQL Server 2008等系列版本。

SQL Server经历多年后发展到了今天的产品。表1.1概述了这一发展历程。

表1.1 SQL Server发展历程

1.3 与其他数据库的比较

SQL Server开发的出发点是基于基本的桌面数据库到高端企业级数据库之间。随着SQL Server数据库系列的不断发展,它具有了更强的功能和竞争力。本节将分别针对商用大型数据库与中小型数据库进行比较。

1.3.1 与商用大型数据库的比较

在商业数据库领域,SQL Server主要的竞争对手包括Oracle、IBM DB2和Sybase。

1.Oracle数据库

Oracle常常被认为是市场领导者,有着非常庞大的用户基础。虽然在安装和管理上比SQL Server复杂,但它非常适宜为大公司提供大型解决方案。Oracle有许多功能部件,这使得该产品功能强大,在可扩缩性和性能方面不可小觑。Oracle还非常灵活,允许使用者按需要添加工具,在这方面Oracle比SQL Server具有更强的适应性。例如,无论用户是否需要使用新的.NET特性,SQL Server 2008都要求用户必须在服务器上安装.NET Framework。

然而,从开发者的角度来看,Oracle的使用在许多方面都不太方便。例如,专门的SQL Query工具、XML和Web技术工具,以及建立完整数据库解决方案的方式。

Oracle的缺点还包括它相对SQL Server 2008较弱的安全性、较高的价格,以及在数据库安装和高效运行上的复杂性。从现阶段来看,尽管SQL Server也能同样高效地工作,但是Web搜索引擎还是广泛地使用Oracle。

2.IBM DB2关系型数据库系统

IBM DB2是IBM公司研制的一种关系型数据库系统。DB2主要应用于大型应用系统,具有较好的可伸缩性,可支持从大型机到单用户环境,应用于OS/2、Windows等平台下。DB2提供了高层次的数据利用性、完整性、安全性、可恢复性,以及小规模到大规模应用程序的执行能力,具有与平台无关的基本功能和SQL命令。DB2具有很好的网络支持能力,每个子系统可以连接十几万个分布式用户,可同时激活上千个活动线程,对大型分布式应用系统尤为适用。

与DB2相比,SQL Server 2008初始购置成本较低,同时其高性价比降低了硬件成本。SQL Server 2008提供了更好的性能和扩展性、高有效性、行业领先的安全性、更容易的管理能力、提高的开发人员生产力、领先的商业智能和数据仓储能力等多种功能。而IBM DB2用户必须购买额外的加载项才能实现这些功能。SQL Server 2008的自动化,简化或消除了很多日常的数据库管理任务,其数据管理的成本也低于IBM DB2。

另外,SQL Server 2008是数据库平台安全性的领军产品,远比DB2安全。更重要的是,Microsoft还提供了业界最受欢迎的开发平台Visual Studio,通过与Visual Studio相结合,SQL Server 200 8提供了被公认为是最高效的开发和数据库管理环境。SQL Server 2008与Visual Studio .NET的集成,为.NET开发人员提供了数据库应用开发的更优秀平台。在数据库中集成.NET逻辑,使SQL Server 2008具有显著优势。基于此,许多公司从DB2移植到了SQL Server。目前,SQL Server在新的关系型数据库管理系统许可证市场中所占的份额高于DB2。

3.Sybase关系型数据库系统

Sybase是美国Sybase公司研制的一种关系型数据库系统。它是一种典型的UNIX或Windows平台上客户机/服务器环境下的大型数据库系统。Sybase提供了一套应用程序编程接口和库,可以与非Sybase数据源及服务器集成。Sybase允许在多个数据库之间复制数据,适于创建多层应用。系统具有完备的触发器、存储过程、规则及完整性定义,支持优化查询,具有较好的数据安全性。

Sybase与SQL Server十分相似,但Sybase没有图形用户界面前端。虽然用于小规模安装的Sybase iAnywhere是有前端的,但高端的Sybase没有。同时,虽然Sybase有用于Windows的版本,但它主要还是用在UNIX上。尽管可以通过工具从Windows的机器连接到UNIX上的Sybase,但依然要完全用代码来建立数据库解决方案。SQL Server 2008有更加强大的编程语言,功能也比Sybase强大。

4.结论

总的来说,每个数据库都有其特有的SQL语法,尽管它们的基本SQL语法是一致的,即公认的ANSI-92标准(这意味着用于检索数据等的语法在数据库之间是相同的),但每个数据库用于维护的语法是其自身特有的。若试图在一个数据库中使用源自另一个数据库的独特SQL语法,可能是无效的,也可能所起的作用大相径庭。

因此,SQL Server 2008在数据库市场中将逐渐成为多种商业应用最佳的选择,它可以小到只用于少量用户,也可以大到足以支持最大的企业。它没有Oracle、Sybase或者DB2那样高的价钱,却能向上扩展并处理大字节(TB)的数据而无须太多的考虑。

1.3.2 与中小型数据库的比较

本节将介绍SQL Server 2008与MySQL等中小型数据库的比较。

1.MySQL数据库管理系统

MySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQL AB公司。该公司在2008年1月16日被SUN公司收购。目前MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源代码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。

对于一般的个人使用者和中小型企业来说,MySQL提供的功能已经绰绰有余。但对于大型企业应用来说,MySQL有它的不足之处,如规模小、功能有限(MySQL Cluster的功能和效率都相对比较差)等,不能提供如SQL Server般完善而强大的功能。同时,Microsoft具有世界上最多的开发人员和支持团队,而MySQL只有大约70个开发人员和50个支持人员,在对企业应用的支持上也略有不足。

2.Access数据库管理系统

Access是微软公司推出的基于Windows的桌面关系数据库管理系统(RDBMS),是Office系列应用软件之一。它提供了表、查询、窗体、报表、页、宏、模块7种用来建立数据库系统的对象,提供了多种向导、生成器、模板,把数据存储、数据查询、界面设计、报表生成等操作规范化,为建立功能完善的数据库管理系统提供了方便,也使得普通用户不必编写代码,就可以完成大部分数据管理的任务。但Access的功能有限,不能满足大规模的数据库应用的需求,同时不具有各种附加功能模块,但用户可以实现SQL Server从Access数据库的导入。

1.4 SQ L Server 2008简介

SQL Server 2008是一个重大的产品版本,它推出了许多新的特性和关键的改进,使得它成为迄今为止最强大和最全面的SQL Server版本。本节首先介绍SQL Server 2008的基本结构、版本分类与文件组成。

1.4.1 SQL Server 2008的体系结构

SQL Server 2008是基于Client/Server体系结构的关系型数据库管理系统,它具有可伸缩性、可用性和可管理性。SQL Server 2008使用Transact-SQL语句在Server和Client之间传送请求。SQL Server 2008把所有的工作负荷分解成在Server机器上的任务和在Client机器上的任务。Client应用程序负责商业逻辑和向用户提供数据,一般运行在一台或多台机器上。Server负责管理数据库的结构,其内容主要包括维护数据库中数据之间的关系,确保数据存储的正确性及在系统失败时恢复全部数据。Server还分配可用的服务器资源,例如内存、网络和磁盘。Client应用程序通过网络与Server通信。

1.4.2 SQL Server 2008的版本

根据应用程序的需要,安装要求可能有很大不同。SQL Server 2008的不同版本能够满足企业和个人不同的性能、运行时及价格要求。需要安装哪些SQL Server 20 08组件也要根据企业或个人的需求而定。下面简要介绍如何在SQL Server 2008的不同版本和可用组件中做出最佳的选择。

大多数企业都在3个SQL Server版本之间进行选择:SQL Server 2008 Enterprise Edition、SQL Server 2008 Standard Edition和SQL Server 2008 Workgroup Edition。大多数企业选择这些版本是因为只有Enterprise Edition、Standard Edition和Workgroup Edition可以在生产服务器环境中安装和使用。除了Enterprise Edition、Standard Edition和Workgroup Edition之外,SQL Server 2008还包括SQL Server 2008 Developer Edition和SQL Server 2008 Express Edition等,总共包含7个版本,下面一一进行介绍。

1.SQL Server 2008 Enterprise Edition(企业版)(32位和64位)

Enterprise Ed ition达到了支持超大型企业进行联机事务处理(OLTP)、高度复杂的数据分析、数据仓库系统和网站所需的性能水平。Enterprise Ed ition的全面商业智能和分析能力及其高可用性功能(如故障转移群集),使它可以处理企业中大多数关键业务的工作负荷。Enterprise Edition是最全面的SQL Server版本,是超大型企业的理想选择,能够满足最复杂的要求。

2.SQL Server 2008 Standard Edition(标准版)(32位和64位)

Standard Edition是适合中小型企业的数据管理和分析平台,它包括电子商务、数据仓库和业务流解决方案所需的基本功能。Standard Edition的集成商业智能和高可用性功能可以为企业提供支持其运营所需的基本功能。Standard Edition是需要全面的数据管理和分析平台的中小型企业的理想选择。

3.SQL Server 2008 Workgroup Edition(工作组版)(32位和64位)

对于那些在数据库的大小和用户数量上没有限制的小型企业,Workgroup Edition是理想的数据管理解决方案。Workgroup Edition可以用做前端Web服务器,也可以用于部门或分支机构的运营,它包括SQL Server产品系列的核心数据库功能,并且可以轻松地升级至Standard Edition或Enterprise Ed ition。Workgroup Ed ition是理想的入门级数据库,具有可靠、功能强大且易于管理的特点。

4.SQL Server 2008 Web Edition(Web版)(32位和64位)

SQL Server 2008 W eb版是针对运行于Windows服务器中要求高可用、面向Internet W eb服务的环境而设计的。这一版本为实现低成本、大规模、高可用性的Web应用或客户托管解决方案提供了必要的支持工具。

5.SQL Server 2008 Developer Edition(开发版)(32位和64位)

Developer Edition使开发人员可以在SQL Server上生成任何类型的应用程序。它包括SQL Server 2008 Enterprise Edition的所有功能,但有许可限制,只能用于开发和测试系统,而不能用做生产服务器。Developer Ed ition是独立软件供应商(ISV)、咨询人员、系统集成商、解决方案供应商,以及创建和测试应用程序的企业开发人员的理想选择。Developer Edi tion可以根据生产需要升级至SQL Server 2008 Enterprise Edition。

6.SQL Server 2008 Express Edition(精简版)(仅适用于32位)

SQL Server Express是一个免费、易用且便于管理的数据库。由于它的免费性,可以不受制于协议地进行再分发,还可以起到客户端数据库及基本服务器数据库的作用。SQL Server Express是针对低端ISV、低端服务器用户、创建Web应用程序的非专业开发人员及创建客户端应用程序的编程爱好者的理想选择。

7.SQL Server Compact 3.5版

SQL Server Compact是针对开发人员而设计的免费嵌入式数据库,这一版本的意图是构建独立、仅有少量连接需求的移动设备、桌面和Web客户端应用。它可以运行于所有的微软Windows平台之上,包括Windows XP、Windows Vista操作系统,以及Pocket PC、Smart Phone设备。

1.4.3 SQL Server 2008的数据库文件

在SQL Server 2008中,使用一组操作系统文件来映射数据库。数据库中的所有数据和对象都存在于下列操作系统文件中。

1.主要数据文件(.mdf)

主要数据文件包含数据库的启动信息,并用于存储数据。每个数据库都有一个主要数据文件。

2.次要数据文件(.ndf)

次要数据文件也用来存储数据,它含有不能置于主要数据文件中的所有数据。如果主要数据文件可以包含数据库中的所有数据,那么数据库就不需要次要数据文件。如果数据库很大,主要数据文件的容量超过了系统的限制,就需要设置一个或多个次要数据文件,并将它们存储在不同的磁盘上。

3.事务日志文件(.ldf)

事务日志文件包含用于恢复数据库的日志信息。每个数据库都必须至少有一个事务日志文件。一般情况下,一个简单的数据库可以只有一个主要数据文件和一个事务日志文件。如果数据库很大,可以使用一个主要数据文件和多个次要数据文件,数据库内的数据和对象分布到这些主要和次要文件中;另外,可以设置多个事务日志文件来包含事务日志信息。所有数据文件和事务日志文件都是默认存储在C:\Program Files\Microsoft SQL Server目录下。

数据库文件和文件组必须遵循以下规则:

● 一个文件和文件组只能被一个数据库使用,也就是在一个文件和文件组中不能够包含其他数据库的数据。

● 一个数据库文件只能属于一个文件组。

● 事务日志文件不能加入文件组中。

1.5 SQ L Server 2008的安装要求

本节将从硬件、软件运行环境和操作系统等几个方面介绍在安装SQL Server 2008以前需要了解的数据库安装要求。

1.5.1 对硬件的要求

SQL Server 2008对硬件的安装要求主要包括CPU、内存、硬盘等几个方面。

1.CPU

对于运行SQL Server 2008的CPU,32位版本要求Pentium III兼容处理器或速度更快的处理器,速度最低要求1.0GHz,建议2.0GHz或更快。64位版本要求至少为AMD Op teron、AMD Athlon 64、支持In tel EM64T的Intel Xeon和支持EM64T的Intel Pentium IV,速度最低要求1.4GHz,建议2.0GHz或更快。然而,像这里列出的大多数最低要求一样,微软事实上推荐的是更快的处理器。处理器越快,SQL Server 2008运行得就越好,由此而产生的瓶颈也越少。现在的很多机器使用的都是2.0GHz及以上的处理器,这将缩减开发所花费的时间。

然而,与提升SQL Server 2008的运行速度相关的硬件并非只有处理器,SQL Server 2008的速度很大程度上也受当前计算机中内存空间的影响。

2.内存

确认系统的处理器速度足以满足需求后,接着要检查系统中是否有足够的内存。SQL Server 2008需要的RAM容量至少为512MB。不应该打开和运行太多的应用程序,因为那样很容易让SQL Server 2008得不到足够的内存,从而使其运行变慢。微软推荐1GB或者更大的内存,当真正开始使用SQL Server 2008时,实际上内存大小至少应该是推荐大小的两倍。

如果要运行企业版,特别是若想要使用更高级的特性时,则至少(最低限度)需要有1GB的内存。内存越大越好。对于任何开发人员所使用的计算机,强烈建议至少要有1GB的内存,若有2GB则比较理想,这样才能够获得良好而全面的性能。

3.硬盘

SQL Server需要比较大的硬盘空间。这不足为奇,如今主要的应用程序都是需要大量的硬盘空间的。不考虑要添加的数据文件,SQL Server自身将占用1GB以上的硬盘空间。当然,本章后面要用到的安装选项将决定总共所需的硬盘空间。通过选择不安装某个可选部件,可以减少对硬盘空间的需求,例如,选择不安装联机丛书。

实际硬盘空间需求取决于系统配置和决定安装的功能。表1.2提供了SQL Server 2008各组件对磁盘空间的要求。

表1.2 SQL Server 2008 各组件对磁盘空间的要求

此外,还需要在硬盘上留有备用的空间,以满足SQL Server和数据库的扩展。另外,还需要为开发过程中要用到的临时文件准备硬盘空间。

1.5.2 对操作系统及软件运行环境的要求

SQL Server 2008可以运行在Windows Vista Home Basic及更高版本上,也可以在Windows XP上运行。从服务器端来看,它可以运行在Windows Server 2003 SP2及Windows Server 2008上,也可以运行在Windows XP Professional的64位操作系统及Windows Server 2003和Windows Server 2008的64位版本上。因此,可以运行SQL Server的操作系统很多。

同时,SQL Server 2008的运行需要以下.NET Framework版本。

● Windows Server 2003(64位)IA64上的SQL Server 2008:.NET Framework 2.0 SP2。

● SQL Server Express:.NET Framework 2.0 SP2。

● SQL Server 2008的所有其他版本:.NET Framework 3.5 SP1。

安装.NET Framework需要重新启动操作系统。如果安装Windows Installer也需要重新启动操作系统,安装程序将等到.NET Framework和Windows Installer组件完成安装后才进行重新启动。所有的SQL Server 2008安装还需要使用Microsoft I nternet E xplorer 6 SP1或更高版本。Microsoft管理控制台(MMC)、SQL Server Management Studio、Business Intelligence Development Studio、Reporting Services的报表设计器组件和HTML帮助都需要Internet Explorer 6 SP1或更高版本。

1.6 SQ L Server 2008的安装过程

在上一节介绍了完成SQL Server 200 8安装所应该具有的软、硬件条件,本节将实际完成SQL Server 2008的安装工作。虽然SQL Server 2008的安装过程相对Oracle等数据库的安装更为简单,但它的安装也涉及了相对较多的步骤,所以在本节中我们采用分节的方式进行讲述。

1.6.1 准备安装SQL Server 2008

在安装以前首先确保以管理员身份登录,从而能够在机器上创建文件和文件夹。如果是使用DVD-ROM进行安装,并且安装进程没有自动启动,就打开Windows资源管理器并双击autorun.exe(位于DVD-ROM根目录)。

如果不使用DVD-ROM进行安装,则双击下载的可执行的安装程序。如果当前没有安装Microsoft .NET Framework 3.5版,则会出现该版本的安装对话框。

说明:.NET是微软创建的一种框架,允许用不同编程语言(如VB .NET、C#及其他)编写的程序有一个公共编译环境。SQL Server 2008在其自身内部的一些工作要使用.NET。当然,开发人员也可以用任何微软的 .N ET语言编写 .N ET代码,放入SQL Server中。

在SQL Server 2008中,除了可以用T-SQL以外,还能够使用.NET和LINQ来查询数据库。.NET Framework 3.5安装完成后,会出现【SQL Server安装中心】窗口,如图1.1所示。

图1.1 【SQL Server安装中心】窗口

单击【安装】按钮,如图1.2所示。

通过【SQL Server安装中心】窗口,可以完成下列任务:

● 执行全新的SQL Server 2008独立安装。

● 向已有的SQL Server 2008安装添加新的功能。

● 从SQL Server 2000或SQL Server 2005升级到SQL Server 2008。

● 搜索SQL Server 2008的产品在线更新。

● 完成SQL Server故障转移群集安装和节点添加。

图1.2 使用SQL Server安装中心安装页

1.6.2 安装支持及许可

下面基于【SQL Server安装中心】窗口安装支持及许可。在【SQL Server安装中心】窗口面板左侧选择【安装】选项列表,在其中选择第一个项目,即【全新SQL Server独立安装或向现有安装添加功能】,这样就开始了SQL Server 2008的安装。首先将进行快速的系统检查,检查结果如图1.3所示。在SQL Server的安装过程中,要使用大量的支持文件,此外,支持文件也用来确保有效的安装。

图1.3 系统检查

假如检查过程中没出现任何错误,则单击【下一步】按钮,在如图1.4所示的【许可条款】界面中选择【我接受许可条款】复选框,接受相应的软件许可条款,继续单击【下一步】按钮。

图1.4 安装软件许可条款

注意:如果是首次安装SQL Server 2008软件,请仔细阅读相应的软件许可条款。

1.6.3 选择要安装的功能

完成软件许可条款安装,进入【功能选择】界面,如图1.5所示。在该步骤选择需要安装的内容。此处可以安装所有的功能,也可以根据需要,有选择性地安装各种组件。通常至少需要安装【数据库引擎服务】、【客户端工具】以确保最基本的应用功能。

图1.5 选择需要安装的功能

如图1.5所示,需要安装的功能包括如下几项。

● 【数据库引擎服务】:这是SQL Server 2008的核心,安装SQL Server运行所需的主要引擎、数据文件等。

● 【SQL Server复制】:当你在数据库上执行数据修改时,如果你不仅想要把修改发送到该数据库上,而且还想要把修改发送到一个相似的数据库上(这个相似的数据库是为了复制修改而创建的),那么你可以使用这一选项把修改复制到那个数据库上。

● 【全文搜索】:这一选项允许对数据库中的文本进行搜索。

● 【Analysis Services】:使用该工具可以获取数据集,并对数据切块、切片,分析其中所包含的信息。

● 【Reporting Services】:这一服务允许从SQL Server生成报表,而不必借助第三方工具,如Crystal Report。

● 【Business Intelligence Development Studio】:如果你想要使用基于分析的服务来分析数据,那么可以使用这个图形用户界面与数据库进行交互。

● 【客户端工具连接】:这些工具中,一些为客户端机器提供到SQL Server的图形化界面,另一些则在客户端协同SQL Server一起工作。这一选项适于布置在开发人员的机器上。

● 【Integration Services】:最后这个选项使你能够创建完成行动的过程,例如,从其他数据源导入数据并使用这些数据。

● 【客户端工具向后兼容性】:本选项用于保证客户端工具在未来的新版本上的兼容性问题,减少以后升级的麻烦。

● 【客户端工具SDK】:用于为需要利用客户端编程的用户安装相应的SDK包。

● 【SQL Server联机丛书】:这是一个帮助系统。如果在SQL Server的任何方面需要更多的信息、说明或额外的详细资料,可求助于联机丛书。

● 【管理工具】:为SQL Server 2008安装完整的管理工具,例如,活动和监视器、分区向导、对象资源管理器等。

● 【Microsoft Sync Framework】:当与脱机应用程序(例如,移动设备上的应用程序)一起工作时,必须在适当的地方存在某种同步机制。这一选项允许发生这些交互。

1.6.4 数据库实例及磁盘空间配置

完成安装功能的选择后,将进入实例的配置,如图1.6所示。

图1.6 【实例配置】界面

操作步骤如下:

(1)选择【默认实例】或【命名实例】单选按钮来修改用户使用的SQL Server 2008的实例的名称。

(2)单击【实例根目录】文本框右侧的按钮来对实例存放的目录进行修改。

(3)查看界面右下方的【已安装的实例】数据网格显示的本机已安装的实例的名称和基本信息。如果需要修改,重复前两步。

(4)完成实例配置工作后,单击【下一步】按钮。

(5)如图1.7所示,进入【磁盘空间要求】界面,界面的【磁盘使用情况摘要】面板将显示在所指定的磁盘驱动器中需要占用的磁盘空间数量、分类占用的磁盘空间数量及该驱动器中可用的磁盘空间数量。如果该驱动器空间不足,将无法继续安装,可单击【上一步】按钮选择另外一个驱动器。

图1.7 【磁盘空间要求】界面

1.6.5 服务器配置

如果磁盘空间满足要求,则单击【下一步】按钮,进入如图1.8所示的【服务器配置】界面。

将各项服务的启动类型修改为自动或手动模式,将账户名设定为Network Service,密码将使用Windows登录时的密码。如用户在使用系统前必须先登录到Windows一样,SQL Server 2008及在【功能选择】界面中定义的其他服务在启动前也必须先登录到Windows。SQL Server、Reporting Services等服务不需要任何人登录到安装SQL Server的计算机上就可以运行,只要计算机成功启动即可。

图1.8 【服务器配置】界面

注意:SQL Server 2008在安装时,本地的默认服务账号是Local System,网络的默认服务账号是Network Service。如果确实登录到了计算机上,那么,还可以用这个Windows用户ID登录SQL Server并启动它的服务。由于SQL Server可以运行在家庭或本地系统上,当用户进入SQL Server时,多半采用的是这种方式。这就是所谓的本地系统账户(Local System)。而Network Service则针对在网络环境下使用SQL Server 2008的情况,使用相应的账户来通过网络进行访问,账户的密码在使用了若干天后会过期,或者在若干次输入错误密码的登录尝试后会锁定账户。如此一来,就从许多其他事物中保护了计算机和网络。

单击【下一步】按钮,选择身份验证模式,如图1.9所示。现在,将定义如何在SQL Server的安装中强制实施安全性。这里有两个选择:【Windows身份验证模式】和【混合模式】。

图1.9 【数据库引擎配置】界面

1.Windows身份验证模式

要登录到Windows 2003/XP/Vista机器上,必须提供用户名。当完成这一步时,Windows事实上是在域控制器中根据用户名凭据验证用户。如果Windows/SQL Server是在本地的独立机器上运行,则进行本地验证。凭据检查用户所属的访问组(用户权限)。用户可以上至管理员,具有改变计算机中任何事物的能力,也可以下至基本用户,只拥有极其有限的权限。于是这就给出了一种信任连接,换言之,在登录Windows之后启动的应用程序可以相信,经Windows验证,账户已经通过了必要的安全检查。

2.混合模式

如果将SQL Server安装为混合模式,意味着既可以使用Windows身份验证,也可以使用SQL Server身份验证。混合模式,首先需要提供用户ID和密码进行连接,而不是由SQL Server取用登入账户的Windows ID或登入账户用户所属的组;其次,并不认定提供的ID都是有效的。假设用户要在本地客户端机器上使用远程数据进行工作,那么远程的机器需要知道登录凭据,因而使用SQL Server身份验证将是最简单的方法。

(1)接下来,还必须指定SQL Server 2008管理员账户。这是一个特殊的账户,在紧急的情况下(例如,当SQL Server拒绝连接时),能够使用这个账户进行登录,并让SQL Server恢复运行。通常,管理员账户是某个服务器账户ID,也可以通过添加不同的用户来指定不同的SQL Server管理员,单击【添加当前用户】按钮添加当前登录的Windows用户,单击【添加】按钮将打开用户选择窗口,可以在其中选择不同的用户名设置为SQL Server管理员。

(2)在【数据目录】选项卡中,可以明确SQL Server默认把数据存储在何处、备份目录的默认位置在哪里,以及临时数据库的默认目录是什么。在一个物理服务器上,能够有若干个安装,例如,可能有一个安装用于账户,另一个安装用于产品控制等。每一个实例的数据位于不同的数据目录中,这包括创建的任何临时数据库和产生的任何日志文件,因此,尽管共享一个物理服务器,但安装是隔离的。

(3)在【FILESTREAM】选项卡中配置的是另一种类型的数据目录,当处理大量非结构化数据时,要使用FILESTREAM。过去这类数据完全与SQL Server分开存储,现在FILESTREAM使SQL Server能够管理这些数据,该选项卡告知SQL Server这种数据存储在物理服务器的什么地方。

1.6.6 Analysis Services服务及Reporting Services配置

完成所有配置后,单击【下一步】按钮,进入【Analysis Se rvices配置】界面,如图1.10所示。

图1.10 【Analysis Services配置】界面

(1)该配置界面包括【账户设置】和【数据目录】两个选项卡。在【账户设置】选项卡中,可以单击【添加当前用户】按钮添加当前登录的Windows用户;单击【添加】按钮将打开用户选择窗口,可以在其中选择不同的用户名设置为Analysis Services管理员;单击【删除】按钮可以删除所添加的账户。在【数据目录】选项卡中,可以对服务数据存放的目录进行设定。

(2)完成Analysis Services配置后,单击【下一步】按钮进入【Reporting Services配置】界面,如图1.11所示。对Reporting Services而言,有3个不同的安装选项:【安装本机模式默认配置】、【安装SharePoint集成模式默认配置】和【安装但不配置报表服务器】。

图1.11 【Reporting Services配置】界面

(3)如果选择最后一个选项,将在服务器上安装SQL Server Reporting Services,但不会对其进行配置。如果只是为了报表选项而构建特定的服务器,则该选项十分理想。

(4)安装完成后,必须创建报表数据库。本机模式配置是最简单的选项,也是我们要使用的选项。选择该选项,将在SQL Server中安装Reporting Services,并创建必需的数据库。仅当在本地实例而非远程实例上进行安装,并且Reporting Services也存在于那个本地实例上时,该选项才是有效的。

(5)对服务账户,本地实例上(即localhost)的报表服务器的URL、报表管理器URL及报表服务数据库的名称使用默认值。如果部署了SharePoint安装,并且想要Reporting Services使用该体系结构,则选择这一选项,这一选项允许使用SharePoint的功能。

1.6.7 完成安装

最后完成安装的几个主要操作步骤如下:

(1)完成Reporting Services配置后,单击【下一步】按钮进入【错误和使用情况报告】界面,如图1.12所示。

图1.12 【错误和使用情况报告】界面

(2)单击【下一步】按钮,出现如图1.13所示的【安装规则】界面。在本步中不需要进行其他的设置,直接根据提示信息,单击【下一步】按钮进入如图1.14所示的【准备安装】界面,单击【安装】按钮开始安装,安装过程如图1.15所示。

图1.13 【安装规则】界面

图1.14 【准备安装】界面

图1.15 【安装进度】界面

(3)安装完成后,单击【下一步】按钮,生成整个安装过程的安装日志,此时,成功完成整个SQL Server 2008的安装工作。

1.7 升级到SQL Server 2008

从SQL Server 2005升级到SQL Server 2008的过程与上一节的安装过程基本相似,这里不再一一进行说明,仅对升级步骤进行一个简单的步骤描述。

(1)插入SQL Server安装光盘,然后双击根文件夹中的setup.exe。若要从网络共享进行安装,移动到共享中的根文件夹,然后双击setup.exe。如果出现Microsoft SQL Server 2008安装对话框,则单击【确定】按钮,安装必备组件,然后单击【取消】按钮,退出SQL Server 2008安装。

(2)如果出现.NET F ramework 3.5 SP 1安装对话框,则选中相应的复选框以接受 .N ET Framework 3.5 SP1许可协议。单击【下一步】按钮,当.NET Framework 3.5 SP1的安装完成后,单击【完成】按钮。

(3)Windows Installer 4.5也是必需的,并且可能由安装向导进行安装。如果系统提示重新启动计算机,则重新启动计算机,然后再次运行SQL Server 2008 Setup.exe。

(4)必备组件安装完成后,安装向导会启动SQL Server安装中心。若要升级SQL Server 2008的现有实例,则单击如图1.16所示的【从SQL Server 2000或SQL Server 2005升级】选项。

图1.16 【SQL Server安装中心】窗口

(5)如果需要使用安装程序支持文件,SQL Server安装程序将安装它们。如果安装程序指示重新启动计算机,请在继续操作之前重新启动。可以看到,在执行升级到SQL Server 2008的安装时,所需的安装程序支持文件比全新的SQL Server 2008要多,如图1.17所示。安装程序支持文件不存在错误,单击【下一步】按钮继续。

图1.17 升级到SQL Server 2008时的【安装程序支持规则】界面

(6)系统配置检查器将在计算机上运行发现操作。若要继续,请单击【确定】按钮,系统会为安装创建安装日志文件。

(7)在【产品密钥】界面单击相应的选项按钮,以指示是升级到免费版本的SQL Server,还是拥有该产品生产版本的PID密钥。

(8)在【许可条款】界面阅读许可协议,然后选中相应的复选框以接受许可条款和条件。单击【下一步】按钮继续。若要结束安装程序,单击【取消】按钮。

(9)在【选择实例】界面指定要升级的SQL Server实例,如图1.18所示。在本机上已安装了全新的SQL Server 2008实例WJDB(对应版本为10.x)、和Visual Studio一起安装的SQL Server 2005实例SQLEXPRESS(对应版本为9.x)及单独安装的SQL Server 2000个人版实例MSSQLSERVER(对应版本为8.x)。如果选择对SQL Server 2005的实例进行升级,则在【要升级的实例】下拉列表框中选择实例名称为【SQLEXPRESS】。相应地,如果要对SQL Server 2000的实例进行升级,则在【要升级的实例】下拉列表框中选择实例名称为【MSSQLSERVER】,然后单击【下一步】按钮继续升级。

图1.18 【选择实例】界面

(10)在【选择功能】界面会预先选择要升级的功能。选择功能名称后,右侧窗格中会显示每个组件组的说明。请注意,不能更改要升级的功能,并且不能在升级操作过程中添加功能,因此,选项均为灰色,如图1.19所示。

图1.19 【选择功能】界面

(11)在【实例配置】界面指定是安装默认实例还是命名实例,如图1.20所示。默认情况下,实例名称用做实例ID。这用于标识SQL Server 2008实例的安装目录和注册表项。默认实例和命名实例的默认方式都是如此。对于默认实例,实例名称和实例ID为MSSQLSERVER。若要使用非默认的实例ID,选中【命名实例】单选按钮,并提供一个值。默认情况下,实例根目录为C:\Program Files\Microsoft SQL Server\。

图1.20 【实例配置】界面

(12)若要指定一个非默认的根目录,请使用所提供的字段,或单击【浏览】按钮找到一个安装文件夹。所有SQL Server Service Pack和升级都将应用于SQL Server实例的每个组件。检测到的实例和功能网格将显示运行安装程序的计算机上的SQL Server实例。如果计算机上已经安装了一个默认实例,则必须安装SQL Server 2008的命名实例。单击【下一步】按钮继续。

(13)【磁盘空间要求】界面计算指定的功能所需的磁盘空间,并将磁盘空间要求与正在运行安装程序的计算机上的可用磁盘空间进行比较,如图1.21所示。

图1.21 硬盘使用情况界面摘要

(14)在【服务器配置】界面指定SQL Server服务的登录账户,此界面配置的实际服务取决于要升级的功能。

(15)身份验证和登录信息将从早期的SQL Server实例继承。可以为所有的SQL Server服务分配相同的登录账户,也可以单独配置各个服务账户,还可以指定服务是自动启动、手动启动还是禁用(和直接安装的情况类似)。可以对各个服务账户进行单独配置,以确保向SQL Server服务授予它们完成各自任务所必须拥有的最小权限。若要为此SQL Server实例中的所有服务账户指定相同的登录账户,请在界面底部的字段中提供凭据。安全说明不要使用空密码,应使用强密码。为SQL Server服务指定登录信息后,请单击【下一步】按钮。

(16)在【错误和使用情况报告】界面指定要发送到Microsoft以帮助改进SQL Server的信息。默认情况下,用于错误报告和功能使用情况的选项处于启用状态。

(17)在升级操作开始之前,系统配置检查器将运行多组规则来针对指定的SQL Server功能验证计算机配置。

(18)【准备升级】界面显示在安装过程中指定的安装选项的树视图。若要继续,请单击【安装】按钮。

(19)在安装过程中,进度页会提供相应的状态,因此可以在安装过程中监视安装进度。

安装完成后,【完成】界面会提供指向安装摘要日志文件及其他重要说明的链接。若要完成SQL Server安装过程,单击【关闭】按钮。如果安装程序提示重新启动计算机,立即重新启动。

1.8 小结

本章讲解了数据库的基本概念、SQL Server数据库的发展及与其他数据库的比较,在此基础上学习了SQL Server 2008的安装及升级方法。本章的重点在于对数据库、数据库管理系统与数据库系统三者之间关系的理解。难点在于正确掌握SQL Server 2008的安装与升级,尤其是安装过程中的各类配置任务。通过本章内容的学习,读者已经做好了系统学习SQL Server 2008的准备。管理SQL Server最好的方法之一是使用SSMS,下面的章节将对此展开讨论。

1.9 习题

【题目1】完成SQL Server 2008标准版的全新安装。

【分析】在全新安装的时候,首先,需要注意正确选择要安装的路径及功能。例如,是否选择安装集成服务、报表服务等。其次,要注意安装时对登录方式及密码的设定,同时要注意记住安装时所设定的SQL Server服务器实例名。

【题目2】完成SQL Server 2008 R2版本的安装。

【分析】与SQL Server 2008标准版的安装的注意事项类似。

【题目3】完成SQL Server 2008的卸载。

【分析】SQL Server 2008的卸载首先要注意在卸载前停止相关的服务,其次要注意选择卸载的方式和功能。

【题目4】完成从SQL Server 2005到SQL Server 2008的升级过程。

【分析】从SQL Server 2005到SQL Server 2008的升级过程中的注意事项与全新安装类似。

【题目5】完成从SQL Server 2000到SQL Server 2008的升级过程。

【分析】从SQL Server 2000到SQL Server 2008的升级过程中的注意事项与全新安装类似。