In this article, Vikram Vaswani discusses the ways in which SQL plays an important role in the computer market today, and what may be in store for this database language in the future. This excerpt comes from chapter 26 of MySQL: The Complete Reference, by Vikram Vaswani (McGraw-Hill/Osborne, ISBN 0-07-222477-0, 2004).
The most significant unknown in the future evolution of SQL is how it will integrate with object-oriented technologies. Modern application development tools and methodologies are all based on object-oriented techniques. Two object-oriented languages, C++ and Java, dominate serious software development, for both client-side and server-side software. The core row/column principles of the relational data model and SQL, however, are rooted in a much earlier COBOL era of records and fields, not objects and methods.
The object database vendorsí solution to the relational/object mismatch has been the wholesale discarding of the relational model in favor of pure object database structures. But the lack of standards, steep learning curve, lack of simple query facilities, and other disadvantages have prevented pure object databases from having any significant market success to date. The relational database vendors have responded to the object database challenge by embracing object-oriented features, but the result has been a proliferation of nonstandard, proprietary database features and SQL extensions.
Itís clear that relational database technology and object technology must be more tightly integrated if relational databases are to remain an integral part of the next generation of applications. Several trends are visible today:
Java-based interfaces to RDBMSís, such as JDBC and embedded SQL for Java, will continue to grow rapidly in popularity.
Java will become a more important stored procedure language for implementing business logic within a RDBMS. Virtually all of the major DBMS vendors have announced plans to support Java as an alternative to their proprietary stored procedure languages.
DBMS products will expand support for abstract, complex data types that exhibit object-oriented capabilities such as encapsulation and inheritance. Beyond high-level agreement on the need to store objects within a row/column structure, the specifics (nested tables, arrays, complex columns) vary dramatically.
The SQL:1999 standard for object-oriented extensions to SQL will influence vendor products, but slowly, as vendors continue to seek competitive advantages and user lock-in through proprietary object-oriented extensions.
Message-oriented interfaces, including database triggers that produce messages external to the DBMS for integration with other applications, will grow in importance, as the database becomes a more active component for integrating systems together.
XML will emerge as an important standard format for representing both data retrieved from a SQL database, and data to be entered into or updated in a database.
DBMS vendors will offer SQL extensions to store and retrieve XML documents, and to search and retrieve their contents.
Whether these extensions to SQL and the relational model can successfully integrate the worlds of RDBMS and objects remains to be seen. The object-oriented database vendors continue to maintain that object capabilities bolted onto an RDBMS canít provide the kind of transparent integration needed. Most of them have enthusiastically embraced XML as the newest wave of object technology. The enterprise DBMS vendors have announced and added substantial object-relational capabilities, and more recently, XML integration products and features, but itís hard to determine how many of them are actually being used. In addition, the emergence of XML as an important Internet standard has given birth to a new round of database challengers, offering native XML databases. With all of these competing alternatives, the further integration of object technologies into the world of relational databases seems certain. The specific path that this evolution will take remains the largest unknown in the future of SQL.
SQL continues to play a major role in the computer industry, and appears poised to continue as an important core technology:
SQL-based databases are flagship software products for the three largest software vendors in the world: Microsoft, Oracle, and IBM.
SQL-based databases operate on all classes of computer systems, from mainframes and database servers to desktop computer clients, notebook computers, and handheld PDAs.
All of the major enterprise applications used in large organizations rely on enterprise-class SQL databases to store and structure their data.
SQL-based databases have responded successfully to the challenges of the object model, with SQL extensions in object/relational databases.
SQL-based databases are responding to the needs of Internet-based architectures by incorporating XML and integrating with application servers.
Remember: this is chapter 26 of MySQL: The Complete Reference, by Vikram Vaswani (McGraw-Hill/Osborne, ISBN 0-07-222477-0, 2004). Vikram is the founder of Melonfire, and has had numerous articles featured on Dev Shed. Buy this book now.