乐嘉演讲稿所有:[转]ADO、DAO、RDO、ODBC、OLEDB、JDBC、BDE数据库访问技术的区别 - 《MATLAB和数据库混合编程案例分析》 MATLAB技术论坛

来源:百度文库 编辑:偶看新闻 时间:2024/04/30 14:47:13

[分享] [转]ADO、DAO、RDO、ODBC、OLEDB、JDBC、BDE数据库访问技术的区别 [复制链接]



menyubin
  • 发短消息
  • 加为好友
menyubin 当前离线
UID
57649 
主题
帖子
32 
积分
213 
威望
1  
贝壳
76  
贡献
149  
激情
425  
精华
相册
日志
分享
记录
好友
软件版本
 
研究领域
 
工作性质
 
单位院校
 
阅读权限
150 
注册时间
2010-8-9 
在线时间
40小时 
最后登录
2011-3-21 

副校长

该用户从未签到

UID
57649 
主题
帖子
32 
积分
213 
威望
1  
贝壳
76  
贡献
149  
激情
425  
软件版本
 
阅读权限
150 
在线时间
40小时 
楼主 .onekey { position: relative; float: right; }.onekey a { margin-right: 4px; } 快速分享: | 百度  谷歌 |发表于 2010-8-14 21:45 |只看该作者 |倒序浏览 |打印 .pcb { margin-right: 0pt; } 本帖最后由 menyubin 于 2010-8-14 21:48 编辑

DAO,RDO等属于逐渐被淘汰或者一般人很少用的技术,本书不做相应的介绍。ADO,OLEDB,ODBC,JDBC都将在本书中详细论述。



ADO、DAO、RDO、ODBC、OLEDB、JDBC、BDE、数据库访问技术                                    
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对象链接嵌入数据库

ado的效率不是最佳,但是 使用极为方便,而且通过压缩传输recrodset然后使用updatebatch功能极大的降低了网络的负载。这是我坚持使用ADO的原因。同时ADO 支持将 recordset用XML的方式储存、读取(读取需通过Stream对象),对于通过HTTP协议传输recordset极为方便。只需100行左右的 代码就可以实现基于HTTP的recordset的远程传输。
RDO和DAO微软已经放弃,我就不多说了。但是必须承认,连接SQL Server的时候RDO的效率超过ADO。
ODBC作为一个标准,地位正在受到OLEDB的挑战。OLEDB的可扩展性和与ADO完美的结合使得我们可以访问任意位置的数据,从SQL Server、DB2、informix标准DBMS到EXCEL,outlook通讯簿,AD等等非传统的数据系统,而且OLEDB的SDK可以从MS 站点免费下载,使用VC既可开发(VB的数据模块基于OLE Provider,功能上也类似,但是不能算真正的OLE Provider)。但是作为一个跨平台的标准,由于有IBM的支持,在unix平台上ODBC仍然是最大的赢家。
BDE,JDBC没有用过   

1、ODBC
1992年Microsoft和Sybase、Digital共同制定了ODBC标准接口,以单一的ODBC API 来存取各种不同的数据库。随后ODBC便获得了许多数据库厂商和Third-**的支持而逐渐成为标准的数据存取技术。
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来存取不同的数据,这样就可以大大简化应用程序员的工作。   


  
1.DAO 数据访问对象(DAO)方式是允许程序员操纵Microsoft Jet数据库引擎的第一个面向对象的接口。Jet数据库引擎是一种用来访问MicrosoftAccess表和其它数据源的记录和字段的技术。对于单一系 统的数据库应用程序来说,DAO依然很受欢迎并且非常有效;在中等规模工作组的网络中,DAO也有少量的应用。
2.RDO 远程数据对象(RDO)方式是提供给开放数据库互连(ODBC)数据源的面向对象的接口。RDO是开发Microsoft SQL Server、Oracle、和其它大型关系数据库应用程序的绝大多数数据库开发者使用的对象模型。
3.ADO ActiveX数据对象(ADO)方式是DAO和RDO方式的继承者,它也有一个类似的对象模式。在ADO方式中,可编程对象展示了你的计算机上所有可获取的本地和远程数据源。