文/内蒙古通辽职业学院图书馆 徐荣全
电子版馆藏数据回溯中的交叉、重叠、阻滞问题处理
文/内蒙古通辽职业学院图书馆徐荣全
在图书编目数据回溯建库实践中,电子编目数据的回溯是其中重要环节,电子数据在导入“图书馆集成管理系统”的新数据库后,出现了交叉、重叠和阻滞问题;针对这些问题的探讨,从中寻求解决方案。希望为其他中小图书馆的回溯建库工作提供借鉴。
电子数据;编目数据;交叉;重叠;阻滞
在近代中国图书馆的发展历程中,有三个关键性影响因素:第一个是《杜威十进分类法》的传人使中国图书馆的文献资源分类体系开始参照《杜威十进分类法》按等级列举式的学科体系分类;一改历史上沿袭上千年的无论是“七略”的六分法还是“经、史、子、集”的四分法;使图书的分类方法真正意义的走上了符合科学规律的管理轨道。第二是计算机技术的发展,使图书的编目、标引工作由人工卡片式著录转为利用计算机编目、标引。第三是机读目录格式MARC标准的执行,使计算机编目实现了标准化;为与国际接轨,从数据结构方面提供了保障;并使网络环境下的编目数据共享成为可能。这些影响因素中特别是计算机技术的发展对图书馆的发展起了飞跃式的前进作用;但同时也带来了前所未有的技术上的交叉、融合与跟进。
近20年是图书馆事业发展最快的时期;由于从计算机编目到集成管理的普遍应用,各中小图书馆都经历了一段爬升期。这一时期新旧技术更替、交融频繁,同时也随着技术的更新而凸显出一些新旧技术下的技术转换难题。回溯建库工作是各中小图书馆在技术交替时期所遇最耗时、耗力且技术难题也是最多的一项工作。特别是在图书馆计算机集成管理条件下的回溯建库工作,不经过系统化的深入研究的一些草率数据回溯行为有可能造成整个系统在前台表现阻滞。
随着图书馆从传统业务方式向计算机编目和计算机集成业务管理的转移,图书数据的记录也要经历一次甚至数次转移。特别是高职院校图书馆所经历的过程会更复杂:因大多数高职院校图书馆都经历了一个在院校合并中的图书馆合并过程;这给回溯建库工作造成的混乱性无疑是雪上加霜,在这种情况下,回溯建库前的图书编目就有几种情况并存:一是手工卡片式著录的数据;二是使用集成管理系统前用原有系统计算机著录的电子编目数据;三是各馆合并前用各自计算机著录的电子编目数据;四是使用集成管理系统后著录的标准MARC数据。
这几种情况在本馆就曾并存过。在多种编目数据并存情况下的回溯建库主要有两种方法:第一,由卡片或图书逐一回建著录。第二,由原来的非集成管理环境下的电子机编数据导入,之后再修改完善。为提高效率,回溯建库前的电子版数据,能利用SQLserver的“数据转移技术”导入新数据库的都要尽量导入和利用。这样可避免不必要的频繁重复录入。
本文所探究的就是这部分电子数据在导入“集成管理系统”的新数据库后,可能交叉、重叠和阻滞;在出现这些问题时,怎样在新数据库管理系统中解决是下面研究的内容。
因原系统应用的电子编目数据都是过去业务中积累下来的准确数据,利用好这些电子编目数据,进行数据回溯可大大提高回溯建库效率和准确率。
但这些数据由于历史的不连贯性,导入新的集成管理系统数据库后,很多数据上的冲突就会凸显出来;特别是数据的交叉、重叠矛盾尤为突出。它表现在前台应用管理模块上的现象就是导致部分图书和期刊的“流通数据”受阻,造成不能实现读者机上借还。这种情况在本馆就发生存在,针对这些问题本馆承担了通辽职业学院的这一课题研究项目。此针对性的探讨研究应该具有某些普遍意义,以此为各中小馆提供借鉴。
目前各中小图书馆所用集成管理系统虽各不相同,但在后台的数据库管理系统几乎都是运用的SQLserver数据库管理软件。那么对后台SQLserver软件进行的研究也就对各中小图书馆普遍适用。研究方法是通过建立模拟的数据库模型;深入研究关系型数据库的概念模型、关系模型(逻辑模型)及物理层模型的逻辑结构;分析各电子编目“相关数据”对应数据库的库名、基本表名和相对应的字段;研究各字段的属性:字符型、数值型、长度、精度、定长、可变长等等,摸索基本表的属性变化所对应物理层数据存储的物理变化规律。
通过大量深入研究发现:前台流通信息受阻是由于电子数据回溯中产生了数据交叉、重叠而造成的。这种交叉、重叠产生的原因:
一是在导入数据前,两批数据位数不同(为说明问题下面将以登录号为例)例:一批登录号为五位“00100至00199”,另一批登录号为六位“000100至000199”,五位字符和六位字符本身并不冲突;但由于集成管理系统中的“数据库”在“馆藏信息表”中,“登录号”字段的属性设定是“定长”即固定位数(长度一般为8或10)这样导入的两批“登录号”就都变成了八位(以长度8位为例)“00000100至00000199”这样就由于不同位数“数据”的交叉而造成了数据的重叠冲突。
二是期刊和图书数据导入新数据库系统中的目的地并不是同一个“数据库”,一个是“图书数据库”,一个是“期刊数据库”。还以“登录号”数据为例:理论上讲,因两种“登录号”在导入前和导入后都应属不同“数据库”的不同“馆藏表”,根本不存在交叉、重叠问题。但事实却是:期刊的“登录号000100—000199”和图书的“登录号000100—000199”虽导入时相安无事,但导入后的表现却是只能有一样(或期刊或图书)在前台流通。
以上的探讨是在数据库理论研究前提下,经多次试验得出的结论;即数据回溯后,影响前台流通、产生数据阻滞的原因是数据的交叉和重叠。交叉和重叠的概念是:在同一数据库中出现‘主码’相同为重叠;在不同数据库中出现两个相同的“主码”为交叉。
如前分析,对导入同一“数据库”、同一“基本表”、同一“字段”的不同数据源的数据,当出现数据交叉、重叠时,表现为:或因数据交叉、重叠难以导入;或在前台表现如前第四节所述故障。对这类问题,最好在物理层面解决;经多次在“数据库”模型上试验研究发现:利用“数据库”存储介质的物理记忆性,可使导入的有交叉、重叠的数据,通过变化“字段长度”而使存储在“数据库”硬盘上的数据相异化,也就是说即使是同一数据亦可在第二次导入时,使其成为与第一次导入时“长度”不同的数据。
具体实现方法(还以登录号为例):两批有交叉、重叠的数据分别是“登录号”五位字符“00010—00100”和六位字符“000010—000100”或两批登录号都是五位字符,导入时先导入位数少的,此处先导入五位字符登录号。首先在后台打开SQLserver的“企业管理器”找到要导入的数据库,打开“馆藏信息表”的“设计表”功能;找到字段名“登录号”将其字段长度设为5;然后通过SQLserver的数据转移工具将需要设为五位字符的“登录号”导入;导入五位字符“登录号00010—00100”后,其在“集成管理系统”新数据库中的长度将固定为五位,在前台只有输入五位字符“登录号”时才能将其调出。
导入第二批“登录号”之前一定要再次打开“企业管理器”——打开同一数据库的“馆藏信息表”的“设计表”功能,将“登录号”的“长度”改为6,然后再将第二批“登录号”数据导入;第二批“登录号”甚至可以是和第一批“登录号”数据完全重叠(如同为五位字符00010—00100)但导入后的新“数据库”数据却变成了六位字符的“登录号000010—000100”。第二批“登录号”在前台表现为,只有输入够六位字符才能将其调出(而第一批登录号是输入够五位字符调出)。这样通过利用数据库的物理记忆功能,解决了两批“登录号”交叉、重叠冲突。
以上方法一定要在新系统“数据库”没有数据情况下使用,当把所有电子数据回溯完成后,应再次把“登录号长度”改为8;这样以后新书著录时的“登录号”就开始按八位处理,可同以前“回溯建库数据”区别开来。系统稳定下来后,就不要再轻易更改“登录号长度”了。
对导入不同数据库的编目数据(如期刊的登录号和图书的登录号),可通过上面的方法先在“企业管理器”中,分别在期刊数据库和图书数据库的“馆藏信息表”中将“登录号字段”的“长度”分别设为5位或6位;然后将“期刊登录号”和“图书登录号”分别导入各自的数据库。这时“期刊登录号”和“图书登录号”是有重叠和交叉的,在前台往往形成部分流通数据阻滞。
第二步应打开“企业管理器”将“登录号”的“字段长度”改为8位,然后打开SQLserver系统中的“查询分析器”,通过编入T-SQL语句,批量修改其中一个数据库中的“登录号”字段的数据来使“期刊数据库”和“图书数据库”的“登录号”彻底区分开。这里以修改“期刊登录号”为例:假设期刊数据库名为“中文期刊”、馆藏信息表名为“馆藏”、登录号字段名为“登录号”;准备将先前导入的六位字符“登录号000010-000100”前面全部加两位字符“Z0”,使其变成八位字符的“登录号Z0000010-Z0000100”彻底与图书的“登录号000010-000100”区别开。通过“查询分析器”写入的T-SQL语句如下面程序:
USE 中文期刊
UPDATE 馆藏
SET登录号=‘Z0’+ 登录号
GO
执行该程序即可将“中文期刊”数据库中的名为“馆藏”的基本表中的列名为“登录号”字段的整列所有“登录号数据”前面加两个字符“Z0”;使例子中期刊的“登录号000010-000100”修改为“Z0000010-Z0000100”,彻底解决了由于期刊和图书的登录号数据交叉、重叠而造成的前台事故。
执行上面程序有两点需特别注意:
一是此程序是无条件修改所选“基本表”的所修改“字段”的全部“列数据”。执行此程序的前提是对导入的整列数据全部修改。如果在更改前就录入了不需更改数据,“修改程序中”就要加入限制语句WHERE和限制条件,实现起来会很麻烦。
二是在执行此UPDATE语句时,应提前在SQLserver的“企业管理器”中展开要修改的表并打开“设计表”;在“设计表”对话框中,点击工具栏的“管理关系”图标,选中“级联更新相关的字段”功能。这样在修改要更新的主码值时,可同时将关联子表中的外码值一起修改。否则系统有可能拒绝运行此程序。
只要灵活运用上面两个方法,在回溯数据时,就能解决所有各种数据的交叉和重叠对系统所造成的影响。特别是在回溯建库前就设计好整个电子数据的回溯方案,更可大大提高回溯效率。
由于管理系统更新或各中小图书馆的合并而引发回溯建库,回溯建库中的电子数据回溯是其中重要一环;本馆在实践中针对回溯数据时所走过弯路和所遇难题,进行了针对性的课题研究;并提出解决方案和找出应避免的弯路。希望为其它中小图书馆的回溯建库工作提供借鉴。
(本文系通辽职业学院课题:图书编目的创新性研究(项目编号:TZYKT15021)研究成果之一。)
[1]李调阳.SQL Server 2000中文版[M].北京:海洋出版社,2009.
[2]李祝启.ISO模式下公共图书馆中文图书编目质量控制研究[J].图书馆杂志,2015(3).
[3]何玉洁.数据库基础及应用技术[M].北京:清华大学出版社,2009.