Where is your Aleph Data?

Report
Where is your Aleph Data?
Billy Rawles, Senior Database Engineer
Church History Library
Collections consist of manuscripts, books, Church records,
photographs, oral histories, architectural drawings, pamphlets,
newspapers, periodicals, maps, microforms, and audiovisual
materials. The collection continues to grow annually and is a
prime resource for the study of Church History. Our collection
contains approximately:
Library, Archives, and Museum collections
What are we going to talk about?
• Where tables are stored in Oracle.
• What tables contain the Aleph catalog data.
• What are the relationships between tables.
(Limit to Catalog and Item data)
Aleph Libraries
• Each Aleph Library creates an account
(schema) in Oracle.
(We created all of our libraries with LDS)
• BIB Library – LDS01
• ADM Library – LDS50
• HOLDING Library – LDS60
• AUTHORITY Library – LDS10
Catalog Data
• Aleph stores a catalog record in long data type.
• It takes the Aleph program to compress and
uncompress this data.
• Not available using SQL.
• Stored in the Z00 table.
Catalog Data – Z13
• Z13 and Z13U tables
• Makes selected data available.
• Limited number of columns
Z13 has 5 fixed data columns
Z13U has 15 data columns
Setup of Z13 and Z13U tables
• Tag22
Tells Aleph what data to load into the tables
YEAR
1 008##
CALL-NO
1 090## a
AUTHOR
1 1####
TITLE
1 245## a
245## k
249## a
IMPRINT
1 260##
261##
262##
ISBN-ISSN 1 020##
022##
USER-DEF-2 1 PST# 4
USER-DEF-3 1 PST# 5
USER-DEF-4 1 245## b
USER-6
1 900## a
USER-8
1 008##
0008 260## c
Catalog Data – Z00R
• Z00R table
• Makes Tag data available from SQL
• Created by default only in the BIB Library
• Contains all the tags, one row per tag
Setup of Z00R table
• file_list
Contains additional tables to create during library creation.
TAB z00r
IND z00r_id
IND z00r_id1
100K
100K
100K
0K
0K
0K
Found in folder:
/opt/exlibris/aleph/u20_1/xxx10
TS4D
TS3X
TS3X
Setup of Z00R table
• Execute “util a 17 1” to create the table
Setup of Z00R table
• tab100
Contains a parameter to tell Aleph to load the Z00R table.
CREATE-Z00R=Y
Found in folder
/opt/exlibris/aleph/u20_1/xxx10/tab
Setup of Z00R table
• Load Z00R table
• Aleph Service
• Manage_07
• Update Short Bibliographic Records
• Record Type - “Update only Z00R”
Setup of Z00R table
000003
000028414
001
L
000028414
000004
000028414
003
L
org.ldschurch.hmms
000005
000028414
005
L
20100930
000006
000028414
008
L
^^^^^^s1987^^^^xx^^^^^^^^^^^^|^^^^^eng^^
000008
000028414
090
L
$$aCR 571 2
000009
000028414
1102
L
$$aPacific Area (Church unit : 1984-1998; 2008- )
000010
000028414
24500
L
$$aRarotonga Cyclone Sally scrapbook$$f1987
000011
000028414
5060
L
$$aOpen for research.
000012
000028414
520
L
$$aContains color photographs, accompanied by newspaper clippings and chronological
account, relating to the destruction caused by hurricane that hit Rarotonga in the Cook Islands on 1 January 1987. Volume also details the subsequent rebuilding
efforts initiated under the direction of Elder John Sonnenberg, Pacific Area president, and John R. Lasater, president of the New Zealand Auckland Mission.
Scrapbook covers period from December 1986 through August 1987.
000018
000028414
60014
L
$$aLasater, John Roger$$d1931-
000017
000028414
60014
L
$$aSonnenberg, John$$d1922-
000019
000028414
61024
L
$$aNew Zealand Auckland Mission
000020
000028414
650 4
L
$$aDisaster relief
000021
000028414
650 4
L
$$aDisasters
000040
000028414
CAT
L
$$aDVB-2858$$b00$$c20120905$$lLDS01$$h1704
000039
000028414
CAT
L
$$aBATCH-UPD$$b00$$c20120901$$lLDS01$$h0152
000036
000028414
CAT
L
$$aCONV$$b00$$c20101005$$lLDS01$$h0258
000001
000028414
FMT
L
MX
000002
000028414
LDR
L
^^^^^npm^a22^^^^^^a^4500
000032
000028414
OWN
L
$$aARCHIVES
000033
000028414
STA
L
$$aFINAL
Setup of Z00R table
The tag data in the Z00R table is a single string of all
the subfields of the tag
$$aSonnenberg, John$$d1922-
To enable the extract of a single subfield we created a
SQL function
ldsxx.aseq_subfield(z00r_text,’a’)
Will extract the “a” subfield from the z00r_text string
The code will be at the end of the power point
LKR tag
• Enables to link catalog records
HOLDING
record
ADM record
BIB record
LKR tag
LKR tag goes in the child record pointing to the parent
000028414 LKR L $$aADM$$lLDS01$$b000028414
• $$a - Type – ADM
• $$l - Library – LDS01
• $$b - DOC Number - 000028414
LKR tag
• The following code will identify the ADM and BIB doc
numbers
select z00r_doc_number adm_doc_number,
ldsxx.aseq_subfield(z00r_text,'b') bib_doc_number
from lds50.z00r
where z00r_field_code = 'LKR'
and ldsxx.aseq_subfield(z00r_text,'l') = 'LDS01';
LKR tag
• The following code will give you the Z13 data from the
ADM and the BIB
select b.*, c.*
from lds50.z00r a, LDS01.Z13 b, lds50.z13 c
where a.z00r_field_code = 'LKR'
and ldsxx.aseq_subfield(a.z00r_text,'l') = 'LDS01'
and b.z13_rec_key = ldsxx.aseq_subfield(a.z00r_text,'b')
and C.Z13_REC_KEY = a.z00r_doc_number;
Z103 table
The Z103 table contains links that Aleph creates from
the LKR tags
z103_rec_key
z103_rec_key_1
z103_lkr_library
z103_lkr_doc_number
z103_lkr_type
LDS5000010372201 LDS50000103722
LDS01
103722
ADM
LDS5000010372202 LDS10000103722
LDS50
103722
ADM
Z103_rec_key – Where the LKR tag is that created the link, library and doc number
Z103_rec_key_1 – Contains the “from” library and doc number
Z103_lkr_library – Contains the “to” library
Z103_lkr_doc_number – Contains the “to” doc number, not left padded with zeros
Z103_lkr_type – Contains the type of link
Z103 table
• Each library has a Z103 table
• Only entries that effect records in the library are in the
table. Either on the “from” or the “to” side
• The BIB library Z103 table have both ADM and HOL
type links
Authority Headings
• Headings in the BIB records
• tab11.eng defines headings
Authority Headings
• Z01 table contains a row for each unique heading
z01_display_text is the tag data
z01_rec_key_4 links to authority
z01_aut_tag identifies the tag in the authority
Authority Heading
• Z02 identifies the BIB that the authority is in
– Z02_rec_key identifies the heading in z01
Authority Heading
Bib
Record
Authority
Record
Z02
Z01_rec_key_4
Unique
Heading From
BIB Record
Authority Heading
Select authority tag and the bib tag that references it
select d.z00r_doc_number lds10_doc_number,
d.z00r_field_code lds10_field_code,
d.z00r_text lds10_text,
c.z00r_doc_number lds01_doc_number,
c.z00r_field_code lds01_field_code,
c.z00r_text lds01_text
from lds01.z01 a, lds01.z02 b, lds01.z00r c, lds10.z00r d
where a.z01_rec_key_4 like 'LDS10%'
and B.Z02_REC_KEY like A.Z01_ACC_SEQUENCE||'%'
and c.z00r_doc_number = b.z02_doc_number
and c.z00r_text = a.z01_display_text
and d.z00r_doc_number = substr(a.z01_rec_key_4,6,9)
and d.z00r_field_code = a.z01_aut_tag
and d.z00r_text = a.z01_display_text;
Items
• Z30 table in the ADM library
• Z30_rec_key – ADM number and a sequence number
• Z30_hol_doc_number_x – HOLDING doc number
Items
ADM
record
LKR
Z30_rec_key
ITEM
BIB
record
LKR
HOLDING
record
Z30_hol_doc_number_x
Items
select ldsxx.aseq_subfield(a.z00r_text,'b') LDS01_doc_number,
substr(b.z30_rec_key,1,9) LDS50_doc_number,
b.z30_hol_doc_number_x LDS60_doc_number,
b.*
from lds50.z00r a, lds50.z30 b
where a.z00r_field_code like 'LKR%'
and ldsxx.aseq_subfield(a.z00r_text,'l') = 'LDS01'
and substr(b.z30_rec_key,1,9) = a.z00r_doc_number;
Patrons
• Z303 table
• Z303_rec_key
Circulation
• Z37 – Hold
z37_rec_key - z30_rec_key and sequence
number
z37_id - Patron z303_rec_key
Circulation
• Z36 – Loan
z36_rec_key - z30_rec_key
z36_id - Patron z303_rec_key
Exlibris Documentation
• Aleph 20 Collected Oracle Tables
• Aleph Entity Relationship Diagram-20
Questions and Answers
Billy Rawles
[email protected]
ASEQ_SUBFIELD code
•
CREATE OR REPLACE FUNCTION LDSXX.aseq_subfield
•
(
•
p_string
in
varchar2,
•
p_subfield
in
varchar2
•
)
•
RETURN VARCHAR2
•
IS
•
v_return
varchar2(1000);
•
v_pos
number;
•
v_move
boolean;
•
BEGIN
•
v_move := false;
•
v_pos := 1;
•
loop
•
exit when v_pos > length(p_string);
•
if substr(p_string,v_pos,2) = '$$' then
•
if v_move then
•
exit;
•
else
•
v_move := false;
•
if upper(substr(p_string,v_pos,3)) = upper('$$'||p_subfield) then
•
v_move := true;
•
end if;
•
end if;
•
end if;
•
if v_move then
•
v_return := v_return||substr(p_string,v_pos,1);
•
end if;
•
v_pos := v_pos + 1;
•
end loop;
•
-- Remove the subfield identifier
•
v_return := substr(v_return,4,4000);
•
return(v_return);
•
END aseq_subfield;
•
/

similar documents