Notes数据库与关系型数据库之间的整合在办公自动化系统中的应用

时间:2022-03-25 12:30:57

Notes数据库与关系型数据库之间的整合在办公自动化系统中的应用

摘要:本文在基于Lotus Domino/Notes平台开发的办公自动化系统基础之上,介绍了非结构化数据的特点及非结构化数据库在办公自动化系统中的作用,对非结构化数据库与传统关系型数据库的存储机制和访问机制进行了详细的分析探讨,提出了Notes数据库与关系型数据库整合的技术方式,其目的是实现企业信息系统中Notes数据库与关系型数据库信息交互,以利用Notes平台提供的良好性能共享信息数据。

关键词:办公自动化系统;非结构化数据;Notes数据库;关系型数据库

中图分类号:TP311.13 文献标识码:A文章编号:1007-9599 (2011) 12-0000-02

The Integration Between Notes Database and Relational Database Applications in Office Automation System

Li Ning

(Optical Information Control and Security Technology Key Laboratory,Beijing101601,China)

Abstract:In this paper,based on Lotus Domino/Notes platform based office automation systems,introduces the characteristics of unstructured data and unstructured database,office automation systems in the role of the unstructured database with traditional relational database storage mechanism and access mechanisms for a detailed analysis of proposed Notes databases and relational database technology integration approach,which aims to achieve enterprise information system in Notes databases and relational database information exchange in order to provide a good platform to use Notes performance information data.

Keywords:Office automation system;Unstructured data;Notes database;Relational database

一、办公自动化系统与非结构化数据

数据库设计是建立数据库及信息系统的核心和基础,建立数据库应用系统使之能够有效地存储数据,是整个系统实现的一个重要环节。办公自动化系统简称OAS(Office Automation System)与一般信息系统比较,它的特殊性表现在所处理的信息载体大多是以文件、报表、信函、传真等形式出现,所处理的数据类型称为非结构化数据,主要包括网页、表格、图形、格式化文本、OLE对象、声音以及图像等信息,非结构化数据是一种文档型的数据,传统的面向结构化数据库无法完整地处理文档型数据,OAS建立数据库时必须以文档型数据为核心,同时选择性地结合关系型数据库。

传统关系型数据库系统(如SQL Server、Oracle等)适合结构化信息的应用和存储,但是对非结构化数据的处理越来越显现出不足的一面。因此,网络技术的发展促使数据库领域引入新的概念“非结构化数据库”,其目标就是针对WWW应用新的需求,高效率地表达和存储管理文档型数据。

非结构化数据库针对非结构化数据应运而生,它是OAS数据管理的有效手段,与关系型数据库相比,其区别在于它突破了关系型数据库结构定义不易改变和数据定长的限制,支持重复字段、子字段以及变长字段,并实现了对变长数据和重复字段进行处理和数据项的变长存储管理,在处理连续信息和非结构信息中有着传统关系型数据库所无法比拟的优势。

Lotus Domino/Notes是当今OAS的主流开发平台之一,采用了先进的单一架构的文档数据库技术―Notes数据库,Notes数据库在处理非结构化数据时,可谓是得心应手。考虑到许多单位内部大都拥有自己的信息系统,所处理的结构化的数据都以关系型数据库的形式存储。在开发OAS过程中必然要存在非结构化数据库和关系型数据库的交互问题,那么如何使OAS共享已有信息系统的信息,避免重复工作成为一个急待解决的首要问题。

二、Notes数据库与关系型数据库

在OAS数据库设计中,不仅要解决共享数据的问题,实际上文档型数据库和关系型数据库各有各的利弊。文档型数据库处理非结构化数据,而对于各种运算操作则有些力不从心,即使能够完成,实现的难度也很复杂无法与关系型数据库的实现方法相比较。下表针对Notes数据库与关系型数据库在存储机制和访问机制等方面进行了比较说明。

表:Notes数据库与关系型数据库

数据库应用系统 关系型数据库 Notes数据库

(文档型数据库)

模型 基于事务处理模型 基于文档处理模型

数据类型 结构化数据 非结构化数据

存储机制 元数据 表 表单

索引 视图

记录 列 域

字段 行 文档

访问机制 使用ODBC标准的SQL语句访问数据 使用全文检索访问数据,复制方式增加、删除文档

定位数据 Queries方式定位数据 视图方式定位数据

系统的维护

应用程序存储在客户端,不方便维护 应用程序存储在Notes服务器,方便维护

综合考虑Notes数据库与关系型数据库各自优缺点,在OAS数据库建设中,涉及到关系型数据库操作运算问题时,采用关系型数据库技术进行处理,处理完结之后,通过ODBC接口技术实现文档型数据库与关系型数据库的交互。

三、实现Notes数据库与关系型数据库的整合方式

Notes数据库支持ODBC标准存取不同类型数据库信息。通过开发平台内嵌的Notes公式语言和Lotus Script语言,可以在Notes数据库中引入结构化信息,将已存在的结构化数据转换成Notes数据库。

(一)使用函数访问外部数据库

Notes公式语言包含一整套的语法规则,提供丰富的命令和函数,可以对常量和变量进行计算和简单的逻辑控制。Notes提供了三个@DB函数:@DBColumn、@DBLookup、@DBCommand,通过底部的ODBC接口来访问外部数据库。

@DBColumn函数从活动数据库或其他Notes数据库的视图或文件夹中查找并返回一个完整的值列。实现方式如下:

@DbColumn(“ODBC”:”NoCache”;data_source;user_ID1:user_ID2;pass_word1;password2;table;col

umn:null_handling;”Distinct”:sort)

@DBLookup函数给定一个关键字值,在指定的视图(或文件夹)中,找出视图的第一个排序列中包含此关键字值的所有文档。对每个选中的文档,或者返回视图里指定列的内容,或者返回一个指定域的内容。实现方式如下:

@DbLookup(“ODBC”:”NoCache”;”data_source”;”user_ID1”:”user_ID2”;”password1”;”password2”;”table”;”column”:”null_handling”;”key_column”:”key”;”Distinct”:sort)

@DBCommand函数传递一个命令到外部DBMS并返回结果。实现方式如下:

@DbCommand(“ODBC”:”NoCache”;data_source;user_ID1:user_ID2;pas_sword1;password2;comm

and_string:null_handling)

(二)使用Lotus Script访问外部数据库

Lotus Script是面向对象的程序设计语言,具有丰富的类,类方法和类属性,包含有集成的对象浏览器和程序开发环境。Notes的ODBC Connection、ODBC Query、ODBC Result Set三个类为Notes提供了用ODBC标准存取外部数据库的属性和操作。

具体实现过程如下:

1.首先建立ODBC数据源。利用Windwos的管理工具注册数据源操作步骤如下

(1)选择->开始->所有程序->打开Windows控制面板;

(2)选择管理工具;

(3)双击数据源ODBC图标;

(4)按下“添加”按钮;

(5)选择需要的驱动程序,按下“确定”按钮;

(6)输入数据源名称及说明信息,并按下“确定”按钮;

(7)在Domino服务器上添加Data数据源,该数据源访问的管理信息系统所在服务器SQL Server。

2.创建。创建一个Agent,选择Lotus Script编写。首先引入扩展类:

将语句Uselsx“*LSXODBC”放置在Global对象的Options事件中或访问ODBC类的中,其功能是通过加载ODBC LSX使ODBC类在编程环境中有效。

3.编写Lotus Script语句。

DimtestAsNewNotesUIWorkspace’定义当前的notes工作台

DimdataAsNotesUIDocument’定义在当前notes工作台打开的文档

DimdocAsNotesDocument’定义notes数据库中的一个文档

Setdoc = Test.CurrentDocument’设置doc为被调用文档

Setdata = doc.Document ’设置在当前notes工作台打开的文档为doc文档

Dim connectionAsNewODBCConnection ’定义ODBC链接对象

Dim queryAsNewODBCQuery’定义ODBC查询对象

Dim resultAsNewODBCResultSet ’定义ODBC结果处理对象

Setquery .Connection= connection ’挂靠ODBC查询对象和相应链接对象

Set result.Query= query’挂靠ODBC查询对象和相应结果处理对象

Con.ConnectTo(“data”)’数据源名称为data

Qry.SQL=“Select * from Maintenance where月份=…+doc.fieldgettext(“CHXGX”)”

’ODBC查询对象的SQL查询语句定义

result.Execute ’SQL语句执行

IfNotresult.Is Resultset AvailableThenMessagebox“该月份无更新信息!”

Exit Sub

End if

rows=result.MaxRows ’返回结果记录数

result.FirstROW’定位第一条记录

DO

maintancename=result.GetValue(“信息名称”) ’获得字段值

……

doc.which=maintancename

……

result.NextRow’继续下一条记录

LoopUntil result.IsEndOfData ’直到查询最后一条记录

Result.Close(DB-CLOSE)’关闭结果集

Con.Disconnect’断开数据库链接

采用上述技术方式可实现Notes数据库与关系型数据库的无缝集成,这两个系统能完好的单独实现和运行,不仅能发挥两者各自的长处,而且还能实现两者之间的数据交换和数据共享,成为一体化系统。

四、总结

实现异构数据库的交互技术和方法有很多,而且这一技术发展也相当快,本文仅从一个侧面加以讨论,希望通过这一探讨让我们对异构数据库的整合技术有一个更清楚的认识,同时也为企业内部信息系统之间达到互通信息,共享数据资源的目的提供参考。

参考文献:

[1]武坤主.Lotus Domino/Notes R5应用教程[M].北京机械工业出版社,2000

[2]萨师煊,王珊.数据库系统概论[M].高等教育出版社,1991

[3]陈江东.办公自动化系统的系统分析[J].计算机系统应用,2006

[4]邓良松.软件工程[M].西安电子科技大学出版社,2004

上一篇:谈谈公路的养护管理问题 下一篇:CAD数据与MAPGIS数据格式共享研究