基于RDF的数据集成(2)
作者:佚名; 更新时间:2014-12-05
在很多的编程语言中都有读出文本中的内容的API,所以可以很轻易地读取文本文件的数据;对于关系数据库,同样有很多编程语言提供了连接数据库的方法,连接数据库并读取所要的数据也是一件轻易的事情。基于RDF的数据集成兼容的数据格式越多,那么它的适用性就会越强。三层模式的设计可以方便地将多种数据格式兼容进来。
通过读取本地模式的数据后再将这些数据组装成RDF三元组的形式(这种形式是中间模式对应的形式),这种形式的数据很方便被更高层的全局模式所利用。
四、建立中间模式
在实际的应用需求中我们往往面对的是关系数据源的集成问题,因此在本文中我们着力讨论关系数据源的集成问题。中间模式的创建策略如下:
(一)每个数据库表对应一个RDF描述文件
该描述文件从逻辑上代表虚拟对象模型系统中的一个类型(Class)。
每个数据表对应一个映射文件,为了简化程序设计映射文件名直接用数据库表的名字表示。在映射文件中由url,driver,connection,username,password等属性,同时还包括数据库中字段与全局模式下类属性的对应关系,通过查询这个映射信息就可以将数据库中的数据对应成RDF的数据格式。
<url>
</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就可以了。一个包中表示的各个资源是无序的。这些资源是相应的关系数据库的表映射而成的类,类和数据表的映射关系以及数据表的键要到类数据表映射表中寻找。
上一篇:教育数字视频的应用现状及制作原则
热门论文