VoidWorks Software Inc.
Detailed Design
Data Dictionary |
|
** Books Database **
Book = @ISBN Number + Title + Author + Publisher + Subject + Book Category
+ Media Type + Cost of Book + Version + Edition + Number of Copies
* Entity; represents a book residing in the library. *
ISBN Number = String
* Key attribute for Book. Consists of a 10 digit number in the form *
* D-DD-DDDDDD-D where D is a number from 0-9. Each ISBN number is *
* is unique to an instance of Book. *
Title = String
* Non-key attribute for Book. Represents the title of the book, with *
* a maximum of 150 characters. *
Author = String
* Non-key attribute for Book. Contains the author of the book, in the form *
* Last Name, First Name *
* If there are multiple authors, they are separated by semicolons. Maximum *
* length is 120 characters. *
Publisher = String
* Non-key attribute for Book. Contains the publisher of the book, with a *
* maximum length of 150 characters. *
Subject = String
* Non-key attribute for Book. This is a description of the subject *
* book, to be used as a search term in the database. Maximum length *
* is 100 characters. *
Book Category = ["Overnight" | "Two Week Loan" | "Reserved" ]
* Non-key attribute for Book. Used for determining the length of time a book *
* can be borrowed, or if it can be taken out at all. *
Media Type = ["Book" | "CD" | "CD-ROM" | " Film" | "Laser-disk" | "Journal" | "Cassette" ]
* Non-key attribute for Book. Describes the format of the item. *
Cost of Book = currency
* Non-key attribute of Book. Contains a dollars and cents value of the Book, *
* representing the price one would be charged for replacement of the item. *
Version = real
* Non-key attribute of Book. This is not a required attribute for book, but is *
* only used if the item in question has a version number. It is in the form
* DDD.DD where D ranges from 0 - 9. Version thus ranges from 0 - 999.99
Edition = real
* Non-key attribute of Book. Similar to Version, in that it is not a required *
* attribute, and only applies if the item has an edition number. It is in the *
* form DDD.DD where D ranges from 0 - 9. Edition thus ranges from 0 - 999.99. *
Number of Copies = integer
* Non-key attribute of Book. Represents the number of copies that of the *
* item in question. Used in creating instances of the Book Copy weak entity, *
* whose definition follows. Ranges from 0 - 999. *
Book Copy = @Call Number + ISBN Number + Location + Floor + Circulation Status
* Weak Entity associated with Book. Each instance of Book can have zero or more *
* instances of Book Copy. Represents a copy of an item in the library. *
Call Number = integer
* Key attribute of Book Copy. Represents the unique number to identify *
* each copy of an item in the library. Each time an instance of Book Copy *
* is created, the next available number is assigned to Call Number. *
* Call Number can range from 0 - 999999999. *
ISBN Number = string
* Non-key attribute of Book Copy. This is the same as the ISBN Number for the *
* instance of Book associated with this instance of Book Copy. *
Location = string
* Non-key attribute of Book Copy. Represents the name of the library location *
* where this particular copy is residing. Maximum 20 characters. *
Floor = integer
* Non-key attribute of Book Copy. Represents the floor number of Location at *
* which the copy is located. This number ranges from 0 - 99. *
Circulation Status = [ "On Loan" | "Overdue" | "On Hold" | "Available" |
"Out of Circulation" ]
* Non-key attribute of Book Copy. Represents the current status of the copy in *
* question, and used for decisions on some functions acting on a Book Copy. *
** Customer Database **
Customer = @User ID + Last Name + First Name + Phone + Address + City
+ Province + Country + Postal Code + Category + Fine
+ Max Books + Max Fine + Restricted
* Entity; represents customers that have membership in the library. *
User ID = integer
* Key attribute for Customer. It is created when the customer is *
* registered for a membership. It is unique. *
Last Name = String
* Non-Key attribut for Customer. Represent the customer's last name. *
* Length should be between 1 and 60. *
First Name = String
* Non-Key attribut fro Customer. Represent the customer's first name. *
* Length should be between 1 and 40. *
Phone = String
* Non-key attribute for Customer; represent the customer's phone number. *
* Standard North American phone number. (3 digit area code) 3 digit local *
* exchange-4 digit number. The 3 digit area code is optional. The length *
* should be between 8 to 14. *
Address = String
* Non-key attribute for Customer; represent the customer's address include *
* Apartment number, street, P.O.Box. Length should be between 1 to 80. *
City = String
* Non-Key attribute for Customer; represent the city of the Customer's *
* mailing address. Length should be between 1 to 20. *
Province = String
* Non-Key attribute for the Customer; represent the province/state of the *
* Customer's mailing address. It should be exactly 2 characters. *
Country = String
* Non-Key attribute for the Customer; represent the country of the *
* customer's mailing address. The maximum length is 10 characters. *
Postal Code = String
* Non-Key attribute for the Customer; represent the postal code of the area *
* the customer's mailing address. The Maximum Length is 11 characters. *
Category = ["regular" | "librarian" | "supervisor"]
* Non-Key attribute for the Customer; represent the customer type. Extra *
* category can not be added. *
Fine = currency
* Non-Key attribute for the Customer; represent the current fine that the *
* customer has. Two digits following decimal point should be stored (to *
* represent dollars and cents). *
Max Fine = currency
* Non-Key attribute for the Customer; represent the maximum fine that the *
* customer can have . This can only be modified by a user with supervisor *
* category. *
Max Books = integer
* Non-Key attribute for the Customer; represent the maximum number of books *
* that the customer can borrow. This can only be modified by a user with *
* supervisor category. *
Restricted = ["yes" | "no"]
* Non-Key attribute for the Customer; represent whether or not the customer *
* can borrow. It becomes "yes" when the customer's fines exceed the *
* maximum amount allowed. *
** Holds Database **
Hold = @User ID + @Call Number + Hold Date
* Entity; represent the book that is on hold by the customer with the *
* User ID. *
Call Number = real
* Key attribute for the Hold entity and Bookcopy entity; represent the call *
* number of the book that is on hold. This is a unique number that is *
* created after the book is added to the Book's database. *
Hold Date = integer
* Non-Key attribute for the Hold entity; represent the date that the book *
* is put on hold. *
** Loans Database **
Loans = @User ID + @Call Number + Loan Date
* Entity; represent the books that are borrowed by the customer with the *
* specified User ID. *
Loan Date = integer
* Non-Key attribute for the Loans entity; represent the date that the book *
* is borrowed. *
*********************
User ID and Call Number has been defined.
*********************
** Fines Database **
Fines = @User ID + Fine + Date
* Entity; represent the Fine situation of the Customer with the specified *
* User ID. *
Date = integer
* Non-Key attribute for the Fines entity; represent the date that the fine *
* has been added or subtracted. *
************************
User ID and Fine has been defined above.
************************
** Circtype Database **
Circtype = @Kind
* Entity; represent the enumerated Circulation that the user can enter. *
Kind = String
* Key attribute for Circtype entity; stores the new circulation value when *
* user entering a Bookcopy. *
** Custtype Database **
Custtype = @Kind
* Entity; represent the enumerated Category that the user can enter. *
Kind = String
* Key attribute for Custtype entity; stores the new category value when *
* user entering a Customer. *
** Loctype Database **
Loctype = @Kind
* Entity; represent the enumerated Location that the user can enter. *
Kind = String
* Key attribute for Loctype entity; stores the new location value when *
* user entering a Book. *
** Medtype Database **
Medtype = @Kind
* Entity; represent the enumerated Media Type that the user can enter. *
Kind = String
* Key attribute for Custtype entity; stores the new media type when *
* user entering a Book. *
** Subjtype Database **
Subjtype = @Kind
* Entity; represent the enumerated Subject that the user can enter. *
Kind = String
* Key attribute for Medtype entity; stores the new subject value when *
* user entering a Book. *
Send mail to the Group Leader
or the Webmaster
Back to the Main Page
Pages created and maintained with Mortar