1
Idiomatic Access Reports
ELSUGOctober 10, 2008
Cathy SalikaCARLI Consortium of Academic and Research Libraries in Illinois
2
Learning Access is like learning a language.
There are idioms.Things you use repeatedly.They become second nature.They build fluency.They save time.
3
This series of tables is very common
What does this query do?
Which tables aren’t needed?
4
We can get rid of MFHD_MASTER.
Queries are more efficient if you get rid of extra tables.Here’s a better query.
5
We could do this with even fewer tables…
… but I wouldn’t.
I don’t trust the BIB_ITEM table.
6
Bug 16384-15158
Sometimes when you relink a MFHD to a different bib, BIB_ITEM gets deleted, not changed.
In the clients, the item can’t be searched by barcode.
In queries, your numbers get unreliable.
It’s not a big deal, but I avoid it.
7
Bug 16384-15158Here’s a query that will tell you if you have any missing BIB_ITEM records.
If you do, please “me too” bug 16384-15158.You can fix affected bibs by relinking the MFHD to a different bib, then relinking it to the bib you want it on.
8
Another reason to get rid of extra tables from your queries
What could go wrong?
9
ITEM_BARCODE isn’t needed.If any items in reference had to be re-barcoded, they’ll appear twice in this query.
Likely? Yes.A big deal? Depends on how many
barcodes you’ve had to replace.
But tidy up and you won’t have to figure out why your counts don’t jive.
10
Another problem caused by extra tables in a querySomeone asked about the prepackaged report “Circulation Transactions by Dewey Decimal Classification“ on Voyager-L recently.
11
Basic Acquisitions Tables: POs
Bib Tables
Invoices
12
Basic Acquisitions Tables: Invoices
PO Tables
13
Which location should I use?
TEMP_LOCATION in ITEM the location used for circ policies
PERM_LOCATION in ITEMthe location used for circ policies if TEMP_LOCATION isn’t filled it
14
Which location should I use?How to get the current item location:
15
Which location should I use?LOCATION_ID in BIB_LOCATION is the
location that is used for location limiting.It SHOULD be the same as this…
If you move items around a lot, it probably is… 99% of the time.
16
Which location should I use?
Bug 83671 was fixed in Voyager V6.1, but thedata in the table haven’t been cleaned up yet.
I just avoid BIB_LOCATION in queries.
17
Which location should I use?Remember that Voyager doesn’t force you tokeep the item location and MFHD location insynch.
18
Which Call Number should I use?
There are lots to choose from !
The choice depends on your library’s data.
19
Which Call Number should I use?
In MFHD_MASTER
DISPLAY_CALL_NO is 852 subfields k, h, i, m
NORMALIZED_CALL_NO is 852 subfields h, i, m
852 $k is the call number prefix.
Does your library use prefixes?
20
Which Call Number should I use?
In MFHD_MASTER, DISPLAY_CALL_NO isformatted with a space between subfields.
$h783.9$iB122c 7983.9 B122c
$hM2117$iB122c M2117 B122c
21
Which Call Number should I use?
In MFHD_MASTER, the format of NORMALIZED_CALL_NO depends on the classification.
(More on this in a moment.)
22
Which Call Number should I use?
In MFHD_MASTER, CALL_NO_TYPE is usually the same
as the 852 first indicator. They tell you the classification.
0 = LC 5 = Shelved by title1 = Dewey 6 = Shelved separately2 = NLM 7 = Classification specified in $23 = SuDoc 8 = Other4 = Shelving number
EXCEPT, when Voyager is parsing the call number, if its
algorithms fail, CALL_NO_TYPE is changed to 8.
23
Which Call Number should I use?
Most libraries use a mix of classifications, including some home-grown ones.
24
Which Call Number should I use?
For display, always use DISPLAY_CALL_NO.
For sorting, always use NORMALIZED_CALL_NO.
For criteria, if you want the call number prefix from 852$k, use DISPLAY_CALL_NO.
For other criteria…
25
Criteria for LC numbers
NORMALIZED_CALL_NO begins with the 1-3 letter class code, followed by the class number right-justified in a 5-digit field.
ML^^410
M^2117
M^^^^2
KFA^^123
The rest of the call number follows, separated with more spaces.
26
Criteria for LC numbers
In LCCLASS_VW (example: ML410)
FIRSTLETTER M
CLASS ML
CLASSNUMBER 410
LONGCLASS ML 410
This works only when
CALL_NO_TYPE = 0 !
example: KNN122
FIRSTLETTER K
CLASS KNN
CLASSNUMBER 12.2
LONGCLASS KN 12
It doesn’t work at all for numbers with 3-letter class codes, such as foreign law!
(Bug 82369)
27
Criteria for Dewey numbers
NORMALIZED_CALL_NO begins with the complete Dewey class. Spaces are inserted after the class, before the Cutter.
783.9 W678
In DEWEYCLASS_VW (example: 783.9W678)
CLASS 783
LONGCLASS 783.9
DEWEYCLASS_VW works only when CALL_NO_TYPE = 1 !
28
Formatting: Patron Names
29
Formatting: Patron Names
30
Formatting: Currency
Currency fields in Voyager are expressed in cents, pence or other small units.
31
Formatting: UNICODE Fields
But you have to know which fields are encoded in UNICODE.
32
Formatting: UNICODE Fields
In EL Commons, there is (or will be soon)“CARLI’s Version of the Voyager Data
Dictionary for V6.1 to V7.0”
BIB_TEXT p. 11, 14, 27, 33, 36The starred fields in this table are in UTF-8. bib_id number *author character 255 begin_pub_date character 4 bib_format character 2 *coden character 6
33
Date/Time Fields
What does this query do?
34
Date/Time Fields
Not very useful…
35
Date/Time Fields: Better!
Circulation Transactions (Charges) includes both currently charged and discharged transactions.
36
Date/Time Fields: Good!
DateValue chops off the time, leaving just the date.
37
Date/Time Fields: Good!
38
Another way to mess up this simple little query…
Moral: Always count a field that you’re sure is filled in. I usually count an _ID field that I’ve used for linking.
39
One more moral…
Save your queries, especially the ones you use for routine statistics.
Sometimes it’s more important to be
consistent than to be correct
40
Thank you!