Which of the following provides reliable units of work that allow correct recovery from failures and
keeps a database consistent even in cases of system failure?
A.
Database security
B.
Concurrency control
C.
Two-phase commit
D.
Database transaction
Explanation:
A database transaction comprises a unit of work performed within a database management system
against a database, and treated in a coherent and reliable way independent of other transactions.
Transactions in a database environment have two main purposes:
1.To provide reliable units of work that allow correct recovery from failures and to keep a database
consistent even in cases of system
failure, such as when execution stops and many operations in a database transaction remain
uncompleted.
2.To provide isolation between multiple programs accessing a database concurrently.
Answer B is incorrect. Concurrency control in database management systems ensures that database
transactions are performed
concurrently without the concurrency violating the data integrity of a database. Executed
transactions should follow the ACID rules. This
mechanism is required to manage multiple users accessing the same groups of resources with the
least possible overhead, either optimizedfor a specific task, or general purpose.
Answer A is incorrect. Database security refers to the system, processes, and procedures that
protect a database from unintended
activities, such as authenticated misuse, malicious attacks, or inadvertent mistakes made by
authorized individuals or processes. Database
security can begin with the process of creating and publishing appropriate security standards for the
database environment. These standards
may include specific controls for the various relevant database platforms.
Answer C is incorrect. A two-phase commit is a feature of transaction processing systems, enabling
databases to be returned to the
pre-transaction state if some error condition occurs. A single transaction can update many different
databases. A two-phase commit strategy
is designed to ensure that either all the databases are updated or none of them, so that the
databases remain synchronized.