MDAC、DAO、ADO、OLE DB、ODBC之间的关系
MDAC(Microsoft Data Access Components)是微软数据库访问组件,Netpise和许多利用数据库的软件都需要操作系统安装MDAC。很多用户的操作系统中已经存在了MDAC,有些是操作系统内置的、有些是其它应用程序安装的。
在 MDAC 中有三种主要技术:
(1)ActiveX 数据对象 (ADO): 是一个高级的、易于使用的与 OLE DB 的接口。
(2)OLE DB: 是一个低级的、高性能的接口,用来实现与各种数据存储的连接。ADO 和 OLE DB 均可处理关系(表格)和非关系(分级或流)数据。
(3)开放式数据库互连 (ODBC) 是另一个专门为关系数据存储设计的低级的、高性能的接口。
数据访问方式所走过的几个阶段:
ODBC – (Open Database Connectivity)是第一个使用SQL访问不同关系数据库的数据访问技术。使用ODBC应用程序能够通过单一的命令操纵不同的数据库,而开发人员需要做的仅仅只是针对不同的应用加入相应的ODBC驱动。
DAO - (Data Access Objects)不像ODBC那样是面向C/C++程序员的,它是微软提供给Visual Basic开发人员的一种简单的数据访问方法,用于操纵Access数据库。
RDO – 在使用DAO访问不同的关系型数据库的时候,Jet引擎不得不在DAO和ODBC之间进行命令的转化,导致了性能的下降,而RDO(Remote Data Objects)的出现就顺理成章了。
OLE DB – 随着越来越多的数据以非关系型格式存储,需要一种新的架构来提供这种应用和数据源之间的无缝连接,基于COM(Component Object Model)的OLE DB应运而生了。
ADO – 基于OLE DB之上的ADO更简单、更高级,是微软技术发展的趋势。
给你个图:
当使用应用程序时,应用程序首先通过使用ODBC API与驱动管理器进行通信,ODBC API由一组ODBC函数调用组成,通过API调用ODBC函数提交SQL请求,然后,驱动管理器通过分析ODBC函数并判断数据源的类型,并配置正确的驱动器,并把ODBC函数调用传递给驱动器,最后,驱动器处理ODBC函数调用,把SQL请求发送给数据源,数据源执行相应操作后,驱动器返回执行结果,管理器再吧执行结果返回给应用程序。
OLE DB(Object Link and Embedding Database,对象连接与嵌套数据库)是访问数据库的另一个统一的接口标准,它建立在ODBC基础之上,不仅能够提供传统的数据库访问,并且能够访问关系型数据库和非关系型数据库。
OLE DB其本质就是一个封装数据库访问的一系列COM接口,使用COM接口不仅能够减少应用程序和数据库之间的通信和交互,也能够极大的提升数据库的性能,让数据库的访问和操作更加便捷。