University Library
JSD Demo Example
Archive File Name: DD_UNIV
Contact: Stephen Ferg (steve@ferg.org)

2003-01-19 22:58:27

Project Home Page
1     NOTE   Introductory Notes
2     CLASS   Copy
3     CLASS   Item
4     CLASS   Loan
5     CLASS   Member
6     CLASS   Reservation
7     EVENT   Acquire_Copy
8     EVENT   Acquire_Item
9     EVENT   Cancel_Reservation
10     EVENT   Dispose_Copy
11     EVENT   End_Loan
12     EVENT   Go_To_Rebind
13     EVENT   Join_University
14     EVENT   Leave_University
15     EVENT   Make_Reservation
16     EVENT   Remove_Item
17     EVENT   Renew_Loan
18     EVENT   Return_From_Rebind
19     EVENT   Satisfy_Reservation
20     EVENT   Start_Loan
21     EVENT   Tgm_Day
22     FUNCTION   Act_On_Reservation
23     FUNCTION   Letter_Lister
24     FUNCTION   Member_Leaves_University
25     DATA_ELEMENT   Acquisition_Date
26     DATA_ELEMENT   Author_Name
27     DATA_ELEMENT   Copy_Id
28     DATA_ELEMENT   Isbn
29     DATA_ELEMENT   Item_Id
30     DATA_ELEMENT   Item_Name
31     DATA_ELEMENT   Last_Loan_Date
32     DATA_ELEMENT   Loan_Count
33     DATA_ELEMENT   Loan_Date
34     DATA_ELEMENT   Member_Id
35     DATA_ELEMENT   Member_Name
36     DATA_ELEMENT   Publisher_Name
37     DATA_ELEMENT   Reservation_Count
38     DATA_ELEMENT   Reservation_Date
39     DATA_ELEMENT   Reservation_Id
40     DATA_ELEMENT   Return_Date
41     DATA_ELEMENT   Tgm_Date
42     DATA_ELEMENT   Year_Published
43     DATA_TYPE   &author_name
44     DATA_TYPE   &code_yn
45     DATA_TYPE   &copy_id
46     DATA_TYPE   &date
47     DATA_TYPE   &date_day
48     DATA_TYPE   &date_year
49     DATA_TYPE   &isbn
50     DATA_TYPE   &item_id
51     DATA_TYPE   &item_name
52     DATA_TYPE   &loan_count
53     DATA_TYPE   &member_id
54     DATA_TYPE   &member_status
55     DATA_TYPE   &person_name
56     DATA_TYPE   &phone_number
57     DATA_TYPE   &publisher_name
58     DATA_TYPE   &reservation_count
59     DATA_TYPE   &reservation_id
60     DATA_TYPE   &small_count
61     DATA_TYPE   &state_abbreviation
62     DATA_TYPE   &time
63     DATA_TYPE   &us$
64     DATA_TYPE   &zip_code_10
65     BASIC_TYPE   &Alpha_Id
66     BASIC_TYPE   &Amount
67     BASIC_TYPE   &Amount_Char
68     BASIC_TYPE   &Char_Id
69     BASIC_TYPE   &Integer
70     BASIC_TYPE   &Number
71     BASIC_TYPE   &Num_Char_Id
72     BASIC_TYPE   &Num_Id
73     BASIC_TYPE   &Primitive_Date_Day
74     BASIC_TYPE   &Primitive_Date_Month
75     BASIC_TYPE   &Primitive_Date_Year
76     BASIC_TYPE   &String
77     BASIC_TYPE   &Time_Minute



Entry number 1                    Table of Contents

.NOTE........: Introductory Notes
.DESCRIPTION.:
This dictionary holds a JSD-style specification for the University Library system. The University Library example is a standard example used to teach JSD.

For information about JSD see System Development by Michael Jackson, and JSP and JSD edited by John Cameron.

In a concession to object-oriented terminology, this dictionary specifies the model in terms of "classes" and "events", rather than JSD "entities" and "actions".

The dictionary is maintained in a software package called Wyx.

For portability, the JSD action structure (entity life history) diagrams in this dictionary have been rendered in ASCII (rather than linedraw) characters.


Entry number 2                    Table of Contents

.CLASS.......: Copy
.OBJECT_TYPE.: ENTITY model process
.CHAR_30_NAME: COPY
.PLATFORMS...: SYBASE
.DESCRIPTION.:
A COPY is a physical copy of an item. Note that COPY is identifier-dependent on ITEM.

.COMPOSITION.:
item_id &item_id
copy_id &copy_id
;[endpk]
acquisition_date &date
last_loan_date &date


.PROCESS_DIAGRAM: (COPY)
Refreshed from file: process\copy-class.pdd
Diagram created 2001-03-24 at 11:31pm by Ferg_S
                                  _____________
                                 |             |
                                 |    COPY     |
                                 |             |
                                 |_____________|
                         _______________|_______________
                   ______|______  ______|______  ______|______
                  |             ||             ||             |
                  |  <acquire   ||    COPY     ||  <dispose   |
                  |    COPY>    ||    body     ||    COPY>    |
                  |_____________||_____________||_____________|
                                        |
                                  ______|______
                                 |            *|
                                 |      1      |
                                 |availability |
                                 |    cycle    |
                                 |_____________|
                      __________________|___________________
                ______|______                        ______|______
               |            o|                      |            o|
               |    lend     |                      |   rebind    |
               |   episode   |                      |   episode   |
               |_____________|                      |_____________|
       _______________|_______________              _______|________
 ______|______  ______|______  ______|______  ______|______  ______|______
|             ||             ||             ||             ||             |
|   <start    ||  possible   ||    <end     ||     <go     ||   <return   |
|    loan>    ||  renewals   ||    loan>    ||     to      ||    from     |
|             ||             ||             ||   rebind>   ||   rebind>   |
|_____________||_____________||_____________||_____________||_____________|
                      |
                ______|______
               |            *|
               |   <renew    |
               |    loan>    |
               |_____________|

.PROCESS_EVENTS:
acquire_copy
start_loan
renew_loan
end_loan
go_to_rebind
return_from_rebind
dispose_copy


Entry number 3                    Table of Contents

.CLASS.......: Item
.OBJECT_TYPE.: ENTITY model process
.CHAR_30_NAME: ITEM
.PLATFORMS...: SYBASE
.DESCRIPTION.:
A ITEM is an abstract entity: the work itself, as opposed to its physical embodiments in various copies.

.COMPOSITION.:
item_id &item_id
;[endpk]
item_name &item_name
author_name &author_name
publisher_name &publisher_name
year_published &date_year
isbn &isbn
reservation_count &reservation_count
; copy_id is the numeric id of the last copy_id
; that was assigned for this item.
; it is used in generating the next copy_id
copy_id &copy_id


.PROCESS_DIAGRAM: (ITEM)
Refreshed from file: process\item-class.pdd
Diagram created 2001-03-24 at 11:31pm by Ferg_S
                _____________
               |             |
               |    ITEM     |
               |_____________|
       _______________|_______________
 ______|______  ______|______  ______|______
|             ||             ||             |
|  <acquire   ||    item     ||   <remove   |
|    ITEM>    ||    body     ||    ITEM>    |
|_____________||_____________||_____________|
                      |
                ______|______
               |            *|
               |      1      |
               |    item     |
               |   action    |
               |_____________|
                      |
                ______|______
               |             |
               |    <make    |
               |reservation> |
               |_____________|

.PROCESS_EVENTS:
acquire_item
make_reservation
remove_item


Entry number 4                    Table of Contents

.CLASS.......: Loan
.OBJECT_TYPE.: RELATIONSHIP model process
.CHAR_30_NAME: Loan
.PLATFORMS...: SYBASE
.DESCRIPTION.:
A loan is the lending of a particular physical copy of an item. to a member of the university.

.COMPOSITION.:
item_id &item_id
copy_id &copy_id
;[endpk]
member_id &member_id
loan_date &date_day


.PROCESS_DIAGRAM: (LOAN)
Refreshed from file: process\loan-class.pdd
Diagram created 2001-03-24 at 11:32pm by Ferg_S
            _________
           |         |
           |  LOAN   |
           |_________|
     ___________|___________
 ____|____  ____|____  ____|____
|         ||         ||         |
| <start  ||possible ||  <end   |
|  loan>  ||renewals ||  loan>  |
|_________||_________||_________|
                |
            ____|____
           |        *|
           | <renew  |
           |  loan>  |
           |_________|

.PROCESS_EVENTS:
start_loan
renew_loan
end_loan


Entry number 5                    Table of Contents

.CLASS.......: Member
.OBJECT_TYPE.: ENTITY model process
.CHAR_30_NAME: Member
.PLATFORMS...: SYBASE
.DESCRIPTION.:
A member of the university: a professor, student, employee, visiting member.

.COMPOSITION.:
member_id &member_id
;[endpk]
member_name &person_name
loan_count &loan_count
reservation_count &reservation_count


.PROCESS_DIAGRAM: (MEMBER)
Refreshed from file: process\member-class.pdd
Diagram created 2001-03-24 at 11:32pm by Ferg_S
                                                 _____________
                                                |             |
                                                |   MEMBER    |
                                                |_____________|
                             __________________________|___________________________
                       ______|______  ______|______                         ______|______
                      |             ||             |                       |             |
                      |    <join    ||   member    |                       |   <leave    |
                      | university> ||    body     |                       | university> |
                      |_____________||_____________|                       |_____________|
                                            |
                                      ______|______
                                     |            *|
                                     |     one     |
                                     |    event    |
                                     |_____________|
       _____________________________________|______________________________________
 ______|______  ______|______  ______|______  ______|______  ______|______  ______|______
|            o||            o||            o||            o||            o||            o|
|   <start    ||   <renew    ||    <end     ||    <make    ||   <cancel   ||  <satisfy   |
|    loan>    ||    loan>    ||    loan>    ||reservation> ||reservation> ||reservation> |
|_____________||_____________||_____________||_____________||_____________||_____________|

.PROCESS_EVENTS:
join_university
start_loan
renew_loan
end_loan
make_reservation
cancel_reservation
satisfy_reservation
leave_university


Entry number 6                    Table of Contents

.CLASS.......: Reservation
.OBJECT_TYPE.: RELATIONSHIP model process
.CHAR_30_NAME: Reservtn
.PLATFORMS...: SYBASE
.DESCRIPTION.:
A reservation is a request by a member that the next available COPY of a given ITEM be held for him, so that he may check it out.

.COMPOSITION.:
reservation_id &reservation_id
; [endpk]
item_id &item_id
member_id &member_id
reservation_date &date


.PROCESS_DIAGRAM: (RESERVATION)
Refreshed from file: process\reservation-class.pdd
Diagram created 2001-03-24 at 11:32pm by Ferg_S

The lifecycle of a reservation for a particular item

           _____________
          |             |
          | Reservation |
          |_____________|
          _______|________
    ______|______  ______|______
   |             ||             |
   |    <make    || Reservation |
   |reservation> ||    life     |
   |_____________||_____________|
              ___________|____________
        ______|______          ______|______
       |            ?|        |            ?|
       |   Normal    |        |   Aborted   |
       |    life     |        |    life     |
       |_____________|        |_____________|
       _______|________              |
 ______|______  ______|______  ______|______
|            o||            o||             |
|  <satisfy   ||   <cancel   ||   <cancel   |
|reservation> ||reservation> ||reservation> |
|             ||    QUIT     ||             |
|_____________||_____________||_____________|

.PROCESS_EVENTS:
make_reservation
satisfy_reservation
cancel_reservation


Entry number 7                    Table of Contents

.EVENT.......: Acquire_Copy
.DESCRIPTION.:
The library acquires a copy of an item.

This event represents the acquisition of a single copy.

Note, though, that for popular items, the library may acquire multiple copies at the same time, with the same purchase order.

.COMPOSITION.:
item_id &item_id
copy_id &copy_id
;[endpk]
acquisition_date &date

.BackwardReferences:
see CLASS Copy



Entry number 8                    Table of Contents

.EVENT.......: Acquire_Item
.DESCRIPTION.:
The library acquires information about an item. That is, information about the item is entered into the library's database.

Note that this is not the same as acquiring a copy of the item. The library may acquire information about an item long before it decides to purchase a copy of the item, and in some cases a copy may never actually be purchased.

.COMPOSITION.:
item_id &item_id
;[endpk]
item_name &item_name
author_name &author_name
publisher_name &publisher_name
year_published &date_year
isbn &isbn

.BackwardReferences:
see CLASS Item



Entry number 9                    Table of Contents

.EVENT.......: Cancel_Reservation
.DESCRIPTION.:
For some reason, a reservation is cancelled without being satisfied.

A member may telephone a member of the library staff, saying that he wishes to cancel the reservation. Or he may write a letter or speak to a librarian in person.

Typically this event occurs when a person has been waiting for a reserved item for so long, that he is no longer interested in obtaining it.

.COMPOSITION.:
reservation_id &reservation_id

.BackwardReferences:
see CLASS Member
see CLASS Reservation



Entry number 10                    Table of Contents

.EVENT.......: Dispose_Copy
.DESCRIPTION.:
A copy of an item is disposed of, so that the library no longer stocks that particular copy.

A copy may be disposed of if it is too worn or damaged to be worth repairing. Or perhaps very few loans of a particular item are being made, and the librarian decides to dispose of some or all of the copies in order to free up shelf space for other more active items.

.COMPOSITION.:
item_id &item_id
copy_id &copy_id

.BackwardReferences:
see CLASS Copy



Entry number 11                    Table of Contents

.EVENT.......: End_Loan
.DESCRIPTION.:
A member of the library returns a copy of an item that he has checked out of the library.

If there are any outstanding reservations associated with the item, then:

.COMPOSITION.:
item_id &item_id
copy_id &copy_id
;[endpk]
return_date &date

.BackwardReferences:
see CLASS Copy
see CLASS Loan
see CLASS Member



Entry number 12                    Table of Contents

.EVENT.......: Go_To_Rebind
.DESCRIPTION.:
A copy of an item goes out for repair. Most often, a copy of a book needs to be rebound. In some cases, a record, video or audio tape, or CD -- or its package -- needs to be repaired.

.COMPOSITION.:
item_id &item_id
copy_id &copy_id
;[endpk]

.BackwardReferences:
see CLASS Copy



Entry number 13                    Table of Contents

.EVENT.......: Join_University
.DESCRIPTION.:
A member joins the university.

.COMPOSITION.:
member_id &member_id
;[endpk]
member_name &person_name

.BackwardReferences:
see CLASS Member



Entry number 14                    Table of Contents

.EVENT.......: Leave_University
.DESCRIPTION.:
A member leaves the University. This includes cases where the member leaves to go elsewhere, but also cases where the member dies.

.COMPOSITION.:
member_id &member_id
;[endpk]

.BackwardReferences:
see CLASS Member



Entry number 15                    Table of Contents

.EVENT.......: Make_Reservation
.DESCRIPTION.:
A member places a reservation for an item.

.COMPOSITION.:
reservation_id &reservation_id
; [endpk]
item_id &item_id
member_id &member_id
reservation_date &date

.BackwardReferences:
see CLASS Item
see CLASS Member
see CLASS Reservation



Entry number 16                    Table of Contents

.EVENT.......: Remove_Item
.DESCRIPTION.:
Information about an item is deleted from the library databases.

Note that this action is not allowed to happen if the library owns any copies of the item.

.COMPOSITION.:
item_id &item_id
;[endpk]

.BackwardReferences:
see CLASS Item



Entry number 17                    Table of Contents

.EVENT.......: Renew_Loan
.DESCRIPTION.:
A member renews an existing loan.

Note that a loan may not be renewed more than once.

.COMPOSITION.:
item_id &item_id
copy_id &copy_id
;[endpk]
loan_date &date

.BackwardReferences:
see CLASS Copy
see CLASS Loan
see CLASS Member



Entry number 18                    Table of Contents

.EVENT.......: Return_From_Rebind
.DESCRIPTION.:
A copy of an item returns from repair work.

When this happens, the copy again becomes available to be lent. If there are any outstanding reservations for the item, the copy is placed on "hold" and notification is sent to the reservation-holder that a copy is available for pickup. If there are no outstanding reservations, then the copy is returned to the open shelves.

.COMPOSITION.:
item_id &item_id
copy_id &copy_id
; [endpk]

.BackwardReferences:
see CLASS Copy



Entry number 19                    Table of Contents

.EVENT.......: Satisfy_Reservation
.DESCRIPTION.:
A reservation is ended because it is satisfied. That is, a copy of the item that the member reserved, is returned to the library, and the member is notified that the copy is available for check-out.

Note that the reservation is satisfied when the copy is returned and the member is notified. We don't actually have to wait for the member to come in and check out the copy (an event that might never happen) for the reservation to end.

The sending of a message about this event is triggered by the occurrence of the end_loan event. When a loan is ended, and a copy of an item is returned to the library, we check to see if there were any reservations for (copies of) the item.

NOTE: The sending of this message can be triggered by the occurrence of the end_loan event, this message can be sent into the system by a human being (a librarian) or generated within the system by an interactive function.

The message is sent to MEMBER because it is used to decrement the member's reservation_count.

.COMPOSITION.:
reservation_id &reservation_id
member_id &member_id

.BackwardReferences:
see CLASS Member
see CLASS Reservation



Entry number 20                    Table of Contents

.EVENT.......: Start_Loan
.DESCRIPTION.:
A library member borrows a copy of an item, thus starting the life of a loan.

.COMPOSITION.:
item_id &item_id
copy_id &copy_id
member_id &member_id
;[endpk]
loan_date &date

.BackwardReferences:
see CLASS Copy
see CLASS Loan
see CLASS Member



Entry number 21                    Table of Contents

.EVENT.......: Tgm_Day
.DESCRIPTION.:
A time-grain marker that is created once per day, for functions that must be run once per day.

.COMPOSITION.:
tgm_date &date_day
;[endpk]


Entry number 22                    Table of Contents

.FUNCTION....: Act_On_Reservation
.SOURCE......:
.DESCRIPTION.:
When a copy of an item becomes available for members having a reservation on that item, this function:

.COMPOSITION.:
item_id                          &item_id


Entry number 23                    Table of Contents

.FUNCTION....: Letter_Lister
.SOURCE......:
.DESCRIPTION.:
Once a day, print all of the letters that need to be sent out.

.COMPOSITION.:
letters_sent_date
letters_sent_count


Entry number 24                    Table of Contents

.FUNCTION....: Member_Leaves_University
.SOURCE......:
.DESCRIPTION.:
When a member leaves the university for some reason.

.COMPOSITION.:
 member_id                               &member_id
;[endpk]


Entry number 25                    Table of Contents

.DATA_ELEMENT: Acquisition_Date
.DATA_TYPE...: &date_day
.CHAR_30_NAME: acquisition_date
.DESCRIPTION.:
The date that a copy of an item was acquired

.BackwardReferences:
see CLASS Copy
see EVENT Acquire_Copy



Entry number 26                    Table of Contents

.DATA_ELEMENT: Author_Name
.DATA_TYPE...: &author_name
.CHAR_30_NAME: author_name
.DESCRIPTION.:
The name of an author of an item.

Note that this may not be the name of a person. Sometimes organizations are considered to be the author of an item.

.BackwardReferences:
see CLASS Item
see EVENT Acquire_Item



Entry number 27                    Table of Contents

.DATA_ELEMENT: Copy_Id
.DATA_TYPE...: &copy_id
.CHAR_30_NAME: copy_id
.DESCRIPTION.:
The identifier of a particular copy of an item.

.BackwardReferences:
see CLASS Copy
see CLASS Item
see CLASS Loan
see EVENT Acquire_Copy
see EVENT Dispose_Copy
see EVENT End_Loan
see EVENT Go_To_Rebind
see EVENT Renew_Loan
see EVENT Return_From_Rebind
see EVENT Start_Loan



Entry number 28                    Table of Contents

.DATA_ELEMENT: Isbn
.DATA_TYPE...: &isbn
.CHAR_30_NAME: isbn
.DESCRIPTION.:
The ISBN number that identifies an item.

.BackwardReferences:
see CLASS Item
see EVENT Acquire_Item



Entry number 29                    Table of Contents

.DATA_ELEMENT: Item_Id
.LOGICAL_NAME: ITEM_id
.CHAR_30_NAME: ITEM_id
.DATA_TYPE...: &item_id
.DESCRIPTION.:
The identifier of a ITEM. NOTE that this is NOT the title, because it is possible for several different items (works) to have the same title.

.BackwardReferences:
see CLASS Copy
see CLASS Item
see CLASS Loan
see CLASS Reservation
see EVENT Acquire_Copy
see EVENT Acquire_Item
see EVENT Dispose_Copy
see EVENT End_Loan
see EVENT Go_To_Rebind
see EVENT Make_Reservation
see EVENT Remove_Item
see EVENT Renew_Loan
see EVENT Return_From_Rebind
see EVENT Start_Loan



Entry number 30                    Table of Contents

.DATA_ELEMENT: Item_Name
.DATA_TYPE...: &item_name
.CHAR_30_NAME: item_name
.DESCRIPTION.:
The name or title of an item.

.BackwardReferences:
see CLASS Item
see EVENT Acquire_Item



Entry number 31                    Table of Contents

.DATA_ELEMENT: Last_Loan_Date
.DATA_TYPE...: &date_day
.CHAR_30_NAME: last_loan_date
.DESCRIPTION.:
The date when a particular copy of an item was last loaned out. If the loan was renewed, the date when the loan was renewed.

.BackwardReferences:
see CLASS Copy



Entry number 32                    Table of Contents

.DATA_ELEMENT: Loan_Count
.DATA_TYPE...: &small_count
.CHAR_30_NAME: loan_count
.DESCRIPTION.:
The number of active loans that a member currently has.

.BackwardReferences:
see CLASS Member



Entry number 33                    Table of Contents

.DATA_ELEMENT: Loan_Date
.DATA_TYPE...: &date_day
.CHAR_30_NAME: loan_date
.DESCRIPTION.:
The date when a particular copy of an item was last loaned out. If the loan was renewed, the date when the loan was renewed.

.BackwardReferences:
see CLASS Loan
see EVENT Renew_Loan
see EVENT Start_Loan



Entry number 34                    Table of Contents

.DATA_ELEMENT: Member_Id
.LOGICAL_NAME: Member_id
.CHAR_30_NAME: Member_id
.DATA_TYPE...: &Member_id
.DESCRIPTION.:
The identifier of a member of the university.

.BackwardReferences:
see CLASS Loan
see CLASS Member
see CLASS Reservation
see EVENT Join_University
see EVENT Leave_University
see EVENT Make_Reservation
see EVENT Satisfy_Reservation
see EVENT Start_Loan



Entry number 35                    Table of Contents

.DATA_ELEMENT: Member_Name
.DATA_TYPE...: &person_name
.CHAR_30_NAME: member_name
.DESCRIPTION.:
The name of a member of the university.

.BackwardReferences:
see CLASS Member
see EVENT Join_University



Entry number 36                    Table of Contents

.DATA_ELEMENT: Publisher_Name
.DATA_TYPE...: &publisher_name
.CHAR_30_NAME: publisher_name
.DESCRIPTION.:
The name of a person or company that publishes items of interest to the library.

.BackwardReferences:
see CLASS Item
see EVENT Acquire_Item



Entry number 37                    Table of Contents

.DATA_ELEMENT: Reservation_Count
.DATA_TYPE...: &small_count
.CHAR_30_NAME: reservation_count
.DESCRIPTION.:
The number of active reservations that a member currently has.

.BackwardReferences:
see CLASS Item
see CLASS Member



Entry number 38                    Table of Contents

.DATA_ELEMENT: Reservation_Date
.DATA_TYPE...: &date_day
.CHAR_30_NAME: reservation_date
.DESCRIPTION.:
The date when a reservation was made for an item.

.BackwardReferences:
see CLASS Reservation
see EVENT Make_Reservation



Entry number 39                    Table of Contents

.DATA_ELEMENT: Reservation_Id
.DATA_TYPE...: &reservation_id
.CHAR_30_NAME: reservation_id
.DESCRIPTION.:
The identifier of an item reservation.

.BackwardReferences:
see CLASS Reservation
see EVENT Cancel_Reservation
see EVENT Make_Reservation
see EVENT Satisfy_Reservation



Entry number 40                    Table of Contents

.DATA_ELEMENT: Return_Date
.DATA_TYPE...: &date_day
.CHAR_30_NAME: return_date
.DESCRIPTION.:
The last date of an outstanding loan. That is, the date on which the copy is due to be returned.

.BackwardReferences:
see EVENT End_Loan



Entry number 41                    Table of Contents

.DATA_ELEMENT: Tgm_Date
.DATA_TYPE...: &date_day
.CHAR_30_NAME: tgm_date
.DESCRIPTION.:
A time-grain marker at the date (rather than, say, the year or minute) level.

.BackwardReferences:
see EVENT Tgm_Day



Entry number 42                    Table of Contents

.DATA_ELEMENT: Year_Published
.DATA_TYPE...: &date_year
.CHAR_30_NAME: year_published
.DESCRIPTION.:
The year in which an item was published.

.BackwardReferences:
see CLASS Item
see EVENT Acquire_Item



Entry number 43                    Table of Contents

.DATA_TYPE...: &author_name
.BASIC_TYPE..: &STRING (50)
.DESCRIPTION.:
.BackwardReferences:
see CLASS Item
see DATA_ELEMENT Author_Name



Entry number 44                    Table of Contents

.DATA_TYPE...: &code_yn
.BASIC_TYPE..: &ALPHA_ID (1)
.DESCRIPTION.:
.VALUES_&_MEANINGS:
   "Y"  Yes
   "N"  No


Entry number 45                    Table of Contents

.DATA_TYPE...: &copy_id
.BASIC_TYPE..: &NUM_ID (4)
.DESCRIPTION.:
.BackwardReferences:
see CLASS Copy
see CLASS Item
see CLASS Loan
see DATA_ELEMENT Copy_Id



Entry number 46                    Table of Contents

.DATA_TYPE...: &date
.BASIC_TYPE..: &PRIMITIVE_DATE_DAY
.DESCRIPTION.:
.BackwardReferences:
see CLASS Copy
see CLASS Reservation



Entry number 47                    Table of Contents

.DATA_TYPE...: &date_day
.BASIC_TYPE..: &PRIMITIVE_DATE_DAY
.DESCRIPTION.:
Identifies a particular day of a particular year, e.g. January 23, 2003.

.BackwardReferences:
see CLASS Loan
see DATA_ELEMENT Acquisition_Date
see DATA_ELEMENT Last_Loan_Date
see DATA_ELEMENT Loan_Date
see DATA_ELEMENT Reservation_Date
see DATA_ELEMENT Return_Date
see DATA_ELEMENT Tgm_Date



Entry number 48                    Table of Contents

.DATA_TYPE...: &date_year
.BASIC_TYPE..: &PRIMITIVE_DATE_YEAR
.DESCRIPTION.:
Identifies a particular year, e.g. 1999 or 2003.

.BackwardReferences:
see CLASS Item
see DATA_ELEMENT Year_Published



Entry number 49                    Table of Contents

.DATA_TYPE...: &isbn
.BASIC_TYPE..: &CHAR_ID (15)
.DESCRIPTION.:
.BackwardReferences:
see CLASS Item
see DATA_ELEMENT Isbn



Entry number 50                    Table of Contents

.DATA_TYPE...: &item_id
.BASIC_TYPE..: &NUM_ID (8)
.DESCRIPTION.:
.BackwardReferences:
see CLASS Copy
see CLASS Item
see CLASS Loan
see CLASS Reservation
see DATA_ELEMENT Item_Id



Entry number 51                    Table of Contents

.DATA_TYPE...: &item_name
.BASIC_TYPE..: &STRING (40)
.DESCRIPTION.:
.BackwardReferences:
see CLASS Item
see DATA_ELEMENT Item_Name



Entry number 52                    Table of Contents

.DATA_TYPE...: &loan_count
.BASIC_TYPE..: &amount
.DESCRIPTION.:
The number of active loans that a member currently has.

.BackwardReferences:
see CLASS Member



Entry number 53                    Table of Contents

.DATA_TYPE...: &member_id
.BASIC_TYPE..: &NUM_ID (5)
.DESCRIPTION.:
.VALUES_&_MEANINGS:
.BackwardReferences:
see CLASS Loan
see CLASS Member
see CLASS Reservation
see DATA_ELEMENT Member_Id



Entry number 54                    Table of Contents

.DATA_TYPE...: &member_status
.BASIC_TYPE..: &NUM_ID (1)
.DESCRIPTION.:
.VALUES_&_MEANINGS:

Entry number 55                    Table of Contents

.DATA_TYPE...: &person_name
.BASIC_TYPE..: &STRING (35)
.DESCRIPTION.:
.BackwardReferences:
see CLASS Member
see DATA_ELEMENT Member_Name



Entry number 56                    Table of Contents

.DATA_TYPE...: &phone_number
.BASIC_TYPE..: &NUM_CHAR_ID (13)
.DESCRIPTION.:
A phone number

.FORMAT......: AAAEEENNNNXXX
     AAA  represents a 3-digit area code
     EEE  represents a 3-digit exchange code
     NNNN represents a 4-digit telephone number
     XXX  represents a 1-to-3 digit extension [this part may be blank]


Entry number 57                    Table of Contents

.DATA_TYPE...: &publisher_name
.BASIC_TYPE..: &STRING (45)
.DESCRIPTION.:
.BackwardReferences:
see CLASS Item
see DATA_ELEMENT Publisher_Name



Entry number 58                    Table of Contents

.DATA_TYPE...: &reservation_count
.BASIC_TYPE..: &amount
.DESCRIPTION.:
Tbe number of reservations outstanding for a particular title.

.BackwardReferences:
see CLASS Item
see CLASS Member



Entry number 59                    Table of Contents

.DATA_TYPE...: &reservation_id
.BASIC_TYPE..: &NUM_ID (5)
.DESCRIPTION.:
.BackwardReferences:
see CLASS Reservation
see DATA_ELEMENT Reservation_Id



Entry number 60                    Table of Contents

.DATA_TYPE...: &small_count
.BASIC_TYPE..: &INTEGER (2)
.DESCRIPTION.:
.BackwardReferences:
see DATA_ELEMENT Loan_Count
see DATA_ELEMENT Reservation_Count



Entry number 61                    Table of Contents

.DATA_TYPE...: &state_abbreviation
.BASIC_TYPE..: &ALPHA_ID (2)
.DESCRIPTION.:
A two-character code representing a state.

Example: "VA" represents Virginia


Entry number 62                    Table of Contents

.DATA_TYPE...: &time
.BASIC_TYPE..: &TIME_MINUTE
.DESCRIPTION.:
The time, to the granularity of a minute.

.FORMAT......: HHMM
  Example:
     "0000" [invalid]
     "0101" 1 minute and 1 second after 1 am
     "1200" noon
     "1300" 1 pm
     "2400" midnight


Entry number 63                    Table of Contents

.DATA_TYPE...: &us$
.BASIC_TYPE..: &AMOUNT (13,5)
.DESCRIPTION.:
A money amount, expressed in U.S. dollars

.FORMAT......: 99999998.99999

Entry number 64                    Table of Contents

.DATA_TYPE...: &zip_code_10
.BASIC_TYPE..: &NUM_CHAR_ID (10)
.DESCRIPTION.:
Zip code of the Member

.FORMAT......: ZZZZZ-EEEE
    ZZZZZ = 5-digit zip
    -     = a dash
    EEEE  = 4-digit extension, to create a 9-digit zip code

Optionally, positions 6-10 (the last 5 characters) may be blank, if only
information on the 5-digit zip is available.

User-defined null for items of this type is all blanks.


Entry number 65                    Table of Contents

.BASIC_TYPE..: &Alpha_Id
.DESCRIPTION.:
A code that contains only alphabetic characters.

.ARGUMENTS...: Length
.PLATFORM....: SYBASE
   select
   when length <= 40    then datatype =       "char" paren(length)
   otherwise                 datatype =    "varchar" paren(length)
   end /*select*/

.END_PLATFORM:
.BackwardReferences:
see DATA_TYPE &code_yn
see DATA_TYPE &state_abbreviation



Entry number 66                    Table of Contents

.BASIC_TYPE..: &Amount
.DESCRIPTION.:
A number that represents an amount of something, measured in a

specified kind of unit. For example, an amount of distance

might be measured in units of miles (or kilometers, or feet, or

inches) , an amount of money in American dollars (or French

francs, or Japanese yen), etc.

.ARGUMENTS...: Length [Decimals]
   if Decimals = "" then Decimals = 0

.PLATFORM....: SYBASE
   /* allow for decimal point in a string representation of a number */
   if Decimals \= 0 then length = length + 1
   datatype = "decimal" paren(length)

.END_PLATFORM:
.BackwardReferences:
see DATA_TYPE &loan_count
see DATA_TYPE &reservation_count
see DATA_TYPE &us$



Entry number 67                    Table of Contents

.BASIC_TYPE..: &Amount_Char
.DESCRIPTION.:
An amount, ALWAYS represented as a character string in SHAREBASE.

.ARGUMENTS...: Length [Decimals]
   if Decimals = "" then Decimals = 0

.PLATFORM....: SYBASE
   /* allow for decimal point in a string representation of a number */
   if Decimals \= 0 then length = length + 1
   datatype = "decimal" paren(length)

.END_PLATFORM:

Entry number 68                    Table of Contents

.BASIC_TYPE..: &Char_Id
.DESCRIPTION.:
A code that may contain any kind of characters (alphabetic,

numeric, or other).

.ARGUMENTS...: Length
.PLATFORM....: SYBASE
   select
   when length <= 40    then datatype =       "char" paren(length)
   otherwise                 datatype =    "varchar" paren(length)
   end /*select*/

.END_PLATFORM:
.BackwardReferences:
see DATA_TYPE &isbn



Entry number 69                    Table of Contents

.BASIC_TYPE..: &Integer
.DESCRIPTION.:
A number, a numeric value, that is an integer (whole number).

The LENGTH argument specifies the total number of

significant digits.

EXAMPLE: &INTEGER(5) indicates a number composed of 5 decimal digits.

The largest value that such a number can store is 99999.

.ARGUMENTS...: Length
.PLATFORM....: SYBASE
   select
      when between(length,0,2) then datatype = "tinyint"
      when between(length,3,4) then datatype = "smallint"
      otherwise                     datatype = "int"
   end /*select*/

.END_PLATFORM:
.BackwardReferences:
see DATA_TYPE &small_count



Entry number 70                    Table of Contents

.BASIC_TYPE..: &Number
.DESCRIPTION.:
A number, a numeric value.

The LENGTH argument specifies the total number of

significant digits.

The DECIMALS argument, if present, specifies the number of

fractional digits.

EXAMPLE: &NUMBER(5,2) indicates a number composed of 5 decimal digits,

two of which are to the right of the decimal point.

The largest value that such a number can store is 999.99.

.ARGUMENTS...: Length [Decimals]
   if Decimals = "" then Decimals = 0

.PLATFORM....: SYBASE
   /* allow for decimal point in a string representation of a number */
   if Decimals \= 0 then length = length + 1
   datatype = "char" paren(length)

.END_PLATFORM:

Entry number 71                    Table of Contents

.BASIC_TYPE..: &Num_Char_Id
.DESCRIPTION.:
An identifier that may contain only numeric characters.

Storage options include: STRING and INTEGER.

Philosophy for storing this datatype:

always use STRING

(unlike &NUM_ID, where we will try to use numeric, if possible)

.ARGUMENTS...: Length
.PLATFORM....: SYBASE
   select
   when between(length,1,40) then datatype =    "char" paren(length)
   otherwise                      datatype = "varchar" paren(length)
   end /*select*/

.END_PLATFORM:
.BackwardReferences:
see DATA_TYPE &phone_number
see DATA_TYPE &zip_code_10



Entry number 72                    Table of Contents

.BASIC_TYPE..: &Num_Id
.DESCRIPTION.:
A code that may contain only numeric characters.

Storage options include: STRING and INTEGER.

Philosophy for storing this datatype:

try to use non-string storage options, if possible.

(unlike &NUM_CHAR_ID, where we will always use STRING )

If stored as a character field, value should be right-justified

and padded to the left with either zeroes or spaces.

.ARGUMENTS...: Length
.PLATFORM....: SYBASE
   select
   when length <= 40    then datatype =       "char" paren(length)
   otherwise                 datatype =    "varchar" paren(length)
   end /*select*/

.END_PLATFORM:
.BackwardReferences:
see DATA_TYPE &copy_id
see DATA_TYPE &item_id
see DATA_TYPE &member_id
see DATA_TYPE &member_status
see DATA_TYPE &reservation_id



Entry number 73                    Table of Contents

.BASIC_TYPE..: &Primitive_Date_Day
.DESCRIPTION.:
A date, to the granularity of a day.

Storage options include: STRING, INTEGER, and native DATE.

Also (possibly): native DATETIME format.

If stored as a character string, stored in format: CCYYMMDD

(CC=century, YY=year, MM=month, DD=day)

Example:

"19950101" represents January 1, 1995

"20000101" represents January 1, 2000

"20340101" represents January 1, 2033

EXCEPT THAT...

the Sharebase type is shorter than the other types,

because the century portion of the date is not stored in Sharebase.

.ARGUMENTS...:
.PLATFORM....: SYBASE
   length   = 8
   datatype = "char" paren(length)

.END_PLATFORM:
.BackwardReferences:
see DATA_TYPE &date
see DATA_TYPE &date_day



Entry number 74                    Table of Contents

.BASIC_TYPE..: &Primitive_Date_Month
.DESCRIPTION.:
A date, to the granularity of a month.

Storage options include: STRING, INTEGER, and native DATE.

Also (possibly): native DATETIME format.

If stored as a character string, stored in format: CCYYMM

(CC=century, YY=year, MM=month, DD=day)

Example:

"199501" represents January 1995

"200001" represents January 2000

"203401" represents January 2033

EXCEPT THAT...

the Sharebase type is shorter than the other types,

because the century portion of the date is not stored in Sharebase.

.ARGUMENTS...:
.PLATFORM....: SYBASE
   length   = 6
   datatype = "char" paren(length)

.END_PLATFORM:

Entry number 75                    Table of Contents

.BASIC_TYPE..: &Primitive_Date_Year
.DESCRIPTION.:
A date, to the granularity of a year.

Storage options include: STRING, INTEGER, and native DATE.

Also (possibly): native DATETIME format.

If stored as a character string, stored in format: CCYY

(CC=century, YY=year, MM=month, DD=day)

Example:

"1995" represents the year 1995

"2000" represents the year 2000

"2033" represents the year 2033

EXCEPT THAT...

the Sharebase type is shorter than the other types,

because the century portion of the date is not stored in Sharebase.

.ARGUMENTS...:
.PLATFORM....: SYBASE
   length   = 4
   datatype = "char" paren(length)

.END_PLATFORM:
.BackwardReferences:
see DATA_TYPE &date_year



Entry number 76                    Table of Contents

.BASIC_TYPE..: &String
.DESCRIPTION.:
A character string.

Storage options include:

fixed-length string

variable-length string

.ARGUMENTS...: Length
.PLATFORM....: SYBASE
   select
   when length <= 40    then datatype =       "char" paren(length)
   otherwise                 datatype =    "varchar" paren(length)
   end /*select*/

.END_PLATFORM:
.BackwardReferences:
see DATA_TYPE &author_name
see DATA_TYPE &item_name
see DATA_TYPE &person_name
see DATA_TYPE &publisher_name



Entry number 77                    Table of Contents

.BASIC_TYPE..: &Time_Minute
.DESCRIPTION.:
A time, to the granularity of an minute.

Storage options include: STRING, INTEGER, and native TIME.

Also (possibly): native DATETIME format.

If stored as a character string, stored in format: HHMM

(HH=hours, MM= minutes, SS=seconds)

.ARGUMENTS...:
.PLATFORM....: SYBASE
   length   = 4
   datatype = "char" paren(length)

.END_PLATFORM:
.BackwardReferences:
see DATA_TYPE &time