注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

jiwenxu的博客

CODE

 
 
 

日志

 
 

ADO、DAO、RDO、ODBC、OLEDB、JDBC、BDE、数据库访问技术  

2009-12-09 10:25:00|  分类: 数据库 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

ADO---Active Data Objects,活动数据对象
DAO---Data Access Objects,数据访问对象
RDO---Remote Data Objects,远程数据对象
ODBC---Open Database Connectivity,开放式数据库连接性
DSN---Data Source Name,数据源名
BDE---Borland Database Engine,Borland数据库

JET---Joint EngineTechnology,数据连接性引擎
技术
OLEDB---Objects Link Embed DataBase对象链接嵌入数据库

1、ODBC
1992年Microsoft和Sybase、Digital共同制定了ODBC标准接口,以单一的ODBC API 来存取各种不同的数据库。随后ODBC便获得了许多数据库厂商和Third-Party的支持而逐渐成为标准的数据存取技术。
ODBC以当时的业界标准规范X/Open Call-Level Interface(CLI)和ISO/IEC9075-3 Call-Level Interface(SQL/CLI)为涵盖的范围,因而支持了广阔的数据库。
虽然ODBC在初期的版本中执行效率不佳,而且功能有限,因此也为人们所贬低。但是,随着Micr osoft不断地改善ODBC,使ODBC的执行效率不断增加,ODBC驱动程序的功能也日渐齐全。到目前,ODBC已经是一个稳定并且执行效率良好的数据存取引擎。
不过ODBC仅支持关系数据库,以及传统的数据库数据类型,并且只以C/C++语言API 形式提供服务,因而无法符合日渐复杂的数据存取应用,也无法让脚本语言使用。因此Microsoft除了ODBC 之外,也推出了其他的数据存取技术以满足程序员不同的需要。
2. DAO
1993年Microsoft为了让程序员能够存取Access数据库,使用OLE Automation技术封装了Jet Engine 。这些使用Jet Engine 存取Access数据库的OLE Automation Object便称为Data Access Object(DAO)。
DAO能够存取xBase的数据库以及Excel文件,并且能够结合ODBC存取关系数据库。但是DAO毕竟主要的设计目的是存取Access数据库,因此DAO在存取Access数据库时非常有效率,但是在存取其他的数据源时却表现得不怎么好。目前DAO已经慢慢接近维护的状态,因此建议各位尽量不要在新的项目中使用DAO。
3. RDO
由于DAO在结合ODBC存取关系数据库时表现得并不好,因此在1995年Microsoft同样以OLE Automation 技术直接封装ODBC API ,让程序员能够存取关系数据库。这种数据存取技术便称为Remote Data Object(RDO)。
Microsoft之所以推出RDO,是因为ODBC API 是非常复杂的API,许多程序员无法直接使用ODBC API 来开发应用程序,因此Microsoft以简化的RDO对象让程序员能够较为简单存取数据。此外,通过RDO,VB和脚本语言也能够存取各种关系数据库。不过目前RDO也已经逐渐地被放弃了,因此建议各位也不要在新的项目中使用RDO,毕竟RDO只能算是一个过渡性质的数据存取解决方案。
4. OLE-DB
随着数据源日益复杂化,现今的应用程序很可能需要从不同的数据源取得数据,加以处理,再把处理过的数据输出到另外一个数据源中。更麻烦的是这些数据源可能不是传统的关系数据库,而可能是Excel文件,Email或Internet/Intranet上的电子签名信息。Microsoft为了让应用程序能够以统一的方式存取各种不同的数据源,在1997年提出了Universal Data Access(UDA)架构。UDA以COM技术为核心,协助程序员存取企业中各类不同的数据源。
UDA以OLE-DB(属于操作系统层次的软件)做为技术的骨架。OLE-DB定义了统一的COM接口做为存取各类异质数据源的标准,并且封装在一组COM对象之中。藉由OLE-DB,程序员就可以使用一致的方式来存取各种数据。
5. ADO
虽然OLE-DB允许程序员存取各类数据,是一个非常良好的架构,但是由于OLE-DB太底层化,而且在使用上非常复杂,需要程序员拥有高超的技巧,因此只有少数的程序员才有办法使用OLE-DB。这让OLE-DB无法广为流行。为了解决这个问题,并且让VB和脚本语言也能够藉由OLE-DB存取各种数据源,Microsoft同样以COM技术封装OLE-DB为ADO对象,简化了程序员数据存取的工作。由于
ADO成功地封装了OLE-DB大部分的功能,并且大量简化了数据存取工作,因此ADO也逐渐被愈来愈多的程序员所接受。
6. ADO 的架构
ADO主要是让应用程序或Web 应用程序存取各种不同的数据源。ADO封装了OLE-DB复杂的接口,以极为简单的COM接口存取数据。ADO能够藉由OLE-DB存取传统的关系数据库,或Flat-File类型的数据库;也可以存取非传统的数据,例如文字、Email、声音、图形、影像等。更可以通过OLE-DB,藉由Connector来存取大型的数据源,例如CICS等。但是不管应用程序要存取哪一种数据源,应用程序都只需要使用ADO,而不需要使用各种不同的复杂API来存取不同的数据,这样就可以大大简化应用程序员的工作。

 

至于JDBC,则是JAVA连接数据库的一种方式,BDE,是delphi下的一种数据库。这两种暂时不介绍了,毕竟不是主流。而且JAVA和DELPHI都提供了ADO连接方式。

  评论这张
 
阅读(900)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018