文/內(nèi)蒙古通遼職業(yè)學(xué)院圖書館 徐榮全
電子版館藏?cái)?shù)據(jù)回溯中的交叉、重疊、阻滯問(wèn)題處理
文/內(nèi)蒙古通遼職業(yè)學(xué)院圖書館徐榮全
在圖書編目數(shù)據(jù)回溯建庫(kù)實(shí)踐中,電子編目數(shù)據(jù)的回溯是其中重要環(huán)節(jié),電子數(shù)據(jù)在導(dǎo)入“圖書館集成管理系統(tǒng)”的新數(shù)據(jù)庫(kù)后,出現(xiàn)了交叉、重疊和阻滯問(wèn)題;針對(duì)這些問(wèn)題的探討,從中尋求解決方案。希望為其他中小圖書館的回溯建庫(kù)工作提供借鑒。
電子數(shù)據(jù);編目數(shù)據(jù);交叉;重疊;阻滯
在近代中國(guó)圖書館的發(fā)展歷程中,有三個(gè)關(guān)鍵性影響因素:第一個(gè)是《杜威十進(jìn)分類法》的傳人使中國(guó)圖書館的文獻(xiàn)資源分類體系開(kāi)始參照《杜威十進(jìn)分類法》按等級(jí)列舉式的學(xué)科體系分類;一改歷史上沿襲上千年的無(wú)論是“七略”的六分法還是“經(jīng)、史、子、集”的四分法;使圖書的分類方法真正意義的走上了符合科學(xué)規(guī)律的管理軌道。第二是計(jì)算機(jī)技術(shù)的發(fā)展,使圖書的編目、標(biāo)引工作由人工卡片式著錄轉(zhuǎn)為利用計(jì)算機(jī)編目、標(biāo)引。第三是機(jī)讀目錄格式MARC標(biāo)準(zhǔn)的執(zhí)行,使計(jì)算機(jī)編目實(shí)現(xiàn)了標(biāo)準(zhǔn)化;為與國(guó)際接軌,從數(shù)據(jù)結(jié)構(gòu)方面提供了保障;并使網(wǎng)絡(luò)環(huán)境下的編目數(shù)據(jù)共享成為可能。這些影響因素中特別是計(jì)算機(jī)技術(shù)的發(fā)展對(duì)圖書館的發(fā)展起了飛躍式的前進(jìn)作用;但同時(shí)也帶來(lái)了前所未有的技術(shù)上的交叉、融合與跟進(jìn)。
近20年是圖書館事業(yè)發(fā)展最快的時(shí)期;由于從計(jì)算機(jī)編目到集成管理的普遍應(yīng)用,各中小圖書館都經(jīng)歷了一段爬升期。這一時(shí)期新舊技術(shù)更替、交融頻繁,同時(shí)也隨著技術(shù)的更新而凸顯出一些新舊技術(shù)下的技術(shù)轉(zhuǎn)換難題。回溯建庫(kù)工作是各中小圖書館在技術(shù)交替時(shí)期所遇最耗時(shí)、耗力且技術(shù)難題也是最多的一項(xiàng)工作。特別是在圖書館計(jì)算機(jī)集成管理?xiàng)l件下的回溯建庫(kù)工作,不經(jīng)過(guò)系統(tǒng)化的深入研究的一些草率數(shù)據(jù)回溯行為有可能造成整個(gè)系統(tǒng)在前臺(tái)表現(xiàn)阻滯。
隨著圖書館從傳統(tǒng)業(yè)務(wù)方式向計(jì)算機(jī)編目和計(jì)算機(jī)集成業(yè)務(wù)管理的轉(zhuǎn)移,圖書數(shù)據(jù)的記錄也要經(jīng)歷一次甚至數(shù)次轉(zhuǎn)移。特別是高職院校圖書館所經(jīng)歷的過(guò)程會(huì)更復(fù)雜:因大多數(shù)高職院校圖書館都經(jīng)歷了一個(gè)在院校合并中的圖書館合并過(guò)程;這給回溯建庫(kù)工作造成的混亂性無(wú)疑是雪上加霜,在這種情況下,回溯建庫(kù)前的圖書編目就有幾種情況并存:一是手工卡片式著錄的數(shù)據(jù);二是使用集成管理系統(tǒng)前用原有系統(tǒng)計(jì)算機(jī)著錄的電子編目數(shù)據(jù);三是各館合并前用各自計(jì)算機(jī)著錄的電子編目數(shù)據(jù);四是使用集成管理系統(tǒng)后著錄的標(biāo)準(zhǔn)MARC數(shù)據(jù)。
這幾種情況在本館就曾并存過(guò)。在多種編目數(shù)據(jù)并存情況下的回溯建庫(kù)主要有兩種方法:第一,由卡片或圖書逐一回建著錄。第二,由原來(lái)的非集成管理環(huán)境下的電子機(jī)編數(shù)據(jù)導(dǎo)入,之后再修改完善。為提高效率,回溯建庫(kù)前的電子版數(shù)據(jù),能利用SQLserver的“數(shù)據(jù)轉(zhuǎn)移技術(shù)”導(dǎo)入新數(shù)據(jù)庫(kù)的都要盡量導(dǎo)入和利用。這樣可避免不必要的頻繁重復(fù)錄入。
本文所探究的就是這部分電子數(shù)據(jù)在導(dǎo)入“集成管理系統(tǒng)”的新數(shù)據(jù)庫(kù)后,可能交叉、重疊和阻滯;在出現(xiàn)這些問(wèn)題時(shí),怎樣在新數(shù)據(jù)庫(kù)管理系統(tǒng)中解決是下面研究的內(nèi)容。
因原系統(tǒng)應(yīng)用的電子編目數(shù)據(jù)都是過(guò)去業(yè)務(wù)中積累下來(lái)的準(zhǔn)確數(shù)據(jù),利用好這些電子編目數(shù)據(jù),進(jìn)行數(shù)據(jù)回溯可大大提高回溯建庫(kù)效率和準(zhǔn)確率。
但這些數(shù)據(jù)由于歷史的不連貫性,導(dǎo)入新的集成管理系統(tǒng)數(shù)據(jù)庫(kù)后,很多數(shù)據(jù)上的沖突就會(huì)凸顯出來(lái);特別是數(shù)據(jù)的交叉、重疊矛盾尤為突出。它表現(xiàn)在前臺(tái)應(yīng)用管理模塊上的現(xiàn)象就是導(dǎo)致部分圖書和期刊的“流通數(shù)據(jù)”受阻,造成不能實(shí)現(xiàn)讀者機(jī)上借還。這種情況在本館就發(fā)生存在,針對(duì)這些問(wèn)題本館承擔(dān)了通遼職業(yè)學(xué)院的這一課題研究項(xiàng)目。此針對(duì)性的探討研究應(yīng)該具有某些普遍意義,以此為各中小館提供借鑒。
目前各中小圖書館所用集成管理系統(tǒng)雖各不相同,但在后臺(tái)的數(shù)據(jù)庫(kù)管理系統(tǒng)幾乎都是運(yùn)用的SQLserver數(shù)據(jù)庫(kù)管理軟件。那么對(duì)后臺(tái)SQLserver軟件進(jìn)行的研究也就對(duì)各中小圖書館普遍適用。研究方法是通過(guò)建立模擬的數(shù)據(jù)庫(kù)模型;深入研究關(guān)系型數(shù)據(jù)庫(kù)的概念模型、關(guān)系模型(邏輯模型)及物理層模型的邏輯結(jié)構(gòu);分析各電子編目“相關(guān)數(shù)據(jù)”對(duì)應(yīng)數(shù)據(jù)庫(kù)的庫(kù)名、基本表名和相對(duì)應(yīng)的字段;研究各字段的屬性:字符型、數(shù)值型、長(zhǎng)度、精度、定長(zhǎng)、可變長(zhǎng)等等,摸索基本表的屬性變化所對(duì)應(yīng)物理層數(shù)據(jù)存儲(chǔ)的物理變化規(guī)律。
通過(guò)大量深入研究發(fā)現(xiàn):前臺(tái)流通信息受阻是由于電子數(shù)據(jù)回溯中產(chǎn)生了數(shù)據(jù)交叉、重疊而造成的。這種交叉、重疊產(chǎn)生的原因:
一是在導(dǎo)入數(shù)據(jù)前,兩批數(shù)據(jù)位數(shù)不同(為說(shuō)明問(wèn)題下面將以登錄號(hào)為例)例:一批登錄號(hào)為五位“00100至00199”,另一批登錄號(hào)為六位“000100至000199”,五位字符和六位字符本身并不沖突;但由于集成管理系統(tǒng)中的“數(shù)據(jù)庫(kù)”在“館藏信息表”中,“登錄號(hào)”字段的屬性設(shè)定是“定長(zhǎng)”即固定位數(shù)(長(zhǎng)度一般為8或10)這樣導(dǎo)入的兩批“登錄號(hào)”就都變成了八位(以長(zhǎng)度8位為例)“00000100至00000199”這樣就由于不同位數(shù)“數(shù)據(jù)”的交叉而造成了數(shù)據(jù)的重疊沖突。
二是期刊和圖書數(shù)據(jù)導(dǎo)入新數(shù)據(jù)庫(kù)系統(tǒng)中的目的地并不是同一個(gè)“數(shù)據(jù)庫(kù)”,一個(gè)是“圖書數(shù)據(jù)庫(kù)”,一個(gè)是“期刊數(shù)據(jù)庫(kù)”。還以“登錄號(hào)”數(shù)據(jù)為例:理論上講,因兩種“登錄號(hào)”在導(dǎo)入前和導(dǎo)入后都應(yīng)屬不同“數(shù)據(jù)庫(kù)”的不同“館藏表”,根本不存在交叉、重疊問(wèn)題。但事實(shí)卻是:期刊的“登錄號(hào)000100—000199”和圖書的“登錄號(hào)000100—000199”雖導(dǎo)入時(shí)相安無(wú)事,但導(dǎo)入后的表現(xiàn)卻是只能有一樣(或期刊或圖書)在前臺(tái)流通。
以上的探討是在數(shù)據(jù)庫(kù)理論研究前提下,經(jīng)多次試驗(yàn)得出的結(jié)論;即數(shù)據(jù)回溯后,影響前臺(tái)流通、產(chǎn)生數(shù)據(jù)阻滯的原因是數(shù)據(jù)的交叉和重疊。交叉和重疊的概念是:在同一數(shù)據(jù)庫(kù)中出現(xiàn)‘主碼’相同為重疊;在不同數(shù)據(jù)庫(kù)中出現(xiàn)兩個(gè)相同的“主碼”為交叉。
如前分析,對(duì)導(dǎo)入同一“數(shù)據(jù)庫(kù)”、同一“基本表”、同一“字段”的不同數(shù)據(jù)源的數(shù)據(jù),當(dāng)出現(xiàn)數(shù)據(jù)交叉、重疊時(shí),表現(xiàn)為:或因數(shù)據(jù)交叉、重疊難以導(dǎo)入;或在前臺(tái)表現(xiàn)如前第四節(jié)所述故障。對(duì)這類問(wèn)題,最好在物理層面解決;經(jīng)多次在“數(shù)據(jù)庫(kù)”模型上試驗(yàn)研究發(fā)現(xiàn):利用“數(shù)據(jù)庫(kù)”存儲(chǔ)介質(zhì)的物理記憶性,可使導(dǎo)入的有交叉、重疊的數(shù)據(jù),通過(guò)變化“字段長(zhǎng)度”而使存儲(chǔ)在“數(shù)據(jù)庫(kù)”硬盤上的數(shù)據(jù)相異化,也就是說(shuō)即使是同一數(shù)據(jù)亦可在第二次導(dǎo)入時(shí),使其成為與第一次導(dǎo)入時(shí)“長(zhǎng)度”不同的數(shù)據(jù)。
具體實(shí)現(xiàn)方法(還以登錄號(hào)為例):兩批有交叉、重疊的數(shù)據(jù)分別是“登錄號(hào)”五位字符“00010—00100”和六位字符“000010—000100”或兩批登錄號(hào)都是五位字符,導(dǎo)入時(shí)先導(dǎo)入位數(shù)少的,此處先導(dǎo)入五位字符登錄號(hào)。首先在后臺(tái)打開(kāi)SQLserver的“企業(yè)管理器”找到要導(dǎo)入的數(shù)據(jù)庫(kù),打開(kāi)“館藏信息表”的“設(shè)計(jì)表”功能;找到字段名“登錄號(hào)”將其字段長(zhǎng)度設(shè)為5;然后通過(guò)SQLserver的數(shù)據(jù)轉(zhuǎn)移工具將需要設(shè)為五位字符的“登錄號(hào)”導(dǎo)入;導(dǎo)入五位字符“登錄號(hào)00010—00100”后,其在“集成管理系統(tǒng)”新數(shù)據(jù)庫(kù)中的長(zhǎng)度將固定為五位,在前臺(tái)只有輸入五位字符“登錄號(hào)”時(shí)才能將其調(diào)出。
導(dǎo)入第二批“登錄號(hào)”之前一定要再次打開(kāi)“企業(yè)管理器”——打開(kāi)同一數(shù)據(jù)庫(kù)的“館藏信息表”的“設(shè)計(jì)表”功能,將“登錄號(hào)”的“長(zhǎng)度”改為6,然后再將第二批“登錄號(hào)”數(shù)據(jù)導(dǎo)入;第二批“登錄號(hào)”甚至可以是和第一批“登錄號(hào)”數(shù)據(jù)完全重疊(如同為五位字符00010—00100)但導(dǎo)入后的新“數(shù)據(jù)庫(kù)”數(shù)據(jù)卻變成了六位字符的“登錄號(hào)000010—000100”。第二批“登錄號(hào)”在前臺(tái)表現(xiàn)為,只有輸入夠六位字符才能將其調(diào)出(而第一批登錄號(hào)是輸入夠五位字符調(diào)出)。這樣通過(guò)利用數(shù)據(jù)庫(kù)的物理記憶功能,解決了兩批“登錄號(hào)”交叉、重疊沖突。
以上方法一定要在新系統(tǒng)“數(shù)據(jù)庫(kù)”沒(méi)有數(shù)據(jù)情況下使用,當(dāng)把所有電子數(shù)據(jù)回溯完成后,應(yīng)再次把“登錄號(hào)長(zhǎng)度”改為8;這樣以后新書著錄時(shí)的“登錄號(hào)”就開(kāi)始按八位處理,可同以前“回溯建庫(kù)數(shù)據(jù)”區(qū)別開(kāi)來(lái)。系統(tǒng)穩(wěn)定下來(lái)后,就不要再輕易更改“登錄號(hào)長(zhǎng)度”了。
對(duì)導(dǎo)入不同數(shù)據(jù)庫(kù)的編目數(shù)據(jù)(如期刊的登錄號(hào)和圖書的登錄號(hào)),可通過(guò)上面的方法先在“企業(yè)管理器”中,分別在期刊數(shù)據(jù)庫(kù)和圖書數(shù)據(jù)庫(kù)的“館藏信息表”中將“登錄號(hào)字段”的“長(zhǎng)度”分別設(shè)為5位或6位;然后將“期刊登錄號(hào)”和“圖書登錄號(hào)”分別導(dǎo)入各自的數(shù)據(jù)庫(kù)。這時(shí)“期刊登錄號(hào)”和“圖書登錄號(hào)”是有重疊和交叉的,在前臺(tái)往往形成部分流通數(shù)據(jù)阻滯。
第二步應(yīng)打開(kāi)“企業(yè)管理器”將“登錄號(hào)”的“字段長(zhǎng)度”改為8位,然后打開(kāi)SQLserver系統(tǒng)中的“查詢分析器”,通過(guò)編入T-SQL語(yǔ)句,批量修改其中一個(gè)數(shù)據(jù)庫(kù)中的“登錄號(hào)”字段的數(shù)據(jù)來(lái)使“期刊數(shù)據(jù)庫(kù)”和“圖書數(shù)據(jù)庫(kù)”的“登錄號(hào)”徹底區(qū)分開(kāi)。這里以修改“期刊登錄號(hào)”為例:假設(shè)期刊數(shù)據(jù)庫(kù)名為“中文期刊”、館藏信息表名為“館藏”、登錄號(hào)字段名為“登錄號(hào)”;準(zhǔn)備將先前導(dǎo)入的六位字符“登錄號(hào)000010-000100”前面全部加兩位字符“Z0”,使其變成八位字符的“登錄號(hào)Z0000010-Z0000100”徹底與圖書的“登錄號(hào)000010-000100”區(qū)別開(kāi)。通過(guò)“查詢分析器”寫入的T-SQL語(yǔ)句如下面程序:
USE 中文期刊
UPDATE 館藏
SET登錄號(hào)=‘Z0’+ 登錄號(hào)
GO
執(zhí)行該程序即可將“中文期刊”數(shù)據(jù)庫(kù)中的名為“館藏”的基本表中的列名為“登錄號(hào)”字段的整列所有“登錄號(hào)數(shù)據(jù)”前面加兩個(gè)字符“Z0”;使例子中期刊的“登錄號(hào)000010-000100”修改為“Z0000010-Z0000100”,徹底解決了由于期刊和圖書的登錄號(hào)數(shù)據(jù)交叉、重疊而造成的前臺(tái)事故。
執(zhí)行上面程序有兩點(diǎn)需特別注意:
一是此程序是無(wú)條件修改所選“基本表”的所修改“字段”的全部“列數(shù)據(jù)”。執(zhí)行此程序的前提是對(duì)導(dǎo)入的整列數(shù)據(jù)全部修改。如果在更改前就錄入了不需更改數(shù)據(jù),“修改程序中”就要加入限制語(yǔ)句WHERE和限制條件,實(shí)現(xiàn)起來(lái)會(huì)很麻煩。
二是在執(zhí)行此UPDATE語(yǔ)句時(shí),應(yīng)提前在SQLserver的“企業(yè)管理器”中展開(kāi)要修改的表并打開(kāi)“設(shè)計(jì)表”;在“設(shè)計(jì)表”對(duì)話框中,點(diǎn)擊工具欄的“管理關(guān)系”圖標(biāo),選中“級(jí)聯(lián)更新相關(guān)的字段”功能。這樣在修改要更新的主碼值時(shí),可同時(shí)將關(guān)聯(lián)子表中的外碼值一起修改。否則系統(tǒng)有可能拒絕運(yùn)行此程序。
只要靈活運(yùn)用上面兩個(gè)方法,在回溯數(shù)據(jù)時(shí),就能解決所有各種數(shù)據(jù)的交叉和重疊對(duì)系統(tǒng)所造成的影響。特別是在回溯建庫(kù)前就設(shè)計(jì)好整個(gè)電子數(shù)據(jù)的回溯方案,更可大大提高回溯效率。
由于管理系統(tǒng)更新或各中小圖書館的合并而引發(fā)回溯建庫(kù),回溯建庫(kù)中的電子數(shù)據(jù)回溯是其中重要一環(huán);本館在實(shí)踐中針對(duì)回溯數(shù)據(jù)時(shí)所走過(guò)彎路和所遇難題,進(jìn)行了針對(duì)性的課題研究;并提出解決方案和找出應(yīng)避免的彎路。希望為其它中小圖書館的回溯建庫(kù)工作提供借鑒。
(本文系通遼職業(yè)學(xué)院課題:圖書編目的創(chuàng)新性研究(項(xiàng)目編號(hào):TZYKT15021)研究成果之一。)
[1]李調(diào)陽(yáng).SQL Server 2000中文版[M].北京:海洋出版社,2009.
[2]李祝啟.ISO模式下公共圖書館中文圖書編目質(zhì)量控制研究[J].圖書館雜志,2015(3).
[3]何玉潔.數(shù)據(jù)庫(kù)基礎(chǔ)及應(yīng)用技術(shù)[M].北京:清華大學(xué)出版社,2009.