Oracle Database SQL Certified Associate
1 Introduction to SQL
1-1 Overview of SQL
1-2 History of SQL
1-3 SQL Standards
2 SQL Data Types
2-1 Numeric Data Types
2-2 Character Data Types
2-3 Date and Time Data Types
2-4 Large Object (LOB) Data Types
2-5 Miscellaneous Data Types
3 Creating and Managing Tables
3-1 Creating Tables
3-2 Modifying Tables
3-3 Dropping Tables
3-4 Table Constraints
3-5 Temporary Tables
4 Data Manipulation Language (DML)
4-1 Inserting Data
4-2 Updating Data
4-3 Deleting Data
4-4 Selecting Data
4-5 Using Subqueries
5 Data Control Language (DCL)
5-1 Granting Privileges
5-2 Revoking Privileges
6 Data Definition Language (DDL)
6-1 Creating Tables
6-2 Altering Tables
6-3 Dropping Tables
6-4 Creating Indexes
6-5 Dropping Indexes
6-6 Creating Views
6-7 Dropping Views
7 SQL Functions
7-1 Single-Row Functions
7-2 Aggregate Functions
7-3 Group Functions
7-4 Analytical Functions
8 Joins and Subqueries
8-1 Inner Joins
8-2 Outer Joins
8-3 Self-Joins
8-4 Cross Joins
8-5 Subqueries
9 Set Operators
9-1 UNION
9-2 UNION ALL
9-3 INTERSECT
9-4 MINUS
10 Grouping and Aggregation
10-1 GROUP BY Clause
10-2 HAVING Clause
10-3 ROLLUP and CUBE
10-4 GROUPING SETS
11 Transactions and Concurrency
11-1 Transaction Control Statements
11-2 Locking and Concurrency
11-3 Isolation Levels
12 Oracle SQL Developer
12-1 Overview of Oracle SQL Developer
12-2 Using SQL Worksheet
12-3 Managing Connections
12-4 Running Scripts
13 Advanced SQL Topics
13-1 Recursive Queries
13-2 Model Clause
13-3 PIVOT and UNPIVOT
13-4 Flashback Query
14 Performance Tuning
14-1 Query Optimization
14-2 Indexing Strategies
14-3 Analyzing Query Performance
15 Security and Auditing
15-1 User Management
15-2 Role Management
15-3 Auditing SQL Statements
16 Backup and Recovery
16-1 Backup Strategies
16-2 Recovery Strategies
16-3 Using RMAN
17 Oracle Database Architecture
17-1 Overview of Oracle Database Architecture
17-2 Memory Structures
17-3 Process Structures
17-4 Storage Structures
18 PLSQL Basics
18-1 Introduction to PLSQL
18-2 PLSQL Block Structure
18-3 Variables and Data Types
18-4 Control Structures
18-5 Exception Handling
19 Oracle SQL Certification Exam Preparation
19-1 Exam Objectives
19-2 Sample Questions
19-3 Practice Tests
19-4 Exam Tips
Isolation Levels in Oracle SQL

Isolation Levels in Oracle SQL

Key Concepts

Isolation levels in Oracle SQL define how transactions are isolated from each other. They control the visibility of data changes made by one transaction to other transactions. Understanding the following key concepts is essential for effectively managing isolation levels:

1. Read Committed

The READ COMMITTED isolation level ensures that a transaction can only read data that has been committed by other transactions. This prevents dirty reads but allows non-repeatable reads and phantom reads.

Example:

Transaction A reads data that Transaction B has modified but not yet committed. If Transaction B rolls back, Transaction A has read dirty data. With READ COMMITTED, Transaction A will only read data that Transaction B has committed.

2. Serializable

The SERIALIZABLE isolation level ensures that transactions are executed in a way that they appear to be running one after another, even if they are running concurrently. This prevents dirty reads, non-repeatable reads, and phantom reads.

Example:

Transaction A reads a set of rows, and Transaction B inserts a new row that matches the criteria of Transaction A's query. With SERIALIZABLE, Transaction A will not see the new row inserted by Transaction B.

3. Read Only

The READ ONLY isolation level ensures that a transaction can only read data and cannot modify it. This is useful for reporting and read-only operations where data consistency is critical.

Example:

A financial report needs to be generated based on the current state of the database. Using READ ONLY ensures that the data remains consistent throughout the report generation process.

4. Read Write

The READ WRITE isolation level allows a transaction to both read and write data. This is the default isolation level in Oracle SQL.

Example:

A transaction that needs to update customer information and read the updated information immediately would use the READ WRITE isolation level.

5. Dirty Read

A dirty read occurs when a transaction reads data that has been modified by another transaction but not yet committed. This can lead to inconsistent data if the modifying transaction rolls back.

Example:

Transaction A reads data that Transaction B has modified but not yet committed. If Transaction B rolls back, Transaction A has read dirty data.

6. Non-Repeatable Read

A non-repeatable read occurs when a transaction reads the same data twice but gets different results because another transaction has modified the data between the reads.

Example:

Transaction A reads a row, and Transaction B modifies and commits the same row. When Transaction A reads the row again, it sees the modified data.

7. Phantom Read

A phantom read occurs when a transaction reads a set of rows that satisfy a certain condition, and another transaction inserts new rows that satisfy the same condition. When the first transaction reads the rows again, it sees the new rows as well.

Example:

Transaction A reads all rows where the status is 'pending'. Transaction B inserts a new row with the status 'pending' and commits. When Transaction A reads the rows again, it sees the new row.

8. Snapshot Isolation

Snapshot isolation ensures that each transaction sees a consistent snapshot of the database at the start of the transaction. This prevents dirty reads, non-repeatable reads, and phantom reads.

Example:

Transaction A starts and reads data from a consistent snapshot of the database. Transaction B modifies data, but Transaction A continues to see the data as it was at the start of the transaction.

9. Cursor Stability

Cursor stability is an isolation level that ensures that a transaction can only read data that has been committed by other transactions. It prevents dirty reads and non-repeatable reads but allows phantom reads.

Example:

Transaction A reads data using a cursor. While the cursor is open, Transaction B modifies the data. Transaction A will only see the committed data, preventing dirty reads.

10. Repeatable Read

The REPEATABLE READ isolation level ensures that a transaction can read the same data multiple times and always get the same results. This prevents dirty reads and non-repeatable reads but allows phantom reads.

Example:

Transaction A reads a row, and Transaction B modifies and commits the same row. When Transaction A reads the row again, it still sees the original data.

11. Custom Isolation Levels

Oracle SQL allows for custom isolation levels by using the SET TRANSACTION statement. This provides flexibility in defining transaction behavior based on specific application needs.

Example:

A transaction that needs to read data in a consistent state but also needs to update data can use a custom isolation level defined by the SET TRANSACTION statement.