[转帖]流言终结者 —— “SQL Server 是Sybase的产品而不是微软的”
流言终结者 —— “SQL Server 是Sybase的产品而不是微软的”
https://www.cnblogs.com/xxxtech/archive/2011/12/30/2307859.html 原作者的译文 其实 sqlserver2008 开始到sqlserver2017 最大的变化 应该是 内存数据库 列式存储 以及 AI和python等工具的嵌入 但是我们公司基本上都没有用他的心特性..
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的产品而不是微软的”的更多相关文章
- [译]流言终结者 —— SQL Server 是Sybase的产品而不是微软的
http://www.cnblogs.com/xxxtech/archive/2011/12/30/2307859.html by Euan Garden 这些年来我听说过关于这个流言的许多版本,其中 ...
- 【转帖】SQL Server 各版本发布时间和开发代号
SQL Server 各版本发布时间和开发代号 2019年01月23日 11:07:44 努力挣钱娶媳妇的苗同学 阅读数 278 https://blog.csdn.net/weixin_446098 ...
- SQL Server的链接服务器(MySQL、Oracle、Ms_sql、Access、SYBASE)
原文:SQL Server的链接服务器(MySQL.Oracle.Ms_sql.Access.SYBASE) 一.使用 Microsoft OLE DB Provider For ODBC 链接MyS ...
- [转帖]微软 SQL Server 2008/R2 停止支持
微软 SQL Server 2008/R2 停止支持 微软停止支持 SQLSERVER 2008R2 https://t.cj.sina.com.cn/articles/view/3172142827 ...
- 回首经典的SQL Server 2005
原创文章转载请注明出处:@协思, http://zeeman.cnblogs.com SQL Server是我使用时间最长的数据库,算起来已经有10年了.上世纪90年代,微软在软件开发的所有领域高歌猛 ...
- sql server的优缺点
sql server的优点众多,让其在数据库领域独占鳌头,成为最受欢迎的数据库系统,其优缺点也自然是喜爱者们所关注的,首先了解一下它的历史: sql server是一个关系型数据库管理系统,最初是由M ...
- SQL Server 简介
什么是数据库? 数据库(Database)是按照数据结构来组织.存储和管理数据的仓库.是以一定方式储存在一起.能为多个用户共享.具有尽可能小的冗余度的特点.是与应用程序彼此独立的数据集合. SQL S ...
- 从 Microsoft SQL Server 迁移到 Oracle
来源于:http://www.oracle.com/technetwork/cn/database/migration/sqlserver-095136-zhs.html Oracle SQL Dev ...
- 在oracle中通过链接服务器(dblink)访问sql server
在oracle中通过链接服务器(dblink)访问sql server 2013-10-16 一. 工作环境: <1> Oracle数据库版本:Oracle 11g 运行环境 :IB ...
随机推荐
- delphi中Tkbmmemtable数据转成SQL脚本
unit UMemtableToSql; interface uses SysUtils, Classes, DB, kbmMemTable, Variants, Dialogs, SuperObje ...
- 「HNOI2014」世界树
题目链接 问题分析 首先观察数据范围可以知道要用虚树.但是要考虑怎么维护原树的距离信息. 如果只有两个关键点,我们可以很方便地找到中点将整棵树划分为两部分.而如果有多个关键点,看起来有效的方法就是多源 ...
- Python中很少见的用法
print(*range(10)) # 自动解开可迭代的对象
- TCP主动打开 之 第一次握手-发送SYN
tcp客户端与服务器端建立连接需要经过三次握手过程,本文主要分析客户端主动打开中的第一次握手部分,即客户端发送syn段到服务器端: tcp_v4_connect为发起连接主流程,首先对必要参数进行检查 ...
- 【全网最优方法】JAVA初学:错误: 找不到或无法加载主类HelloWorld
JAVA初学:错误: 找不到或无法加载主类 HelloWorld 我这是看的黑马2019网课(B站)出现的问题. 放一下别人的图,我也是大概的问题:就是javac没问题,java却无论怎么弄都报错. ...
- github搜索不到代码的问题
Hi team, Please check the following three query url :https://github.com/Konctantin/GreyMagic/search? ...
- RF框架自定义测试库开发
静态库 方法(methods)直接映射为关键字名称.关键字接受和方法相同的参数, 通过抛异常来 报告错误, 通过往标准输出里写入来写 log, 同时可以通过return 来返回结果. 创建步骤: ▲ ...
- IIS7 部署MVC 运行不了 注意事项
经常安装完iis7或者7.5后,部署MVC3.运行后提示 403 找不到目录. 解决办法:需要重新注册下iis C:\Windows\Microsoft.NET\Framework64\v4.0.30 ...
- 收集的21个优秀的学习资源Kotlin
一.教程 1.The Kotlin Website Kotlin 官方网站(英文) 2.Kotlin editor Kotlin 在线编辑器 3.Keddit:在开发Android应用程序时学习K ...
- Maven打包时出现无法下载org.apache.maven.plugins插件
解决方式: 方式1:使用 mvn clean package -U 打包即可(注意:出于性能原因,Maven缓存插件无法下载的信息.根据您的设置,您可能需要通过将标志添加-U到命令行来清除此缓存,以使 ...