天天加油 - 助您成才
全面了解ODBC技术
您正在看的计算机论文是:全面了解ODBC技术。

  目前 ,众多的厂商推出了行行色色的数据库系统,它们在性能、价格和 应用 范围上各有千秋。一个综合信息系统的各部门由于需求差异等原因,往往会存在多种数据库,它们之间的互连访问成为一个棘手的 问题 ,特别是当用户需要从客户机端访问不同的服务器时。

  微软提出的开放式数据库互连(Open-DataBase-Connectivity,即ODBC)成为目前一个强有力解决方案,并逐步成为Windows和Macintosh平台上的标准接口,并推动了这方面的开放性和标准化。

  一、ODBC的产生和 发展

  关系型数据库产生后很快就成为数据库系统的主流产品,由于每个DBMS厂商都有自己的一套标准,人们很早就产生了标准化的想法,于是产生了SQL,由于其语法规范逐渐为人所接受,成为RDBMS上的主导语言。最初,各数据库厂商为了解决互连的问题,往往提供嵌入式SQL API,用户在客户机端要操作系统中的RDBMS时,往往要在程序中嵌入SQL语句进行预编译。由于不同厂商在数据格式、数据操作、具体实现甚至语法方面都具有不同程度的差异,所以彼此不能兼容。

  长期以来,这种API的非规范情况令用户和RDBMS厂商都不能满意。在80年代后期,一些著名的厂商包括OracleSybase、Lotus、Ingres、Informix、HP、DEC等结成了SQL Access Group(简称SAG),提出了SQL API的规范核心:调用级接口(Call Level Interface),简称CLI。

  1991年11月,微软宣布了ODBC,次年推出可用版本。1992年2月,推出了ODBC SDK 2.0版。ODBC基于SAG的SQL CAE草案所规定的语法,共分为Core、Level 1、 Level 2三种定义,分别规范了22、16、13共51条命令,其中29条命令甚至超越了SAG CLI中原有的定义,功能强大而灵活。它还包括标准的错误代码集、标准的连接和登录DBMS 方法 、标准的数据类型表示等。

  由于ODBC思想上的先进性,且没有同类的标准或产品与之竞争,它一枝独秀,推出后仅仅两三年就受到了众多厂家与用户的青睐,成为一种广为接受的标准。目前,已经有130多家独立厂商宣布了对ODBC的支持,常见的DBMS都提供了ODBC的驱动接口,这些厂商包括OracleSybase、Informix、Ingres、IBM(DB/2)、DEC(RDB)、HP(ALLBASE/SQL)、Gupta、Borland(Paradox)等。目前,ODBC已经成为客户机/服务器系统中的一个重要支持技术。

  二、ODBC的基本思想与特点

  ODBC的基本思想是为用户提供简单、标准、透明的数据库连接的公共编程接口,开发厂商根据ODBC的标准去实现底层的驱动程序,这个驱动对用户是透明的,并允许根据不同的DBMS采用不同的技术加以优化实现,这就利于不断吸收新的技术而趋完善。

  这同时也就是数据库驱动的思想,它很类似于Windows中打印驱动的思想。在Windows中,用户安装不同的打印驱动程序,使用同样一条打印语句或操作,就可很容易地实现在不同打印机上打印输出,而不需要了解内部的具体原理。ODBC出现以后,用户安装不同的DBMS驱动就可用同样的SQL语句实现在不同DBMS上进行同样的操作,而且无需预编译。ODBC带来了数据库连接方式的变革,如图1所示。在传统方式中,开发人员要熟悉多个DBMS及其API,一旦DBMS端出现变动,则往往导致用户端系统重新编建或者源代码的修改,这给开发和维护工作带来了很大困难。在ODBC方式中,不管底层 网络 环境如何,也无论采用何种DBMS,用户在程序中都使用同一套标准代码,无需逐个了解各DBMS及其API的特点,源程序不因底层的变化而重新编建或修改,从而减轻了开发维护的工作量,缩短了开发周期。

  @@12W03500.GIF;图1 数据库连接方式的转变@@

  概括起来,ODBC具有以下灵活的特点:

  1. 使用户程序有很高的互操作性,相同的目标代码适用于不同的DBMS;

  2. 由于ODBC的开放性,它为程序集成提供了便利,为客户机/服务器结构提供了技术支持;

  3. 由于应用与底层网络环境和DBMS分开,简化了开发维护上的困难。

  三、ODBC的体系结构和实现

  ODBC是依靠分层结构来实现的,如此可保证其标准性和开放性。图2所示为ODBC的体系结构,它共分为四层:应用程序、驱动程序管理器、驱动程序和数据源。微软公司对ODBC规程进行了规范,它为应用层的开发者和用户提供标准的函数、语法和错误代码等,微软还提供了驱动程序管理器,它在Windows中是一个动态链接库即ODBC.DLL。驱动程序层由微软、DBMS厂商或第三开发商提供,它必须符合ODBC的规程,对于Oracle,它是ORA6WIN.DLL,对于SQL Server,它是SQLSRVR.DLL。

  @@12W03501.GIF;图2 ODBC体系结构@@

  下面我们详细介绍各层的功能。

  1. 应用 程序层(Application)

  使用ODBC接口的应用程序可执行以下任务:

  ①请求与数据源的连接和会话(SQLConnect);

  ②向数据源发送SQL请求(SQLExecDirct或SQLExecute);

  ③对SQL请求的结果定义存储区和数据格式;

  ④请求结果;

  ⑤处理错误;

  ⑥如果需要,把结果返回给用户;

  ⑦对事务进行控制,请求执行或回退操作(SQLTransact);

  ⑧终止对数据源的连接(SQLDisconnect)。

  2. 驱动程序管理器(Driver Manager)

  由微软提供的驱动程序管理器是带有输入库的动态连接库ODBC.DLL,其主要目的是装入驱动程序,此外还执行以下工作:

  ①处理几个ODBC初始化调用;

  ②为每一个驱动程序提供ODBC函数入口点;

  ③为ODBC调用提供参数和次序验证。

  3. 驱动程序(Driver)

  驱动程序是实现ODBC函数和数据源交互的DLL,当应用程序调用SQL Connect或者SQLDriver Connect函数时,驱动程序管理器装入相应的驱动程序,它对来自应用程序的ODBC函数调用进行应答,按照其要求执行以下任务:

  ①建立与数据源的连接;

  ②向数据源提交请求;

  ③在应用程序需求时,转换数据格式;

  ④返回结果给应用程序;

  ⑤将运行错误格式化为标准代码返回;

  ⑥在需要时说明和处理光标。

  以上这些功能都是对应用程序层功能的具体实现。驱动程序的配置方式可以划分为以下两种。

  (1)单层次(single-tier) 这种方式下,驱动程序要处理ODBC调用SQL语句,并直接操纵数据库,因此具有数据存取功能。这种配置最常见的是同一台微机之上异种数据库通过ODBC存取,如在Powerbuilder中存取XBase、excel、Paradox等数据文件,如图3所示。@@12W03502.GIF;图3 一层配置示意图@@

  (2)多层次(multiple-tier) 这种配置中驱动程序仅仅处理ODBC调用,而将SQL语句交给服务器执行,然后返回结果。这种情况往往是应用程序、驱动程序管理器、驱动程序驻留在客户机端,而数据源和数据存取功能放在服务器端。譬如用FoXPro或excel存取SQL Server或Oracle上的数据,如图4所示。

  @@12W03503.GIF;图4 二层配置示意图@@

  有时在以上两者之间加上网关以解决通信协议的转换等 问题 ,这时驱动程序要将请求先传送给网关,如访问DEC RDB和IBM AS/400时的配置,如图5所示。

  @@12W03504.GIF;图5 三层配置示意图@@

  4. 数据源

  数据源由用户想要存取的数据和它相关的操作系统、DBMS及 网络 环境组成。

  四、一致性级别

  从应用程序观点来看,最理想的情况是每个数据源和驱动程序都支持同一套ODBC函数调用和SQL语句。但是由于形形色色的DBMS在实现上有很大的差异,它们所依赖的系统和环境也各不相同,在对ODBC支持的程度上就不一致。一致性级别(Conformance Levels)建立了对众多功能的标准划分,为应用程序和驱动程序提供帮助和选择的依据。它划定了驱动程序所支持的ODBC函数和SQL语句的范围,我们可以用SQLGetInfo、SQLGetFunctions、SQLTypeInfo三个函数获知驱动程序所支持的功能集。ODBC从API和SQL语法两方面划分级别。

  1. API的一致性

  ODBC将函数调用划分为三级。

  (1)核心API 它包括了与SAG的CLI相匹配的基本功能,包括:分配与释放环境、连接及语句句柄;连接到数据源;准备并执行SQL语句或立即执行SQL语句;为SQL语句和结果列中的参数分配存储器;从结果中检索数据,检索结果的信息;提交和撤消事务处理;检索错误信息。

  (2)一级API 它包括了核心API的全部功能,比如用特定驱动程序的对话框连接到数据源;设置和查询语句值和连接选项;送部分或全部参数值;检索部分和全部结果;检索目录信息;检索关于驱动程序和数据源的信息。

  (3)二级API 其功能包括核心和一级API的全部功能;浏览可获得的连接和可获得的数据源列表;发送参数值数组,检索结果数组;检索参数个数及参数描述;应用可卷动的光标;检索SQL语句和本机表格;检索各种目录信息;调用转换DLL。

  2. SQL语法的一致性级别

  从SQL方面可划分为最小的SQL语法、核心SQL语法和扩展

  • 上一篇论文:
  • 下一篇论文:
  • 排行

    1. 某私营企业财务管理存在的问题与
    2. 试论党内“四个民主”的制度创新
    3. 战略决定成败
    4. 政治人类学研究的几个问题探析
    5. 政治文明的实质和要素
    6. 货币市场与资本市场关系(上)
    7. “一卡通”的技术与应用
    8. 吐蕃王朝以前雅隆吐蕃部落的经济
    9. 关于西藏近代史上一次政治改革性
    10. 乾隆初定金川战争钩沉二
    11. 浅析拉萨“噶玛贡桑”地名的由来
    12. 从达赖喇嘛给皇帝跪叩看西藏地方
    13. 论秦始皇的“法治主义”
    14. 古代翰林制度及其对封建文化的影
    15. 电源电子设备的电磁兼容
    16. 列宁党报思想成因探析
    1. 关于秦桧归宋的讨论
    2. 敦煌写本S.370(5)号残卷所涉及的
    3. 某私营企业财务管理存在的问题与
    4. 全面了解ODBC技术
    5. 国际税收新课题
    6. 试论我国公共财政的制度建设
    7. 西部建设思想与西部大开发
    8. 政治文明的实质和要素
    9. 货币市场与资本市场关系(上)
    10. “一卡通”的技术与应用
    11. 无线巡更系统技术的实现
    12. 吐蕃王朝以前雅隆吐蕃部落的经济
    13. 关于西藏近代史上一次政治改革性
    14. 乾隆初定金川战争钩沉一
    15. 浅析拉萨“噶玛贡桑”地名的由来
    16. 从达赖喇嘛给皇帝跪叩看西藏地方
    1. 某私营企业财务管理存在的问题与
    2. 政治文明的实质和要素
    3. 货币市场与资本市场关系(上)
    4. “一卡通”的技术与应用
    5. 吐蕃王朝以前雅隆吐蕃部落的经济
    6. 关于西藏近代史上一次政治改革性
    7. 浅析拉萨“噶玛贡桑”地名的由来
    8. 战略决定成败
    9. 政治人类学研究的几个问题探析
    10. 古代翰林制度及其对封建文化的影
    11. 论秦始皇的“法治主义”
    12. 从达赖喇嘛给皇帝跪叩看西藏地方
    13. 电源电子设备的电磁兼容
    14. 火灾自动报警系统的发展及案例
    15. EDA技术及其应用
    16. 建筑物防雷保护设计浅析

    最近更新

  • 推荐阅读
  • 计算机论文《全面了解ODBC技术》全面了解ODBC技术