Suppose you are given the James River Jewelry database design as follows:
CUSTOMER ( CustomerID, LastName, FirstName, Phone, Email)
PURCHASE ( InvoiceNumber, Date, PreTaxAmount, CustomerID)
PURCHASE_ITEM ( InvoiceNumber , ItemNumber, RetailPrice)
ITEM ( ItemNumber, Description, Cost, ArtistName)
OWNER ( OwnerID, Name, Phone, Email, AmountOwed)
JEWELRY_ITEM ( I temNumber, DateReceived, DateSold, NegotiatedSalesPrice, ActualSalesPrice, CommissionPercentage, OwnerID)
CustomerID in PURCHASE must exist in CustomerID in CUSTOMER
InvoiceNumber in PURCHASE_ITEM must exist in InvoiceNumber in PURCHASE
ItemNumber in PURCHASE_ITEM must exist in ItemNumber in ITEM
OwnerID in JEWELRY_ITEM must exist in OwnerID in OWNER
ItemNumber in JEWELRY_ITEM must exist in ItemNumber in ITEM
The OWNER and JEWELRY_ITEM tables are used to record data and maintain owner data about jewelry accepted on consignment. JEWELRY_ITEM (which is a subtype of ITEM-n ote the referential integrity constraint) is used to record the negotiated sales price, the commission percentage, and the actual sales price for each item of consigned jewelry.
Assume that office personnel at James River Jewelry use a database application to record consignment data.
- When an item is received on consignment, owner data are stored in OWNER if the owner is new; otherwise existing owner data are used. New ITEM and JEWELRY_ITEM rows are created. In ITEM, ItemNumber and Description are recorded, Cost is set to $0.00, and if there is an artist associated with the piece, ArtistName is entered. For JEWELRY_ITEM, data are stored for all columns except DateSold and ActualSalesPrice. James River Jewelry personnel refer to these actions as an Acceptance Transaction.
- Later, if the jewelry item does not sell, the NegotiatedSalesPrice and CommissionPercentage values may be reduced. This is called a Price Adjustment Transaction.
- Finally, when an item sells, the DateSold and ActualSalesPrice fields for the item are given values, and the AmountOwed value in OWNER is updated by increasing AmountOwed by the owner’s percentage of the ActualSalesPrice value. This third transaction is called a Sales Transaction
Suppose James River Jewelry identifies three groups of users: managers, administrative personnel, and system administrators. Suppose further that managers and administrative personnel can perform Acceptance Transactions and Sales Transactions, but only managers can perform Price Adjustment Transactions.
James River Jewelry has developed the following procedure for backup and recovery. The company backs up the database from the server to a second computer on its network each night. Once a month, it copies the database to a CD and stores it at a manager’s house. It keeps paper records of all services provided for an entire year. If it ever loses its database, it plans to restore it from a backup and reprocess all service requests.
- Which of the three application transactions must be made atomic (e.g., specify transaction boundaries) to prevent possible lost update? Why and why not?
- Describe processing rights that you think would be appropriate for the identified three groups of company users.
- Comment on the company’s strategy on DB backup and recovery. Describe any changes you think the company should make to its current backup and recovery scheme.