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

类别:VC语言 点击:0 评论:0 推荐:
数据访问接口体系及数据对象模型探讨(Beat 1.0)

             
                                               [email protected]
                                               [email protected]


                                               个人文集:
                      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

 

 

 

二、数据对象模型探讨(待续)
附录:美国著名数据库产品记事(参考)

           

 


 

                                   

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

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

    本文档顺数据库应用发展历史而下,以数据访问接口和数据对象模型的发展、特征、相
 互之间的区别为主线,描述了它的轨迹.希望对数据系统开发者有些帮助.
       本文中,久远的信息(对本人来说)系参考书籍,有错误之处,请指出
                               [email protected]

                        本文档标以版本,目的在于希望大家阅读之后,
        发现不妥或错误或需要补充的地方,联系我,对之进行修改,以完善之.
                     使之成为持久的网上参考资料.  

                                              Beat 1.0 2003.2.25
                                    -----------------------------------           

 

 

 

 

本文地址:http://com.8s8s.com/it/it1488.htm