In Level 1 of this stairway I gave you some information about how to write a basic SELECT statement. Now let’s step back in time and discuss the history of Structured Query Language, or what most SQL Server professionals just shorten to SQL or pronounce like the second part of a bad movie and say sequel. Fasten your seatbelts while I crank up the time machine and travel back in time to follow the history of SQL and Microsoft SQL Server from its early years to where they are today.
It all began at a little known company called IBM in the early 1970s. A couple of researchers named Donald D. Chamberlin and Raymond F. Boyce developed the first incarnation of the SQL language while they were working in IBM’s San Jose Research lab. They originally called this new coding language SEQUEL, which stood for Structured English Query Language. They invented this language to allowed programmers and infrequent database users to interact with data. The original SQL code set identified a set of functions , and a set of simple and consistent rules. If you want to find out more information about the first SEQUEL rule set you can read a paper published by Chamberlin and Raymond, which can be found here: http://www.almaden.ibm.com/cs/people/chamberlin/sequel-1974.pdf.
It was discovered that the name SEQUEL was already trademarked by a United Kingdom aircraft company named Hawker Siddeley, which caused IBM to change the name of this new data manipulation language. They shortened the name to just three letters, SQL. That is how the SQL language was now born.
In the late 1970s a company called Relational Software Inc., which later became Oracle, saw the value of the relational database model and the SQL language developed by Chamberlin and Raymond. They started developing a database management system they hoped to sell to the U.S. Government. In June 1979 they released the first commercially available RDBMS that used SQL, which was called Oracle V2 which ran on a VAX machine.
Relational Software Inc. beat IBM to market place with SQL, and this wouldn’t be the first or last time that a company beat IBM to the market place on a technology product. Shortly after the release of Oracle V2, IBM released its RDBMS known as System/38 which used the SQL language to manipulate data. System/38 proved to be a viable offering that lead IBM to spend even more time and effort exploring other software applications that took advantage of SQL.
In the 1980s many other products that used SQL came to market. With many vendors exploiting SQL, the language was standardized by the American National Standards Institute (ANSI) who defined the SQL-86 standard in 1986. In 1987 the International Organization for Standards (ISO) adopted SQL. During this standardization process the official pronunciation for SQL was declared to be ess queue el, but many people still refer to it as sequel.
With the SQL language now being a standard, vendor implementations of SQL found it hard to support their product lines with only standard SQL syntax, therefore vendors started creating their own extensions to the SQL language to enhance their products. This is what led to Sybase to develop the Transact-SQL language extensions to support their own RDBMS implementation. Over time many of these original vendor-specific extensions would be adopted by other vendors, eventually finding their way into the standard SQL language.
In late 1987 Sybase and Microsoft launched into a partnership to produce and market DataServer, which used SQL, and ran on the OS/2 operating system. At the time Ashton-Tate was the leader in PC databases with a product named dBase. In 1989 Microsoft went into a partnership with Ashton-Tate to release the first product that contained the name SQL Server, with a product named Ashton-Tate/Microsoft SQL Server. A beta release of this product was shipped in the fall of 1988. This release was also called version 1.0 of SQL Server by some, since the original name was a little too awkward for many people to refer to easily.
As with any standard, as it is used and expanded by different vendors and products, it needs to evolve. This was no different for SQL. In 1989 a new version of the ANSI/ISO SQL standard was established, which was dubbed SQL-89.
In the 1990s there were many vendors who were providing products that used SQL. This continued support and expansion of the SQL language kept SQL moving forward in the software evolution process. The standards developed in the 80s, where eventually reviewed and a new standard emerged called SQL-92.
The SQL-92 standard expanded the standard SQL Language by leaps and bounds. SQL-92 brought in the concept of a schema manipulation language. This change introduced the ALTER and DROP commands into the SQL language. It also allowed for the dynamic creation of SQL statements and supported a number of new data types. Additional syntax was added to support outer joins as well as cascade updates and deletes. There were many other new features added to make the SQL language more flexible.
At the time SQL-92 was written there was no one vendor that adhered to the complete standard. Because of this, the standard was broken down into three different levels of compliance: entry, intermediate, and full. Each of these levels implemented a subset of the next higher level. The entry level contained a subset of the functionality of the intermediate level, and the intermediate level contained a subset of the full standard. When buying products in the 1990s, vendors noted the level at which the product conformed to the standard.
In early 1990, Microsoft continued to enhance their 1988 release of SQL Server. In the summer of 1990 they release version 1.1. This version contained many bug fixes, but also supported the just released Windows 3.0 operating system. Microsoft continued to exploit the SQL language when version 4.2 of SQL Server was released in 1993. This was the last release provided during the Sybase/Microsoft partnership.
In June of 1995 Microsoft released version 6.0 of SQL Server, which supported their new Windows 95 operating system. This release was then followed by SQL Server 6.5 in 1996. To round out the different versions released in the 90s Microsoft rolled out SQL Server 7.0 in in 1998.
While Microsoft and other vendors continued rolling out new releases of their database software, the SQL standards continued evolving as well. In 1999 the standards organizations published SQL:1999. This latest standard included a number of new features to support the ever changing SQL Server landscape. It was this version of the standard that incorporated support for large object types, user defined data types (UDT), established the SIMILAR and DISTINCT predicate, and many more new features. By the close of the century SQL was becoming a commonly used language for storing and manipulating relational data.
Evolution of SQL didn’t stop when the sands of time crossed over to the new millennium. Shortly after the beginning of the twenty-first century Microsoft released the next version of SQL Server, code named Shiloh, or more commonly known as SQL Server 2000. As time marched on it took another 5 years before the next release of SQL Server, code named Yukon, which was released in 2005 with a name of SQL Server 2005. Before the first decade of the new millennium was in the history books Microsoft would release SQL Server 2008, staying with the year theme for their releases.
Just as Microsoft did in updating their older releases with a newer version of SQL Server, so did the governing body over the SQL language standards. During the first decade of the new millennium two different versions of the SQL standards were published: SQL:2003 and SQL:2008. These two new versions bring the standards into the new technology age. These releases provide many clarifications as well as made minor modifications to the already solid SQL language. A couple of significant features released with the SQL:2003 were support for XML and the MERGE statement. With the release of SQL:2008 support for INSTEAD OF triggers, and the TRUNCATE statement are a couple of the key new features.
The Rest is History
The SQL language has come a long way since its early days at IBM. It is now widely used by many database vendors in one flavor or another. Microsoft SQL Server has also evolved into one of the leading contenders within the RDBMS space. The current decade has already seen a new release of SQL Server, named SQL Server 2008 R2, which was released in 2010. The rest of the future for the current decade is not known, but I’m sure the SQL language will continue to be refined and expanded. The SQL language invented in the 70s was incorporated into the first version SQL Server in the late 80s. The rest of the journey from there to where we are at today is just history.
To truly have an appreciation for the world of SQL one needs to have at least a high level understanding of relational database design. In my next Stairway article I will be providing another history lesson about the father of relational database design (Edgar Frank “Ted” Codd), as well as a discussion of different database components related to database design.