论文部分内容阅读
科学数据库及其应用系统(简称"科学数据库")是中科院"十五"信息化建设的重大项目,该文讨论的内容就是以此项目为背景的.科学数据库经过二十年的资源积累,现存的海量数据资源急待开发利用.由于历史原因,这些数据分布存储在各种数据库和文件系统中.如何充分利用这些数据资源成了科学数据库的一个重要课题.该文尝试从研究单点数据库资源出发,寻求一种对数据库元数据的统一表示方法,然后设计一个单点数据库资源的统一访问系统.首先,我们制定了一种数据库元数据标准,根据这个标准从原始数据库元数据中提取需要的内容,称为本地元数据.然后,从全局访问的角度,将本地元数据中的结构信息屏蔽掉,用全局虚拟字段来替代原物理表和物理字段,同时也消除了原表中的约束信息(如主键、外键).每个虚拟字段对应于数据库中多个表中的同名物理字段,这样,将每个数据库的元数据可看作一张只包含虚拟字段的数据表,我们称之为"全局元数据表"或Global Schema,其中,它还保留了部分映射信息.这个全局元数据表在数据资源的统一查询中有非常重要的作用.在全局元数据基础上,此系统自定义了一种全局数据库查询语言"SDG_QL",它的最终设计目标是多点数据库资源的跨库查询,但目前仅支持单点数据库的查询,还有待进一步扩充和改进.为了封装底层数据库的异构性,我们采用了网格中间件技术,利用网格服务对单个的数据库资源进行封装,对外提供统一的访问服务.这样,用户可以通过网格服务查询全局元数据信息,编写SDG_QL查询语句,提交给查询服务,由查询服务获得数据结果返回给用户.网格服务通过全局元数据和本地元数据的映射关系,将SDG_QL语句翻译成标准的SQL语句提交给数据库执行,最后将结果以XML格式返回给用户.作者在此系统中的主要工作是定义了一种本地元数据Schema,并根据同名匹配的算法将其转换为全局元数据,最后用网格服务的方式封装了获取数据库全局元数据的功能.这些构成了统一访问的重要基础功能模块.此系统的名称叫"Cactus",目前完成了初步的原型设计,并实现了大部分的功能,基本验证了设计思想的正确性,为今后研究分布式异构数据库的多点跨库查询打下了坚实的基础.