none
关于 XML 异构数据转换的问题.. RRS feed

  • 问题

  •  

    异构数据是什么的概念.

    怎么样才是异构数据的转换..(例:把SQL SERVER数据库中的数据转换成别的数据库数据吗.)

    XML是不是起中间作用???

    2008年12月30日 10:19

答案

  • 你好!
       这个问题涉及的范围比较广,找到一些相关的资料,希望对你有帮助:
    企业在发展过程中积累了大量数据,并为存储和管理这些数据不断投资。然而,由于实施数据管理系统的阶段性、技术性以及其它经济和人为因素的影响,以至即使在一个单独企业,采用的数据管理系统也大不相同,从简单的文件数据库到复杂的网络数据库,它们构成了企业的异构数据源。尽管这些数据管理系统能够满足数据存储和管理要求,但是在许多情况下,为完成一项工作,企业应用可能需要访问分布在网络不同位置上的多个数据管理系统中的数据。例如,某公司需要了解一套型架的生产和使用情况,那么,相关应用首先必须访问生产准备科、工装所、以及使用车间的不同的数据库系统来提取相关数据,然后进行处理。很显然,原有的数据管理系统并不能提供这种支持,需要一个强大的系统能够集成存在于分布数据源的数据。

      不仅如此,随着生存环境的不断变化,企业在把握机遇的同时也面临着许多挑战。网络的发展使企业逐渐从一个孤立节点发展成为不断与网络交换信息和进行商务事务的实体,企业数据集成也从企业内部集成走向了企业间集成。现在的企业比以往任何时候都需要将内部数据进行发布和交换,这必然导致越来越多的企业应用需要访问各种异构数据源,并且这些数据源可能分布在网络上任何地方。为了满足这种需求,必须有一种系统能够支持异构数据源的数据集成。

      所以,无论是从企业自身发展角度还是从企业间数据集成的角度来看,越来越多的企业应用需要一种异构数据集成系统作为访问异构数据源的支撑,那么,在当前的情况下,建立企业异构数据的集成系统必须解决哪些问题呢?

      面临的问题

      异构数据源集成是数据库领域的经典问题,并随着XML技术的兴起,再次成为了该领域研究的一个热点。单从集成角度看,企业异构数据源集成,与普遍的异构数据源集成问题没有本质区别,具有同样的共性问题。然而,从为企业应用构建支撑系统的角度来讲,必须考虑企业异构数据在集成过程中所遇到的特殊问题。总的来看,作者认为在构建企业异构数据源集成系统时,主要会面对以下几方面问题:

      A.异构性

      异构性是企业异构数据集成必须面临的首要问题,其主要表现在两方面:

      系统异构,数据源所依赖的应用系统、数据库管理系统乃至操作系统之间的不同构成了系统异构。

      模式异构,数据源在存储模式上的不同。一般的存储模式包括关系模式、对象模式、对象关系模式和文档嵌套模式等几种,其中关系模式为主流存储模式。需要注意的是,即便是同一类存储模式,它们的模式结构可能也存在着差异。例如Oracle所采用的数据类型与SQLServer所采用的数据类型并不是完全一致的。

      B.完整性

      异构数据源数据集成的目的是为应用提供统一的访问支持。为了满足各种应用处理(包括发布)数据的条件,集成后的数据必须保证一定的完整性,包括数据完整性和约束完整性两方面。

      数据完整性是指完整提取数据本身,一般来说,这一点较容易达到。

      约束完整性,约束是指数据与数据之间的关联关系,是唯一表征数据间逻辑的特征。保证约束的完整性是良好的数据发布和交换的前提,可以方便数据处理过程,提高效率。

      C.性能

      网络时代的应用对传统数据集成方法提出了挑战,提出了更高的标准。一般说来,当前负责集成的应用必须满足:轻量快速部署,即系统可以快速适应数据源改变和低投入的特性。

      注:这里的性能是对系统本身的要求,为了强调其重要性,作者也将其列为问题之一

      D.语义冲突

      信息资源之间存在着语义上的区别。这些语义上的不同可能引起各种矛盾,从简单的名字语义冲突(不同的名字代表相同的概念),到复杂的结构语义冲突(不同的模型表达同样的信息)[14]。语义冲突会带来数据集成结果的冗余,干扰数据处理、发布和交换。所以如何尽量减少语义冲突也是数据集成的一个研究热点。

      E.权限瓶颈

      由于数据库资源可能归属不同的单位,所以如何在访问异构数据源数据基础上保障原有数据库的权限不被侵犯,实现对原有数据源访问权限的隔离和控制,就成为连接异构数据资源库必须解决的问题。作者将该问题定义为权限瓶颈问题。

      F.附加约束

      集成两个或多个数据源的时候,数据源的数据之间可能存在着某种联系,例如,前面所提到的例子,显然,保存在不同资源库中的关于同一套工装的信息之间存在着一定的逻辑联系。那么,把这种逻辑联系附加到集成结果中的过程就称为附加约束。

      G.集成内容限定

      多个数据源之间的数据集成,并不是要将所有的数据进行集成,那么如何定义要集成的范围,就构成了集成内容的限定问题。

      上面列举了在构建企业异构数据源集成系统时所必须面对的几个主要问题,其中,异构性、完整性、性能、语义冲突问题为异构数据集成中的共性问题,权限瓶颈、附加约束和集成内容的限定则属于企业异构数据集成的特性问题。值得指出的是,尽管作者对问题进行了分类,但事实上,这些问题是相互联系、相互制约的,不应该简单的孤立对待。

      集成异构数据源的方法

      当前,实现异构数据库的集成一般有两种方法。第一种就是将原有的数据移植到新的数据管理系统中来,为了集成不同类型的数据,必须将一些非传统的数据类型转化成新的数据类型。许多关系数据库供应商提供了类似的功能。这种集成方式的缺点是随着数据管理系统的升级,原来数据的相关应用软件,或是被废弃或是重新开发,以适应新的数据管理系统。因此,通常移植到一个新系统不是一个实际的解决方案

      第二种方法是利用中间件集成异构数据库,该方法并不需要改变原始数据的存储和管理方式。中间件位于异构数据库系统(数据层)和应用程序(应用层)之间,向下协调各数据库系统,向上为访问集成数据的应用提供统一数据模式,和数据访问的通用接口。各数据库的应用仍然完成它们的任务,中间件系统则主要集中为异构数据源提供一个高层次检索服务。显然,中间件系统模式是实现异构数据集成较理想的解决方案。

      XML技术的引入

      当我们选用了中间件作为企业异构数据源集成的解决方案后,我们必须为中间件系统选择一种全局的数据模式。负责集成的中间件系统必须提供一种全局数据模式来统一异构的源数据模式。过去,异构数据源的集成系统,例如多数据库系统(如CIMS中的多数据库系统)或联合数据库系统通常采用关系或对象的数据模式作为全局模式。然而,它们并不能满足网络时代的Intra/Internet应用所提出的高标准。一般来说,异构数据集成的全局模式必须满足:(1)能够描述各种数据格式,无论其是结构化的还是半结构化的,无论其是否支持所有的查询语言还是简单的文本查询。(2)易于发布和进行数据交换,集成后的数据可以方便的以多种格式发布和便于应用交换数据。

      随着XML及其相关技术和应用的发展,XML不仅成为了应用间交换数据的一种标准,也是万维网重要的信息交换标准和表示的技术之一。事实上,现在业界已存在几个工业标准(XMLDTD)的草案。XML的产生给不同的信息格式的统一带来了深刻的影响。XML第一次提供了一种信息交换模式,这种格式是可编辑,易解析,并且可以表示为任何类型的结构或半结构化信息。

      目前,XML已有多方支持,并且XML的强适应性,使其可以实现对资源的快速包装和集成发布,所以,通过引入了XML技术,将XML技术与全局数据模式相结合可以使异构数据源集成中间件系统能更好地适应于开放、发展环境(例如,企业的动态联盟环境)中的数据集成。许多著名的异构数据源集成研究都引入了XML相关技术,例如IBM的TSIMMIS项目,GARLIC项目以及SIMS和MOMIS项目等项目。

      结论

      企业异构数据源集成并不是一个新的课题,但在企业生存环境不断改变的前提下,这个课题也是不断发展的。如何面向未来,采用合理的技术实现网络时代企业数据集成将是一个持久的讨论。作为企业应用和企业服务集成实现的一个基础,企业异构数据源集成将对企业信息化进程带来深远的影响。


    2008年12月30日 12:54
    版主
  • 这个用.NET比较好实现,我大概写个例子,希望对你有帮助:
    DataSet ds=new DataSet();
    SqlConnection thisConnection=new SqlConnection(@"Data Source=(local);Integrated Security=SSPI;"+
                    "Initial Catalog=northwind");

    thisConnection.Open();

    SqlDataAdapter da=new SqlDataAdapter("SELECT * FROM Customers",thisConnection);
    da.Fill(ds,"Customers");
    ds.WriteXml(@"C:\temp.xml");//将DataSet中的数据写入Xml文件

    想取出的时候就这样:ds.ReadXml(@"C:\temp.xml");
    2008年12月31日 14:23
    版主

全部回复

  • 你好!
       这个问题涉及的范围比较广,找到一些相关的资料,希望对你有帮助:
    企业在发展过程中积累了大量数据,并为存储和管理这些数据不断投资。然而,由于实施数据管理系统的阶段性、技术性以及其它经济和人为因素的影响,以至即使在一个单独企业,采用的数据管理系统也大不相同,从简单的文件数据库到复杂的网络数据库,它们构成了企业的异构数据源。尽管这些数据管理系统能够满足数据存储和管理要求,但是在许多情况下,为完成一项工作,企业应用可能需要访问分布在网络不同位置上的多个数据管理系统中的数据。例如,某公司需要了解一套型架的生产和使用情况,那么,相关应用首先必须访问生产准备科、工装所、以及使用车间的不同的数据库系统来提取相关数据,然后进行处理。很显然,原有的数据管理系统并不能提供这种支持,需要一个强大的系统能够集成存在于分布数据源的数据。

      不仅如此,随着生存环境的不断变化,企业在把握机遇的同时也面临着许多挑战。网络的发展使企业逐渐从一个孤立节点发展成为不断与网络交换信息和进行商务事务的实体,企业数据集成也从企业内部集成走向了企业间集成。现在的企业比以往任何时候都需要将内部数据进行发布和交换,这必然导致越来越多的企业应用需要访问各种异构数据源,并且这些数据源可能分布在网络上任何地方。为了满足这种需求,必须有一种系统能够支持异构数据源的数据集成。

      所以,无论是从企业自身发展角度还是从企业间数据集成的角度来看,越来越多的企业应用需要一种异构数据集成系统作为访问异构数据源的支撑,那么,在当前的情况下,建立企业异构数据的集成系统必须解决哪些问题呢?

      面临的问题

      异构数据源集成是数据库领域的经典问题,并随着XML技术的兴起,再次成为了该领域研究的一个热点。单从集成角度看,企业异构数据源集成,与普遍的异构数据源集成问题没有本质区别,具有同样的共性问题。然而,从为企业应用构建支撑系统的角度来讲,必须考虑企业异构数据在集成过程中所遇到的特殊问题。总的来看,作者认为在构建企业异构数据源集成系统时,主要会面对以下几方面问题:

      A.异构性

      异构性是企业异构数据集成必须面临的首要问题,其主要表现在两方面:

      系统异构,数据源所依赖的应用系统、数据库管理系统乃至操作系统之间的不同构成了系统异构。

      模式异构,数据源在存储模式上的不同。一般的存储模式包括关系模式、对象模式、对象关系模式和文档嵌套模式等几种,其中关系模式为主流存储模式。需要注意的是,即便是同一类存储模式,它们的模式结构可能也存在着差异。例如Oracle所采用的数据类型与SQLServer所采用的数据类型并不是完全一致的。

      B.完整性

      异构数据源数据集成的目的是为应用提供统一的访问支持。为了满足各种应用处理(包括发布)数据的条件,集成后的数据必须保证一定的完整性,包括数据完整性和约束完整性两方面。

      数据完整性是指完整提取数据本身,一般来说,这一点较容易达到。

      约束完整性,约束是指数据与数据之间的关联关系,是唯一表征数据间逻辑的特征。保证约束的完整性是良好的数据发布和交换的前提,可以方便数据处理过程,提高效率。

      C.性能

      网络时代的应用对传统数据集成方法提出了挑战,提出了更高的标准。一般说来,当前负责集成的应用必须满足:轻量快速部署,即系统可以快速适应数据源改变和低投入的特性。

      注:这里的性能是对系统本身的要求,为了强调其重要性,作者也将其列为问题之一

      D.语义冲突

      信息资源之间存在着语义上的区别。这些语义上的不同可能引起各种矛盾,从简单的名字语义冲突(不同的名字代表相同的概念),到复杂的结构语义冲突(不同的模型表达同样的信息)[14]。语义冲突会带来数据集成结果的冗余,干扰数据处理、发布和交换。所以如何尽量减少语义冲突也是数据集成的一个研究热点。

      E.权限瓶颈

      由于数据库资源可能归属不同的单位,所以如何在访问异构数据源数据基础上保障原有数据库的权限不被侵犯,实现对原有数据源访问权限的隔离和控制,就成为连接异构数据资源库必须解决的问题。作者将该问题定义为权限瓶颈问题。

      F.附加约束

      集成两个或多个数据源的时候,数据源的数据之间可能存在着某种联系,例如,前面所提到的例子,显然,保存在不同资源库中的关于同一套工装的信息之间存在着一定的逻辑联系。那么,把这种逻辑联系附加到集成结果中的过程就称为附加约束。

      G.集成内容限定

      多个数据源之间的数据集成,并不是要将所有的数据进行集成,那么如何定义要集成的范围,就构成了集成内容的限定问题。

      上面列举了在构建企业异构数据源集成系统时所必须面对的几个主要问题,其中,异构性、完整性、性能、语义冲突问题为异构数据集成中的共性问题,权限瓶颈、附加约束和集成内容的限定则属于企业异构数据集成的特性问题。值得指出的是,尽管作者对问题进行了分类,但事实上,这些问题是相互联系、相互制约的,不应该简单的孤立对待。

      集成异构数据源的方法

      当前,实现异构数据库的集成一般有两种方法。第一种就是将原有的数据移植到新的数据管理系统中来,为了集成不同类型的数据,必须将一些非传统的数据类型转化成新的数据类型。许多关系数据库供应商提供了类似的功能。这种集成方式的缺点是随着数据管理系统的升级,原来数据的相关应用软件,或是被废弃或是重新开发,以适应新的数据管理系统。因此,通常移植到一个新系统不是一个实际的解决方案

      第二种方法是利用中间件集成异构数据库,该方法并不需要改变原始数据的存储和管理方式。中间件位于异构数据库系统(数据层)和应用程序(应用层)之间,向下协调各数据库系统,向上为访问集成数据的应用提供统一数据模式,和数据访问的通用接口。各数据库的应用仍然完成它们的任务,中间件系统则主要集中为异构数据源提供一个高层次检索服务。显然,中间件系统模式是实现异构数据集成较理想的解决方案。

      XML技术的引入

      当我们选用了中间件作为企业异构数据源集成的解决方案后,我们必须为中间件系统选择一种全局的数据模式。负责集成的中间件系统必须提供一种全局数据模式来统一异构的源数据模式。过去,异构数据源的集成系统,例如多数据库系统(如CIMS中的多数据库系统)或联合数据库系统通常采用关系或对象的数据模式作为全局模式。然而,它们并不能满足网络时代的Intra/Internet应用所提出的高标准。一般来说,异构数据集成的全局模式必须满足:(1)能够描述各种数据格式,无论其是结构化的还是半结构化的,无论其是否支持所有的查询语言还是简单的文本查询。(2)易于发布和进行数据交换,集成后的数据可以方便的以多种格式发布和便于应用交换数据。

      随着XML及其相关技术和应用的发展,XML不仅成为了应用间交换数据的一种标准,也是万维网重要的信息交换标准和表示的技术之一。事实上,现在业界已存在几个工业标准(XMLDTD)的草案。XML的产生给不同的信息格式的统一带来了深刻的影响。XML第一次提供了一种信息交换模式,这种格式是可编辑,易解析,并且可以表示为任何类型的结构或半结构化信息。

      目前,XML已有多方支持,并且XML的强适应性,使其可以实现对资源的快速包装和集成发布,所以,通过引入了XML技术,将XML技术与全局数据模式相结合可以使异构数据源集成中间件系统能更好地适应于开放、发展环境(例如,企业的动态联盟环境)中的数据集成。许多著名的异构数据源集成研究都引入了XML相关技术,例如IBM的TSIMMIS项目,GARLIC项目以及SIMS和MOMIS项目等项目。

      结论

      企业异构数据源集成并不是一个新的课题,但在企业生存环境不断改变的前提下,这个课题也是不断发展的。如何面向未来,采用合理的技术实现网络时代企业数据集成将是一个持久的讨论。作为企业应用和企业服务集成实现的一个基础,企业异构数据源集成将对企业信息化进程带来深远的影响。


    2008年12月30日 12:54
    版主
  •  

    谢谢楼上的回答...

     

    我这方面的概念很模糊...

     

    我想请教下....

    RDMS-->XML--->RDMS

    把关系数据库的数据转换成XML文档,,是不是可以在.NET中用代码实现呢....或者有什么例子..

    谁能给个具体点的代码啊...小弟感激不尽啊~~

    2008年12月31日 12:37
  • 这个用.NET比较好实现,我大概写个例子,希望对你有帮助:
    DataSet ds=new DataSet();
    SqlConnection thisConnection=new SqlConnection(@"Data Source=(local);Integrated Security=SSPI;"+
                    "Initial Catalog=northwind");

    thisConnection.Open();

    SqlDataAdapter da=new SqlDataAdapter("SELECT * FROM Customers",thisConnection);
    da.Fill(ds,"Customers");
    ds.WriteXml(@"C:\temp.xml");//将DataSet中的数据写入Xml文件

    想取出的时候就这样:ds.ReadXml(@"C:\temp.xml");
    2008年12月31日 14:23
    版主
  • Thanks you all!

    2008年12月31日 15:09
  •  

    谢谢周大哥的关心啊。小弟感激不尽。。

     

    小弟愚昧,再请问下。我要做的是异构数据的转换问题。。比如想用SQL数据转换成ACCESS数据。

     

    是不是要建转换模型,如何在.NET实现呢。利用什么技术方法,大概说下。。

    2009年1月2日 11:59
  •   --ACCESS中操作   SQL   Server   数据库,需要你能连接远程的   SQL   Server   服务器:  
       
       
      然后打开ACCESS数据库(用ACCESS打开/程序中打开均可)  
       
      --导入数据到ACCESS数据库中  
      --如果是下载SQL的数据(表已经存在的情况)  
      insert   into   表名  
      SELECT   *  
      FROM   [ODBC;Driver=SQL   Server;Server=远程SQL服务器名;Uid=用户名;Pwd=密码;database=数据库名].表名  
       
      --如果是下载SQL的数据(表不存在的情况)  
      SELECT   *   into   表名  
      FROM   [ODBC;Driver=SQL   Server;Server=远程SQL服务器名;Uid=用户名;Pwd=密码;database=数据库名].表名  
       
       
      --如果是上传数据库到SQL(表已经存在的情况):  
      insert   into   [ODBC;Driver=SQL   Server;Server=远程SQL服务器名;Uid=用户名;Pwd=密码;database=数据库名].表名  
      SELECT   *   FROM   表名  
       
      --如果是上传数据库到SQL(表不存在的情况):  
      SELECT   *   into   [ODBC;Driver=SQL   Server;Server=远程SQL服务器名;Uid=用户名;Pwd=密码;database=数据库名].表名  
      FROM   表名
    2009年1月2日 12:49
    版主