导语:如何才能写好一篇数据库系统,这就需要搜集整理更多的资料和文献,欢迎阅读由公务员之家整理的十篇范文,供你借鉴。
专栏作家:陈明,男,中国石油大学教授,博士生导师,特聘教授,研究方向为分布式并行计算、计算智能、软件工程、大数据计算等,。
关键词:大数据;NoSQL;非结构化
半结构化和非结构化是大数据的重要特征之一,如何将数据组织成合理的结构是大数据管理中的一个重要问题,也是一项重大技术挑战。
1、NosQL的产生
出现于1998年的NoSQL是CarloStrozzi开发的一个轻量、开源、不提供SQL功能的关系数据库。在2009年,JohanOskarsson发起了一次关于分布式开源数据库的讨论,来自Rackspace(全球三大云计算中心之一)的EricEvans再次提出了NoSQL的概念,这时的NoSQL主要指非关系型、分布式、不提供ACID的数据库设计模式。2009年在亚特兰大举行的no:sql(east)讨论会是一个里程碑,会上对NoSQL最普遍的解释是非关系型的,强调键—值对存储和文档数据库的优点,而不是单纯的关系型数据库。
NoSQL是NotOnlySQL的简写,其含义是“不仅是结构化查询”,是不同于传统的关系型数据库的数据库管理系统的统称。NoSQL与SQL的最显著的区别是NoSQL不使用SQL作为查询语言,其数据存储不需要固定的表格模式,也避免使用SQL的JOIN操作,具有水平可扩展性。NoSQL的实现具有两个特征,使用硬盘或者尽可能把随机存储器当作存储载体。
NoSQL是水平可扩展的数据库。水平扩展性指能够连接多个软硬件的特性,这样可以将多个服务器从逻辑上看成一个实体。NoSQL主要用于大规模的非关系型数据存储,具有模式自由、支持简易复制、简单的API、最终的一致性一(非ACID)、大容量数据等特性。除键-值对存储方式外,NoSQL还有文档存储方式、列存储方式、图形存储方式、XML存储方式等。
2、NoSQL特点与潜力
CAP、BASE和最终一致性是NoSQL数据库存在的3大基石。NoSQL存储满足了数据存储的横向伸缩性的需求。一些开源的NoSQL体系,如Facebook的Cassandra、Apache的HBase等都得到了广泛认同。
2.1特点
(1)运行在PC服务器集群上。PC集群非常方便并且成本很低,避免了传统商业数据库共享操作的复杂性和高昂成本。
(3)没有过多的需求。虽然关系型数据库提供了无可比拟的功能集合,而且在数据完整性上也绝对稳定,但是企业的具体需求可能没有那么复杂。
(4)支持者源于社区。因为NoSQL项目都是开源的,因此它们缺乏供应商提供的正式支持。与大多数开源项目一样,NoSQL项目不得不从社区中寻求支持。
(5)弹性扩展。NoSQL数据库从设计之初就是为了利用新节点的优势进行透明扩展,通常在设计时就考虑使用低成本的廉价硬件。多年来,当数据库的负载增加时,技术上多采用“纵向扩展”(安置更大型的服务器来承载增加的负载)而不是“横向扩展”(在多台主机上分配增加的负载);但随着交易率和可用性需求的增加,数据库也正在迁移到云端或虚拟化环境中,横向扩展更为明显。
(6)大数据量。为了满足数据量增长的需要,关系数据库的容量日益增加,单一数据库需要管理的数据约束的数量也变得越来越大。通过NoSQL,系统能够处理的数据量远超出了最大型的关系数据库所能处理数据的极限,如Hadoop开源软件处理的数据规模。
(7)灵活的数据模型。键-值对存储与文档存储的NoSQL数据库允许应用任何结构,即使是定义更加严格的BigTableNoSQL数据库通常也允许创建新的字段。
2.2NoSQL的潜力
NoSQL数据库除了具有灵活的可扩展性和支持大数据量存储外,与关系数据库相比具有如下潜力。
(1)降低管理的要求。虽然关系数据库在可管理性方面作出了很多改进;但是高端的关系数据库系统维护费用仍然十分昂贵,而且还需要DBA参与高端的关系数据库系统的设计、安装和调优。NoSQL数据库从一开始就是为了降低管理方面的要求而设计的,从理论上来说,自动修复、数据分配和简单的数据模型的确可以降低管理和调优方面的要求。
(2)经济效率高。NoSQL数据库通常使用廉价的服务器集群来管理数据和事务数量,而关系数据库通常需要依靠昂贵的专用服务器和存储系统来完成这项工作。使用NoSQL可使每GB的成本或每秒处理事务的成本都比使用关系数据库少很多倍,即以花费更低的成本存储和处理更多的数据。
(3)灵活的数据模型。对于大型的RDBMS来说,变更管理是一件很困难的事情。即使只对一个RDBMS的数据模型作很小的改动,也许还需要停机或降低服务水平。NoSQL数据库在数据模型约束方面更为宽松,其中的键—值对数据库和文档数据库可以让应用程序在一个数据元素中存储任何结构的数据。
3、NoSQL的主要类型
基于存储方式的不同,可将NoSQL数据库分为文档式存储、列式存储、键-值式存储、对象式存储、图形式存储和XML存储的NoSQL数据库。表l所示的内容就是各种典型的NoSQL数据库产品,它们之间也有交叉,如TokyoCabinet/Tyrant的Table既可以划为键-值式存储类型,又可以理解为文档型存储类型。
NoSQL数据库也可以按使用的不同语言类型进行分类,有的NoSQL数据库用C/C++编写,有的用Java编写,还有的用Erlang编写,每种NoSQL数据库都有独到之处,用户可以根据需要选择使用。
3.1文档式存储NoSQL
文档存储式NoSQL数据库又简称文档数据库,其存储的内容为文档型数据,主要解决的问题不是集中于高并发读写操作,而是保证海量数据存储,同时具有良好的查询性能。存储式NoSQL数据库主要面向集合存储:
(1)文档相当于关系数据库中的一条记录;
(2)多个文档组成一个集合,集合相当于关系数据库的表;
(3)多个集合逻辑上组织在一起就是数据库。
例如,文档数据库(MongoDB)中的一个文档为:
3.2键-值存储式NoSQL
键-值存储式NoSQL数据库是最常用的NoSQL数据库,它的数据以键-值的形式存储,虽然它的处理速度非常快,但基本上只能通过键的完全一致查询来获得数据。基于数据保存方式可分为临时式、永久式和混合式3种。临时式方式主要特点是:在内存中保存数据,数据有可能丢失,可以快速保存和读取。永久式方式的主要特点是:在硬盘上保存数据,数据不会丢失,可以快速保存和读取,但速度比临时式慢。混合式集中了前两种方式的优点,先将数据保存在内存中,在满足特定条件后将数据写入硬盘,主要特点是:同时在内存和硬盘上保存数据,可以快速保存和读取数据,保存在硬盘上的数据不会丢失,适于处理数组类型的数据。键-值存储式NoSQL数据库按照键-值对的形式进行组织、索引和存储数据。键-值对存储非常适合不涉及过多数据关系和业务关系的数据,能有效减少读写磁盘的次数,比SQL数据库存储拥有更好的读写性能,因为它不考虑值的存储格式,直接用键值快速查询到所需值。键-值存储式NoSQL数据库的主要特点是具有极高的并发读写性能,如BigTable是Google设计的分布式数据存储系统,是用来处理海量数据的一种非关系型数据库。
3.3列式存储NoSQL
列式存储NoSQL可以实现按列存储数据,最大的特点是方便存储结构化和半结构化数据,方便数据压缩,对于某一列或某几列的查询有非常大的I/O优势。
在列式存储中,列簇(ColumnFamily)、超列(SuperColumn)和列(Column)是重要的概念。列簇和超列在数据库中不占空间,也就是说如果它们没有值,它们只占用0个字节,列簇与传统数据库中的表类似,但和表又不一样,在列簇中的唯一定义是名称和键排序选项。
(2)超列:超列是一个字典,它是一个包含其他列的列,但不能包含另一个超列。
(3)列簇:—个列簇中的所有数据都将保存在相同的文件中,—个列簇可以容纳多个超列或列。
3.4对象式存储NoSQL
对象式存储NoSQL可以通过类似面向对象语言的语法操作数据库,通过对象的方式存取数据。
3.5图形式存储NoSQL
图形式存储NoSQL是图形关系的最佳存储方式,如果使用传统的关系数据库来解决则带来性能低的问题,而且设计也不方便。如AllegroGraph、DEX、Ne04J、FlockDB等数据库都是NoSQL数据库。
3.6XML式存储NoSQL
XIVIL存储方式的NoSQL能够高效存储XML数据,并支持XML内部查询语法。
4、NoSQL系列发展现状
计算机体系结构在数据存储方面要求应用架构具备庞大的水平扩展性,这是分布式系统的一个重要标志。分布式系统设计遵循CAP定理,在一致性、可用性和分区容错性3个核心需求不可全得,关系数据库主要满足一致性和可用性两个核心需求,。特别是要求强一致性,主要是通过数据库锁或JTA/JDBC事务实现,对于这种苛刻的一致性要求,很难实现分区容错性;而NoSQL数据库主要满足可用性和分区容错性两个核心需求,在一致性方面采用了最终一致性,这是一种弱一致性。下面列举几种NoSQL数据库。
4.1Cassandra
Cassandra是一个云计算方面理想的数据库。它集成了Solr等流行工具,现已成为一个完全成熟的大型数据存储工具。Cassandra是一个混合型非关系型数据库,类似于Google的BigTable。Cassandra是由多个数据库节点共同构成的一个分布式网络服务系统。对Cassandra的一个写操作将被复制到其他节点上去,而对Cassandra的读操作也将被路由到某个节点上面去读取。
4.2Lucene/Solr
Lucene/Solr是一个开放源代码的全文检索引擎工具包。它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,采用了与其他NoSQL数据存储相似的模型。如果查询并不是仅仅局限于精确匹配,而是寻找出那些出现在块中的字或者字段,那么Lucene/Sok是最好的查询手段。
4.3Riak
Riak是由技术公司Basho开发的一个类似Dynamo的分布式键一值对系统;具有分布式、水平扩展性、高容错性等特点。在Riak中,Map/Reduce函数只能使用JavaScript或者Erlang来编写。该系统还为类似于Solr的搜索提供全文索引,同时还提供一个控制面板,可以查看集群信息。
4.4GOUChDB
CouchDB是用Erlang开发的面向文档的数据库系统,其数据存储方式类似Lucene的index文件格式。CouchDB是一个面向Web应用的新一代存储系统。作为一个分布式的数据库,CouchDB可以把存储系统分布到多台物理节点上,并且很好地协调和同步节点之间的数据读写一致性。CouchDB支持RESTAPI,可以让用户。使用JavaScript来操作CouchDB数据库。
4.5Neo4J
Ne04J存储的是对象之间的关系,或者说这种结构就是数学中的图。Ne04J是一个面向网络的数据库,即它是一个嵌入式的、基于磁盘的、具备完全的事务特性的Java持久化引擎,但是它将结构化数据存储在网络上,而不是存储在表中,当然也可以把Ne04J看作是一个高性能的图引擎,该引擎具有健壮的数据库的所有特性。Ne04J包括很多有关搜索和分析的关系算法,利用这些图的遍历算法,可以减少指针查询的开销。
4.6HBase
HBase(HadoopDatabase)数据库是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,可在廉价PCServer上构建大规模结构化存储集群。HBase是开源软件,与GoogleBigTa。ble类似,BigTable利用GFS作为其文件存储系统,而HBase利用I-IDFS作为其文件存储系统;Google运行MapReduce来处理BigTable中的海量数据,HBase同样利用HadoopMapReduce来处理HBase中的海量数据。
4.7BigTable/Accumulo/Hypertable
BigTable是非关系型数据库,是一个稀疏的、分布式的、持久化存储的多维度排序映射。BigTable能可靠处理PB级的数据,并且能够部署到上千台机器上。BigTable具有适用性广泛、可扩展、高J陛能和高可用性。
4.8BynamoDB
一、前言
地方文献是我国公共图书馆藏书建设的重要组成部分。这些出版物记载和反映了当地社会发展的历史进程,是国家的重要资源和财富。目前,地方文献工作在我国省市、自治区公共图书馆已受到普遍重视,许多馆建立了地方文献专藏,对文献的收集、整理、报道和利用做了大量工作,为当地的四化建设发挥了积极的作用。但是,我国的地方文献工作基本上还是沿用传统的理论和方法,在各方面已远不能适应当今信息社会的要求。在今天新技术革命浪潮蓬勃兴起的形势下,公共图书馆的地方文献工作怎样才能适应时代的需要这一重要课题,已历史地摆在我们图书馆工作者的面前。我们认为,面对新技术革命的挑战,地方文献工作必须实现现代化,才能使传统的地方文献工作获得新的发展,从而达到促进地区出版物资源共享的目的。基于这种认识,我馆在原有地方文献工作的基础上,开始用电脑建立地方文献数据库。经过一年多的研制,该数据库已初步建成并投入使用。为与国内同行交流,本文对该数据库系统作简要介绍。
二、收录范围与文献源
建立地方文献数据库,首先要明确收录范围和解决文献源问题。对地方文献的收录范围,我馆前馆长杜定友先生曾提出过著名的“史料、地方出版物和地方人士著述”三部分的论述。在杜定友先生的倡导下,我馆致力于地方文献的收集工作,建立了广东地方文献专藏。根据我馆地方文献的收集入藏情况,我们拟定了地方文献数据库收录范围的原则:
1.具有广东地方特点,并有一定学术、史料价值的文献资料(包括有地方特点的科技文献)。
2.反映本省人物(包括广东籍知名人士以及在广东有过影响的非广东籍人士)生平、传记、事迹的文献资料。
3.有广东地方特点的本省出版物和外省出版物。
4.广东人士著述(拥有地方特点的文献资料部分)。
对不予收录的文献,也作了如下规定:
1)虽是地方出版物,但内容并无地方特点的文献资料。
2)作者虽是广东人士,但文献内容并无地方特点的著述。
3)无地方特点的科技文献。
4)印刷质量差,内容贫乏的非正式出版物。
5)同收录原则相悖的其它文献资料。
具体的收录范围有24项。
地方文献数据库所收录文献的类型包括:专著,期刊、报纸、会议录、汇编、学位论文、科技报告、专利文献、手稿、地方志、族谱、检索工具、参考工具、图表、古籍等。其中检索工具包括反映本省图书馆馆藏的各种书目、文摘、联合目录;图表包括地图、气象图、地质图;参考工具包括年鉴、手册等;专利文献只限于本省单位和个人申请的国内外专利;报纸限于本省出版报纸的目录。
广泛征集地方文献资料,保证地方文献数据库有充足的文献源,是建立地方文献数据库极为重要的一环。我馆地方文献工作,早在解放前即已引起重视。建国后,更加广泛深入地开展了地方文献的收集和整理工作。省人民政府曾先后发出三个关于地方文献工作的文件,指定我馆为全省地方文献的征集工作机构和收藏中心,要求各级人民政府和各企事业单位,将所出版的文献资料无偿向我馆缴送二册,这为征集地方文献打下了良好的基础。在全省各有关单位的大力协助下,经过几十年的努力,我馆已逐步建立起拥有18万册,在海内外有一定影响的广东文献专藏,形成了广东文献的收藏中心。这是建立地方文献数据库的基础。
建立地方文献数据库,在确定收录范围的同时,还要认真选择和挖掘文献源。因为地方文献包括了反映当地历史和现状的文献资料,数量以万计,内容极为繁杂。图书馆应该首先选择利用率高,有一定学术和史料价值的文献存贮进电脑,其中科技文献应占有相当的比例。这是时代的要求。因此,我馆在建库前对文献源的选择进行了较深入的研究,最后决定从现代期刊入手,对符合收录范围的期刊论文进行著录标引,然后输入电脑。目前文献的前处理工作正顺利进行,现已标引出地方文献资料8,000多篇,输入电脑5,000篇。对于其它类型的文献资料,今后将有计划按步骤地进行输入,从而逐步建立起我省的地方文献数据库。
三、数据库系统目标与模式
作为地方性情报检索系统的地方文献数据库,其总目标是:收录和存贮反映本省历史和现状的地方文献资料目录,编辑出版综合性的地方文献通报(书目)和各种专题的地方文献目录,为当地党政军领导机关和各科研生产单位提供文献检索服务;作为地方文献的查目中心,将通过联机网络同当地的主要图书情报部门联网,逐步实现地方文献的联机编目和检索,从而促进地区性的资源共享。
为了实现上述目标,我们根据本省的实际情况,为地方文献数据库设计了下述模式:
1.选择具有良好汉字处理功能的远程通讯能力的微型电脑作为数据录入工作站和脱机检索系统,这一系统配有完整的外部设备,可独立进行地方文献书目数据的录入、检索和编辑出版地方文献通报。对已输入电脑的大量数据,可转贮到软盘,为将来在中、大型电脑上建库作好数据准备。我馆已购置了四套IBM5550中文电脑,其中一至二套用于地方文献数据库的建库工作。
2.设置电脑联机通讯线路,同当地计算中心的中、大型机联网。利用主权的计算机资源建立地方文献数据库,一般可存贮几百万篇的文献,从而为实现地方文献书目数据的资源共享打下基础。我馆已同省计算中心达成协议,利用该中心引进的IBM4341主机建立地方文献数据库,并在86年二月成功地进行了利用市内话线联机通讯的试验,计划在明年内实现我馆IBM5550同主机的联网。
3.在本馆购置中、小型主机后,将进一步完善地方文献数据库系统,在省、市领导机关和主要科研机构设置检索终端,并同当地的主要图书情报部门联网,进行联机编目和检索,从而使地方文献数据库真正达到资源共享的目的。
4.把电脑同缩微技术结合起来,实现地方文献资料的全文检索。我馆准备在条件具备时,购置一套16毫米的缩微拍摄设备,用于拍摄地方文献资料。在数据库中检索命中的文献,可根据其文献号,在缩微阅读机上获得原文。
在我省有关部门的大力支持下,经过全馆同志的努力,广东地方文献数据库的系统目标正在逐步实现。目前,在IBM5550微机上已实现了以下功能:
1)地方文献书目数据的录入与存贮。针对地方文献具有多种类型的特点,本数据库根据国家文献著录标准,设置了多种文献类型的自动格式识别程序,不但提供了完善的人机对话录入和修改方式,而且能够对录入的书目数据自动进行著录格式的自动识别,从而使书目数据达到标准化的要求。
2)编辑和打印综合性检索刊物《广东文献通报》。该刊物以及时报道我馆新入藏地方文献为宗旨,两月出版一期。每期通报正文约70页,按《中图法》分类体系排列,并附有地区索引,方便县、市图书馆、档案馆等有关单位从地区途径查找文献。从86年五月起,至今已出版文献通报六期及通报的年度累积索引一册。
3)自动编目功能,数据库系统可根据输入的地方文献书目数据,自动生成数据库倒排文档,供文献检索之用。另外,还可根据指定的专题,编制各种类型的地方文献专题书目,以及编制地方文献的累积本。
4)文献检索功能。因受1BM5550系统外存的限制,目前数据库的存贮容量为25,000篇文献。如将外存扩大到40MB,数据库容量将可扩大到10万篇。在此范围内,用户可从篇名、著者、分类、主题、地名等五个途径进行联机检索,并允许用多个主题词或多个检索途径进行组配,以提高检准率。输出结果既可在屏幕显示,也可以用打印机输出。
5)词表管理功能。数据库系统可对地方文献标引词表、地名表和机内分类表进行插入、修改、删除等项操作,并提供编辑打印词表的功能。目前我馆已编制出《地方文献标引词表》、《广东省地名表》和《地方文献数据库分类表》。
6)地方文献征集和标引管理功能。数据库能为地方文献中的连续性出版物建立档案,并有催索、记到、装订以及标引管理等功能,可以对地方文献征集和标引实现科学管理。
除了上述功能外,我们计划在87年上半年前,为该数据库增加MARC机读目录生产、远程联机通讯等程序,使数据库的各种功能进一步完善。
四、数据库的设计与实现
本数据库系统使用IBM5550高档微机作处理机,其主要技术性能指标为:主机内存512-640KB,15英寸高分辨度显示器、24针汉字打印机和键盘各一台,可配8.1或20MB硬盘及5.25英寸软盘各一台。操作系统为IBM5550中文DOS(由MS-DOS演变而来),配有BASIC、COBOL、PASCAL、TORTRAN以及宏汇编等程序设计语言,还有dBASE2.0、DBASE3.0、SORT/MERGE、CWP、WORDSTAR、LOTUS1-2-3等软件。该机具有良好的多语种处理功能(中、英、日、俄均可处理)和远程联机通讯能力。屏幕显示和打印输出字形美观。根据上述计算机资源的特点和省级公共图书馆地方文献工作的业务流程,我们首先进行了数据库的总体设计。该数据库分为文献库、期刊库、词表库三大部分:文献库实现各种地方文献资料目录的存贮和检索(包括打印);征集库实现连续出版物(包括图书)的征集管理;词表库实现广东地方文献标引词表的管理。所有程序在总控程序的调度下分块进入内存运行。
(一)文献库
文献库的任务是通过书目控制字段实现书目控制;按国家标准录入和存贮文献记录;编辑和打印各种书目;提供多途径的文献检索手段。文献库共设置了书目控制文件、主数据文件和倒排文件。
1)书目控制文件—该文件采用杂凑随机文件结构,每个记录由书目记录控制关键字、文献地址和冲突链组成(见图1)。每个记录的控制关键字,首先考虑用ISBN号(我国今年出版的图书开始使用该号)。对没有该号的图书文献,采用下述方法取号:
①整本文献和非书资料,用:题名首字符+著者末字符+地区代码+出版年+页数。
②析出文献用录入号(即系统分配的顺序号)。
书目控制关键字的取号要求是唯一性较为方便。本系统通过该文件将可对所有输入数据库的书目记录进行控制,实现快速查找或修改。
2)主数据文件—该文件采用固定长记录可变长字段的随机文件结构,记录长256字节。如有数据溢出,溢映部分将存入溢出文件中。本系统将所有书目数据划分为3种类型:整本文献、析出文献和非书资料。每种类型的字段虽有不同,但可存贮于同一数据文件中,通过文献类型代码进行识别。为便于新数据的处理,本系统又将主数据文件分为新书文件和数据库主文件两种。新录入的数据暂存于新书文件中,待打印出文献通报和地区索引后,再合并入数据库主文件。数据库主文件的记录是按文献通报的顺序号排列的。主数据文件的记录字段考虑了同国家机读目录的一致性,在必要的时候可通过一个格式转换程序,把书目数据的系统内部格式转换为标准格式,以利于资源共享。本系统的书目记录输出,采用了汉字取整装配技术,并按国家文献著录标准在各著录项目中加入分隔符号。
①接收一个检索表达式KEYS
②生成提问表(即把表达式中的关键字存入检索比较工作区)
③生成检索逻辑尺
④根据工作区中元素的映射地址(杂凑)取出前链R
⑤从R指示地址在二级索引中取出真正的文献地址后链L
⑤按B指示地址在主数据文件中读出一个书目记录
⑦将该记录同工作区元素作字符串比较,得到其文献逻辑值
⑧文献逻辑值同检索逻辑尺作比较,符合者为命中文献
⑨判L等于零?是则检索结束,否则LR,转⑤
(二)词表库
词表库的任务是对存贮在机内的地方文献标引词表进行查询和管理。本系统词表文件可分为主表和付表文件,主表存贮正式标引词,付表存贮同义词。为了实现首词集中和快速查词的目的,还设置了词表入口文件。图3为示意图。
1)词表入口文件--该文件为映射随机文件,每记录仅存第一个标引词的地址,通过该词第一个汉字的ASCLLI码映射寻址。
2)主表文件--该文件为随机文件,每记录由标引词字段和后链组成。通过后链便可查到首字相同的所有标引词。
3)付表文件--该文件为顺序文件,用于存贮正式标引词的同义词。
本系统通过上述文件结构和算法,已在机内建立了拥有4,000多个标引词的词库,实现了标引词快速查找、首词集中显示、标引词扩检与缩检、同义词参见和词表打印等功能。
(三)征集库
征集库的任务是建立地方文献连续出版物档案,实现征集工作的现代化管理。征集库的文件主要有刊号控制文件、现刊管理文件、期刊主文件、记到数据文件。
1)刊号控制文件---该文件用于存贮每种广东期刊的刊号(包括邮局刊号和内部期刊登记号),对数据库的期刊进行控制,其结构为杂凑随机文件。每记录有刊号和文献地址两个字段。
2)现刊管理文件---该文件用于存贮每种期刊的刊名、刊号、索取号、出版单位、地址、装订周期等管理数据,其结构为顺序随机文件。
3)期刊主文件---该文件用于存贮每种期刊的基本著录事项。每记录长256字节,溢出部分存入溢出文件。
4)记到数据文件---用于存贮每种期刊的记到数据,每种刊作为一个逻辑记录,采用二维数组结构。该文件以年为单位存贮数据,即每年生成一个记到文件。
以上文件的每个记录均存在映射关系,即每种期刊记录在不同文件中的地址是一致的。只要在刊号控制文件中查得某刊的地址,就可在各个文件中访问有关记录。由于我们采取了合理的文件结构,因而能使系统适应期刊经常发生的创刊、合刊、增刊、停刊、改刊期、改刊名、改发行方式等动态变化,有较强的实用性。这点对于地方文献征集工作的电脑化管理是至关重要的。
五、地方文献的著录与标引
为了达到资源共享的目的,地方文献的著录与标引也必须实现标准化。我馆在建立地方文献数据库的过程中,对地方文献的著录和标引的标准化十分重视,采取了下面的一些做法:
1.在进行数据库总体设计的同时,请本馆有丰富文献工作经验的同志组成科研课题组,起草制定了《文献标引员手册》。该手册对数据库的收录范围、文献著录标引工作细则、文献通报编制体例等都作了规定。从而为文献著录标引工作的标准化奠定了基础。
2.在建库前,对文献标引员进行业务考核,选择工作责任心强,经过图书馆专业培训,有三年以上图书馆工作经验,并有一定文献工作实践的同志担任文献标引员。
3.印制地方文献书目数据录入工作单,要求文献标引员根据国家文献著录标准进行著录,并按录入单格式进行填写。这样可以减少因不熟悉著录格式而产生的错误。
4.标引员标引的数据录入单,由数据库文献工作组最后审核定稿。审核的内容包括:著录文献的选题、著录的格式、分类和主题标引。在实践中我们感到,标引文献的审核,对提高数据库的文献质量,有着十分重要的作用,因此,应由有较高业务水平的同志负责把关,并注意保持文献标引人员队伍的相对稳定。
5.数据库书目数据均采用《中图法》分类体系。对同一文献的多个主题,尽量采取了组配方式生成分类号,以便充分发挥电脑多途径检索的优势。
6.以《汉语主题词表》为基础,根据地方文献的特点编制文献标引词表。《汉语主题词表》是一部综合性的文献标引工具,收词多而广泛。但由于《汉语主题词表》的编制是从全国范围的通用性来考虑的,对标引地方独特事物,便缺乏实用性。因此,我们在力求使用词表中正式主题词的同时,根据地方文献标引的需要,使用了许多“表外词”,有些地方,还对词表的规定作了一些变动。这可以从两方面来说明:
1)由于新概念的大量涌现,词表未及收入的新学科、新事物的新名词,现已形成可描述的叙词,例如:“经济法”、“经济纠纷”、“体制改革”、“第三产业”、“信息业”、“港元”……等等。它们在文献中出现的频率很高,但没有合适的直接上位词可用,也没有合适的概念接近的词可用,我们就把这些词作为正式词使用。
2)由于地方文献的特性需要,常常为综合性大型词表所难以照应,如名胜、古迹这一范畴内,就只列了“圆明园”等15个词,其中除“黄鹤楼”“孔庙”等词外,多数是北京地区的名胜古迹,这确实是不合用也不够用的。对这类情况我们作了一些调整。如词表规定,“东江纵队”、“琼崖操队”统用“华南抗日游击队”,也就是以上位概念取代具体事物,这从全国范围的检索需要来看可能是合理的。但从本地区出发,“东纵”和“琼纵”却是专指性极强的词。这两支革命武装有各自不同的历史、活动地区、代表人物文献量又很大。因此,我们改变“用”、“代”关系,不用“华南抗日游击队”,而直接用“东江纵队”、“琼崖纵队”。有些类似情况而文献量不大的,则采用直接上位词做正式主题词,加地方特有事物的关键词,以“,”号倒置。如“寺庙,华南寺”、“寺庙,光孝寺”、“刺绣,广绣”、“刺绣,潮绣”等。“,”号后的关键词,仅起限定和说明的作用,不参加累积索引的轮排,也不作为检索入口。凡地方事物、事件、人物而没有相应的主题词的,如:“黄埔军校”、“丘逢甲”等等,则一律标关键词。我们对这些使用过的关键词,也注意了规范。
六、结束语
关键词:计算机;数据库;信息管理;应用
1数据库系统的发展
数据库的英文是Database,其可以被看做是一个大的仓库,对数据进行储存、管理以及组织。数据库在对数据进行处理时是按照数据的结构出发的。数据库是第五次信息革命的产物,产生于上个世纪60年代。
数据库经过几十年的发展,已经日渐的成熟,因此有很多的种类,包括:db2、oracle等,这些数据库的功能非常的强大。我们可以对数据库信息模型的发展进行阶段划分,一般是3个阶段:(1)第一个阶段是网状层次数据库系统。(2)第二个阶段是关系型数据库系统。(3)第三个阶段即是以面向对象模型为特征的数据库系统。
关系型数据库系统。该数据库系统可以完成对关系数据模型的支持,也是由大量的关系数据结构组成的,这也是其命名的由来。关系型数据库系统可以支持一下操作:数据完整性、关系操作以及数据结构等。
以面向对象模型为特征的数据库系统。该系统可以完成对多种数据模型的支持,例如:关系模型以及面向对象的模型。此外,该系统还可以和新生的技术进行结合,比如:多媒体技术、人工智能技术、处理技术以及计算技术等,因此应用的领域也就会更加的广泛。
2数据库的存在对信息管理的作用
信息技术和市场都在不断的发展,因此数据的管理也出现了新的要求。传统的数据管理仅仅是对数据进行存储和管理,而新的形势下信息管理的要求更高,需要对数据进行转化,转化为用户需要的类型。信息的存储不再是简单的存储,而是要进行海量存储。对于一个企业来说,在日常的管理中需要将有关的数据存放到“仓库”之中。此外,还要从管理的要求出发,开展对应的处理。
将数据库应用到信息管理中,其效果是明显的,直观的,更是高效的。我们可以对数据库进行整合,主要有以下几个方面:(1)可以实现数据的共享。(2)数据具有独立性。(3)对数据进行集中的控制。(4)数据的冗余度会大幅度的降低。(5)可以方便的对数据进行维护,令数据保持一致性,因此就会让数据处于一种安全和可靠的环境之中。(6)具有错误恢复功能。可见,将数据库应用到信息管理中不仅可以对数据实施科学性以及现代化的管理,更可以提高信息管理的效率和质量,因此这对企业和单位的管理工作来说是一个有效的工具,是一个福音。
3计算机数据库系统在信息管理中的应用现状
数据库于上个世纪70年代诞生于美国,经过几十年的发展越来越成熟,已经成为国家经济发展的科技进步的一个重要的工具。在数据库的作用下,信息化的进程在不断的加快,企业的管理工作也在不断的提高。据有关部门的统计,目前我国的数据库数量已经达到1038个。
当前计算机数据库系统在信息管理中的应用现状主要包括:(1)数据库应用领域和应用范围不断扩大。(2)安全性、兼容性、易用性不断增强。(3)数据库技术不断发展进步。(4)受重视程度不断提高。
4数据库系统未来发展趋势
社会处于高速的发展之中,大量的信息涌现,因此我们的数据库技术也要跟上时代的要求,进行不断的更新。而未来数据库系统的发展要求是:方便灵活、容量加大以及智能化。因此,未来数据库系统的发展趋势主要有以下几个方面:(1)用户的管理成本降低。成本的降低依赖于自动化的管理,比如:自动的休整、自动的修复以及监控。(2)可以支持XML语言。(3)对数据库进行引擎的整合。
5结束语
以上的分析来自于笔者的实践和理论的钻研,这些关于计算机数据库系统在信息管理中的应用的探讨可能有些粗略。数据库系统的应用越来越广泛,已经深入到企业、政府、学校等单位的信息管理中,发挥着重要的作用。相信,未来的数据库系统会更便捷、安全、更智能。
[参考文献]
[1]隽军利,李天燕,王小龙.浅析计算机数据库系统在信息管理中的应用[J].科技创新导报,2011(12).
[2]王子芳.数据库及应用课程教学探讨[J].西南农业大学学报(社会科学版),2010(23)
关键词:医院数据库系统安全防范
医院是一个特殊的行业,不管医院的数据怎样运行都不能够妨碍到医院的职责和运行。近些年来,电子信息技术在医院得到广泛的应用,它是对医院临床数据记录,并且是以后科研工作的重要参考数据[1]。然而面对越来越多的数据记录,医院的数据库系统安全也越来越得到人们的重视,医院数据库系统防侵入的研究是迫在眉睫要考虑的问题,它对医院的临床治疗以及科研提供充分重要的数据。
医院的信息系统能够安全稳定的运行,离不开后台数据库的稳定以及安全。它对医院信息系统的后台数据库进行了各种逻辑保护的同时,数据库的管理安全性也是不可忽视的方面。
1、数据库系统数据安全分析
2、医院数据库安全维护办法
2.1加强对数据软件的保护
2.2安全硬件技术
使用安全的硬件技术作为数据库的安全保证,硬件设备以及网络技术是医院系统能够正常运行的保障,也是维护数据库安全的重要前提条件。所以,医院网络设备的选择和网络系统的设计都要充分的考虑到经济性、技术的先进性以及便捷性。数据库服务器是整个网络的心脏,它的性能高低将直接影响到整个系统的运行速率,所以要做好充分的筛选工作。工作站能够得到本地化的处理,而且还能够减少网上数据传输造成的问题,杜绝病毒的入侵。另外,对服务器的环境和UPS设备也要进行监督管理,为了能够确保系统的正常运行,保持服务器的温度、湿度以及无尘环境至关重要。将服务器的湿度保持在45%~75%治安,温度应该控制在(21±3)℃左右,相对来说无尘环境下能够对硬件的保护起到一定的作用。
2.3健全医院系统的管理制度
3、结语
总而言之,随着我国医院网络化办公的日益普及,医院的数据库储存的患者的治疗、诊断以及检查等方面的信息,是患者的隐私更是医院重要的数据资料。然而,医院信息系统核心的数据库安全也成为现阶段管理层的主要问题[4]。医院管理人员和操作人员要一起努力,不断提高安全管理意识和风险管理意识,共同确保医院数据库系统安全可靠的运行。
参考文献
[1]孙希奕,陈卫林,董玉梅,钟建明.基于分布式数据库技术的医院信息管理系统的研究[J].计算机光盘软件与应用,2011,12(3):1147-1149.
[2]陈凌平,金爱兰,宋凯,刘军杰.医院信息化观潮——给医院信息化一个理由,给医院信息化一个支撑,给医院信息化一个未来[J].医院信息系统安全与管理建设浅谈,2009(14):357-360.
关键字:面向对象技术;面向对象数据库系统;类;数据库;面向对象模型
1引言
数据库技术是计算机技术研究中最为重要的方向之一。经过几十年的发展,成熟的关系型数据库被广泛地应用于各个社会领域。但是,现实社会的复杂多变性以及各种应用要求的提高,导致信息在数量和结构上都远超传统数据库的承受范围。1990年高级DBMS功能委员会提倡的面向对象的数据模型,就是要把面向对象的方法和数据库技术结合起来,以使数据库系统的分析、设计最大程度地与人们对客观世界的认识保持一致。面向对象数据库系统(Object-orientedDatabase)是为了满足新一代数据库的应用需要而产生的新型数据库系统。
2面向对象数据库概述
2.1面向对象数据模型
与其他数据模型一样,面向对象的数据模型也包括:数据结构、数据操作和完整性约束三部分,但是其在这三个方面的表现形式和实现方式与传统的关系模型都有很大的区别。
面向对象的数据结构是通过对象和类这两个基本要素,借助封装、继承和组合机制建立起来的复杂结构,而数据操作时通过方法和消息来实现的。面向对象数据库系统支持面向对象数据模型(简称OODM),即面向对象数据库系统是一个持久的、可共享的对象库的存储和管理者[1]。OODM是用面向对象观点来描述现实世界实体(对象)的逻辑组织、对象间限制、联系等的模型。对象与对象标识、属性、行为、类、类层次、消息、持久性等核心概念构成了OODM的基础[2]。
2.2面向对象数据库的特点与优势
面向对象程序语言操纵的是对象,所以面向对象数据库(简称OODB)的一个优势是面向对象语言程序员在做程序时,可直接以对象的形式存储数据[4]。对象数据模型有以下特点:
除此之外,上述特点导致面向对象数据库具有丰富的数据类型,因此能够表达复杂嵌套对象,在复杂对象上获得良好的性能。数据库与程序设计语言的类型系统和操作方的统一,消除了数据库中的阻抗不匹配问题,扩展了数据库系统的应用领域,并提高了应用系统的质量和开发人员的工作效率。
3面向对象数据库系统的体系结构及发展
3.1面向对象数据库系统的体系结构
面向对象数据库管理系统包括了关系数据库管理系统的全部功能,只是在面向对象环境中增加了一些新内容,其中有一些是关系数据库管理系统所没有的。面向对象数据库管理系统(C/S即客户/服务器结构)主要由以下五个子系统组成[8]
3.2面向对象数据库系统的发展
自20世纪80年代来,OODBS的发展经历了主要三个阶段:(1)实验室原型阶段,很多原型产品于80年代末在实验室完成,它们大都具有较新的思路和大胆的设计但却缺乏实际应用的考验,代表产品有工业界Vbase和Orien等,学术界的Gemstone等;(2)初期商业化产品阶段,80年代末至90年代初,所推出的产品均具有面向对象数据库管理系统的基本特色和实际运用的能力,为OODBMS占领市场起了重大作用,但仍有许多缺陷;(3)成熟产品阶段,20世纪90年代中期至今,OODBMS的商业化趋于成熟,产品如ObjectStore、Ontos、O2、Jasmin等。
4面向对象数据库系统的重要技术及应用
4.1.数据库转换技术
由于关系数据库在当今数据库应用领域处于主导地位,而面向对象数据库如果要满足更高一级数据库要求,实现异构数据库之间数据库模式和操作的转换是一个关键研究课题。数据库转换技术包括数据模式技术和数据操作转换技术,转换时要保证一致性(对象语义和动作信息在转换过程中不丢失)。
4.2模式演进技术
4.3视图类实现技术
面向对象数据库中很多操作(如统计、连接查询和视图操作)都能自由访问数据库数据,这些操作益于实现视图操作及降低复杂度并提高效率,但易破坏对象封装性。为了不破坏对象封装性,必须对面向对象数据库的核心模型进行扩充,在对象中设计一组接口,系统通过这组接口完成视图操作,这样会增加对象复杂性和面向对象数据库系统设计难度,因此需要对这些接口实行标准化。基于上述条件,设计相应类数据结构和操作则可实现OODBS视图操作。
4.4OODBS事务管理技术
OODBS事务管理子系统包括死锁管理器、锁管理器、恢复管理器和日志管理器几个部分。相比传统RDBS,OODBS加锁具如下特点:①加锁单位是对象而不是类;②给类对象加锁比给关系对象加锁需更多信息;③当类实例被加锁时,其父类也被加锁。OODBS采用粗粒度加锁具有很高的并行性,加锁的一般是对象,若某一事务要访问同一类多数实例,则对整个类加锁,保证可靠性又降低系统开锁代价。另外,OODBS还具有恢复机制,其中包括多媒体日志恢复和索引页日志恢复两种。多媒体日志恢复是指OODBS把多媒体数据和其描述部分分开,后者通过对象标识符引用前者。若创建多媒体数据事务失败,则置空描述部分引用并复位。索引页日志恢复的方法有两种:一是分裂索引页的插入操作,系统把当前索引页一半表项分给新页,除拷贝的表项外其余都记录在日志中,发生故障时则去掉整个新页;二是合并索引页的删除操作,系统把当前索引页表项拷贝到新页,除了从当前页删除的表项外其余都记录在日志中,发生故障时则重新使用当前页。
4.5面向对象数据库系统的应用
面向对象数据库的产生主要是为了解决“阻抗失配”,它强调高级程序设计语言与数据库的无缝连接。无缝连接即假设不使用数据库,而使用某种编程语言编写一个程序,可以基本不经任何改动地将它作用于数据库,即可以用编程语言透明访问数据库,就好像数据库根本不存在一样,所以也有人把面向对象数据库理解为语言的持久化。
面向对象方法综合了在关系数据库中发展的全部工程原理,以及系统分析、软件工程和专家系统领域的内容,符合一般人的思维规律,将现实世界分解成明确的对象。系统设计人员用OODBMS创建的计算机模型能更直接反映客观世界,使得非计算机专业人员的最终用户也可以通过这些模型理解和评述数据库系统。这些都是传统数据库所缺乏的,正因为如此,OODBS更能在新兴应用领域中发挥作用。这些领域集中在以下几个方向:(1)工程应用领域:此领域(如CAD/CAM)涉及到的数据种类多,操作和数据间涉及的关系都极为复杂,由于面向对象数据库实现了无缝连接,能够支持非常复杂的数据模型,从而特别适用于工程设计领域;(2)多媒体应用领域:由于多媒体中数据种类很多,他们之间有复杂的联系使之成为一个整体,在多媒体领域这些要求也能在面向对象数据库中得到解决;(3)集成应用领域:随着计算机越来越集成,系统也跟着越发复杂,这要求多种应用的集成需要一个能适应不同应用要求的结构模型;(4)传统应用领域:近年来商业、事务处理的需求发生了很大的变化,而面向对象数据库很能适应这些新的变化,因此在传统领域面向对象数据库也有着重要的应用市场。
5面向对象数据库存在的问题及解决方法初步探讨
5.1面向对象数据库存在的问题
面向对象数据库技术可望成为继关系数据库技术之后的新一代数据管理技术。尽管目前已有大量的研究开发工作,有一些可支持的面向对象数据库系统,但面向对象数据库的成熟仍有存在许多亟待解决的问题:
(1)实现复杂性问题:在实现复杂性和思维复杂性问题上,面向对象模型和关系模型之间存在很大差距――关系模型构造集合以及在集合基础上发展出来的关系,对一个有数学基础的人而言其操作语义显然有思维简洁性,对计算机而言,关系运算可以递归并具有能行性的,计算简洁;而对面向对象模型而言,其思想主要是控制流为主导,也就是通过对象的行为,指引数据的传递。比如在服务驱动的分布式系统中,如SOA,其数据是用XML描述的,但由于其交互性,以及消息扮演的控制流的角色,导致用面向对象的传递信息方式不能发挥作用,所以在数据库的流程和运算上,OODB并不占优势。
(2)理论支持问题:面向对象数据库,并没有严格的理论支持。虽然对象间的关系有聚合、组合、关联、继承登,但这些并不是理论,而是实践结果。不能从理论上推导出这些关系,也就无法实现出支持这些关系的对象数据库。
(3)模型复杂度问题:由于模型较为复杂(而且缺乏数学基础),使得很多系统管理功能难以实现(如权限管理),也不具备SQL处理集合数据的强大能力。
(4)性能问题:由于面向对象数据库中数据被存放在许多地方,因此,有效对象聚集是性能好坏的关键因素。面向对象数据库技术要想能取代传统的数据库技术,性能改善是必不可少的。
5.2解决方法初步探讨
就目前面向对象数据库而言,它与关系数据库之间的比较并不同与上世纪70年代关系数据库和网状数据库间不能共存的关系。而现在面向对象数据库的兴起是在肯定关系数据库在处理数据简洁性,适合商务用途的基础上的,它是对关系数据库的补充,例如工程和多媒体应用。
在一些不需要很强大计算能力的场所,例如配置一些信息等非业务数据时,可想而知,面向对象数据库将成为下一代数据库的典型代表,并与关系数据库系统并存。它们将在不同的应用领域支持不同的应用需求。
对象数据库需要快速索引能力,以从庞大的数据集中抽取数据。在这方面做得比较好的关系型数据库使用位图索引技术,但数据一旦更新,这些索引就需要重新建立。因为这个原因,很少有对象数据库有这个功能。如果能把关系数据库的索引技术经过一定的手段嵌套在对象数据库中,对象数据库的性能将能得到进一步的提高。
对于标准化,这应该是面向对象数据库发展的当务之急。早日形成关于对象关系的理论,形成一种类似与SQL语言的标准,对厂商加强约束力和实行指导作用,这对当下对象数据库的发展具有显著意义。
6结束语
面向对象数据库技术对复杂对象既要有极强的表达和建模能力,又要有很强的存储和管理能力,这正是传统数据库技术面向复杂工程数据所难以胜任的关键技术。但由于面向对象模型本身固有的一些特征,业内对面向对象数据库性能和形式化理论的担忧仍然存在。总之,数据库系统发展的趋势是,面向对象数据库和关系数据库将不断融合,继承上述两者的优点,获得更快的发展,最终成为DBS发展的主流。
参考文献:
[1]IanGraham著.袁兆山译.面向对象方法原理与实践[M].北京:机械工业出版社,2003,3.
[2]来羽,张华杰.面向对象数据库的特点分析[J].河南科技,2010(9):58~59.
[3]Lombardoni.A.TowardsaUniversalInformationplatform:AnObject-Oriented,Multi-user,InformationStore[J].PhDthesis,ETHZurich,Zurich,Switzerland,2006:99~105.
[4]Kobler.A,Norrie.M.C.OMSJava:LessonsLearnedfromBuildingaMulti-TierobjectManagementFramework[J].ProceedingsofWorkshoponJavaandDatabases[J].PersistenceOptions.1999,11(2),Denver,CO,USA.
[5]季维岩.面向对象数据库及其实现方法研究[J].科学技术与工程,2004(1):119~131.
[6]乔世权,张永强,赵金宝.面向对象数据库研究[J].软件导航,2008(9):282~287.
[7]Supcik.J.,Norrie.M.C..AnObject-orientedDatabaseprogrammingEnvironmentforOberon[C].ProceedingsoftheJointModularLanguagesConference,1997,Linz,Austria.
[8]徐洁磐.面向对象数据库系统及其应用[M].科学出版社,2003(11):4~89.
关键词:企业;数据库系统;安全机制
前言
随着计算机的普及、尤其是在企业生产和科研领域中的广泛使用,越来越多的信息和数据以各种各样的形式保存在计算机中。数据库系统作为数据存储和管理的主要方式,也随之得到了十分广泛的应用。大多数企业、组织电子数据都保存在各种数据库中。他们用这些数据库保存一些个人资料,比如员工薪水、医疗记录、员工个人资料等等。数据库服务器还掌握着敏感的金融数据,包括交易记录、商业事务和账号数据,战略上的或者专业的信息,比如专利和工程数据,甚至市场计划等等应该保护起来防止非法者获取的资料。数据库服务器还保存着一些商业伙伴的资料。
一、数据库系统安全的含义和目标
数据库系统一般可以理解成两个部分:一部分是数据库,它按照一定的方式存取数据;另一部分是数据库管理系统(DBMS),它为用户及应用程序提供数据访问,并具有对数据库进行管理和维护等多种功能。
数据库系统安全包含两层含义:第一层是指系统运行安全,包括:(1)硬件运行安全;(2)操作系统安全;(3)灾害、故障恢复;(4)死锁的避免和解除;(5)物理控制安全,如机房加锁等。第二层是指系统信息安全,包括:(1)用户口令字鉴别;(2)用户存取权限控制;(3)数据存取权限、方式控制;(4)审计跟踪;(5)数据加密。
二、数据库系统基本安全框架
另外,由于数据库系统在操作系统下都是以文件形式进行管理的,入侵者可以直接利用操作系统的漏洞窃取数据库文件,或者直接利用某些工具来非法伪造、篡改数据库文件内容,这种隐患一般数据库用户难以察觉。
三、常见的数据库系统安全机制及缺陷
四、数据库系统安全技术的新需求及实现
结束语
当前,各企业尤其是大企业都在大量地使用数据库系统来存放和管理各种各样的信息和数据,互联网的飞速发展使得越来越多的应用都通过网络开展起来。数据库系统也逐渐从以前的单机数据库向网络数据库方向发展,这一趋势使得数据库系统受到的威胁也越来越大。网络中存在的大量的黑客攻击、病毒等都会给数据库系统带来危害,造成数据丢失、窃取、篡改等严重后果。为了实现数据库系统安全的三个目标,即完整性、可用性和机密性,必须采取各种各样的措施保护和防止数据库系统受到破坏。尽管国内外已经有许多科研单位和厂商在数据库系统安全方面进行了大量的研究工作并且取得了诸多的研究成果,但是要实现真正的数据安全还需要付出更大的努力。
[1]施伯乐,丁宝康,等.数据库系统教程:第2版[M].北京:高等教育出版社,2003.
[2]臧劲松.数据库系统安全的研究与分析[J].计算机安全,2008,(7).
关键词:中文期刊,全文数据库,数据库系统
引言在追求快速、方便的网络时代,只提供题录、文摘数据库已不能满足读者的要求,全文数据库的建设是今后发展的方向。许多文献数据库都是通过网络和提供检索的,面对的是没有检索经验的用户和巨大的文献处理的难题,如何建立一个有价值的、用户满意的、实用的全文数据库就成为广大图书情报人员深入研究的课题。
全文数据库除提供一般题录数据库的题名、分类等检索途径外,还提供全文检索。全文检索是利用了文献中的自然语言作为一个检索入口,这种自然语言的检索方式比较符合用户的易于利用的需求。
中文与西方国家的语言不同,由大量独立汉字组成,因此在建设中文全文数据库时要注意数据库系统、编码与开发工具的选择。
1全文数据库系统软件基本模块的设计构想由于全文数据库是非结构化的数据,因此全文数据库的结构(记录、字段、子字段等)的划分及长度的确定,往往随文献本身的内容特点而彼此有很大的差异。与之相对应,全文数据库系统的软件及其功能模块也会有很大的不同。作为功能完备的全文数据库系统,应该具有以下的结构特点及全部或大部分功能模块。
1.1数据库结构定义模块这一模块主要是确定库的记录、字段(包括重复字段或子字段),确定相应记录或字段的索引方式。字段设计之目的在于:增加正文之外的信息项,增加检索的切入点;提高检索的查准性,借以进行字段限定检索,并提高检索速度;索引方式的确定,以字段为单位。索引方式有四种:全字段作为一个完整单位作索引;以<>标引符号内字符串作索引;以%分割的重复字段作索引;每个字作索引(单字索引,主要用于正文字段)。在一条记录中,字段的个数应不限,一般最多能达到数百个字段。
电子排版文本。这种文本中含有排版符号。如果全文数据库建立在这种排版软件基础上,则文本无需加工。但多数全文数据库系统并非建立在这种排版文本基础上的,因此有必要通过软件一次全部删除排版符号,同时应解决由于删除排版符号而带来的问题,如补字、数学公式、上下标等等,使之成为完整的纯文本文件。
网上下载的PDF文件、网页文件、光盘上记录的某些特殊格式的数据。如果全文系统采用纯文本格式,则需对其转换。
以上这些文件的转换,需要编制工具软件,或利用已有的转换工具。
文本预处理还包括数据的批式标引。这是建立全文数据库之前特别是数据装载之前,主要是利用文字处理软件和专门自动标引软件对数据进行的标引,或按自己建立的标引词表,对文本进行的扫描标引。
1.3装库模块装库就是将数据预处理后的文本数据导入已有的库结构之中。
有的全文库要求将数据转换成ISO2709(CNMARC)格式才能装库;有时可将有一定标志的文本格式装库;有的则将文本按原格式导入库结构;有的不实际装库,只在系统中建立指向文本文件地址的指针。可以根据具体情况选择装库方式,但最后一种方法不推荐使用。
1.4标引模块全文库正文的单字索引,不必建立,因为系统有识别每个汉字和其他符号或外文字串索引功能。
1.5索引作业模块索引作业就是按照库结构定义中的索引字段生成索引的过程,一般生成一个索引即可。为了区别不同字段的索引款目,可以在索引定义中加文字常量。这样在混排索引中就可以把不同属性的索引款目相对集中,在检索时,可以进行按字顺显示。如要检索作者为“高山”的著作,应这样输入检索式:“AU=高山”,从而可以避免检出作为关键词的“高山”及正文中的“高山”。全文索引的主体应该是正文的单字索引,借助这种索引可以使全文中的任何信息、中心主题信息与边缘性信息都能被检索出来,避免标引中的遗漏和主观武断,从而实现检索的彻底性。
1.6用户输入检索式模块这一模块是全文数据库系统与用户之间最直接的接口,也是决定检索结果好坏的关键。全文数据库的使用者往往缺乏系统检索经验,要查到一些信息容易,但查全、查准信息较难。全文库检索主要是使用自然语言,缺乏词汇的控制,因此随意性较大,检索效果的评价也缺乏明显的验证标准。要引导用户正确提出检索式,一般来说有三种基本的引导用户的模式:
询问表方式。即在用户检索时,系统提出一个询问表格,检索项目由用户填写。这些项目如:欲检索的篇名、作者姓名、关键词、分类号、单字等等。不必要求用户每项都填,即使只填一、二项也可。询问表方式引导用户表达自己信息需求的方式,对无检索经验者较为有用。
词典式检索。此方法适用于一般用户。按词典检索时,应能允许用户从显示词表中用光标选词,并且可选一个以上的词,被选中的词以“或”方式连结。如果读者要用“与”“非”方式,应能从表下所附的AND、NOT中点出这些运算符,使之形成检索式。总的来说,其目标应该是减少用户自己输入汉字和运算符,以提高效率并减轻其负担。
命令方式。这是供有一定检索经验的用户使用的,功能最为强大。命令方式主要是布尔运算、位置运算、括号嵌套、截断符号、字段限定等。
1.7用户检索分析处理模块系统对来自屏幕的用户检索式加以处理,使之形成便于运算的检索方式。论文参考。对于复杂的检索式,需要进行逆波兰变换,确定各检索项的运算次序。对询问表的检索式也需根据用户所填数据形成检索式。对标引词表显示中用户光标指定词加以收集,并形成检索式。
在这一模块中,系统还应该检查用户提问检索式是否有错误(如左右括号不配对,数个运算符连用,字段文字常量输错等),如发现错误,应向用户做出提示,并给出修改建议。
1.8检索匹配模块这一模块与一般检索系统相同,但作为全文数据库来说还应具备下列功能:
较强的位置检索功能。由于全文库往往对正文字段单字索引,因此对单字的布尔检索不大适用,而应以位置检索为主。位置检索时,应对紧密相邻的几个字采用连写方法,不必插入位置运算符。或者说,字与字之间默认的运算符是彼此紧密相邻。
全文库或指定集合中的顺序扫描匹配检索。当对正文作单字索引的情况下,允许用户使用这种扫描匹配进行检索。用户只需输出一个字符串(词或短语),计算机就开始对全库或指定集合进行检索匹配。
1.9检索结果的处理模块检索结果的处理主要包括:显示浏览有关记录(段或句子)文本。排序:可由用户指定排序键。排序键可以是年代、字顺或命中频率。排列次序可以是升或降序。聚类:在有属性标引的全文库中可进行聚类。打印:可将命中结果打印输出。下载:可以提供文本格式或机内数据格式两种下载方式。
2数据库系统、开发工具及中文编码的选择2.1数据库系统的选择理论上现在成熟的大型关系数据库软件均可作为中文期刊全文数据库系统,但从市场占有程度及成本和易用性考虑,用来存储中文期刊全文的数据库系统建议从以下几种平台中进行选择。如果服务器端操作系统为Unix或Linux,并且经费预算允许,建议选择Oracle作为数据库系统。Oracle数据库是一种具有无限可伸缩性与高可用性,并可在集群环境中运行商业软件的互联网数据库,具有400多个领先的数据库功能,在集群技术、高可用性、商业智能、安全性、系统管理等方面都实现了新的突破。如果从降低成本考虑,可以选择MySQL作为数据库系统。以上两种数据库还提供支持Windows操作系统的版本,具有跨平台能力。
如果服务器端操作系统为Windows,则建议选择SQLServer作为数据库系统。SQLServer是一个全面的数据库系统,使用集成的商业智能(BI)工具提供了企业级的数据管理。SQLServer数据库引擎为关系型数据和结构化数据提供了更安全可靠的存储功能,可以构建和管理用于业务的高可用和高性能的数据应用程序。
2.2开发工具的选择如果系统需要跨平台部署,在选择Oracle或MySQL数据库系统的基础上,建议选择Java为开发工具。Java是一种简单的,面向对象的,分布式的,解释型的,健壮安全的,结构中立的,可移植的,性能优异、多线程的动态语言。如果对跨平台没有要求,并选择SQLServer数据库系统,则建议选择VisualStudio为开发工具。VisualStudio是微软公司推出的开发环境。是目前最流行的Windows平台应用程序开发环境。目前已经开发到9.0版本,也就是VisualStudio2008。VisualStudio可以用来创建Windows平台下的Windows应用程序和网络应用程序,也可以用来创建网络服务、智能设备应用程序和Office插件。
2.3中文编码的选择中文编码主要有以下四种:
BIG5:繁体中文编码。主要在台湾地区采用。
GBK:支持简体及繁体中文,但对其它国家非拉丁字母语言还是有问题。论文参考。
UTF-8:Unicode编码的一种。Unicode用一些基本的保留字符制定了三套编码方式,它们分别UTF-8,UTF-16和UTF-32。在UTF-8中,字符是以8位序列来编码的,用一个或几个字节来表示一个字符。论文参考。这种方式的最大好处,是UTF-8保留了ASCII字符的编码作为它的一部分。UTF-8俗称“万国码”,可以同屏显示多语种,一个汉字占用3字节。
因此,为了保证全文数据的存储和显示不出现问题,建议选择UTF-8为数据库系统编码,应该在装库操作前对所有内容进行编码转换,统一转换成UTF-8编码。
参考文献[1]秦剑.我国数据库建设的思考与展望[J]河南图书馆学刊,2002,(04).
[2]程文艳.数字图书馆——数字中国的开路先锋[J]情报科学,2002,(06).
[3]杨丽兵.浅谈中文过刊编目数据库建设工作[J]农业图书情报学刊,2004,(01).
[4]何凯文.我国高校图书馆数字资源建设的问题及发展途径[J]图书馆建设,2004,(05).
[5]曾莉红.基于点击率的全文数据库检索结果组织方法探讨[J]情报杂志,2007,(06).
在Yukon的酝酿和设计过程中,设计师对下一代数据库系统的编程能力下了很多气力。微软内部的开发人员认为,下一代的数据库系统一定要包括更多的对称编程模式,对各种数据类型的查询应该更灵活。所谓的对称编程模式是指对于常见的数据库操作,用户应该可以使用XML,.NET或是传统的T-SQL程序
在这种设计思想的指导下,Yukon在许多方面有了大的拓展。首先,.NET的公用语言执行环境(CLR)被融合到了新的系统里;第二,融合进来的.NET提供了很多强有力的数据库对象;第三,XML在这版的数据库里得到了更好和更深的支持;第四,数据库的服务器端提供了对XML查询(XQuery)以及XML规范定义语言XSD的支持;第五,传统意义上的T-SQL也得到了进一步的增强
新的编程模式和新增的语言一道使得数据库应用的开发有了更丰富的选择。新的体系结构使得我们更容易构造可靠的,可扩展的,稳定的应用,并且开发的效率也得到了极大的提高。Yukon中还引入了全新的服务(ServiceBroker),一种分布式的一部消息传递机制,现在让我们先看看编程语言方面的增强。
目录
Transact-SQL语言的增强
在SQL服务器中使用.NET来编程
充分开发CLR的潜能
在T-SQL和管理程序之间的取舍
用户定义的类,函数和集合
管理的存储过程
Yukon对微软的T-SQL有了很多的增强。用户可以在Yukon的Online帮助中得到详细的信息,限于便服,在此不一一列了。新增的特色表明了微软对ANSI-99SQL标准的进一步支持,同时也反映了对广大用户反馈意见的相应。新的增强主要是为了使查询更富有表达性。有几种新增的查询可以很好的覆盖用户常用的一些查询类型。比如说,递归查询可以返回有层次机构的结果集合(hierarchicalresultset)或是abillofmaterials。
Yukon提供了新的PIVOT和UNPIVOT操作。这些操作的输入是表格类的表达式(table-valuedexpression),其输出结果同样是表格类型。PIVOT操作是将行转变为列,并进行集合以及其他的数学操作。在输入的表格中它将以一个给定的列为轴进行旋转,其成生的表格的列是有不同值的原旋转列。这种操作使得生成的表格变宽(设想一个5列100行的输入表格,其结果可能是100列5行的表格)。UNPIVOT是PIVOT的逆操作。它将输入表格的列转换为行。其结果是使输入表格变窄。
Yukon的异常捕捉和处理机制也有了很大的变化。它使用了和.NET一致的TRY/CATCH结构。导致交易终止的错误将会被捕捉并且处理。另外为了配合.NET的框架提供的安全,复制,提示服务以及XML等等功能(security,replication,NotificationServices,XML),Yukon引入了不少新的语言构造。.NET在服务器端的技术也极大了影响了SQL数据库的研制和发展。
程序员可以在Yukon中使用和.NET兼容的高级程序语言进行开发,利用VB.NET,C#这一类的语言编写自定义函数(user-definedfunctions),存储过程(storedprocedures)和触发(triggers)。另外,利用管理程序(managedcode)还可以开发自定义函数(UDTs),集合(aggregates),函数(functions)。公用语言执行环境(CLR)是.NET的核心,它是一切基于.NET开发的程序的运行平台。它提供了诸多的服务,比如实时编译(just-in-timecompilation),内存管理和分配(memorymanagementandallocation),类型安全强制(typesafetyenforcement),异常处理(exceptionhandling),线程管理(threadmanagement)以及安全检查(security)等等(CLR对于.NET程序就好比Java的虚拟机对于Java程序一样)。在Yukon中,.NET程序将和在CLR中完全相同的方式运行。
将CLR整合到Yukon中的好处是显而易见的。Yukon获得了CLR的各种有益的功能,如自动的内存管理,资源分配,垃圾回收等等。Yukon提供了一套.NETassemblies,这样允许程序员直接操作数据库对象。数据的操作是通过一套特殊的ADO.NET来实现的。这些新的方法和原来的ADO.NET非常相似,程序员应该感到非常的熟悉和亲切。细一点说,我们可以把Yukno集成了CLR的好处归结为以下几点:
1.丰富了编程模式。CLR兼容的高级程序语言比T-SQL要丰富的多,也强大的多。它们提供的功能和特色是以往SQL程序员不敢想象的。此外,Yukon还提供了一系列的类库(FrameworkAPIs),这些类库的功能比以前SQL内置的功能强大的多
2.增强了安全性。管理程序运行于数据苦支持的CLR环境当中。这使得数据库的对象比以往的扩展存储过程(extendedstoredprocedures)更安全
3.用户自定义的类型和集合。通过对CLR的集成,这两个新增的对象扩展了SQL数据库的查询和存储能力
4.为今后的VisualStudio?开发环境指明了方向。今后程序员可以向开发其他.NET程序那样用VB.NET或是C#这类的高级语言进行数据库的开发,调试工作。
5.性能的增强。在一些情况下,.NET语言的编译和执行可以提供比T-SQL更好的性能。
在以前的SQL数据库应用的开发中,服务器端的程序被限制于T-SQL。而在新的Yukon中,由于集成了CLR,使得开发工作变得前所未有的容易和方便。像VB.NET和C#这类的高级语言,全面支持数组(Array),结构化的异常处理(structuredexceptionhandling)以及各种集合操作(Collections)。这些功能使得程序员可以编写更复杂的逻辑和计算工作。
更突出的一点就是VisualBasic.NETandC#是面向对象的语言,它们自身所具有的数据封装(encapsulation),继承(inheritance)和多态性(polymorphism)是T-SQL所不能比拟的。在大型系统的开发中,这种基于模块化开发机制的优越性会更加明显。它可以更好的组织你的源程序,增加代码的重用性。将源程序按照逻辑关系编译成不同的assemblies和n字域(namespaces)可以增强程序的组织性,让程序员更方便的浏览和使用已有的程序。
最高层次:安全接触(SAFE)。它只允许接触和计算数据
次高层次:外部接触(EXTERNAL_ACCESS)。它允许接触外部的系统资源
最低层次:不安全接触(UNSAFE)。只要不对系统的稳定性造成影响,就不加限制。
在T-SQL和管理程序(Managedcode)之间的取舍
管理程序非常适于进行数字密集型的计算和复杂的逻辑处理。.NET对于字符串(String),规则表达式(regularexpressions),错误捕捉等等有着更好的支持。另外.NET提供的上千个类(Class)和方法可以在自定义函数(user-definedfunctions),存储过程(storedprocedures)和触发(triggers)中很方便的使用。所以对于有大量字符创操作,数学计算,日期运算,系统资源存取,高级加密运算,文件操作,图像处理或是XML的情形,管理的存储过程,函数,触发,集合要比传统意义上的T-SQL等强大和简洁。
使用管理的程序的另外一个好处就是类型安全。在管理的程序执行之前,CLR要对其进行检查以保证它的安全运行。比如说,对于一个内存读写的操作,CLR要先进行检查以保证在读取的时候没有写操作在进行。
在准备编写存储过程,触发,或是UDFs之前,你要权衡各种情况,在传统的T-SQL和管理程序(Managedcode)之间做出选择。选择的标准是你当前问题的具体特点。如果你的主要操作是数据存取以及相对简单的逻辑运算,那么T-SQL则非常合适。对于有大量数值计算以及复杂逻辑运算的情况,管理程序(Managedcode)则更适用。
程序放置在什么地方也是很关键的一步。T-SQL和管理程序(Managedcode)都是在数据库的引擎内运行。把.NET和数据库紧密放置在一起可以有效的发挥服务器的硬件运算能力。当然最好是用SQL数据库的Profile程序来测量一下你的具体程序的运行性能,然后再做出决定。Yukon的Profile程序有了进一步的增强。可以更深层次的测量SQL数据库内的CLR的性能,并且会以更直观的图形方式来输出对比测试结果。下面就让我们来具体看看Yukon中新增的一些功能。
用户定义的类,函数和集合(User-definedTypes,Functions,andAggregates)
用.NET的术语来说,UTDs是结构(struct)或是参考类型(referencetype),而不是类(class)或枚举(enum)。这意味着内存的是用是由CLR控制优化的。不过,UTDs不支持继承和多态性(inheritanceandpolymorphism)。它可以有公用或是私有函数(publicandprivatefunctions)。事实上,诸如限制检查(constraintchecking)应该由私有函数来完成。举例来说吧,如果你想定义一个地理空间的类型,这可能包含经度,纬度也许还有高度信息,你可以定义相应的私有成员来完成这一任务。这类型创建完成后,你可以把他注册到SQL数据库中。这个被编译的DLL就会被存放在SQL数据库中。
用户自定义函数(UDFs)有两种类型:一种是标量值型的(scalar-valued),这种函数返回单一的值,如字符串,整数,比特等等。另外一种是表格值型的(Table-valued)。这种函数返回有一个或多个列组成的数据集合。
Yukon允许用户定义新的集合(aggregate)操作的能力远远超过了以前的版本。用户用管理语言开发的集合可以被T-SQL或是其他的管理语言调用。这些新开发的集合是.NET的类,它可以引用数据库中存在的其他编译好的类库(ClassLibrary)。你可以使用用户定义的集合将数据库中的数据转化为数值型变量。比如你最近的一次用户调查的数据存放到数据库中,通过一个用户定义的统计函数你可以得到加权平均或是标准偏差。
关键词:数据库;教学方法;教学改革
ResearchesontheTeachingoftheDatabaseSystemsPrinciples
ZHANGLi
(ComputerandInformationInstitute,Yang-enUniversity,Quanzhou362014,China)
Abstract:Basedonselfteachingexperiences,throughanalyzingthosequestionsintheteachingofthedatabasesystemsprinciples,theessayputsforwardsseveralargumentsabouttheteachingofthedatabasesystemsprinciples,includingteachingcontents,methodsandsoon.
Keywords:database;teachingmethods;teachingreform
2教学中存在的问题
通过对我校近几年计算机专业《数据库系统原理》课程教学现状的分析,发现主要存在以下一些问题:
2.1理论教学和实践教学课时安排不合理
2.2教学方法和手段缺乏多样性
2.3传统的考核方法不能全面检查学生的学习效果
考核是检查教学质量的一个重要手段,对学生学习和教师教学具有导向作用。《数据库系统原理》是一门理论与实践并重的课程。传统的考核方式通常是以理论考试作为最终成绩,使得部分学生只是靠死记硬背来通过考试,而动手能力较弱,这样没有全面的检查学生的学习效果。
3教学改革
3.1选用优秀教材,优化教学内容
采用高等教育出版社的《数据库系统概论》,本套教材为普通高等教育“十五”国家级规划教材,选用流行易上手的SQLServer2000作为实验平台,为学生以后使用更新更复杂的数据库管理系统打下基础。因为课时少,按照教学目标要求合理选择教学内容,不要意图将所有知识点面面俱到,引导学生入门是关键所在,突出重难点,有些知识点可以适当留给学生课下自学。
3.2改进教学方法和教学手段
在实际教学中,合理使用各种教学方法和手段,以学生为中心,采用启发式,讨论式等教学方法,充分利用网络资源,增加学生实践机会,激发学生学习热情。
1)以学生为中心的教学方法。
在上第一节课时,主要是要做好动员工作,不要讲太多理论知识,语言尽量生动,举有趣的例子,让学生对这门课感兴趣。平时在课堂上要善于把枯燥的内容转变为学生容易理解的知识。在教学过程中注重示例性讲解,把书上例题讲通讲透,让学生能够融会
(下转第1563页)
(上接第1560页)
贯通。在课堂上也要注意避免一言堂的情况,合理使用讨论式、启发式教学方法,充分调动学生,多与学生交互,让学生的思维活跃起来,积极地参与思考,提出问题。在正式讲课之前可先用几分钟进行典型问题的讲解或优秀习作的展示,达到学生自我教育的目的。还可充分利用多媒体工具,提高教学效果,比如可把要讲解的比较复杂的操作过程制作成flas,动态演示给学生看,有助于学生消化理解,也同时给了学生直观的视觉刺激,这样极大的增强了课堂教学效果和学生的兴趣。
另外,实验内容可适当超前教学内容一些,鼓励学生自学与预习。
2)构建网络课堂。
3)强化管理,注重实践。
学生座位固定,方便点名,保证出勤。实验课内容要求学生事先写,及时交,避免有学生抄袭。
在开学初就布置课程设计,要求学生以小组为单位开发数据库应用系统,课堂上教师介绍必要的理论知识,课外,学生通过自行分配任务,互相探讨的学习模式完成具体的实践工作,以此增强学生对数据库应用系统开发的认识,提高学生对本专业的兴趣,培养动手能力和团结协作精神。随着教学进程的推进,学生在教师的全程指导下进行课程设计。这样一个贯穿整个学期的课程设计对学生学好《数据库系统原理》课程是很重要的。
鼓励学生参与科研项目,参加大学生创新性实验计划等比赛,提高自己的实践能力和团队协作精神。
3.3改革考核方法,重视能力培养
4结束语
以上教学方法在计算机专业和信管专业的《数据库系统原理》课程进行了试用,其教学效果反映很好。学生掌握了数据库的基本原理和基本技术,大部分学生能够能够自己开发一个实际可用的软件系统,实践能力得到了锻炼。
随着数据库技术的不断发展,知识的日新月异,教师也需要在教学过程中不断增加新的理论和技术,尝试新的教学方法和手段,培养出更多适合信息化社会的人才。
[1]张龙翔.《数据库原理》教学改革探讨[J].考试周刊,2007(14):85-86.
[2]曾台盛.《数据库原理与应用》课程教学改革探讨[J].福建电脑,2005(8):162.
[关键词]数据库;检索;中药大辞典
《中药大辞典》是一本较为权威的常用中药工具书,对广大的临床、科研、教学工作者及其他人士学习、认识、了解、掌握中药知识具有很大的实用价值,应用相当广泛[1]。但工具书的使用有许多不便,费时,且更新周期较长。目前国内外存在一些中医药数据库检索系统,但这些系统中的全文检索、关键字检索结果仅限于单个关键字、词的对应性检索,以致相同概念、相近表达的内容出现漏检,或需多次检索才能满足要求。此外用户检索时,根据不同的目的有不同的检索要求,往往不需要其全部内容,否则显示结果繁琐而冗长,影响检索效率。因此设计一个具有模糊检索、智能检索以及能对检索结果进行取舍的中药数据库检索系统非常有必要。
1《中药大辞典》系统的功能模块
系统对《中药大辞典》所包含的中药药材知识进行搜集、整理与组织,并建立相应的数据库和数据采集模块、信息查询模块,实现对中药正名、别名、基源、性味、功用主治及中药的现代研究应用等的模糊查询及智能化查询,并能根据用户所需达到知识的全面链接及检索结果的智能化取舍的功能。其功能模块图见图1。
1.1中医信息的数据采集模块
数据采集功能设计模块包括中药各种基本信息的采集,允许增加、修改等操作;中药数据库的动态维护、特别是对于有关中药的现代研究成果可通过此模块及时补充更新。
1.2查询模块
查询模块是整个系统的一个核心模块,包括以下功能:
1.2.1正、异名查询模块支持正名和异名的查询,允许用户对查询的结果进一步选择链接。检索方式包括中药名称、拼音或拼音缩写三种方式。为了使该查询系统能够适合更多的人使用,因为使用者不一定知道正名,只知道其经常使用的别名,或是由于地域不同,同一种中药材的别名也不同(例如,正名:地龙;异名:蚯蚓;水杨梅,在长沙叫沙金子,在湘西却叫穿鱼串等等),系统重点处理了此模块,实现正、异名分开查询(图1)。
同时考虑有些中药名汉字很难写或在输入法中找不到,系统提供拼音和拼音缩写方式查询。此外,系统还提供了常用的别字查询,包括同音别字和近形别字两种情况。当用户在输入要查询的中药名称的过程中出现了同音异形的别字,或字形很相近的别字时,系统通过提示用户输入有误,并询问是否查询与所输入内容相近的中药名(例如,用户将“黄连”输入为“黄莲”或将“沉香”输入为“沉杳”,系统可提示是否输入黄连及沉香),用户通过再次输入自己想要查询的正确的中药名称后查询出此种中药的详细信息。
1.2.2性味查询模块支持在四气五味上实现正名、异名查询模块,除能根据单纯的四气或五味来显示查询结果外,还可以在四气五味间自由组合,如性味的组合、两种药味的组合的查询,并显示查询结果。
1.3系统维护模块
系统维护模块主要是对系统的管理的实现及对查询结构的打印功能的实现。
2关键技术
2.1数据的整理与组织
数据库中数据的结构与内容的完整性决定了最后查询的速度与效率,因此在建立数据库之前,需要对《中药大辞典》所包含的中药药材知识进行搜集、整理与组织[2]。组织的基础是根据人们对中草药知识检索与知识发现的需要,内容是形成基本符合计算机检索要求的全面、系统、详尽资料。中草药历史悠久,其有些属性(如性味)的表达一般有多种,但术语的应用却是相对稳定的,因此在数据组织的基础上,建立“原子”知识库,使围绕某个核心的知识不会被漏检。
2.2模糊检索的研究与实现
对某些含义相同或相近但表达不同的检索要求,系统引入不完全知识及非精确推理,以扩大知识的表示与处理范围,实现全面检索的目的。
由于数据库索引不是为全文索引设计的,因此,使用like“%keyword%”时,数据库索引是不起作用的,所以对于需要提供大量模糊查询的检索系统来说,使用LIKE语句对性能的危害是极大的。如果需要对多个关键词进行模糊匹配:like“%keyword1%”andlike“%keyword2%”其效率就更低了,因此采用Oracle的OracleText组件。它提供了索引编制、文字和主题搜索以及文本查看功能[3]。通过设置OracleText词法分析器(lexer),建立好CONTEXT索引后,就可以使用CONTAINS操作符检索数据了。在SELECT语句中,可以在WHERE子句指定CONTAINS操作符,还可以指定返回记录的得分(得分SCORE是指查询结果的贴切程度),还可以有很多查询选项,进行逻辑、模糊、通配符、主题等查询。
下面是我们在本系统中使用的一个例子:
SELECTscore(1)title;
FROMoraigin_text;
WHEREcontains(text,‘辛’,1)>0;
2.3智能化检索的研究与实现
智能化的设计最后在查询中体现在两个方面,一是未整理到知识库的检索点,系统从数据库的大量数据中提取、挖掘和发现知识,实现人机交互式的学习记忆,达到智能查询的目的。二是实现知识的全面链接及检索结果的智能化取舍。检索结果以总纲的方式表现,允许用户根据需求对检索结果的智能化取舍,并建立广泛、深层的链接。
3结束语
[1]江苏新医学院.中药大辞典[M].上海:上海科学技术出版社,2006.
[2]李翔,王广平,邵蓉.试论我国中药产业信息化服务的发展战略[J].中药研究与信息,2005,7(6):41-45.