Access开发培训
网站公告
·Access专家课堂QQ群号:151711184    ·Access快速开发平台下载地址及教程    ·欢迎加入Access专家课堂微信群!    ·如何快速搜索本站文章|示例|资料    
您的位置: 首页 > 技术文章 > ADP及SQL SERVER

数据访问的发展历程

时 间:2010-10-18 10:13:23
作 者:gdjdyyj   ID:54  城市:东营
摘 要:数据访问的发展历程

正 文:

 数据访问的发展历程
数据伴随的计算机信息技术的发展而逐渐的丰富起来,为满足科技、经济、商业各方的需要而创建了不同的数据信息格式,技术软件的开发者往往精选最能满足需要的数据存储机制,并且从现有的厂商中选择数据库技术,或创建自己所拥有的数据格式。通常各种数据结构和格式是不兼容的。例如,公司中不同的部门采用不同的数据结构和格式,数据可能来自于oracle 、SQL Server 、Access和FoxPro等不同的数据源 。
这种情况下,要访问每一个数据源,就必须编写或安装与每一个数据源相匹配的软件。
一、API
数据访问这项工作最初是由API (应用程序编程接口)来完成的,因而它也被称为”固有的”驱动程序。当通过直接与数据源API 对话的固有驱动程序提供数据访问时,通常会出现以下几个问题:
大多数专业化的API 是用c ++编写的,并且存储在扩展名为DLL 的文件中。要执行驻存在API DLL 文件中的函数,必须使用与编写API 所用源语言相同的编程技术。
程序员必须对API 支持的程序有一定的了解,并且还要掌握其相关的具体知识。通常,这种知识相当难懂并且只与相关的产品有关。例如,某些熟悉SQL servor DB API 的人员有可能不能使用这种知识访问Orade OCI 中的程序
所以用一个数据源固有的API执行客户软件时,这个过程是复杂的、昂贵的,并且还是很消耗时间的。经验显示:大多数数据使用者没有技术能力去有效并且经济地开发相关数据源的定制访问。20世纪90年代初期就是这种状态。
二、ODBC
为解决API应用的问题,1992年微软发布了ODBC。ODBC 提供了标准的API ,可以访问各式各样的数据库。ODBC支持SQL (结构化查询语言)的使用,并把SQL 作为标准且关键的语言组件用以从各种数据源中检索数据。由干SQL 已经成为大型计算机上事实的标准,因而,ODBC 有助于把SQL 广泛应用到PC 数据库上。
ODBC 由两部分组成:
ODBC管理器:这个程序运行在所有windows操作系统的控制面板中,它包含有连接数据源时所需要的信息。ODBC 管理器为每个数据源连接创建data souoe name ,即DSN 。
ODBc 驱动程序:ODBc 驱动程序软件包含需要处理的具体数据源信息。
使用ODBC不必涉及任何具体厂商的信息就能够创建数据库应用程序,所需要的只是DSN 的名称(在ODBC 管理器中定义)和定义数据操作的SQL 声明。DSN 的名称和SQL 的声明通过DSN 传送到ODBc 驱动程序,当数据源检索到希望得到的信息时信息就会通过ODBC 返回到程序中。
ODBC 要求为具体的数据源安装相应的驱动程序。例如,要连接SQL server ,就需要为SQL server安装相应的ODBC 驱动程序。但是,一旦安装ODBC 驱动程序后,就只能用同一种编程方法对源数据库执行数据库操作。自1992 年ODBC 开始应用以来,它已经取得了非常大的成功。如今,通过ODBC 驱动程序.可以访问几乎所有重要的数据库格式。
但是,ODBC 传统上的语法是与C 语言编程紧密相联的。这种情况下,要处理单个数据查询就必须以适当的次序执行一系列的API 函数。但是,使用oDBC 进行程序设计时,往往还是感到困难和复杂因而ODBC 不能满足决速开发应用程序的需要。
三、DAO数据库对象技术
ODBC 数据创建一个易用的接口,其中一个方案就是采用对象技术。微软在这个领域最初的成果是所谓的Data Access object ( DAO )。它是用来补充Jet Database Engine 的,而Jet Datase Engine 是包含在Access 中的。Jet Engine 的目的是为Access MDB 文件提供支持,以便把MDB 文件作为Access 和Visual Basic 的一个标准数据格式。除了对Access MDB 文件提供支持外,Jet 还可以连接到ODBC 数据源。从编程的角度来看,对日益复杂的模型最重要的就是不管数据源是什么,处理查询的指令应该是相同的。DAO与Jet的结合为数据访间提供了一种标准的方法,这种方法可以避免复杂的API 程序设计,并且仍旧可以保持与厂商的独立性。
虽然理论上DAO 与Jet的结合为开发与数据相关的应用程序提供了一种易用且易于理解的程序设计结构,但它的性能是参差不齐的。如果把Access MDB 文件作为数据源,Jet软运行良好。但是,对其他ODBC数据源的访问,如SQL Server 或oracle等,就非常难受了。原因是ODBC 要通过Jet Engine 移动数据,而Jet Engine 最初并不是专门为Sql Server或oracle客户/服务器数据库设计的。
微软虽然对DAO 系统的各个部分进行升级,以便增强客户/服务器数据库的操作。这就是RDO ( Remote Data Object) 是另一项对象技术,它面向SQL server 之类的数据库服务。但是它是通过DAO 中所谓的ODBC Direct 选项,可以把RDO 与DAO 程序设计模型连接起来。使用ODBC Direct使程序可以避开Jet Engine。所以在使用DAO 时必须要记住:对MDB 文件的访问用一种方法,而在DAO 中与SQL Server 连接时要采用另外一套不同的方法。这与最初的目的,即用一种简单并且直观的方法编写面向数据的应用程序相去甚远。
四、ADO的出现
由于Intenet飞速增长需要能够给基于Web 的应用程序提供数据的数据访问接口。以及对网络服务,如在线分析进程服务、电子邮件服务以及目录服务等非关系型数据源访问的需要,这些信息并不是以传统的关系型数据库结构存储的。如果应用程序要利用这些数据源,就必须突破DAO只能处理关系型数据的限制。
上述列出的所有问题都可通过ADO ( ActiveX Data object )来解决。ADO 对象库提供了一种单一并且统一的程序设计工具,这种工具既可访问传统关系型数据库中的数据,也可访问存储在非关系系统中的数据。
对于 ADO来说,理想的环境是每个数据源都具有一个 OLEDB 接口,这样 ADO 便可以直接调用到数据源中。虽然越来越多的数据库厂商实现了 OLE DB 接口,但某些数据源仍无法以这种方式提供。可是,目前所用的所有数据库系统实际上都可以通过 ODBC 进行访问。
ODBC 驱动程序对于目前所使用的各种主要数据库管理系统都有效,包括 Microsoft SQL Server、Microsoft Access(Microsoft Jet 数据库引擎)和 Microsoft FoxPro 以及 oracle 等非 Microsoft 数据库产品。但是,Microsoft ODBC Provider 允许 ADO 连接到任何 ODBC 数据源。
 为了实现与以前技术的兼容,ADO 同时支持Jet 数据库引擎和ODBC 数据库。所以在Access连接使用SQL Server 时,既可以通过ADO 直接与SQL Server 相连接,也可以间接地用ADO 与ODBC 相连接。
     由于ADO提供了一种单一的与连接数据源的方法,因而大大简化了程序设计接口,同时ADO也提高了连接数据源的速度。
    ODBC中,特殊的软件-ODBC驱动程序负责反应用程序与具体的数据源连接起来。ADO技术也需要厂商特定的驱动程序,ADO的驱动程序是在一个新标准下构造的,就是对象链接与嵌入数据OLEDB(Obiect Linking and Embedding Database)。OLEDB与ADO结合成为一个万能的数据访问系统。
ADO 之所以具有强大的功能和灵活性,是因为它可以连接几种不同的数据提供者,同时仍使用同一个编程模型,而不考虑给定提供者的特定功能。但是,因为每个数据提供者都有各自的特性,所以应用程序与 ADO 的相互作用方式将根据数据提供者的不同而稍有变化。
 OLEDB提供者与服务
OLEDB提供者分为两类:提供数据的提供者和提供服务的提供者。
“数据提供者”拥有自己的数据,并将数据以表格格式显露给应用程序。
“服务提供者”通过产生和消费数据来封装服务,以增加 ADO 应用程序中的功能。也可以将服务提供者进一步定义为“服务组件”,服务组件必须与其他服务提供者或组件结合使用。
    提供者是给使用者提供数据的。ADO允许提供者提供的数据,可以是基于文件的,也可以是基于服务的。
    基于文件的提供者允许访问本地驱动器或网络上的特定文件中的数据,但必须知道数据源文件准确的物理位置,例如:D:\TEST\TEST.MDB或\\COMPUTER\TEST\TEST.MDB
    基于服务的提供者在网络上是作为服务运行的,在访问网络服务的时候,并不需要知道特定文件的物理位置,只需使用一个标识服务的网络名称就可以了,当试图与服务连接时,网络会使用各种协议去查找正在运行的被命名服务的计算机。基于服务提供者可以避免驱动器和路径所造成的混乱。 
    OLEDB是一个系统级的软件,OLEDB的目的就是为统一数据格式要求具体厂商的详细资料提供一个框架。在这个框架中,具体厂商的部分称为”提供者”(provide)。OLEDB提供者所起的作用与ODBC驱动程序相似。也就是说提供者是给使用者提供数据的。OLEDB所能处理的不仅仅是ODBC直接支持的数据库,还提供数据库服务。
       ADO是应用级的软件,在开发使用数据库资源的应用程序时,可以用ADO与数据源进行通信,使用OLEDB数据资源的软件称为使用者。
       ADO可以直接访问数据资源,也可以用OLEDB服务间接访问数据源。
       由于ADO很大的灵活性,Access可以利用ADO实现与Sql Server的链接,这样可根据用户对数据的需要,Access能够查询本地的Access表和Sql Server的表。
 
 


Access软件网官方交流QQ群 (群号:54525238)       Access源码网店

常见问答:

技术分类:

相关资源:

专栏作家

关于我们 | 服务条款 | 在线投稿 | 友情链接 | 网站统计 | 网站帮助