基于本体数据字典的异构数据库集成方法
孙春风 冯径 王占丰
(解放军理工大学 气象学院, 江苏 南京 211101)
摘 要 在采用中间件技术的异构数据集成方法中,通过在中间件层建立基于本体的数据字典,利用本体的资源描述与和推理作用解决异构数据定位和语义异构问题,本文研究了从关系数据库生成本体的方法和规则以及查询的
流程
快递问题件怎么处理流程河南自建厂房流程下载关于规范招聘需求审批流程制作流程表下载邮件下载流程设计
,为存储在不同类型数据库、数据具有不同存储格式,给出了数据的表示上语义异构的数据集成的解决方法,并针对异构水利数据集成进行了实现验证。
关键词 数据集成;本体;数据字典;OWL
1 引言
异构数据集成的目的是提供一个统一的查询接口,屏蔽底层数据源的不同,使得用户不必再考虑底层数据源的数据模型、物理位置和语义异构等问题。现有的解决方案包括:联邦数据库方式、Mediator/Wrapper方式、数据仓库方式等。其中Mediator/Wrapper方式以其松耦合、易部署、局部数据源自治等特点在系统集成中得到广泛的应用。进行数据集成所要解决的首要问题就是各种异构数据结构的
标准
excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载
化、结构化问题,采用数据字典能够为数据定位和数据
规范
编程规范下载gsp规范下载钢格栅规范下载警徽规范下载建设厅规范下载
化提供很好的支持,但是无法很好地解决语义异构的问题。本体及其相关技术为解决异构数据集成提供了新的解决方法,本体通过对概念的严格定义和概念之间的关系来确定概念的精确含义,表示共同认可的、可共享的知识,从而解决语义异构的问题。
本文提出在全局数据字典的基础上提取本体的异构关系数据库集成方法,从用户的角度出发,通过本体强大的描述能力和推理能力来解决异构数据集成中的数据定位和语义异构问题,保持查询的精度并提高查询的广度,并通过实例进行了验证。
2 系统结构
对典型的Mediated系统体系结构进行改进,引入数据字典和本体层,如图1所示。数据集成系统通过中介模式将各数据源的数据集成起来,而数据仍存储在各个局部数据源中,通过各数据源的包装器(wrapper)对数据进行转换使之符合中介模式。用户的查询基于中介模式不必知道每个数据源的模式。在传统的数据集成应用中,中介器(mediator)的作用将基于中介模式的一个查询转换为基于各局部数据源模式的一系列查询,引入本体层后,中介器将对用户的查询进行分析并提取相关信息在本体层进行检索,查询的结果返回给中介器,重新组合成新的查询,并交给查询引擎做优化并执行。对每个数据源进行的查询都会返回结果数据,中介器再对这些数据做连接和集成,最后将符合用户查询要求的信息返回给用户。 使用中介模式的数据集成方法解决了各数据源中数据的更新问题。当底层数据源发生变化时,只需要修改中介模式的虚拟逻辑视图就可以了,大大减少了数据集成系统的维护开销。
图1 系统结构框图
目前基于本体的数据集成系统的研究主要集成在从各个局部数据源中直接生成本体,再在高层进行全局本体映射,从而达到集成的目的。这种方法不仅涉及到要将数据库数据提取的问题,而且因为数据库本身存储的更多的是实体、属性的关系,从中提取过多的关系属性对于用户的访问并不实用,从关系模式中生成过多的联系属性,数据源的加入或更改也将导致局部本体乃至全局本体的变化。结合Mediated系统,从数据字典中构建本体层,充分利用现有体系结构,改造相对简单,数据字典存储了详细的数据库信息,按照一定的转换规则,可以迅速转换生成本体描述。本体文件的生成是单向的,具有很大的灵活性,用户可以采用本体编辑工具对其进行编辑。
2 数据字典和本体的基本概念
数据字典是描述数据库中各数据属性与组成的数据集合。包括模式和子模式的内容、文件间的联系、数据项长度、类型、用户标识符、口令、索引等等。本文的数据字典主要是指在应用层和用户访问有关的关系数据库数据信息。
本体由五个基本构成元素。这些元素分别为:类(Classes)、关系(Relations)、函数(Functions)、公理(Axioms)和实例(Instances)。
(1)类(classes)或概念(concepts)。指任何事务,如工作描述、功能、行为、策略和推理过程。从语义上讲,它表示的是对象的集合,其定义一般采用框架(frame)结构,包括概念的名称,与其它概念之间的关系的集合,以及用自然语言对概念的描述。
(2)关系(relations)。指领域中概念之间的交互作用,形式上定义为二维笛卡儿积的子集R:C1×C2×...×Cn如子类关系(subclass-of)。
(3)函数(functions)一类特殊的关系。该关系的前n-1个元素可以惟一决定第n个元素。形式化的定义为F:C1×C2×...×Cn-1→Cn。如Mother-of就是一个函数,mother-of(x,y)表示y是x的母亲。
(4)公理(axioms)。代表永真断言,如概念乙属于概念甲。
(5)实例(instances)。属于某概念的基本元素,即某概念类所指的具体实体。
从语义上讲,概念间的基本关系共有4种,如表1所示,所列概念间的基本关系是构建本体数据字典的基础。
表1 概念间的基本关系
图2 本体构建流程图
图2是系统中数据字典和本体的生成流程图,从数据库的模式信息中提取出数据字典,包括数据库的连接信息、表信息、字段信息。在生成本体的过程中,各个局部数据源的数据命名或格式规范可能是不标准的,所以需要引入标准库,使各部标准的数据格式得到统一。在本体构建中完成数据的映射,如设置不同数据库的不同字段异名同义,并可以根据用户的业务需求进行关系定制,比如定制水利数据中的雨洪概念,使雨情和水情成为其子类,如此用户在查询雨洪时,本体查询返回雨情和水情,进一步分解和重写查询并在各数据库中进行检索。
3 本体构建的规则
本体构建是用本体语言来描述数据字典的信息,系统采用W3C推荐的语义互联网中本体描述语言的标准OWL(Web Ontology Language)。它是从欧美一些研究机构的一种结合性的描述语言DAML+OIL发展起来的。在W3C提出的本体语言栈中,OWL处于最上层,作为RDF(Resource Description Frame,W3C组织推荐使用的用来描述资源及其之间关系的语言规范)的扩展,目的是提供更多的原语支持更加丰富的语义表达,更好的支持推理。OWL能够用于清晰的表达词汇表中的词条的含义以及这些词条之间的关系。而这种对词条和它们之间关系的表达形式就称为本体。相对于XML、RDF和RDFS来讲,OWL拥有更多的机制来表达语义。
OWL的基本语法在W3C上有详细的描述,在本系统中主要用到的语法如表2所示。
表2 OWL的基本语法表
标签
含义
owl:Ontology
声明本体描述
owl:Thing
内置的公共类,为所有类的父类
owl:Class
定义一组共享了某些相同属性的个体
owl:subClassOf
定义一个类是另一个或多个类的子类
owl:ObjectProperty
属性被声明为对象类型的属性
owl:DatatypeProperty
属性被声明为数据类型的属性
rdfs:domain
一个属性的domain是能够应用该属性的个体集合
rdfs:range
一个属性的range是该属性所必须有的值的个体的集合
rdfs:ID
声明所描述的概念的名称
通过使用以上的这些语法标签,能有效地表达本体中的概念及其概念之间的关系。从关系数据库构建本体有相应的转换规则,但是其中有相当的内容放在关系数据库中关系的转换上。从数据字典生成本体,从用户查询的角度出发,本着主要解决数据库定位和语义异构的原则,从中选取部分规则如下:
[转换规则1]:关系模式的关系名映射到一个 owl: Class。
[转换规则2]:关系模式的各个属性的域映射到一个XSD: xsdDataType。
[转换规则3]:关系模式的各个属性映射到一个owl:DatatypeProperty,并对owl:DatatypeProperty的rdfs:rang 和rdfs:domain 取值约束进行表示。
[转换规则4]:如果关系模式的属性(除外键)取值不可为空,则此属性转换得到的owl:Datatype-Property 的基数限制owl:Cardinality 取值为“1”。
[转换规则5]:如果关系模式中的属性(除外键) 取值可为空,则此属性转换得到的o-wl:DatatypeProperty 的基数限制owl:maxCardinality 取值为“0”。
通过以上规则进行了关系数据库到本体的映射,主要解决了数据定位的问题,对于解决语义异构,还需要利用OWL语言的其它属性。
[规则1]:对于同义的字段,设置equivalentProperty属性。
[规则2]:对于子类和父类的关系,设置subclass、superclass属性。
[规则3]:对于用户定制的关系,设置相应的object Property属性。
4 查询转换
本体的查询主要是进行本体推理的过程,本体语言通过对概念和属性进行严格的定义来支持推理。Jena是HP公司开发的一个基于Java的开放源代码语义网工具包,为解析RDF、RDFS和OWL本体提供了一个编程环境及一个基于规则的推理引擎。
图3 查询流程图
图3描述了查询的流程图,用户提交的普通查询,在中介器中进行语法分析和字段提取,通过Jena进行本体中相关字段的查找,返回后进行SQL重写,再由中介器分发给各包装器执行。
在本体查询的过程中,主要用到类和属性的查询,对于类查询,调用Jena API中的get-SubClass()或getSuperClass()方法,得到该类的子类或超类的集合,将结果存入动态数组中,对于类的属性查询,根据用户选择的属性,调用getDomain()方法,得到该属性所关联的类,将结果存入另一动态数组中;最后将两个动态数组的交集存入结果集输出。通过getDomain(),getRange(),isDatatypeProperty(),isObject Property(),isFunctionalProperty(),islnverseFunct-ional Property(),isSymmetricProperty(),isTransitiveProperty()等方法来查询本体中满足条件的属性。
5 验证
目前在全国水文部门、防汛抗旱部门实行的实时雨水情数据库表结构和标识符存在着内容不全、版本不同等问题,不能满足实时雨水情信息在全国范围内的进一步利用、共享和交换。为了改变这一状况,国家制定了《实时雨水情数据库表结构与标识符标准》,规范了雨水情数据表结构,但是对于目前尚不规范的数据库和以往的历史数据,仍然需要进行概念上的统一。在中央级的数据中心需要获取各地区负责的水利数据,不同地区的数据对象不同,受各种历史原因的影响,数据格式、存储介质也会有不同。下面以异构的库(湖)站数据表为例,给出具体的集成实现过程。表3和表4分别是两个异构的库(湖)站部分表结构,其中表3参照了《实时雨水情数据库表结构与标识符标准》,表4存储对象类似但是不规范。
表3 某库(湖)站防洪指标表表结构
序号
字 段 名
标识符
类型及长度
1
测站编码
STCD
C(8)
4
设计洪水位
DSFLZ
N(7,3)
5
正常高水位
NORMZ
N(7,3)
8
总库容
TTCP
N(9,3)
表3 (fhzb,防洪指标表)存储在数据库stationinfor(http://26.28.58.111:3306/stationinfor,root,root,Driver.mysql.driver)中,模式信息如下:
CREATE TABLE `fhzb` (
`测站编码` varchar(8) NOT NULL,
`设计洪水位` decimal(7,3) default NULL,
`正常高水位` decimal(7,3) default NULL,
`总库容` decimal(7,3) default NULL,
PRIMARY KEY (`测站编码`)
) ENGINE=InnoDB DEFAULT COMMENT='防洪指标表';
表4 某库(湖)站信息表表结构
序号
字 段 名
标识符
类型及长度
1
测站编码
CZBM
C(8)
4
设计水位
SJSW
Float
5
正常水位
ZCSW
Float
8
库容
KR
Float
表4内容与表3相同,但是命名不同。从模式信息中提取数据字典,数据字典主要包含字段名称、类型、是否主键、数据库名称、数据库连接信息等,按照第3节的转换规则进一步完成从关系数据库数据字典向本体描述的转换。表3转换结果如下:
Class(fhzb)
DatatypeProperty(测站编码 domain(fhzb)range(xsd:String))
DatatypeProperty(设计洪水位 domain(fhzb)range(xsd:float))
DatatypeProperty(正常高水位 domain(fhzb)range(xsd:float))
DatatypeProperty(总库容 domain(fhzb)range(xsd:float))
同理:表4同样转换为OWL表示:
Class(czxx)
DatatypeProperty(测站编码 domain(czxx)range(xsd:String))
DatatypeProperty(设计水位 domain(czxx)range(xsd:float))
DatatypeProperty(正常水位 domain(czxx)range(xsd:float))
DatatypeProperty(库容
domain(czxx)range(xsd:float))
接着对本体进行编辑,表1设计洪水位和表2设计水位是同一个概念,所以设置数据类型相同属性。
同理可以完成其它相关本体的编辑比如属性包含、子类包含、用户关系的定制等,用户并可以添加相应的设置。
按照图5查询的流程图,对于查询语句:在所有库中查询设计水位大于140米的库湖测站编码。
对查询语句进行解析,本体推理会根据描述中Equivalent Property,知道设计洪水位与设计水位同义,同时查询返回它们的字段的数据类型、数据库名称以及位置信息,查询重写成:
在 stationinfor.fhzb中查询设计洪水位>140的测站编码。
在 cz.czx中查询设计水位>140的测站编码。
转换成SQL:
Select测站编码from stationinfor.fhzb where设计洪水位>140
Select测站编码from cz.czxx where设计水位>140
整个查询的流程与传统的基于中间件技术的数据库集成系统基本类似,对于各局部查询返回的结果,可以利用XML进行统一返回给用户,这在其它文献中已经有很多介绍,在此不做赘述。
6 结语
利用本体的描述和推理能力在数据字典中构建用户本体数据字典,完成异构数据向标准数据的映射,以及数据的查询定位,结合Mediated系统体系结构有效解决分布异构数据集成中的存储数据库异构、属性异名同义、父类子类以及用户查询定制等问题。本文描述了从关系数据库构建数据字典,从数据字典构建本体的规则以及查询分解转换的流程,并进行了简单的实现验证。相比传统的从关系数据库构建局部本体再构建全局本体的两层结构,简化了构建本体的过程,从用户的角度出发能够更有针对性,更高效地完成本体的生成。Jena、 protégé等工具和软件为系统的集成实现提供了很好的支持,在本体生成部分可以提供专用的可视化的标注界面,将为用户提供很大的方便,并且在数据字典所包含的元素、查询的策略等方面还有很多值得研究的问题,这是作者下一步要做的工作。
参考文献:
[1] 张磊,夏士雄,牛强.基于本体的异构数据库集成方法.计算机工程与设计,2007,7,28,14 ,3299-3310
[2] 田春虎.OWL网络本体语言综述[J].全国第四次情报检索语言发展方向研讨会,2005,290-303
[3] 杜小勇,李曼,王珊.本体学习研究综述[J].软件学报,2006,Vol.17,No.9 ,pp.837-847
[4] 韩石.《基于关系数据库的本体构建方法的研究》.硕士论文,哈尔滨工业大学,2006年6月
[5] 侯振龙.基于本体的信息集成框架及应用.硕士论文,大连海事大学,2007年2月。
[6] 许卓明,王 琦.一种从关系数据库学习OWL本体的方法.河海大学学报(自然科学版)2006(34)2:208-211
[7] 水利部水利信息中心.中华人民共和国水利行业标准[S].北京:中国水利水电出版社,2005
收稿日期:7月1日 修改日期:9月8日
本文受水利部948项目资助(
合同
劳动合同范本免费下载装修合同范本免费下载租赁合同免费下载房屋买卖合同下载劳务合同范本下载
编号:200610)
作者简介:孙春风(1984-),男,在读硕士,主要研究方向:网络环境下通用数据库访问控制方法;冯径(1962-),女,副教授,硕士生导师,研究方向:计算机网络;王占丰(1982-)男,在读硕士,主要研究方向:数据自组织方法和语义Web技术的应用与发展。