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 emergence of an Internet-centric architecture is exposing enterprise data processing infrastructures to new peak-load demands that dwarf the workloads of just a few years ago. When databases primarily supported in-house applications used by a few dozen employees at a time, database performance issues may have produced employee frustration, but they did not really impact customers. The advent of call centers and other customer support applications produced a closer coupling between data management and customer satisfaction, but applications were still limited to at most hundreds of concurrent users (the people manning the phones in the call center).
With the Internet, the connection between a customer and the company’s databases becomes a direct one. Database performance problems translate directly into slow customer response times. Database unavailability translates directly into lost sales. Furthermore, databases and other parts of the data processing infrastructure are no longer buffered from peak-load transaction rates. If a financial services firm offers online trading or portfolio management, it will need to prepare for peak-load volumes on days of heavy stock price movement that may be 10 or 20 times the average daily volume. Similarly, an online retailer must gear up to support the heaviest end-of-year selling season, not just mid-March transaction rates.
The demands of e-commerce and real-time Internet information access are already producing peak-load transaction rates from the most popular Internet services that are one or two orders of magnitude higher than the fastest conventional disk-based RDBMS systems. To cope with these demands, companies will increasingly turn to distributed and replicated databases. They will pull hot data forward and cache it closer to the customer interaction within the network. To meet peak-load demands, they will use in-memory databases. This will, in turn, require new database support for deciding which data to cache, and which levels of synchronization and replication are appropriate. At first, these issues will apply only to the largest and highest-volume sites, but just as web page caching has become an accepted and then an essential technique for maintaining adequate web browser performance, hot data caching will become a mainstream Internet data management architecture as volumes grow.
Internet and Network Services Integration
In the Internet era, database management will increasingly become just one more network service, and one that must be tightly integrated with other services, such as messaging, transaction services, and network management. In some of these areas, standards are well established, such as the XA standard for distributed transaction management. In others, standards are in their infancy or are just emerging, such as the SOAP standard for sending XML data over the Internet’s HTTP protocol and the UDDI standards for finding services in a distributed network environment.
The multitier architecture that is dominating Internet-centric applications also poses new questions about which roles should be played by the database manager and by other components of the overall information system. For example, when network transactions are viewed from the point of distributed databases, a two-phase commit protocol, implemented in a proprietary way by a DBMS vendor, may provide a solution. When network transactions involve a combination of legacy applications (e.g., mainframe CICS transactions), relational database updates, and interapplication
messages, the transaction management problem moves outside the database, and external mechanisms are required.
A similar trade-off surrounds the emergence of Java-based application servers as a middle-tier platform for executing business logic. Before the Internet era, stored procedures became known as the accepted DBMS technique for embedding business logic within the database itself. More recently, Java has emerged as a viable stored procedure language, an alternative to earlier, vendor-proprietary languages. Now, application servers create an alternative platform for business logic written in Java, in this case, external to the database. It’s not yet clear how these two trends will be rationalized, and whether business logic will continue its migration into the database or will settle in an application server layer. Whichever trend predominates, tighter integration between database servers and application servers will be required. Several of the DBMS vendors now produce their own application servers, and it seems likely that they will provide the best integration within their own product lines. Whether this approach will prevail against a best-of-breed approach remains another open question.
Relational database technology has reached into many parts of the computer industry, from small handheld devices to large mainframes. Databases underlie nearly all enterprise-class applications as the foundation for storing and managing their information. Lightweight database technology underlies an even broader range of applications. Directory services, a foundation technology for the new era of value-added data communications network services, are a specialized form of database technology. Lightweight, very-high-performance databases also form an integral part of telecommunications networks, enabling cellular networks, advanced billing schemes, smart messaging services, and similar capabilities.
These embedded database applications have traditionally been implemented using proprietary, custom-written data management code tightly integrated with the application. This application-specific approach produced the highest possible performance, but at the expense of an inflexible, hard-to-maintain data management solution. With declining memory prices and higher-performance processors, lightweight SQL-based relational databases are now able to economically support these applications.
The advantages of a standards-based embedded database are substantial. Without a serious compromise in performance, an application can be developed in a more modular fashion, changes in database structure can be handled transparently, and new services and applications can be rapidly deployed atop existing databases. With these advantages, embedded database applications appear destined to be a new area of growth potential for SQL and relational database technology. As in so many other areas of information technology, the ultimate triumph of SQL-based databases may be that they disappear into the fabric of other products and services—invisible as a stand-alone component, but vital to the product or service that contains them.
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.