Datasheet
The Ingres project was backed by several U.S. military research agencies and was very similar to System R
in many ways, although it ran on a different platform. One key advantage that Ingres had over System R
that led to its longevity was the fact that the Ingres source code was publicly available, although it was later
commercialized and released by Computer Associates in the 1980s.
Over the next couple of decades, databases continued to evolve. Modern databases such as Oracle,
Microsoft SQL Server, MySQL, and LDAP are all highly influenced by these first few databases. They
have improved greatly over time to handle very high transaction volume, to work with large amounts of
data, and to offer high scalability and reliability.
The Birth of Universal Data Access
At first, there were no common interfaces for accessing data. Each data provider exposed an API or other
means of accessing its data. The developer only had to be familiar with the API of the data provider he
or she used. When companies switched to a new database system, any knowledge of how to use the old
system became worthless and the developer had to learn a new system from scratch. As time went on,
more data providers became available and developers were expected to have intimate knowledge of
several forms of data access. Something needed to be done to standardize the way in which data was
retrieved from various sources.
ODBC
Open Database Connectivity (ODBC) helped address the problem of needing to know the details of each
DBMS used. ODBC provides a single interface for accessing a number of database systems. To accom-
plish this, ODBC provides a driver model for accessing data. Any database provider can write a driver
for ODBC to access data from their database system. This enables developers to access that database
through the ODBC drivers instead of talking directly to the database system. For data sources such as
files, the ODBC driver plays the role of the engine, providing direct access to the data source. In cases
where the ODBC driver needs to connect to a database server, the ODBC driver typically acts as a
wrapper around the API exposed by the database server.
With this model, developers move from one DBMS to another and use many of the skills they have
already acquired. Perhaps more important, a developer can write an application that doesn’t target a
specific database system. This is especially beneficial for vendors who write applications to be consumed
by multiple customers. It gives customers the capability to choose the back-end database system they
want to use, without requiring vendors to create several versions of their applications.
ODBC was a huge leap forward and helped to greatly simplify database-driven application development.
It does have some shortfalls, though. First, it is only capable of supporting relational data. If you need to
access a hierarchical data source such as LDAP, or semi-structured data, ODBC can’t help you. Second, it
can only handle SQL statements, and the result must be representable in the form of rows and columns.
Overall, ODBC was a huge success, considering what the previous environment was like.
4
Chapter 1
03_584375 ch01.qxd 10/28/05 10:49 PM Page 4