论文部分内容阅读
〔摘 要〕随着数字图书馆的深入应用,在图书馆信息管理中出现了关系型数据和文档型数据等多种数据类型,不同类型之间的数据转换和数据共享成为数字图书馆建设的关键。针对此问题,本文从几个方面对文档数据库与关系型数据库进行了比较,提出了基于Microsoft的开放数据库连接(ODBC)技术、使用Lotus脚本语言实现关系型数据与文档型数据间的相互转换的基本思路和具体解决方法。
〔关键词〕数据转换;异构数据;关系型数据;文档型数据;Lotus脚本语言
〔中图分类号〕G250.76 〔文献标识码〕A 〔文章编号〕1008-0821(2009)09-0111-03
Application of Heterogeneous Data Conversion in Digital Library ConstructionZhu Xiaoyan
(Library,Wuhan University,Wuhan 430072,China)
〔Abstract〕There are many data types such as relationship data and document data in the library information management along with the application of digital library construction.It is the key to the data conversion and data share of different data types.A comparison is made between document database and RDB.The ODBC technology was analyzed based on Microsoft.The method and examples were analyzed to solve the data conversion between relationship database and document database using lotus script language.
〔Key words〕database conversion;heterogeneous data;ODBC;relationship data;document data;LotusScript language
2006年,武汉大学推广学校仪器设备管理信息系统,利用校园网对全校设备进行管理。但学校的设备管理系统,只涉及到图书馆这个层面,只牵涉到设备在学校各院系,实验室,财务部,国有资产办公室等学校职能部门的流转,整个图书馆只有一个客户端;对设备到达图书馆后,在图书馆内部4个分馆及院系资料室是怎样分配,调拔,怎样动态的流转,并没有一个管理的端口。针对学校设备管理系统的不足,武汉大学图书馆在图书馆办公自动化平台上开发了设备管理模块,实施设备一级财产账和二级使用账分开管理的体制。学校的设备管理系统开发工具是sql server 2000关系数据库,而图书馆的设备管理系统的开发工具是Domino的文档数据库。如何将学校的设备数据导出,再直接导入图书馆设备管理系统,作为一级财产账,避免数据重复录入的工作;或者将Domino的文档数据库转换成关系数据库,利用关系数据库强大的报表统计分析和复杂的计算功能,将具有现实的意义。本文将对不同类型的数据转换作一探讨。
1 基本原理及思路
1.1 ODBC概述
ODBC是一种用来在相关或不相关的数据库管理系统(DBMS)中存取数据的,是用C语言实现的标准应用程序数据接口。通过ODBCAPI,应用程序可以存取保存在多种不同数据库管理系统中的数据,而不论每个DBMS使用了何种数据存储格式和编程接口。ODBC的结构包括4个主要部分:
(1)应用程序接口:屏蔽不同的ODBC数据库驱动器之间函数调用的差别,提供统一的SQL编程接口。
(2)驱动器管理器:为应用程序装载数据库驱动器。
(3)数据库驱动器:实现ODBC的函数调用,提供对特定数据源的SQL请求。
(4)数据源:由想要存取的数据以及与其相关的操作系统、DBMS和用于访问DBMS的网络平台组成。
1.2 Lotus Domino/Note编程语言介绍
Lotus Domino/Note主要运用两种基本开发语言(LotusScript编程语言与Notes公式语言)进行开发,并结合Lotus Domino/Note支持的Java和JavaScript编程语言。使用LotusScript编程语言书写Scripts,使用Notes的公式语言书写公式(即使用函数和命令)。LotusScript在Notes中运行能够提供如下功能:
(1)LotusScript是一种程序语言,允许开发与C或C 兼容的应用软件。
(2)LotusScript允许执行反复(循环),允许创建用户定义的数据类型,允许控制超出公式语言能力的程序流程。
(3)LotusScript经由面向对象提供访问Notes用户界面和Notes NSF文件(文档库)的程序。
类是一种在现实对象模型化的数据类型,包括代表对象的数据和操作对象属性的子程序。一个Notes应用软件由一个或更多的数据库组成,每个数据库由视图、文档、域等组成。Notes包含一套预先定义了的类,这些类对应于数据元素。图1展示了一个对Domino文档数据库操作的流程示意图。
1.3.1 结构
关系数据库是以二维表格及其关系作为数据模型,表的每个行称为一条记录,每一个列称为一个属性(或字段),所有属性名称构成的集合称为关系模式。而Domino文档数据库的基本元素就是文档。这里的文档和关系数据库中的记录相似。Notes文档的结构是由表单(form)定义的,而表单由一组各式各样的字段域组成。域用于收集数据,域的域类型定义了此域能接受的信息类型,例如:文本、数字、日期或姓名等。在文档型数据库中域的概念与关系型数据库中的字段(Field)相类似。
1.3.2 视图
在关系型数据库和文档型数据库中,均有视图的概念。在关系型数据库中,视图是指从一个或几个基本表(或视图)导出的表。视图和基本表不同,视图是一个虚表,即视图所对应的数据不实际存储在数据库中,数据库中只存储视图的定义(存在数据字典中)。在文档型数据库中,视图是文档的排序或分类列表。视图是对存储在数据库中的数据进行访问的入口。用户通过Notes预定义视图浏览文档内容。通过视图,用户可以从中看到关于文档的概要信息、文档的状态、文档的关键域,并可按某一准则对显示的信息进行分类和排序。Notes数据库通过预定义的视图查询数据,而关系型数据库通过在线查询查找数据。实质上,二者逻辑上非常相似,即视图所对应的数据均不实际存储在数据库中,数据库中只存储视图的定义。
1.3.3 条目和属性
在关系型数据库中,有属性(Attribute)的概念,即二维表中的每一列称为一个属性,给每一列起一个名称即属性名。而在文档型数据库中,就没有“属性”,文档拥有的是条目(Item),条目是指存储于文档中的任意数据部分。每一个条目代表文档中一段数据,在用户界面中,是通过表单中的域来显示文档中的条目的。二者虽命名不同,但从“属性”的角度更容易理解文档型数据库中条目的意义。
2 数据转换实例
2.1 实现关系数据向文档数据转换的实例
本文以图书馆设备管理模块为例。学校的设备管理信息系统采用SQL SERVER 2000数据库,数据具有封装性,各客户端无权对SQL SERVER 2000数据库操作,但有一个接口程序,可以将设备数据导出为EXCEL格式,存储在本地。图书馆对存在本地的EXCEL数据,进行各种预处理,再导入到图书馆设备管理模块的文档数据库中。具体操作步骤如下:
(1)调整存储在本地EXCEL设备数据各列的排序,剔除没有意义的列。本例中,在EXCEL工作簿中数据各列排序如表1(阿拉伯数字表示是第几列):
(5)选择欲引入数据的表单,本例中为“仪器设备登记卡表单”,并勾选参数Main Document(要创建答复文档则勾选Response Document);View Defined;Calculate fields on form during document import(选择“文件引入时计算表单中的域”)。
(6)点击“OK”按钮,数据自动从EXCEL工作簿导入到DOMINO文档数据库“分馆验收设备”视图。
2.2 文档数据库向关系数据库转换实例
文档数据库擅长于事务管理,而在报表分析,数据统计方面相对薄弱,而这恰是EXCEL程序优势,下面将展示将文档数据库转换为EXCEL数据的实例。本例仍以图书馆设备管理模块为例。步骤如下:
(1)在文档数据库视图里,勾选要导出为EXCEL数据的文档。
(2)编辑文档数据库视图,创建操作按钮“导出数据”,并编写后端lotus script程序代码。程序的流程如图3所示:
(3)在文档数据库视图里,单击操作按钮“导出数据”,程序响应对象事件,开启一个EXCEL工作表窗口。文档数据库中每一个已勾选的文档将变为EXCEL工作表中的一个行,每一个域将变为工作表中的一个列,原始域内容变为单元内容,列标题变为工作表中的标签。从而实现文档数据导出到EXCEL程序中,再可以导入到SQL SERVER 2000等关系型数据库中。
取值赋值,程序循环嵌套的核心代码如下:
Do While Not(doc Is Nothing)
′设定循环数为列数
For x=0 To Ubound(view.columns)
If view.columns(x).IsHidden=False Then
If view.columns(x).title<>″″Then
fieldname=view.columns(x).itemname
Set fitem=doc.getfirstitem(fieldname)
′循环取文档条目值,赋值给EXCEL单元格
xlsheet.cells(rows,cols).value=fitem.text
cols=cols 1
End If
End If
Next
rows=rows 1
cols=1
Set doc=dc.getnextdocument(doc)
Loop
3 结 语
武汉大学图书馆设备管理模块实行二级账管理体制。用户角色为1个总馆设备干事和4个分馆、4个院系资料室设备干事。
前者管理设备财产账(即设备卡上基本信息的管理),后者管理设备使用账(即设备在图书馆内部的调拔,维修,报废等二级账)。借助本文的数据转换实例,武汉大学图书馆的一级财产账与学校仪器信息管理系统保持了一致,同时图书馆内部又可以从图书馆设备管理模块导出数据,存储为EXCEL格式,以满足本地特殊的查询需求。异构数据转换为不同的信息管理平台建立了一个沟通的桥梁。
参考文献
[1]朱晓燕,黄勇凯.基于Lotus Domino/Notes的图书馆设备管理系统的设计与实现[J].现代图书情报技术,2007,(4):83-86.
[2]王秀英,李平,赵丽华.实现关系型与文档型数据间的转换[J].计算机工程与设计,2005,(11):2955-2957.
[3]郑翔.LotusScript与Formula应用手册[M].北京:机械工业出版社,2001:409-437.
[4]查尔斯
〔关键词〕数据转换;异构数据;关系型数据;文档型数据;Lotus脚本语言
〔中图分类号〕G250.76 〔文献标识码〕A 〔文章编号〕1008-0821(2009)09-0111-03
Application of Heterogeneous Data Conversion in Digital Library ConstructionZhu Xiaoyan
(Library,Wuhan University,Wuhan 430072,China)
〔Abstract〕There are many data types such as relationship data and document data in the library information management along with the application of digital library construction.It is the key to the data conversion and data share of different data types.A comparison is made between document database and RDB.The ODBC technology was analyzed based on Microsoft.The method and examples were analyzed to solve the data conversion between relationship database and document database using lotus script language.
〔Key words〕database conversion;heterogeneous data;ODBC;relationship data;document data;LotusScript language
2006年,武汉大学推广学校仪器设备管理信息系统,利用校园网对全校设备进行管理。但学校的设备管理系统,只涉及到图书馆这个层面,只牵涉到设备在学校各院系,实验室,财务部,国有资产办公室等学校职能部门的流转,整个图书馆只有一个客户端;对设备到达图书馆后,在图书馆内部4个分馆及院系资料室是怎样分配,调拔,怎样动态的流转,并没有一个管理的端口。针对学校设备管理系统的不足,武汉大学图书馆在图书馆办公自动化平台上开发了设备管理模块,实施设备一级财产账和二级使用账分开管理的体制。学校的设备管理系统开发工具是sql server 2000关系数据库,而图书馆的设备管理系统的开发工具是Domino的文档数据库。如何将学校的设备数据导出,再直接导入图书馆设备管理系统,作为一级财产账,避免数据重复录入的工作;或者将Domino的文档数据库转换成关系数据库,利用关系数据库强大的报表统计分析和复杂的计算功能,将具有现实的意义。本文将对不同类型的数据转换作一探讨。
1 基本原理及思路
1.1 ODBC概述
ODBC是一种用来在相关或不相关的数据库管理系统(DBMS)中存取数据的,是用C语言实现的标准应用程序数据接口。通过ODBCAPI,应用程序可以存取保存在多种不同数据库管理系统中的数据,而不论每个DBMS使用了何种数据存储格式和编程接口。ODBC的结构包括4个主要部分:
(1)应用程序接口:屏蔽不同的ODBC数据库驱动器之间函数调用的差别,提供统一的SQL编程接口。
(2)驱动器管理器:为应用程序装载数据库驱动器。
(3)数据库驱动器:实现ODBC的函数调用,提供对特定数据源的SQL请求。
(4)数据源:由想要存取的数据以及与其相关的操作系统、DBMS和用于访问DBMS的网络平台组成。
1.2 Lotus Domino/Note编程语言介绍
Lotus Domino/Note主要运用两种基本开发语言(LotusScript编程语言与Notes公式语言)进行开发,并结合Lotus Domino/Note支持的Java和JavaScript编程语言。使用LotusScript编程语言书写Scripts,使用Notes的公式语言书写公式(即使用函数和命令)。LotusScript在Notes中运行能够提供如下功能:
(1)LotusScript是一种程序语言,允许开发与C或C 兼容的应用软件。
(2)LotusScript允许执行反复(循环),允许创建用户定义的数据类型,允许控制超出公式语言能力的程序流程。
(3)LotusScript经由面向对象提供访问Notes用户界面和Notes NSF文件(文档库)的程序。
类是一种在现实对象模型化的数据类型,包括代表对象的数据和操作对象属性的子程序。一个Notes应用软件由一个或更多的数据库组成,每个数据库由视图、文档、域等组成。Notes包含一套预先定义了的类,这些类对应于数据元素。图1展示了一个对Domino文档数据库操作的流程示意图。
1.3.1 结构
关系数据库是以二维表格及其关系作为数据模型,表的每个行称为一条记录,每一个列称为一个属性(或字段),所有属性名称构成的集合称为关系模式。而Domino文档数据库的基本元素就是文档。这里的文档和关系数据库中的记录相似。Notes文档的结构是由表单(form)定义的,而表单由一组各式各样的字段域组成。域用于收集数据,域的域类型定义了此域能接受的信息类型,例如:文本、数字、日期或姓名等。在文档型数据库中域的概念与关系型数据库中的字段(Field)相类似。
1.3.2 视图
在关系型数据库和文档型数据库中,均有视图的概念。在关系型数据库中,视图是指从一个或几个基本表(或视图)导出的表。视图和基本表不同,视图是一个虚表,即视图所对应的数据不实际存储在数据库中,数据库中只存储视图的定义(存在数据字典中)。在文档型数据库中,视图是文档的排序或分类列表。视图是对存储在数据库中的数据进行访问的入口。用户通过Notes预定义视图浏览文档内容。通过视图,用户可以从中看到关于文档的概要信息、文档的状态、文档的关键域,并可按某一准则对显示的信息进行分类和排序。Notes数据库通过预定义的视图查询数据,而关系型数据库通过在线查询查找数据。实质上,二者逻辑上非常相似,即视图所对应的数据均不实际存储在数据库中,数据库中只存储视图的定义。
1.3.3 条目和属性
在关系型数据库中,有属性(Attribute)的概念,即二维表中的每一列称为一个属性,给每一列起一个名称即属性名。而在文档型数据库中,就没有“属性”,文档拥有的是条目(Item),条目是指存储于文档中的任意数据部分。每一个条目代表文档中一段数据,在用户界面中,是通过表单中的域来显示文档中的条目的。二者虽命名不同,但从“属性”的角度更容易理解文档型数据库中条目的意义。
2 数据转换实例
2.1 实现关系数据向文档数据转换的实例
本文以图书馆设备管理模块为例。学校的设备管理信息系统采用SQL SERVER 2000数据库,数据具有封装性,各客户端无权对SQL SERVER 2000数据库操作,但有一个接口程序,可以将设备数据导出为EXCEL格式,存储在本地。图书馆对存在本地的EXCEL数据,进行各种预处理,再导入到图书馆设备管理模块的文档数据库中。具体操作步骤如下:
(1)调整存储在本地EXCEL设备数据各列的排序,剔除没有意义的列。本例中,在EXCEL工作簿中数据各列排序如表1(阿拉伯数字表示是第几列):
(5)选择欲引入数据的表单,本例中为“仪器设备登记卡表单”,并勾选参数Main Document(要创建答复文档则勾选Response Document);View Defined;Calculate fields on form during document import(选择“文件引入时计算表单中的域”)。
(6)点击“OK”按钮,数据自动从EXCEL工作簿导入到DOMINO文档数据库“分馆验收设备”视图。
2.2 文档数据库向关系数据库转换实例
文档数据库擅长于事务管理,而在报表分析,数据统计方面相对薄弱,而这恰是EXCEL程序优势,下面将展示将文档数据库转换为EXCEL数据的实例。本例仍以图书馆设备管理模块为例。步骤如下:
(1)在文档数据库视图里,勾选要导出为EXCEL数据的文档。
(2)编辑文档数据库视图,创建操作按钮“导出数据”,并编写后端lotus script程序代码。程序的流程如图3所示:
(3)在文档数据库视图里,单击操作按钮“导出数据”,程序响应对象事件,开启一个EXCEL工作表窗口。文档数据库中每一个已勾选的文档将变为EXCEL工作表中的一个行,每一个域将变为工作表中的一个列,原始域内容变为单元内容,列标题变为工作表中的标签。从而实现文档数据导出到EXCEL程序中,再可以导入到SQL SERVER 2000等关系型数据库中。
取值赋值,程序循环嵌套的核心代码如下:
Do While Not(doc Is Nothing)
′设定循环数为列数
For x=0 To Ubound(view.columns)
If view.columns(x).IsHidden=False Then
If view.columns(x).title<>″″Then
fieldname=view.columns(x).itemname
Set fitem=doc.getfirstitem(fieldname)
′循环取文档条目值,赋值给EXCEL单元格
xlsheet.cells(rows,cols).value=fitem.text
cols=cols 1
End If
End If
Next
rows=rows 1
cols=1
Set doc=dc.getnextdocument(doc)
Loop
3 结 语
武汉大学图书馆设备管理模块实行二级账管理体制。用户角色为1个总馆设备干事和4个分馆、4个院系资料室设备干事。
前者管理设备财产账(即设备卡上基本信息的管理),后者管理设备使用账(即设备在图书馆内部的调拔,维修,报废等二级账)。借助本文的数据转换实例,武汉大学图书馆的一级财产账与学校仪器信息管理系统保持了一致,同时图书馆内部又可以从图书馆设备管理模块导出数据,存储为EXCEL格式,以满足本地特殊的查询需求。异构数据转换为不同的信息管理平台建立了一个沟通的桥梁。
参考文献
[1]朱晓燕,黄勇凯.基于Lotus Domino/Notes的图书馆设备管理系统的设计与实现[J].现代图书情报技术,2007,(4):83-86.
[2]王秀英,李平,赵丽华.实现关系型与文档型数据间的转换[J].计算机工程与设计,2005,(11):2955-2957.
[3]郑翔.LotusScript与Formula应用手册[M].北京:机械工业出版社,2001:409-437.
[4]查尔斯