欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

数据库连接技术之OLEDB

程序员文章站 2022-05-23 14:32:05
...

之前的博客介绍了ODBC和JDBC,这次简单的介绍一下OLE DB。ODBC的总结不知道是没贴到博客上还是不在这个博客上,我再找找,没有的话我再补充到时候。好了,开始吧。 回顾 之前呢介绍过了ODBC和JDBC基本的结构是一样的,也就是本质一致。都是是访问数据库的一套

之前的博客介绍了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的关系如下图:

数据库连接技术之OLEDB

基于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的进一步封装,在程序中的关系如下:

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