DATABASE SYSTEM CONCEPTS LCPO
DATABASE SYSTEM CONCEPTS LCPO
7th Edition
ISBN: 9781265586577
Author: SILBERSCHATZ
Publisher: MCG
bartleby

Concept explainers

Expert Solution & Answer
Book Icon
Chapter 19, Problem 1PE

Explanation of Solution

Processing log records for transactions on the undo-list in reverse order:

Each transaction must create a log record before modifying the database. These log records are used for the following purposes:

  • Undo these changes in the database in case of transaction abortion.
  • Redo these changes in the database if the transaction is committed but the system failed to store these changes in the disk or database.

Transaction log records on the undo-list must be processed in reverse order as given below:

  • Initially, consider the case of a single transaction.
    • Consider the situation when a data item is updated more than one time. Let the data item Q have an initial value as one, it is changed from 1 to 4, and then 4 to 9.
    • Then, try to process the undo log records in forward order.
      • The final undo value of the data item Q will be set to 4, which is an incorrect value.
    • Whereas, when the undo log records are processed in reverse order, the final undo value of the data item Q will be set to 1, which is the correct value.
  • Similar logic for data items that can be updated by more than transaction on undo list is used. Thus, they must also be processed in reverse order.

Transaction log records on the redo-list must be processed in forward order as given below:

  • Initially, consider the case of a single transaction.
    • Consider the situation when a data item is updated more than one time. Let the data item Q have an initial value as one, it is changed from 1 to 4, and then 4 to 9. Finally, let the transaction commit.
    • Then, try to process the redo log records in reverse order.
      • The final redo value of the data item Q will be set to 4, which is an incorrect value.
    • Whereas, when the redo log records are processed in forward order, the final redo value of the data item Q will be set to 9, which is the correct value.
  • Similar logic for data items that can be updated by more than transaction on redo list is used. Thus, they must also be processed in forward order.

Want to see more full solutions like this?

Subscribe now to access step-by-step solutions to millions of textbook problems written by subject matter experts!
Students have asked these similar questions
Please answer JAVA OOP problem below: You are working at a university that tracks students. Each student is identified by their name and faculty advisor. Each faculty advisor is identified by their name, department, and maximum number of students they can advise. Using solid OO design principles, create a modular program that implements all the classes for the problem and also creates an implementation class that gathers user input for one student and then prints out the information gathered by creating the appropriate data definition and implementation classes. All data must be validated.    I have given the code so far: Implementation: import javax.swing.JOptionPane; public class Implementation {     public static void main(String[] args) {         FacultyAdvisor facultyAdvisor = new FacultyAdvisor("Sharmin Sultana", "IT", 30);         Student student = new Student("John", facultyAdvisor);         JOptionPane.showMessageDialog(null, student.toString());     } }   Student: public…
Exercise 1 Function and Structure [30 pts] Please debug the following program and answer the following questions. There is a cycle in a linked list if some node in the list can be reached again by continuously following the next pointer. #include typedef struct node { int value; struct node *next; } node; int 11_has_cycle (node *first) if (first == node *head { NULL) return 0;B = first; while (head->next != NULL) { if (head == first) { return 1; } head head->next; } return 0; void test_11_has_cycle() { int i; node nodes [6]; for (i = 0; i < 6; i++) nodes [i] .next = NULL; nodes [i].value i; } nodes [0] .next = &nodes [1]; nodes [1] .next = &nodes [2]; nodes [2] .next = &nodes [3]; nodes [3] .next = & nodes [4]; nodes [4] .next = NULL; nodes [5] .next = &nodes [0]; printf("1. Checking first list for cycles. \n Function 11_has_cycle says it hass cycle\n\n", 11_has_cycle (&nodes [0]) ?"a":"no"); printf("2. Checking length-zero list for cycles. \n Function 11_has_cycle says it has %s…
checkpoint exercice for my students for Amortized Analysis
Knowledge Booster
Background pattern image
Computer Science
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Similar questions
SEE MORE QUESTIONS
Recommended textbooks for you
Text book image
Database System Concepts
Computer Science
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:McGraw-Hill Education
Text book image
Starting Out with Python (4th Edition)
Computer Science
ISBN:9780134444321
Author:Tony Gaddis
Publisher:PEARSON
Text book image
Digital Fundamentals (11th Edition)
Computer Science
ISBN:9780132737968
Author:Thomas L. Floyd
Publisher:PEARSON
Text book image
C How to Program (8th Edition)
Computer Science
ISBN:9780133976892
Author:Paul J. Deitel, Harvey Deitel
Publisher:PEARSON
Text book image
Database Systems: Design, Implementation, & Manag...
Computer Science
ISBN:9781337627900
Author:Carlos Coronel, Steven Morris
Publisher:Cengage Learning
Text book image
Programmable Logic Controllers
Computer Science
ISBN:9780073373843
Author:Frank D. Petruzella
Publisher:McGraw-Hill Education