论文部分内容阅读
[摘要]数据集成关注解决异构信息资源的共享问题,致力于将一个一个信息孤岛连接起来。基于RDF技术的数据集成,解决传统数据集成方法不能解决的复杂数据的问题。解决的方法被抽象成三层的逻辑结构,这三层逻辑结构可以集成包括文本格式的数据源、XML格式数据源、html格式数据源以及其它类型的数据库等。
[关键词]全局模式 中间模式 本地模式 RDF 数据集成
中图分类号:TP3 文献标识码:A 文章编号:1671-7597(2008)0710053-02
一、引言
数据集成是网络发展的要求,是数据共享的要求,是企业应用的要求。由于不同用户提供的数据可能来自不同的途径,其数据内容、数据格式和数据质量更是千差万别,有时甚至会遇到数据格式不能互相转换或数据转换格式后丢失信息等棘手问题,严重阻碍了数据在各部门和各软件系统中的流动与共享。为了改善这个局面,利用数据集成的方法在各种数据之间架起信息沟通和交换的桥梁已经越来越受人们关注。
现在最常用的方法是使用XML作为数据集成的工具。虽然XML已经有了各种版本的解析器,但是XML书写的随意性使得文件中的词汇不具有通用性,必须同时拥有一个处理器来处理词汇的语义。很显然这些程序之间并不存在互换性和通用性。在RDF(Resource Description Framework,简称 RDF)文件中,大家趋于用统一词汇,这使得拥有各种版本的解释器成为可能。XML虽然已经具备了类的某些特点,例如封装,但是与还同时拥有继承性特点的RDF相比XML能表达的数据就简单的多。
XML存在问题的根本原因是XML不具备语义描述能力。为此,W3C推荐以RDF标准来解决XML的语义局限。RDF提出了一个简单的模型用来表示任意类型的数据。这个数据类型由节点和节点之间带有标记的连接弧所组成。节点用来表示Web上的资源,弧用来表示这些资源的属性。因此,这个数据模型可以方便地描述对象(或者资源)以及它们之间关系。RDF的数据模型实质上是一种二元关系的表达,由于任何复杂的关系都可以分解为多个简单的二元关系,因此RDF的数据模型可以作为其他任何复杂关系模型的基础模型。
二、数据集成模型设计
在构建新系统的过程中,经常碰到以下的问题。系统1数据服务器到系统n数据服务器所对应的系统1到系统n的数据正是新系统所需要的数据,而在当时构建旧系统的过程中所使用的数据的设计是按照对应系统的要求设计的,不会也不可能考虑到集成使用的问题。基于RDF的数据集成正是致力于解决以上的问题。
在基于RDF的数据集成的模型设计中,模型被设计成三层,三层模型从高到低分别是:全局层、中间层和本地层。三层模型分别对应于全局模式、中间模式和本地模式。全局模式是面向应用的最终的模式,是应用直接访问的模式,这种模式已经消除了各个本地模式的差异,全局模式对应的数据是通过应用和、差、并、投影等集合运算将中间模式的数据转换成用户可以直接使用的数据,数据的格式是RDF。中间模式是将本地模式的数据转换成公共元数据模型表示的模式,中间模式对应的数据是通过将一个数据源对应成一个对象再根据自定义的对应规则将局部模式的数据转换而成,数据的格式也是RDF。它存在的目的是为将异构的本地数据转换成可实现共享的全局模式做必要的准备。本地模式就是各个数据服务器上存在的异构的数据模式。
三层模型中各个层次为比自己为更高一层提供服务。三个模式之间存在着两级映射,即全局模式/中间模式间的映象,中间模式/本地模式间的映象。在基于RDF的数据集成中,全局模式/中间模式间的映象是唯一的,它确定了数据的中间结果与最终用户调用的数据的对应关系。中间模式/本地模式间的映象也是唯一的。它确定了数据的中间结果与具体的局部的数据存储结构之间的对应关系。
三、建立本地模式
在基于RDF的数据集成中,本地模式的数据可以以多种数据格式存在,包括以各种关系数据库形式存在的数据格式和以RDF为首的文本格式存在的数据格式。基于RDF的数据集成的任务就是要把这些数据格式统一成RDF的形式。
在很多的编程语言中都有读出文本中的内容的API,所以可以很轻易地读取文本文件的数据;对于关系数据库,同样有很多编程语言提供了连接数据库的方法,连接数据库并读取所要的数据也是一件轻易的事情。基于RDF的数据集成兼容的数据格式越多,那么它的适用性就会越强。三层模式的设计可以方便地将多种数据格式兼容进来。
通过读取本地模式的数据后再将这些数据组装成RDF三元组的形式(这种形式是中间模式对应的形式),这种形式的数据很方便被更高层的全局模式所利用。
四、建立中间模式
在实际的应用需求中我们往往面对的是关系数据源的集成问题,因此在本文中我们着力讨论关系数据源的集成问题。中间模式的创建策略如下:
(一)每个数据库表对应一个RDF描述文件
该描述文件从逻辑上代表虚拟对象模型系统中的一个类型(Class)。
每个数据表对应一个映射文件,为了简化程序设计映射文件名直接用数据库表的名字表示。在映射文件中由url,driver,connection,username,password等属性,同时还包括数据库中字段与全局模式下类属性的对应关系,通过查询这个映射信息就可以将数据库中的数据对应成RDF的数据格式。
<url>
http://210.38.240.204
</url>
<driver>
com.microsoft.jdbc.sqlserver.SQLServerDriver
</driver>
<Connection>
Jdbc:Microsoft:sqlserver://210.38.240.204;DatabaseName
=example
<connection>
< username >
sa
</ username >
<password>
sa
</password>
/*另外包含属性映射*/
url属性指明了这个映射所连接的数据库表所在的地址,同时可以作为RDF文件中的资源的前缀使用,这个前缀的使用相当于在资源前加了一个命名空间,这使得即使有相同的类属性也可以区分。driver,connection,username,password等属性是进行数据库连接不可缺少的信息。上文提到的“另外包含属性映射”是指将数据库中的字段名映射成为全局模式下的类的某个属性。
(二)数据库表映射为公共数据类型的class元素
在基于RDF的数据集成系统中,表被定义为基本的映射单元。它作为一个完整的逻辑实体被映射为面向对象世界中的一个Class。当系统处于运行态时,每个Object对应关系数据库中表的一条记录。它定义了class到数据库表的映射,在某些复杂的情况下,一个class可以对应多个数据库表,同样可以采用命名空间的方法加以区分。
(三)数据库表中字段映射为全局公共属性
在基于RDF的数据集成系统中,可以使用节点定义关系模式和对象模式的映射,那么表结构中的列信息自然而然就映射为节点下的一个属性节点。这种映射方式是极为直接和直观的,也具有语义上的关联性。要完整的描述一个属性列的映射信息,我们需要定义符合RDF要求的属性。建立数据库字段与全局模式类的属性的对应关系。
(四)数据库表之间的一对一关系
一对一的关系是一种常见的对应关系,这种关系可以看成是特殊的一对多的关系,但是在实际的处理中看成是一个资源更加方便处理。
(五)数据库表之间的一对多关系
在关系数据模式的E-R图中就可以看到,在关系数据模式中不仅定义了Entity而且定义了关系。那么在我们的映射关系中如何将实体关系映射为面向对象体系中关系就显得至关重要。并且这种关系的映射要能够保证关系实体之间的关系约束和关系完整性得到完整转换。
在基于RDF的数据集成系统中,我们通过使用RDF提供的三种容器来表现关系数据库中一对多的关系。在RDF中总共有三种容器:rdf:Bag,rdf:Seq和 rdf:Alt。但是关系数据库中的关系远没有RDF描述的这么复杂,在关系数据库中一般各表之间的关系没有序列关系和替代关系,所以采用rdf:Bag就可以了。一个包中表示的各个资源是无序的。这些资源是相应的关系数据库的表映射而成的类,类和数据表的映射关系以及数据表的键要到类数据表映射表中寻找。
(六)数据库表之间的多对多关系
在关系模式中,多对多的关联是一种比较复杂的关联关系。往往通过两个关系表的主键字段的交叉关联来达到目的。在基于RDF的数据集成系统的我们使用综合使用(四)和(五)提到的方法表示这种关系。
通过以上的语义映射规则,我们为关系模式和面向对象模式之间的映射定义了完整的映射语法,使用这种映射规则就可以把本地的关系模式顺利的映射为中间层的公共数据模式描述。这种描述使用RDF作为语义描述的载体,没有包含任何关系数据源相关的专有信息,所以很好的实现的异构的屏蔽性。通过这种映射之后,异构的本的数据模式实际已经转换为DBMS无关的中间层元数据模型描述的面向对象的数据模式也即输出模式,至此本地数据模式也转换为一系列的输出模式集。
五、建立全局模式
全局模式的数据是在中间模式的基础上得到的。中间模式的数据实际上是利用RDF的特点将本地模式的数据以类的格式封装起来,中间模式的数据是没有任何方法的纯数据的对象,它不仅具有XML类数据的封装的特点还具有XML类数据不具有的继承的特点,这样的数据更方便于表达纷繁复杂的客观世界,在构建全局模式的数据模型时,可以充分利用包括RDF的三种容器在内的所有工具来组织复杂的数据模型,这是XML不能做到的,是RDF的先进的地方。但是这样得来的数据不能直接被最终用户使用,因为中间模式的数据只是将本地数据以类的要求进行封装的,它只能使用于旧系统的应用要求。最终用户用到的数据需要将中间模式的纯数据对象进行重新组合,包括删除某些类的部分成员或者将某些类的成员合并成新的纯数据对象等等。全局模式就是要按照最终用户的要求把中间模式的数据封装成新的纯数据对象。
对于最终用户要求的数据对象的成员将以文本的格式写在RDF配置文档中间,RDF对语法的严格要求使得RDF文档杜绝了XML文档书写的随意性,文档的规范性使得对应的基于RDF的数据集成的程序也具有可移植性。
在基于RDF的数据集成的程序读取了RDF配置文档后再根据RDF配置文档的要求封装中间模式的数据。
六、总结
网络的发展对于共享数据的要求与数据孤岛之间的矛盾需要用数据集成的方法来解决。本文重点讨论了基于RDF的数据集成的核心思想,将基于RDF的数据集成分成三个层次来讨论,对于每一层的实现方法进行了深入的讨论。基于RDF的数据集成是将数据集成与RDF技术相结合的产物,因此RDF技术的先进性决定了这种集成方法的先进性。
参考文献:
[1]T. Bray, J. Paoli, C. Sperberg-McQueen, and E. Maler, “Extensible Markup Language (XML) 1.0 (second ed.),” W3C Recommendation, Oct. 2000. http://www.w3.org/TR/REC-xml.
[2]J. Cowan and R. Tobin, “XML Information Set,” W3C Recommendation, Oct. 2001. http://www.w3.org/TR/xml-infoset/.
[3]H. Thompson, D. Beech, M. Maloney, and N. Mendelsohn,“XML Schema Part1:Structures,”W3C Recommentation,May 2001.http://www.w3.org/TR/xmlschema-1/.
[4]D. Chamberlin, D. Florescu,J.Robie, J. Simeon, and M. Stefanescu, “XQuery 1.0: An XML Query Language,”June 2001. http://www.w3.org/TR/xquery/.
[5]O. Lassila and R. Swick, “Resource Description Framework (RDF) Model and Syntax Specification,” W3C Recommentation, Feb.1999. http://www.w3.org/TR/REC-rdf-syntax/.
[6]G. Karvounarakis, V. Christophides, D. Plexousakis, and S.Alexaki, “Querying RDF Descriptions for Community Web Portals,” Proc.French Nat'l Database Conf., Oct. 2001. Http://139.91.183.30:9090/RDF/RQL/.
[关键词]全局模式 中间模式 本地模式 RDF 数据集成
中图分类号:TP3 文献标识码:A 文章编号:1671-7597(2008)0710053-02
一、引言
数据集成是网络发展的要求,是数据共享的要求,是企业应用的要求。由于不同用户提供的数据可能来自不同的途径,其数据内容、数据格式和数据质量更是千差万别,有时甚至会遇到数据格式不能互相转换或数据转换格式后丢失信息等棘手问题,严重阻碍了数据在各部门和各软件系统中的流动与共享。为了改善这个局面,利用数据集成的方法在各种数据之间架起信息沟通和交换的桥梁已经越来越受人们关注。
现在最常用的方法是使用XML作为数据集成的工具。虽然XML已经有了各种版本的解析器,但是XML书写的随意性使得文件中的词汇不具有通用性,必须同时拥有一个处理器来处理词汇的语义。很显然这些程序之间并不存在互换性和通用性。在RDF(Resource Description Framework,简称 RDF)文件中,大家趋于用统一词汇,这使得拥有各种版本的解释器成为可能。XML虽然已经具备了类的某些特点,例如封装,但是与还同时拥有继承性特点的RDF相比XML能表达的数据就简单的多。
XML存在问题的根本原因是XML不具备语义描述能力。为此,W3C推荐以RDF标准来解决XML的语义局限。RDF提出了一个简单的模型用来表示任意类型的数据。这个数据类型由节点和节点之间带有标记的连接弧所组成。节点用来表示Web上的资源,弧用来表示这些资源的属性。因此,这个数据模型可以方便地描述对象(或者资源)以及它们之间关系。RDF的数据模型实质上是一种二元关系的表达,由于任何复杂的关系都可以分解为多个简单的二元关系,因此RDF的数据模型可以作为其他任何复杂关系模型的基础模型。
二、数据集成模型设计
在构建新系统的过程中,经常碰到以下的问题。系统1数据服务器到系统n数据服务器所对应的系统1到系统n的数据正是新系统所需要的数据,而在当时构建旧系统的过程中所使用的数据的设计是按照对应系统的要求设计的,不会也不可能考虑到集成使用的问题。基于RDF的数据集成正是致力于解决以上的问题。
在基于RDF的数据集成的模型设计中,模型被设计成三层,三层模型从高到低分别是:全局层、中间层和本地层。三层模型分别对应于全局模式、中间模式和本地模式。全局模式是面向应用的最终的模式,是应用直接访问的模式,这种模式已经消除了各个本地模式的差异,全局模式对应的数据是通过应用和、差、并、投影等集合运算将中间模式的数据转换成用户可以直接使用的数据,数据的格式是RDF。中间模式是将本地模式的数据转换成公共元数据模型表示的模式,中间模式对应的数据是通过将一个数据源对应成一个对象再根据自定义的对应规则将局部模式的数据转换而成,数据的格式也是RDF。它存在的目的是为将异构的本地数据转换成可实现共享的全局模式做必要的准备。本地模式就是各个数据服务器上存在的异构的数据模式。
三层模型中各个层次为比自己为更高一层提供服务。三个模式之间存在着两级映射,即全局模式/中间模式间的映象,中间模式/本地模式间的映象。在基于RDF的数据集成中,全局模式/中间模式间的映象是唯一的,它确定了数据的中间结果与最终用户调用的数据的对应关系。中间模式/本地模式间的映象也是唯一的。它确定了数据的中间结果与具体的局部的数据存储结构之间的对应关系。
三、建立本地模式
在基于RDF的数据集成中,本地模式的数据可以以多种数据格式存在,包括以各种关系数据库形式存在的数据格式和以RDF为首的文本格式存在的数据格式。基于RDF的数据集成的任务就是要把这些数据格式统一成RDF的形式。
在很多的编程语言中都有读出文本中的内容的API,所以可以很轻易地读取文本文件的数据;对于关系数据库,同样有很多编程语言提供了连接数据库的方法,连接数据库并读取所要的数据也是一件轻易的事情。基于RDF的数据集成兼容的数据格式越多,那么它的适用性就会越强。三层模式的设计可以方便地将多种数据格式兼容进来。
通过读取本地模式的数据后再将这些数据组装成RDF三元组的形式(这种形式是中间模式对应的形式),这种形式的数据很方便被更高层的全局模式所利用。
四、建立中间模式
在实际的应用需求中我们往往面对的是关系数据源的集成问题,因此在本文中我们着力讨论关系数据源的集成问题。中间模式的创建策略如下:
(一)每个数据库表对应一个RDF描述文件
该描述文件从逻辑上代表虚拟对象模型系统中的一个类型(Class)。
每个数据表对应一个映射文件,为了简化程序设计映射文件名直接用数据库表的名字表示。在映射文件中由url,driver,connection,username,password等属性,同时还包括数据库中字段与全局模式下类属性的对应关系,通过查询这个映射信息就可以将数据库中的数据对应成RDF的数据格式。
<url>
http://210.38.240.204
</url>
<driver>
com.microsoft.jdbc.sqlserver.SQLServerDriver
</driver>
<Connection>
Jdbc:Microsoft:sqlserver://210.38.240.204;DatabaseName
=example
<connection>
< username >
sa
</ username >
<password>
sa
</password>
/*另外包含属性映射*/
url属性指明了这个映射所连接的数据库表所在的地址,同时可以作为RDF文件中的资源的前缀使用,这个前缀的使用相当于在资源前加了一个命名空间,这使得即使有相同的类属性也可以区分。driver,connection,username,password等属性是进行数据库连接不可缺少的信息。上文提到的“另外包含属性映射”是指将数据库中的字段名映射成为全局模式下的类的某个属性。
(二)数据库表映射为公共数据类型的class元素
在基于RDF的数据集成系统中,表被定义为基本的映射单元。它作为一个完整的逻辑实体被映射为面向对象世界中的一个Class。当系统处于运行态时,每个Object对应关系数据库中表的一条记录。它定义了class到数据库表的映射,在某些复杂的情况下,一个class可以对应多个数据库表,同样可以采用命名空间的方法加以区分。
(三)数据库表中字段映射为全局公共属性
在基于RDF的数据集成系统中,可以使用节点定义关系模式和对象模式的映射,那么表结构中的列信息自然而然就映射为节点下的一个属性节点。这种映射方式是极为直接和直观的,也具有语义上的关联性。要完整的描述一个属性列的映射信息,我们需要定义符合RDF要求的属性。建立数据库字段与全局模式类的属性的对应关系。
(四)数据库表之间的一对一关系
一对一的关系是一种常见的对应关系,这种关系可以看成是特殊的一对多的关系,但是在实际的处理中看成是一个资源更加方便处理。
(五)数据库表之间的一对多关系
在关系数据模式的E-R图中就可以看到,在关系数据模式中不仅定义了Entity而且定义了关系。那么在我们的映射关系中如何将实体关系映射为面向对象体系中关系就显得至关重要。并且这种关系的映射要能够保证关系实体之间的关系约束和关系完整性得到完整转换。
在基于RDF的数据集成系统中,我们通过使用RDF提供的三种容器来表现关系数据库中一对多的关系。在RDF中总共有三种容器:rdf:Bag,rdf:Seq和 rdf:Alt。但是关系数据库中的关系远没有RDF描述的这么复杂,在关系数据库中一般各表之间的关系没有序列关系和替代关系,所以采用rdf:Bag就可以了。一个包中表示的各个资源是无序的。这些资源是相应的关系数据库的表映射而成的类,类和数据表的映射关系以及数据表的键要到类数据表映射表中寻找。
(六)数据库表之间的多对多关系
在关系模式中,多对多的关联是一种比较复杂的关联关系。往往通过两个关系表的主键字段的交叉关联来达到目的。在基于RDF的数据集成系统的我们使用综合使用(四)和(五)提到的方法表示这种关系。
通过以上的语义映射规则,我们为关系模式和面向对象模式之间的映射定义了完整的映射语法,使用这种映射规则就可以把本地的关系模式顺利的映射为中间层的公共数据模式描述。这种描述使用RDF作为语义描述的载体,没有包含任何关系数据源相关的专有信息,所以很好的实现的异构的屏蔽性。通过这种映射之后,异构的本的数据模式实际已经转换为DBMS无关的中间层元数据模型描述的面向对象的数据模式也即输出模式,至此本地数据模式也转换为一系列的输出模式集。
五、建立全局模式
全局模式的数据是在中间模式的基础上得到的。中间模式的数据实际上是利用RDF的特点将本地模式的数据以类的格式封装起来,中间模式的数据是没有任何方法的纯数据的对象,它不仅具有XML类数据的封装的特点还具有XML类数据不具有的继承的特点,这样的数据更方便于表达纷繁复杂的客观世界,在构建全局模式的数据模型时,可以充分利用包括RDF的三种容器在内的所有工具来组织复杂的数据模型,这是XML不能做到的,是RDF的先进的地方。但是这样得来的数据不能直接被最终用户使用,因为中间模式的数据只是将本地数据以类的要求进行封装的,它只能使用于旧系统的应用要求。最终用户用到的数据需要将中间模式的纯数据对象进行重新组合,包括删除某些类的部分成员或者将某些类的成员合并成新的纯数据对象等等。全局模式就是要按照最终用户的要求把中间模式的数据封装成新的纯数据对象。
对于最终用户要求的数据对象的成员将以文本的格式写在RDF配置文档中间,RDF对语法的严格要求使得RDF文档杜绝了XML文档书写的随意性,文档的规范性使得对应的基于RDF的数据集成的程序也具有可移植性。
在基于RDF的数据集成的程序读取了RDF配置文档后再根据RDF配置文档的要求封装中间模式的数据。
六、总结
网络的发展对于共享数据的要求与数据孤岛之间的矛盾需要用数据集成的方法来解决。本文重点讨论了基于RDF的数据集成的核心思想,将基于RDF的数据集成分成三个层次来讨论,对于每一层的实现方法进行了深入的讨论。基于RDF的数据集成是将数据集成与RDF技术相结合的产物,因此RDF技术的先进性决定了这种集成方法的先进性。
参考文献:
[1]T. Bray, J. Paoli, C. Sperberg-McQueen, and E. Maler, “Extensible Markup Language (XML) 1.0 (second ed.),” W3C Recommendation, Oct. 2000. http://www.w3.org/TR/REC-xml.
[2]J. Cowan and R. Tobin, “XML Information Set,” W3C Recommendation, Oct. 2001. http://www.w3.org/TR/xml-infoset/.
[3]H. Thompson, D. Beech, M. Maloney, and N. Mendelsohn,“XML Schema Part1:Structures,”W3C Recommentation,May 2001.http://www.w3.org/TR/xmlschema-1/.
[4]D. Chamberlin, D. Florescu,J.Robie, J. Simeon, and M. Stefanescu, “XQuery 1.0: An XML Query Language,”June 2001. http://www.w3.org/TR/xquery/.
[5]O. Lassila and R. Swick, “Resource Description Framework (RDF) Model and Syntax Specification,” W3C Recommentation, Feb.1999. http://www.w3.org/TR/REC-rdf-syntax/.
[6]G. Karvounarakis, V. Christophides, D. Plexousakis, and S.Alexaki, “Querying RDF Descriptions for Community Web Portals,” Proc.French Nat'l Database Conf., Oct. 2001. Http://139.91.183.30:9090/RDF/RQL/.