Reference no: EM13820027
SQL Code
ABC Markets sell products to customers. The relational schema shown below represents the main entities for ABC's database. Note the following important characteristics:
A customer can make many purchases, each one represented by an invoice.
The CUS_BALANCE is updated with each credit purchase or payment and represents the amount the customer owes.
The CUS_BALANCE is increased (+) with every credit purchase and decreased (-) with every customer payment.
The date of last purchase is updated with each new purchase made by the customer.
The date of last payment is updated with each new payment made by the customer.
An invoice represents a product purchase by a customer.
An INVOICE can have many invoice LINEs, one for each product purchased.
The INV_TOTAL represents the total cost of invoice including taxes.
The INV_TERMS can be "30", "60" or "90" (representing the number of days of credit), or "CASH", "CHECK" or "CC".
The invoice status can be "OPEN", "PAID", or "CANCEL".
A product's quantity on hand (P_QTYOH) is updated (decreased) with each product sale.
A customer can make many payments. The payment type (PMT_TYPE) can be one of the following:
"CASH" for cash payments.
"CHECK" for check payments
"CC" for credit card payments
The payment details (PMT_DETAILS) are used to record data about check or credit card payments:
The bank, account number, and check number for check payments
The issuer, credit card number, and expiration date for credit card payments
Note: Not all entities and attributes are represented in this example. Use only the attributes indicated.
The ABC Markets Relational Schema
Using this database, write the SQL code to represent each one of the following transactions. Use BEGIN TRANSACTION and COMMIT to group the SQL statements in logical transactions.
On May 11, 2006, customer 10010 makes a credit purchase (30 days) of one unit of product 11QER/31 with a unit price of $110.00; the tax rate is 8%. The invoice number is 10983, and this invoice has only one product line.
On June 3, 2006, customer 10010 makes a payment of $100 in cash. The payment ID is 3428.
Create a simple transaction log (using the same format as that in the case assignment) to represent the actions of the two previous transactions.
Note: The "before" values in the transaction can be assumed. The "after" value must be computed using the assumed "before" value, plus or minus the transaction value. Also, in order to save some space, you can combine the "after" values for the INSERT statements into a single cell. Actually, each value could be entered in individual rows.
Assignment Expectations
1. Be able to map complex business activities to database transactions.
2. Demonstrate your understanding of the use of transaction log.
3. Successfully accomplish the desired outcome in programming.