分享
 
 
 

数据访问接口体系及数据对象模型探讨--[3]

王朝vc·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

数据访问接口体系及数据对象模型探讨(Beat 1.0)

81_RedStar81@163.com

TomHornson.student@www.sina.com.cn

个人文集:

http://www.csdn.net/develop/author/netauthor/RedStar81/

3.OLE DB(Object Link and Embedding DataBase)

随着网络技术和数据库技术的不断发展,现在的应用系统对数据集成的要求越来越高.有必要将不同的地方,不同的格式(如关系型数据库和操作 系统中的文件、电子表格、电子邮件、多媒体数据以及目录服务信息或主机系统中的IMS和VSAM数据等等)的数据集成.传统的解决方案是使用大型的数据库系统,把所有这些数据都移到数据库系统中,然后按照操作数据库的办法对这些数据进行访问,这样做虽然能够按统一的方式对数据进行各种操作,这种间接访问方式带来了很多问题,比如数据更新不及时、空间资源的冗余和访问效率低等等

此时Microsoft公司的通用数据访问技术(UDA)应运而生,它使数据应用系统能通过实现标准OLE DB接口的数据提供者来访问各种各样的数据,而不管数据驻留在何处,也不需要进行数据转移或复制、转换.

OLE DB作为一种数据访问接口体系,体现了Microsoft的通用数据访问(UDA)策略的理念.UDA能够通过标准接口来访问各种类型的数据.同于ODBC体系它也提供了一套标准API,不过OLE DB API是完全基于COM的,其特点是采用了多层模型.在COM通信层的一侧是数据另一侧则是数据使用者.这种基于COM的通信可被概括为在抽象对象(如DataSource、Session、Command 和 Rowset)上执行的操作.因此,当使用者连接到DataSource,打开 Session,发出Command,并返回数据Rowset时,便会出现这种情况.

事实上,OLE DB是系统级的编程接口,它定义了一组COM接口,这组接口封装了各种数据

系统的访问操作,这组接口为数据使用者和数据提供者建立了标准,OLE DB还提供了一组标准

的服务组件,用于提供查询、缓存、数据更新、事务处理等操作,因此数据提供方只需实现一

些简单的数据操作.在使用方就可以获得全部的数据控制能力.

OLE DB体系包括以下几个组成部分(下图示):

数据提供者(Data Provider) 提供数据存储的组件和数据,数据小到普通的文本文件、大到主机上的复杂数据库,或者电子邮件存储,都是数据提供者的例子.有 的文档把这些软件组件的开发商也称为数据提供者.

数据服务提供者(Data Service Provider) 位于数据提供者之上、从过去的数据库管理系统中分离出来、独立运行的功能组件,例如查询处理器和游标引擎(Cursor Engine),这些组件使得数据提供者提供的数据以表状数据(Tabular Data)的形式向外表示(不管真实的物理数据是如何组织和存储的),并实现数据的查询和修改功能.SQL Server 7.0 的查询处理程序就是这种组件的典型例子.

业务组件(Business Component) 利用数据服务提供者、完成某种特定业务信息处理、可以重用的功能组件.分布式数据库应用系统中的中间层(Middle-Tier)就 是这种组件的典型例子.

数据消费者(Data Consumer) 任何需要访问数据的系统程序或应用程序,除了典型的数据库应用程序之外,还包括需要访问各种数据源的开发工具或语言.

当然上图侧重非关系数据系统的示意.如今,几乎所以的关系数据库厂商都提供了OLE DB Provider以投入OLE DB新体系.当然对于只能获得ODBC Provider的用户,只要你再获得OLE DB-ODBC Bridge也是可以的.(图示如下:以ORACLE系统为例)

自然,各数据库厂商的OLE DB Provider大体功能同于ODBC Provider.对各数据库系统的独特功能提供支持、对特定数据访问进行优化等等.

4.JDBC(Java DataBase Connectivity : Java数据库连接)

Internet/intranet及相应环境下的应用系统的发展,造就了今日的Java.自然在Java数据应用系统中,JDBC是首选方案.与ODBC类似,JDBC为Java开发人员提供了一套标准的数据访问API.

JDBC是SunMicroSystem公司的JavaSoft分部提出的Java数据应用访问的标准API.JDBC是基于X/OpenSQL的调用级接口(这也是ODBC的基础).JDBC可保证JDBCAPI在其它通用SQL级API之上实现.这也意味着所有支持ODBC的数据库不加任何修改能够与JCBC协调工作. JDBC设计很多借鉴于ODBC:

1.JDBC与ODBC都是基于X/Open的SQL调用级接口

2.JDBC很多设计思想沿袭了ODBC,包括许多抽象和SQL CLI实现

3.JDBC的总体结构类似于ODBC,有四个组件:应用程序、驱动程序管理器、驱动程序和数据源,工作原 理亦大体同于ODBC. 此外:

1.JDBC保持了ODBC的基本特性,也独立于特定数据库.

2.使用相同源代码的应用程序通过动态加载不同的JDBC驱动程序,可以访问不同的DBMS.连接不同的 DBMS时,各个DBMS之间仅通过不同的URL进行标识.

3.JDBC的DatabaseMetaData接口提供了一系列方法,可以检查DBMS对特定特性的支持,并相应确定有什 么特性,从而能对特定数据库的特性予以支持

4.JDBC也支持在应用程序中同时建立多个数据库连接,采用JDBC可以很容易地用SQL语句同时访问多个 异构的数据库,为异构的数据库之间的互操作奠定基础.

然而,由于基于Java,具有对硬件平台、操作系统异构性的支持.这主要因为ODBC基本用C开发,而JDBC用Java开发.Java语言,具有与平台无关、移植性强、安全性高、稳定性好、分布式、面向对象等众多优点,JDBC使“100% 纯Java”解决方案成为可能.利用Java的平台无关性更适合于Internet上异构环境的数据库应用.此外,JDBC驱动程序管理器可内置,也可通过Web浏览器自动下载,无须安装、配置,ODBC驱动程序管理器和ODBC驱动程序必须在每台客户机上分别安装、配置.

上面提及,JDBC与ODBC组成、工作原理基本相同,事实上,即使有区别,那也只因为驱动程序的解决方案有差异.一般,Java的驱动解决方案有四种:1.JDBC-ODBC Bridge 2.本机API/集团式Java驱动程序 3.网络协议/全Java 4.本机协议/全Java

二、数据对象模型探讨(待续)

附录:美国著名数据库产品记事(参考)

二、数据对象模型探讨(待续)

------------------------------------------------声明---------------------------------------------------

本文档顺数据库应用发展历史而下,以数据访问接口和数据对象模型的发展、特征、相

互之间的区别为主线,描述了它的轨迹.希望对数据系统开发者有些帮助.

本文中,久远的信息(对本人来说)系参考书籍,有错误之处,请指出

81_redstar@163.com

本文档标以版本,目的在于希望大家阅读之后,

发现不妥或错误或需要补充的地方,联系我,对之进行修改,以完善之.

使之成为持久的网上参考资料.

Beat 1.0 2003.2.25

-----------------------------------

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有