SQL MythBusters – "SQL Server is really a Sybase product not a Microsoft one."
There are lots of variations on this myth that I have heard/read over the years, most amusing of which is probably “Microsoft has not had time to mess up the Sybase code it bought yet so SQL Server is still a pretty solid product”
Lets start with a history lesson, you can read a much more in depth (and insightful) version of this in the book Inside SQL Server by Microsoft Press (at this time I can only check the 7.0 and 2000 versions) or any of the historical posts/articles by Hal Berenson (former Architect, PUM and GM of SQL Server during 6.5/7.0/2000).
In 1987 Microsoft and Sybase started a partnership to build/sell a Database Management System, based on the then (yet to be released) Sybase DataServer product. Sybase would have the rights to the product on the Unix/Mini Platform and Microsoft would have the rights on the fledgling OS2, and any other OS developed by Microsoft.
At the time the leader in the “PC” database systems (non mainframe/mini/UNIX) was a product from Ashton Tate called dBase (my first database app was written using dBase III+ on DOS 3.3). To help leverage the large dBase installed base and to give Ashton Tate a true Client Server offering, Microsoft and Ashton Tate with help from Sybase announced Ashton-Tate/Microsoft SQL Server (Sybase later renamed their product to Sybase SQL Server for UNIX and VMS), this was to be the name of the OS/2 port of Sybase DataServer.
V1 of Ashton-Tate/Microsoft SQL Server was shipped in 1989. Originally dBase IV was supposed to have provided a dev tool/front end for SQL Server (hence the original partnership) but the problems with dBase IV after its release later in the year led to this falling by the wayside. At this point the partnership between Microsoft and Ashton Tate was dissolved and the product became Microsoft SQL Server (there are still a few members of the dev team that were around in the original days and proudly have their Ashton-Tate/Microsoft SQL Server boxes in their offices).
Microsoft continued the evolution of SQL Server, adding support for Windows via SQL Server 1.1 in 1990, although almost all the work was still done by Sybase with Microsoft doing testing, project management and some minor development. Over the course of 1991 the Microsoft team was given read and then read/write access to the code to allow bug fixes to be made. The first real “partnership” release followed in 1992 and synched the Sybase 4.0 code into the OS/2 product, this was released as 4.2 and included significant code from MS as well as Sybase for the first time.
Things started to heat up just after this release, Microsoft had been working on a 32 bit version of SQL Server and Sybase was working on what would become System 10. At this point OS/2 was becoming less viable as a platform and Microsoft already had beta versions of Windows NT that was 32 bit only, available. So the SQL Server team decided to build on the stable 4.2 code for its port to NT while Sybase continued with the new System 10 code base. Now “port” really is the wrong word to use here, NT offered lots of opportunities to make a better product by using features of the OS, the clincher was the ability to run on SMP systems by using the support provided by the OS, rather than having to write it into the database code, which is what the team did, leading to the code from the 4.2 for OS/2 and the SQL Server for NT, or SQL NT(side note, sqlnt was the internal mail alias used for development communications, the alias still exists today and continues to have members of the dev team, support team, documentation and courseware teams on it) to be VERY different.
By this time the value of the partnership between Microsoft and Sybase was beginning to reduce, as Sybase wanted to remain platform neutral, and Microsoft wanted to fully commit to the NT platform and only the NT platform. In addition, because of the restrictive nature of the Microsoft/Sybase agreement, Microsoft could not truly add new features without Sybase’s approval. In 1994 the partnership was dissolved and Sybase was allowed to sell its product for the first time on OS/2 and Windows and Microsoft could take the code in any direction it wanted. Microsoft did indeed take the product in its own direction, building on the SQL Server for NT code base and releasing SQL Server 6.0 and 6.5 within 18 months, these releases involved rewriting existing code and adding new code. At this point in time SQL Server was a success in its own right with the code (and features) significantly different from the original Sybase code of the 4.2 for OS/2 version.
During this window Microsoft decided to go “big” on the data management front, part of doing that meant building a stronger, bigger team and while the org had grown from the 1 corridor it occupied in the very early days, more needed to be done. Microsoft went out and hired some of the best and most experienced people in the database industry(Hal Berenson, Peter Spiro, David Campbell and others from DEC, James Hamilton, Lubor Kollar and others from IBM, Bill Baker from Oracle, Pedro Celis, Pat Helland from Tandem) and paired them with the best in research(Jim Gray, Phil Bernstein and others) and some of the smartest new graduates from Database Masters and PhD programs from around the world, combing these folks with the original “soul” of the team(folks like Ron Soukup) and others from inside Microsoft allowed a great, focused team to be built and gel’d in a short space of time. Some of this team worked on 6.0/6.5 but a number of them came on line to work on what was called Sphinx, the code name for the next version of SQL Server, which was shipped as version 7.0.
The goals for Sphinx were clear, set a new standard in ease of use for complete management of data, to do so meant building a new platform that could be extended in years to come, learning the lessons of the previous releases of SQL Server and other database platforms. To do this required a complete rewrite of the Database Engine, a new Query Processor, a new Storage Engine and a new set of Data Access APIs (OLE DB and ADO, finally putting dblib on hold)
While SQL Server had made its name as a relational database management system, with SQL Server 7.0 Microsoft wanted to provide a complete data solution, this meant adding support for OLAP via OLAP Services (the code was based on an acquisition of “Plato” from Panorama in Israel), ETL/Data Integration via DTS (the code was developed in house by the Starfighter/Tools team).
SQL Server 7.0 RTM’d in Nov of 1998 (I was in Redmond for interviews that week, there was quite the buzz in buildings 1 and 3 of main campus) and was generally available in Jan of 1999. I am biased but I believe it more than delivered on the goals I outlined above. So at this point can Microsoft SQL Server really be considered a Sybase product? The major components were all new or rewrites, therefore I simply do not believe it is meaningful at this point to discuss the relationship between Microsoft SQL Server and Sybase SQL Server.
Obviously the march of SQL Server did not stop with SQL Server 7.0, SQL Server 2000 followed in Aug of 2000, major work included multi-instance and a new clustering implementation (this was all homegrown code), Data Mining(this was an early delivery of an ongoing research project in MSR), SQLXML (this was another side project, this time from the MDAC and Internet and Interfaces teams).
Post SQL Server 2000 probably the biggest impact feature before SQL Server 2005 was Reporting Services, in SQL Sever 2000 this was all homegrown code, the team that built it was a merger of the old Repository/Meta Data Services team, with some of the English Query team and a group of new folks.
The list of major new work and code in the SQL Server 2005 release is worthy of a series of blog entries all by itself but the highlights for me would be SQLCLR (this was the integration of another long term strategy project), XML support (this came out of an investigation we did to see if the best way to store XML was a dedicated XML database or to integrate XML into SQL Server, we did the latter and this required a lot of QP and language changes to support XQuery), Service Broker (this was another side project that we decided to integrate after Dave Campbell spent time looking into messaging/queuing/SOA with our MSMQ team in Israel), Integration Services (this is all ground up code, we formed a new team built on the original members of the DTS team, adding in some folks from the C++, hardware, AS and COM+ teams, combined with a small acquisition to build out the design and execution environments) and Report Builder (this is based on a concept and architecture from an acquisition but the code is new).
Dave Campbell was talking the other day about some of the aspects of his more than 10 years in SQL Server, there are still folks in the team that have been here longer than him and yet almost all of the 1000 people who now work on SQL Server (caveat, this includes the MDAC, System.Data, System.XML and WinFS teams) have never seen a line of code that was written by anyone other than an MS employee.
Conclusion: Myth BUSTED!
Update: Kalen has made the history chapter available by itself as its no longer in the Inside SQL Server Books, get it here
Update: We found a bunch of the old boxes in the SQL Team Trophy Cabinet, you can find them here
Comments
Anonymous
January 19, 2006
It doesn't even really matter if it has sybase code left over, what matters is that it just rocks! Keep up the good work!
trAnonymous
January 19, 2006
The comment has been removedAnonymous
January 19, 2006
Well, I think this leads to the obvious question: What parts of the current codebase were actually written by Sybase? I can only imagine that perhaps parts of the T-SQL engine are still pretty old.Anonymous
January 19, 2006
Gabe,
I am not sure if there is any, I'm not sure if anyone knows if there is any. In terms of the T-SQL Engine if you mean the parser and the algebrizer, those have both been rewritten since I have been in the team, so no they are not.Anonymous
January 19, 2006
The comment has been removedAnonymous
January 19, 2006
The comment has been removedAnonymous
January 19, 2006
Euan,
Referring to the very last sentance of your post - is that absolutely true? Do contractors count as MS employees then?
I have it on very good authority that some minor features of one of the new SS2005 features that you mentioned were outsourced. Would you include that code as bening written by MS employees? Serious question.
Great post by the way. I'm looking forward to the rest of the series.
-JamieAnonymous
January 19, 2006
Jamie,
Good point I should have been clearer, instead of written by MS employee I should have said not written by a Sybase employee.
Microsoft does use a variety of resources (SQL Mobile is developed in the Microsoft India facility now, although thats not where it started)Anonymous
January 21, 2006
You don't really define what a rewrite is, and knowing MS and the extra mile you guys go to make things backwards compt, I can only assume that "rewrite" is more "cleanup" than actual redesign & code.Anonymous
January 22, 2006
Doug,
Rewrite does not equal cleanup in the SQL Server Team, it means rewrite.Anonymous
January 22, 2006
What happened with the patent infringement/licensing issue brought against Microsoft by some part of DTS that MS did license from a third party, but the third party argued that MS was illegally distributing DTS in violation of their license agreement (so not all of DTS was made by Microsoft...)?Anonymous
January 22, 2006
Corey,
Sorry I'm not going to comment on that issue, I'm simply not qualifiedAnonymous
January 22, 2006
Good info. Not that is matters, but if it does have any Sybase code, where might that be?Anonymous
January 23, 2006
Good read. Is there any truth to the rumor that MS bought FoxPro and integrated portions of that at about the time of the 6.5/7.0 release. Inquiring minds gotta know.Anonymous
January 23, 2006
William,
Honestly I would have no idea, you would need an Engine Developer that has been around for a VERY long time to be able to answer the "any" question.Anonymous
January 23, 2006
the_damned99,
Not to the best of my knowledge or the folks I had check this article.Anonymous
January 24, 2006
The comment has been removedAnonymous
January 25, 2006
The comment has been removedAnonymous
January 25, 2006
Gert,
We undertook a major rewrite of the protocol stack some time ago.Anonymous
January 26, 2006
Interesting article. Keep up the good work MS. I am very impressed with the Reporting services. We have a ton of reports on SS2000 in production and we are experimenting with RS2005 right now. Why is reporting services not so popular yet (atleast to my knowledge)? It's a great product. It's a work in progress but I love it.Anonymous
February 01, 2006
The comment has been removedAnonymous
February 02, 2006
Dave,
I double checked again and the folks I checked with seem confident in the dates I listed. Maybe someone conned you by giving out the beta ;-)Anonymous
February 08, 2006
You're right....I stand corrected. After thinking about my posting for a while I realized that the beta we took home was actually the development software we were considering at the time -- Object/1.Anonymous
April 06, 2006
Your information strongly has helped me, thank you for it!Anonymous
May 05, 2006
Good history! Thanks for filling in some of the gaps.Anonymous
May 24, 2006
SQL Server 1.0 for OS/2Bei Euan Garden (MS SQL Server Team) gibt es einen Rückblick auf die MS SQL Server Entwicklungsgeschichte, mit Fotos der Verpackungen.
Hier ist gut nachzulesen wie Microsoft und Sybase zusammen die dBase Quellen Client/ServerAnonymous
January 01, 2007
Welcome to 2007! As seems to be the trend here is the list of most popular posts for the last year, IAnonymous
February 08, 2007
Ici et en anglais : http://blogs.msdn.com/euanga/archive/2006/01/19/514479.aspx Bonne lecture…Anonymous
February 12, 2007
Ici et en anglais : http://blogs.msdn.com/euanga/archive/2006/01/19/514479.aspx Bonne lecture…Anonymous
February 17, 2007
Recently I came through this blog post http://blogs.msdn.com/euanga/archive/2006/01/19/514479.aspx byAnonymous
March 17, 2007
Recently I came through this blog post http://blogs.msdn.com/euanga/archive/2006/01/19/514479.aspx byAnonymous
June 27, 2007
The whole area of "SQL Server myths" is an interesting one. One of the fascinations of working with SQL...Anonymous
July 08, 2008
I was just rereading a blog post by Euan Garden about SQL Server's history and he refers to the factAnonymous
February 17, 2017
It "matters" because SQL Server started with a good code base, a good platform, good design fundamentals. That's why SQL Server has always been a decent product. Compare to Exchange, which started out horrible, and will remain horrible forever.Anonymous
April 12, 2017
question is what is a MS product? either was bough or but from DBA perspective core engine , architecture, T-SQL is same and if for re-writing means find/replace, and yeap more wizards, more features, more windows ising and lot of Marketing, for me similar products with same background. just my opinion.Anonymous
March 08, 2018
The comment has been removed