Bird
Raised Fist0
DBMS Theoryknowledge~5 mins

Buffer management in DBMS Theory - Cheat Sheet & Quick Revision

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Recall & Review
beginner
What is buffer management in a database management system (DBMS)?
Buffer management is the process of efficiently handling the temporary storage area (buffer) in memory where data pages are kept while being read from or written to disk. It helps speed up data access by reducing disk I/O operations.
Click to reveal answer
beginner
Why is buffer management important in DBMS?
Because accessing data from memory is much faster than from disk, buffer management improves performance by minimizing slow disk reads and writes. It ensures frequently used data stays in memory for quick access.
Click to reveal answer
beginner
What is a buffer pool?
A buffer pool is a reserved area in main memory where the DBMS stores copies of disk pages temporarily. It acts like a cache to hold data pages that are being used or modified.
Click to reveal answer
intermediate
What is the role of a replacement policy in buffer management?
A replacement policy decides which data page to remove from the buffer pool when new pages need space. Common policies include Least Recently Used (LRU) and First-In-First-Out (FIFO).
Click to reveal answer
intermediate
Explain the difference between a dirty page and a clean page in buffer management.
A dirty page is a page in the buffer that has been modified but not yet written back to disk. A clean page has not been changed since it was loaded or was already saved to disk.
Click to reveal answer
What is the main purpose of buffer management in a DBMS?
ATo permanently store data on disk
BTo encrypt data before storage
CTo reduce disk access by storing data temporarily in memory
DTo backup data to external devices
Which of the following is a common buffer replacement policy?
ALeast Recently Used (LRU)
BBinary Search
CRound Robin
DDepth First Search
What does a 'dirty page' in buffer management mean?
AA page that is read-only
BA page that is corrupted
CA page that is empty
DA page that has been modified but not saved to disk
What is a buffer pool?
AA disk storage area
BA memory area holding copies of disk pages
CA network connection pool
DA backup storage system
Why does buffer management improve DBMS performance?
ABecause memory access is faster than disk access
BBecause it compresses data
CBecause it encrypts data
DBecause it deletes old data
Describe what buffer management is and why it is used in database systems.
Think about how data is accessed faster from memory than disk.
You got /4 concepts.
    Explain the difference between a dirty page and a clean page in the context of buffer management.
    Consider what happens when data in memory changes before saving.
    You got /4 concepts.

      Practice

      (1/5)
      1. What is the main purpose of buffer management in a database system?
      easy
      A. To temporarily store data pages in memory for faster access
      B. To permanently save data on disk
      C. To encrypt data for security
      D. To compress data to save space

      Solution

      1. Step 1: Understand buffer management role

        Buffer management temporarily holds data pages in memory to reduce slow disk access.
      2. Step 2: Compare options

        Only To temporarily store data pages in memory for faster access describes temporary storage for faster access, others describe unrelated tasks.
      3. Final Answer:

        To temporarily store data pages in memory for faster access -> Option A
      4. Quick Check:

        Buffer management = temporary memory storage [OK]
      Hint: Buffer means temporary memory storage for quick data access [OK]
      Common Mistakes:
      • Confusing buffer with permanent storage
      • Thinking buffer encrypts data
      • Assuming buffer compresses data
      2. Which of the following is the correct operation to mark a page as in use in buffer management?
      easy
      A. unpin
      B. replace
      C. flush
      D. pin

      Solution

      1. Step 1: Recall buffer operations

        Pin operation marks a page as in use so it is not replaced.
      2. Step 2: Eliminate incorrect options

        Unpin releases the page, flush writes to disk, replace removes a page.
      3. Final Answer:

        pin -> Option D
      4. Quick Check:

        Pin = mark page in use [OK]
      Hint: Pin means hold page in memory, unpin means release it [OK]
      Common Mistakes:
      • Confusing pin with unpin
      • Thinking flush marks page in use
      • Mixing replace with pin
      3. Consider a buffer pool with 3 frames and pages requested in order: 2, 3, 2, 1, 5. Using the Least Recently Used (LRU) policy, which page will be replaced when page 5 is requested?
      medium
      A. Page 3
      B. Page 1
      C. Page 2
      D. Page 5

      Solution

      1. Step 1: Track pages in buffer with LRU

        Initially empty: request 2 (load), 3 (load), 2 (already in buffer), 1 (load, buffer full now with 2,3,1).
      2. Step 2: Identify least recently used page before requesting 5

        Pages in buffer: 2 (used recently), 3 (used before 1), 1 (most recent). LRU is page 3.
      3. Step 3: Update usage after last request

        After the sequence 2,3,2,1, the usage order from most recent to least recent is 1,2,3. When page 5 is requested, the least recently used page is page 3, so page 3 should be replaced.
      4. Final Answer:

        Page 3 -> Option A
      5. Quick Check:

        LRU replaces least recently used page 3 [OK]
      Hint: LRU removes the page not used for longest time [OK]
      Common Mistakes:
      • Replacing the most recently used page
      • Confusing page numbers order
      • Forgetting page 2 was used twice
      4. A buffer manager uses the following code snippet to unpin a page:
      if (page.pin_count > 0) {
        page.pin_count = page.pin_count - 1;
      }
      What is the likely error in this code?
      medium
      A. It increments pin_count instead of decrementing
      B. It does not check if pin_count is already zero before decrementing
      C. It should set pin_count to zero directly
      D. It does not flush the page to disk

      Solution

      1. Step 1: Analyze the unpin logic

        The code decrements pin_count only if greater than zero, which is correct to avoid negative counts.
      2. Step 2: Identify missing check

        However, if pin_count is zero, unpin should not be called or should raise error; code silently ignores this, which can hide bugs.
      3. Final Answer:

        It does not check if pin_count is already zero before decrementing -> Option B
      4. Quick Check:

        Unpin must avoid negative pin_count [OK]
      Hint: Unpin must never reduce pin_count below zero [OK]
      Common Mistakes:
      • Ignoring pin_count zero condition
      • Confusing increment and decrement
      • Assuming flush is part of unpin
      5. You have a buffer pool of size 2 and pages requested in this order: 4, 7, 4, 8, 7. Using the Clock replacement policy, which page will be replaced when page 7 is requested the second time?
      hard
      A. Page 8
      B. Page 7
      C. No page is replaced
      D. Page 4

      Solution

      1. Step 1: Understand Clock policy basics

        Clock uses a circular pointer and reference bits to decide which page to replace.
      2. Step 2: Track pages and reference bits

        Request 4 (load, ref=1), 7 (load, ref=1), 4 (ref bit set again), 8 (replace page with ref=0, but both 4 and 7 have ref=1, so pointer clears ref bits first, then replaces). When 7 is requested again, it is already in buffer with ref=1, so no replacement.
      3. Final Answer:

        No page is replaced -> Option C
      4. Quick Check:

        Clock keeps page if ref bit is set [OK]
      Hint: Clock skips pages with reference bit set before replacing [OK]
      Common Mistakes:
      • Replacing a page that still has reference bit set
      • Assuming immediate replacement on new request
      • Confusing Clock with LRU policy