The standards associated with the initial versions of SQL added much needed conformity to a specialism that could have become as diverse as programming languages leading to an even greater increased system complexity today; we have to thank IBM in the 1970s for making the first version available in the public domain and for standardisation by ANSI, NCITS (National Committee for Information Technology Standards) and the H2 (pseudonym) Committee on Databases in 1986.
SQL/86 introduced the basic features of Tables, Columns, Views, basic relational operations, some integrity constraints and language bindings (FORTRAN, COBOL, etc.).
SQL/89 introduced partial referential integrity.
SQL/92 introduced a host of new features; assertions, bit data types, character sets, connection management, domains, dynamic SQL, enhanced constraints, new referential integrity, diagnostics, grouped operations, information schema and manipulation, modules, character sets, joins, row and table constraints, sub queries, temporary tables, transaction management, unions and intersections and new command sequences (CASE, DATETIME).
SQL/99 was a radical rethink of the 1992 standard. Packages, as opposed to single programs, were introduced, extensions were added and Tables were enhanced to support new data types, arrays, row types, user defined functions, triggers, enhancements to roles for security purposes, recursion, new components and transaction management. However the greatest, and most interesting, change was the move away from the relational data model to a more object orientated basis which some see as a step back to independent logical file data model from the 1960s (Gorman (1999)) yet a step forward as, in my and other opinions, it allows the direct modelling of recursitive relationships which is unique to the SQL/99 standard. The relational model generally, via its use of table structures and relationships, models one-to-many relationships and SQL/99 allows the introduction of many-to-many which is extremely useful in my experience having been involved in running a database system with many-to-many relationships with graphic objects. The table/data independence achievable and the ability to re-use objects would have allowed savings in expensive disk space (15 years ago) and performance increases.
“With SQL/99 you can get the best of both worlds and of course, you can get the worst of both worlds. It is up to the database practitioners to do the right thing.” Keith Hare of JCC Consulting (H2).
Coronel, Morris & Rob (2009) Database Systems: Design, Implementation, and Management (9th Edition). Cengage Learning.
Eisenberg, A & Melton, J (1999) SQL:1999, formerly known as SQL3. Available at http://www.cs.sfu.ca/CC/354/oschulte/standards.doc (Accessed 18 April 2010).
Gorman, M (1999) Great News – The Relational Model is Dead. Available http://www.tdan.com/view-articles/5093 (Accessed 18 April 2010).