SQL is not itself a database management system, nor is it a stand-alone product. You cannot go into a computer store and “buy SQL.” Instead, SQL is an integral part of a database management system , a language and a tool for communicating with the DBMS. Figure 1-2 shows some of the components of a typical DBMS, and how SQL acts as the glue that links them together.
The database engine is the heart of the DBMS, responsible for actually structuring, storing, and retrieving the data in the database. It accepts SQL requests from other DBMS components—such as a forms facility, report writer, or interactive query facility—from user-written application programs, and even from other computer systems . As the figure shows, SQL plays many different roles:
- SQL is an interactive query language . Users type SQL commands into an interactive SQL program to retrieve data and display it on the screen, providing a convenient, easy-to-use tool for ad hoc database queries.
- SQL is a database programming language . Programmers embed SQL commands into their application programs to access the data in a database. Both user written programs and database utility programs (such as report writers and data entry tools) use this technique for database access.
- SQL is a database administration language . The database administrator responsible for managing a minicomputer or mainframe database uses SQL to define the database structure and control access to the stored data.
- SQL is a client/server language . Personal computer programs use SQL to communicate over a network with database servers that store shared data. This client/server architecture has become very popular for enterprise-class applications.
- SQL is an Internet data access language . Internet web servers that interact with corporate data and Internet applications servers all use SQL as a standard language for accessing corporate databases.
- SQL is a distributed database language . Distributed database management systems use SQL to help distribute data across many connected computer systems. The DBMS software on each system uses SQL to communicate with the other systems, sending requests for data access.
- SQL is a database gateway language . In a computer network with a mix of different DBMS products, SQL is often used in a gateway that allows one brand of DBMS to communicate with another brand.
SQL has thus emerged as a useful, powerful tool for linking people, computer programs, and computer systems to the data stored in a relational database.

Figure 2. Components of a typical database management system
IBM Endorsement and Commitment (DB2)
SQL was originally invented by IBM researchers and has since become a strategic product for IBM based on its flagship DB2 database. SQL support is available on all major IBM product families, from personal computers through midrange systems (AS/400 and UNIX-based servers) to IBM mainframes. IBM's initial work provided a clear signal of IBM's direction for other database and system vendors to follow early in the development of SQL and relational databases. Later, IBM's commitment and broad support speeded the market acceptance of SQL. IBM's SQL reach today extends well beyond its own computer systems business. SQL-based products that IBM has developed or acquired now run across a broad range of hardware, in many cases from competing computer vendors such as Sun or Hewlett-Packard.
Microsoft Commitment (SQL Server, ODBC, and ADO)
Microsoft has long considered database access a key part of its Windows personal computer software architecture. Both desktop and server versions of Windows provide standardized relational database access through Open Database Connectivity (ODBC), a SQL-based call-level API. Leading Windows software applications (spreadsheets, word processors, databases, etc.) from Microsoft and other vendors support ODBC, and all leading SQL databases provide ODBC access. Microsoft has enhanced ODBC support with higher-level, more object-oriented database access layers as part of its Object Linking and Embedding technology (OLE DB), and more recently as part of Active/X (Active/X Data Objects, or ADO). When Microsoft began its effort in the late 1980s to make Windows a viable server operating system, it introduced SQL Server as its own SQL-based offering. SQL Server continues today as a flagship Microsoft product, and a key component of its .NET architecture for web services.
Relational Foundation
SQL is a language for relational databases, and it has become popular along with the relational database model. The tabular, row/column structure of a relational database is intuitive to users, keeping the SQL language simple and easy to understand. The relational model also has a strong theoretical foundation that has guided the evolution and implementation of relational databases. Riding a wave of acceptance brought about by the success of the relational model, SQL has become the database language for relational databases.
High-Level, English-Like Structure
SQL statements look like simple English sentences, making SQL easy to learn and understand. This is in part because SQL statements describe the data to be retrieved, rather than specifying how to find the data. Tables and columns in a SQL database can have long, descriptive names. As a result, most SQL statements “say what they mean” and can be read as clear, natural sentences.
Interactive, Ad Hoc Queries
SQL is an interactive query language that gives users ad hoc access to stored data. Using SQL interactively, a user can get answers even to complex questions in minutes or seconds, in sharp contrast to the days or weeks it would take for a programmer to write a custom report program. Because of SQL's ad hoc query power, data is more accessible and can be used to help an organization make better, more informed decisions. SQL's ad hoc query capability was an important advantage over nonrelational databases early in its evolution and more recently has continued as a key advantage over pure object-based databases.
Next page....
|