首页 百科知识 数据交换功能

数据交换功能

时间:2022-10-18 百科知识 版权反馈
【摘要】:真正出现数据交换并对其作规范化管理的是SQL′92,而在SQL′99中则对其作了进一步规范,并明确划分了数据交换的四种方式。数据交换是数据主体与数据客体间数据的交互过程。它体现了互联网上XML与数据库间的数据交换。在数据交换中主体与客体间在进行数据交换同时还必须对交换的状况及时监控以利于交换的进行。在通过会话管理设定了会话环境后,数据交换即进入了实质性阶段。

4.2.4 数据交换功能

数据交换(data exchange)是数据库与数据处理间的数据交互,数据交换是需要管理的。管理的内容是对数据交换方式、操作流程及操作规范的控制与监督。

4.2.4.1 概述

从数据库诞生起即有数据交换存在,但由于其交换方式与交换管理都很简单,因此并未出现有数据交换的概念。真正出现数据交换并对其作规范化管理的是SQL′92,而在SQL′99中则对其作了进一步规范,并明确划分了数据交换的四种方式。在最近公布的SQL′03中将原有四种交换方式扩充到八种,此外在20余年来众多机构与相关单位也纷纷推出多种数据交换的规范与产品,有的已成为业内的事实标准。目前常用的有四种交换方式,再加上直接交互方式即人机交互方式共有五种方式,它们构成了关系数据库管理系统的一种必不可少的功能,它为用户使用数据库提供了基本共享保证。

4.2.4.2 数据交换模型

数据交换是数据主体与数据客体间数据的交互过程。所谓数据客体即是数据库,它是数据提供者,而数据主体是数据的使用者,也是数据接收者,它可以是操作员(人)、应用程序,也可以是另一种数据体。数据交换过程分两个途径,一是数据操作同步:即是首先由使用者通过SQL语言向数据库提出数据请求,接下来数据库响应此项请求进行数据操作并返回执行结果代码(它给出了执行结果正确与否,出错信息以及其它辅助性质),其次是数据传输,即是在查询时数据由客体至主体;而在增删除时数据由主体至客体。它可用下面图4.5所示的数据交换模型表示之。

img75

图4.5 数据交换模型图

4.2.4.3 数据交换四个阶段

1)数据交换发展简介

随着数据库的发展以及数据库的应用环境的不断变化数据交换方式也随着发生变化,它一共经历四个阶段,共五种交换方式,它们是:

(1)人机交互阶段:在数据库发展初期(20世纪60~70年代)其应用环境为单机方式,交换主体是人。

在此阶段中其交换方式是人与数据库间的直接交互方式。

(2)单机集中式阶段:在数据库作为应用开发工具时(20世纪80年代),其应用环境为单机集中式,交换主体是应用程序。

在此阶段中其交换方式可细分为嵌入式与自含式两种。它体现了同一机器内应用程序与数据库间的数据交换。

(3)网络阶段:在数据库作为网络应用开发工具时(20世纪90年代),在网络、多机分布式应用环境中的C/S结构方式,交换主体是应用程序。它体现了网络上应用结点与数据结点间的数据交换。

在此阶段中其交换方式称调用层接口方式。

(4)互联网阶段:在数据库作为Web应用开发工具时(本世纪初),在互联网、多机分布式应用环境中的B/S结构方式,交换主体为XML。它体现了互联网上XML与数据库间的数据交换。

在此阶段中其交换方式称Web方式。

2)数据交换的接口

为了实现数据交换,必须建立相应的接口。上述四个阶段的五种交换方式的接口共有七种,它们是:

(1)直接式的人机交互接口

此接口主要为操作人员友好、顺利访问数据库所设置的接口。它主要用于人机交互阶段。

(2)标量与集合量间的接口

在两种语言系统中,程序设计语言的变量一般是标量而数据库中输出则是集合量,它们间需要有一种接口以建立集合量到标量转换。即是将数据库中的集合量输出至程序中的变量的接口,此种接口主要用于单机集中式阶段中的自含式方式。

(3)变量与参数间的接口

而在两种语言系统中,程序设计语言中的变量与SQL中的参数间需要有一种接口以建立从变量到参数的联接。此种接口主要用于单机集中式阶段中的嵌入式方式,此外还包括网络阶段中的接口以及互联网阶段中的接口。

(4)应用结点与数据结点间的接口

应用结点与数据结点是网络中两个不同的结点,它们间进行数据交换是需要建立物理与逻辑连接(与断开)。这种接口主要用于网络阶段与互联网阶段。

(5)半结构化数据与结构化数据间的接口

在互联网中同时存在有具结构化形式的数据库数据以及具半结构化形式的XML数据,它们间需要有一种接口以建立其间的联系。此种接口主要用于互联网阶段中。

(6)环境接口

在远程网络中涉及到不同结点间的不同环境如不同文字、不同时区、不同设置方式等。为建立两结点间的联系必须首先建立它们间的统一环境与平台,这就是环境接口。此接口往往建立在特定的互联网阶段中。

(7)主体与客体间的同步接口

在数据交换中主体与客体间在进行数据交换同时还必须对交换的状况及时监控以利于交换的进行。为此必须建立一种专门的接口,用于数据交换中的操作同步,此种接口主要用于商标量/集合量间接口的匹配。

3)数据交换管理

为实现数据交换,必须要建立接口,而建立接口的方法与手段即是数据交换的管理。目前一共有7种数据交换管理手段,它们分别是:

(1)会话管理

会话管理主要用于网络中数据交换结点间统一环境与平台。在会话管理中提供相关的语句,为统一环境服务。

(2)连接管理

连接管理主要用于网络中数据交换的应用结点与数据结点间接口的连接,它提供相关的语句,为建立两结点间连接服务。

(3)游标管理

游标管理主要用于变量中标量与集合量间的接口,它提供相关的语句,为建立由集合量到标量的转换服务。

(4)动态SQL

动态SQL主要用于程序设计语言变量与SQL中参数间的接口,它提供相关的语句,为建立由变量到参数的联接服务。

(5)诊断管理

诊断管理主要用于主体与客体间建立同步接口,它提供相关的语句,为建立客体与主体间的操作同步服务。

(6)Web数据管理

WEB数据管理主要用于互联网中半结构化数据XML与结构化的数据库数据间的接口,它提供相关的手段为建立两种结构数据间的联接提供服务。

(7)操作服务

操作服务主要用于人机交互中,为操作人员有效、方便访问数据库提供直接接口。它提供相关手段为建立人机间直接对话服务。

4)数据交换、数据接口与数据交换管理

在数据交换发展的四个阶段中,出现了五种方式与七种数据接口,为实现这些接口需要有相应的七种数据交换管理,下面的表4.1给出了数据交换四个阶段中与相关的接口、管理间的关系。

表4.1 四个阶段特点表

img76

4.2.4.2 数据交换的管理

数据交换的关键是管理,特别是在应用环境日益复杂的今天,数据交换管理尤为重要。

数据交换管理一般由下面几部分内容所组成:

●会话管理

●连接管理

●游标管理

●诊断管理

●动态SQL

其中人机交互中的操作服务以及Web数据服务在后面将有专门论述,在此处就不做介绍了。

1)会话管理

数据交换是两个数据体之间的会话过程,而会话是需要在相同的平台与环境下进行的。在当今的应用中,会话环境是极为复杂的,特别是在网络与互联网发达的今天,会话双方具有相同的平台与环境更为重要。因此在进行数据交换时,首先需要建立会话环境,这就是数据交换中的会话管理。

在会话管理中,对特定的应用会话环境是固定的,因此它一旦建立,一般不再变动,因此在会话环境建立中一般只做环境的设置而并不做环境的撤销。

目前,在会话管理中须设定的环境参数有如下几种:

●会话中统一特征的设定———包括事务访问方式、诊断方式等统一特征设置。

●会话中数据客体的设定———会话中访问数据模式的确定。

●会话中统一语言的设定———设置数据交换中统一的语言字符集平台。如英语、汉语、日语等。

●会话中统一时间的设定———会话中统一时区的设定。

●会话的标识符设定———对会话中统一的环境与平台参数,赋予一个固定的标识符。它是该会话环境的统一表示。

2)连接管理

在通过会话管理设定了会话环境后,数据交换即进入了实质性阶段。在此阶段中首先是要建立交换主、客体间的物理连接(以及断开物理连接)。只有建立物理连接后,主、客体间的数据交换才能真正进行。

物理连接参数包括连接两个端点的物理地址(用户名与数据模式名)、相应的内存区域分配以及连接的数据访问权限等。最后对物理连接须赋予一个连接名。

在SQL中设有有关连接的相关语句,以供建立连接与断开连接之用。

连接管理一般用于C/S及B/S等网络环境下的调用层接口方式及Web方式中。

连接管理最早出现于SQL′99,由于连接管理涉及众多外界物理环境,因此国际标准SQL中的连接语句往往被各种企业标准所取代,如微软的ODBC标准、ADO标准及SUN公司的JDBC标准等,而它们目前已成为国际上的事实标准。

3)游标管理

游标(cursor)是一种方法,它用于在数据库查询后将数据客体中的集合量逐一转换成数据主体(应用程序)中的标量。

游标方法的主要操作是这样的:

(1)定义一个游标:首先将需实施的转换的集合量(以查询语句方式定义)上定义一个游标。其方法是将该集合中的每个元素(即每一记录)按顺序排列,然后设置一个箭头,它指向集合中某个元素,该箭头是活动的,称为游标。

(2)使用游标:在游标定义后即可使用它,使用分为三个步骤:

①打开游标

在使用游标时必须打开游标,此时游标处于激活状态并指向集合中第一个记录。

②推进游标

在游标打开后即可使用游标,使用的具体方法是通过推进游标将游标定位于集合中指定的元素,然后取出该元素并送至应用程序的程序变量中。在接收到标量数据后,应用程序对数据做处理并形成循环不断的使用游标与处理数据。

③关闭游标

当游标使用结束后必须关闭游标,使其处理休止状态。

在SQL中提供游标的相关语句。游标管理在数据交换中应用广泛,除人机交互方式外在其它四种方式中均有采用。但是在不同方式中的游标语句形式表示均会有所不同。

游标管理在SQL中出现很早,在SQL′89中出现已有,游标功能经SQL′92、SQL′99到SQL′03已发展成为一种很成熟的技术。

4)诊断管理

在进行数据交换时数据主体发出数据交换请求后,数据客体返回两种信息,一种返回所请求的数据值,另一种是返回执行的状态值。而这种状态值称为诊断值,而生成、获取诊断值的管理称诊断管理。

诊断管理由两部分组成,它们是诊断区域及诊断操作。

(1)诊断区域

诊断区域是存放诊断值的内存区域,它包括执行完成信息以及异常条件信息。诊断区域由两部分组成,它们是标题字段与状态字段。其中标题字段给出诊断的类型(如NUMBER表执行结果的数值表示),而状态字段则给出该诊断类型执行结果的编码,它们是语句执行是否成功(成功为0,不成功为非1整数)。

(2)诊断操作

诊断操作有两种:

①RDBMS在执行SQL语句后将执行状态自动存放于诊断区域内。

②使用者用获取诊断语句以取得语句执行的状态,该语句的执行结果是将诊断区域指定标题的状态信息取出。有的系统为操作方便将诊断区域的值自动放入一个全局变量中(如sqlca)此后可直接在程序中使用全局变量而不必使用“获取诊断语句”。

诊断管理与游标管理相匹配,目前广泛应用于除人机交互方式外的所有其它四种方式中。

5)动态SQL

在一般的程序设计中往往是先编程再执行,这是一个普遍的规律,但是在SQL编程中有时会出现一些特殊的情况,即SQL语句不能预先确定(包括某些参数、某些子句甚至整个SQL语句),而需根据应用程序运行时动态指定,这就是所谓SQL的动态编程亦称动态SQL。动态SQL起源于嵌入式方式,并在网络阶段与互联网阶段继续发挥作用,但其具体操作方式与嵌入式方式有所不同。

为实现动态SQL,在应用程序编写中往往将SQL语句中的未确定部分用一些变量临时替代,它们起着占位的作用。其次,需要在应用程序与动态SQL语句间建立一个信息交互区,以便应用程序在运行时能随时将动态参数送入该区域,这个区域称为描述符区(discriptor area),而描述的数据称描述符(discriptor)。最后,动态SQL的执行与一般的语句的执行也有所不同。在动态SQL语句执行前必须预先将描述符区的确定参数值与动态SQL中的动态参数间建立联系,亦即是说建立它们间的赋值关系。在经过这一步骤后,一个动态SQL语句才成为确定SQL语句了,此后就可以执行SQL语句了,下面的图4.6给出了由动态SQL变为确定SQL的过程。

img77

图4.6 由动态SQL形成确定SQL的过程

由上面解释可以看出,一个动态SQL处理的全部过程可用下面的图4.7表示。

img78

图4.7 动态SQL处理全过程流程图

4.2.4.3 数据交换的流程

数据交换是一个按一定步骤进行的过程,利用数据交换管理可以实现数据交换过程,其全部流程如下:

(1)数据交换准备

使用会话管理设置数据交换的各项环境参数,包括设置数据库的数据模式,设置会话授权标识符以及设置字符集与局部时区。

会话环境设置是面向固定应用的,它一经设定后一般不会改变,因此它是某个应用的数据交换前提。

(2)数据连接

在设置环境参数后,接下来的重要步骤是建立两个数据体间的物理连接,包括连接通路的建立,内存区域的分配等,数据连接一般建立在两个数据体处于网络不同结点的情况下。

(3)数据交换

在经过数据连接后数据交换即可进行。在数据交换中一般分两个步骤,首先由数据主体应用SQL语句或动态SQL语句发出数据访问要求;其次,数据库接到要求后进行操作并取得数据,然后返回数据并同时返回执行的状态信息,此时最关键的是需要不断使用游标语句与诊断语句。

(4)断开连接

在数据交换结束后即可以断开两个数据体间的连接,包括断开连接的通路以及取回所分配的内存区域。

在一个数据交换结束后可进入下一轮数据交换(即2、3、4三个阶段),如此不断循环而构成数据交换的完整过程。下面的图4.8给出数据交换的流程图。

数据交换的五种方式基本上均按上述流程图进行数据交换,但是其流程的严格性有所不同。

img79

图4.8 数据交换过程的流程图

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈