Object Oriented Data Abstraction
Every
Relational Database Management System (RDBMS) vendor has a different
library for connecting to their RDBMS. Microsoft had the problem
licked early on by creating a C abstraction called Open Database
Connectivity (ODBC). Great! But then C++ and Microsoft
Foundation Classes (MFC) came along, Microsoft was telling customers
that "DAO is the way to go." DAO was an object library over the
JET engine for Access. They later recanted and said developers should
use the ODBC data abstraction under MFC . Then when COM and DCOM
fell out of favor and the Active Template Library (ATL) was pushed,
developers where told to use ADO. Now with the .Net CLR, were
told to use yet another library; ADO.Net. Ironically, Many of the RDMS
Vendors now support native API's that mostly follow the initial ODBC
standard. Microsoft will continue to push SQL Server, Oracle will push Oracle. From the Unix side, there should be a robust Data Abstraction that allows us to use any RDBMS without losing any native capabilities. You should be able to do transactioning. You should be able to do a heterogenenous joins (I'm working on that one for a future release!) You should be able to talk to different databases with the same data objects. The data objects should support inheritance to facilitate tiered architectures. That's what my Data Abstraction Library does. The links below include the documentation and a 'tarball' of the source code.
The Code
The data abstraction library works natively for mySQL, postgreSQL and uses ODBC for everything else.The archive is here.
The documentation starts here.
(Now using doxygen to create the documentation.)
