Bird
Raised Fist0
MySQLquery~5 mins

ACID properties in MySQL

Choose your learning style10 modes available
Introduction

ACID properties help keep data safe and correct when many people use a database at the same time.

When you want to make sure money transfers between bank accounts are done correctly.
When multiple users update the same data and you want to avoid mistakes.
When you need to keep data accurate even if the system crashes.
When you want to make sure all parts of a task finish completely or not at all.
When you want to avoid seeing half-finished changes in your data.
Syntax
MySQL
ACID stands for:
- Atomicity
- Consistency
- Isolation
- Durability

Atomicity means all parts of a task happen or none do.

Consistency means data rules are always followed.

Examples
This starts a transaction to group commands so they all succeed or fail together.
MySQL
START TRANSACTION;
-- perform multiple SQL commands
COMMIT;
This cancels all changes made in the current transaction.
MySQL
ROLLBACK;
Sample Program

This moves 100 units from account 1 to account 2 safely. If any step fails, no money moves.

MySQL
START TRANSACTION;
UPDATE accounts SET balance = balance - 100 WHERE id = 1;
UPDATE accounts SET balance = balance + 100 WHERE id = 2;
COMMIT;
OutputSuccess
Important Notes

Isolation prevents other users from seeing partial changes during a transaction.

Durability means once changes are saved, they stay even if power goes out.

Summary

ACID ensures database tasks are safe and reliable.

Use transactions to group related changes.

ACID helps avoid errors when many users work together.

Practice

(1/5)
1. Which of the following is NOT one of the ACID properties in databases?
easy
A. Durability and Speed
B. Consistency
C. Isolation
D. Atomicity

Solution

  1. Step 1: Recall the ACID properties

    ACID stands for Atomicity, Consistency, Isolation, and Durability.
  2. Step 2: Identify the incorrect option

    Durability and Speed adds "Speed" which is not part of ACID properties.
  3. Final Answer:

    Durability and Speed -> Option A
  4. Quick Check:

    ACID excludes Speed [OK]
Hint: Remember ACID = Atomicity, Consistency, Isolation, Durability [OK]
Common Mistakes:
  • Confusing performance terms with ACID properties
  • Thinking Speed is part of ACID
  • Mixing up Isolation with Integrity
2. Which SQL statement correctly starts a transaction in MySQL?
easy
A. BEGIN TRANSACTION;
B. START TRANSACTION;
C. OPEN TRANSACTION;
D. INIT TRANSACTION;

Solution

  1. Step 1: Recall MySQL transaction syntax

    MySQL uses START TRANSACTION; to begin a transaction.
  2. Step 2: Check other options

    Options A, B, and D are not valid MySQL commands for starting transactions.
  3. Final Answer:

    START TRANSACTION; -> Option B
  4. Quick Check:

    MySQL uses START TRANSACTION [OK]
Hint: Use START TRANSACTION to begin in MySQL [OK]
Common Mistakes:
  • Using BEGIN TRANSACTION which is not valid in MySQL
  • Confusing with other SQL dialects
  • Typing incorrect keywords like OPEN or INIT
3. Consider this sequence in MySQL:
START TRANSACTION;
UPDATE accounts SET balance = balance - 100 WHERE id = 1;
UPDATE accounts SET balance = balance + 100 WHERE id = 2;
COMMIT;

What ACID property does this sequence mainly demonstrate?
medium
A. Consistency - data types are checked
B. Isolation - changes are visible immediately
C. Durability - changes are temporary
D. Atomicity - all changes happen or none

Solution

  1. Step 1: Understand the transaction sequence

    The two updates are grouped inside a transaction with COMMIT at the end.
  2. Step 2: Identify the ACID property

    Atomicity ensures either both updates happen or none do, preventing partial changes.
  3. Final Answer:

    Atomicity - all changes happen or none -> Option D
  4. Quick Check:

    Transaction groups changes atomically [OK]
Hint: Atomicity means all or nothing in transactions [OK]
Common Mistakes:
  • Confusing Isolation with Atomicity
  • Thinking Durability means temporary changes
  • Assuming Consistency only checks data types
4. You wrote this MySQL transaction:
START TRANSACTION;
UPDATE inventory SET quantity = quantity - 5 WHERE product_id = 10;
COMMIT;

But sometimes the quantity becomes negative. What ACID property is likely violated?
medium
A. Consistency
B. Isolation
C. Durability
D. Atomicity

Solution

  1. Step 1: Analyze the problem

    Quantity becoming negative means data rules are broken.
  2. Step 2: Identify violated ACID property

    Consistency ensures data stays valid and follows rules; here it is violated.
  3. Final Answer:

    Consistency -> Option A
  4. Quick Check:

    Consistency keeps data valid [OK]
Hint: Consistency means data must follow rules always [OK]
Common Mistakes:
  • Thinking Atomicity prevents negative values
  • Confusing Isolation with data validity
  • Assuming Durability fixes data rules
5. In a multi-user MySQL environment, two transactions run:
Transaction 1:
START TRANSACTION;
UPDATE accounts SET balance = balance - 50 WHERE id = 1;
-- waits before COMMIT

Transaction 2:
START TRANSACTION;
SELECT balance FROM accounts WHERE id = 1;
COMMIT;

Which ACID property ensures Transaction 2 does not see the uncommitted balance change from Transaction 1?
hard
A. Atomicity
B. Durability
C. Isolation
D. Consistency

Solution

  1. Step 1: Understand concurrent transactions

    Transaction 1 updates but delays commit; Transaction 2 reads the same data.
  2. Step 2: Identify ACID property controlling visibility

    Isolation ensures uncommitted changes are hidden from other transactions.
  3. Final Answer:

    Isolation -> Option C
  4. Quick Check:

    Isolation hides uncommitted changes [OK]
Hint: Isolation hides uncommitted changes from others [OK]
Common Mistakes:
  • Confusing Isolation with Atomicity
  • Thinking Durability controls visibility
  • Assuming Consistency hides uncommitted data
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard