100% found this document useful (1 vote)
5K views5 pages

Champter 10 Homework Assignment

This document contains a homework assignment involving transaction management and concurrency control. It includes 4 problems analyzing inventory updates to product and part tables, writing the necessary SQL statements and transactions, constructing a transaction log, and tracing recovery using the log. Concurrency control aims to avoid problems like lost updates, uncommitted data, and inconsistent retrievals by ensuring serializability. The DBMS scheduler is responsible for concurrency control and resolving conflicts through mechanisms like locking and serialization.

Uploaded by

destineusa
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
100% found this document useful (1 vote)
5K views5 pages

Champter 10 Homework Assignment

This document contains a homework assignment involving transaction management and concurrency control. It includes 4 problems analyzing inventory updates to product and part tables, writing the necessary SQL statements and transactions, constructing a transaction log, and tracing recovery using the log. Concurrency control aims to avoid problems like lost updates, uncommitted data, and inconsistent retrievals by ensuring serializability. The DBMS scheduler is responsible for concurrency control and resolving conflicts through mechanisms like locking and serialization.

Uploaded by

destineusa
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 5

Rob & Coronel, ch.

10
Transaction Management and Concurrency Control
Homework Assignment -- Problems 1-4, page 442
April 25-May 1

1. Suppose that you are a manufacturer of product ABC, which is composed of parts A, B, and C. Each
time a new product is created, it must be added to the product inventory, using the PROD_QOH in
a table named PRODUCT. And each time the product ABC is created, the parts inventory, using
PART_QOH in a table named PART, must be reduced by one each of parts A, B, and C. The sample
database contents are shown in the following tables

Given that information, answer Questions a through e.

a. How many database requests can you identify for an inventory update for both PRODUCT and
PART?

There are 4 or 2 database requests for inventory update for both PRODUCT and PART.

b. Using SQL, write each database request you identified in problem 1.

4 SQL statements 2 SQL statements

UPDATE PRODUCT UPDATE PRODUCT

SET PROD_QOH = PROD_OQH + 1 SET PROD_QOH = PROD_OQH + 1

WHERE PROD_CODE = ‘ABC’ WHERE PROD_CODE = ‘ABC’

UPDATE PART UPDATE PART

SET PART_QOH = PART_OQH - 1 SET PART_QOH = PART_OQH - 1

WHERE PART_CODE = ‘A’ WHERE PART_CODE = ‘A’ OR


PART_CODE = ‘B’ OR

PART_CODE = ‘C’

UPDATE PART

SET PART_QOH = PART_OQH - 1

WHERE PART_CODE = ‘B’

UPDATE PART

SET PART_QOH = PART_OQH - 1

WHERE PART_CODE = ‘C’

c. Write the complete transaction(s).


.

4 SQL statements 2 SQL statements

BEGIN TRANSACTION BEGIN TRANSACTION

UPDATE PRODUCT UPDATE PRODUCT

SET PROD_QOH = PROD_OQH + 1 SET PROD_QOH = PROD_OQH + 1

WHERE PROD_CODE = ‘ABC’ WHERE PROD_CODE = ‘ABC’

UPDATE PART UPDATE PART

SET PART_QOH = PART_OQH - 1 SET PART_QOH = PART_OQH - 1


WHERE PART_CODE = ‘A’ WHERE PART_CODE = ‘A’ OR

PART_CODE = ‘B’ OR

UPDATE PART PART_CODE = ‘C’

SET PART_QOH = PART_OQH - 1

WHERE PART_CODE = ‘B’ COMMIT;

UPDATE PART

SET PART_QOH = PART_OQH - 1

WHERE PART_CODE = ‘C’

COMMIT;

d. Write the transaction log, using Table 10.1 as your template.

TRL TRX PREV NEXT ROW BEFORE AFTER

ID NUM PTR PTR OPERATION TABLE ID ATTRIBUTE VALUE VALUE

1 1A3 NULL 2 START **START TRANSACTION

2 1A3 1 3 UPDATE PRODUCT ‘ABC’ PROD_QOH 23 24

3 1A3 2 4 UPDATE PART ‘A’ PART_QOH 56 55

4 1A3 3 5 UPDATE PART ‘B’ PART_QOH 12 11


5 1A3 4 6 UPDATE PART ‘C’ PART_QOH 45 44

6 1A3 5 NULL COMMIT ** END

TRANSACTION

e. Using the transaction log you created in Step d, trace its use in database recovery.

TID Table Tuple ID Attribute Before After


101 Start Transaction
101 PART A PART_QOH 567 566
101 PART B PART_QOH 98 97
101 PART C PART_QOH 549 548
101 PRODUCT ABC PROD_QOH 1,205 1,206
101 End Transaction: COMMIT

2. Describe the three most common concurrent transaction execution problems. Explain how
concurrency control can be used to avoid those problems.

The three main concurrency control problems are triggered by lost updates, uncommitted data, and
inconsistent retrievals. Concurrency control can be used to avoid these execution problems by
ensuring the serializability of transactions in a multiuser database environment. Concurrency
ensures integrity and prevent inconsistencies that can arise within a database.

3. What DBMS component is responsible for concurrency control? How is this feature used to
resolve conflicts?

Severe database integrity and consistency problems can arise when two or more concurrent
transactions are executed. In order to avoid such problems, the DBMS must exercise concurrency
control. The DBMS's component in charge of concurrency control is the scheduler. To prevent
conflicts the scheduler works on a first come first served basis within the DBMS. In addition, the
scheduler is used to resolve conflicts by facilitating data isolation to ensure that two transactions do
not update the same data element.

4. Using a simple example, explain the use of binary and shared/exclusive locks in a DBMS.

According to our book binary locks can either be locked or unlocked. When a transaction is locked
no other object can use the transaction; however, if the object is unlocked any transaction can lock
the object for its use. For example, in our book in table 10.12, PRODUCT appears to be locked;
therefore, PROD_QOH cannot use this object until it is unlocked. Since PRODUCT is locked, this
object only has READ access. In order for PROD_QOH to unlock and be able to use PRODUCT a
WRITE statement MUST be completed.

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy