APP下载

基于Trip数据库的档案管理系统的设计与实现

2012-12-27程传鹏

中原工学院学报 2012年1期
关键词:关系数据库字段控件

程传鹏

(中原工学院,郑州450007)

基于Trip数据库的档案管理系统的设计与实现

程传鹏

(中原工学院,郑州450007)

结合Trip数据库在处理非规范性文档方面的优势,设计出了一种基于Trip数据库的档案入库系统,实现了纸质档案的电子存储,为电子文档内容的直接检索做好了前期工作.实验结果表明,本系统提高了数据存储空间的利用率.

非规范性数据;档案管理;Trip数据库;文本提取

随着计算机无纸办公技术应用的普及,各种格式的电子文件资料大量涌现,不仅有文字资料,还有声音、图像、动画、视频等等[1].这些文档结构无定、类型各异、规格不一、长度参差,不能直接转化成关系数据库的字段信息,因而不能被传统的关系型数据库管理系统有效地处理,大大降低了这些数据的使用价值.据统计,诸如此类的非规范性数据信息占了互联网上数据的80%.传统的关系型数据库由于自身的局限性,已经远远不能满足今天非规范性数据快速增长的需要.为了解决关系数据库在非规范性数据处理上的不足,1985年瑞典Paralog公司在皇家工学院的图书情报检索专用软件3RIP基础上,开发出了专为处理非规范性数据的软件系统Trip系统[1].本文分析了Trip数据库在处理非规范性电子文档上的优势,并在此基础上,利用Trip数据库设计出了一种电子文档管理系统.

1 Trip在处理非规范性数据方面的优势

目前的档案管理系统大都是基于关系数据库的,但关系型数据库是二维平面结构,表的一行表示一个记录,表的一列代表记录中的一个字段,一个字段只允许放一个实体.Trip是多维结构的数据库系统,记录由字段组成,每一个字段容许存放任意多个实体.子字段自动带有编号,彼此相互独立.Trip记录的字段长度不限,设计数据库字段时不需预定其大小.关系型数据库的字段长度在设计数据库时必须设定,装库时如果数据内容不够量,它就不会“省”出没用完的空间,而数据多于设定值时,超过部分又没法存进去.Trip是多维结构的数据库,比较适合于大量不定长数据的存储.Trip数据库是面向大数据对象设计开发的,数据库文件只由3个文件组成,分别是数据文件baf、检索词文件bif和词根文件vif,因此数据库的存储、复制、查询、维护都很方便.对于数据量以“百万字节”计的多媒体信息的存储而言,Trip是很好的选择.

此外,Trip可随时追加新字段.如首次设计数据库时建立了20个字段,使用一段时间后要增加5个字段,这时只需加上这5个字段即可,已有记录中的数据照常使用.而关系型数据库则做不到.Trip是管理存储各种电子文档资料的最佳解决方案,它有一种专门存储二进制数据的字段,不仅能存储多达200多种不同格式的电子文件,如 Word、PDF、PowerPoint、Excel、Access等[2],而且能自动抽取这些文件之中的文字信息,形成倒排文件,供人们进行全文内容的快速查找.在处理非规范性数据方面,尤其是当前普遍面临文、图、音、视信息等大量多媒体信息管理的情况下,Trip要比关系型数据库强很多.

2 系统分析及设计

2.1 系统目标

档案数据库管理,首先要将纸质档案转变为计算机能够存储的数字化成果,即对所有未数字化的档案进行扫描,整理其属性信息,并进行数据存储,最终为数字化档案提供安全高效的管理方法,从而取代现有的管理方式[3].档案管理系统结构如图1所示.

档案管理系统主要实现如下4个方面的功能:

(1)档案扫描.改变了传统的用扫描仪扫描档案的方法,采用系统控制高速扫描仪方式进行扫描,既保证了扫描档案的质量,又显著提高了工作效率.并且档案扫描后直接自动存人数据库内,改变了传统的人工手动入库工作量大、速度慢的缺点.

图1 档案管理系统结构图

(2)数据建库.不同时期的档案,管理方式不同,因此对其进行分开存储和管理.为维护数据的实时性,系统提供对数据库的维护与更新功能.

(3)文本信息提取.对存入数据库的二进制文件进行文本提取,提取后的文本信息同样也保存在数据库里,为后续的基于电子文档内容的信息检索做好前期工作.

(4)用户管理.通过角色和活动的权限来进行统一的管理.根据业务分工,将系统的管理权限和角色关联,即角色的权限只定义和系统模块相关联的权限,通过角色权限的管理,控制用户对系统的入库、编辑、查询、删除、打印等权限.

2.2 数据库设计

Trip的数据库由记录组成,记录又由字段组成.Trip记录中的字段可容纳7种不同类型的信息,包括Phrase、Integer、Number、Text、Date、Time、String.其中,String类型可以存放二进制信息,记录中字段的个数不限.除正文、字串数据类型外,其他类型字段下分子字段(subfield),正文类型字段下分段落(paragraph),段落之中又分句子(sentence),句子之中又分词(word).字段中子字段的数量也是没限制的.

设计数据库时,可以事先准备好一个数据库定义文本文件base-name.def,通过 Trip系统提供的import命令,在命令窗里直接生成数据库结构:

import base=base-name file=base-name.def数据库定义文件base-name.def的格式如下:

OPTIONS=5

FieldName:n PHRASE NOX COM(title),

……

其中,FieldName指的是字段名,最长16个英文字符,后用“:”;n指的是字段号,用数字表示;PHRASE指的是字段类型;NOX指的是不需要倒排,需要倒排时,为空白;COM(title)指的是字段说明,说明性文字放在圆括号内.

本系统中最重要的数据库有2个:一个是文档数据库,一个是用户数据库.

与文字数据不同,当一个电子文件存放在Trip数据库记录中时,需4个字段来描述.第一个字段定义为PHRASE字段,用来存放文件名;第二个字段定义为String字段,用来存放全部文件内容的信息;第三个字段定义为Integer字段,用来存放文件大小的数值;第四个字段定义为Text字段,用来存放从原格式文件抽取出来的文字内容.

文档数据库定义文件base-name.def的格式如下:

OPTIONS=5

FILE-NAME:1PHRASE COM(15),

FILE-EXTRACT:2STRING COM(15),FILE-SIZE:3INTEGER COM(15),

FILE-STRING:4TEXT NOX COM(15)

本系统有3类用户:系统管理员、数据管理员和普通用户.

系统管理员的用户名为system,他有最高系统权限,只有他才可创建数据管理员(FM)、用户经理(UM).系统管理员本身也是FM和UM,有建立数据库和开设新用户的权限.FM有权建造数据库,并授权给用户或用户组去访问该数据库.只有经他授权的用户(包括创建文件经理的系统管理员)才能使用他创建的数据库.UM有权建立新的用户或用户组.一个Trip系统可以有不限量的FM或UM.

用户数据库定义文件base-name.def的格式如下:

OPTIONS=5

USERNAME:1PHRASE COM(name)

RIGHT:2PHRASE COM(right),

ISGROUP:3TEXT COM(group),

BELONGGROUP:4PHRASE

CREATOR:5PHRASE

CREATETIME:6PHRASE

DESCRIPTION:7PHRASE

3 系统关键技术的实现

3.1 扫描仪的控制

首先,在Visual C++6.0中新建一个MFC AppWizard(exe)项目文件,在AppWizard第一步中选择基于对话框项,第二项中选择Active Controls复选框,其他缺省.这样建立了一个以对话框为主窗口的应用程序.然后,在Resource View中新建对话框,将该对话框的ID改为IDD-SCANNER-DIALOG,将对话框的Caption设置为scanner.

在Visual C++6.0主菜单中单击【Project】→【Add to Project】→ 【Componentsand Controls】→【Register Active Controls】命令,在对话框中将出现许多控件,在这些控件中选择Kodak图像扫描控件,再单击Insert键,即完成添加任务.此时在ClassView中可以看到新添加的CImgScan类,查看类的源文件imgscan.cpp,可深入了解该控件的属性和使用方法[4].

通过Visual C++6.0的ClassWizard,添加类型为CImgScan的成员变量m-scaner,在对话框上添加“开始扫描”按钮控件,设置该按钮控件的ID为IDC-STARTS.然后,在工程中加入如下代码:

void CScannerDIg:OnStarts()

if(!m scaner ScannerAValIabIe())

AfxMessageBox(“扫描仪打开失败”):

exit(0):

else if(m-scaner OpenScanner())

AfxMessageBox((“扫描仪打开失败”):

exit(0):

else if(m-scaner Sta rtScan())

AfxMessageBox((“扫描仪打开失败”):exit(0):

3.2 Trip数据库的连接

Trip产品族提供了一个进程内的组件Tripcom,通过调用Tripcom组件,可以完成对数据库的添加、删除、查找等一些基本操作.为了在程序中使用Tripcom组件,首先需要安装Tripclient组件,并自动完成Tripcom组件的注册.在APP程序的头文件中添加语句#import"Tripcom.dll"no-namespace,以引入Tripcom组件,并在在函数BOOL CTheApp Initlnstance()中对COM环境初始化,语句如下:Colnitialize(NULL).

为了在程序中使用Trip数据库,需要先连接数据库,步骤如下:

(1)在 APP头文件中声明ITdbSessionPtr ptr-Session;

(2)通过以下的语句来创造会话对象实例:

HRESULT hr= ptrSession.CreateInstance("Tripcom.TdbSession.1");

(3)连接数据库,语句如下:

ptrSession->Open("username","PassWord","localhost",TDB-LANG-DEFAULT,"",false,"pctdbs",300,30,0,0);

(4)通过定义的引用ITdbSessionPtr&ptrSession,返回会话变量.

3.3 二进制文件的存储

要把二进制文件上传到数据库,需要用到Copy-FromFileExtractText函数,其语法格式如下:

CopyFromFileExtractText(filename As String,asciifield As String,options As Long,filterargs As String)

其中各参数的意义如下:

filename:文件名,包括路径;

asciifield:存放所抽取文本的字段名称;

options:选项;

filterargs:标志,一般为空.

这个函数不仅能上载文件,而且能提取文档中的文本字符.程序中上载文件的代码如下:

paramFieldName.bstrVal=L"FILE-STRING";

ptrField=ptrRecord->Field(&paramFieldName);

if(ptrField)

ptrField->CopyFromFileExtractText(csFile-FullPath.AllocSysString(),"FILE-EXTRACT",TRIP-RUN-ON-SERVER,"");

3.4 文件的显示

Trip产品族提供的TripView组件是一种文档检索管理组件,它能将220多种不同格式的电子文档存放在Trip的数据库之中,同时自动抽取其中的文字内容建立倒排文件,供用户快速查看,最终显示出和原有文档完全相同的视图.

在程序中实现文档预览的步骤如下:

(1)安装TripView,同时系统自动完成ActiveX控件的注册;

(2)单击【Project】->【Add To Project】->【Components And Controls】,打开【Components And Controls Gallery】对话框,如图2所示;

(3)选择【Registered ActiveX Controls】文件夹中的【Tripviewer Control】,单击【Insert】,将TripViewer控件添加到工程中;

图2 添加TripView控件图

(4)单击工具箱上的TripView控件,将此控件添加到对话框上,然后在对话框的.h头文件中声明TripView 对象:CTRIPviewer m-TripViewer;

(5)如果要显示磁盘上的文件,则需要用到View-File方法,代码如下:

m-TripViewer.ViewFile(FileName)

其中,FileName指的是包含完整磁盘路径的文件名.

如果要显示存放在数据库字段中的文件,则用如下代码:

paramFieldName.bstrVal=L"FILE-STRING";

ptrField=ptrRecord->Field(&paramFieldName);

if(ptrField)

ptrField->View(long(m-TripViewer.mhWnd),false,"","");

UpdateData(false);

4 实 验

为了比较Trip数据库和关系数据库在处理电子文档方面的优劣,本文选择了100份纸质文档,经过扫描仪扫描后,形成PDF文件,文件大小为45.7MB.分别采用Trip数据库和目前流行的SQL Server2005关系数据库对这些PDF文件进行存储和检索.分别从二进制文件的存储、文档的预览、电子文档的信息提取等方面以及存储空间的利用率、检索时间指标进行比较,结果如表1所示.

表1 关系数据库和Trip数据库的比较

其中存储空间利用率按如下公式计算:

以不同的关键字进行100次检索,以这些检索时间的平均值作为平均检索时间,计算公式如下:

从1表可以看出,虽然二者都能存储二进制文件,但是关系数据库不能预览文档,也不能提取电子文档中的文字信息,并且关系数据库的存储效率和检索时间都要劣于Trip数据库.

5 结 语

本文针对电子文档的特点,利用Trip数据库在处理电子文档上的优势,设计出了一种基于Trip数据库的的电子文档管理系统.实验结果表明,采用Trip数据库来处理电子文档,不仅能提高存储空间的利用效率,而且检索效率也要优于传统的关系数据库.在以后的工作中,我们将利用Trip所提供的功能,来提取电子文档中的文本信息,为下一步对电子文档内容的直接检索创造条件.

[1] 陈振宇.全文数据库TRIP在知识管理系统中的应[D].北京:北京邮电大学,2005.

[2] 王伟.TIRP数据库系统的优势[J].安徽科技,2008(4):50-51.

[3] 王振兴,杨敏华,吴勰,等.档案扫描入库管理系统设计与实现[J].测绘科,2008,33(2):195-197.

[4] 游明星.VC++6.0中利用图像扫描控件控制扫描仪[J].电脑编程技巧与维护,2000(10):77-78.

The Design and Implementation of Archives Management System Based on Trip Database

CHENG Chuan-peng
(Zhongyuan Institute of Technology,Zhengzhou 450007,China)

An archives management system based on trip database is designed according to the advantage of trip database on non-normative,the paper archives is transformed into electronic document and stored in the management system.Preliminary works that context of electronic document is retrieved directly is prepared.Test results show that the system improves the efficiency of data storage space utilization.

non-normative data;archives management system;trip database;text extraction

TP391.07

A

10.3969/j.issn.1671-6906.2012.01.011

1671-6906(2012)01-0044-05

2012-02-04

程传鹏(1977-)男,河南信阳人,讲师,硕士.

猜你喜欢

关系数据库字段控件
关系数据库在高炉数据采集系统中的应用
基于.net的用户定义验证控件的应用分析
关系数据库技术在计算机网络设计中的应用
浅谈台湾原版中文图书的编目经验
关于.net控件数组的探讨
题名与责任说明附注字段用法分析
探讨关系数据库设计中范式理论的教学方法
无正题名文献著录方法评述
无正题名文献著录方法评述
基于嵌入式MINIGUI控件子类化技术的深入研究与应用