Knowee
Questions
Features
Study Tools

How does a DBMS handle concurrent access to data?

Question

How does a DBMS handle concurrent access to data?

🧐 Not the exact question you are looking for?Go ask a question

Solution

A Database Management System (DBMS) handles concurrent access to data through a process known as concurrency control. Here are the steps involved:

  1. Locking Mechanism: The DBMS uses a locking mechanism to prevent multiple users from accessing and modifying the same data at the same time. When a user is accessing a particular piece of data, the DBMS locks it, preventing other users from accessing it until the first user is done.

  2. Transaction Management: The DBMS groups a set of related operations into a single transaction. This ensures that either all the operations are executed successfully, or none of them are, maintaining the consistency of the database.

  3. Isolation Levels: The DBMS provides different levels of isolation to control how much transactions are isolated from each other. Higher levels of isolation provide more consistency but less concurrency, while lower levels provide more concurrency but less consistency.

  4. Deadlock Handling: The DBMS has mechanisms to detect and resolve deadlocks - situations where two or more transactions are waiting for each other to release resources, causing them to wait indefinitely. The DBMS can resolve deadlocks by aborting one of the transactions and rolling back its changes.

  5. Versioning: Some DBMSs use versioning to handle concurrent access. When a user wants to modify data, the DBMS creates a new version of the data. Other users can still read the old version while the new one is being modified. Once the modification is done, the DBMS replaces the old version with the new one.

  6. Timestamping: The DBMS can also use timestamping to order the transactions. Each transaction is given a timestamp when it starts. The DBMS ensures that the transactions are executed in timestamp order, preventing conflicts.

By using these techniques, the DBMS ensures that the database remains consistent and correct even when multiple users are accessing and modifying the data concurrently.

This problem has been solved

Similar Questions

Which of the following is a function of the DBMS?Storing dataProviding multi-users access controlData IntegrityAll of the above

How does a DBMS ensure data integrity and consistency?

2 Concurrency Control TechniquesThese rules can be enforced by the lock manager module of the DBMS. Between thelock_item(X) and unlock_item(X) operations in transaction T, T is said to hold thelock on item X. At most one transaction can hold the lock on a particular item.Thus no two transactions can access the same item concurrently.Shared/Exclusive (or Read/Write) Locks. The preceding binary lockingscheme is too restrictive for database items because at most, one transaction canhold a lock on a given item. We should allow several transactions to access the sameitem X if they all access X for reading purposes only. This is because read operationson the same item by different transactions are not conflicting (see Section 21.4.1).However, if a transaction is to write an item X, it must have exclusive access to X. Forthis purpose, a different type of lock called a multiple-mode lock is used. In thisscheme—called shared/exclusive or read/write locks—there are three lockingoperations: read_lock(X), write_lock(X), and unlock(X). A lock associated with anitem X, LOCK(X), now has three possible states: read-locked, write-locked, orunlocked. A read-locked item is also called share-locked because other transactionsare allowed to read the item, whereas a write-locked item is called exclusive-lockedbecause a single transaction exclusively holds the lock on the item.One method for implementing the preceding operations on a read/write lock is tokeep track of the number of transactions that hold a shared (read) lock on an itemin the lock table. Each record in the lock table will have four fields: <Data_item_name,LOCK, No_of_reads, Locking_transaction(s)>. Again, to save space, the system needs tomaintain lock records only for locked items in the lock table. The value (state) ofLOCK is either read-locked or write-locked, suitably coded (if we assume no recordsare kept in the lock table for unlocked items). If LOCK(X)=write-locked, the value oflocking_transaction(s) is a single transaction that holds the exclusive (write) lockon X. If LOCK(X)=read-locked, the value of locking transaction(s) is a list of one ormore transactions that hold the shared (read) lock on X. The three operationsread_lock(X), write_lock(X), and unlock(X) are described in Figure 22.2. 2 As before,each of the three locking operations should be considered indivisible; no interleav-ing should be allowed once one of the operations is started until either the opera-tion terminates by granting the lock or the transaction is placed in a waiting queuefor the item.When we use the shared/exclusive locking scheme, the system must enforce the fol-lowing rules:1. A transaction T must issue the operation read_lock(X) or write_lock(X) beforeany read_item(X) operation is performed in T.2. A transaction T must issue the operation write_lock(X) before anywrite_item(X) operation is performed in T.2These algorithms do not allow upgrading or downgrading of locks, as described later in this section. Thereader can extend the algorithms to allow these additional operations.read_lock(X):B: if LOCK(X) = “unlocked”then begin LOCK(X) ← “read-locked”;no_of_reads(X) ← 1endelse if LOCK(X) = “read-locked”then no_of_reads(X) ← no_of_reads(X) + 1else beginwait (until LOCK(X) = “unlocked”and the lock manager wakes up the transaction);go to Bend;write_lock(X):B: if LOCK(X) = “unlocked”then LOCK(X) ← “write-locked”else beginwait (until LOCK(X) = “unlocked”and the lock manager wakes up the transaction);go to Bend;unlock (X):if LOCK(X) = “write-locked”then begin LOCK(X) ← “unlocked”;wakeup one of the waiting transactions, if anyendelse it LOCK(X) = “read-locked”then beginno_of_reads(X) ← no_of_reads(X) −1;if no_of_reads(X) = 0then begin LOCK(X) = “unlocked”;wakeup one of the waiting transactions, if anyendend;22.1 Two-Phase Locking Techniques for Concurrency Control 781Figure 22.2Locking and unlockingoperations for two-mode (read-write orshared-exclusive)locks.3. A transaction T must issue the operation unlock(X) after all read_item(X) andwrite_item(X) operations are completed in T.34. A transaction T will not issue a read_lock(X) operation if it already holds aread (shared) lock or a write (exclusive) lock on item X. This rule may berelaxed, as we discuss shortly.3This rule may be relaxed to allow a transaction to unlock an item, then lock it again later.782 Chapter 22 Concurrency Control Techniques5. A transaction T will not issue a write_lock(X) operation if it already holds aread (shared) lock or write (exclusive) lock on item X. This rule may also berelaxed, as we discuss shortly.6. A transaction T will not issue an unlock(X) operation unless it already holdsa read (shared) lock or a write (exclusive) lock on item X

Select the purpose of concurrency control.To enforce IsolationTo preserve database consistencyTo resolve read-write and write-write conflictsTo make data more readable to the users

The process of locking records to prevent multiple people from making changes to the same record in the database is known as _______________. A. concurrency control B. backend processing C. record control D. record locking

1/3

Upgrade your grade with Knowee

Get personalized homework help. Review tough concepts in more detail, or go deeper into your topic by exploring other relevant questions.