http://www.cnblogs.com/xxxtech/archive/2011/12/30/2307859.html
by Euan Garden

这些年来我听说过关于这个流言的许多版本,其中最有趣的要数是“微软来不及去混淆购买来的Sybase代码,所以SQL Server其实还是Sybase的产品”。

首先让我们来回顾一下历史。1987年,微软和Sybase公司展开了合作,共同建立和销售基于Sybase DataServer的数据库管理系统。Sybase享有SQL Server在Unix/小型机平台上的的权利,而微软享有SQL Server在当时新生的OS/2平台和任何微软开发的平台上的权利。

那个时期,Ashton Tate的dBase 在“PC”数据库系统(非大型机/小型机/Unix)中处于的领先地位(我的第一个数据库应用就是在DOS 3.3平台上使用的dBaseIII+)。为了更好的利用现有的大型dBase并使Ashton Tate提供真正的客户服务器,微软和Ashton Tate在Sybase的帮助下发布了Ashton Tate/Microsoft SQL Server(Sybase后来将他们在UNIX和VMS平台上的产品重命名为Sybase SQL Server),这后来也成为了Sybase DataServer在OS/2平台上的名称。

Ashton Tate/Microsoft SQL Server的第一个版本在1989年发布。最初,dBase IV计划为SQL Server提供前端的开发工具(基于先前的合作),但是dBase IV在当年的延迟发布导致了该计划的流产。于是,微软和Ashton Tate解除了合作关系,产品也被命名为Microsoft SQL Server(现在仍有一些当时的开发组成员非常得意的拥有印着Ashton-Tate/Microsoft SQL Server的包装盒)。

此后微软继续改进SQL Server,在1990年发布的SQL Server 1.1中加入了对Windows平台的支持。然而其中大部分的工作仍由Sybase完成,微软只负责测试、项目管理和一些次要的开发。到了1991年,为了修正产品中的缺陷,微软的团队才得以阅读而后变为修改SQL Server的代码。第一个真正意义上的合作版本是1992年发布的4.2版,其OS/2版本的代码和Sybase 4.0的代码相同步。值得注意的是微软的代码首次像Sybase的代码一样被用于该版本。

而后事态开始升温,微软着手于32位版SQL Server,Sybase则展开了在System  10平台上的研发。这个时候,OS/2平台显示出了缺乏竞争力,而微软已完成了beta版的Windows NT并且只有32位的版本。所以SQL Server团队决定在稳定的4.2版本代码的基础上建立NT平台上的端口,而Sybase继续着为System  10平台开发。现在再用“端口”这个词已经不太贴切了。NT平台为产品使用操作系统的特性提供了很多机会,关键是操作系统提供了支持运行在SMP系统上的能力,而不是必须写入数据库的代码里。这个团队所做的,导致了OS/2平台上的4.2版和NT上的SQL Server有了很大的不同(边注:sqlnt曾经是用于开发通信的内部邮件账号,该账号如今仍然存在并拥有开发团队,支持团队,文档和课件团队中的成员)。

至此,微软和Sybase的合作开始失去了它的价值。Sybase希望保持平台中立性,而微软希望完全投入于Windows NT平台。另外,受限于协议,微软必须得到Sybase批准后才能为SQL Server添加新特性。他们的合作在1994年瓦解,Sybase第一次被允许在OS/2和Windows平台上发行自己的产品,微软则可以将产品带向自己想要的方向。在短短18个月内,微软在原先NT平台SQL Server代码的基础上,发布了SQL Server 6.0和6.5。这些版本重写了现存的代码并添加了新的代码。也正是在这个时候,微软成功的拥有了SQL Server的权利和代码,并使之显著区别于原先OS/2平台上4.2版本的Sybase代码。

在这个转变过程中,微软决定在数据管理前沿做大。这意味着他们还有很多工作要做,包括建立一个更强大的团队。微软聘请了一些数据库行业中最优秀和最富经验的专家(来自DEC的Hal Berenson, Peter Spiro, David Campbell等人, IBM的 James Hamilton, Lubor Kollar等人, 甲骨文的Bill Baker, Pedro Celis, 和Tandem的Pat Hellan),并为他们配备的最好的研究人员(Jim Gray, Phil Bernstein等人)以及来自全球最聪明的数据库专业硕士和博士。他们和原来团队中的灵魂人物(如Ron Soukup)以及一些微软内部的人员在短时间内组建了一个伟大而专注团队。团队中的一些人致力于SQL Server 6.0/6.5,而大部分人则进行代号为Sphinx即SQL Server 7.0的研发。

Sphinx的目标很明确,建立一套新的标准以简化完整的数据管理。这意味着在未来的几年中要建立一个可扩展的平台,并从先前各SQL Server版本和其它数据库平台中吸取教训。为此必须重写数据库引擎、新的查询处理器、新的存储引擎和一套新的数据访问API(OLE DB and ADO, 最终置入了dblib)。

尽管SQL Server以关系型数据库管理系统闻名,微软希望在SQL Server 7.0中提供一个完整的数据解决方案。其通过OLAP服务添加对联机分析处理的支持(这部分的代码来自于对以色列“Plato”公司的收购),通过DTS集成了数据提取、转换和加载(这部分的代码由内部的Starfighter/Tools团队开发)。

SQL Server 7.0 RTM版于1998年11月发布(那周我正好在Redmond接受访问,还记得主园区的1号楼和3号楼非常热闹)并在1999年1月发布了正式版。虽然我有些偏见,但我相信微软所做的工作远比我以上所列出的要多。所以还能说Microsoft SQL Server是Sybase的产品吗?主要的组件不是新添加的就是重写过的,因此Microsoft SQL Server 和 Sybase SQL Server没有任何关系。

显然SQL Server的征程并没有止于7.0版。紧随其后的是2000年8月的发布SQL Server 2000。其主要的工作包括了多实例和集群的实现(所有的代码都是微软自产的),数据挖掘(来自于早期微软研究院的进行的研究项目),SQLXML(来自于MDAC和网络与接口团队的辅助项目)。

在SQL Server 2005前,SQL Server 2000提供的最具影响力的新特性是报表服务。SQL Server 2000中的报表服务的代码完全是微软自产的。开发报表服务的团队由原先Repository/Meta Data Services 团队、一些英语查询团队的成员和一群新人组成。

SQL Server 2005中主要的新特性和代码值得用几篇博客来分别介绍,但我想特别强调SQLCLR(来自于对一个长期战略项目的集成),XML支持(我们调查研究了存储XML的最佳方法,在使用专用的XML数据库或将XML集成进SQL Server中选择了后者。这需要大量的二次规划和语言上的改变以支持XQuery),Service Broker(在Dave Campbell和在以色列MSMQ团队调查了messaging/queuing/SOA后,我们决定集成这个辅助项目),Integration Services(来自一些零碎的代码,由原先DTS团队和一些来自C++, hardware, AS and COM+团队的人组建了一个新的团队,加上一次小规模的收购来建立设计和执行的环境),Report Builder(基于一次收购的概念和架构,但代码是全新的)。

Dave Campbell曾讲述过他10年SQL Server生涯中的一天,现在仍有一些成员在团队中的时间比他还长,但SQL Server团队(MDAC, System.Data, System.XML 和 WinFS)所有1000人中,几乎没人见过一行不是微软员工写的代码。

结论:流言被终结了!

原文请见:http://blogs.msdn.com/b/euanga/archive/2006/01/19/514479.aspx

后续:http://blogs.msdn.com/b/euanga/archive/2006/05/23/597677.aspx

[译]流言终结者 —— SQL Server 是Sybase的产品而不是微软的的更多相关文章

  1. [转帖]流言终结者 —— “SQL Server 是Sybase的产品而不是微软的”

    流言终结者 —— “SQL Server 是Sybase的产品而不是微软的” https://www.cnblogs.com/xxxtech/archive/2011/12/30/2307859.ht ...

  2. 【译】SQL Server索引进阶第八篇:唯一索引

    原文:[译]SQL Server索引进阶第八篇:唯一索引     索引设计是数据库设计中比较重要的一个环节,对数据库的性能其中至关重要的作用,但是索引的设计却又不是那么容易的事情,性能也不是那么轻易就 ...

  3. 译:SQL Server的Missing index DMV的 bug可能会使你失去理智---慎重看待缺失索引DMV中的信息

    注: 本文译自https://www.sqlskills.com/blogs/paul/missing-index-dmvs-bug-that-could-cost-your-sanity/ 原文作者 ...

  4. SQL Server的链接服务器(MySQL、Oracle、Ms_sql、Access、SYBASE)

    原文:SQL Server的链接服务器(MySQL.Oracle.Ms_sql.Access.SYBASE) 一.使用 Microsoft OLE DB Provider For ODBC 链接MyS ...

  5. 【译】第一篇 SQL Server安全概述

    本篇文章是SQL Server安全系列的第一篇,详细内容请参考原文. Relational databases are used in an amazing variety of applicatio ...

  6. Reporting Service服务SharePoint集成模式安装配置(5、安装 SQL SERVER 2012 SP1产品)

    有过SQL2012 数据库安装经验的,可以跳过这一步骤直接进入第五步骤:RS外接程序的安装  数据库安装工具:SQLServer2012 SP1 Name:SQLServer2012SP1-FullS ...

  7. c#Winform程序调用app.config文件配置数据库连接字符串 SQL Server文章目录 浅谈SQL Server中统计对于查询的影响 有关索引的DMV SQL Server中的执行引擎入门 【译】表变量和临时表的比较 对于表列数据类型选择的一点思考 SQL Server复制入门(一)----复制简介 操作系统中的进程与线程

    c#Winform程序调用app.config文件配置数据库连接字符串 你新建winform项目的时候,会有一个app.config的配置文件,写在里面的<connectionStrings n ...

  8. sql server的优缺点

    sql server的优点众多,让其在数据库领域独占鳌头,成为最受欢迎的数据库系统,其优缺点也自然是喜爱者们所关注的,首先了解一下它的历史: sql server是一个关系型数据库管理系统,最初是由M ...

  9. SQL Server 简介

    什么是数据库? 数据库(Database)是按照数据结构来组织.存储和管理数据的仓库.是以一定方式储存在一起.能为多个用户共享.具有尽可能小的冗余度的特点.是与应用程序彼此独立的数据集合. SQL S ...

随机推荐

  1. Spring 远程服务

    稍微看了一下Spring的远程服务章节,讲到了RMI,Hessian,Burlap,Http invoker以及JAX-WS 1.RMI 原理: 1)在Spring服务端使用RmiServiceExp ...

  2. uva 1025 A Spy in the Metro 解题报告

    A Spy in the Metro Time Limit: 3000MS     64bit IO Format: %lld & %llu Submit Status uDebug Secr ...

  3. SQL查询今天、昨天、7天内、30天【转】

    SQL查询今天.昨天.7天内.30天 今天的所有数据:select * from 表名 where DateDiff(dd,datetime类型字段,getdate())=0 昨天的所有数据:sele ...

  4. 3 Sum leetcode java

    题目: Given an array S of n integers, are there elements a, b, c in S such that a + b + c = 0? Find al ...

  5. win7+iis7+asp+.net+php环境配置

    一.我们先来配置一下iis: f 1. 点击[開始]->[控制面板]->点击[程序和功能]进入下一步 2. 然后,在左側点击[打开或关闭Windows功能].然后会跳出来一个框 3. 開始 ...

  6. NGUI诡异的drawCall

    看了很多关于NGUI drawCall的文章,见得比较多的一个观点是:一个 Atlas 对应一个Drawcall. 好奇心下做了个demo,两个panel中只用到一个Atlas,却产生了10个draw ...

  7. (转)[unity3d]easytouch的使用

    对于移动平台上的RPG类的游戏,我们常用虚拟摇杆来控制人物角色的行走和一些行为,相信我们对它并不陌生,之前尝试了EasyTouch2.5,发现并没有最新版的3.1好用,2.5版本的对于自适应没有做的很 ...

  8. [Backbone] Customzing Backbone

    Convert the AppointmentForm view below to use Mustache templating. Make sure you remember to change ...

  9. C++:fread、fwrite函数用法

    主要内容: fread.fwrite函数的用法 1.函数功能 用来读写一个数据块. 2.一般调用形式 fread(buffer,size,count,fp); fwrite(buffer,size,c ...

  10. iOS SEL类型和创建

    SEL selAction =NSSelectorFromString([actionArrayobjectAtIndex:indexArray]); [item addTarget:self act ...