设为首页 收藏本站
查看: 800|回复: 0

[经验分享] [译] 流言终结者 —— “SQL Server 是Sybase的产品而不是微软的”

[复制链接]

尚未签到

发表于 2015-7-1 06:45:11 | 显示全部楼层 |阅读模式
  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人中,几乎没人见过一行不是微软员工写的代码。
  
  结论:流言被终结了!
  
DSC0000.jpg
  
  原文请见:http://blogs.msdn.com/b/euanga/archive/2006/01/19/514479.aspx
  后续:http://blogs.msdn.com/b/euanga/archive/2006/05/23/597677.aspx
  
  
  第一次尝试翻译,翻得比较生硬,请多指教。
  
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-82065-1-1.html 上篇帖子: SQL Server 按列连接字符串的三种方法 下篇帖子: [原] JT SQL Server 性能调优札记之三
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表