Download as pdf or txt
Download as pdf or txt
You are on page 1of 18

DELETION

&
DATABASE TRANSACTION

DBT BSSE-A-F12
DELETION:

 You can remove existing rows from the table by using the
DELETE statement.
 Specific rows are deleted when you specify the WHERE
clause.
 All rows in the table are deleted if you omit the WHERE
clause.

Examples:

1) DELETE FROM dept WHERE deptno = 20;


2) DELETE FROM dept;

DBT BSSE-A-F12
DBT BSSE-A-F12
DBT BSSE-A-F12
DATABASE TRANSACTION:

 A TRANSACTION consists of a collection of DML statements


that form a logical unit of work.
 A DATABASE TRANSACTION consists of one of the following
statements:

1) DML statements that make up one consistent change to the data.


2) One DDL statement.
3) One DCL statement.

Transactions consists of DML statements that make up one


consistent change to the data.
Example:

A transfer of funds between two accounts should include the debit


to one account and credit to another account in the same amount.
Both actions should either failed or succeed together; the credit
should not be committed without the debit.
DBT BSSE-A-F12
 Database Transaction begins when the first DML SQL
statement is executed.

 Ends with one of the following events

- COMMIT or ROLLBACK is issued.


- DDL or DCL statement executes (Automatic commit).
- User normally exits.

DBT BSSE-A-F12
DBT BSSE-A-F12
CONTROLLING TRANSACTIONS:

We can control the logic of transactions by using the

COMMAND EXPLANATION
COMMIT Ends the current transaction by making all
pending data changes permanent.

SAVEPOINT name Marks the savepoint within the current


location.

ROLLBACK [TO Savepoint ROLLBACK ends the current transaction by


name] discarding all pending data changes.
ROLLBACK TO savepoint name discards
the savepoint and all subsequent changes.

DBT BSSE-A-F12
DBT BSSE-A-F12
DBT BSSE-A-F12
Examples:

1) UPDATE emp SET ename = ‘RASHID’ WHERE empno = 101;

 ROLLBACK;

2) UPDATE emp SET ename = ‘RASHID’ WHERE empno = 101;

 COMMIT;

3) UPDATE emp SET ename = ‘RASHID’ WHERE empno = 101;

 SAVEPOINT updation;

4) INSERT INTO emp (empno,ename,deptno) VALUES (104,’WAJID’,30);

 ROLLBACK TO updation;

DBT BSSE-A-F12
Implicit Transaction Processing

 Automatic COMMIT occurs under the following conditions

- DDL statement is issued


- DCL statement is issued.
- Normal Exit with command EXIT from SQL * PLUS.

 Automatic ROLLBACK occurs under the following conditions

- Abnormal Exit or Termination of SQL * PLUS.


- System Failure.

DBT BSSE-A-F12
Data Before COMMIT:

 The previous state of the data can be recovered.


 The current user can review the results of the DML
operations by using SELECT.
 Other users can not view the the results of the DML
operations made by the user.
 The affected rows are locked; other users cannot change the
data with in the affected rows.

Data After COMMIT:

 Data changes are made permanent in the database.


 The previous state of the data is permanently lost.
 All users can view the results.
 Locks on the affected rows are released.
 All savepoints are erased. DBT BSSE-A-F12
DBT BSSE-A-F12
DBT BSSE-A-F12
Read Consistency:

 Database users access the database in two ways:

 Read Operations (SELECT statement)


 Write operations (INSERT,UPDATE,DELETE statements)

 You need read consistency so that the following occur:


 The database reader and writer are assured a consistent view of the
data.
 Readers do not view data that is in the process of being changed.
 Writers are ensured that the changes to the database are done in a
consistent way.
 Changes made by one writer do not disrupt or conflict with changes
another writer is making.

 The purpose of read consistency is to ensure that user sees data as it


existed at the last commit, before a DML operation is started.

DBT BSSE-A-F12
Implementation of Read Consistency:
Read consistency is an automatic implementation.
It keep a partial copy of the database in UNDO/ROLLBACK SEGMENT.
When an insert, update or delete operation is made to the database, the oracle server
takes a copy of the data before it is changed and writes it to an UNDO/ROLLBACK
SEGMENT.
All users, except the one who issued the change, still see the database as it existed
before the changes started; they view the UNDO/ROLLBACK SEGMENT’s “snapshot” of
the data.
 Before changes are committed to the database, only the user who is modifying the data
sees the database with the alterations; everyone else sees the snapshot in the
UNDO/ROLLBACK SEGMENT. This guarantees that readers of the data read consistent
data that is not currently undergoing changed.

 When a DML statement is committed, the change made to the database becomes visible
to anyone executing a SELECT statement. The space occupied by the old data in the undo
segment file is freed for reuse.

 When a DML statement is rolled Back, the changes are undone:

 The original older version, of the data in the UNDO/ROLLBACK SEGMENT, is written
back to the table.
 All users see the database as it existed before the transaction began.
DBT BSSE-A-F12
DBT BSSE-A-F12

You might also like