Overview of ODBC, JDBC, OLE DB, and .NET

ODBC, JDBC, and OLE DB provide functionality that is related to the SQL CLI. The .NET Framework, which Microsoft developed, is a software development framework.

The international standards for SQL define a standard high-level language for accessing and manipulating data that is stored in a relational database. The international standards for the SQL CLI define an application programming interface (API) that programs use to issue SQL statements in a standardized manner through a series of well-defined API functions.

Open Database Connectivity (ODBC) is a Microsoft specification for an API that constitutes an implementation of the international standards for the SQL CLI. ODBC is a superset of the SQL API because it defines many functions that the international standards for the SQL API do not define. The term ODBC is a more commonly used term than SQL CLI, and the two terms are often used interchangeably, especially in the C and C++ programming environments. Unless otherwise noted, the terms SQL CLI and ODBC mean the same thing in this document.

Sun Microsystems developed a specification called JDBC that defines an API for the Java™ programming environment that Java programmers use to access relational databases and issue SQL statements. The JDBC specification defines many of the same types of functions for Java programmers that ODBC and the SQL CLI define for C and C++ programmers. Java programs can directly invoke the API functions that ODBC and the SQL API define. However, the nature of the Java programming environment makes this process cumbersome. JDBC often provides a better solution than ODBC for the object-oriented Java programming environment.

Like ODBC, JDBC is an implementation of the international standards for the SQL CLI. The JDBC implementation consists of a set of Java interfaces, classes, and methods that a Java programmer can use to do the same types of functions that a C or C++ programmer does when invoking ODBC function calls. Also like ODBC, JDBC constitutes a superset of the SQL CLI because JDBC defines many functions that the international standards for the SQL CLI do not define.

OLE DB is a higher-level replacement for ODBC that supports a wider variety of non-relational databases that do not necessarily implement SQL (for example, object databases and spreadsheets). OLE has a client-provider model, where clients request access to data and providers are the software component interfaces that allow access to the data.

The .NET Framework for software development includes the Framework Class Library (FCL). Applications that you write for the .NET Framework execute in the Common Language Runtime (CLR). A .NET Framework data provider enables applications to directly access data sources such as Netezza Performance Server.