Unit 5(Notes)
Unit 5(Notes)
T.E. Computer
Database Management Systems
Unit-V
By
Prof. Dr. K.P. Adhiya
SSBT’s COET, Bambhori-Jalgaon
Acknowledgment
1. Abraham Silberschatz, Henry F. Korth, S. Sudarshan, “Database System
Concepts”, 6th Edition, McGraw-Hill Hill Education.
2. Abraham Silberschatz, Henry F. Korth, S. Sudarshan, “Database System
Concepts”, 4th Edition, McGraw-Hill Hill Education.
3. Ramez Elmasri and Shamkant B. Navathe “Fundamentals of Database Systems”,
5th Edition, Pearson.
4. Express Learning, “Database Management Systems”, ITL Education Solutions
Limited.
5. Archana Verma, “Database Management Systems”, GenNext Publication.
6. Dr. Rajiv Chopra, “Database Management Systems (DBMS) – A Practical
Approach”, 5th Edition, S. Chand Technical
7. Tanmay Kasbe, “Database Management System Concepts – A Practical
Approach”, First Edition, Educreation Publishing.
8. Mahesh Mali, “Database Management Systems”, Edition 2019, TechKnowledge
Publications.
9. Rajendra Prasad Mahapatra, Govind Verma, “Database Management System”,
Khanna Publishing.
10. Malay K. Pakhira, “Database Management System”, Eastern Economy Edition,
PHI.
11. Sarika Gupta, Gaurav Gupta, “Database Management System”, Khanna Book
Publishing Edition.
12. Riktesh Srivastava, Rajita Srivastava, “Relational Database Management
System”, New Age International Publishers.
13. Peter Rob, Carlos Coronel, “Database System Concepts’, Cenage Learning, India
Edition
14. Bipin C. Desai, “An Introduction to Database Systems”, Galgotia Publications.
15. G.K. Gupta, “Database Management Systems”, McGraw Hill Education.
16. Shio Kumar Singh, “Database Systems – Concepts, Design and Applications”, 2nd
Edition, PEARSON.
17. S.D.Joshi, “Database Management System”, Tech-Max Publication.
18. R. Ramkrishnan , J. Gehrke, "Database Management Systems", 3rd Edition,
McGraw-Hill
19. C. J. Date, “Introduction to Database Management Systems”, 8th Edition, Pearson
20. Atul Kahate, “Introduction to Database Management System”, 3rd Edition,
Pearson.
21. Bharat Lohiya, “Database Systems”, Tenth Edition, Aditya Publication, Amravati.
22. Vijay Krishna Pallaw, “Database Management System”, 2nd, Asian Books Pvt.
Ltd.
23. Database Management Systems, Database Management Systems.
24. Mrs. Jyoti G. Mante (Khurpade), Mrs. Smita M. Dandge, “Database Mangement
System”, Nirali Prakashan.
25. Step by Step Database Systems (DBMS), Shiv Krupa Publications, Akola
26. Mrs. Sheetal Gujar –Takale, Mr. Sahil K. Shah, “Database Management System”,
Nirali Prakashan.
27. Mrs. Jyoti G. Mante (Khurpade), U.S. Shirshetti, M.V. Salvi, K.S. Sakure,
“Relational Database Management System”, Nirali Prakashan.
28. Seema Kedar, Rakesh Shirsath, “Database Management Systems”, Technical
Publications.
29. Pankaj B. Brahmankar, “Database Management Systems”, Tech-Max
Publications, Pune.
30. Imran Saeed, Tasleem Mustafa, Tariq Mahmood, Ahsan Raza Sattar, “A
Fundamental Study of Database Management Systems”, 3rd Edition, IT Series
Publication.
31. Database Management Systems Lecture Notes, Malla Reddy College of
Engineering and Technology, Secunderabad.
32. Dr. Satinder Bal Gupta, Aditya Mittal, “Introduction to Database Management
System, University Science Press.
33. E-Notes BCS 41/ BCA 41 on “Database Management System”, Thiruvalluvar
University.
34. Bighnaraj Naik, Digital Notes on “Relational Database Management System”,
VSSUT, Burla.
35. Viren Sir, Relational database Management System”, Adarsh Institute of
Technolgoyt (Poly), VITA.
36. Sitansu S. Mitra, “Principles of Relational Database Systems”, Prentice Hall.
37. Neeraj Sharma, Liviu Perniu, Raul F. Chong, Abhishek Iyer, Chaitali Nandan,
Adi-Cristina Mitea, Mallarswami Nonvinkere, Mirela Danubianu, “Database
Fundamentals”, First Edition, DB2 On Campus Book Series.
38. Database Management System, Vidyavahini First Grade College, Tumkur.
39. Bhavna Sangamnerkar, Revised by: Shiv Kishor Sharma, “Database Management
System”, Think Tanks Biyani Group of Colleges.
40. Tibor Radvanyi, “Database Management Systems”.
41. Ramon A. Mata-Toledo, Pauline K. Cushman, “Fundamentals of Relational
Databases”, Schaum’s Outlies.
42. P.S. Gill, “Database Management Systems”, 2nd Edition, Dreamtech Press,
WILEY
Acknowledgment
Web Resources:-
https://www.exploredatabase.com/2016/04/database-transaction-states-in-dbms.html
https://www.javatpoint.com/dbms-log-based-recovery
https://www.geeksforgeeks.org/difference-between-deferred-update-and-immediate-update/
Unit-V
(Transactions)
Transaction Concept
Often, a collection of several operations on the database appears to be
a single unit from the point of view of the database user. Within the
database system, however, it consists of several operations.
The collection of operations that form a single logical unit of work is
called a transaction.
A database system must ensure proper execution of transactions
despite failures—either the entire transaction executes, or none of
it does.
The database system must manage concurrent execution of
transactions in a way that avoids the introduction of inconsistency.
A transaction is delimited by statements (or function calls) of the form
begin transaction and end transaction. The transaction consists of
all operations executed between the begin transaction and end
transaction.
The collection of steps must appear to the user as a single, indivisible
unit. Since a transaction is indivisible, it either executes in its
entirety or not at all.
This “all-or-none” property is referred to as atomicity.
The database system must take special actions to ensure that
transactions operate properly without interference from concurrently
executing database statements. This property is referred to as
isolation.
Even if the system ensures correct execution of a transaction, this
serves little purpose if the system subsequently crashes and, as a
result, the system “forgets” about the transaction. Thus, a transaction’s
actions must persist across crashes. This property is referred to as
durability.
The database must preserve database consistency.
To ensure the integrity of the data, the database system must maintain
some desirable properties of the transaction (i.e. Every transaction
must have some characteristics). These properties are known as ACID
properties, the short form derived from the first letter of the term
Atomicity, Consistency, Isolation, and Durability.
Atomicity: - A transaction should be treated as a single unit of
operation. Atomicity implies that either all of the operations
that make up a transaction should execute or none of them
should occur.
Consistency: - It implies that if all the operations of a
transaction are executed completely, the database is
transformed from one consistent state to another consistent
state.
Isolation: - Even though multiple transactions may execute
concurrently, isolation implies that each transaction appears to
run in isolation with other. Thus each transaction is unaware of
other transaction and do not interfere with each other.
Durability: - It is also known as Permanence. It implies that
once a transaction is completed successfully, the changes made
by the transaction persist (i.e. remains permanent) in the
database, even if the system fails.
Durability Requirement: - once the user has been notified that the
transaction has completed (i.e., the transfer of the $100 has taken
place), the updates to the database by the transaction must persist even
if there are software or hardware failures.
The durability can be guaranteed by ensuring that either –
All the changes made by the transaction are written to the disk
before the transaction is completed or
The information about all the changes made by the transaction
is written to the disk and is sufficient to enable the database
system to reconstruct the changes when the database system is
restarted after the failure.
Isolation Requirement: - If several transactions are executed
concurrently, their operations may interleave in some undesirable
way, resulting in an inconsistent state.
For example, as we saw earlier, the database is temporarily
inconsistent while the transaction to transfer funds from A to B is
executing, with the deducted total written to A and the increased total
yet to be written to B. If a second concurrently running transaction
reads A and B at this intermediate point and computes A+B, it will
observe an inconsistent value. Furthermore, if this second transaction
then performs updates on A and B based on the inconsistent values
that it read, the database may be left in an inconsistent state even after
both transactions have completed.
A way to avoid the problem of concurrently executing transactions is
to execute transactions serially—that is, one after the other.
Aborted: - after the transaction has been rolled back and the database
has been restored to its state prior to the start of the transaction. Two
options after it has been aborted:
- restart the transaction –> only if no internal logical error
- kill the transaction
Unit-V
(Concurrency Control)
Lock-Based Protocols
When several transactions execute concurrently in the database, the
isolation property may no longer be preserved. To ensure that it is, the
system must control the interaction among the concurrent
transactions; this control is achieved through one of a variety of
mechanisms called concurrency control schemes.
Concurrency Control Protocols
- To ensure when to give access to data item when transactions are
getting executed concurrently or in interleaved way.
One way to ensure isolation is to require that data items be accessed in
a mutually exclusive manner; that is, while one transaction is
accessing a data item, no other transaction can modify that data item.
The most common method used to implement this requirement is to
allow a transaction to access a data item only if it is currently holding
a lock on that item.
Locks
A lock is a variable associated with each data item that indicates
whether a read or write operation can be applied to the data item.
A lock controls the concurrent access and maintains the consistency
and integrity of the database.
i.e. Locks are used to ensure consistency.
Database systems mainly use two modes of locking (i.e. Mainly, there
are two types of locks):
Shared lock (denoted by S):- it can be acquired on a data item
when a transaction wants to only read a data item and not
modify it. Hence it is also known as read lock. If a transaction
Ti has acquired a shared lock on data item Q, then Ti can read
Figure 5.4
A transaction may be granted a lock on an item if the requested lock is
compatible with locks already held on the item by other transactions.
T1:lock-X(B);
read(B);
B := B − 50;
write(B);
unlock(B);
lock-X(A);
read(A);
A := A + 50;
write(A);
unlock(A).
Figure 5.5:- Transaction T1
T2: lock-S(A);
read(A);
unlock(A);
lock-S(B);
read(B);
unlock(B);
display(A + B).
Figure 5.6:- Transaction T2
Suppose that the values of accounts A and B are $100 and $200,
respectively. If these two transactions are executed serially, either in
the order T1, T2 or the order T2, T1, then transaction T2 will display
the value $300. If, however, these transactions are executed
concurrently, then schedule 1, in Figure 5.7, is possible. In this case,
transaction T2 displays $250, which is incorrect. The reason for this
mistake is that the transaction T1 unlocked data item B too early, as a
result of which T2 saw an inconsistent state.
T1 T2 Concurrency-control manager
lock-X(B)
grant-X(B, T1)
read(B)
B := B − 50
write(B)
unlock(B)
lock-S(A)
grant-S(A, T2)
read(A)
unlock(A)
lock-S(B)
grant-S(B, T2)
read(B)
unlock(B)
display(A + B)
lock-X(A)
grant-X(A, T1)
read(A)
A := A + 50
write(A)
unlock(A)
T4: lock-S(A);
read(A);
lock-S(B);
read(B);
display(A + B);
unlock(A);
unlock(B).
Figure 5.9:- Transaction T4 (transaction T2 with unlocking delayed).
where neither of these transactions can ever proceed with its normal
execution. This situation is called deadlock. When deadlock occurs,
the system must roll back one of the two transactions. Deadlocks are
definitely preferable to inconsistent state, since they can be handled
by rolling back transactions, whereas inconsistent states may lead to
real-world problems that cannot be handled by the database system.
The figure 5.10 is as follows:
T3 T4
lock-X(B)
read(B)
B := B − 50
write(B)
lock-S(A)
read(A)
lock-S(B)
lock-X(A)
Granting of Locks
When a transaction requests a lock on a data item in a particular
mode, and no other transaction has a lock on the same data item in
a conflicting mode, the lock can be granted.
However, care must be taken to avoid the following scenario.
Suppose a transaction T2 has a shared-mode lock on a data item,
and another transaction T1 requests an exclusive-mode lock on the
data item. Clearly, T1 has to wait for T2 to release the shared-mode
lock. Meanwhile, a transaction T3 may request a shared-mode lock
on the same data item. The lock request is compatible with the lock
granted to T2, so T3 may be granted the shared-mode lock. At this
point T2 may release the lock, but still T1 has to wait for T3 to
Timestamp-Based Protocols
The two-phase locking protocol guarantees conflict serializability
schedules the only problem is that if it locks an item, that item cannot
be used by another transaction until it is unlocked.
Timestamps
With each transaction Ti in the system, a unique fixed timestamp is
associated. This timestamp is assigned by the database system before
the transaction Ti starts execution. There are two simple methods for
implementing this timestamp scheme:
1. Use the value of System Clock (current time).
2. Use a logical counter that is incremented after a new
timestamp has been assigned.
The timestamp value is used just to indicate the order in which the
transaction arrived early and which was late in relation to each other.
The timestamp ordering protocol does not use any locks, so there is no
question that a deadlock will occur and hence the protocol is free from
deadlock situation.
To implement the timestamp ordering protocol, following are the type
of timestamps that are going to be used (here W-timestamp(Q) and
R-timestamp(Q) ate the two timestamp values associated with each
data item Q):-
TS(Ti) – A unique fixed timestamp associated with the
transaction Ti indicating the time before Ti begins execution.
R-timestamp(Q) – Gives the time of latest read of the item Q
done by any transaction. E.g. if there are 2 transactions Ti and Tj
and the order of operations as follows:
Ti Tj
Read(Q)
Read(Q)
Ti Tj
Write(Q)
Write(Q)
TS(Ti)
Write(Q) W-timestamp(Q) is updated
Read(Q)
TS(Ti)
Read(Q)
Successful
Ti started
TS(Ti)
Read(Q) R-timestamp(Q) is updated
Write(Q)
Ti started
TS(Ti)
Write(Q) W-timestamp(Q) is updated
Write(Q)
Unit-V
(Recovery System)
A database is very important for any organization. It is very important
to recover it as soon as possible.
An integral part of a database system is a recovery scheme that can
restore the database to the consistent state that existed before the
failure.
The recovery scheme must also provide high availability; that is, it
must minimize the time for which the database is not usable after a
failure.
The component of DBMS that is responsible for performing the
recovery operation is called recovery manager. The main aim of
recovery is to restore the database to the most recent consistent state.
Failure Classification
There are various types of failure that may occur in a system:
Transaction failure:- There are two types of errors that may
cause a transaction to fail:
o Logical error: - Transaction may fail due to logical error
in the transaction such as incorrect input, overflow,
divide by zero, data not found, resource limit exceeded,
etc.
o System error:- Any undesirable state of the system such
as deadlock, may also stop the normal execution of the
transaction. The transaction can be re-executed at a later
time.
System crash (computer failure):- Any type of hardware
malfunction (e.g. RAM failure), or a bug in the database
software/operating system, brings transaction processing to a
halt. The content of nonvolatile storage (e.g. disk) remains
intact, and is not corrupted.
Storage
The storage media can be distinguished by their relative speed,
capacity, and resilience to failure. Mainly three categories of storage:
Volatile storage
Nonvolatile storage
Stable storage
Stable-Storage Implementation
To implement stable storage, we need to replicate the needed
information in several nonvolatile storage media (usually disk)with
independent failure modes, and to update the information in a
controlled manner to ensure that failure during data transfer does not
damage the needed information.
The RAID (Redundant Array of Independent Disk OR Redundant
Array of Inexpensive Disk) systems guarantee that the failure of a
single disk will not result in loss of data. The simplest and fastest form
of RAID is the mirrored disk, which keeps two copies of each block,
on separate disks.
RAID systems, cannot guard against data loss due to disasters such as
fires or flooding. Many systems store archival backups of tapes off
site, to guard against such disasters.
More secure systems keep a copy of each block of stable storage at a
remote site,
Block transfer between memory and disk storage can result in:
Successful completion. The transferred information arrived
safely at its destination.
Partial failure. A failure occurred in the midst of transfer, and
the destination block has incorrect information.
Total failure. The failure occurred sufficiently early during the
transfer that the destination block remains intact.
If a data-transfer failure occurs, then the system should detect it and
invoke a recovery procedure to restore the block to a consistent state.
To do so, the system must maintain two physical blocks for each
logical database block:
in the case of mirrored disks, both blocks are at the same
location,
in the case of remote backup, one of the blocks is local, whereas
the other is at a remote site.
An output operation is executed as follows:
1. Write the information onto the first physical block.
Data Access
The database system resides permanently on nonvolatile storage
(usually disks) and only parts of the database are in memory at any
time. The database is partitioned into fixed-length storage units called
blocks. Blocks are the units of data transfer to and from disk, and may
contain several data items.
Transactions input information from the disk to main memory, and
then output the information back onto the disk. The input and output
operations are done in block units. The blocks residing on the disk are
referred to as physical blocks; the blocks residing temporarily in main
memory are referred to as buffer blocks. The area of memory where
blocks reside temporarily is called the disk buffer.
Block movements between disk and main memory are initiated
through the following two operations:
1. input(A) transfers the physical block A to main memory.
2. output(B) transfers the buffer block B from m.m. to the disk
Following figure 5.11 illustrates this scheme:
Log Records
The most widely used structure for recording database modifications
is the log.
The log is a sequence of log records, recording all the update
activities in the database.
The log is a sequence of records. Log of each transaction is
maintained in some stable storage so that if any failure occurs, then it
can be recovered from there.
When the transaction modifies the City from 'Dhule' to 'Jalgaon', then
another log is written to the file.
<Tn, Commit>
Database Modification
A transaction creates a log record prior to modifying the database. The
log records allow the system to undo changes made by a transaction,
in the case of system failure, for example.
Following are the steps taken by a transaction when modifying a data
item:-
1. The transaction performs some computations in main memory.
2. The transaction modifies that particular data block in main
memory.
3. The database system executes the output operation that writes
the updated data block to the disk.
A transaction modifies the database means - it performs an update on
the disk. Updates in main memory do not count as database
modifications.
The log-based recovery techniques maintain transaction logs to keep
track of all update operations of the transactions. The log-based
recovery techniques are classified into two types, techniques based on
deferred update and techniques based on immediate update :
Deferred-modification technique: - It records all update
operations of the transactions in the log, but postpones the
execution of all the update operations until the transaction enter
into the committed state (in some literature it is partial commit).
It is also called NO-UNDO/REDO technique. Whenever any
transaction is executed, the updates are not made immediately to
the database. They are first recorded on the log file and then
Transaction Commit
The commit log record is the last log record of a transaction. The
transaction has committed means this commit log record has been
output to the stable storage (i.e. stored in the stable storage).
At that point all earlier log records have already been output to stable
storage. Thus, there is enough information in the log to ensure that
even if there is a system crash, the updates of the transaction can be
redone.
If a system crash occurs before a log record < Ti commit> is output to
stable storage, transaction Ti will be rolled back. Thus, the output of
the block containing the commit log record is the single atomic action
that results in a transaction getting committed.
With most log-based recovery techniques, blocks containing the data
items modified by a transaction do not have to be output to stable
storage when the transaction commits, but can be output afterwards.
Figure 5.13 State of system log and database corresponding to T0 and T1.
Using the log, the system can handle any failure that does not result in
the loss of information in nonvolatile storage. The recovery scheme
uses two recovery procedures. Both these procedures make use of the
log to find the set of data items updated by each transaction Ti and
their respective old and new values.
redo(Ti ) sets the value of all data items updated by transaction
Ti to the new values.
undo(Ti) restores the value of all data items updated by
transaction Ti to the old values.
Unit-V
(Database-System Architectures)
The architecture of a database system is influenced by the
underlying computer system on which it runs – e.g. considering some
aspects such as networking, parallelism, and distribution.
Centralized Systems
Centralized database systems run on a single computer system and do
not interact with other computer systems.
Such database systems may span a range from single-user database
systems running on personal computers to high-performance database
systems running on high-end server systems.
A modern, general-purpose computer system consists of one to a few
processors and a number of device controllers that are connected
through a common bus that provides access to shared memory (figure
5.14).
The processors have local cache memories that store local copies of
parts of the memory, to speed up access to data.
Each processor may have several independent cores, each of which
can execute a separate instruction stream.
The use of cache memory increases the overall performance of the
system.
Client-Server Systems
The server system satisfies requests generated by clients.
Figure 5.15 shows the general structure of a client-server system.
Transaction Servers
Also called query server systems or SQL server systems
Clients send requests to the server
Transactions are executed at the server
Results are shipped back to the client.
Requests are specified in SQL, and communicated to the server
through a remote procedure call (RPC) mechanism.
To ensure that no two processes are accessing the same data structure
at the same time, databases systems implement mutual exclusion
using either
Operating system semaphores
Atomic instructions such as test-and-set
To avoid overhead of interprocess communication (IPC) for lock
request/grant, each database process operates directly on the lock table
instead of sending requests to lock manager process
Lock manager process still used for deadlock detection.
Data Servers
Used in high-speed LANs, in cases where
The clients are comparable in processing power to the server
The tasks to be executed are compute intensive.
Data are shipped to clients where processing is performed, and then
shipped results back to the server.
This architecture requires full back-end functionality at the clients.
Used in many object-oriented database systems
Issues:
Page-Shipping versus Item-Shipping
Adaptive lock granularity
Data Caching
Lock Caching
Page-shipping versus item-shipping
The unit of communication for data can be of coarse
granularity, such as a page, or fine granularity, such as a tuple
We use the term item to refer to both tuples and objects.
Fetching items even before they are requested is called
prefetching.
Page shipping can be thought of as a form of prefetching if
multiple items reside on a page.
Parallel Systems
In parallel processing, many operations are performed simultaneously,
as opposed to serial processing, in which the computational steps are
performed sequentially.
Parallel database systems consist of multiple processors and multiple
disks connected by a fast interconnection network.
A coarse-grain parallel machine consists of a small number of
powerful processors
A massively parallel or fine grain parallel machine utilizes
thousands of smaller processors.
Two main performance measures:
throughput --- the number of tasks that can be completed in a
given time interval
response time --- the amount of time it takes to complete a
single task from the time it is submitted
Hierarchical Architecture:
Combines features of shared-memory, shared-disk, and shared-
nothing architectures.
Top level is a shared-nothing architecture – nodes connected by
an interconnection network, and do not share disks or memory
with each other.
Each node of the system could be a shared-memory system
with a few processors.
Alternatively, each node could be a shared-disk system, and
each of the systems sharing a set of disks could be a shared-
memory system.
Reduce the complexity of programming such systems by
distributed virtual-memory architectures
o Also called non-uniform memory architecture
(NUMA)
Distributed Systems
In a distributed database system, the database is stored on several
computers. The computers in a distributed system communicate with
one another through various communication media, such as high-
speed private networks or the Internet. They do not share main
memory or disks. The computers in a distributed system may vary in
size and function, ranging from workstations up to mainframe
systems.
Network interconnects the various machines.
Data is shared by users on multiple machines.
The computers in a distributed system are referred to by a number of
different names, such as sites or nodes, depending on the context in
which they are mentioned. We mainly use the term site, to emphasize
the physical distribution of these systems.
The general structure of a Distributed System appears in following
figure 5.19.
Bibliography
1. Abraham Silberschatz, Henry F. Korth, S. Sudarshan, “Database System
Concepts”, 6th Edition, McGraw-Hill Hill Education.
2. Abraham Silberschatz, Henry F. Korth, S. Sudarshan, “Database System
Concepts”, 4th Edition, McGraw-Hill Hill Education.
3. Ramez Elmasri and Shamkant B. Navathe “Fundamentals of Database Systems”,
5th Edition, Pearson.
4. Express Learning, “Database Management Systems”, ITL Education Solutions
Limited.
5. Archana Verma, “Database Management Systems”, GenNext Publication.
6. Dr. Rajiv Chopra, “Database Management Systems (DBMS) – A Practical
Approach”, 5th Edition, S. Chand Technical
7. Tanmay Kasbe, “Database Management System Concepts – A Practical
Approach”, First Edition, Educreation Publishing.
8. Mahesh Mali, “Database Management Systems”, Edition 2019, TechKnowledge
Publications.
9. Rajendra Prasad Mahapatra, Govind Verma, “Database Management System”,
Khanna Publishing.
10. Malay K. Pakhira, “Database Management System”, Eastern Economy Edition,
PHI.
11. Sarika Gupta, Gaurav Gupta, “Database Management System”, Khanna Book
Publishing Edition.
12. Riktesh Srivastava, Rajita Srivastava, “Relational Database Management
System”, New Age International Publishers.
13. Peter Rob, Carlos Coronel, “Database System Concepts’, Cenage Learning, India
Edition
14. Bipin C. Desai, “An Introduction to Database Systems”, Galgotia Publications.
15. G.K. Gupta, “Database Management Systems”, McGraw Hill Education.
16. Shio Kumar Singh, “Database Systems – Concepts, Design and Applications”, 2nd
Edition, PEARSON.
17. S.D.Joshi, “Database Management System”, Tech-Max Publication.
18. R. Ramkrishnan , J. Gehrke, "Database Management Systems", 3rd Edition,
McGraw-Hill
19. C. J. Date, “Introduction to Database Management Systems”, 8th Edition, Pearson
20. Atul Kahate, “Introduction to Database Management System”, 3rd Edition,
Pearson.
21. Bharat Lohiya, “Database Systems”, Tenth Edition, Aditya Publication, Amravati.
22. Vijay Krishna Pallaw, “Database Management System”, 2nd, Asian Books Pvt.
Ltd.
23. Database Management Systems, Database Management Systems.
24. Mrs. Jyoti G. Mante (Khurpade), Mrs. Smita M. Dandge, “Database Mangement
System”, Nirali Prakashan.
25. Step by Step Database Systems (DBMS), Shiv Krupa Publications, Akola
26. Mrs. Sheetal Gujar –Takale, Mr. Sahil K. Shah, “Database Management System”,
Nirali Prakashan.
27. Mrs. Jyoti G. Mante (Khurpade), U.S. Shirshetti, M.V. Salvi, K.S. Sakure,
“Relational Database Management System”, Nirali Prakashan.
28. Seema Kedar, Rakesh Shirsath, “Database Management Systems”, Technical
Publications.
29. Pankaj B. Brahmankar, “Database Management Systems”, Tech-Max
Publications, Pune.
30. Imran Saeed, Tasleem Mustafa, Tariq Mahmood, Ahsan Raza Sattar, “A
Fundamental Study of Database Management Systems”, 3rd Edition, IT Series
Publication.
31. Database Management Systems Lecture Notes, Malla Reddy College of
Engineering and Technology, Secunderabad.
32. Dr. Satinder Bal Gupta, Aditya Mittal, “Introduction to Database Management
System, University Science Press.
33. E-Notes BCS 41/ BCA 41 on “Database Management System”, Thiruvalluvar
University.
34. Bighnaraj Naik, Digital Notes on “Relational Database Management System”,
VSSUT, Burla.
35. Viren Sir, Relational database Management System”, Adarsh Institute of
Technolgoyt (Poly), VITA.
36. Sitansu S. Mitra, “Principles of Relational Database Systems”, Prentice Hall.
37. Neeraj Sharma, Liviu Perniu, Raul F. Chong, Abhishek Iyer, Chaitali Nandan,
Adi-Cristina Mitea, Mallarswami Nonvinkere, Mirela Danubianu, “Database
Fundamentals”, First Edition, DB2 On Campus Book Series.
38. Database Management System, Vidyavahini First Grade College, Tumkur.
39. Bhavna Sangamnerkar, Revised by: Shiv Kishor Sharma, “Database Management
System”, Think Tanks Biyani Group of Colleges.
40. Tibor Radvanyi, “Database Management Systems”.
41. Ramon A. Mata-Toledo, Pauline K. Cushman, “Fundamentals of Relational
Databases”, Schaum’s Outlies.
42. P.S. Gill, “Database Management Systems”, 2nd Edition, Dreamtech Press,
WILEY
Bibliography
Web Resources:-
https://www.exploredatabase.com/2016/04/database-transaction-states-in-dbms.html
https://www.javatpoint.com/dbms-log-based-recovery
https://www.geeksforgeeks.org/difference-between-deferred-update-and-immediate-update/