学习一项技术,首先我们要了解它的历史,这样我们才能更透彻地理解它的用途。所以,接下来我将介绍微软数据库连接技术的发展历程。
架构图上图中,我们可以看到五个关键词ODBC,OLE DB,DAO,RAO,ADO,我们来一个个介绍:
ODBC(Open Database Connectivity):它定义了访问数据库API的一个规范,这些API独立于不同厂商的DBMS,也独立于具体的编程语言(但是Microsoft的ODBC文档是用C语言描述的,许多实际的ODBC驱动程序也是用C语言写的。)
OLE DB(Object Linking and Embedding,对象连接与嵌入,简称OLE技术):ODBC只支持关系型数据库,但随着技术的发展,我们还需要访问非关系型数据库以及文件等,所以ODBC已不能满足我们的需求。这时OLE DB就横空出世了,OLE DB不仅具有ODBC的结构化查询语言(SQL)能力,还具有面向其他非SQL数据类型的通路。
ODBC与OLE DB的区别:ODBC 标准的对象是基于SQL 的数据源(SQL-Based Data Source),而OLE DB 的对象则是范围更为广泛的任何数据存储。从这个意义上说,符合ODBC 标准的数据源是符合OLE DB 标准的数据存储的子集。
DAO(Data Access Objects):DAO是基于Microsoft Jet Database Engine之上的一套面向对象的体系,可以访问Microsoft Access或dBase等桌面文件型数据库,或者ODBC。(主要用来访问Access数据库)
RDO(Remote Data Objects):是一个到 ODBC 的、面向对象的数据访问接口,它同易于使用的 DAO style组合在一起,提供了一个接口,形式上展示出所有 ODBC 的底层功能和灵活性。尽管 RDO 在很好地访问 Jet 或 ISAM 数据库方面受到限制,而且它只能通过现存的 ODBC 驱动程序来访问关系数据库。(用来跨越网络访问数据)
ADO(ActiveX Data Objects):由于OLE-DB太底层化,而且在使用上非常复杂,为了解决这个问题,Microsoft同样以COM技术封装OLE-DB为ADO对象,大量简化了数据存取工作。ADO被设计来替代微软早期的数据访问对象层(包括RDO和DAO)。ADO在1996年8月与OLE DB一起被发布。
ADO.NET:ADO.NET是微软在.NET Framework中负责数据访问的类库集,它是使用在COM时代奠基的OLE DB技术以及.NET Framework的类库和编程语言来发展的,它可以让.NET上的任何编程语言能够连接并访问关系数据库与非数据库型数据源(例如XML,Excel或是文字档数据),或是独立出来作为处理应用程序数据的类别对象。
许多人将ADO.NET视为ADO的下一个版本,但其实它是一个全新的架构、产品与概念。
参考文献:
《ODBC、OLE DB、 ADO的区别》
《三种连接方式:RDO DAO ADO》
维基百科
网友评论