A new release of ODBC for Modern Data Stores

 

After more than 15 years since the last release, Microsoft is looking at updating the Open Data Base Connectivity (ODBC) specification.

ODBC was first released in September of 1992 as a C-based call-level interface for applications to connect to, describe, query, and update a relational store. Since its introduction, ODBC has become the most widely adopted standard interface for relational data, fostering an ecosystem of first-party data producers as well as 3rd party vendors that build and sell ODBC Drivers for a variety of data sources.

ODBC was designed for relational databases conforming to the ISO SQL-92 standard, and has not undergone a significant revision since the release of ODBC 3.5 in 1997. Since that time, not only have relational data sources evolved to support new data types, syntax, and functionality, but a variety of new sources of data have emerged, particularly in the cloud, that don't conform to the constraints of a relational database.

The prevalence of tools, applications, and development environments that consume ODBC have led a number of vendors to create ODBC drivers to cloud-based and non-relational data sources. While this provides connectivity to existing tools, having to flatten the data into normalized relational views loses fidelity, functionality, semantics, and performance over a more natural representation of the data.

So we started to consider what it would look like to extend ODBC to more naturally support more modern Relational, Document-oriented, and other NoSQL stores. Borrowing and extending syntax and semantics from structured types in SQL-99, we identified a relatively small set of extensions necessary to support first-class representation of the modern data sources, as well as a set of general enhancements to improve the ability for applications to write interoperable code across ODBC drivers.

To be part of ODBC, these extensions would have to be backward compatible with existing drivers and applications, and extend ODBC in ways natural and consistent with the existing API.

From these efforts a new version of ODBC slowly took shape. We started to discuss these extensions with a few ODBC vendors to flesh out requirements and vet designs, and have reached the point that we're ready to start talking more broadly about ODBC 4.0 – the first significant update to ODBC in over 15 years.

Thoughts/comments/ideas? Please share! And stay tuned here for more updates…

 

Michael Pizzo
Principal Architect, Microsoft Data Group