第1章SQLServer2008概述SQLServer作为一款面向企业级应用的关系数据库产品,在各行业和各软件产品中得到了广泛的应用,尤其是SQLServer2008的发布使得SQLServer无论在效率上还是功能上较SQLServer2000都得到了很大的改善和提高.
本章将主要讲解SQLServer2008的基础知识及其安装和使用方法.
1.
1SQLServer2008简介本节将主要介绍SQLServer的发展历史和特点,通过对数据库发展历史和SQLServer发展历史的了解,使读者更好地确定学习的目标.
1.
1.
1SQLServer发展历史1946年世界上第一台计算机"ENIAC"的诞生标志着人类进入了计算机时代.
使用计算机中所必须面临的一个问题就是资料的存储.
早期的计算机是将信息通过打孔的方式存储在纸带上,但是这种存储在纸带上的信息既不容易检索也不容易修改.
后来随着磁存储介质的发明,信息才以文本文件或二进制文件的形式存储.
这种以单独的文件来存放信息就叫做文件处理系统(file-processingsystem).
不同的信息被存放到不同的文件和不同的路径下,人们编写不同的应用程序来记录和处理需要的文件.
文件处理系统的主要缺点有:无数据格式标准.
由于文件和程序是在比较长的一段时间由不同的程序员编写的,而文件中并没有统一的格式来标注文件中的信息内容,容易造成对数据的理解不一致.
比如一个学生管理系统,a文件中记录了a学生选修的5门课程的成绩,b文件记录的是b学生选修的7门课程的成绩.
由于a和b选修的课程不同造成文件中的记录含义不同.
由于没有统一的格式标准,大量的这种文件放在一起必然造成程序处理的困难.
数据冗余.
采用文件存储的方式,由于缺乏唯一性检查容易造成相同的信息在几个文件中重复存储.
这种存储不但使得文件访问的开销增大,还会导致数据的不一致.
数据检索困难.
由于文件系统中没有索引,若要检索出文件内容中的某行数据,程序就必须打开所有文件,找出其中符合条件的数据.
还以前面提到的学生管理系统为例,若要找出英语分数最高的同学,程序必须打开每一个学生成绩的文件找到其中的英语成绩才能最终找到结果.
对于几万或是几十万个文件,若要遍历每一个文件,其处理效率可想而知.
传统的文件处理系统不支持以一种方便而高效的方式去获取所需数据.
而随着计算机的普及,需要处理的数据不断膨胀,在面对几百万条、几千万条的情况下,文件处理系统已经无能为力.
而且随着处理业务的不断复杂化,数据完整性问题、原子性问题、并发操作问题、数据安全问题等更使文件处理系统捉襟见肘.
在这种情况下数据库管理系统(databasemanagementsystem,DBMS)应运而生.
早期的数据库还是以数据存储和数据检索为主,使用网状数据模型和层次数据模型来描述数据、数据联系、数据定义和数据一致性约束.
1970年,美国IBM(主要产品DB2)公司的E.
F.
Codd发表的著名论文ARelationalModelofDataforLargeSharedDataBanks中首先提出了关系数据模型.
后来Codd又提出了关系代数和关系演算的概念、函数依赖的概念、关系的三范式,为关系数据库系统奠定了理论基础.
接着各大数据库厂商都推出了支持关系模型的数据库管理系统,标志着关系数据库系统新时代的来临.
随着关系数据库系统时代的到来,各大数据库厂商都开始推出自己的关系数据库产品.
1989年Sybase和Ashton-Tate公司(以其dBase软件成为当时数据库市场的霸主,1991年被Borland并购)合作开发了数据库产品SQLServer1.
0.
而Microsoft为了能在关系数据库市场和甲骨文公司(主要产品Oracle)以及IBM相抗衡,其在1992年劝说Sybase公司进行5年的合作,共同研发数据库产品.
并在之后推出了应用于WindowsNT3.
1平台上的MicrosoftSQLServer4.
21版本,从此标志着MicrosoftSQLServer的正式诞生.
20世纪90年代,数据库市场百花齐放,竞争十分激烈.
SQLServer的早期版本由于其自身的不足,仅局限在小型企业和个人应用上.
直到1998年SQLServer7.
0的推出才使SQLServer走向了企业级应用的道路.
而随后发布的SQLServer2000更是一款优秀的数据库产品,凭借其优秀的数据处理能力和简单易用的操作使得SQLServer跻身世界三大数据库之列(另外两个是Oracle和IBMDB2).
如表1.
1给出了SQLServer各版本的发布时间和开发代号.
表1.
1SQLServer各版本发布时间和开发代号年代版本开发代号1993年SQLServerforWindowsNT4.
21无1994年SQLServerforWindowsNT4.
21a无1995年SQLServer6.
0SQL951996年SQLServer6.
5Hydra1998年SQLServer7.
0Sphinx2000年SQLServer2000Shiloh2003年SQLServer2000Enterprise64位版Liberty2005年SQLServer2005Yukon2008年SQLServer2008Katmai虽然微软凭借着SQLServer2000成为世界数据库三巨头之一,但是与Oracle和IBM的DB2相比,SQLServer2000在数据处理效率、系统功能和市场占有率上仍有比较大的差距.
到2004年,据IDC统计,Oracle的市场占有率为41.
3%,而IBM和微软的市场份额则分别为30.
6%和13.
4%.
自从2000年微软发布SQLServer2000以后,5年来一直没有对SQLServer进行大的版本升级.
2005年SQLServer2005的发布可谓是微软在数据库市场投放的重磅炸弹,SQLServer2005不愧为微软"十年磨一剑"的精品之作.
其高效的数据处理、强大的功能、简易而统一的界面操作,以及诱人的价格立即受到众多软件厂商和企业的青睐.
SQLServer的市场占有率不断增大,微软和Oracle、IBM又站在了同一起跑线上.
3年后,SQLServer2008在原有SQLServer2005的架构上做了进一步的更改.
除了继承SQLServer2005的优点以外,还提供了更多的新特性、新功能,使得SQLServer上升到新的高度.
1.
1.
2SQLServer2008的特点SQLServer自从6.
0版脱离Sybase架构后,每一个重大版本的发布都引入了新的特性和功能.
SQLServer7.
0使用了全新的关系引擎和查询引擎设计,并率先在数据库管理系统中引入OLAP和ETL.
这标志着SQLServer进入商务智能(BI)领域.
SQLServer2000使得总体性能提高了47%,同时增加了其扩展性和对XML的支持.
另外SQLServer2000还率先引入了通知服务、数据挖掘、报表服务等.
SQLServer2005在性能上较SQLServer2000有了更进一步的提高.
在企业级数据管理平台方面的高可用性设计和全新的安全设计也特别引人注目.
在商务智能数据分析平台上,SQLServer2005增强了OLAP分析引擎、企业级的ETL和数据挖掘能力.
同时其还实现了与Office集成的报表工具.
另外在数据应用开发平台上,SQLServer2005实现了与.
NET的集成、WebService集成、NativeXML支持以及ServiceBroker等.
SQLServer2008除了在SQLServer2005的基础上优化查询性能外,还提供了新的数据类型、支持地理空间数据库、增加T-SQL语法、改进了ETL和数据挖掘方面的能力.
当然,作为微软在数据库市场的主打产品SQLServer2005的升级版,SQLServer2008的特性不仅仅如此.
微软官方网站给出了SQLServer2008的关键功能列表,以供读者参考.
总体来说,SQLServer正朝着更高的性能,更可靠更安全的方向发展,并提供商务智能的集成,成为了集数据管理和分析于一体的企业级数据平台.
1.
2SQLServer2008架构简介本节主要介绍SQLServer2008的系统架构、数据存储方式、读写方式以及SQL程序的运行方式.
读者只有对系统架构有了一个基本的认识,才能对更好地学习和理解SQLServer2008的相关知识.
1.
2.
1SQLServer2008系统架构SQLServer2008功能模块众多,但是从总体来说可以将其分成两大模块:数据库模块和商务智能模块.
数据库模块除了数据库引擎以外,还包括以数据库引擎为核心的ServiceBroker、复制、全文搜索等功能组件.
而商务智能模块由集成服务(IntegrationServices)、分析服务(AnalysisServices)和报表服务(ReportingServices)3大组件组成.
各组件之间的关系如图1.
1所示.
从图中可以看出,数据库引擎是整个SQLServer2008的核心所在,其他所有组件都与其有着密不可分的联系.
由于数据库引擎的重要性,笔者在此就主要讲解一下数据库引擎的内部架构.
如图1.
2显示了SQLServer2008的总体结构.
SQLServer数据库引擎有4大组件:协议(Protocol)、关系引擎(RelationalEngine,查询处理器,即QueryCompilation和ExecutionEngine)、存储引擎(StorageEngine)和SQLOS.
任何客户端提交的SQL命令都要和这4个组件进行交互.
图1.
2SQLServer2008架构协议层接受客户端发送的请求并将其转换为关系引擎能够识别的形式.
同时它也能将查询结果、状态信息和错误信息等从关系引擎中获取出来,然后将这些结果转换为客户端能够理解的形式返回给客户端.
关系引擎负责处理协议层传来的SQL命令,对SQL命令进行解析、编译和优化.
如果关系引擎检测到SQL命令需要数据就会向存储引擎发送数据请求命令.
存储引擎在收到关系引擎的数据请求命令后负责数据的访问,包括事务、锁、文件和缓存的管理.
SQLOS层则被认为是数据库内部的操作系统,它负责缓冲池和内存管理、线程管理、死锁检测、同步单元和计划调度等.
1.
2.
2SQLServer2008的协议当客户端向SQLServer发送SQL命令时,客户端发出的命令必须符合一定的通信格式规范才能被数据库系统识别,而这个规范就是TDS(TabularDataStream).
服务器和客户端上都有Net-Libraries,它可以将TDS信息包转换为标准的通信协议包.
SQLServer可以同时支持来自不同客户端的多种标准协议,其支持的协议有:共享内存(SharedMemory).
这是SQLServer默认开启的一个协议.
该协议简单,无须配置.
顾名思义,共享内存协议就是通过客户端和服务端共享内存的方式来进行通信.
所以使用该协议的客户端必须和服务端在同一台机器上.
由于共享内存协议简单,协议效率高而且安全,所以如果客户端(比如IIS)和数据库是在同一台机器上,那么使用共享内存协议是一个不错的选择.
命名管道(NamedPipes).
该协议是为局域网而开发的协议.
命名管道协议和Linux下的管道符号有点接近,一个进程使用一部分内存来向另一个进程传递信息,一个进程的输出是另一个进程的输入.
两个进程可以是同一台机器,也可以是局域网中的两台机器.
TCP/IP.
该协议是因特网上广为使用的协议.
该协议可以用于不同硬件、不同操作系统、不同地域的计算机之间通信.
由于TCP/IP协议没有共享内存协议和命名管道协议的限制,所以该协议在SQLServer上被大量使用.
虚拟接口适配器(VIA).
该协议是一种和VIA硬件一起使用的专门化协议.
相关细节需要从硬件供应商处获得.
1.
2.
3SQLServer2008的查询查询处理器由解析器、优化器、SQL管理器、数据库管理器和查询执行器组成.
它主要负责SQL命令处理.
查询处理器是整个SQLServer中最为复杂的组件,其性能的好坏就决定了整个SQLServer数据处理能力的高低.
当一个SQL命令从协议层传输到查询处理器时,各模块的分工如下:命令解析器首先接收到协议层传来的T-SQL语句.
命令解析器首先对T-SQL语法进行检查.
如果解析器无法正确识别语法,则直接抛出错误并标出错误的地方.
在语法检查通过后命令解析器会将SQL命令翻译成查询树,并将查询树传给查询优化器.
至此命令解析器的任务结束,而源SQL命令也将不再可用.
查询优化器负责查询树的执行优化并生成最终的执行计划.
查询优化器从命令解析器中获得查询树后,将不能优化的控制流DDL命令等编译成一种内部格式,而可以优化的DML语句(如select、insert、update和delete)将由查询优化器进一步判断最佳的处理方式.
对于可优化语句,查询优化器先将每个查询进行规范化,然后基于成本选择成本最低的执行计划.
执行成本以内存使用量、CPU使用率和I/O数量为依据.
查询优化器会考虑语句的类型并检查受影响的各个表的数据量,查询每张表中可用的索引和统计信息来决定最优的执行计划.
在规范化和优化完成后,查询树会被编译成执行计划.
执行计划实际上是一种数据结构,其中包含了每个命令将会影响的表,会使用的索引,进行安全检查和必须判断为真的选择条件.
SQL管理器负责管理与存储过程(StorageProcess,简称SP)执行计划有关的一切事务.
SQL管理器会判断什么时候一个执行计划需要重新编译并管理存储过程缓存以便其他进程重用这些缓存.
另外,SQL管理器还负责管理查询的参数自动化,也就是说SQL管理器可以从某些SQL命令中提取出参数,而将参数形式的SQL命令的执行计划缓存起来,从而提高SQL语句查询的效率.
数据库管理器管理查询编译和查询优化所需的对元数据的访问.
查询执行器运行查询优化器生成的执行计划.
该模块逐步运行执行计划中的每一个命令,管理其中的事务和锁,并将需要数据操作的执行计划传入存储引擎.
如图1.
3所示为SQLServer2008的查询流程图.
1.
2.
4SQLServer2008的数据操作SQLServer2008的数据操作主要由存储引擎来完成.
当查询处理器向存储引擎发出数据操作请求时,存储引擎会调用存取方法的代码向缓存管理器发出请求,缓存管理器负责从缓存中提供数据或者从硬盘上把数据读取到缓存中,下次再查询该数据时查询处理器就可以直接从缓存中读取数据,而不需要进行硬盘的I/O操作.
如图1.
4形象地表示了数据的读取方式.
由于内存的访问速度远远高于硬盘的访问速度,这种缓存读取的方式尽量减少了硬盘的读写操作,从而大大提高了数据处理效率.
SQLServer在数据访问中的最小单位是页(Page).
也就是说,即使只需要查询一个字节的数据,SQLServer至少也要访问1个页来查找结果.
每个数据库都是由页组成的集合.
1个页的大小是8KB,而8个连续的页组成了1个区(Extent).
SQLServer中使用了8种类型的页:数据页、LOB(大数据类型)页、索引页、页面自由空间页(PFS)、全局分配图和共享全局分配图页(GAM和SGAM)、索引分配图(IAM)页、大批量修改图(BCM)页和增量修改图(DCM)页.
虽然每个页的大小是8KB,但是SQLServer中规定表中行(不包括可变长度数据类型的列)的最大长度是8060字节.
所有的用户数据都保存在数据页或大型数据页上,所有的索引行都保存在索引页上.
PFS页用来跟踪数据库中哪些页是空的,可以用来记录新数据.
分配页(GAM、SGAM和IAM)用来跟踪其他页面,不含任何用户数据并且只能在内部使用.
大批量修改图页和增量修改图页用来使数据库备份和恢复效率更高.
如图1.
4展示的是数据的读取方式,但是对于数据的写入,SQLServer的处理方式有一定的不同.
为了保证事务的原子性——一个事务要么全部做完,要么什么都不做,但数据库必须要实现事务的回滚.
如果一个事务要先修改A表然后修改B表,当事务修改完成A表正要修改B表时系统发生了故障,那么该事务对A表的修改必须回滚到事务还没有开始前A表的状态.
先写日志技术使得事务回滚成为可能.
先写日志技术如图1.
5所示,SQLServer是先将数据修改操作在日志文件中进行,直到事务提交时才将对日志中的修改同步到数据文件中.
若事务被回滚,只需要恢复日志文件中的修改,数据文件并未修改过.
图1.
4数据读取方式图1.
5SQLServer先写日志技术另外,为了提高SQLServer的性能,采用了"懒写入"(LazyWrite)技术.
即对日志文件的修改和数据文件的修改都是在内存中的修改,SQLServer并不会立刻把修改写入硬盘.
懒写入技术使得对未写入硬盘的数据页的回滚成为可能.
除了一般的数据查询和数据写入操作外,存储引擎还要负责事务隔离级别的控制、锁的控制、批量装载、DBCC命令、备份和恢复操作等功能.
这些功能将在接下来的章节进行详细的介绍.
1.
3SQLServer2008的安装通过前两节的学习,相信读者对SQLServer已经有了一个初步的认识.
本节将主要讲解SQLServer2008的安装,为以后SQLServer的使用做环境准备,并正式开始踏上SQLServer2008的学习之旅.
1.
3.
1SQLServer2008的版本选择根据数据库应用环境的不同,SQLServer2008发行了不同的版本以满足不同的需求.
总地来说,SQLServer2008主要包括4种主要版本:精简版(SQLServer2008ExpressEdition)、工作组版(SQLServer2008WorkgroupEdition)、标准版(SQLServer2008StandardEdition)和企业版(SQLServer2008EnterpriseEdition).
每个版本的主要特点如下所述.
1.
精简版免费的精简版与其前身MSDE相似,使用核心SQLServer数据库引擎.
但其缺少管理工具、高级服务(如AnalysisServices)及可用性功能(如故障转移).
然而,精简版在一些关键方面对其前身进行了改进.
其中最值得一提的是微软消除了MSDE的"节流"限制——在数据库同时处理超过5个查询时性能下降.
精简版限于不超过1GB的内存,而且只能使用单颗处理器运行(而在MSDE可以访问两颗处理器和2GB内存).
精简版的每个实例可支持高达4GB的数据库,而MSDE是2GB的限制.
精简版包含ReportingServices.
此版本仅能使用SQLServer关系数据库作为报表数据源并且那些数据库必须位于运行报表服务器的物理机器上.
此外,精简版不包含ReportBuilder功能.
(说明:精简版是完全免费的.
若用户需要使用精简版SQLServer可以到微软官方网站下载.
2.
工作组版新的工作组版可用于很多以前由SQLServer标准版提供服务的场合,但售价略低一些.
其硬件限制与MSDE相似——两颗处理器、至多3GB内存(MSDE支持2GB)——但数据库大小不限.
工作组版包含用于批量导入和导出数据的SQLServerIntegrationServices向导,但不支持数据转换功能.
它不包含AnalysisServices而包含ReportingServices,但限于保存在运行报表服务器的物理机器上的关系数据库.
与SQLServer先前的标准版和企业版相同,工作组版可以采用每处理器或者服务器与"客户端访问许可证(CAL)"模型进行授权.
3.
标准版标准版对与之对应的SQLServer2000标准版进行了更新,保持四颗处理器的限制,但消除了2GB内存的上限.
有两种针对Itanium和X86X64处理器的版本,允许服务器访问大量内存.
标准版包含IntegrationServices,带有企业版中可用的数据转换功能的子集.
例如,标准版包含诸如基本字符串操作功能的数据转换,但不包含数据挖掘功能.
标准版还包括AnalysisServices和ReportingServices,但不具有在企业版中可用的高级可伸缩性和性能特性.
标准版中的ReportingServices可以使用关系及非关系数据源(如OLAP多维数据集),并可以使用不同SQLServer的数据库系统.
4.
企业版企业版位于产品系列的高端,消除了大部分可伸缩性限制.
其支持任意数量的处理器、任意数据库尺寸以及数据库分区.
企业版包含所有BI平台组件功能齐备的版本.
IntegrationServices包含所有的数据转换功能.
企业版中的AnalysisServices获得改进的性能和可伸缩性功能,如主动缓存、跨多个服务器对大型多维数据库进行分区的功能.
与标准版相同,企业版中的ReportingServices可以使用关系及非关系数据源,并可以使用不同于SQLServer的数据库系统.
它还得到高级可伸缩性功能,管理员可以配置ReportingServices群集.
其中,多个报表服务器共享单个报表服务器数据库.
如表1.
2列出了各版本的SQLServer2008之间的差异,以方便读者查看.
表1.
2各版本的SQLServer2008比较精简版工作组版标准版企业版最大处理器颗数/RAM/数据库容量1颗处理器、1GBRAM、4GB数据库2颗处理器、3GBRAM、无限制的数据库4颗处理器、无限制的RAM、数据库无限制的处理器、RAM、数据库、分区集成服务无导入/导出核心ETL功能、受限数据转换包含所有数据转换分析服务无无核心SSAS功能核心SSAS功能、主动缓存、分区的多维数据集报表服务仅包含SQLServer关系数据库、无ReportBuilder仅包含SQLServer关系数据库、无ReportBuilder无限制的数据源、ReportBuilder无限制的数据源、ReportBuilder、外扩的报表服务器另外微软还发布了开发者版(SQLServer2008DeveloperEdition)和180天评估版(SQLServer2008EvaluationEdition)等.
但是这些版本由于许可证限制,一般不用于生产服务器,所以在此不作比较.
除了使用在PC和服务器上的版本外,SQLServer2008还有一个移动版(CompactEdition).
移动版是一个免费的嵌入式SQLServer数据库,可以用于创建移动设备、桌面端和Web端独立运行的和偶尔连接的应用程序.
(说明:开发者版和评估版都包含企业的所有功能,若读者希望使用SQLServer的所有功能而没有企业版,那么可以使用开发者版和评估版.
1.
3.
2SQLServer2008的安装环境SQLServer2008各版本除了在CPU个数、内存使用量、数据库容量和功能模块等方面的限制外,还对操作系统、CPU类型、应用软件等有不同的要求.
精简版SQLServer只提供了32位的版本,它可以运行在Win2000、XP、2003、Vista和2008操作系统下.
工作组版也只提供了32位的版本,它可以运行在除了Home版以外的其他版本的操作系统上.
标准版同时提供了32位和64位版.
标准版只能运行在Server版的操作系统上.
企业版同标准版相同,提供了32位和64位版本而且只能运行在Server版的操作系统上.
评估版对操作系统的要求和工作组版相同.
开发者版的要求和精简版相同.
另外,ReportingService是发布在IIS上的,所以需要装ReportingService时必须先在操作系统中安装IIS.
其他一些支持文件如.
NETFramework,则会在安装SQLServer2008的同时自动安装到系统中.
1.
3.
3安装配置SQLServer2008在获得了需要安装的SQLServer光盘或安装文件,并确认计算机的操作系统、硬件和相关软件满足该版本的SQLServer的需求后,就可以安装配置SQLServer2008了.
(技巧:在XP和Vista操作系统下无法安装SQLServer2008企业版.
若读者希望安装SQLServer2008企业版用于学习而且有较大的内存,那就不必在计算机中重新安装2003的操作系统.
读者可以使用虚拟机VirtualPC(Home版无法安装)将Windows2003安装到虚拟机中,然后在虚拟机中就可以安装SQLServer2008企业版了.
SQLServer2008的具体安装步骤如下所述.
(1)将SQLServer的安装光盘放入光驱.
若使用镜像文件安装则使用虚拟光驱工具将镜像文件载入虚拟光驱.
(2)双击光盘驱动器,安装程序将检测当前的系统环境.
如果没有安装.
NetFramework3.
5SP1,将先安装该软件.
(3)安装程序检测当前系统的补丁.
如果必需的系统补丁并未安装,则会安装系统补丁.
(4)安装补丁后重启系统.
再次双击光盘驱动器,SQLServer2008安装中心将启动.
单击"安装"选项,切换到安装界面,如图1.
6所示.
(5)单击"全新SQLServer独立安装或向现有安装添加功能"选项,系统将打开SQLServer2008的安装程序,并检测当前环境是否符合SQLServer2008的安装条件,如图1.
7所示.
图1.
6SQLServer2008安装中心图1.
7SQLServer2008安装程序界面(6)单击"确定"按钮,进入产品密钥设置界面.
输入产品密钥,然后接受许可条款.
单击"安装"按钮,系统将安装程序支持文件.
安装完支持文件后,系统将再次检测安装程序支持规则,如图1.
8所示.
(7)单击"下一步"按钮,进入功能选择界面,如图1.
9所示.
图1.
8检测安装程序支持规则图1.
9功能选择这里将根据实际需要来选择安装对应的功能模块,如果出于学习的目的而不是安装到正式环境中,则可安装所有的功能模块.
另外该界面还可以修改安装目录.
(8)单击"下一步"按钮,进入实例配置界面,如图1.
10所示.
如果需要安装成默认实例,则选择"默认实例"单选按钮,否则选择"命名实例"单选按钮并在文本框中输入具体的实例名.
SQLServer允许在同一台计算机上同时运行多个实例.
这里安装默认实例,其他选项采用默认值即可.
(9)单击"下一步"按钮,进入磁盘空间要求界面.
该界面列出了安装SQLServer2008需要的硬盘空间大小.
(10)单击"下一步"按钮,进入服务器配置界面.
该界面主要配置服务的账户、启动类型、排序规则等,如图1.
11所示.
图1.
10实例配置界面图1.
11服务器配置界面笔者这里将账户名设置为SYSTEM.
由于SQLServerAnalysisServices和另外两个服务是商务智能中使用的,一般情况下不使用,所以将其启动类型设置为手动.
SQLServer代理设置为手动,在需要使用的时候启动.
排序规则一般情况下采用默认值即可.
(注意:如果账户名设置错误,系统将会提示,而且也不能执行下一步操作,所以必须确保每个服务的账户名都正确.
(11)单击"下一步"按钮,进入数据库引擎配置界面,用于配置数据库账户、数据目录和SQLServer2008新增的FILESTREAM,如图1.
12所示.
图1.
12数据库引擎配置界面在SQLServer2008中有两种身份验证模式:Windows身份验证模式和混合身份验证模式.
Windows身份验证模式是只允许Windows中的账户和域账户访问数据库;而混合身份验证模式除了允许Windows账户和域账户访问数据库外,还可以使用在SQLServer中配置的用户名密码来访问数据库.
如果使用混合模式则可以通过sa账户登录.
在该界面中则需要设置sa的密码.
单击"添加当前用户"按钮,可以快速将当前Windows用户添加到SQLServer的Windows身份认证用户中.
若要添加其他用户,则使用"添加"按钮.
"数据目录"选项卡中可以设置数据库文件保存的默认目录.
(说明:FILESTREAM中的设置保持默认值即可.
在本书第19章数据存储与索引中将专门对该功能进行详细讲解.
(12)单击"下一步"按钮,进入分析服务的配置界面.
使用同样的方法为该服务配置用户和数据目录.
(13)单击"下一步"按钮,进入报告访问的配置界面.
该界面提供了3个单选框用于用户选择.
如果需要集成SharePoint的报表服务,则选择"安装SharePoint集成模式默认配置"选项.
否则使用默认值选项即可.
(14)单击"下一步"按钮,系统将检查前面的配置是否满足SQLServer的安装规则.
如果规则没有全部通过,则根据提示修改数据库或服务器中的对应配置,直到全部通过.
(15)继续单击"下一步"按钮直到"安装"按钮出现.
单击"安装"按钮,SQLServer2008将按照向导中的配置将数据库安装到计算机中.
在数据库安装完成后向导将显示成功安装的页面,至此SQLServer2008顺利安装完成.
在SQLServer2008安装完成后数据库服务将自动启动.
打开Windows任务管理器,可以找到一个sqlserver.
exe的进程.
打开Windows的服务列表,可以找到服务SQLServer(MSSQLSERVER).
其状态为已启动,启动类型为自动,如图1.
13所示.
通过这两种方式都可以看到数据库服务已经成功安装运行.
图1.
13SQLServer的服务1.
4使用SQLServerManagementStudio在SQLServer2000中有企业管理器、查询分析器和OLAP分析管理器等管理工具用来对数据库进行管理.
在使用中经常要在企业管理器和查询分析器中不断切换.
在SQLServer2005版中将所有的操作集成到一个界面中,这就是SQLServerManagementStudio(简称SSMS).
而SQLServer2008继承了SQLServer2005的操作风格,同样是使用SSMS来操作和管理数据库.
1.
4.
1SQLServerManagementStudio简介在正确安装完成SQLServer2008后,Windows"开始"菜单下的程序列表中就会出现MicrosoftSQLServer2008的快捷方式,选择SQLServerManagementStudio命令便可启动SSMS.
SSMS启动后将弹出登录窗口如图1.
14所示.
在此需要连接的服务器类型是数据库引擎,而服务器的名称就是安装运行了数据库服务的计算机的机器名或IP,该名由SSMS自动查找带出,如果在安装数据库时使用的不是默认实例,而是使用了实例名,那么服务器名称中还要包括实例名.
比如服务器名称"127.
0.
0.
1\SQLEXPRESS"就是连接本机的SQLEXPRESS实例.
身份验证使用Windows身份验证,如果在安装数据库时配置了sa的登录密码,那么可以选择SQLServer身份认证,在用户名中输入sa然后输入配置的密码单击"连接"按钮后,SSMS将连接到指定的服务器.
连接到服务器后SSMS的总体界面如图1.
15所示.
SSMS采用微软统一的界面风格.
窗口最上面两排是菜单栏和工具栏,左侧是对象资源管理器窗口.
所有已经连接的数据库服务器及其对象将以树状结构显示在该窗口中.
中间区域是SSMS的主区域,SQL语句的编写、表的创建、数据表的展示和报表展示等都是在该区域完成.
主区域采用选项卡的方式在同一区域实现这些功能.
右侧是属性区域,主要用于查看和修改某对象的属性作用.
在图1.
15中,属性区域自动隐藏到窗口最右侧,用鼠标移动到属性选项卡上则其会自动显示出来.
图1.
14SSMS的登录窗口图1.
15SSMS界面(注意:SSMS中各窗口和工具栏的位置并不是固定的.
用户可以根据自己的喜好将窗口拖动到主窗体的任何位置,甚至悬浮脱离主窗体.
1.
4.
2使用SSMS打开表在对象资源管理器中展开数据库,若按照1.
3.
3节中的步骤安装数据库,一般情况下可以看到4个系统数据库和2个用户数据库,如图1.
16所示.
其中"系统数据库"节点下有4个数据库,在接下来的章节中会详细介绍这4个数据库.
除了系统数据库外,还有2个数据库分别是ReportServer和ReportServerTempDB.
ReportServer和ReportServerTempDB是报表服务中使用的数据库.
在SQLServer2005中会提供AdventureWorks和AdventureWorksDW这两个SQLServer中自带的示例数据库.
但是SQLServer2008中并没有,必须从网上下载安装.
在本书的大部分示例中都在AdventureWorks中操作,读者可以参考1.
7节的内容先安装示例数据库.
继续展开AdventureWorks数据库下的表,可以看到该数据库下的所有表.
现在需要查看某个表中的数据,比如查看Person.
AddressType表中的数据时,可以在该表上右击,选择"打开表"选项,SSMS将在主区域新建一个新的选项卡并将该表的所有数据显示在该选项卡中,如图1.
17所示.
图1.
17在SSMS中打开一个表数据表下面的一行数据显示了该表有6行数据,而AddressTypeID列是灰色的则表明该列是只读的.
若在该选项卡中对该表添加或修改数据,SSMS将会把更改提交到数据库系统中.
(注意:当表中有只读列时,若曾经将光标定位到只读列上,再打算修改该表中的数据时将无法使用中文输入法输入中文.
这是SSMS的一个Bug,到目前为止尚未得到解决.
只有通过复制粘贴来输入中文,或者取消表中只读列的只读属性中文输入法,才可以正常输入中文.
在打开表的情况下单击工具栏中的显示SQL窗格按钮,SSMS将在表结果的上面显示打开当前表结果所使用的T-SQL命令.
当然,用户也可以修改其中的T-SQL语句得到需要的查询结果.
在SQL窗格中修改T-SQL语句后需要单击工具栏中的执行SQL按钮,表中的内容将显示新的查询结果.
1.
4.
3在SSMS中使用T-SQLSSMS的主区域除了用来显示表数据和修改表数据外,还有一个十分重要且常用的功能,那就是编写T-SQL脚本.
SQL是结构化查询语言(StructuredQueryLanguage)的简写,是对关系数据库操作的公共语言.
而T-SQL是Transact-SQL的简写,在此指的是SQLServer使用的SQL语言.
若无特别说明本书中的SQL语句指的都是T-SQL语句.
在此主要介绍在SSMS中使用T-SQL.
关于T-SQL的详细内容,笔者将在后面的章节中进行详细的介绍.
SSMS支持对大多数数据库对象如表、视图、同义词、存储过程、函数和触发器等生成操作SQL语句,该功能减少了开发人员反复编写SQL语句的工作,大大提高了开发人员的工作效率.
比如需要生成查询表Person.
AddressType的SQL语句,只需要在该表上右击,选择"编写表脚本为"|"SELECT到"|"新查询编辑器窗口"命令,如图1.
18所示.
SSMS会在新选项卡中生成Person.
AddressType表的SQL查询语句,如代码1.
1所示.
代码1.
1生成的SELECT脚本SELECT[AddressTypeID],[Name],[rowguid],[ModifiedDate]FROM[AdventureWorks].
[Person].
[AddressType]此时可以单击工具栏的"执行"按钮或直接使用快捷键F5运行该SQL语句.
运行后结果将在主区域中SQL语句下以表格的形式显示出来,如图1.
19所示.
表格结果下的状态栏还显示了一些和当前执行命令的相关信息.
从左到右依次是数据库的版本、执行该命令的用户、执行命令的数据库、执行该命令所使用的时间和返回结果的行数.
图1.
18为表生产查询SQL语句图1.
19运行SQL语句(说明:若用户在编辑器窗口中选中了部分脚本,SSMS将只运行选中的SQL脚本;若编辑器窗口中用户没有选择任何脚本,SSMS将运行该窗口中的所有SQL脚本.
正如图1.
18所示,SSMS除了提供生成查询语句外,还可以生成表的创建、删除、插入、更改和删除的SQL语句.
若读者想自己编写SQL语句来运行,则可以先在对象资源管理器中选中要运行SQL语句的数据库或数据库下的对象,然后单击"新建查询"按钮或者使用快捷键Alt+N,SSMS将在主区域中新建一个空白编辑器窗口.
读者可在此编写SQL语句,而工具栏的数据库下拉列表用于选择当前SQL语句所运行的数据库.
(技巧:数据库中的对象名并不需要通过键盘输入,用户可以将需要的对象名从左侧的对象资源管理器中用鼠标拖动到编辑器窗口中.
这样既减少了用户的输入,也避免了输入拼写错误的情况发生.
1.
4.
4使用SSMS管理服务器和脚本当所操作和管理的数据库服务器较多时,对每个数据库服务器的操作都需要通过在登录窗口中输入数据库地址、用户名和密码来登录,这将是非常费时且非人性化的操作.
为了管理多台数据库服务器,SSMS允许将数据库服务器保存到"已注册的服务器"列表中.
以后要对哪台服务器进行操作,只需在列表中双击该服务器便可连接登录到该服务器上,无须再输入用户名密码.
在"视图"菜单中选择"已注册的服务器"选项,SSMS将会弹出"已注册的服务器"列表的窗口,如图1.
20左上角所示.
用户可以将所有使用的数据库服务器都添加到该列表中.
另外,用户还可以对这些服务器进行分组以方便管理.
对于已注册的服务器,用户只需要通过双击便可连接到该服务器上.
在长期的数据库操作和维护过程中,对于一些常用的数据库操作脚本用户需要将其保存到硬盘上以便下次执行相同的数据库操作时再次使用.
但是把脚本零散地保存到硬盘上不仅查找不方便而且也不便于以后的管理,为此SSMS提供了解决方案资源管理器来对脚本进行统一的管理.
在"视图"菜单中选择"解决方案资源管理器"选项,SSMS将打开解决方案资源管理器.
一个解决方案是由多个SQLServer脚本项目组成,而每个脚本项目下包含了SQL脚本和脚本执行所使用的连接,如图1.
20所示.
图1.
20已注册服务器和解决方案资源管理器用户可以将常用的脚本添加到解决方案中.
在解决方案的脚本执行后,SSMS会自动将该脚本执行的连接添加到解决方案中.
使用解决方案资源管理器后用户不再需要到文件夹中一个一个地查找打开需要的脚本,只需要打开该解决方案并双击需要打开的脚本文件既可.
同时用户也不用再去选择该脚本是在哪个数据库中执行,解决方案会自动将执行的数据库修改为上次执行该脚本的数据库.
819云互联 在本月发布了一个购买香港,日本独立服务器的活动,相对之前的首月活动性价比更高,最多只能享受1个月的活动 续费价格恢复原价 是有些颇高 这次819云互联与机房是合作伙伴 本次拿到机房 活动7天内购买独立服务器后期的长期续费价格 加大力度 确实来说这次的就可以买年付或者更长时间了…本次是5个机房可供选择,独立服务器最低默认是50M带宽,不限制流量,。官网:https://ww...
CUBECLOUD(魔方云)成立于2016年,亚太互联网络信息中心(APNIC)会员,全线产品均为完全自营,专业数据灾备冗余,全部产品均为SSD阵列,精品网络CN2(GIA) CU(10099VIP)接入,与当今主流云计算解决方案保持同步,为企业以及开发者用户实现灵活弹性自动化的基础设施。【夏日特促】全场产品88折优惠码:Summer_2021时间:2021年8月1日 — 2021年8月8日香港C...
imidc怎么样?imidc彩虹数据或彩虹网络现在促销旗下日本多IP站群独立服务器,原价159美元的机器现在只需要88美元,而且给13个独立IPv4,30Mbps直连带宽,不限制月流量!IMIDC又名为彩虹数据,rainbow cloud,香港本土运营商,全线产品都是商家自营的,自有IP网络资源等,提供的产品包括VPS主机、独立服务器、站群独立服务器等,数据中心区域包括香港、日本、台湾、美国和南非...