数据库连接技术之OLE DB

    之前的博客介绍了ODBC和JDBC,这次简单的介绍一下OLE DB。ODBC的总结不知道是没贴到博客上还是不在这个博客上,我再找找,没有的话我再补充到时候。好了,开始吧。

回顾

    之前呢介绍过了ODBC和JDBC基本的结构是一样的,也就是本质一致。都是是访问数据库的一套统一的接口,是一系列的规范和对数据库访问的API。区别只是在于ODBC是由C++语言实现的而JDBC是有Java实现的,之所以出现JDBC是因为Java程序和C++的ODBC之间的通信不便。可以说ODBC和JDBC二者之间的关系是横向的,而OLE DB相对与ODBC的关系则是纵向的。为什么这么说呢?

OLE DB之历史

    为什么说OLE DB((Object Linking and Embedding, Database)和ODBC之间的关系是纵向的呢。这还是要从ODBC说起,ODBC是一套接口,但是ODBC只支持访问关系型数据库,既二维数据数据库。但是随着技术的发展显然我们需要面对的不在只是关系型的数据库,还需要访问不能使用SQL访问的非关系行和层次结构行数据,包括邮件系统中的数据、Web上的文本、目录服务等形式。因此,从数据源的角度来说OLE DB 和ODBC的关系如下图:

数据库连接技术之OLE DB

基于COM标准

    ODBC是基于API的实现,而OLE DB则是基于COM标准。也就是说在实现上ODBC必须支持几乎所有的DBMS特征和功能,而OLE DB则可以部分实现。这里不太理解可以查查什么事COM标准。
OLE DB构成
    OLE DB包括几个逻辑组件,因为其基于COM标准,所以组件之间相互独立,仅保持通信。
    数据提供者(Data Provider):凡是通过OLE DB将数据提供出来的,即数据库提供者。数据提供者的概念可以和ODBC中的驱动程序对比理解。
    数据消费者(Data Consumer):使用了OLE DB提供的数据的程序或组件。
    服务组件(Service Component):执行数据提供者和数据消费者之间的数据传递工作。
    业务组件(Bussiness Component):利用服务组件专门完成某种特定业务信息处理,是可以重用的功能组件。

OLE DB和ADO

    之前的博客绝对是介绍过ADO了,这里ADO是OLE DB的进一步封装,在程序中的关系如下:
        
数据库连接技术之OLE DB

    总的来说:OLE DB是ODBC的扩充,它基于COM标准,具有比ODBC更高的灵活性。不过最终也还是链接数据库的一套标准。只不过相对与ODBC来说更底层。

数据库连接技术之OLE DB,布布扣,bubuko.com

数据库连接技术之OLE DB

上一篇:oracle批量插入数据


下一篇:Linux下Oracle11G RAC报错:在安装oracle软件时报file not found一例