Server作为一款面向企业级应用的关系数据库产品

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第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选修的课程不同造成文件中的记录含义不同。由于没有统一的格式标准,大量的这种文件放在一起必然造成程序处理的困难。数据冗余。采用文件存储的方式,由于缺乏唯一性检查容易造成相同的信息在几个文件中重复存储。这种存储不但使得文件访问的开销增大,还会导致数据的不一致。数据检索困难。由于文件系统中没有索引,若要检索出文件内容中的某行数据,程序就必须打开所有文件,找出其中符合条件的数据。还以前面提到的学生管理系统为例,若要找出英语分数最高的同学,程序必须打开每一个学生成绩的文件找到其中的英语成绩才能最终找到结果。对于几万或是几十万个文件,若要遍历第1章SQLServer2008概述·3·每一个文件,其处理效率可想而知。传统的文件处理系统不支持以一种方便而高效的方式去获取所需数据。而随着计算机的普及,需要处理的数据不断膨胀,在面对几百万条、几千万条的情况下,文件处理系统已经无能为力。而且随着处理业务的不断复杂化,数据完整性问题、原子性问题、并发操作问题、数据安全问题等更使文件处理系统捉襟见肘。在这种情况下数据库管理系统(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和微软的市场份SQLServer数据库技术大全·4·额则分别为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章SQLServer2008概述·5·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架构协议层接受客户端发送的请求并将其转换为关系引擎能够识别的形式。同时它也能将图1.1SQLServer2008组件之间的关系SQLServer数据库技术大全·6·查询结果、状态信息和错误信息等从关系引擎中获取出来,然后将这些结果转换为客户端能够理解的形式返回给客户端。关系引擎负责处理协议层传来的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 / 19
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功