面对各式各样、越来越多的数据来源和访问需求。软件开发框架中一般都提供了统一的访问接口和方法,来屏蔽数据库底层差异。 各式各样的Provider提供者。
ODBC(Open Database Connectivity,开放数据库互连):是微软提供的支持关系数据库,以及传统的数据库数据类型,并且只以C/C++语言API(API就是一些C语言的代码,是最底层的程序,在windows中就是一些.dll的文件)形式提供服务。
OLE-DB:定义了统一的COM接口做为存取各类异质数据源的标准,并且封装在一组COM对象之中。在支持ODBC的基础上,具有面向其他非SQL数据类型的通路。
ADO (ActiveX Data Objects):是一个用于存取数据源的COM组件。它提供了编程语言和统一数据访问方式OLE DB的一个中间层。
ADO.NET:在NET编程环境中优先使用的数据访问接口。主要包含:Connection 类、Command对象、DataReader类、DataAdapter类、DataTable类、DataSet对象。
ODAC(Oracle Data Access Components):Oracle为Borland Delphi,C++ Builder 以及 Kylix提供了一些非可视化的组件。
ODAC 直接使用 Oracle 调用接口 (OCI). OCI 是一种允许应用程序开发人员使用第三方开发语言存取Oracle数据服务器的过程或函数以及控制所有的SQL语句执行状态的应用程序接口(API)。OCI 通过一个动态运行库(ORA*.DLL)提供了一个标准的数据库存取库及函数,以在应用程序中建立连接。也可以使用ODAC的Net选项而无需在客户机上安装Oracle客户端来连接到Oracle.在这种情况下,ODAC仅需要TCP/IP协议的支持,从而可以创建真正的、最小的数据库应用程序。ODAC包含了ODP.NET。
ODP.NET(Oracle Data Provider For .NET):是Oracle公司为.NET开发者发布的一个 .NET 使用 ORACLE 数据库的类库。
由于微软在.net framework4中会将System.Data.OracleClient.dll deprecated,而且就访问效率和速度而言,System.Data.OracleClient.dll与 Oracle.DataAccess.dll相比,微软的确实没有oracle提供的类库有优势,所以放弃了使用多年的 System.Data.OracleClient.dll,取而代之的是odp.net。