随着信息技术的发展,IT技术不断应用到各行各业,数据存储不断膨胀现状对未来的数据库技术提出更高的要求。数据库技术的发展,已经成为先进信息技术的重要组成部分,最初产生于20世纪60年代中期,从诞生到现在,在不到半个世纪的时间里,形成了坚实的理论基础、成熟的商业产品和广泛的应用领域,吸引越来越多用户和IT人的关注研究,不断的发展更是给计算机信息管理带来了一场巨大的革命。
正是这场革命的推动,诞生了数据库领域的诸多英雄,如 Oracle, Sybase, Microsoft SQL Server, Access 等。目前,尽管数据库类型有了很大的发展,但是绝大多数流行的产品还是以关系型数据库为主流,这种数据库都采用了SQL语言标准。虽然很多数据库都对SQL语句进行了再开发和扩展,SQL Server 关系数据库管理系统仍然被数据库典范。
23年的追溯 详识微软 SQL Server 数据库
对于 SQL Server 来说,一开始并不是微软自己研发的产品,而是当时为了要和IBM竞争时,与Sybase合作所产生的,其最早的发展者是Sybase,同时微软也和Sybase合作过 SQL Server 4.2 版本的研发,微软亦将 SQL Server 4.2 移植到 Windows NT(当时为3.1版),在与Sybase终止合作关系后,自力开发出 SQL Server 6.0 版,往后的 SQL Server 即均由微软自行研发。
下面我们就对微软 SQL Server 数据库的23年发展进行详细介绍。
SQL Server 1.0 & 1.1
SQL Server 的发源最早要回到1986年,当时微软已和IBM合作开发OS/2(当时为了要继承MS-DOS)作业系统,但由于缺乏资料库的管理工具,而 IBM也打算将其资料库工具放到OS/2中销售之下,微软和Sybase合作,将Sybase所开发的资料库产品纳入微软所研发的OS/2中,并在获得 Ashton-Tate的支持下,第一个挂微软名称的资料库服务器 Ashton-Tate / Microsoft SQL Server 1.0 于1989年上市。
不过在1989-1990年间,由于 Ashton-Tate 的 dBase IV 计划不顺,让原本微软原打算由 dBase IV 来开发 SQL Server 应用程式的计划变得无法实现,因此微软终止与Ashton-Tate的合约,真正挂微软单一品牌的 Microsoft SQL Server 1.1 于1990年中出货。同一年,微软为 SQL Server 建立技术支援团队,并于1991年初起陆续取得Sybase的授权,有权利可以检视与修改 SQL Server 的原始程式码,但由于主控权仍在Sybase,因此微软的任何修正都需要由Sybase检视并且同意后才可以执行,这个里程碑对日后微软开始发展自己的资料库伺服器时,在资料库引擎的发展上,提供了相当重要的基础。
然而在OS/2的销售状况不佳下,SQL Server 1.0/1.1/1.11(后续发布的1.1升级版)的销售状况都不佳。
SQL Server 4.2
1992年,由Sybase与微软共同发表 SQL Server 4.2 版,微软在此版本中的贡献为:
与Sybase合作,将Sybase的 SQL Server 核心程式码移植到OS/2中。
提供MS-DOS,Windows以及OS/2的用户端函式库(Client Library)。
开发部份管理工具。
不过 SQL Server 4.2 一开始并不是以32位元为基础,而是以16位元为基础开发。
SQL Server for Windows NT
在1992年时,由于市场上对32位元作业系统的需求逐渐升高,但IBM的 OS/2 2.0却又没有如期在时程内完成,SQL Server 的开发小组利用OS/2的32位元介面移植 SQL Server 到 OS/2 2.0(当时为beta)测试时,发现32位元并没有如预期来的有效率,另外一方面,微软内部当时也正在开发新一代作业系统(即 Windows NT),使得 SQL Server 团队决定要终止对 SQL Server for OS/2 的发展,同时邑注全力开发出支援 Windows NT 的版本,代号为 “SQL NT”。
在 SQL NT 中,微软将 SQL Server 4.2 的核心程式码,以 Win32 API 翻写,并于1993年 Windows NT 3.1 出货后30天,完成 SQL Server for Windows NT (4.2) 的开发工作,在市场上销售。
SQL Server 4.2 是第一个 Windows NT 上的 SQL Server,也是第一个出现在微软认证考试中的 SQL Server 产品。
SQL Server 6.0
在微软利用 SQL Server 4.2 for Windows NT 赚取高额营收(自 SQL Server 4.2 for Windows NT 发行起九个月内,微软 SQL Server 带来的营收已成长两倍)时,对于其合作伙伴Sybase而言,微软的 SQL Server 已不被 Sybase所重视(Sybase自己要关注在自家的产品线),并且因为 SQL Server 的权利在Sybase手中(1987年与Sybase签订的合约),微软无法在 SQL Server 中自行添加与修改功能。
微软自 SQL Server 1.0 到 4.2 for Windows NT,数个版本的历程中,其 SQL Server 团队已经大幅成长,但受限于与Sybase的合约,微软即使有新研发的 Windows NT 功能,也无法加入 SQL Server 中,因此于1994年4月12日,微软和Sybase正式终止了合作关系(并向Sybase买下了Windows版本的 SQL Server 程式码版权),微软获得了对 SQL Server 程式码的完全控制权,不过挑战也接踵而来——Sybase即将于年底发表 System 10 for Windows NT,微软必须要提出新的版本计划,以防止Sybase将原本的微软客户抢走,“SQL 95” 计划这样产生了。
SQL 95 的命名是仿自 Windows 95,也就是新一代的资料库伺服器软体,此版本于1994年10月发布第一个beta版本,并且后续又发布了不同的beta修正版,其中较引人注目的是首次出现在 SQL Server 中的“复制”(Replication)功能,复制功能所需要的“可卷动式资料游标”(scrollable-cursor),以及其管理工具,代号为“Starfighter”,即 SQL Enterprise Manager。
SQL Server 6.0(SQL 95) 于1995年6月14日完成并进入 RTM(released to manufacturing),对于 SQL Server 团队以及微软来说,SQL Server 6.0 是重要的里程碑,因为此版本是完全由微软自行开发,未假手Sybase或其他厂商,因此 SQL Server 6.0 的发行,让微软的数据库研发能力正式被外界认可。
SQL Server 6.5 发布于1996年,约于 SQL Server 6.0 发表后十个月后发行。
SQL Server 7.0
当微软正在发展 SQL Server 6.5 时,已经另外有一个团队正在发展新的资料库,由于微软计划要能够让此种资料库引擎能够具有可向上发展,亦可以缩小到PC或笔记型电脑中,因此资料库的核心必须要重新撰写,这就会涉及资料结构的改变,为了要让资料库的升级能够确保其稳定性,微软在1997年特别邀请1000个组织备份资料库,交由开发小组进行升级,并且在升级过程中找出可能的失败原因。同时在1998年2月起,微软与ISV合作发展运行于 SQL Server 7.0 的软体,除了保持相容性外,也让ISV能够特别为 SQL Server 7.0 的特性撰写程式。
在同一时间,OLE DB 的技术,以及很多人熟知的 MSDE(Microsoft Data Engine) 也在研发中,后来 OLE DB 成为Windows平台上资料存取的显学,其上的ADO更获得多数开发人员的采用。而MSDE也做为 Microsoft Access 资料库外的另一种单机资料库的选择。
SQL Server 7.0 最终冻结版本为7.00.623.07,于1998年12月进入RTM。
SQL Server 2000
其实早在一开始,SQL Server 2000 只是 SQL Server 7.0 的一个小改款,代号为“Shiloh”,版本号码为7.5,真正要做大翻修的 SQL Server 版本,代号则是“Yukon”。Shiloh在开发过程中,因为所要加入的功能并不多,只是要完成在7.0版中没有写完的功能,并且预期可能升级的客户不多,因此当时在微软内部,只是把Shiloh视为是一个 “Super Service Pack” 而已,有如 SQL Server 6.0 和 6.5 的角色。
不过因为几个因素,让 SQL Server 7.5 摆脱 “Super Service Pack” 的束缚:
SQL Server 7.0 Service Pack 2 已经发表,无需再开发一个 Service Pack。
来自客户对于效能以及在资料仓储中对星状拓朴支援的分割检视与最佳化的要求。
来自于竞争者Oracle的压力。
在微软决定要把时程展延到18个月(完整的软体周期)时,也开始为 SQL Server 7.5 加入新的功能,版本代码升级到8.0(最终版本为 8.0.194),同时因应当时 Windows 2000 的计划,Microsoft BackOffice 也命名为 BackOffice 2000,故 SQL Server 8.0 也改名为 SQL Server 2000。
SQL Server 2000 于2000年8月6日完成,并于2000年8月9日进入RTM状态。
SQL Server 2000 可说是微软资料库服务器中“生命期最久”(自2000年8月9日RTM开始到2005年11月 SQL Server 2005 上市为止,长达五年又三个月),而且后续添加的新功能相当多,Service Pack 也最多(最后的 Service Pack 为 SP4)的版本,诸如:
SQL Server 2000 Notification Services
SQL Server 2000 Reporting Services
SQL Server 2000 Web Administration
SQL Server 2000 XML(SQLXML)
同时,它也是第一个出现在 Windows CE 上的 SQL Server。
SQL Server 2005
SQL Server 2005 (代号为“Yukon”)在千呼万唤下终于在2005年11月,与 Visual Studio 2005 一起发表,在 SQL Server 2005 的研发过程中,其实并不顺利。
SQL Server “Yukon” 在2003年底左右就发表了Beta 1,虽然已经有资料库以及部份的新功能,但由于太多的除错码(当时 SQL Server 作为 CLR Hosting 基底的 .NET Framework 2.0 也正在研发中),让执行速度变得很慢。一直到2004年中左右才释出 Beta 2,此版本的稳定度就高些,在 Beta 2 和 Beta 3 之间,每一至三个月左右就会释出一个测试版本,由于并不是达到特定功能或特定时程的测试版,因此都以 “CTP”(Community Technology Preview) 的方式发行(现在广泛运用于各微软的产品测试版本中),Beta 2 和 Beta 3 之间相距几乎一年,2005年6月才发布 Beta 3,此时整个环境才大致底定下来。
SQL Server 2005 具代表性的新功能有:
SQL Server 管理工具的改变,SQL Server Management Studio(SSMS) 取代 SQL Server Enterprise Manager。
将商业智慧的开发功能由 SQL Server Enterprise Manager 切出,加入 Visual Studio 中,即 Business Intelligence Development Studio(BIDS)。
新增多种Transact-SQL指令,例如PIVOT/UNPIVOT,Common Table Expression(CTE)等等。
强化XML的处理能力,并新增原生的XML资料型别,以及支援原生XML资料型别的XML查询运算子。
新增varchar(max),nvarchar(max),varbinary(max)型资料型别,用来取代text、ntext与image型别。
将 .NET Framework 功能植入资料库引擎中(SQL CLR),让VB.NET和C#可以开发 SQL Server Stored Procedure,Function,User-Defined Type 等。
原本的DTS改名为 SQL Server Integration Services,强化其 ETL(Extract, Transform and Load)功能。
Data Mining 新增到八种演算法。
SQL Server 2008
与2005年的版本相比,SQL Server 2008 是一个重大的产品版本,经过三年的研发它推出了许多新的特性和关键的改进,使得它成为至今为止的最强大和最全面的 SQL Server 版本。SQL Server 2008 比起以往版本存在以下优势: 保护数据库查询、管理操作上更少的时间、增加应用程序稳定性、系统执行效能最佳化与预测功能。
此外,SQL Server 2008 拥有以下7种版本:企业版(Enterprise)、标准版(Standard)、工作组版(Workgroup)、网络版(Web)、开发者版(Developer)、免费精简版(Express),以及免费的集成数据库 SQL Server Compact 3.5。
这个平台有以下特点:
·可信任:使得公司可以以很高的安全性、可靠性和可扩展性来运行他们最关键任务的应用程序。
·高效率:使得公司可以降低开发和管理他们的数据基础设施的时间和成本。
·智能:提供了一个全面的平台,可以在你的用户需要的时候给他发送观察和信息。
SQL Server 2008 在微软的数据平台上发布,可以随时随地管理任何数据。它可以将结构化、半结构化和非结构化文档的数据(例如图像和音乐)直接存储到数据库中。另外,SQL Server 2008 提供一系列丰富的集成服务,可以对数据进行查询、搜索、同步、报告和分析之类的操作。数据可以存储在各种设备上,从数据中心最大的服务器一直到桌面计算机和移动设备,控制数据而不用管数据存储位置。
同时,SQL Server 2008 在使用 Microsoft .NET 和 Visual Studio 开发的自定义应用程序中使用数据,在面向服务的架构(SOA)和通过 Microsoft BizTalk Server 进行的业务流程中使用数据。SQL Server 2008 提供一个可信的、高效率智能数据平台,可以满足用户所有数据需求。